diff options
Diffstat (limited to 'java/src/IceGridGUI/Application/CommunicatorChildEditor.java')
-rwxr-xr-x | java/src/IceGridGUI/Application/CommunicatorChildEditor.java | 244 |
1 files changed, 122 insertions, 122 deletions
diff --git a/java/src/IceGridGUI/Application/CommunicatorChildEditor.java b/java/src/IceGridGUI/Application/CommunicatorChildEditor.java index b80d4e9f625..d9ccbe65788 100755 --- a/java/src/IceGridGUI/Application/CommunicatorChildEditor.java +++ b/java/src/IceGridGUI/Application/CommunicatorChildEditor.java @@ -1,122 +1,122 @@ -// **********************************************************************
-//
-// 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 javax.swing.JOptionPane;
-
-import IceGrid.*;
-import IceGridGUI.*;
-
-abstract class CommunicatorChildEditor extends Editor
-{
- abstract void writeDescriptor();
- abstract boolean isSimpleUpdate();
- abstract Communicator.ChildList getChildList();
-
- void postUpdate() {}
-
- protected boolean applyUpdate()
- {
- Root root = _target.getRoot();
- root.disableSelectionListener();
- try
- {
- if(_target.isEphemeral())
- {
- Communicator.ChildList childList = getChildList();
-
- writeDescriptor();
- Object descriptor = _target.getDescriptor();
- _target.destroy(); // just removes the child
-
- try
- {
- childList.tryAdd(descriptor);
- }
- catch(UpdateFailedException e)
- {
- //
- // Restore ephemeral
- //
- try
- {
- childList.addChild(_target, true);
- }
- catch(UpdateFailedException die)
- {
- assert false;
- }
-
- JOptionPane.showMessageDialog(
- root.getCoordinator().getMainFrame(),
- e.toString(),
- "Apply failed",
- JOptionPane.ERROR_MESSAGE);
-
- root.setSelectedNode(_target);
- return false;
- }
-
- //
- // Success
- //
- _target = childList.findChildWithDescriptor(descriptor);
- root.updated();
- root.setSelectedNode(_target);
- }
- else if(isSimpleUpdate())
- {
- writeDescriptor();
- root.updated();
- ((Communicator)_target.getParent()).getEnclosingEditable().markModified();
- }
- else
- {
- //
- // Save to be able to rollback
- //
- Object savedDescriptor = ((DescriptorHolder)_target).saveDescriptor();
- Communicator.ChildList childList = getChildList();
- writeDescriptor();
- try
- {
- childList.tryUpdate(_target);
- }
- catch(UpdateFailedException e)
- {
- ((DescriptorHolder)_target).restoreDescriptor(savedDescriptor);
- JOptionPane.showMessageDialog(
- root.getCoordinator().getMainFrame(),
- e.toString(),
- "Apply failed",
- JOptionPane.ERROR_MESSAGE);
- return false;
- }
-
- //
- // Success
- //
- _target = childList.findChildWithDescriptor(_target.getDescriptor());
- root.updated();
- root.setSelectedNode(_target);
- }
-
- postUpdate();
-
- root.getCoordinator().getCurrentTab().showNode(_target);
- _applyButton.setEnabled(false);
- _discardButton.setEnabled(false);
- return true;
- }
- finally
- {
- root.enableSelectionListener();
- }
- }
-}
+// ********************************************************************** +// +// 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 javax.swing.JOptionPane; + +import IceGrid.*; +import IceGridGUI.*; + +abstract class CommunicatorChildEditor extends Editor +{ + abstract void writeDescriptor(); + abstract boolean isSimpleUpdate(); + abstract Communicator.ChildList getChildList(); + + void postUpdate() {} + + protected boolean applyUpdate() + { + Root root = _target.getRoot(); + root.disableSelectionListener(); + try + { + if(_target.isEphemeral()) + { + Communicator.ChildList childList = getChildList(); + + writeDescriptor(); + Object descriptor = _target.getDescriptor(); + _target.destroy(); // just removes the child + + try + { + childList.tryAdd(descriptor); + } + catch(UpdateFailedException e) + { + // + // Restore ephemeral + // + try + { + childList.addChild(_target, true); + } + catch(UpdateFailedException die) + { + assert false; + } + + JOptionPane.showMessageDialog( + root.getCoordinator().getMainFrame(), + e.toString(), + "Apply failed", + JOptionPane.ERROR_MESSAGE); + + root.setSelectedNode(_target); + return false; + } + + // + // Success + // + _target = childList.findChildWithDescriptor(descriptor); + root.updated(); + root.setSelectedNode(_target); + } + else if(isSimpleUpdate()) + { + writeDescriptor(); + root.updated(); + ((Communicator)_target.getParent()).getEnclosingEditable().markModified(); + } + else + { + // + // Save to be able to rollback + // + Object savedDescriptor = ((DescriptorHolder)_target).saveDescriptor(); + Communicator.ChildList childList = getChildList(); + writeDescriptor(); + try + { + childList.tryUpdate(_target); + } + catch(UpdateFailedException e) + { + ((DescriptorHolder)_target).restoreDescriptor(savedDescriptor); + JOptionPane.showMessageDialog( + root.getCoordinator().getMainFrame(), + e.toString(), + "Apply failed", + JOptionPane.ERROR_MESSAGE); + return false; + } + + // + // Success + // + _target = childList.findChildWithDescriptor(_target.getDescriptor()); + root.updated(); + root.setSelectedNode(_target); + } + + postUpdate(); + + root.getCoordinator().getCurrentTab().showNode(_target); + _applyButton.setEnabled(false); + _discardButton.setEnabled(false); + return true; + } + finally + { + root.enableSelectionListener(); + } + } +} |