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/Adapter.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/Adapter.java')
-rwxr-xr-x | java/src/IceGridGUI/Application/Adapter.java | 45 |
1 files changed, 40 insertions, 5 deletions
diff --git a/java/src/IceGridGUI/Application/Adapter.java b/java/src/IceGridGUI/Application/Adapter.java index 242c96fa7c0..52827efedaf 100755 --- a/java/src/IceGridGUI/Application/Adapter.java +++ b/java/src/IceGridGUI/Application/Adapter.java @@ -17,6 +17,12 @@ import IceGridGUI.*; class Adapter extends TreeNode implements DescriptorHolder { + static class AdapterCopy + { + AdapterDescriptor descriptor; + java.util.Map parentProperties; + } + static public AdapterDescriptor copyDescriptor(AdapterDescriptor d) { return (AdapterDescriptor)d.clone(); @@ -44,7 +50,7 @@ class Adapter extends TreeNode implements DescriptorHolder Object clipboard = getCoordinator().getClipboard(); actions[PASTE] = clipboard != null && - (clipboard instanceof AdapterDescriptor + (clipboard instanceof AdapterCopy || clipboard instanceof DbEnvDescriptor); actions[DELETE] = true; @@ -60,7 +66,11 @@ class Adapter extends TreeNode implements DescriptorHolder public void copy() { - getCoordinator().setClipboard(copyDescriptor(_descriptor)); + AdapterCopy copy = new AdapterCopy(); + copy.descriptor = copyDescriptor(_descriptor); + copy.parentProperties = ((Communicator)_parent).propertiesMap(); + + getCoordinator().setClipboard(copy); getCoordinator().getActionsForMenu().get(PASTE).setEnabled(true); } @@ -135,11 +145,12 @@ class Adapter extends TreeNode implements DescriptorHolder } Adapter(Communicator parent, String adapterName, AdapterDescriptor descriptor, - boolean ephemeral) + java.util.Map parentProperties, boolean ephemeral) { super(parent, adapterName); _descriptor = descriptor; _ephemeral = ephemeral; + _parentProperties = parentProperties; } @@ -198,11 +209,34 @@ class Adapter extends TreeNode implements DescriptorHolder String getProperty(String property) { - return ((Communicator)_parent).getProperty(property); + if(_parentProperties != null) + { + return (String)_parentProperties.get(property); + } + else + { + return ((Communicator)_parent).getProperty(property); + } } String lookupPropertyValue(String val) { - return ((Communicator)_parent).lookupPropertyValue(val); + if(_parentProperties != null) + { + java.util.Iterator p = _parentProperties.entrySet().iterator(); + while(p.hasNext()) + { + java.util.Map.Entry entry = (java.util.Map.Entry)p.next(); + if(entry.getValue().equals(val)) + { + return (String)entry.getKey(); + } + } + return ""; + } + else + { + return ((Communicator)_parent).lookupPropertyValue(val); + } } void setProperty(String property, String newValue) { @@ -230,6 +264,7 @@ class Adapter extends TreeNode implements DescriptorHolder } private final boolean _ephemeral; + private final java.util.Map _parentProperties; // set only when ephemeral == true; private AdapterDescriptor _descriptor; private AdapterEditor _editor; |