1 package nl.tudelft.goal.ut2004.visualizer.connection.client;
2
3 import java.rmi.RemoteException;
4
5 import nl.tudelft.goal.ut2004.visualizer.connection.EnvironmentService;
6 import nl.tudelft.goal.ut2004.visualizer.connection.VisualizerService;
7
8 import cz.cuni.amis.utils.flag.Flag;
9
10
11
12
13
14
15
16
17 public class RemoteVisualizer {
18
19 private final Flag<Boolean> connectedFlag = new Flag<Boolean>();
20 private VisualizerService visualizer;
21 private boolean connected;
22 private EnvironmentService environment;
23
24 protected void setVisualizerService(VisualizerService visualizer) {
25 this.visualizer = visualizer;
26 setConnected(true);
27 }
28
29 public void setEnvironment(EnvironmentService client) {
30 try {
31 this.environment = client;
32 this.visualizer.registerEnvironment(client);
33 } catch (RemoteException e) {
34
35 disconnect();
36 e.printStackTrace();
37 }
38 }
39
40 private void setConnected(boolean connected) {
41 this.connected = connected;
42 connectedFlag.setFlag(connected);
43 }
44
45 public Flag<Boolean> getConnectedFlag() {
46 return connectedFlag;
47 }
48
49 public void disconnect() {
50 try {
51 if (visualizer != null)
52 visualizer.unregisterEnvironment(environment);
53 } catch (RemoteException e) {
54
55
56 }
57
58 environment = null;
59
60 setConnected(false);
61 }
62
63 }