summaryrefslogtreecommitdiff
path: root/java/src/IceGridGUI/LiveDeployment/NodeEditor.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/IceGridGUI/LiveDeployment/NodeEditor.java
parentJava metadata (diff)
downloadice-20744ae1f1182d08e26b175f59d14041aabaf754.tar.bz2
ice-20744ae1f1182d08e26b175f59d14041aabaf754.tar.xz
ice-20744ae1f1182d08e26b175f59d14041aabaf754.zip
IceGrid GUI refactoring
Diffstat (limited to 'java/src/IceGridGUI/LiveDeployment/NodeEditor.java')
-rwxr-xr-xjava/src/IceGridGUI/LiveDeployment/NodeEditor.java185
1 files changed, 185 insertions, 0 deletions
diff --git a/java/src/IceGridGUI/LiveDeployment/NodeEditor.java b/java/src/IceGridGUI/LiveDeployment/NodeEditor.java
new file mode 100755
index 00000000000..087c7cd53b2
--- /dev/null
+++ b/java/src/IceGridGUI/LiveDeployment/NodeEditor.java
@@ -0,0 +1,185 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2005 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.LiveDeployment;
+
+import java.awt.event.ActionEvent;
+
+import com.jgoodies.forms.builder.DefaultFormBuilder;
+import com.jgoodies.forms.layout.CellConstraints;
+
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.JTextField;
+
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.DefaultTableCellRenderer;
+
+import IceGrid.*;
+import IceGridGUI.*;
+
+class NodeEditor extends Editor
+{
+ NodeEditor()
+ {
+ _hostname.setEditable(false);
+ _os.setEditable(false);
+ _machineType.setEditable(false);
+ _loadAverage.setEditable(false);
+
+ Action refresh = new AbstractAction("Refresh")
+ {
+ public void actionPerformed(ActionEvent e)
+ {
+ _target.showLoad();
+ }
+ };
+ refresh.putValue(Action.SHORT_DESCRIPTION,
+ "Fetch the latest values from this IceGrid Node");
+ _refreshButton = new JButton(refresh);
+
+ _loadFactorModel = new DefaultTableModel()
+ {
+ public boolean isCellEditable(int row, int column)
+ {
+ return false;
+ }
+ };
+
+ _loadFactorTable = new JTable(_loadFactorModel);
+ _loadFactorTable.setCellSelectionEnabled(false);
+ _loadFactorTable.setOpaque(false);
+ _loadFactorTable.setPreferredScrollableViewportSize(
+ _loadFactorTable.getPreferredSize());
+
+ _columnNames.add("Application");
+ _columnNames.add("Value");
+
+ }
+
+ void show(Node node)
+ {
+ _target = node;
+
+ NodeInfo info = node.getStaticInfo();
+
+ if(info == null)
+ {
+ _hostname.setText("Unknown");
+ _os.setText("Unknown");
+ _machineType.setText("Unknown");
+ _loadAverageLabel.setText("Load Average");
+ _loadAverage.setText("Unknown");
+ }
+ else
+ {
+ _hostname.setText(info.hostname);
+ _os.setText(info.os + " " + info.release + " " + info.version);
+ _machineType.setText(info.machine + " with " +
+ info.nProcessors
+ + " CPU"
+ + (info.nProcessors >= 2 ? "s" : ""));
+
+ if(node.isRunningWindows())
+ {
+ _loadAverageLabel.setText("CPU Usage");
+ _loadAverage.setToolTipText(
+ "CPU usage in the past 1 min, 5 min and 15 min period");
+ }
+ else
+ {
+ _loadAverageLabel.setText("Load Average");
+ _loadAverage.setToolTipText(
+ "Load average in the past 1 min, 5 min and 15 min period");
+ }
+ _loadAverage.setText("Refreshing...");
+ node.showLoad();
+ }
+
+ _loadFactorModel.setDataVector(
+ mapToVector(node.getLoadFactors()),
+ _columnNames);
+
+ DefaultTableCellRenderer cr = (DefaultTableCellRenderer)
+ _loadFactorTable.getDefaultRenderer(String.class);
+ cr.setOpaque(false);
+
+ }
+
+ void setLoad(String load, Node node)
+ {
+ if(node == _target)
+ {
+ _loadAverage.setText(load);
+ }
+ //
+ // Otherwise, we've already moved to another node
+ //
+ }
+
+ protected void appendProperties(DefaultFormBuilder builder)
+ {
+ builder.appendSeparator("System Information");
+
+ builder.append("Hostname");
+ builder.append(_hostname, 3);
+ builder.nextLine();
+ builder.append("Operating System");
+ builder.append(_os, 3);
+ builder.nextLine();
+ builder.append("Machine Type");
+ builder.append(_machineType, 3);
+ builder.append(_loadAverageLabel, _loadAverage);
+ builder.append(_refreshButton);
+ builder.nextLine();
+
+ builder.appendSeparator("Configuration");
+
+ builder.append("Load Factor");
+ builder.nextLine();
+
+ builder.append("");
+ builder.nextLine();
+
+ builder.append("");
+ builder.nextLine();
+
+ builder.append("");
+ builder.nextRow(-6);
+ CellConstraints cc = new CellConstraints();
+ JScrollPane scrollPane = new JScrollPane(_loadFactorTable);
+ builder.add(scrollPane,
+ cc.xywh(builder.getColumn(), builder.getRow(), 3, 7));
+ builder.nextRow(6);
+ builder.nextLine();
+ }
+
+ protected void buildPropertiesPanel()
+ {
+ super.buildPropertiesPanel();
+ _propertiesPanel.setName("Node Properties");
+ }
+
+ private JTextField _hostname = new JTextField(20);
+ private JTextField _os = new JTextField(20);
+ private JTextField _machineType = new JTextField(20);
+ private JLabel _loadAverageLabel = new JLabel();
+ private JTextField _loadAverage = new JTextField(20);
+ private JButton _refreshButton;
+
+ private JTable _loadFactorTable;
+ private DefaultTableModel _loadFactorModel;
+ private java.util.Vector _columnNames = new java.util.Vector(2);
+
+ private Node _target;
+}