/* * GroupView.java * * Created on August 5, 2006, 9:29 PM */ package com.floreantpos.ui.views.order; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.List; import java.util.Vector; import com.floreantpos.PosException; import com.floreantpos.model.MenuGroup; import com.floreantpos.model.MenuItem; import com.floreantpos.model.dao.MenuItemDAO; import com.floreantpos.swing.PosButton; import com.floreantpos.ui.views.order.actions.ItemSelectionListener; /** * * @author MShahriar */ public class MenuItemView extends SelectionView { public final static String VIEW_NAME = "ITEM_VIEW"; private Vector<ItemSelectionListener> listenerList = new Vector<ItemSelectionListener>(); private MenuGroup menuGroup; /** Creates new form GroupView */ public MenuItemView() { super("ITEMS"); } public MenuGroup getMenuGroup() { return menuGroup; } public void setMenuGroup(MenuGroup menuGroup) { this.menuGroup = menuGroup; reset(); if (menuGroup == null) { return; } MenuItemDAO dao = new MenuItemDAO(); try { List<MenuItem> items = dao.findByParent(menuGroup, false); for (int i = 0; i < items.size(); i++) { MenuItem menuItem = items.get(i); ItemButton itemButton = new ItemButton(menuItem); addButton(itemButton); } revalidate(); repaint(); } catch (PosException e) { e.printStackTrace(); } } public void addItemSelectionListener(ItemSelectionListener listener) { listenerList.add(listener); } public void removeItemSelectionListener(ItemSelectionListener listener) { listenerList.remove(listener); } private void fireItemSelected(MenuItem foodItem) { for (ItemSelectionListener listener : listenerList) { listener.itemSelected(foodItem); } } private void fireBackFromItemSelected() { for (ItemSelectionListener listener : listenerList) { listener.itemSelectionFinished(menuGroup); } } private class ItemButton extends PosButton implements ActionListener { MenuItem foodItem; ItemButton(MenuItem foodItem) { this.foodItem = foodItem; setText(foodItem.getName()); addActionListener(this); } public void actionPerformed(ActionEvent e) { fireItemSelected(foodItem); } } @Override public void doGoBack() { fireBackFromItemSelected(); } }