[gui-dev] Repeat search patch

Jens-Uwe Mager <[email protected]> Wed, 25 Aug 2004 17:48:21 +0200
Newsgroups gmane.network.gnutella.limewire.gui.devel
Message-ID <[email protected]>
Well, so you know what is in my version of the LimeWire build, here is
the repeat search submenu.
-- 
Jens-Uwe Mager	<pgp-mailto:F476EBC2>

_______________________________________________
gui-dev mailing list
[email protected]
http://www.limewire.org/mailman/listinfo/gui-dev
repeat.patch (text/plain, 6.9 KB)
Index: lib/messagebundles/MessagesBundle.properties
===================================================================
RCS file: /cvs/lib/messagebundles/MessagesBundle.properties,v
retrieving revision 1.122
diff -u -r1.122 MessagesBundle.properties
--- lib/messagebundles/MessagesBundle.properties	21 Aug 2004 20:05:02 -0000	1.122
+++ lib/messagebundles/MessagesBundle.properties	25 Aug 2004 13:02:32 -0000
@@ -351,6 +359,9 @@
 SEARCH_PUBLIC_MAGNET_LOOKUP_STRING=Magnet details for file
 SEARCH_PUBLIC_HTTP_PAGE_STRING=Web page for file(s)
 SEARCH_PUBLIC_REPEAT_SEARCH_STRING=Repeat Search
+SEARCH_PUBLIC_REPEAT_SEARCH_ONCE_STRING=once
+SEARCH_PUBLIC_REPEAT_SEARCH_15M_STRING=every 15 minutes
+SEARCH_PUBLIC_REPEAT_SEARCH_30M_STRING=every 30 minutes
 SEARCH_PUBLIC_BLOCK_STRING=Block Host
 SEARCH_RESULT_TABLE_LABEL=Results
 SEARCH_SEARCHING_LABEL=Searching...
Index: lib/messagebundles/MessagesBundle_de.properties
===================================================================
RCS file: /cvs/lib/messagebundles/MessagesBundle_de.properties,v
retrieving revision 1.10
diff -u -r1.10 MessagesBundle_de.properties
--- lib/messagebundles/MessagesBundle_de.properties	23 Apr 2004 21:53:08 -0000	1.10
+++ lib/messagebundles/MessagesBundle_de.properties	25 Aug 2004 13:02:35 -0000
@@ -340,6 +351,9 @@
 SEARCH_PUBLIC_CHAT_STRING=Chatten
 SEARCH_PUBLIC_BITZI_LOOKUP_STRING=Bitzi-Web-Suche...
 SEARCH_PUBLIC_REPEAT_SEARCH_STRING=Suche wiederholen
+SEARCH_PUBLIC_REPEAT_SEARCH_ONCE_STRING=einmal
+SEARCH_PUBLIC_REPEAT_SEARCH_15M_STRING=alle 15 Minuten
+SEARCH_PUBLIC_REPEAT_SEARCH_30M_STRING=alle 30 Minuten
 SEARCH_PUBLIC_BLOCK_STRING=Rechner blockieren
 SEARCH_RESULT_TABLE_LABEL=Resultate
 SEARCH_SEARCHING_LABEL=Suche läuft...
Index: gui/com/limegroup/gnutella/gui/search/ResultPanel.java
===================================================================
RCS file: /cvs/gui/com/limegroup/gnutella/gui/search/ResultPanel.java,v
retrieving revision 1.137
diff -u -r1.137 ResultPanel.java
--- gui/com/limegroup/gnutella/gui/search/ResultPanel.java	23 Aug 2004 17:38:34 -0000	1.137
+++ gui/com/limegroup/gnutella/gui/search/ResultPanel.java	25 Aug 2004 13:02:50 -0000
@@ -75,6 +75,8 @@
      */
     private volatile GUID guid;
 
+    private Timer repeatTimer;
+
     /**
      * The time (in milliseconds) that we last received a Query Result
      */
@@ -141,6 +143,27 @@
 	    SEARCH_INFO = info;
 	    this.guid = guid;
 	    setupRealTable();
+        repeatTimer = new Timer(0, new ActionListener() {
+			public void actionPerformed(ActionEvent ae) {
+                            try {
+                                repeatSearch();
+                            } catch(Exception e) {
+                                GUIMediator.showInternalError(e);
+                            }
+			}
+        });
+    }
+
+    public void stopRepeat() {
+        repeatTimer.stop();
+    }
+
+    public void setRepeatTime(int repTime) {
+        repeatTimer.stop();
+        repeatTimer.setDelay(repTime*60*1000);
+        repeatTimer.setInitialDelay(0);
+        repeatTimer.setRepeats(repTime != 0);
+        repeatTimer.start();
     }
     
     /**
Index: gui/com/limegroup/gnutella/gui/search/SearchMediator.java
===================================================================
RCS file: /cvs/gui/com/limegroup/gnutella/gui/search/SearchMediator.java,v
retrieving revision 1.81
diff -u -r1.81 SearchMediator.java
--- gui/com/limegroup/gnutella/gui/search/SearchMediator.java	23 Aug 2004 17:38:34 -0000	1.81
+++ gui/com/limegroup/gnutella/gui/search/SearchMediator.java	25 Aug 2004 13:02:51 -0000
@@ -47,6 +47,12 @@
         GUIMediator.getStringResource("SEARCH_PUBLIC_CHAT_STRING");
     static final String REPEAT_SEARCH_STRING =
         GUIMediator.getStringResource("SEARCH_PUBLIC_REPEAT_SEARCH_STRING");
+    static final String REPEAT_SEARCH_ONCE_STRING =
+        GUIMediator.getStringResource("SEARCH_PUBLIC_REPEAT_SEARCH_ONCE_STRING");
+    static final String REPEAT_SEARCH_15M_STRING =
+        GUIMediator.getStringResource("SEARCH_PUBLIC_REPEAT_SEARCH_15M_STRING");
+    static final String REPEAT_SEARCH_30M_STRING =
+        GUIMediator.getStringResource("SEARCH_PUBLIC_REPEAT_SEARCH_30M_STRING");
     static final String BROWSE_HOST_STRING =
         GUIMediator.getStringResource("SEARCH_PUBLIC_BROWSE_STRING");
     static final String BITZI_LOOKUP_STRING =
Index: gui/com/limegroup/gnutella/gui/search/SearchResultDisplayer.java
===================================================================
RCS file: /cvs/gui/com/limegroup/gnutella/gui/search/SearchResultDisplayer.java,v
retrieving revision 1.45
diff -u -r1.45 SearchResultDisplayer.java
--- gui/com/limegroup/gnutella/gui/search/SearchResultDisplayer.java	23 Aug 2004 17:38:34 -0000	1.45
+++ gui/com/limegroup/gnutella/gui/search/SearchResultDisplayer.java	25 Aug 2004 13:02:51 -0000
@@ -335,6 +335,7 @@
             ResultPanel killed = (ResultPanel) entries.remove(i);
             final GUID killedGUID = new GUID(killed.getGUID());
             GUIMediator.removeThemeObserver(killed);
+            killed.stopRepeat();
             GUIMediator.instance().schedule(new Runnable() {
                 public void run() {
                     RouterService.stopQuery(killedGUID);
Index: gui/com/limegroup/gnutella/gui/search/SearchResultMenu.java
===================================================================
RCS file: /cvs/gui/com/limegroup/gnutella/gui/search/SearchResultMenu.java,v
retrieving revision 1.6
diff -u -r1.6 SearchResultMenu.java
--- gui/com/limegroup/gnutella/gui/search/SearchResultMenu.java	23 Apr 2004 17:35:42 -0000	1.6
+++ gui/com/limegroup/gnutella/gui/search/SearchResultMenu.java	25 Aug 2004 13:02:51 -0000
@@ -47,8 +47,28 @@
         /////////////////////////////
         menu.addSeparator();
         
-        add(SearchMediator.REPEAT_SEARCH_STRING, new RepeatListener(),
-            menu, PANEL.isRepeatSearchEnabled());
+        //add(SearchMediator.REPEAT_SEARCH_STRING, new RepeatListener(),
+        //    menu, PANEL.isRepeatSearchEnabled());
+        JMenu repeatSearchEntry = 
+            new JMenu(SearchMediator.REPEAT_SEARCH_STRING);
+        int[] repTimes = {0, 15, 30};
+        String[] repTitles = {
+            SearchMediator.REPEAT_SEARCH_ONCE_STRING,
+            SearchMediator.REPEAT_SEARCH_15M_STRING,
+            SearchMediator.REPEAT_SEARCH_30M_STRING
+        };
+        for (int inx = 0; inx < repTimes.length; inx++) {
+        	final int repTime = repTimes[inx];
+        	JMenuItem item = new JMenuItem(repTitles[inx]);
+        	item.addActionListener(new ActionListener() {
+                    public void actionPerformed(ActionEvent ae) {
+                        PANEL.setRepeatTime(repTime);
+                    }
+        	});
+        	repeatSearchEntry.add(item);
+        }
+        menu.add(repeatSearchEntry);
+
         add(SearchMediator.STOP_STRING, PANEL.STOP_LISTENER,
             menu, !PANEL.isStopped());
         add(SearchMediator.KILL_STRING, new CancelListener(),