diff --git a/src/main/java/info/istlab/ServerTester/NeighborsHostsWindow.java b/src/main/java/info/istlab/ServerTester/NeighborsHostsWindow.java deleted file mode 100644 index f8c6bf9..0000000 --- a/src/main/java/info/istlab/ServerTester/NeighborsHostsWindow.java +++ /dev/null @@ -1,99 +0,0 @@ -package info.istlab.ServerTester; - -import java.awt.Color; -import java.awt.Desktop; -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.Hashtable; -import java.util.Iterator; - -import javax.swing.BoxLayout; -import javax.swing.JButton; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTabbedPane; - -public class NeighborsHostsWindow extends JPanel { - - public NeighborsHostsWindow(Hashtable receivedData) { - JFrame frame = new JFrame(); - frame.setTitle("Neighbors Hosts"); - frame.setSize(300, 200); - frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); - - JTabbedPane tabbedPane = new JTabbedPane(); - 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 NeighborHost(key, value)); - } - - frame.pack(); - frame.setVisible(true); - } -} - -class NeighborHost extends JPanel { - String hostip; - - public NeighborHost(String _hostip, String value) { - hostip = _hostip; - setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); - // System.out.println(value); - String[] servers = value.split("\n"); - for (String server : servers) { - // ex: WebServer 8081 127.0.0.1 Running - String[] info = server.split(" "); - // System.out.println(server); - JPanel panel = new JPanel(); - panel.add(new JLabel(info[0])); - panel.add(new JLabel(info[1])); - JLabel addressLabel = new JLabel(info[2]); - if (info[2].equals("127.0.0.1")) { - addressLabel.setForeground(Color.red); - } - panel.add(addressLabel); - panel.add(new JLabel(info[3])); - JButton button = new JButton("Connect"); - panel.add(button); - if (info[3].equals("Running")) { - button.setEnabled(true); - } else { - button.setEnabled(false); - } - button.addActionListener(e -> { - // もしbind addressが0.0.0.0だったら、hostipを使う - String target = info[2]; - if (target.equals("0.0.0.0")) { - target = hostip; - } - if (target.equals("127.0.0.1")) { - target = hostip; - } - if (info[0].startsWith("Web")) { - // open web browser - Desktop desktop = Desktop.getDesktop(); - try { - desktop.browse(new URI("http://" + target + ":" + info[1])); - } catch (IOException | URISyntaxException e1) { - } - } else if (info[0].startsWith("Echo") || info[0].startsWith("ThreadEcho")) { - new JExecutor("EchoClient", info[1] + " " + target); - // new EchoClient(info[1], target); - } else if (info[0].startsWith("Time") || info[0].startsWith("ThreadTime")) { - new JExecutor("TimeClient", info[1] + " " + target); - // new TimeClient(info[1], target); - } else if (info[0].startsWith("WhiteBoard")) { - new JExecutor("WhiteBoardClient", info[1] + " " + target); - // new WhiteBoardClient(info[1], target); - } - }); - add(panel); - } - } - -} \ No newline at end of file diff --git a/src/main/java/info/istlab/ServerTester/RemoteHostsWindow.java b/src/main/java/info/istlab/ServerTester/RemoteHostsWindow.java new file mode 100644 index 0000000..c973524 --- /dev/null +++ b/src/main/java/info/istlab/ServerTester/RemoteHostsWindow.java @@ -0,0 +1,99 @@ +package info.istlab.ServerTester; + +import java.awt.Color; +import java.awt.Desktop; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Hashtable; +import java.util.Iterator; + +import javax.swing.BoxLayout; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTabbedPane; + +public class RemoteHostsWindow extends JPanel { + + public RemoteHostsWindow(Hashtable receivedData) { + JFrame frame = new JFrame(); + frame.setTitle("Remote Hosts"); + frame.setSize(300, 200); + frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + + JTabbedPane tabbedPane = new JTabbedPane(); + 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)); + } + + frame.pack(); + frame.setVisible(true); + } +} + +class RemoteHostPanel extends JPanel { + String hostip; + + public RemoteHostPanel(String _hostip, String value) { + hostip = _hostip; + setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); + // System.out.println(value); + String[] servers = value.split("\n"); + for (String server : servers) { + // ex: WebServer 8081 127.0.0.1 Running + String[] info = server.split(" "); + // System.out.println(server); + JPanel panel = new JPanel(); + panel.add(new JLabel(info[0])); + panel.add(new JLabel(info[1])); + JLabel addressLabel = new JLabel(info[2]); + if (info[2].equals("127.0.0.1")) { + addressLabel.setForeground(Color.red); + } + panel.add(addressLabel); + panel.add(new JLabel(info[3])); + JButton button = new JButton("Connect"); + panel.add(button); + if (info[3].equals("Running")) { + button.setEnabled(true); + } else { + button.setEnabled(false); + } + button.addActionListener(e -> { + // もしbind addressが0.0.0.0だったら、hostipを使う + String target = info[2]; + if (target.equals("0.0.0.0")) { + target = hostip; + } + if (target.equals("127.0.0.1")) { + target = hostip; + } + if (info[0].startsWith("Web")) { + // open web browser + Desktop desktop = Desktop.getDesktop(); + try { + desktop.browse(new URI("http://" + target + ":" + info[1])); + } catch (IOException | URISyntaxException e1) { + } + } else if (info[0].startsWith("Echo") || info[0].startsWith("ThreadEcho")) { + new JExecutor("EchoClient", info[1] + " " + target); + // new EchoClient(info[1], target); + } else if (info[0].startsWith("Time") || info[0].startsWith("ThreadTime")) { + new JExecutor("TimeClient", info[1] + " " + target); + // new TimeClient(info[1], target); + } else if (info[0].startsWith("WhiteBoard")) { + new JExecutor("WhiteBoardClient", info[1] + " " + target); + // new WhiteBoardClient(info[1], target); + } + }); + add(panel); + } + } + +} \ No newline at end of file diff --git a/src/main/java/info/istlab/ServerTester/UDPServer.java b/src/main/java/info/istlab/ServerTester/UDPServer.java index 445570b..16dbaa0 100644 --- a/src/main/java/info/istlab/ServerTester/UDPServer.java +++ b/src/main/java/info/istlab/ServerTester/UDPServer.java @@ -74,6 +74,6 @@ } } public void openWindow(){ - new NeighborsHostsWindow(receivedData); + new RemoteHostsWindow(receivedData); } }