summaryrefslogtreecommitdiff
path: root/java/src/IceGrid/TreeNode/Application.java
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2006-03-29 21:21:02 +0000
committerBernard Normier <bernard@zeroc.com>2006-03-29 21:21:02 +0000
commit20744ae1f1182d08e26b175f59d14041aabaf754 (patch)
tree937d125b80663966b3a61e13e744e28daf1f22da /java/src/IceGrid/TreeNode/Application.java
parentJava metadata (diff)
downloadice-20744ae1f1182d08e26b175f59d14041aabaf754.tar.bz2
ice-20744ae1f1182d08e26b175f59d14041aabaf754.tar.xz
ice-20744ae1f1182d08e26b175f59d14041aabaf754.zip
IceGrid GUI refactoring
Diffstat (limited to 'java/src/IceGrid/TreeNode/Application.java')
-rwxr-xr-xjava/src/IceGrid/TreeNode/Application.java701
1 files changed, 0 insertions, 701 deletions
diff --git a/java/src/IceGrid/TreeNode/Application.java b/java/src/IceGrid/TreeNode/Application.java
deleted file mode 100755
index cfa21aa6a0a..00000000000
--- a/java/src/IceGrid/TreeNode/Application.java
+++ /dev/null
@@ -1,701 +0,0 @@
-// **********************************************************************
-//
-// 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 IceGrid.TreeNode;
-
-import java.awt.Cursor;
-import java.awt.Component;
-
-import javax.swing.Icon;
-import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
-import javax.swing.JPopupMenu;
-import javax.swing.SwingUtilities;
-import javax.swing.JTree;
-import javax.swing.tree.DefaultTreeCellRenderer;
-
-import IceGrid.AMI_Admin_patchApplication;
-import IceGrid.AdapterDynamicInfo;
-import IceGrid.ApplicationDescriptor;
-import IceGrid.ApplicationUpdateDescriptor;
-import IceGrid.DistributionDescriptor;
-import IceGrid.Model;
-import IceGrid.NodeInfo;
-import IceGrid.ServerDynamicInfo;
-import IceGrid.ServerState;
-import IceGrid.SimpleInternalFrame;
-import IceGrid.TemplateDescriptor;
-import IceGrid.Utils;
-
-
-public class Application extends EditableParent
-{
- static public ApplicationDescriptor
- copyDescriptor(ApplicationDescriptor ad)
- {
- ApplicationDescriptor copy = (ApplicationDescriptor)ad.clone();
-
- copy.replicaGroups =
- ReplicaGroups.copyDescriptors(copy.replicaGroups);
-
- copy.serverTemplates =
- ServerTemplates.copyDescriptors(copy.serverTemplates);
-
- copy.serviceTemplates =
- ServiceTemplates.copyDescriptors(copy.serviceTemplates);
-
- copy.nodes = Nodes.copyDescriptors(copy.nodes);
-
- copy.distrib = (DistributionDescriptor)copy.distrib.clone();
- return copy;
- }
-
-
- public Component getTreeCellRendererComponent(
- JTree tree,
- Object value,
- boolean sel,
- boolean expanded,
- boolean leaf,
- int row,
- boolean hasFocus)
- {
- if(_cellRenderer == null)
- {
- _cellRenderer = new DefaultTreeCellRenderer();
- _cellRenderer.setOpenIcon(
- Utils.getIcon("/icons/16x16/application_open.png"));
- _cellRenderer.setClosedIcon(
- Utils.getIcon("/icons/16x16/application_closed.png"));
- }
-
- return _cellRenderer.getTreeCellRendererComponent(
- tree, value, sel, expanded, leaf, row, hasFocus);
- }
-
-
- public boolean[] getAvailableActions()
- {
- boolean[] actions = new boolean[ACTION_COUNT];
-
- actions[COPY] = true;
- actions[DELETE] = true;
-
- Object descriptor = _model.getClipboard();
- if(descriptor != null)
- {
- actions[PASTE] = descriptor instanceof ApplicationDescriptor;
- }
- if(!_model.isUpdateInProgress() && _model.getAdmin() != null)
- {
- actions[APPLICATION_INSTALL_DISTRIBUTION] =
- !_descriptor.distrib.icepatch.equals("");
- }
-
- if(!_ephemeral)
- {
- actions[SHOW_VARS] = true;
- actions[SUBSTITUTE_VARS] = true;
- }
-
- actions[NEW_NODE] = (_nodes != null);
- actions[NEW_REPLICA_GROUP] = (_replicaGroups != null);
- actions[NEW_TEMPLATE_SERVER] = (_serverTemplates != null);
- actions[NEW_TEMPLATE_SERVER_ICEBOX] = (_serverTemplates != null);
- actions[NEW_TEMPLATE_SERVICE] = (_serviceTemplates != null);
-
- return actions;
- }
- public JPopupMenu getPopupMenu()
- {
- if(_popup == null)
- {
- _popup = new PopupMenu(_model);
-
- JMenuItem newNodeItem = new JMenuItem(_model.getActions()[NEW_NODE]);
- newNodeItem.setText("New node");
- _popup.add(newNodeItem);
-
- JMenuItem newReplicaGroupItem = new JMenuItem(_model.getActions()[NEW_REPLICA_GROUP]);
- newReplicaGroupItem.setText("New replica group");
- _popup.add(newReplicaGroupItem);
- _popup.addSeparator();
-
- JMenuItem newServerItem = new JMenuItem(_model.getActions()[NEW_TEMPLATE_SERVER]);
- newServerItem.setText("New server template");
- _popup.add(newServerItem);
- JMenuItem newIceBoxItem =
- new JMenuItem(_model.getActions()[NEW_TEMPLATE_SERVER_ICEBOX]);
- newIceBoxItem.setText("New IceBox server template");
- _popup.add(newIceBoxItem);
- _popup.addSeparator();
-
- JMenuItem newServiceItem = new JMenuItem(_model.getActions()[NEW_TEMPLATE_SERVICE]);
- newServiceItem.setText("New service template");
- _popup.add(newServiceItem);
- _popup.addSeparator();
-
- _popup.add(_model.getActions()[APPLICATION_INSTALL_DISTRIBUTION]);
- }
- return _popup;
- }
- public void copy()
- {
- _model.setClipboard(copyDescriptor(_descriptor));
- _model.getActions()[PASTE].setEnabled(true);
- }
- public void paste()
- {
- _parent.paste();
- }
- public void newNode()
- {
- _nodes.newNode();
- }
- public void newReplicaGroup()
- {
- _replicaGroups.newReplicaGroup();
- }
- public void newTemplateServer()
- {
- _serverTemplates.newTemplateServer();
- }
- public void newTemplateServerIceBox()
- {
- _serverTemplates.newTemplateServerIceBox();
- }
- public void newTemplateService()
- {
- _serviceTemplates.newTemplateService();
- }
-
- public void applicationInstallDistribution()
- {
- int shutdown = JOptionPane.showConfirmDialog(
- _model.getMainFrame(),
- "You are about to install or refresh"
- + " the distribution of your application onto this node.\n"
- + " Do you want shut down all servers affected by this update?",
- "Patch Confirmation",
- JOptionPane.YES_NO_CANCEL_OPTION);
-
- if(shutdown == JOptionPane.CANCEL_OPTION)
- {
- //
- // Recompute actions in case this comes from popup menu
- //
- _model.showActions(_model.getSelectedNode());
-
- return;
- }
-
- final String prefix = "Patching application '" + _id + "'...";
- _model.getStatusBar().setText(prefix);
-
- AMI_Admin_patchApplication cb = new AMI_Admin_patchApplication()
- {
- //
- // Called by another thread!
- //
- public void ice_response()
- {
- amiSuccess(prefix);
- }
-
- public void ice_exception(Ice.UserException e)
- {
- amiFailure(prefix, "Failed to patch " + _id, e);
- }
-
- public void ice_exception(Ice.LocalException e)
- {
- amiFailure(prefix, "Failed to patch " + _id, e.toString());
- }
- };
-
- try
- {
- _model.getMainFrame().setCursor(
- Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
-
- _model.getAdmin().patchApplication_async(cb, _id,
- shutdown == JOptionPane.YES_OPTION);
- }
- catch(Ice.LocalException e)
- {
- failure(prefix, "Failed to patch " + _id, e.toString());
- }
- finally
- {
- _model.getMainFrame().setCursor(
- Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
- }
-
-
- //
- // Recompute actions in case this comes from popup menu
- //
- _model.showActions(_model.getSelectedNode());
- }
-
- public ApplicationUpdateDescriptor createUpdateDescriptor()
- {
- ApplicationUpdateDescriptor update = new ApplicationUpdateDescriptor();
- update.name = _descriptor.name;
- if(isModified())
- {
- //
- // Diff description
- //
- if(!_descriptor.description.equals(_origDescription))
- {
- update.description =
- new IceGrid.BoxedString(_descriptor.description);
- }
-
- //
- // Diff variables
- //
- update.variables = (java.util.TreeMap)_descriptor.variables.clone();
- java.util.List removeVariables = new java.util.LinkedList();
-
- java.util.Iterator p = _origVariables.entrySet().iterator();
- while(p.hasNext())
- {
- java.util.Map.Entry entry = (java.util.Map.Entry)p.next();
- Object key = entry.getKey();
- Object newValue = update.variables.get(key);
- if(newValue == null)
- {
- removeVariables.add(key);
- }
- else
- {
- Object value = entry.getValue();
- if(newValue.equals(value))
- {
- update.variables.remove(key);
- }
- }
- }
- update.removeVariables = (String[])removeVariables.toArray(new String[0]);
-
- //
- // Diff distribution
- //
- if(!_descriptor.distrib.equals(_origDistrib))
- {
- update.distrib = new IceGrid.BoxedDistributionDescriptor(
- _descriptor.distrib);
- }
- }
- else
- {
- update.variables = new java.util.TreeMap();
- update.removeVariables = new String[0];
- }
-
- //
- // Replicated Adapters
- //
- update.removeReplicaGroups = _replicaGroups.removedElements();
- update.replicaGroups = _replicaGroups.getUpdates();
-
- //
- // Server Templates
- //
- update.removeServerTemplates = _serverTemplates.removedElements();
- update.serverTemplates = _serverTemplates.getUpdates();
-
- //
- // Service Templates
- //
- update.removeServiceTemplates = _serviceTemplates.removedElements();
- update.serviceTemplates =_serviceTemplates.getUpdates();
-
- //
- // Nodes
- //
- update.removeNodes = _nodes.removedElements();
- update.nodes = _nodes.getUpdates();
-
-
- //
- // Return null if nothing changed
- //
- if(!isModified() &&
- update.removeReplicaGroups.length == 0 &&
- update.replicaGroups.size() == 0 &&
- update.removeServerTemplates.length == 0 &&
- update.serverTemplates.size() == 0 &&
- update.removeServiceTemplates.length == 0 &&
- update.serviceTemplates.size() == 0 &&
- update.removeNodes.length == 0 &&
- update.nodes.size() == 0)
- {
- return null;
- }
- else
- {
- return update;
- }
- }
-
- public void commit()
- {
- super.commit();
- _origVariables = _descriptor.variables;
- _origDescription = _descriptor.description;
- _origDistrib = (DistributionDescriptor)_descriptor.distrib.clone();
- }
-
- public Object getDescriptor()
- {
- return _descriptor;
- }
-
- public Editor getEditor()
- {
- if(_editor == null)
- {
- _editor = new ApplicationEditor(_model.getMainFrame());
- }
- _editor.show(this);
- return _editor;
- }
-
- public boolean isEphemeral()
- {
- return _ephemeral;
- }
-
- public Object saveDescriptor()
- {
- ApplicationDescriptor clone = (ApplicationDescriptor)_descriptor.clone();
- clone.distrib = (IceGrid.DistributionDescriptor)clone.distrib.clone();
- return clone;
- }
-
- public void restoreDescriptor(Object savedDescriptor)
- {
- ApplicationDescriptor clone = (ApplicationDescriptor)savedDescriptor;
-
- _descriptor.variables = clone.variables;
- _descriptor.distrib.icepatch = clone.distrib.icepatch;
- _descriptor.distrib.directories = clone.distrib.directories;
- _descriptor.description = clone.description;
- }
-
- public boolean destroy()
- {
- if(_parent == null)
- {
- return false;
- }
- Root root = (Root)_parent;
-
- if(_ephemeral || isNew())
- {
- root.removeChild(this, true);
- return true;
- }
- else if(_model.canUpdate())
- {
- int confirm = JOptionPane.showConfirmDialog(
- _model.getMainFrame(),
- "This will immediately remove this application from "
- + "the IceGrid Registry. Do you want to proceed?",
- "Remove Confirmation",
- JOptionPane.YES_NO_OPTION);
-
- //
- // Asks for confirmation
- //
- if(confirm == JOptionPane.YES_OPTION)
- {
- if(_model.removeApplication(_id))
- {
- root.removeChild(this, true);
- return true;
- }
- }
- }
- return false;
- }
-
-
- //
- // Builds the application and all its subtrees
- //
- Application(boolean brandNew, ApplicationDescriptor descriptor, Model model)
- throws UpdateFailedException
- {
- super(brandNew, descriptor.name, model);
- _ephemeral = false;
- _descriptor = descriptor;
- _origVariables = _descriptor.variables;
- _origDescription = _descriptor.description;
- _origDistrib = (DistributionDescriptor)_descriptor.distrib.clone();
-
- _resolver = new Utils.Resolver(_descriptor.variables);
- _resolver.put("application", descriptor.name);
-
- _replicaGroups = new ReplicaGroups(_descriptor.replicaGroups,
- _model);
- addChild(_replicaGroups);
-
- _serviceTemplates = new ServiceTemplates(_descriptor.serviceTemplates,
- _model);
- addChild(_serviceTemplates);
-
- _serverTemplates = new ServerTemplates(descriptor.serverTemplates,
- this);
- addChild(_serverTemplates);
-
- _nodes = new Nodes(_descriptor.nodes, this);
- addChild(_nodes);
- }
-
- Application(ApplicationDescriptor descriptor, Model model)
- {
- super(false, descriptor.name, model);
- _ephemeral = true;
- _descriptor = descriptor;
- }
-
- //
- // Try to rebuild this application;
- // no-op if it fails!
- //
- void rebuild() throws UpdateFailedException
- {
- Utils.Resolver oldResolver = _resolver;
- _resolver = new Utils.Resolver(_descriptor.variables);
- _resolver.put("application", _id);
-
- try
- {
- _nodes.rebuild();
- }
- catch(UpdateFailedException e)
- {
- _resolver = oldResolver;
- throw e;
- }
- }
-
- //
- // Called when a server-template is deleted, to remove all
- // corresponding instances
- // children.
- //
- void removeServerInstances(String templateId)
- {
- _nodes.removeServerInstances(templateId);
- }
-
- //
- // Called when a service-template is deleted, to remove all
- // corresponding instances
- //
- void removeServiceInstances(String templateId)
- {
- _nodes.removeServiceInstances(templateId);
- _serverTemplates.removeServiceInstances(templateId);
- }
-
- void update(ApplicationUpdateDescriptor desc)
- throws UpdateFailedException
- {
- //
- // Description
- //
- if(desc.description != null)
- {
- _descriptor.description = desc.description.value;
- _origDescription = _descriptor.description;
- }
-
- //
- // Variables
- //
- for(int i = 0; i < desc.removeVariables.length; ++i)
- {
- _descriptor.variables.remove(desc.removeVariables[i]);
- }
- _descriptor.variables.putAll(desc.variables);
-
- //
- // Distrib
- //
- if(desc.distrib != null)
- {
- _descriptor.distrib = desc.distrib.value;
- _origDistrib = (DistributionDescriptor)_descriptor.distrib.clone();
- }
-
- //
- // Replica groups
- //
- for(int i = 0; i < desc.removeReplicaGroups.length; ++i)
- {
- _descriptor.replicaGroups.remove(desc.
- removeReplicaGroups[i]);
- }
- _descriptor.replicaGroups.addAll(desc.replicaGroups);
- _replicaGroups.update(desc.replicaGroups,
- desc.removeReplicaGroups);
-
-
- //
- // Service templates
- //
- for(int i = 0; i < desc.removeServiceTemplates.length; ++i)
- {
- _descriptor.serviceTemplates.remove(desc.
- removeServiceTemplates[i]);
- }
- _descriptor.serviceTemplates.putAll(desc.serviceTemplates);
- _serviceTemplates.update(desc.serviceTemplates,
- desc.removeServiceTemplates);
-
- //
- // Server templates
- //
- for(int i = 0; i < desc.removeServerTemplates.length; ++i)
- {
- _descriptor.serverTemplates.remove(desc.removeServerTemplates[i]);
- }
- _descriptor.serverTemplates.putAll(desc.serverTemplates);
- _serverTemplates.update(desc.serverTemplates,
- desc.removeServerTemplates,
- desc.serviceTemplates.keySet());
-
- //
- // Nodes
- //
- for(int i = 0; i < desc.removeNodes.length; ++i)
- {
- _descriptor.nodes.remove(desc.removeNodes[i]);
- }
- //
- // Updates also _descriptor.nodes
- //
- _nodes.update(desc.nodes, desc.removeNodes,
- desc.serverTemplates.keySet(),
- desc.serviceTemplates.keySet());
-
- }
-
- ServerTemplate findServerTemplate(String id)
- {
- return (ServerTemplate)_serverTemplates.findChild(id);
- }
-
- ServiceTemplate findServiceTemplate(String id)
- {
- return (ServiceTemplate)_serviceTemplates.findChild(id);
- }
-
- ReplicaGroup findReplicaGroup(String id)
- {
- return (ReplicaGroup)_replicaGroups.findChild(id);
- }
-
- Node findNode(String id)
- {
- return (Node)_nodes.findChild(id);
- }
-
- java.util.List findServerInstances(String template)
- {
- return _nodes.findServerInstances(template);
- }
-
- java.util.List findServiceInstances(String template)
- {
- java.util.List result = _serverTemplates.findServiceInstances(template);
- result.addAll(_nodes.findServiceInstances(template));
- return result;
- }
-
-
- TemplateDescriptor findServerTemplateDescriptor(String templateName)
- {
- return (TemplateDescriptor)
- _descriptor.serverTemplates.get(templateName);
- }
-
- TemplateDescriptor findServiceTemplateDescriptor(String templateName)
- {
- return (TemplateDescriptor)
- _descriptor.serviceTemplates.get(templateName);
- }
-
- ServerTemplates getServerTemplates()
- {
- return _serverTemplates;
- }
-
- ServiceTemplates getServiceTemplates()
- {
- return _serviceTemplates;
- }
-
- ReplicaGroups getReplicaGroups()
- {
- return _replicaGroups;
- }
-
- //
- // Should only be used for reading
- //
- java.util.Map getVariables()
- {
- return _descriptor.variables;
- }
-
- void nodeUp(String nodeName, NodeInfo staticInfo)
- {
- _nodes.nodeUp(nodeName, staticInfo);
- }
-
- void nodeDown(String nodeName)
- {
- _nodes.nodeDown(nodeName);
- }
-
- Utils.Resolver getResolver()
- {
- return _resolver;
- }
-
- private ApplicationDescriptor _descriptor;
- private final boolean _ephemeral;
- private Utils.Resolver _resolver;
-
- //
- // Keeps original version (as shallow copies) to be able to build
- // ApplicationUpdateDescriptor
- //
- private java.util.TreeMap _origVariables;
- private String _origDescription;
- private DistributionDescriptor _origDistrib;
-
- //
- // Children
- //
- private ReplicaGroups _replicaGroups;
- private ServerTemplates _serverTemplates;
- private ServiceTemplates _serviceTemplates;
- private Nodes _nodes;
-
- static private DefaultTreeCellRenderer _cellRenderer;
- static private ApplicationEditor _editor;
- static private JPopupMenu _popup;
-}