diff options
Diffstat (limited to 'java/src/IceGrid/TreeNode/ServiceEditor.java')
-rwxr-xr-x | java/src/IceGrid/TreeNode/ServiceEditor.java | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/java/src/IceGrid/TreeNode/ServiceEditor.java b/java/src/IceGrid/TreeNode/ServiceEditor.java new file mode 100755 index 00000000000..8d7b6d725d2 --- /dev/null +++ b/java/src/IceGrid/TreeNode/ServiceEditor.java @@ -0,0 +1,165 @@ +// **********************************************************************
+//
+// Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+package IceGrid.TreeNode;
+
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import javax.swing.JComponent;
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextField;
+import javax.swing.JTree;
+
+import javax.swing.event.DocumentListener;
+
+import javax.swing.tree.TreePath;
+
+import com.jgoodies.forms.builder.DefaultFormBuilder;
+import com.jgoodies.forms.factories.Borders;
+import com.jgoodies.forms.factories.ButtonBarFactory;
+import com.jgoodies.forms.layout.FormLayout;
+import com.jgoodies.forms.util.LayoutStyle;
+
+import IceGrid.ServiceDescriptor;
+import IceGrid.ServiceInstanceDescriptor;
+import IceGrid.Model;
+import IceGrid.ObjectDescriptor;
+import IceGrid.TableDialog;
+import IceGrid.Utils;
+
+class ServiceEditor extends CommunicatorEditor
+{
+ ServiceEditor(JFrame parentFrame)
+ {
+ super(parentFrame);
+
+ _name.getDocument().addDocumentListener(_updateListener);
+ _entry.getDocument().addDocumentListener(_updateListener);
+ }
+
+ protected Utils.Resolver getResolver()
+ {
+ if(_target instanceof Service)
+ {
+ Service service = (Service)_target;
+
+ if(service.getModel().substitute())
+ {
+ return service.getResolver();
+ }
+ }
+ return null;
+ }
+
+ ServiceDescriptor getServiceDescriptor()
+ {
+ if(_target instanceof Service)
+ {
+ return ((Service)_target).getServiceDescriptor();
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ JComponent getComponent()
+ {
+ if(_panel == null)
+ {
+ //
+ // Build everything using JGoodies's DefaultFormBuilder
+ //
+ FormLayout layout = new FormLayout(
+ "right:pref, 3dlu, fill:pref:grow, 3dlu, pref", "");
+ DefaultFormBuilder builder = new DefaultFormBuilder(layout);
+ builder.setBorder(Borders.DLU2_BORDER);
+ builder.setRowGroupingEnabled(true);
+ builder.setLineGapSize(LayoutStyle.getCurrent().getLinePad());
+
+ builder.append("Name");
+ builder.append(_name, 3);
+ builder.nextLine();
+
+ //
+ // Add Communicator fields
+ //
+ add(builder);
+
+ builder.append("Entry");
+ builder.append(_entry, 3);
+ builder.nextLine();
+
+ _panel = buildPanel(builder.getPanel());
+ }
+ return _panel;
+ }
+
+
+ //
+ // From Editor:
+ //
+ void writeDescriptor()
+ {
+ ServiceDescriptor descriptor = getServiceDescriptor();
+ descriptor.name = _name.getText();
+ descriptor.entry = _entry.getText();
+ }
+
+ boolean isSimpleUpdate()
+ {
+ return getServiceDescriptor().name.equals(_name.getText());
+ }
+
+ void show(Service service)
+ {
+ //
+ // If it's a template instance, it's shown using
+ // ServiceInstanceEditor.show()
+ //
+ assert ((ServiceInstanceDescriptor)service.getDescriptor()).descriptor
+ != null;
+
+ detectUpdates(false);
+ setTarget(service);
+
+ ServiceDescriptor descriptor = service.getServiceDescriptor();
+ Model model = service.getModel();
+
+ Utils.Resolver resolver = getResolver();
+
+ boolean isEditable = service.isEditable() && resolver == null;
+
+ _name.setText(
+ Utils.substitute(descriptor.name, resolver));
+ _name.setEditable(isEditable);
+
+ _entry.setText(
+ Utils.substitute(descriptor.entry, resolver));
+ _entry.setEditable(isEditable);
+
+ show(descriptor, isEditable);
+
+ _applyButton.setEnabled(service.isEphemeral());
+ _discardButton.setEnabled(service.isEphemeral());
+ detectUpdates(true);
+ }
+
+ private JTextField _name = new JTextField(20);
+ private JTextField _entry = new JTextField(20);
+}
|