From 137a5f031b7b2437a8eab0ee0662d2caf32b19de Mon Sep 17 00:00:00 2001 From: josh Date: Sun, 9 Mar 2008 04:58:32 +0000 Subject: [PATCH] GUI printing Server's Peer Group Leader list git-svn-id: svn://anubis/gvsu@59 45c1a28c-8058-47b2-ae61-ca45b979098e --- cs654/proj1/KaZaGUI.java | 25 +++++++++++++++++++++++++ cs654/proj1/KaZaServer.java | 13 +++++++++++++ 2 files changed, 38 insertions(+) diff --git a/cs654/proj1/KaZaGUI.java b/cs654/proj1/KaZaGUI.java index 8c82bd5..14e8694 100644 --- a/cs654/proj1/KaZaGUI.java +++ b/cs654/proj1/KaZaGUI.java @@ -37,6 +37,7 @@ public class KaZaGUI extends JFrame private JButton m_serverStartButton; private JTextField m_serverPeerAddressField; private JButton m_serverPeerConnectButton; + private JLabel m_serverPeerGroupLeadersLabel; public KaZaGUI() { @@ -144,6 +145,19 @@ public class KaZaGUI extends JFrame first = false; } m_serverClientsLabel.setText(caption); + + Object[] peers = m_server.getPeerGroupLeaderList(); + caption = "Peer Group Leaders (" + peers.length + "): "; + first = true; + for (Object o : peers) + { + String s = (String) o; + if (!first) + caption += ", "; + caption += s; + first = false; + } + m_serverPeerGroupLeadersLabel.setText(caption); } synchronized (m_activeDownloads) @@ -168,6 +182,7 @@ public class KaZaGUI extends JFrame { m_server.connectToPeerGroupLeader( m_serverPeerAddressField.getText()); + m_serverPeerAddressField.setText(""); } } } @@ -353,9 +368,11 @@ public class KaZaGUI extends JFrame m_serverPeerAddressField = new JTextField(); m_serverPeerConnectButton = new JButton("Connect"); m_serverPeerConnectButton.addActionListener(m_handler); + m_serverPeerGroupLeadersLabel = new JLabel(); JPanel serverPanel = new JPanel(); serverPanel.setLayout(new BoxLayout(serverPanel, BoxLayout.Y_AXIS)); + JPanel p = new JPanel(); p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS)); p.add(m_serverClientsLabel); @@ -363,6 +380,14 @@ public class KaZaGUI extends JFrame new Dimension(Short.MAX_VALUE, Short.MAX_VALUE))); serverPanel.add(p); + p = new JPanel(); + p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS)); + p.add(m_serverPeerGroupLeadersLabel); + p.add(new Box.Filler(new Dimension(0, 0), new Dimension(Short.MAX_VALUE, 0), + new Dimension(Short.MAX_VALUE, Short.MAX_VALUE))); + serverPanel.add(p); + + p = new JPanel(); p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS)); p.add(new JLabel("Peer Group Leader to link to: ")); diff --git a/cs654/proj1/KaZaServer.java b/cs654/proj1/KaZaServer.java index 4b3894c..e44ddd0 100644 --- a/cs654/proj1/KaZaServer.java +++ b/cs654/proj1/KaZaServer.java @@ -71,6 +71,19 @@ public class KaZaServer implements Runnable return s.toArray(); } + public Object[] getPeerGroupLeaderList() + { + Vector peers = new Vector(); + synchronized (m_peerGroupLeaders) + { + for (Socket s : m_peerGroupLeaders) + { + peers.add(s.getInetAddress().getHostAddress()); + } + } + return peers.toArray(); + } + private class ClientInfo { String userName = "Anonymous";