diff options
author | Bernard Normier <bernard@zeroc.com> | 2007-07-11 12:47:56 -0400 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2007-07-11 12:49:04 -0400 |
commit | 6d023362db45e2efb3109dcf922302f3a41f6e20 (patch) | |
tree | 409c47d97686df62ee9d12cc7a22fc0a273120e2 /java/src/IceGridGUI/Application/Communicator.java | |
parent | Fixed bug 2288 (diff) | |
download | ice-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-x | java/src/IceGridGUI/Application/Communicator.java | 55 |
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 |