diff options
author | Bernard Normier <bernard@zeroc.com> | 2005-09-09 03:02:53 +0000 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2005-09-09 03:02:53 +0000 |
commit | 357aa0d72c8a2f676fa5566fb6f5fe4faabcffc9 (patch) | |
tree | 9707946f26ea39a50e74a3c14e37c38122a3a1a9 /java/src/IceGrid/TreeNode/Adapters.java | |
parent | fixed another ubg. (diff) | |
download | ice-357aa0d72c8a2f676fa5566fb6f5fe4faabcffc9.tar.bz2 ice-357aa0d72c8a2f676fa5566fb6f5fe4faabcffc9.tar.xz ice-357aa0d72c8a2f676fa5566fb6f5fe4faabcffc9.zip |
First saving support
Diffstat (limited to 'java/src/IceGrid/TreeNode/Adapters.java')
-rwxr-xr-x | java/src/IceGrid/TreeNode/Adapters.java | 97 |
1 files changed, 87 insertions, 10 deletions
diff --git a/java/src/IceGrid/TreeNode/Adapters.java b/java/src/IceGrid/TreeNode/Adapters.java index 0bc6d57eb28..977fd3cf122 100755 --- a/java/src/IceGrid/TreeNode/Adapters.java +++ b/java/src/IceGrid/TreeNode/Adapters.java @@ -8,47 +8,124 @@ // **********************************************************************
package IceGrid.TreeNode;
+import java.awt.event.ActionEvent;
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+import javax.swing.JPopupMenu;
+
import IceGrid.AdapterDescriptor;
import IceGrid.Model;
import IceGrid.Utils;
class Adapters extends Parent
{
+ static class PopupMenu extends JPopupMenu
+ {
+ PopupMenu()
+ {
+ _new = new AbstractAction("New")
+ {
+ public void actionPerformed(ActionEvent e)
+ {
+ _adapters.newAdapter();
+ }
+ };
+
+ add(_new);
+ }
+
+ void setAdapters(Adapters adapters)
+ {
+ _adapters = adapters;
+ }
+
+ private Adapters _adapters;
+ private Action _new;
+ }
+
+ public JPopupMenu getPopupMenu()
+ {
+ if(_isEditable)
+ {
+ if(_popup == null)
+ {
+ _popup = new PopupMenu();
+ }
+ _popup.setAdapters(this);
+ return _popup;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ public void unregister()
+ {
+ java.util.Iterator p = _children.iterator();
+ while(p.hasNext())
+ {
+ Adapter adapter = (Adapter)p.next();
+ adapter.unregister();
+ }
+ }
+
+
Adapters(java.util.List descriptors, boolean isEditable,
Utils.Resolver resolver, Application application,
Model model)
throws DuplicateIdException
{
super("Adapters", model);
+ _descriptors = descriptors;
_isEditable = isEditable;
+ _resolver = resolver;
+ _popup = new PopupMenu();
- java.util.Iterator p = descriptors.iterator();
+ java.util.Iterator p = _descriptors.iterator();
while(p.hasNext())
{
AdapterDescriptor descriptor = (AdapterDescriptor)p.next();
String adapterName = Utils.substitute(descriptor.name,
- resolver);
+ _resolver);
addChild(new Adapter(adapterName, descriptor,
- resolver, application, _model));
+ _resolver, application, _model));
}
}
- public void unregister()
+ boolean isEditable()
{
- java.util.Iterator p = _children.iterator();
- while(p.hasNext())
+ return _isEditable;
+ }
+
+ void newAdapter()
+ {
+ String name = "NewAdapter";
+ int i = 0;
+ while(findChild(name) != null)
{
- Adapter adapter = (Adapter)p.next();
- adapter.unregister();
+ name = "NewAdapter-" + (++i);
}
+ Adapter adapter = new Adapter(name, _resolver, _model);
+ adapter.setParent(this);
+ _model.setSelectionPath(getPath());
+ adapter.displayProperties();
}
- boolean isEditable()
+ void addDescriptor(AdapterDescriptor descriptor)
{
- return _isEditable;
+ _descriptors.add(descriptor);
+ }
+
+ void popDescriptor()
+ {
+ _descriptors.remove(_descriptors.size() - 1);
}
+ private java.util.List _descriptors;
+ private Utils.Resolver _resolver;
private boolean _isEditable;
+ static private PopupMenu _popup;
}
|