16 */ |
16 */ |
17 |
17 |
18 |
18 |
19 package com.nokia.carbide.remoteconnections.interfaces; |
19 package com.nokia.carbide.remoteconnections.interfaces; |
20 |
20 |
21 import com.nokia.carbide.remoteconnections.interfaces.IConnection; |
|
22 import com.nokia.carbide.remoteconnections.interfaces.IConnectionType; |
|
23 |
|
24 import java.util.HashMap; |
21 import java.util.HashMap; |
25 import java.util.Map; |
22 import java.util.Map; |
|
23 |
|
24 import org.eclipse.jface.resource.ImageDescriptor; |
|
25 |
|
26 import com.nokia.carbide.remoteconnections.internal.api.IConnection2; |
|
27 import com.nokia.carbide.remoteconnections.internal.api.IConnection2.IConnectionStatus.EConnectionStatus; |
|
28 import com.nokia.cpp.internal.api.utils.core.Check; |
|
29 import com.nokia.cpp.internal.api.utils.core.ListenerList; |
26 |
30 |
27 /** |
31 /** |
28 * A standard implementation of IConnection |
32 * A standard implementation of IConnection |
29 */ |
33 */ |
30 public abstract class AbstractConnection implements IConnection { |
34 public abstract class AbstractConnection implements IConnection2 { |
|
35 |
|
36 public static class ConnectionStatus implements IConnectionStatus { |
|
37 private EConnectionStatus estatus; |
|
38 private String shortDescription; |
|
39 private String longDescription; |
|
40 |
|
41 public ConnectionStatus(EConnectionStatus estatus, String shortDescription, String longDescription) { |
|
42 this.estatus = estatus; |
|
43 this.shortDescription = shortDescription; |
|
44 this.longDescription = longDescription; |
|
45 } |
|
46 |
|
47 public EConnectionStatus getEConnectionStatus() { |
|
48 return estatus; |
|
49 } |
|
50 |
|
51 public String getShortDescription() { |
|
52 return shortDescription; |
|
53 } |
|
54 |
|
55 public String getLongDescription() { |
|
56 return longDescription; |
|
57 } |
|
58 |
|
59 public void setEStatus(EConnectionStatus estatus) { |
|
60 this.estatus = estatus; |
|
61 } |
|
62 |
|
63 public void setDescriptions(String shortDescription, String longDescription) { |
|
64 this.shortDescription = shortDescription; |
|
65 this.longDescription = longDescription; |
|
66 } |
|
67 } |
31 |
68 |
32 private final IConnectionType connectionType; |
69 private final IConnectionType connectionType; |
33 private final Map<String, String> settings; |
70 private final Map<String, String> settings; |
34 private String name; |
71 private String name; |
35 private String id; |
72 private String id; |
|
73 private boolean dynamic; |
|
74 private IConnectionStatus status; |
|
75 private ImageDescriptor imageDescriptor; |
|
76 private ListenerList<IConnectionStatusChangedListener> listeners; |
36 |
77 |
37 public AbstractConnection(IConnectionType connectionType, Map<String, String> settings) { |
78 public AbstractConnection(IConnectionType connectionType, Map<String, String> settings) { |
38 this.connectionType = connectionType; |
79 this.connectionType = connectionType; |
39 this.settings = new HashMap<String, String>(settings); |
80 this.settings = new HashMap<String, String>(settings); |
|
81 status = new ConnectionStatus(EConnectionStatus.NONE, "", ""); //$NON-NLS-1$ //$NON-NLS-2$ |
40 } |
82 } |
41 |
83 |
42 public void dispose() { |
84 public void dispose() { |
43 } |
85 } |
44 |
86 |
69 public synchronized void updateSettings(Map<String, String> newSettings) { |
111 public synchronized void updateSettings(Map<String, String> newSettings) { |
70 // System.out.println("settings update, thread="+Thread.currentThread().getId()); |
112 // System.out.println("settings update, thread="+Thread.currentThread().getId()); |
71 settings.putAll(newSettings); |
113 settings.putAll(newSettings); |
72 } |
114 } |
73 |
115 |
|
116 public boolean isDynamic() { |
|
117 return dynamic; |
|
118 } |
|
119 |
|
120 public void setDynamic(boolean dynamic) { |
|
121 this.dynamic = dynamic; |
|
122 } |
|
123 |
|
124 public IConnectionStatus getStatus() { |
|
125 return status; |
|
126 } |
|
127 |
|
128 public void setStatus(IConnectionStatus status) { |
|
129 Check.checkArg(status); |
|
130 this.status = status; |
|
131 fireStatusChanged(); |
|
132 } |
|
133 |
|
134 public void addStatusChangedListener(IConnectionStatusChangedListener listener) { |
|
135 if (listeners == null) |
|
136 listeners = new ListenerList<IConnectionStatusChangedListener>(); |
|
137 listeners.add(listener); |
|
138 } |
|
139 |
|
140 public void removeStatusChangedListener(IConnectionStatusChangedListener listener) { |
|
141 if (listeners != null) |
|
142 listeners.remove(listener); |
|
143 } |
|
144 |
|
145 public void fireStatusChanged() { |
|
146 if (listeners == null) |
|
147 return; |
|
148 for (IConnectionStatusChangedListener listener : listeners) { |
|
149 listener.statusChanged(status); |
|
150 } |
|
151 } |
|
152 |
|
153 public ImageDescriptor getImageDescriptor() { |
|
154 return imageDescriptor; |
|
155 } |
|
156 |
|
157 public void setImageDescriptor(ImageDescriptor imageDescriptor) { |
|
158 this.imageDescriptor = imageDescriptor; |
|
159 } |
|
160 |
|
161 |
74 } |
162 } |