From 7d32bc5dca14b53056a64bf40e534fb0911e038e Mon Sep 17 00:00:00 2001 From: josh Date: Sun, 9 Mar 2008 00:41:30 +0000 Subject: [PATCH] search results displaying in GUI!!! git-svn-id: svn://anubis/gvsu@48 45c1a28c-8058-47b2-ae61-ca45b979098e --- cs654/proj1/KaZaGUI.java | 64 +++++++++++++++++++++++++++++++--------- 1 file changed, 50 insertions(+), 14 deletions(-) diff --git a/cs654/proj1/KaZaGUI.java b/cs654/proj1/KaZaGUI.java index 3d8ca64..ca5bb68 100644 --- a/cs654/proj1/KaZaGUI.java +++ b/cs654/proj1/KaZaGUI.java @@ -23,6 +23,9 @@ public class KaZaGUI extends JFrame private JTextField m_serverNameField; private JTextField m_queryField; private JComboBox m_speedCombo; + private JPanel m_searchResultsPanel; + private JScrollPane m_searchResultsScrollPane; + private JList m_searchResultsList; /* server tab components */ private JLabel m_serverClientsLabel; @@ -114,16 +117,7 @@ public class KaZaGUI extends JFrame if ( m_client != null && m_client.connected() && (!m_queryField.getText().trim().equals("")) ) { - Vector results = - m_client.performSearch(m_queryField.getText()); - for (KaZaClient.SearchResult r : results) - { - System.out.println("Result: " + - r.peerAddress + ", " + - r.userName + ", " + - r.fileName + ", " + - r.fileDescription); - } + performSearch(m_queryField.getText()); } } else if (e.getSource() == m_timer) @@ -147,6 +141,38 @@ public class KaZaGUI extends JFrame } } + private void performSearch(String query) + { + Vector results = + m_client.performSearch(query); + + if (m_searchResultsList != null) + { + m_searchResultsPanel.remove(m_searchResultsScrollPane); + m_searchResultsScrollPane = null; + m_searchResultsList = null; + m_searchResultsPanel.validate(); + } + + Vector stringResults = new Vector(); + for (KaZaClient.SearchResult r : results) + { + String res = "User: \"" + r.userName + "\" [" + + r.peerAddress + "], File: \"" + + r.fileName + "\" (" + r.fileDescription + ")"; + stringResults.add(res); + } + m_searchResultsList = new JList(stringResults.toArray()); + m_searchResultsList.setVisibleRowCount(-1); + m_searchResultsScrollPane = new JScrollPane(m_searchResultsList); + m_searchResultsScrollPane.setPreferredSize(new Dimension(Short.MAX_VALUE, + Short.MAX_VALUE)); + m_searchResultsPanel.add(m_searchResultsScrollPane); + m_searchResultsPanel.validate(); + m_searchResultsPanel.repaint(); + repaint(); + } + private class ConnectionSpeed { private String m_caption; @@ -191,6 +217,15 @@ public class KaZaGUI extends JFrame m_speedCombo.setSelectedIndex(3); m_userNameField = new JTextField(); m_queryField = new JTextField(); + m_searchResultsPanel = new JPanel(); + m_searchResultsPanel.setLayout(new BoxLayout(m_searchResultsPanel, + BoxLayout.X_AXIS)); + m_searchResultsList = new JList(); + m_searchResultsList.setVisibleRowCount(-1); + m_searchResultsScrollPane = new JScrollPane(m_searchResultsList); + m_searchResultsScrollPane.setPreferredSize(new Dimension(Short.MAX_VALUE, + Short.MAX_VALUE)); + m_searchResultsPanel.add(m_searchResultsScrollPane); JPanel clientPanel = new JPanel(); clientPanel.setLayout(new BoxLayout(clientPanel, BoxLayout.Y_AXIS)); @@ -221,10 +256,11 @@ public class KaZaGUI extends JFrame p.add(m_queryField); p.add(m_searchButton); clientPanel.add(p); - clientPanel.add(new Box.Filler(new Dimension(0, 0), - new Dimension(0, Short.MAX_VALUE), - new Dimension(Short.MAX_VALUE, - Short.MAX_VALUE))); + clientPanel.add(m_searchResultsPanel); +// clientPanel.add(new Box.Filler(new Dimension(0, 0), +// new Dimension(0, Short.MAX_VALUE), +// new Dimension(Short.MAX_VALUE, +// Short.MAX_VALUE))); p = new JPanel(); p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS)); p.add(m_statusLabel);