Author: jflesch
Date: 2006-08-02 16:59:22 +0000 (Wed, 02 Aug 2006)
New Revision: 9850

Modified:
   trunk/apps/Thaw/src/thaw/core/Core.java
   trunk/apps/Thaw/src/thaw/core/SplashScreen.java
   trunk/apps/Thaw/src/thaw/fcp/FCPQueueManager.java
   trunk/apps/Thaw/src/thaw/i18n/thaw.properties
   trunk/apps/Thaw/src/thaw/plugins/QueueWatcher.java
Log:
Improve disconnection support

Modified: trunk/apps/Thaw/src/thaw/core/Core.java
===================================================================
--- trunk/apps/Thaw/src/thaw/core/Core.java     2006-08-02 15:39:52 UTC (rev 
9849)
+++ trunk/apps/Thaw/src/thaw/core/Core.java     2006-08-02 16:59:22 UTC (rev 
9850)
@@ -169,11 +169,21 @@
                                Logger.warning(this, "Unable to connect !");
                        }

-                       queryManager = new FCPQueryManager(connection);
-                       queueManager = new FCPQueueManager(queryManager,
-                                                          
config.getValue("thawId"),
-                                                          
Integer.parseInt(config.getValue("maxSimultaneousDownloads")),
-                                                          
Integer.parseInt(config.getValue("maxSimultaneousInsertions")));
+                       if(queryManager == null)
+                               queryManager = new FCPQueryManager(connection);
+                       
+                       if(queueManager == null)
+                               queueManager = new FCPQueueManager(queryManager,
+                                                                  
config.getValue("thawId"),
+                                                                  
Integer.parseInt(config.getValue("maxSimultaneousDownloads")),
+                                                                  
Integer.parseInt(config.getValue("maxSimultaneousInsertions")));
+                       else {
+                               
queueManager.setThawId(config.getValue("thawId"));
+                               
queueManager.setMaxDownloads(Integer.parseInt(config.getValue("maxSimultaneousDownloads")));
+                               
queueManager.setMaxInsertions(Integer.parseInt(config.getValue("maxSimultaneousInsertions")));
+                               
+                       }
+                               



@@ -391,6 +401,8 @@
                Logger.debug(this, "Move on the connection (?)");

                if(o == connection && !connection.isConnected()) {
+                       disconnect();
+
                        int nmbReconnect = 0;

                        JDialog warningDialog = new JDialog();

Modified: trunk/apps/Thaw/src/thaw/core/SplashScreen.java
===================================================================
--- trunk/apps/Thaw/src/thaw/core/SplashScreen.java     2006-08-02 15:39:52 UTC 
(rev 9849)
+++ trunk/apps/Thaw/src/thaw/core/SplashScreen.java     2006-08-02 16:59:22 UTC 
(rev 9850)
@@ -24,7 +24,7 @@
        }

        public void display() {
-               splashScreen = new JFrame();
+               splashScreen = new JFrame("Thaw - Loading ...");

                splashScreen.setLayout(new BorderLayout(10, 10));


Modified: trunk/apps/Thaw/src/thaw/fcp/FCPQueueManager.java
===================================================================
--- trunk/apps/Thaw/src/thaw/fcp/FCPQueueManager.java   2006-08-02 15:39:52 UTC 
(rev 9849)
+++ trunk/apps/Thaw/src/thaw/fcp/FCPQueueManager.java   2006-08-02 16:59:22 UTC 
(rev 9850)
@@ -9,7 +9,7 @@
  * Manage a running and a pending queue of FCPTransferQuery.
  * Please notice that runningQueue contains too finished queries.
  */
-public class FCPQueueManager extends java.util.Observable implements Runnable {
+public class FCPQueueManager extends java.util.Observable implements Runnable, 
java.util.Observer {

        private final static int PRIORITY_MIN = 6; /* So 0 to 6 */

@@ -29,18 +29,20 @@


        /**
-        * Calls setQueryManager() and then resetQueue().
+        * Calls setQueryManager() and then resetQueues().
         */
        public FCPQueueManager(FCPQueryManager queryManager,
                               String thawId,
                               int maxDownloads, int maxInsertions) {
                lastId = 0;
-               this.thawId = thawId;
+               setThawId(thawId);
                setMaxDownloads(maxDownloads);
                setMaxInsertions(maxInsertions);

                setQueryManager(queryManager);
-               resetQueue();
+               resetQueues();
+
+               queryManager.getConnection().addObserver(this);
        }

        /**
@@ -50,6 +52,10 @@
                return queryManager;
        }

+       public void setThawId(String thawId) {
+               this.thawId = thawId;
+       }
+
        public void setMaxDownloads(int maxDownloads) {
                this.maxDownloads = maxDownloads;
        }
@@ -59,7 +65,7 @@
        }

        /**
-        * You should call resetQueue() after calling this function.
+        * You should call resetQueues() after calling this function.
         */
        public void setQueryManager(FCPQueryManager queryManager) {
                this.queryManager = queryManager;
@@ -69,8 +75,9 @@
        /**
         * Will purge the current known queue.
         */
-       public void resetQueue() {
+       public void resetQueues() {
                runningQueries = new Vector();
+
                for(int i = 0; i <= PRIORITY_MIN ; i++)
                        pendingQueries[i] = new Vector();
        }
@@ -374,7 +381,8 @@
                                return;

                        try {
-                               schedule();
+                               if(queryManager.getConnection().isConnected())
+                                       schedule();
                        } catch(java.util.ConcurrentModificationException e) {
                                Logger.notice(this, "Ordonnancor: Collision !");
                        } catch(Exception e) {
@@ -407,5 +415,18 @@
                return (thawId+"_"+ Integer.toString(lastId));
        }

+       public void update(java.util.Observable o, Object arg) {
+               if(o == queryManager.getConnection()
+                  && !queryManager.getConnection().isConnected()) {
+                       
+                       /* Only the running queue ...
+                        * pending query are specifics to Thaw
+                        */
+                       runningQueries = new Vector();
+
+                       setChanged();
+                       notifyObservers();
+               }
+       }
 }


Modified: trunk/apps/Thaw/src/thaw/i18n/thaw.properties
===================================================================
--- trunk/apps/Thaw/src/thaw/i18n/thaw.properties       2006-08-02 15:39:52 UTC 
(rev 9849)
+++ trunk/apps/Thaw/src/thaw/i18n/thaw.properties       2006-08-02 16:59:22 UTC 
(rev 9850)
@@ -168,3 +168,6 @@

 ## HsqlDb
 thaw.plugin.hsqldb.database=Database
+
+## Index management
+thaw.plugin.index.editor=Index editor

Modified: trunk/apps/Thaw/src/thaw/plugins/QueueWatcher.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/QueueWatcher.java  2006-08-02 15:39:52 UTC 
(rev 9849)
+++ trunk/apps/Thaw/src/thaw/plugins/QueueWatcher.java  2006-08-02 16:59:22 UTC 
(rev 9850)
@@ -94,9 +94,9 @@
                                                    IconBox.minQueue,
                                            panelAdded);

-               if(core.getConnectionManager() != null && 
core.getConnectionManager().isConnected()) {
-                       core.getConnectionManager().addObserver(this);
-               }
+               //if(core.getConnectionManager() != null && 
core.getConnectionManager().isConnected()) {
+               //      core.getConnectionManager().addObserver(this);
+               //}

                if(core.getQueueManager() != null)
                    core.getQueueManager().addObserver(this);


Reply via email to