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.pizzeria.gui.PizzeriaFrame;
15 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.tablemodels.GroupsOverviewModel;
16 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.tablemodels.OrdersOverviewModel;
17 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.tablemodels.PizzasOfOrderModel;
18 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.tablemodels.TablesOverviewModel;
19 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.tablemodels.WaitersOfOrderModel;
20 import at.ac.tuwien.sbc.valesriegler.xvsm.XVSMConnector;
23 * The Main class of the Pizzeria compoment.
25 * Start the communication and the Pizzeria GUI
27 * @author Gregor Riegler <gregor DOT riegler AT gmail DOT com>
30 public class PizzeriaAgent implements NotificationListener {
31 private static final Logger log = LoggerFactory.getLogger(PizzeriaAgent.class);
33 private static final String USAGE = "Usage: java PizzeriaAgent XVSM|JMS";
35 private OrdersOverviewModel ordersModel;
36 private GroupsOverviewModel groupModel;
37 private TablesOverviewModel tablesModel;
38 private WaitersOfOrderModel waitersModel;
39 private PizzasOfOrderModel pizzasModel;
41 private XVSMConnector xvsm;
43 public static void main(String[] args) {
44 // if (args.length != 1) {
45 // throw new IllegalArgumentException(USAGE);
47 String mom = "JMS";// args[0];
49 PizzeriaAgent pizzeriaAgent = new PizzeriaAgent();
52 pizzeriaAgent.createModels();
53 pizzeriaAgent.initXVSM();
54 pizzeriaAgent.initGUI();
57 pizzeriaAgent.createModels();
58 pizzeriaAgent.initJMS();
59 pizzeriaAgent.initGUI();
62 throw new IllegalArgumentException(USAGE);
68 private void initJMS() {
69 // do what you have to do
72 private void initXVSM() {
73 xvsm = new XVSMConnector();
74 xvsm.initSpaceCommunication();
77 private void initGUI() {
78 PizzeriaGUI gui = new PizzeriaGUI();
79 SwingUtilities.invokeLater(gui);
82 class PizzeriaGUI implements Runnable {
85 PizzeriaFrame frame = new PizzeriaFrame(ordersModel, groupModel, tablesModel, waitersModel, pizzasModel);
86 frame.setOnTablesCreatedHandler(new TablesCreatedHandler() {
89 public void freeTablesCreated(List<DEP_Table> tables) {
90 // xvsm.sendFreeTablesToSpace(tables);
96 frame.setVisible(true);
100 private void createModels() {
101 ordersModel = new OrdersOverviewModel();
102 groupModel = new GroupsOverviewModel();
103 tablesModel = new TablesOverviewModel();
104 waitersModel = new WaitersOfOrderModel();
105 pizzasModel = new PizzasOfOrderModel();
108 public interface TablesCreatedHandler {
109 public void freeTablesCreated(List<DEP_Table> tables);
113 public void handleNotification(Notification notification, Object handback) {
114 // handle space notifications