summaryrefslogtreecommitdiff
path: root/java/src/IceGridGUI/LiveDeployment/Root.java
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2012-08-30 02:31:05 +0200
committerJose <jose@zeroc.com>2012-08-30 02:31:05 +0200
commit93739f7abfb1506c7ec06de535e27dc4229193ef (patch)
treed2299fadc247ae6f9b71a1deb08bddd7bd3f351c /java/src/IceGridGUI/LiveDeployment/Root.java
parentFIX Java 7 warnings (diff)
downloadice-93739f7abfb1506c7ec06de535e27dc4229193ef.tar.bz2
ice-93739f7abfb1506c7ec06de535e27dc4229193ef.tar.xz
ice-93739f7abfb1506c7ec06de535e27dc4229193ef.zip
IceGridGUI Metrics Graphs
Diffstat (limited to 'java/src/IceGridGUI/LiveDeployment/Root.java')
-rw-r--r--java/src/IceGridGUI/LiveDeployment/Root.java163
1 files changed, 163 insertions, 0 deletions
diff --git a/java/src/IceGridGUI/LiveDeployment/Root.java b/java/src/IceGridGUI/LiveDeployment/Root.java
index 09beac80bac..04cbdd43540 100644
--- a/java/src/IceGridGUI/LiveDeployment/Root.java
+++ b/java/src/IceGridGUI/LiveDeployment/Root.java
@@ -12,6 +12,10 @@ package IceGridGUI.LiveDeployment;
import java.awt.Component;
import java.awt.Cursor;
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.Transferable;
+import java.awt.datatransfer.UnsupportedFlavorException;
+
import javax.swing.Icon;
import javax.swing.JOptionPane;
import javax.swing.JPopupMenu;
@@ -21,6 +25,8 @@ import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;
+import javax.swing.JComponent;
+
import java.util.Enumeration;
import java.util.prefs.Preferences;
@@ -153,6 +159,161 @@ public class Root extends ListArrayTreeNode
return _applicationNameFilter;
}
+ public class NodeTransferable implements Transferable
+ {
+ public NodeTransferable(IceGridGUI.LiveDeployment.Node node)
+ {
+ _node = node;
+ try
+ {
+ _flavors = new DataFlavor[]{new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType +
+ ";class=IceGridGUI.LiveDeployment.Node")};
+ }
+ catch(ClassNotFoundException ex)
+ {
+ }
+ }
+
+ public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException
+ {
+ if(!isDataFlavorSupported(flavor))
+ {
+ throw new UnsupportedFlavorException(flavor);
+ }
+ return _node;
+ }
+
+ public DataFlavor[] getTransferDataFlavors()
+ {
+ return _flavors;
+ }
+
+ public boolean isDataFlavorSupported(DataFlavor flavor)
+ {
+ return _flavors[0].equals(flavor);
+ }
+
+ private IceGridGUI.LiveDeployment.Node _node;
+ private DataFlavor[] _flavors;
+ }
+
+ public class ServerTransferable implements Transferable
+ {
+ public ServerTransferable(IceGridGUI.LiveDeployment.Server server)
+ {
+ _server = server;
+ try
+ {
+ _flavors = new DataFlavor[]{new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType +
+ ";class=IceGridGUI.LiveDeployment.Server")};
+ }
+ catch(ClassNotFoundException ex)
+ {
+ }
+ }
+
+ public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException
+ {
+ if(!isDataFlavorSupported(flavor))
+ {
+ throw new UnsupportedFlavorException(flavor);
+ }
+ return _server;
+ }
+
+ public DataFlavor[] getTransferDataFlavors()
+ {
+ return _flavors;
+ }
+
+ public boolean isDataFlavorSupported(DataFlavor flavor)
+ {
+ return _flavors[0].equals(flavor);
+ }
+
+ private IceGridGUI.LiveDeployment.Server _server;
+ private DataFlavor[] _flavors;
+ }
+
+ public class MetricsViewTransferable implements Transferable
+ {
+ public MetricsViewTransferable(IceGridGUI.LiveDeployment.MetricsView metricsView)
+ {
+ _metricsView = metricsView;
+ try
+ {
+ _flavors = new DataFlavor[]{new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType +
+ ";class=IceGridGUI.LiveDeployment.MetricsView")};
+ }
+ catch(ClassNotFoundException ex)
+ {
+ }
+ }
+
+ public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException
+ {
+ if(!isDataFlavorSupported(flavor))
+ {
+ throw new UnsupportedFlavorException(flavor);
+ }
+ return _metricsView;
+ }
+
+ public DataFlavor[] getTransferDataFlavors()
+ {
+ return _flavors;
+ }
+
+ public boolean isDataFlavorSupported(DataFlavor flavor)
+ {
+ return _flavors[0].equals(flavor);
+ }
+
+ private IceGridGUI.LiveDeployment.MetricsView _metricsView;
+ private DataFlavor[] _flavors;
+ }
+
+ class TransferHandler extends javax.swing.TransferHandler
+ {
+ @Override
+ public int
+ getSourceActions(JComponent component)
+ {
+ return javax.swing.TransferHandler.COPY;
+ }
+
+ @Override
+ public Transferable
+ createTransferable(JComponent component)
+ {
+ JTree tree = (JTree)component;
+ TreePath[] paths = tree.getSelectionPaths();
+ if(paths != null)
+ {
+ TreeNode node = (TreeNode)paths[0].getLastPathComponent();
+ if(node instanceof IceGridGUI.LiveDeployment.MetricsView)
+ {
+ return new MetricsViewTransferable((IceGridGUI.LiveDeployment.MetricsView)node);
+ }
+ else if(node instanceof IceGridGUI.LiveDeployment.Server)
+ {
+ return new ServerTransferable((IceGridGUI.LiveDeployment.Server)node);
+ }
+ else if(node instanceof IceGridGUI.LiveDeployment.Node)
+ {
+ return new NodeTransferable((IceGridGUI.LiveDeployment.Node)node);
+ }
+ }
+ return null;
+ }
+
+ @Override
+ protected void exportDone(JComponent source, Transferable data, int action)
+ {
+ // Does nothing as we don't support move action.
+ }
+ }
+
public Root(Coordinator coordinator)
{
super(null, "Root", 2);
@@ -164,6 +325,8 @@ public class Root extends ListArrayTreeNode
_treeModel = new FilteredTreeModel(this);
_tree = new JTree();
_tree.setModel(_treeModel);
+ _tree.setDragEnabled(true);
+ _tree.setTransferHandler(new TransferHandler());
_addObjectDialog = new ObjectDialog(this, false);
_showObjectDialog = new ObjectDialog(this, true);