diff --git a/src/main/java/info/istlab/ServerTester/RemoteHostsWindow.java b/src/main/java/info/istlab/ServerTester/RemoteHostsWindow.java index 6404302..f697fe8 100644 --- a/src/main/java/info/istlab/ServerTester/RemoteHostsWindow.java +++ b/src/main/java/info/istlab/ServerTester/RemoteHostsWindow.java @@ -1,6 +1,5 @@ package info.istlab.ServerTester; -import java.awt.BorderLayout; import java.awt.Color; import java.awt.Desktop; import java.io.IOException; @@ -18,6 +17,7 @@ public class RemoteHostsWindow extends JPanel { JTabbedPane tabbedPane; + Hashtable panels = new Hashtable(); public RemoteHostsWindow(Hashtable receivedData) { JFrame frame = new JFrame(); frame.setTitle("Remote Hosts"); @@ -28,9 +28,11 @@ frame.getContentPane().add(tabbedPane); Iterator it = receivedData.keySet().iterator(); while (it.hasNext()) { - String key = it.next(); - String value = receivedData.get(key); - tabbedPane.add(key, new RemoteHostPanel(key, value)); + String addr = it.next(); + String value = receivedData.get(addr); + RemoteHostPanel rhp = new RemoteHostPanel(addr, value); + tabbedPane.add(addr, rhp); + panels.put(addr, rhp); } frame.setLocation(50,400); frame.pack(); @@ -38,11 +40,17 @@ } public void updateData(String addr, String value) { - JPanel panel = (JPanel)tabbedPane.getComponentAt(tabbedPane.indexOfTab(addr)); - panel.add(new RemoteHostPanel(addr, value), BorderLayout.CENTER); + RemoteHostPanel panel = panels.get(addr); + if (panel != null) { + panel.renewal(value); tabbedPane.validate(); tabbedPane.repaint(); System.out.println("Tab updated "+addr); + } else { + RemoteHostPanel rhp = new RemoteHostPanel(addr, value); + tabbedPane.add(addr, rhp); + panels.put(addr, rhp); + } } } @@ -53,6 +61,12 @@ hostip = _hostip; setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); // System.out.println(value); + fillPanels(value); + } + public void addnew(String value) { + fillPanels(value); + } + private void fillPanels(String value){ String[] servers = value.split("\n"); for (String server : servers) { // ex: WebServer 8081 127.0.0.1 Running @@ -104,5 +118,8 @@ add(panel); } } - + public void renewal(String value) { + removeAll(); + fillPanels(value); + } } \ No newline at end of file