diff options
author | Bernard Normier <bernard@zeroc.com> | 2006-09-15 19:42:39 +0000 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2006-09-15 19:42:39 +0000 |
commit | 926a34c0cde3bb59a64c6906442246015290c310 (patch) | |
tree | 247d19ba42bd29fb7b60d96ac936ca91d497357b /java/src/IceGridGUI/Application/ApplicationEditor.java | |
parent | Merged fixes from 3.1 branch (diff) | |
download | ice-926a34c0cde3bb59a64c6906442246015290c310.tar.bz2 ice-926a34c0cde3bb59a64c6906442246015290c310.tar.xz ice-926a34c0cde3bb59a64c6906442246015290c310.zip |
dos2unix
Diffstat (limited to 'java/src/IceGridGUI/Application/ApplicationEditor.java')
-rwxr-xr-x | java/src/IceGridGUI/Application/ApplicationEditor.java | 504 |
1 files changed, 252 insertions, 252 deletions
diff --git a/java/src/IceGridGUI/Application/ApplicationEditor.java b/java/src/IceGridGUI/Application/ApplicationEditor.java index 98252d32962..474d676ed7c 100755 --- a/java/src/IceGridGUI/Application/ApplicationEditor.java +++ b/java/src/IceGridGUI/Application/ApplicationEditor.java @@ -1,252 +1,252 @@ -// **********************************************************************
-//
-// Copyright (c) 2003-2006 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 IceGridGUI.Application;
-
-import java.awt.event.ActionEvent;
-
-import javax.swing.AbstractAction;
-import javax.swing.Action;
-import javax.swing.JButton;
-import javax.swing.JComponent;
-import javax.swing.JComboBox;
-import javax.swing.JOptionPane;
-import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
-import javax.swing.JTextField;
-
-import com.jgoodies.forms.builder.DefaultFormBuilder;
-import com.jgoodies.forms.layout.CellConstraints;
-
-import IceGrid.*;
-import IceGridGUI.*;
-
-class ApplicationEditor extends Editor
-{
- protected boolean applyUpdate()
- {
- Root root = (Root)_target;
- MainPane mainPane = _target.getCoordinator().getMainPane();
-
- root.disableSelectionListener();
- try
- {
- if(isSimpleUpdate())
- {
- writeDescriptor();
- root.updated();
- root.getEditable().markModified();
- }
- else
- {
- //
- // Save to be able to rollback
- //
- ApplicationDescriptor savedDescriptor = root.saveDescriptor();
- writeDescriptor();
- try
- {
- root.rebuild();
- }
- catch(UpdateFailedException e)
- {
- root.restoreDescriptor(savedDescriptor);
- JOptionPane.showMessageDialog(
- root.getCoordinator().getMainFrame(),
- e.toString(),
- "Apply failed",
- JOptionPane.ERROR_MESSAGE);
- return false;
- }
- //
- // Success
- //
- root.updated();
- root.getEditable().markModified();
-
- if(!savedDescriptor.name.equals(root.getId()))
- {
- mainPane.resetTitle(root);
- }
- }
-
- _applyButton.setEnabled(false);
- _discardButton.setEnabled(false);
- return true;
- }
- finally
- {
- root.enableSelectionListener();
- }
- }
-
- ApplicationEditor()
- {
- _name.getDocument().addDocumentListener(_updateListener);
- _description.getDocument().addDocumentListener(_updateListener);
-
- //
- // Variables
- //
- _variables = new MapField(this, "Name", "Value", false);
-
- //
- // Distrib
- //
- _distrib = new JComboBox(new Object[]{NO_DISTRIB, DEFAULT_DISTRIB});
- _distrib.setEditable(true);
- _distrib.setToolTipText("The proxy to the IcePatch2 server holding your files");
-
- JTextField distribTextField = (JTextField)
- _distrib.getEditor().getEditorComponent();
- distribTextField.getDocument().addDocumentListener(
- _updateListener);
-
- _distribDirs.getDocument().addDocumentListener(_updateListener);
- _distribDirs.setToolTipText(
- "<html>Include only these directories when patching.<br>"
- + "Use whitespace as separator; use double-quotes around directories containing whitespaces</html>");
-
- }
-
- protected void appendProperties(DefaultFormBuilder builder)
- {
- builder.append("Name");
- builder.append(_name, 3);
-
- builder.append("Description");
- builder.nextLine();
- builder.append("");
- builder.nextRow(-2);
- CellConstraints cc = new CellConstraints();
- JScrollPane scrollPane = new JScrollPane(_description);
- builder.add(scrollPane,
- cc.xywh(builder.getColumn(), builder.getRow(), 3, 3));
- builder.nextRow(2);
- builder.nextLine();
-
- builder.append("Variables");
- builder.nextLine();
- builder.append("");
- builder.nextLine();
- builder.append("");
- builder.nextLine();
- builder.append("");
- builder.nextRow(-6);
- scrollPane = new JScrollPane(_variables);
- builder.add(scrollPane,
- cc.xywh(builder.getColumn(), builder.getRow(), 3, 7));
- builder.nextRow(6);
- builder.nextLine();
-
- JComponent c = builder.appendSeparator("Distribution");
- c.setToolTipText("Files shared by all servers in your application");
- builder.append("IcePatch2 Proxy");
- builder.append(_distrib, 3);
- builder.nextLine();
- builder.append("Directories");
- builder.append(_distribDirs, 3);
- builder.nextLine();
- }
-
- protected void buildPropertiesPanel()
- {
- super.buildPropertiesPanel();
- _propertiesPanel.setName("Application Properties");
- }
-
- boolean isSimpleUpdate()
- {
- ApplicationDescriptor descriptor = (ApplicationDescriptor)_target.getDescriptor();
- return descriptor.name.equals(_name.getText().trim())
- && _variables.get().equals(descriptor.variables);
- }
-
- void writeDescriptor()
- {
- ApplicationDescriptor descriptor = (ApplicationDescriptor)_target.getDescriptor();
- descriptor.name = _name.getText().trim();
- descriptor.variables = _variables.get();
- descriptor.description = _description.getText();
-
- if(_distrib.getSelectedItem() == NO_DISTRIB)
- {
- descriptor.distrib.icepatch = "";
- }
- else
- {
- descriptor.distrib.icepatch = _distrib.getSelectedItem().toString().trim();
- }
- descriptor.distrib.directories = _distribDirs.getList();
- }
-
- protected boolean validate()
- {
- return check(new String[]{"Name", _name.getText().trim()});
- }
-
- void show(Root root)
- {
- detectUpdates(false);
- _target = root;
-
- Utils.Resolver resolver = getDetailResolver();
- boolean isEditable = (resolver == null);
-
- ApplicationDescriptor descriptor =
- (ApplicationDescriptor)root.getDescriptor();
-
- _name.setText(descriptor.name);
- _name.setEditable(!root.isLive());
-
- _description.setText(
- Utils.substitute(descriptor.description, resolver));
- _description.setEditable(isEditable);
- _description.setOpaque(isEditable);
- _description.setToolTipText("An optional description for this application");
-
- _variables.set(descriptor.variables, resolver, isEditable);
-
- _distrib.setEnabled(true);
- _distrib.setEditable(true);
- String icepatch =
- Utils.substitute(descriptor.distrib.icepatch, resolver);
- if(icepatch.equals(""))
- {
- _distrib.setSelectedItem(NO_DISTRIB);
- }
- else
- {
- _distrib.setSelectedItem(icepatch);
- }
- _distrib.setEnabled(isEditable);
- _distrib.setEditable(isEditable);
-
- _distribDirs.setList(descriptor.distrib.directories, resolver);
- _distribDirs.setEditable(isEditable);
-
- _applyButton.setEnabled(false);
- _discardButton.setEnabled(false);
- detectUpdates(true);
- }
-
- static private final Object NO_DISTRIB = new Object()
- {
- public String toString()
- {
- return "None selected";
- }
- };
- static private final String DEFAULT_DISTRIB = "${application}.IcePatch2/server";
-
- private JTextField _name = new JTextField(20);
- private JTextArea _description = new JTextArea(3, 20);
- private MapField _variables;
- private JComboBox _distrib;
- private ListTextField _distribDirs = new ListTextField(20);
-}
+// ********************************************************************** +// +// Copyright (c) 2003-2006 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 IceGridGUI.Application; + +import java.awt.event.ActionEvent; + +import javax.swing.AbstractAction; +import javax.swing.Action; +import javax.swing.JButton; +import javax.swing.JComponent; +import javax.swing.JComboBox; +import javax.swing.JOptionPane; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.JTextField; + +import com.jgoodies.forms.builder.DefaultFormBuilder; +import com.jgoodies.forms.layout.CellConstraints; + +import IceGrid.*; +import IceGridGUI.*; + +class ApplicationEditor extends Editor +{ + protected boolean applyUpdate() + { + Root root = (Root)_target; + MainPane mainPane = _target.getCoordinator().getMainPane(); + + root.disableSelectionListener(); + try + { + if(isSimpleUpdate()) + { + writeDescriptor(); + root.updated(); + root.getEditable().markModified(); + } + else + { + // + // Save to be able to rollback + // + ApplicationDescriptor savedDescriptor = root.saveDescriptor(); + writeDescriptor(); + try + { + root.rebuild(); + } + catch(UpdateFailedException e) + { + root.restoreDescriptor(savedDescriptor); + JOptionPane.showMessageDialog( + root.getCoordinator().getMainFrame(), + e.toString(), + "Apply failed", + JOptionPane.ERROR_MESSAGE); + return false; + } + // + // Success + // + root.updated(); + root.getEditable().markModified(); + + if(!savedDescriptor.name.equals(root.getId())) + { + mainPane.resetTitle(root); + } + } + + _applyButton.setEnabled(false); + _discardButton.setEnabled(false); + return true; + } + finally + { + root.enableSelectionListener(); + } + } + + ApplicationEditor() + { + _name.getDocument().addDocumentListener(_updateListener); + _description.getDocument().addDocumentListener(_updateListener); + + // + // Variables + // + _variables = new MapField(this, "Name", "Value", false); + + // + // Distrib + // + _distrib = new JComboBox(new Object[]{NO_DISTRIB, DEFAULT_DISTRIB}); + _distrib.setEditable(true); + _distrib.setToolTipText("The proxy to the IcePatch2 server holding your files"); + + JTextField distribTextField = (JTextField) + _distrib.getEditor().getEditorComponent(); + distribTextField.getDocument().addDocumentListener( + _updateListener); + + _distribDirs.getDocument().addDocumentListener(_updateListener); + _distribDirs.setToolTipText( + "<html>Include only these directories when patching.<br>" + + "Use whitespace as separator; use double-quotes around directories containing whitespaces</html>"); + + } + + protected void appendProperties(DefaultFormBuilder builder) + { + builder.append("Name"); + builder.append(_name, 3); + + builder.append("Description"); + builder.nextLine(); + builder.append(""); + builder.nextRow(-2); + CellConstraints cc = new CellConstraints(); + JScrollPane scrollPane = new JScrollPane(_description); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 3)); + builder.nextRow(2); + builder.nextLine(); + + builder.append("Variables"); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + builder.nextLine(); + builder.append(""); + builder.nextRow(-6); + scrollPane = new JScrollPane(_variables); + builder.add(scrollPane, + cc.xywh(builder.getColumn(), builder.getRow(), 3, 7)); + builder.nextRow(6); + builder.nextLine(); + + JComponent c = builder.appendSeparator("Distribution"); + c.setToolTipText("Files shared by all servers in your application"); + builder.append("IcePatch2 Proxy"); + builder.append(_distrib, 3); + builder.nextLine(); + builder.append("Directories"); + builder.append(_distribDirs, 3); + builder.nextLine(); + } + + protected void buildPropertiesPanel() + { + super.buildPropertiesPanel(); + _propertiesPanel.setName("Application Properties"); + } + + boolean isSimpleUpdate() + { + ApplicationDescriptor descriptor = (ApplicationDescriptor)_target.getDescriptor(); + return descriptor.name.equals(_name.getText().trim()) + && _variables.get().equals(descriptor.variables); + } + + void writeDescriptor() + { + ApplicationDescriptor descriptor = (ApplicationDescriptor)_target.getDescriptor(); + descriptor.name = _name.getText().trim(); + descriptor.variables = _variables.get(); + descriptor.description = _description.getText(); + + if(_distrib.getSelectedItem() == NO_DISTRIB) + { + descriptor.distrib.icepatch = ""; + } + else + { + descriptor.distrib.icepatch = _distrib.getSelectedItem().toString().trim(); + } + descriptor.distrib.directories = _distribDirs.getList(); + } + + protected boolean validate() + { + return check(new String[]{"Name", _name.getText().trim()}); + } + + void show(Root root) + { + detectUpdates(false); + _target = root; + + Utils.Resolver resolver = getDetailResolver(); + boolean isEditable = (resolver == null); + + ApplicationDescriptor descriptor = + (ApplicationDescriptor)root.getDescriptor(); + + _name.setText(descriptor.name); + _name.setEditable(!root.isLive()); + + _description.setText( + Utils.substitute(descriptor.description, resolver)); + _description.setEditable(isEditable); + _description.setOpaque(isEditable); + _description.setToolTipText("An optional description for this application"); + + _variables.set(descriptor.variables, resolver, isEditable); + + _distrib.setEnabled(true); + _distrib.setEditable(true); + String icepatch = + Utils.substitute(descriptor.distrib.icepatch, resolver); + if(icepatch.equals("")) + { + _distrib.setSelectedItem(NO_DISTRIB); + } + else + { + _distrib.setSelectedItem(icepatch); + } + _distrib.setEnabled(isEditable); + _distrib.setEditable(isEditable); + + _distribDirs.setList(descriptor.distrib.directories, resolver); + _distribDirs.setEditable(isEditable); + + _applyButton.setEnabled(false); + _discardButton.setEnabled(false); + detectUpdates(true); + } + + static private final Object NO_DISTRIB = new Object() + { + public String toString() + { + return "None selected"; + } + }; + static private final String DEFAULT_DISTRIB = "${application}.IcePatch2/server"; + + private JTextField _name = new JTextField(20); + private JTextArea _description = new JTextArea(3, 20); + private MapField _variables; + private JComboBox _distrib; + private ListTextField _distribDirs = new ListTextField(20); +} |