1 package at.ac.tuwien.sbc.valesriegler.group;
3 import java.io.Serializable;
4 import java.rmi.server.Operation;
5 import java.util.ArrayList;
8 import javax.management.Notification;
9 import javax.management.NotificationListener;
10 import javax.swing.SwingUtilities;
12 import org.mozartspaces.core.CapiUtil;
13 import org.mozartspaces.core.Entry;
14 import org.slf4j.Logger;
15 import org.slf4j.LoggerFactory;
17 import at.ac.tuwien.sbc.valesriegler.common.Util;
18 import at.ac.tuwien.sbc.valesriegler.group.gui.GroupOverviewModel;
19 import at.ac.tuwien.sbc.valesriegler.group.jms.JMSGroupConnector;
20 import at.ac.tuwien.sbc.valesriegler.types.GroupData;
21 import at.ac.tuwien.sbc.valesriegler.xvsm.AbstractXVSMConnector;
22 import at.ac.tuwien.sbc.valesriegler.xvsm.GroupAgentXVSM;
23 import at.ac.tuwien.sbc.valesriegler.xvsm.XVSMConnector;
26 * The Main class of the Group component.
28 * Start the communication and the group GUI:
30 * @author Gregor Riegler <gregor DOT riegler AT gmail DOT com>
34 public class GroupAgent {
36 private static final Logger log = LoggerFactory.getLogger(GroupAgent.class);
37 private GroupOverviewModel groupModel;
38 private AbstractGroupConnector groupconn;
39 private GroupAgentXVSM xvsm;
41 public static GroupAgent groupAgent;
43 public static void main(String[] args) {
44 // TODO: use jms and xvsm manager here.
45 groupAgent = new GroupAgent(new JMSGroupConnector());
47 SwingUtilities.invokeLater(new GroupGUI());
50 public GroupAgent(JMSGroupConnector groupconn) {
51 groupModel = new GroupOverviewModel();
53 this.groupconn = groupconn;
57 xvsm = new GroupAgentXVSM();
59 xvsm.listenForGroupDataChanges();
63 public static GroupAgent getInstance() {
67 public AbstractGroupConnector getGroupcomm() {
71 public GroupOverviewModel getGroupModel() {
75 public void onGroupsCreated(List<Group> newGroups) {
77 List<GroupData> groupData = new ArrayList<>();
79 for (Group group : newGroups) {
80 groupData.add(group.getGroupData());
82 xvsm.sendNewGroupsToSpace(groupData);
84 log.info("New Groups were sent to the space");