1 package at.ac.tuwien.sbc.valesriegler.pizzeria;
5 import javax.management.Notification;
6 import javax.management.NotificationListener;
7 import javax.swing.SwingUtilities;
9 import org.mozartspaces.core.MzsCoreException;
10 import org.slf4j.Logger;
11 import org.slf4j.LoggerFactory;
13 import at.ac.tuwien.sbc.valesriegler.DEP_Table;
14 import at.ac.tuwien.sbc.valesriegler.common.Util;
15 import at.ac.tuwien.sbc.valesriegler.group.GroupAgent;
16 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.PizzeriaFrame;
17 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.tablemodels.GroupsOverviewModel;
18 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.tablemodels.OrdersOverviewModel;
19 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.tablemodels.PizzasOfOrderModel;
20 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.tablemodels.TablesOverviewModel;
21 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.tablemodels.WaitersOfOrderModel;
22 import at.ac.tuwien.sbc.valesriegler.xvsm.XVSMConnector;
25 * The Main class of the Pizzeria compoment.
27 * Start the communication and the Pizzeria GUI
29 * @author Gregor Riegler <gregor DOT riegler AT gmail DOT com>
32 public class PizzeriaAgent {
33 private static final Logger log = LoggerFactory.getLogger(PizzeriaAgent.class);
35 private static final String USAGE = "Usage: java PizzeriaAgent XVSM|JMS";
37 private static PizzeriaAgent pizzeriaAgent;
42 private OrdersOverviewModel ordersModel;
43 private GroupsOverviewModel groupModel;
44 private TablesOverviewModel tablesModel;
45 private WaitersOfOrderModel waitersModel;
46 private PizzasOfOrderModel pizzasModel;
48 private XVSMConnector xvsm;
50 public static void main(String[] args) {
51 // if (args.length != 1) {
52 // throw new IllegalArgumentException(USAGE);
54 String mom = "XVSM";// args[0];
56 pizzeriaAgent = new PizzeriaAgent();
59 pizzeriaAgent.createModels();
60 pizzeriaAgent.initXVSM();
61 pizzeriaAgent.initGUI();
64 pizzeriaAgent.createModels();
65 pizzeriaAgent.initJMS();
66 pizzeriaAgent.initGUI();
69 throw new IllegalArgumentException(USAGE);
75 private void initJMS() {
76 // do what you have to do
79 private void initXVSM() {
80 xvsm = new XVSMConnector();
81 xvsm.initSpaceCommunication();
82 xvsm.useTablesContainer();
83 xvsm.useGroupsContainer();
85 xvsm.initPizzeriaNotifications();
88 private void initGUI() {
89 PizzeriaGUI gui = new PizzeriaGUI();
90 SwingUtilities.invokeLater(gui);
93 class PizzeriaGUI implements Runnable {
96 PizzeriaFrame frame = new PizzeriaFrame();
97 frame.setOnTablesCreatedHandler(new TablesCreatedHandler() {
100 public void freeTablesCreated(List<DEP_Table> tables) {
102 xvsm.sendTablesToSpace(tables);
109 frame.setVisible(true);
113 private void createModels() {
114 ordersModel = new OrdersOverviewModel();
115 groupModel = new GroupsOverviewModel();
116 tablesModel = new TablesOverviewModel();
117 waitersModel = new WaitersOfOrderModel();
118 pizzasModel = new PizzasOfOrderModel();
121 public static PizzeriaAgent getInstance() {
122 return pizzeriaAgent;
125 public OrdersOverviewModel getOrdersModel() {
129 public GroupsOverviewModel getGroupModel() {
133 public TablesOverviewModel getTablesModel() {
137 public WaitersOfOrderModel getWaitersModel() {
141 public PizzasOfOrderModel getPizzasModel() {
145 public interface TablesCreatedHandler {
146 public void freeTablesCreated(List<DEP_Table> tables);