/*
* 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.model.MenuCategory;
import com.floreantpos.model.MenuGroup;
import com.floreantpos.model.dao.MenuGroupDAO;
import com.floreantpos.swing.MessageDialog;
import com.floreantpos.swing.PosButton;
import com.floreantpos.ui.views.order.actions.GroupSelectionListener;
/**
*
* @author MShahriar
*/
public class GroupView extends SelectionView {
private Vector<GroupSelectionListener> listenerList = new Vector<GroupSelectionListener>();
private MenuCategory menuCategory;
public static final String VIEW_NAME = "GROUP_VIEW";
/** Creates new form GroupView */
public GroupView() {
super("GROUPS");
setBackEnable(false);
}
public MenuCategory getMenuCategory() {
return menuCategory;
}
public void setMenuCategory(MenuCategory foodCategory) {
this.menuCategory = foodCategory;
reset();
if (foodCategory == null) {
return;
}
try {
MenuGroupDAO dao = new MenuGroupDAO();
List<MenuGroup> groups = dao.findEnabledByParent(foodCategory);
for (int i = 0; i < groups.size(); i++) {
MenuGroup foodGroup = groups.get(i);
GroupButton button = new GroupButton(foodGroup);
addButton(button);
}
revalidate();
repaint();
} catch (Exception e) {
MessageDialog.showError(e);
}
}
public void addGroupSelectionListener(GroupSelectionListener listener) {
listenerList.add(listener);
}
public void removeGroupSelectionListener(GroupSelectionListener listener) {
listenerList.remove(listener);
}
private void fireGroupSelected(MenuGroup foodGroup) {
for (GroupSelectionListener listener : listenerList) {
listener.groupSelected(foodGroup);
}
}
private class GroupButton extends PosButton implements ActionListener {
MenuGroup foodGroup;
GroupButton(MenuGroup foodGroup) {
this.foodGroup = foodGroup;
setText(foodGroup.getName());
addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
fireGroupSelected(foodGroup);
}
}
@Override
public void doGoBack() {
}
}