1 package at.ac.tuwien.sbc.valesriegler.xvsm;
3 import java.io.Serializable;
4 import java.util.ArrayList;
7 import javax.swing.SwingUtilities;
9 import org.mozartspaces.core.Entry;
10 import org.mozartspaces.notifications.Notification;
11 import org.mozartspaces.notifications.NotificationListener;
12 import org.mozartspaces.notifications.Operation;
13 import org.slf4j.Logger;
14 import org.slf4j.LoggerFactory;
16 import at.ac.tuwien.sbc.valesriegler.pizzeria.PizzeriaAgent;
17 import at.ac.tuwien.sbc.valesriegler.types.GroupData;
18 import at.ac.tuwien.sbc.valesriegler.types.Table;
20 public class PizzeriaXVSM extends AbstractXVSMConnector {
21 private static final Logger log = LoggerFactory.getLogger(PizzeriaXVSM.class);
23 public PizzeriaXVSM() {
27 useFreeTablesContainer();
30 public void listenForTables() {
31 NotificationListener tablesListener = new NotificationListener() {
33 public void entryOperationFinished(final Notification notification, final Operation operation, final List<? extends Serializable> entries) {
34 log.info("Tables Change notified");
36 final List<Table> tables = castEntries(entries);
38 SwingUtilities.invokeLater(new Runnable() {
41 PizzeriaAgent.getInstance().getTablesModel().addItems(tables);
47 notificationMgr.createNotification(tablesContainer, tablesListener, Operation.WRITE);
48 } catch (Exception e) {
49 handleSpaceErrorAndTerminate(e);
53 public void listenForGroups() {
55 NotificationListener groupsListener = new NotificationListener() {
57 public void entryOperationFinished(final Notification notification, final Operation operation, final List<? extends Serializable> entries) {
58 final List<GroupData> groups = castEntries(entries);
60 log.info("{} group changes!", groups.size());
61 for (GroupData groupData : groups) {
62 log.info(groupData.toString());
66 SwingUtilities.invokeLater(new Runnable() {
69 PizzeriaAgent.getInstance().getGroupModel().addItems(groups);
76 notificationMgr.createNotification(groupsContainer, groupsListener, Operation.WRITE);
77 } catch (Exception e) {
78 handleSpaceErrorAndTerminate(e);