Author: jflesch
Date: 2007-01-27 17:31:14 +0000 (Sat, 27 Jan 2007)
New Revision: 11625
Modified:
trunk/apps/Thaw/src/thaw/core/Core.java
trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java
trunk/apps/Thaw/src/thaw/i18n/thaw.properties
trunk/apps/Thaw/src/thaw/plugins/index/File.java
trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java
trunk/apps/Thaw/src/thaw/plugins/index/Index.java
trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java
trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java
trunk/apps/Thaw/src/thaw/plugins/index/IndexTreeNode.java
Log:
- Add a warning when an user want to insert an index without link
- Fix reconnection process (yes, again)
- When a Key computation ends, remove the corresponding transfer
Modified: trunk/apps/Thaw/src/thaw/core/Core.java
===================================================================
--- trunk/apps/Thaw/src/thaw/core/Core.java 2007-01-27 16:35:10 UTC (rev
11624)
+++ trunk/apps/Thaw/src/thaw/core/Core.java 2007-01-27 17:31:14 UTC (rev
11625)
@@ -476,8 +476,10 @@
getMainWindow().setStatus(I18n.getMessage("thaw.statusBar.disconnected"),
java.awt.Color.RED);
}
- getPluginManager().loadPlugins();
- getPluginManager().runPlugins();
+ if (running) {
+ getPluginManager().loadPlugins();
+ getPluginManager().runPlugins();
+ }
reconnectionManager = null;
Modified: trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java
===================================================================
--- trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java 2007-01-27 16:35:10 UTC
(rev 11624)
+++ trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java 2007-01-27 17:31:14 UTC
(rev 11625)
@@ -463,17 +463,17 @@
private class UnlockWaiter implements Runnable {
FCPClientGet clientGet;
- FCPConnection connection;
+ FCPConnection c;
String dir;
- public UnlockWaiter(final FCPClientGet clientGet, final
FCPConnection connection, final String dir) {
+ public UnlockWaiter(final FCPClientGet clientGet, final
FCPConnection c, final String dir) {
this.clientGet = clientGet;
this.dir = dir;
- this.connection = connection;
+ this.c = c;
}
public void run() {
- connection.addToWriterQueue();
+ c.addToWriterQueue();
isLockOwner = true;
Logger.debug(this, "I take the lock !");
Modified: trunk/apps/Thaw/src/thaw/i18n/thaw.properties
===================================================================
--- trunk/apps/Thaw/src/thaw/i18n/thaw.properties 2007-01-27 16:35:10 UTC
(rev 11624)
+++ trunk/apps/Thaw/src/thaw/i18n/thaw.properties 2007-01-27 17:31:14 UTC
(rev 11625)
@@ -80,7 +80,7 @@
thaw.menu.item.reconnect=Force reconnection
thaw.menu.item.options=Options
thaw.menu.item.quit=Quit
-
+4
thaw.menu.help=Help
thaw.menu.item.about=About
@@ -293,3 +293,6 @@
thaw.plugin.index.markAsSeen=Mark as seen
thaw.plugin.index.publishPrivateKey=Attach the private key with the index
+
+thaw.plugin.index.indexWithNoLink=The index '?' has no link.\nAre you sure
that you want to insert it as it ?
+
Modified: trunk/apps/Thaw/src/thaw/plugins/index/File.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/File.java 2007-01-27 16:35:10 UTC
(rev 11624)
+++ trunk/apps/Thaw/src/thaw/plugins/index/File.java 2007-01-27 17:31:14 UTC
(rev 11625)
@@ -35,6 +35,10 @@
private int parentId;
+ /* if not null, the transfer will be removed when finished */
+ private FCPQueueManager queueManager = null;
+
+
public File(final Hsqldb db, final int id) {
this.db = db;
this.id = id;
@@ -66,6 +70,11 @@
o.deleteObserver(this);
}
+ if (queueManager != null) {
+ queueManager.remove(put);
+ queueManager = null;
+ }
+
return;
}
@@ -210,6 +219,8 @@
final FCPClientPut insertion = new FCPClientPut(localPath, 0,
0, null,
null, 4,
true, 2, true);
/* getCHKOnly */
+
+ this.queueManager = queueManager; /* so the transfer will be
removed when finished */
queueManager.addQueryToTheRunningQueue(insertion);
insertion.addObserver(this);
Modified: trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java 2007-01-27
16:35:10 UTC (rev 11624)
+++ trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java 2007-01-27
17:31:14 UTC (rev 11625)
@@ -431,14 +431,20 @@
Component cell;
- if(value instanceof Long)
+ if(value instanceof Long) {
+
cell =
super.getTableCellRendererComponent(table,
thaw.plugins.queueWatcher.QueueTableModel.getPrintableSize(((Long)value).longValue()),
isSelected, hasFocus, row, column);
- else
+
+ } else {
+
cell =
super.getTableCellRendererComponent(table, value,
-
isSelected, hasFocus,
-
row, column);
+
isSelected, hasFocus,
+ row,
column);
+
+ }
+
if (!isSelected) {
if (row % 2 == 0)
cell.setBackground(Color.WHITE);
Modified: trunk/apps/Thaw/src/thaw/plugins/index/Index.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/Index.java 2007-01-27 16:35:10 UTC
(rev 11624)
+++ trunk/apps/Thaw/src/thaw/plugins/index/Index.java 2007-01-27 17:31:14 UTC
(rev 11625)
@@ -16,6 +16,7 @@
import java.util.Observer;
import java.util.Observable;
+import javax.swing.JOptionPane;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.MutableTreeNode;
import javax.swing.tree.TreeNode;
@@ -528,12 +529,51 @@
- public int insertOnFreenet(Observer o, IndexTree tree, FCPQueueManager
queueManager) {
+ public int insertOnFreenet(Observer o, IndexBrowserPanel indexBrowser,
FCPQueueManager queueManager) {
String privateKey = getPrivateKey();
String publicKey = getPublicKey();
int rev = getRevision();
- if (tree != null && tree.isIndexUpdating(this)) {
+
+ if (indexBrowser != null && indexBrowser.getMainWindow() !=
null) {
+ synchronized(db.dbLock) {
+ try {
+ PreparedStatement st;
+
+ st =
db.getConnection().prepareStatement("SELECT id FROM links where indexParent = ?
LIMIT 1");
+ st.setInt(1, id);
+
+ ResultSet set = st.executeQuery();
+
+ if (!set.next()) {
+ /* no link ?! we will warn the
user */
+
+ int ret =
+
JOptionPane.showOptionDialog(indexBrowser.getMainWindow().getMainFrame(),
+
I18n.getMessage("thaw.plugin.index.indexWithNoLink").replaceAll("\\?",
toString(false)),
+
I18n.getMessage("thaw.warning.title"),
+
JOptionPane.YES_NO_OPTION,
+
JOptionPane.WARNING_MESSAGE,
+
null,
+
null,
+
null);
+
+ if (ret ==
JOptionPane.CLOSED_OPTION
+ || ret ==
JOptionPane.NO_OPTION) {
+ return 0;
+ }
+ }
+
+ } catch(SQLException e) {
+ Logger.error(this, "Error while
checking the link number before insertion : "+e.toString());
+ }
+ }
+ }
+
+
+
+ if (indexBrowser != null && indexBrowser.getIndexTree() != null
+ && indexBrowser.getIndexTree().isIndexUpdating(this)) {
Logger.notice(this, "A transfer is already running !");
return 0;
}
@@ -571,8 +611,8 @@
put = new FCPClientPut(targetFile, 2, rev, realName,
privateKey, 2, true, 0);
put.setMetadata("ContentType",
"application/x-freenet-index");
- if (tree != null)
- tree.addUpdatingIndex(this);
+ if (indexBrowser != null && indexBrowser.getIndexTree()
!= null)
+
indexBrowser.getIndexTree().addUpdatingIndex(this);
queueManager.addQueryToThePendingQueue(put);
Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java 2007-01-27
16:35:10 UTC (rev 11624)
+++ trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java 2007-01-27
17:31:14 UTC (rev 11625)
@@ -746,7 +746,7 @@
/**
* Update from freenet / Update the freenet version, depending of the
index kind (recursive)
*/
- public int insertOnFreenet(Observer observer, IndexTree indexTree,
FCPQueueManager queueManager) {
+ public int insertOnFreenet(Observer observer, IndexBrowserPanel
indexBrowser, FCPQueueManager queueManager) {
int i = 0;
synchronized(db.dbLock) {
@@ -764,7 +764,7 @@
while(set.next()) {
- (new Index(db,
set.getInt("indexId"))).insertOnFreenet(observer, indexTree, queueManager);
+ (new Index(db,
set.getInt("indexId"))).insertOnFreenet(observer, indexBrowser, queueManager);
i++;
}
Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java
2007-01-27 16:35:10 UTC (rev 11624)
+++ trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java
2007-01-27 17:31:14 UTC (rev 11625)
@@ -793,7 +793,7 @@
toRemove = 0;
allStarted = false;
- i = getTarget().insertOnFreenet(this,
getIndexBrowserPanel().getIndexTree(), getQueueManager());
+ i = getTarget().insertOnFreenet(this,
getIndexBrowserPanel(), getQueueManager());
getIndexBrowserPanel().getIndexTree().redraw(getTarget());
Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexTreeNode.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/IndexTreeNode.java 2007-01-27
16:35:10 UTC (rev 11624)
+++ trunk/apps/Thaw/src/thaw/plugins/index/IndexTreeNode.java 2007-01-27
17:31:14 UTC (rev 11625)
@@ -65,7 +65,7 @@
/**
* @return the number of transfer started
*/
- public int insertOnFreenet(Observer o, IndexTree indexTree,
FCPQueueManager queueManager);
+ public int insertOnFreenet(Observer o, IndexBrowserPanel indexBrowser,
FCPQueueManager queueManager);
public int downloadFromFreenet(Observer o, IndexTree indexTree,
FCPQueueManager queueManager);
public int downloadFromFreenet(Observer o, IndexTree indexTree,
FCPQueueManager queueManager, int rev);