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);