1 package at.ac.tuwien.sbc.valesriegler.pizzeria;
5 import javax.swing.SwingUtilities;
7 import org.mozartspaces.core.MzsCoreException;
8 import org.slf4j.Logger;
9 import org.slf4j.LoggerFactory;
11 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.PizzeriaFrame;
12 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.tablemodels.GroupsOverviewModel;
13 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.tablemodels.OrdersOverviewModel;
14 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.tablemodels.PizzasOfOrderModel;
15 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.tablemodels.TablesOverviewModel;
16 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.tablemodels.WaitersOfOrderModel;
17 import at.ac.tuwien.sbc.valesriegler.types.Table;
18 import at.ac.tuwien.sbc.valesriegler.xvsm.XVSMConnector;
21 * The Main class of the Pizzeria compoment.
23 * Start the communication and the Pizzeria GUI
25 * @author Gregor Riegler <gregor DOT riegler AT gmail DOT com>
28 public class PizzeriaAgent {
29 private static final Logger log = LoggerFactory.getLogger(PizzeriaAgent.class);
31 private static final String USAGE = "Usage: java PizzeriaAgent XVSM|JMS";
33 private OrdersOverviewModel ordersModel;
34 private GroupsOverviewModel groupModel;
35 private TablesOverviewModel tablesModel;
36 private WaitersOfOrderModel waitersModel;
37 private PizzasOfOrderModel pizzasModel;
39 private XVSMConnector xvsm;
41 public static void main(String[] args) {// TODO: remove hardcoding of JMS.
42 // if (args.length != 1) {
43 // throw new IllegalArgumentException(USAGE);
45 String mom = "JMS";// args[0];
47 PizzeriaAgent pizzeriaAgent = new PizzeriaAgent();
50 pizzeriaAgent.createModels();
51 pizzeriaAgent.initXVSM();
52 pizzeriaAgent.initGUI();
55 pizzeriaAgent.createModels();
56 pizzeriaAgent.initJMS();
57 pizzeriaAgent.initGUI();
60 throw new IllegalArgumentException(USAGE);
66 private void initJMS() {
67 // do what you have to do
70 private void initXVSM() {
72 xvsm = new XVSMConnector();
73 xvsm.initSpaceCommunication();
75 } catch (MzsCoreException e) {
76 log.error(e.getMessage());
77 log.error("The Pizzeria has no Space connection! Have you started the Space Server?");
82 private void initGUI() {
83 PizzeriaGUI gui = new PizzeriaGUI();
84 SwingUtilities.invokeLater(gui);
87 class PizzeriaGUI implements Runnable {
90 PizzeriaFrame frame = new PizzeriaFrame(ordersModel, groupModel, tablesModel, waitersModel, pizzasModel);
91 frame.setOnTablesCreatedHandler(new TablesCreatedHandler() {
94 public void freeTablesCreated(List<Table> tables) {
95 // xvsm.sendFreeTablesToSpace(tables);
101 frame.setVisible(true);
105 private void createModels() {
106 ordersModel = new OrdersOverviewModel();
107 groupModel = new GroupsOverviewModel();
108 tablesModel = new TablesOverviewModel();
109 waitersModel = new WaitersOfOrderModel();
110 pizzasModel = new PizzasOfOrderModel();
113 public interface TablesCreatedHandler {
114 public void freeTablesCreated(List<Table> tables);