summaryrefslogtreecommitdiff
path: root/java/src/IceGridGUI/Application/Communicator.java
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2007-07-11 12:47:56 -0400
committerBernard Normier <bernard@zeroc.com>2007-07-11 12:49:04 -0400
commit6d023362db45e2efb3109dcf922302f3a41f6e20 (patch)
tree409c47d97686df62ee9d12cc7a22fc0a273120e2 /java/src/IceGridGUI/Application/Communicator.java
parentFixed bug 2288 (diff)
downloadice-6d023362db45e2efb3109dcf922302f3a41f6e20.tar.bz2
ice-6d023362db45e2efb3109dcf922302f3a41f6e20.tar.xz
ice-6d023362db45e2efb3109dcf922302f3a41f6e20.zip
Fixed bug #2081 (adapter copying)
Diffstat (limited to 'java/src/IceGridGUI/Application/Communicator.java')
-rwxr-xr-xjava/src/IceGridGUI/Application/Communicator.java55
1 files changed, 46 insertions, 9 deletions
diff --git a/java/src/IceGridGUI/Application/Communicator.java b/java/src/IceGridGUI/Application/Communicator.java
index dd13244ebf3..571e4d823b8 100755
--- a/java/src/IceGridGUI/Application/Communicator.java
+++ b/java/src/IceGridGUI/Application/Communicator.java
@@ -158,10 +158,10 @@ abstract class Communicator extends TreeNode implements DescriptorHolder
{
Object descriptor = getCoordinator().getClipboard();
- if(descriptor instanceof AdapterDescriptor)
+ if(descriptor instanceof Adapter.AdapterCopy)
{
- AdapterDescriptor d = (AdapterDescriptor)descriptor;
- _adapters.newAdapter(Adapter.copyDescriptor(d));
+ Adapter.AdapterCopy copy = (Adapter.AdapterCopy)descriptor;
+ _adapters.newAdapter(Adapter.copyDescriptor(copy.descriptor), new java.util.HashMap(copy.parentProperties));
}
else if(descriptor instanceof DbEnvDescriptor)
{
@@ -503,20 +503,44 @@ abstract class Communicator extends TreeNode implements DescriptorHolder
new java.util.LinkedList()
);
- newAdapter(descriptor);
+ newAdapter(descriptor, null);
}
TreeNode createChild(Object descriptor)
{
AdapterDescriptor ad = (AdapterDescriptor)descriptor;
String name = Utils.substitute(ad.name, getResolver());
- return new Adapter(Communicator.this, name, ad, false);
+ return new Adapter(Communicator.this, name, ad, null, false);
}
- private void newAdapter(AdapterDescriptor descriptor)
+ private void newAdapter(AdapterDescriptor descriptor, java.util.Map parentProperties)
{
- descriptor.name = makeNewChildId(descriptor.name);
- Adapter adapter = new Adapter(Communicator.this, descriptor.name, descriptor, true);
+ String newName = makeNewChildId(descriptor.name);
+
+ if(!newName.equals(descriptor.name) && parentProperties != null)
+ {
+ //
+ // Adjust Endpoints and PublishedEnpoints
+ //
+
+ String key = descriptor.name + ".Endpoints";
+ String val = (String)parentProperties.remove(key);
+ if(val != null)
+ {
+ parentProperties.put(newName + ".Endpoints", val);
+ }
+
+ key = descriptor.name + ".PublishedEndpoints";
+ val = (String)parentProperties.remove(key);
+ if(val != null)
+ {
+ parentProperties.put(newName + ".PublishedEndpoints", val);
+ }
+ }
+
+ descriptor.name = newName;
+
+ Adapter adapter = new Adapter(Communicator.this, descriptor.name, descriptor, parentProperties, true);
try
{
addChild(adapter, true);
@@ -527,7 +551,6 @@ abstract class Communicator extends TreeNode implements DescriptorHolder
}
getRoot().setSelectedNode(adapter);
}
-
}
class DbEnvs extends ChildList
@@ -919,6 +942,20 @@ abstract class Communicator extends TreeNode implements DescriptorHolder
}
}
}
+
+ java.util.Map propertiesMap()
+ {
+ java.util.Map result = new java.util.HashMap();
+
+ CommunicatorDescriptor descriptor = getCommunicatorDescriptor();
+ java.util.Iterator p = descriptor.propertySet.properties.iterator();
+ while(p.hasNext())
+ {
+ PropertyDescriptor pd = (PropertyDescriptor)p.next();
+ result.put(pd.name, pd.value);
+ }
+ return result;
+ }
//
// Children