1
1
// **********************************************************************
3
// Copyright (c) 2003-2009 ZeroC, Inc. All rights reserved.
3
// Copyright (c) 2003-2010 ZeroC, Inc. All rights reserved.
5
5
// This copy of Ice is licensed to you under the terms described in the
6
6
// ICE_LICENSE file included in this distribution.
8
8
// **********************************************************************
9
10
package IceGridGUI.Application;
11
12
import javax.swing.JMenuItem;
17
18
class ServerTemplates extends Templates
19
static public java.util.Map
20
copyDescriptors(java.util.Map descriptors)
20
static public java.util.Map<String, TemplateDescriptor>
21
copyDescriptors(java.util.Map<String, TemplateDescriptor> descriptors)
22
java.util.Map copy = new java.util.HashMap();
23
java.util.Iterator p = descriptors.entrySet().iterator();
23
java.util.Map<String, TemplateDescriptor> copy = new java.util.HashMap<String, TemplateDescriptor>();
24
for(java.util.Map.Entry<String, TemplateDescriptor> p : descriptors.entrySet())
26
java.util.Map.Entry entry = (java.util.Map.Entry)p.next();
28
copy.put(entry.getKey(),
29
ServerTemplate.copyDescriptor(
30
(TemplateDescriptor)entry.getValue()));
26
copy.put(p.getKey(), ServerTemplate.copyDescriptor(p.getValue()));
40
36
boolean[] actions = new boolean[ACTION_COUNT];
41
37
actions[NEW_TEMPLATE_SERVER] = true;
42
38
actions[NEW_TEMPLATE_SERVER_ICEBOX] = true;
44
40
Object clipboard = getCoordinator().getClipboard();
45
41
if(clipboard != null && clipboard instanceof TemplateDescriptor)
65
62
public void newTemplateServer()
67
64
newServerTemplate(new TemplateDescriptor(
68
PlainServer.newServerDescriptor(),
69
new java.util.LinkedList(),
70
new java.util.TreeMap()));
65
PlainServer.newServerDescriptor(),
66
new java.util.LinkedList<String>(),
67
new java.util.TreeMap<String, String>()));
72
70
public void newTemplateServerIceBox()
74
72
newServerTemplate(new TemplateDescriptor(
75
PlainServer.newIceBoxDescriptor(),
76
new java.util.LinkedList(),
77
new java.util.TreeMap()));
73
PlainServer.newIceBoxDescriptor(),
74
new java.util.LinkedList<String>(),
75
new java.util.TreeMap<String, String>()));
79
78
public void paste()
81
80
Object descriptor = getCoordinator().getClipboard();
92
91
newServerTemplate(td);
96
ServerTemplates(Root parent, java.util.Map descriptors)
94
ServerTemplates(Root parent, java.util.Map<String, TemplateDescriptor> descriptors)
97
95
throws UpdateFailedException
99
97
super(parent, "Server templates");
101
99
_descriptors = descriptors;
103
java.util.Iterator p = _descriptors.entrySet().iterator();
101
for(java.util.Map.Entry<String, TemplateDescriptor> p : _descriptors.entrySet())
107
java.util.Map.Entry entry = (java.util.Map.Entry)p.next();
108
insertChild(new ServerTemplate(false, this,
109
(String)entry.getKey(),
110
(TemplateDescriptor)entry.getValue()),
103
insertChild(new ServerTemplate(false, this, p.getKey(), p.getValue()), false);
123
java.util.Map getUpdates()
115
java.util.Map<String, TemplateDescriptor> getUpdates()
125
java.util.Map updates = new java.util.HashMap();
126
java.util.Iterator p = _children.iterator();
117
java.util.Map<String, TemplateDescriptor> updates = new java.util.HashMap<String, TemplateDescriptor>();
118
for(TreeNodeBase p : _children)
129
ServerTemplate t = (ServerTemplate)p.next();
120
ServerTemplate t = (ServerTemplate)p;
130
121
if(t.getEditable().isNew() || t.getEditable().isModified())
132
updates.put(t.getId(), t.getDescriptor());
123
updates.put(t.getId(), (TemplateDescriptor)t.getDescriptor());
140
131
_editable.commit();
141
java.util.Iterator p = _children.iterator();
132
for(TreeNodeBase p : _children)
144
ServerTemplate st = (ServerTemplate)p.next();
134
ServerTemplate st = (ServerTemplate)p;
149
java.util.List findServiceInstances(String template)
139
java.util.List<ServiceInstance> findServiceInstances(String template)
151
java.util.List result = new java.util.LinkedList();
152
java.util.Iterator p = _children.iterator();
141
java.util.List<ServiceInstance> result = new java.util.LinkedList<ServiceInstance>();
142
for(TreeNodeBase p : _children)
155
ServerTemplate t = (ServerTemplate)p.next();
144
ServerTemplate t = (ServerTemplate)p;
156
145
result.addAll(t.findServiceInstances(template));
161
150
void removeServiceInstances(String template)
163
java.util.Iterator p = _children.iterator();
152
for(TreeNodeBase p : _children)
166
ServerTemplate t = (ServerTemplate)p.next();
154
ServerTemplate t = (ServerTemplate)p;
167
155
t.removeServiceInstances(template);
171
159
void newServerTemplate(TemplateDescriptor descriptor)
195
183
void tryAdd(String newId, TemplateDescriptor descriptor)
196
184
throws UpdateFailedException
198
insertChild(new ServerTemplate(true, this, newId, descriptor),
186
insertChild(new ServerTemplate(true, this, newId, descriptor), true);
200
187
_descriptors.put(newId, descriptor);
203
void update(java.util.Map updates, String[] removeTemplates,
204
java.util.Set serviceTemplates)
190
void update(java.util.Map<String, TemplateDescriptor> updates, String[] removeTemplates,
191
java.util.Set<String> serviceTemplates)
205
192
throws UpdateFailedException
208
195
// Note: _descriptors is updated by Root
211
198
Root root = getRoot();
219
206
// One big set of updates, followed by inserts
221
java.util.Vector newChildren = new java.util.Vector();
222
java.util.Vector updatedChildren = new java.util.Vector();
224
java.util.Iterator p = updates.entrySet().iterator();
208
java.util.List<TreeNodeBase> newChildren = new java.util.ArrayList<TreeNodeBase>();
209
java.util.List<TreeNodeBase> updatedChildren = new java.util.LinkedList<TreeNodeBase>();
211
for(java.util.Map.Entry<String, TemplateDescriptor> p : updates.entrySet())
227
java.util.Map.Entry entry = (java.util.Map.Entry)p.next();
228
String name = (String)entry.getKey();
229
TemplateDescriptor templateDescriptor
230
= (TemplateDescriptor)entry.getValue();
213
String name = p.getKey();
214
TemplateDescriptor templateDescriptor = p.getValue();
231
215
ServerTemplate child = (ServerTemplate)findChild(name);
232
216
if(child == null)
239
223
updatedChildren.add(child);
244
228
// Rebuild template affected by service template updates
246
p = serviceTemplates.iterator();
230
for(String p : serviceTemplates)
249
java.util.List serviceInstances =
250
findServiceInstances((String)p.next());
251
java.util.Iterator q = serviceInstances.iterator();
232
java.util.List<ServiceInstance> serviceInstances = findServiceInstances(p);
233
for(ServiceInstance q : serviceInstances)
254
ServiceInstance service = (ServiceInstance)q.next();
255
ServerTemplate serverTemplate =
256
(ServerTemplate)service.getParent();
258
if(!updatedChildren.contains(serverTemplate) &&
259
!newChildren.contains(serverTemplate))
235
ServerTemplate serverTemplate = (ServerTemplate)q.getParent();
237
if(!updatedChildren.contains(serverTemplate) && !newChildren.contains(serverTemplate))
261
239
serverTemplate.rebuild();
262
240
updatedChildren.add(serverTemplate);
267
245
childrenChanged(updatedChildren);
268
246
insertChildren(newChildren, true);
271
249
void removeDescriptor(String id)
273
251
_descriptors.remove(id);
276
254
Object getDescriptor()
278
256
return _descriptors;
281
private java.util.Map _descriptors;
259
private java.util.Map<String, TemplateDescriptor> _descriptors;
282
260
static private JPopupMenu _popup;