diff options
-rw-r--r-- | java/resources/icons/16x16/metrics_disabled.png | bin | 0 -> 567 bytes | |||
-rw-r--r-- | java/src/IceGridGUI/LiveActions.java | 16 | ||||
-rw-r--r-- | java/src/IceGridGUI/LiveDeployment/GraphView.java | 3 | ||||
-rw-r--r-- | java/src/IceGridGUI/LiveDeployment/MetricsView.java | 199 | ||||
-rw-r--r-- | java/src/IceGridGUI/LiveDeployment/MetricsViewEditor.java | 325 | ||||
-rw-r--r-- | java/src/IceGridGUI/LiveDeployment/Node.java | 2 | ||||
-rw-r--r-- | java/src/IceGridGUI/LiveDeployment/Root.java | 2 | ||||
-rw-r--r-- | java/src/IceGridGUI/LiveDeployment/Server.java | 24 | ||||
-rw-r--r-- | java/src/IceGridGUI/LiveDeployment/Service.java | 24 | ||||
-rw-r--r-- | java/src/IceGridGUI/LiveDeployment/Slave.java | 2 | ||||
-rw-r--r-- | java/src/IceGridGUI/LiveDeployment/TreeNode.java | 10 |
11 files changed, 408 insertions, 199 deletions
diff --git a/java/resources/icons/16x16/metrics_disabled.png b/java/resources/icons/16x16/metrics_disabled.png Binary files differnew file mode 100644 index 00000000000..7bedf5eba7a --- /dev/null +++ b/java/resources/icons/16x16/metrics_disabled.png diff --git a/java/src/IceGridGUI/LiveActions.java b/java/src/IceGridGUI/LiveActions.java index 185f379e5d5..d950bb0d0ef 100644 --- a/java/src/IceGridGUI/LiveActions.java +++ b/java/src/IceGridGUI/LiveActions.java @@ -60,7 +60,6 @@ public class LiveActions { _array[i].setEnabled(availableActions[i]); } - return availableActions; } @@ -188,6 +187,21 @@ public class LiveActions } }; + _array[TreeNode.ENABLE_METRICS_VIEW] = new AbstractAction("Enable Metrics View") + { + public void actionPerformed(ActionEvent e) + { + _target.enableMetricsView(true); + } + }; + + _array[TreeNode.DISABLE_METRICS_VIEW] = new AbstractAction("Disable Metrics View") + { + public void actionPerformed(ActionEvent e) + { + _target.enableMetricsView(false); + } + }; } private TreeNode _target; diff --git a/java/src/IceGridGUI/LiveDeployment/GraphView.java b/java/src/IceGridGUI/LiveDeployment/GraphView.java index 19005db7458..1b6b75e9bbb 100644 --- a/java/src/IceGridGUI/LiveDeployment/GraphView.java +++ b/java/src/IceGridGUI/LiveDeployment/GraphView.java @@ -348,7 +348,8 @@ public class GraphView extends JFrame implements MetricsFieldContext } }, false); if(!(e instanceof Ice.ObjectNotExistException) && - !(e instanceof Ice.CommunicatorDestroyedException)) + !(e instanceof Ice.CommunicatorDestroyedException) && + !(e instanceof Ice.ConnectionRefusedException)) { handleError(m, e.toString()); } diff --git a/java/src/IceGridGUI/LiveDeployment/MetricsView.java b/java/src/IceGridGUI/LiveDeployment/MetricsView.java index 5aba867be20..6c7bd9afbe6 100644 --- a/java/src/IceGridGUI/LiveDeployment/MetricsView.java +++ b/java/src/IceGridGUI/LiveDeployment/MetricsView.java @@ -18,6 +18,7 @@ import javax.swing.tree.TreeModel; import javax.swing.tree.TreePath; import javax.swing.SwingUtilities; import javax.swing.JOptionPane; +import javax.swing.JPopupMenu; import java.util.Map; import java.util.Enumeration; @@ -32,6 +33,17 @@ class MetricsView extends TreeNode return _editor; } + // + // Actions + // + public boolean[] getAvailableActions() + { + boolean[] actions = new boolean[IceGridGUI.LiveDeployment.TreeNode.ACTION_COUNT]; + actions[ENABLE_METRICS_VIEW] = !_enabled; + actions[DISABLE_METRICS_VIEW] = _enabled; + return actions; + } + public Component getTreeCellRendererComponent( JTree tree, Object value, @@ -44,18 +56,171 @@ class MetricsView extends TreeNode if(_cellRenderer == null) { _cellRenderer = new DefaultTreeCellRenderer(); - _cellRenderer.setLeafIcon(Utils.getIcon("/icons/16x16/metrics.png")); + + _enabledIcon = Utils.getIcon("/icons/16x16/metrics.png"); + _disabledIcon = Utils.getIcon("/icons/16x16/metrics_disabled.png"); } - _cellRenderer.setToolTipText(_toolTip); + + Icon icon = _enabled ? _enabledIcon : _disabledIcon; + _cellRenderer.setLeafIcon(icon); return _cellRenderer.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); } - MetricsView(TreeNode parent, String name, IceMX.MetricsAdminPrx admin) + MetricsView(TreeNode parent, String name, IceMX.MetricsAdminPrx admin, boolean enabled) { super(parent, name); _name = name; _admin = admin; _editor = new MetricsViewEditor(getRoot()); + _enabled = enabled; + } + + public void enableMetricsView(boolean enabled) + { + IceMX.MetricsAdminPrx metricsAdmin = getMetricsAdmin(); + if(metricsAdmin != null) + { + if(enabled) + { + IceMX.Callback_MetricsAdmin_enableMetricsView cb = new IceMX.Callback_MetricsAdmin_enableMetricsView() + { + public void response() + { + SwingUtilities.invokeLater(new Runnable() + { + public void run() + { + _enabled = true; + getRoot().getTreeModel().nodeChanged(MetricsView.this); + if(getRoot().getTree().getLastSelectedPathComponent() == MetricsView.this) + { + // + // If the metrics view is selected when enabled success, + // we must start the refresh thread to pull updates. + // + MetricsViewEditor.startRefreshThread(MetricsView.this); + } + } + }); + } + + public void exception(final Ice.LocalException e) + { + MetricsViewEditor.stopRefreshThread(); + SwingUtilities.invokeLater(new Runnable() + { + public void run() + { + if(e instanceof Ice.ObjectNotExistException || + e instanceof Ice.ConnectionRefusedException) + { + // Server is down. + } + else if(e instanceof Ice.CommunicatorDestroyedException) + { + } + else + { + e.printStackTrace(); + JOptionPane.showMessageDialog(getCoordinator().getMainFrame(), + "Error: " + e.toString(), "Error", + JOptionPane.ERROR_MESSAGE); + } + } + }); + } + + public void exception(final Ice.UserException e) + { + MetricsViewEditor.stopRefreshThread(); + SwingUtilities.invokeLater(new Runnable() + { + public void run() + { + e.printStackTrace(); + JOptionPane.showMessageDialog(getCoordinator().getMainFrame(), + "Error: " + e.toString(), "Error", + JOptionPane.ERROR_MESSAGE); + } + }); + } + }; + metricsAdmin.begin_enableMetricsView(_name, cb); + } + else + { + IceMX.Callback_MetricsAdmin_disableMetricsView cb = new IceMX.Callback_MetricsAdmin_disableMetricsView() + { + public void response() + { + SwingUtilities.invokeLater(new Runnable() + { + public void run() + { + _enabled = false; + _editor.show(MetricsView.this, null, 0); + getRoot().getTreeModel().nodeChanged(MetricsView.this); + if(getRoot().getTree().getLastSelectedPathComponent() == MetricsView.this) + { + // + // If the metrics view is selected when disabled success, + // we stop the refresh. + // + MetricsViewEditor.stopRefreshThread(); + } + } + }); + } + + public void exception(final Ice.LocalException e) + { + MetricsViewEditor.stopRefreshThread(); + SwingUtilities.invokeLater(new Runnable() + { + public void run() + { + if(e instanceof Ice.ObjectNotExistException || + e instanceof Ice.ConnectionRefusedException) + { + // Server is down. + } + else if(e instanceof Ice.CommunicatorDestroyedException) + { + } + else + { + e.printStackTrace(); + JOptionPane.showMessageDialog(getCoordinator().getMainFrame(), + "Error: " + e.toString(), "Error", + JOptionPane.ERROR_MESSAGE); + } + } + }); + } + + public void exception(final Ice.UserException e) + { + MetricsViewEditor.stopRefreshThread(); + SwingUtilities.invokeLater(new Runnable() + { + public void run() + { + e.printStackTrace(); + JOptionPane.showMessageDialog(getCoordinator().getMainFrame(), + "Error: " + e.toString(), "Error", + JOptionPane.ERROR_MESSAGE); + } + }); + } + }; + metricsAdmin.begin_disableMetricsView(_name, cb); + } + } + } + + public boolean isEnabled() + { + return _enabled; } public String name() @@ -68,6 +233,21 @@ class MetricsView extends TreeNode return _admin; } + public JPopupMenu getPopupMenu() + { + LiveActions la = getCoordinator().getLiveActionsForPopup(); + + if(_popup == null) + { + _popup = new JPopupMenu(); + _popup.add(la.get(ENABLE_METRICS_VIEW)); + _popup.add(la.get(DISABLE_METRICS_VIEW)); + } + + la.setTarget(this); + return _popup; + } + public void fetchMetricsFailures(String map, String id, IceMX.Callback_MetricsAdmin_getMetricsFailures cb) { IceMX.MetricsAdminPrx metricsAdmin = getMetricsAdmin(); @@ -106,12 +286,13 @@ class MetricsView extends TreeNode public void exception(final Ice.LocalException e) { + MetricsViewEditor.stopRefreshThread(); SwingUtilities.invokeLater(new Runnable() { public void run() { - _editor.stopRefreshThread(); - if(e instanceof Ice.ObjectNotExistException) + if(e instanceof Ice.ObjectNotExistException || + e instanceof Ice.ConnectionRefusedException) { // Server is down. } @@ -124,7 +305,6 @@ class MetricsView extends TreeNode } else { - _editor.stopRefreshThread(); e.printStackTrace(); JOptionPane.showMessageDialog(getCoordinator().getMainFrame(), "Error: " + e.toString(), "Error", @@ -136,11 +316,11 @@ class MetricsView extends TreeNode public void exception(final Ice.UserException e) { + MetricsViewEditor.stopRefreshThread(); SwingUtilities.invokeLater(new Runnable() { public void run() { - _editor.stopRefreshThread(); e.printStackTrace(); JOptionPane.showMessageDialog(getCoordinator().getMainFrame(), "Error: " + e.toString(), "Error", @@ -168,7 +348,10 @@ class MetricsView extends TreeNode private String _name; private IceMX.MetricsAdminPrx _admin; - private String _toolTip; private MetricsViewEditor _editor; + private boolean _enabled; + static private JPopupMenu _popup; static private DefaultTreeCellRenderer _cellRenderer; + static private Icon _enabledIcon; + static private Icon _disabledIcon; } diff --git a/java/src/IceGridGUI/LiveDeployment/MetricsViewEditor.java b/java/src/IceGridGUI/LiveDeployment/MetricsViewEditor.java index b7aa34c2638..27b7e9e7176 100644 --- a/java/src/IceGridGUI/LiveDeployment/MetricsViewEditor.java +++ b/java/src/IceGridGUI/LiveDeployment/MetricsViewEditor.java @@ -75,7 +75,7 @@ import IceGridGUI.*; public class MetricsViewEditor extends Editor implements MetricsFieldContext { - private class RefreshThread extends Thread + private static class RefreshThread extends Thread { RefreshThread(long period, MetricsView node) { @@ -221,27 +221,24 @@ public class MetricsViewEditor extends Editor implements MetricsFieldContext private final JTable _table; } - private class SelectionListener implements TreeSelectionListener + private static class SelectionListener implements TreeSelectionListener { public void valueChanged(TreeSelectionEvent e) { - // // Stop the refresh thread. // - stopRefreshThread(); + MetricsViewEditor.stopRefreshThread(); // - // If selected node is a MetricsView start the refresh thread. + // If selected node is a MetricsView and it is enabled; start the refresh thread. // - if(e.isAddedPath() && e.getPath().getLastPathComponent() instanceof MetricsView) + if(e.isAddedPath() && e.getPath().getLastPathComponent() instanceof MetricsView && + ((MetricsView )e.getPath().getLastPathComponent()).isEnabled()) { - _node = (MetricsView)e.getPath().getLastPathComponent(); - startRefreshThread(_node); + MetricsViewEditor.startRefreshThread((MetricsView)e.getPath().getLastPathComponent()); } } - - private MetricsView _node; } MetricsViewEditor(Root root) @@ -270,13 +267,14 @@ public class MetricsViewEditor extends Editor implements MetricsFieldContext return _refreshPeriod; } - void startRefreshThread(MetricsView node) + synchronized static void startRefreshThread(MetricsView node) { + assert(_refreshThread == null); _refreshThread = new RefreshThread(_refreshPeriod, node); _refreshThread.start(); } - void stopRefreshThread() + synchronized static void stopRefreshThread() { if(_refreshThread != null) { @@ -324,6 +322,18 @@ public class MetricsViewEditor extends Editor implements MetricsFieldContext } @Override + public String toString() + { + StringBuilder builder = new StringBuilder(); + builder.append(node); + builder.append("/"); + builder.append(server); + builder.append("/"); + builder.append(view); + return builder.toString(); + } + + @Override public int hashCode() { int h = IceInternal.HashUtil.hashAdd(5381, node); @@ -611,148 +621,150 @@ public class MetricsViewEditor extends Editor implements MetricsFieldContext public void show(final MetricsView node, final Map<java.lang.String, IceMX.Metrics[]> data, final long timestamp) { - if(data == null) + boolean rebuildPanel = false; + if(!node.isEnabled()) { - return; + _tables.clear(); + rebuildPanel = true; } - - boolean rebuildPanel = false; - - for(final Map.Entry<String, IceMX.Metrics[]> entry : data.entrySet()) + else if(data != null) { - if(_tables.get(entry.getKey()) != null) + for(final Map.Entry<String, IceMX.Metrics[]> entry : data.entrySet()) { - continue; + if(_tables.get(entry.getKey()) != null) + { + continue; } - IceMX.Metrics[] objects = entry.getValue(); - if(objects == null || objects.length == 0) - { - continue; - } - final TableModel model = new TableModel(entry.getKey()); - String prefix = "IceGridGUI.Metrics." + entry.getKey(); - String[] names = _properties.getPropertyAsList(prefix + ".fields"); - for(String name : names) - { - Field objectField = null; - try + IceMX.Metrics[] objects = entry.getValue(); + if(objects == null || objects.length == 0) { - objectField = objects[0].getClass().getField(name); + continue; } - catch(NoSuchFieldException ex) + final TableModel model = new TableModel(entry.getKey()); + String prefix = "IceGridGUI.Metrics." + entry.getKey(); + String[] names = _properties.getPropertyAsList(prefix + ".fields"); + for(String name : names) { + Field objectField = null; + try + { + objectField = objects[0].getClass().getField(name); + } + catch(NoSuchFieldException ex) + { + } + MetricsField field = createField(node, prefix + "." + name, entry.getKey(), name, objectField, this); + if(field != null) + { + model.addField(field); + } } - MetricsField field = createField(node, prefix + "." + name, entry.getKey(), name, objectField, this); - if(field != null) + if(model.getMetricFields().size() == 0) { - model.addField(field); + continue; } - } - if(model.getMetricFields().size() == 0) - { - continue; - } - final JTable table = new JTable(model) - { - // - //Implement table header tool tips. - // - protected JTableHeader createDefaultTableHeader() + final JTable table = new JTable(model) { - return new JTableHeader(columnModel) + // + //Implement table header tool tips. + // + protected JTableHeader createDefaultTableHeader() { - public String getToolTipText(MouseEvent e) + return new JTableHeader(columnModel) { - int index = columnModel.getColumn(columnModel.getColumnIndexAtX(e.getPoint().x)).getModelIndex(); - return model.getMetricFields().get(index).getColumnToolTip(); - } - }; - } - }; - - // - // Adjust row height for larger fonts - // - int fontSize = table.getFont().getSize(); - int minRowHeight = fontSize + fontSize / 3; - if(table.getRowHeight() < minRowHeight) - { - table.setRowHeight(minRowHeight); - } + public String getToolTipText(MouseEvent e) + { + int index = columnModel.getColumn(columnModel.getColumnIndexAtX(e.getPoint().x)).getModelIndex(); + return model.getMetricFields().get(index).getColumnToolTip(); + } + }; + } + }; - table.setDragEnabled(true); - table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); - table.setCellSelectionEnabled(true); - table.addMouseListener(new ButtonMouseListener(table)); - table.setAutoCreateRowSorter(true); - table.setTransferHandler(new TransferHandler(node)); - table.addMouseListener(new MouseAdapter() + // + // Adjust row height for larger fonts + // + int fontSize = table.getFont().getSize(); + int minRowHeight = fontSize + fontSize / 3; + if(table.getRowHeight() < minRowHeight) { - @Override - public void mousePressed(MouseEvent e) - { - createAndShowMenu(e); - } + table.setRowHeight(minRowHeight); + } - @Override - public void mouseReleased(MouseEvent e) + table.setDragEnabled(true); + table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); + table.setCellSelectionEnabled(true); + table.addMouseListener(new ButtonMouseListener(table)); + table.setAutoCreateRowSorter(true); + table.setTransferHandler(new TransferHandler(node)); + table.addMouseListener(new MouseAdapter() { - createAndShowMenu(e); - } + @Override + public void mousePressed(MouseEvent e) + { + createAndShowMenu(e); + } - public void createAndShowMenu(MouseEvent e) - { - if(e.isPopupTrigger()) + @Override + public void mouseReleased(MouseEvent e) { - JPopupMenu popup = new JPopupMenu(); - JMenu addToGraph = new JMenu("Add To Metrics Graph"); - popup.add(addToGraph); - final Map<String, List<MetricsCell>> rows = getSelectedRows(table, true); - addToGraph.setEnabled(rows.size() > 0); - JMenuItem newGraph = new JMenuItem("New Metrics Graph"); - newGraph.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent e) - { - GraphView view = node.getCoordinator().createGraphView(); - view.addSeries(new MetricsViewTransferableData(new MetricsViewInfo(node), - entry.getKey(), rows)); - } - }); - addToGraph.add(newGraph); + createAndShowMenu(e); + } - GraphView[] graphs = node.getCoordinator().getGraphViews(); - for(final GraphView view : graphs) + public void createAndShowMenu(MouseEvent e) + { + if(e.isPopupTrigger()) { - JMenuItem item = new JMenuItem(view.getTitle()); - addToGraph.add(item); - item.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent e) + JPopupMenu popup = new JPopupMenu(); + JMenu addToGraph = new JMenu("Add To Metrics Graph"); + popup.add(addToGraph); + final Map<String, List<MetricsCell>> rows = getSelectedRows(table, true); + addToGraph.setEnabled(rows.size() > 0); + JMenuItem newGraph = new JMenuItem("New Metrics Graph"); + newGraph.addActionListener(new ActionListener() { - view.addSeries(new MetricsViewTransferableData(new MetricsViewInfo(node), - entry.getKey(), rows)); - } - }); + public void actionPerformed(ActionEvent e) + { + GraphView view = node.getCoordinator().createGraphView(); + view.addSeries(new MetricsViewTransferableData(new MetricsViewInfo(node), + entry.getKey(), rows)); + } + }); + addToGraph.add(newGraph); + + GraphView[] graphs = node.getCoordinator().getGraphViews(); + for(final GraphView view : graphs) + { + JMenuItem item = new JMenuItem(view.getTitle()); + addToGraph.add(item); + item.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + view.addSeries(new MetricsViewTransferableData(new MetricsViewInfo(node), + entry.getKey(), rows)); + } + }); + } + popup.show(e.getComponent(), e.getX(), e.getY()); } - popup.show(e.getComponent(), e.getX(), e.getY()); } - } - }); + }); - for(Map.Entry<Integer, MetricsField> fieldEntry : model.getMetricFields().entrySet()) - { - if(fieldEntry.getValue().getCellRenderer() != null) + for(Map.Entry<Integer, MetricsField> fieldEntry : model.getMetricFields().entrySet()) { - table.getColumnModel().getColumn(fieldEntry.getKey().intValue()).setCellRenderer( - fieldEntry.getValue().getCellRenderer()); + if(fieldEntry.getValue().getCellRenderer() != null) + { + table.getColumnModel().getColumn(fieldEntry.getKey().intValue()).setCellRenderer( + fieldEntry.getValue().getCellRenderer()); + } } - } - _tables.put(entry.getKey(), table); - rebuildPanel = true; + _tables.put(entry.getKey(), table); + rebuildPanel = true; + } } if(rebuildPanel) @@ -760,50 +772,53 @@ public class MetricsViewEditor extends Editor implements MetricsFieldContext buildPropertiesPanel(); } - // - // Load the data. - // - for(Map.Entry<String, IceMX.Metrics[]> entry : data.entrySet()) + if(data != null) { - String key = entry.getKey(); - IceMX.Metrics[] values = entry.getValue(); - JTable table = _tables.get(key); - if(table == null) + // + // Load the data. + // + for(Map.Entry<String, IceMX.Metrics[]> entry : data.entrySet()) { - continue; - } - TableModel model = (TableModel)table.getModel(); + String key = entry.getKey(); + IceMX.Metrics[] values = entry.getValue(); + JTable table = _tables.get(key); + if(table == null) + { + continue; + } + TableModel model = (TableModel)table.getModel(); - Map<String, List<MetricsCell>> rows = getSelectedRows(table, false); + Map<String, List<MetricsCell>> rows = getSelectedRows(table, false); - model.getDataVector().removeAllElements(); - model.fireTableDataChanged(); - for(IceMX.Metrics m : values) - { - model.addMetrics(m, timestamp); - } + model.getDataVector().removeAllElements(); + model.fireTableDataChanged(); + for(IceMX.Metrics m : values) + { + model.addMetrics(m, timestamp); + } - int idColumn = table.getColumnModel().getColumnIndex(_properties.getProperty( - "IceGridGUI.Metrics." + key + ".id.columnName")); - if(rows.size() > 0) - { - for(int i = table.getRowCount() - 1; i >= 0; --i) + int idColumn = table.getColumnModel().getColumnIndex(_properties.getProperty( + "IceGridGUI.Metrics." + key + ".id.columnName")); + if(rows.size() > 0) { - String id = (String)table.getValueAt(i, idColumn); - List<MetricsCell> columns = rows.get(id); - if(columns != null) + for(int i = table.getRowCount() - 1; i >= 0; --i) { - for(MetricsCell cell : columns) + String id = (String)table.getValueAt(i, idColumn); + List<MetricsCell> columns = rows.get(id); + if(columns != null) { - int j = table.getColumnModel().getColumnIndex(cell.getField().getColumnName()); + for(MetricsCell cell : columns) + { + int j = table.getColumnModel().getColumnIndex(cell.getField().getColumnName()); - table.getSelectionModel().addSelectionInterval(i, i); - table.getColumnModel().getSelectionModel().addSelectionInterval(j, j); + table.getSelectionModel().addSelectionInterval(i, i); + table.getColumnModel().getSelectionModel().addSelectionInterval(j, j); + } } } } + packColumn(table, idColumn, 2); } - packColumn(table, idColumn, 2); } } @@ -1001,7 +1016,7 @@ public class MetricsViewEditor extends Editor implements MetricsFieldContext Map<Integer, MetricsField> _fields = new HashMap<Integer, MetricsField>(); } - private RefreshThread _refreshThread; + private static RefreshThread _refreshThread; private Map<String, JTable> _tables = new HashMap<String, JTable>(); diff --git a/java/src/IceGridGUI/LiveDeployment/Node.java b/java/src/IceGridGUI/LiveDeployment/Node.java index fbbac08c916..a25ee8be6de 100644 --- a/java/src/IceGridGUI/LiveDeployment/Node.java +++ b/java/src/IceGridGUI/LiveDeployment/Node.java @@ -35,7 +35,7 @@ class Node extends ListTreeNode // public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; + boolean[] actions = new boolean[IceGridGUI.LiveDeployment.TreeNode.ACTION_COUNT]; actions[SHUTDOWN_NODE] = _up; actions[RETRIEVE_STDOUT] = _up; actions[RETRIEVE_STDERR] = _up; diff --git a/java/src/IceGridGUI/LiveDeployment/Root.java b/java/src/IceGridGUI/LiveDeployment/Root.java index c0069e5f4c1..0e919f124d7 100644 --- a/java/src/IceGridGUI/LiveDeployment/Root.java +++ b/java/src/IceGridGUI/LiveDeployment/Root.java @@ -202,7 +202,7 @@ public class Root extends ListArrayTreeNode public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; + boolean[] actions = new boolean[IceGridGUI.LiveDeployment.TreeNode.ACTION_COUNT]; actions[ADD_OBJECT] = _coordinator.connectedToMaster(); actions[SHUTDOWN_REGISTRY] = true; actions[RETRIEVE_STDOUT] = true; diff --git a/java/src/IceGridGUI/LiveDeployment/Server.java b/java/src/IceGridGUI/LiveDeployment/Server.java index 925127caab8..9e19a7296a5 100644 --- a/java/src/IceGridGUI/LiveDeployment/Server.java +++ b/java/src/IceGridGUI/LiveDeployment/Server.java @@ -33,7 +33,7 @@ public class Server extends ListArrayTreeNode // public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; + boolean[] actions = new boolean[IceGridGUI.LiveDeployment.TreeNode.ACTION_COUNT]; if(_state != null) { @@ -420,8 +420,14 @@ public class Server extends ListArrayTreeNode { public void run() { - _metricsNames = enabledViews; - createMetrics(metricsAdmin); + for(String name : enabledViews) + { + insertSortedChild(new MetricsView(Server.this, name, metricsAdmin, true), _metrics, null); + } + for(String name : disabledViews) + { + insertSortedChild(new MetricsView(Server.this, name, metricsAdmin, false), _metrics, null); + } rebuild(Server.this, false); } }); @@ -1143,17 +1149,6 @@ public class Server extends ListArrayTreeNode return Utils.getIntVersion(Utils.substitute(_serverDescriptor.iceVersion, _resolver)); } - private void createMetrics(IceMX.MetricsAdminPrx metricsAdmin) - { - if(_metricsNames != null) - { - for(String name : _metricsNames) - { - insertSortedChild(new MetricsView(this, name, metricsAdmin), _metrics, null); - } - } - } - private void createAdapters() { for(AdapterDescriptor p : _serverDescriptor.adapters) @@ -1293,7 +1288,6 @@ public class Server extends ListArrayTreeNode private java.util.List<MetricsView> _metrics = new java.util.LinkedList<MetricsView>(); private java.util.Set<String> _startedServices = new java.util.HashSet<String>(); - private String[] _metricsNames; private ServerState _state; private boolean _enabled; diff --git a/java/src/IceGridGUI/LiveDeployment/Service.java b/java/src/IceGridGUI/LiveDeployment/Service.java index 45ca97df936..8d73709eb29 100644 --- a/java/src/IceGridGUI/LiveDeployment/Service.java +++ b/java/src/IceGridGUI/LiveDeployment/Service.java @@ -30,7 +30,7 @@ public class Service extends ListArrayTreeNode // public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; + boolean[] actions = new boolean[IceGridGUI.LiveDeployment.TreeNode.ACTION_COUNT]; ServerState serverState = ((Server)_parent).getState(); @@ -504,8 +504,14 @@ public class Service extends ListArrayTreeNode { public void run() { - _metricsNames = enabledViews; - createMetrics(metricsAdmin); + for(String name : enabledViews) + { + insertSortedChild(new MetricsView(Service.this, name, metricsAdmin, true), _metrics, null); + } + for(String name : disabledViews) + { + insertSortedChild(new MetricsView(Service.this, name, metricsAdmin, false), _metrics, null); + } rebuild(Service.this); } }); @@ -547,17 +553,6 @@ public class Service extends ListArrayTreeNode } } - private void createMetrics(IceMX.MetricsAdminPrx metricsAdmin) - { - if(_metricsNames != null) - { - for(String name : _metricsNames) - { - insertSortedChild(new MetricsView(this, name, metricsAdmin), _metrics, null); - } - } - } - void rebuild(Service service) { _adapters = service._adapters; @@ -599,7 +594,6 @@ public class Service extends ListArrayTreeNode private boolean _started = false; private boolean _metricsRetrieved = false; - private String[] _metricsNames; static private ServiceEditor _editor; static private DefaultTreeCellRenderer _cellRenderer; diff --git a/java/src/IceGridGUI/LiveDeployment/Slave.java b/java/src/IceGridGUI/LiveDeployment/Slave.java index be6dc806de9..79a9498e76a 100644 --- a/java/src/IceGridGUI/LiveDeployment/Slave.java +++ b/java/src/IceGridGUI/LiveDeployment/Slave.java @@ -29,7 +29,7 @@ class Slave extends TreeNode // public boolean[] getAvailableActions() { - boolean[] actions = new boolean[ACTION_COUNT]; + boolean[] actions = new boolean[IceGridGUI.LiveDeployment.TreeNode.ACTION_COUNT]; actions[SHUTDOWN_REGISTRY] = true; actions[RETRIEVE_STDOUT] = true; actions[RETRIEVE_STDERR] = true; diff --git a/java/src/IceGridGUI/LiveDeployment/TreeNode.java b/java/src/IceGridGUI/LiveDeployment/TreeNode.java index 60fe0b36b2f..affd94985e3 100644 --- a/java/src/IceGridGUI/LiveDeployment/TreeNode.java +++ b/java/src/IceGridGUI/LiveDeployment/TreeNode.java @@ -61,7 +61,10 @@ public abstract class TreeNode extends TreeNodeBase public static final int OPEN_DEFINITION = 19; - static public final int ACTION_COUNT = 20; + static public final int ENABLE_METRICS_VIEW = 20; + static public final int DISABLE_METRICS_VIEW = 21; + + static public final int ACTION_COUNT = 22; public boolean[] getAvailableActions() { @@ -121,6 +124,11 @@ public abstract class TreeNode extends TreeNodeBase assert false; } + public void enableMetricsView(boolean enabled) + { + assert false; + } + // // Helpers // |