changeset 57:cad48fbe4e5a

show network interface information in a table
author Omair Majid <omajid@redhat.com>
date Thu, 26 Jan 2012 15:07:47 -0500
parents 335a8653d206
children d091ca03cead
files src/com/redhat/thermostat/client/strings.properties src/com/redhat/thermostat/client/ui/HostPanel.java src/com/redhat/thermostat/client/ui/SimpleTable.java
diffstat 3 files changed, 39 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/com/redhat/thermostat/client/strings.properties	Thu Jan 26 11:55:52 2012 -0500
+++ b/src/com/redhat/thermostat/client/strings.properties	Thu Jan 26 15:07:47 2012 -0500
@@ -69,7 +69,10 @@
 HOST_INFO_OS_KERNEL = OS Kernel
 HOST_INFO_MEMORY_TOTAL = Total Memory
 HOST_INFO_NETWORK = Network
-HOST_INFO_NETWORK_INTERFACE_ADDDRESS = {0} ({1} or {2}) 
+
+NETWORK_INTERFACE_COLUMN = Interface
+NETWORK_IPV4_COLUMN = IPv4 Address
+NETWORK_IPV6_COLUMN = IPv6 Address
 
 HOST_CPU_SECTION_OVERVIEW = Processor
 HOST_CPU_USAGE_CHART_TITLE = Cpu Usage
--- a/src/com/redhat/thermostat/client/ui/HostPanel.java	Thu Jan 26 11:55:52 2012 -0500
+++ b/src/com/redhat/thermostat/client/ui/HostPanel.java	Thu Jan 26 15:07:47 2012 -0500
@@ -39,6 +39,7 @@
 import static com.redhat.thermostat.client.Translate._;
 
 import java.awt.BorderLayout;
+import java.awt.Dimension;
 import java.awt.FlowLayout;
 import java.awt.GridBagConstraints;
 import java.awt.GridBagLayout;
@@ -51,7 +52,11 @@
 import javax.swing.AbstractButton;
 import javax.swing.JCheckBox;
 import javax.swing.JPanel;
+import javax.swing.JScrollPane;
 import javax.swing.JTabbedPane;
+import javax.swing.JTable;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableModel;
 
 import org.jfree.chart.ChartFactory;
 import org.jfree.chart.ChartPanel;
@@ -127,16 +132,25 @@
         entry = new TableEntry(_("HOST_INFO_MEMORY_TOTAL"), String.valueOf(hostInfo.getTotalMemory()));
         hardware.add(entry);
 
-        Key key = new Key(_("HOST_INFO_NETWORK"));
-        List<Value> values = new ArrayList<Value>();
+        DefaultTableModel networkTableModel = new DefaultTableModel();
+        networkTableModel.addColumn(_("NETWORK_INTERFACE_COLUMN"));
+        networkTableModel.addColumn(_("NETWORK_IPV4_COLUMN"));
+        networkTableModel.addColumn(_("NETWORK_IPV6_COLUMN"));
         for (Iterator<NetworkInterfaceInfo> iter = facade.getNetworkInfo().getInterfacesIterator(); iter.hasNext();) {
             NetworkInterfaceInfo networkInfo = iter.next();
             String ifaceName = networkInfo.getInterfaceName();
             String ipv4 = networkInfo.getIp4Addr();
             String ipv6 = networkInfo.getIp6Addr();
-            values.add(new Value(_("HOST_INFO_NETWORK_INTERFACE_ADDDRESS", ifaceName, ipv4, ipv6)));
+            networkTableModel.addRow(new Object[] {ifaceName, ipv4, ipv6});
         }
-        hardware.add(new TableEntry(key, values));
+        JTable networkTable = new JTable(networkTableModel);
+
+        JPanel networkPanel = new JPanel(new BorderLayout());
+        networkPanel.add(networkTable.getTableHeader(), BorderLayout.PAGE_START);
+        networkPanel.add(networkTable, BorderLayout.CENTER);
+
+        Key key = new Key(_("HOST_INFO_NETWORK"));
+        hardware.add(new TableEntry(key, new Value(networkPanel)));
 
         Section software = new Section(_("HOST_OVERVIEW_SECTION_SOFTWARE"));
         allSections.add(software);
--- a/src/com/redhat/thermostat/client/ui/SimpleTable.java	Thu Jan 26 11:55:52 2012 -0500
+++ b/src/com/redhat/thermostat/client/ui/SimpleTable.java	Thu Jan 26 15:07:47 2012 -0500
@@ -120,14 +120,25 @@
 
     public static class Value {
         private final String text;
+        private final Component actualComponent;
 
         public Value(String text) {
             this.text = text;
+            this.actualComponent = null;
+        }
+
+        public Value(Component component) {
+            this.actualComponent = component;
+            this.text = null;
         }
 
         public String getText() {
             return text;
         }
+        public Component getComponent() {
+            return actualComponent;
+        }
+
     }
 
     public static JPanel createTable(List<Section> sections) {
@@ -148,6 +159,7 @@
         keyConstraints.insets = valueConstraints.insets = rowInsets;
         keyConstraints.gridy = valueConstraints.gridy = 0;
         keyConstraints.gridx = 0;
+        keyConstraints.anchor = GridBagConstraints.FIRST_LINE_END;
         valueConstraints.gridx = 1;
         keyConstraints.fill = valueConstraints.fill = GridBagConstraints.HORIZONTAL;
 
@@ -164,7 +176,11 @@
                 container.add(Components.label(tableEntry.getKey().getText()), keyConstraints);
 
                 for (Value value : tableEntry.getValues()) {
-                    container.add(Components.value(value.getText()), valueConstraints);
+                    if (value.getComponent() == null) {
+                        container.add(Components.value(value.getText()), valueConstraints);
+                    } else {
+                        container.add(value.getComponent(), valueConstraints);
+                    }
                     keyConstraints.gridy = ++valueConstraints.gridy;
                 }
             }