Author: jflesch
Date: 2007-01-26 19:39:11 +0000 (Fri, 26 Jan 2007)
New Revision: 11619
Modified:
trunk/apps/Thaw/src/thaw/i18n/thaw.properties
trunk/apps/Thaw/src/thaw/plugins/index/File.java
trunk/apps/Thaw/src/thaw/plugins/index/FileManagementHelper.java
trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java
Log:
Fix some display troubles + add an option to remove / cancel the corresponding
transfers of the file list from a index
Modified: trunk/apps/Thaw/src/thaw/i18n/thaw.properties
===================================================================
--- trunk/apps/Thaw/src/thaw/i18n/thaw.properties 2007-01-26 07:03:14 UTC
(rev 11618)
+++ trunk/apps/Thaw/src/thaw/i18n/thaw.properties 2007-01-26 19:39:11 UTC
(rev 11619)
@@ -53,6 +53,7 @@
thaw.common.priority=Priority
thaw.common.clearFinished=Remove finished transfers
+# The following one *must* specify that this is about the transfer(s) only !
thaw.common.removeFromTheList=Cancel and remove selected transfers
thaw.common.cancel=Cancel
thaw.common.delay=Delay
Modified: trunk/apps/Thaw/src/thaw/plugins/index/File.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/File.java 2007-01-26 07:03:14 UTC
(rev 11618)
+++ trunk/apps/Thaw/src/thaw/plugins/index/File.java 2007-01-26 19:39:11 UTC
(rev 11619)
@@ -105,6 +105,10 @@
}
}
+ public void forceReload() {
+ reloadDataFromDb(id);
+ }
+
public void setParent(int parent_id) {
try {
PreparedStatement st;
@@ -153,9 +157,6 @@
tr = q.getTransfer(getPublicKey());
- if (tr == null || (tr.isFinished() && tr.isSuccessful()))
- return null;
-
return tr;
}
Modified: trunk/apps/Thaw/src/thaw/plugins/index/FileManagementHelper.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/FileManagementHelper.java
2007-01-26 07:03:14 UTC (rev 11618)
+++ trunk/apps/Thaw/src/thaw/plugins/index/FileManagementHelper.java
2007-01-26 19:39:11 UTC (rev 11619)
@@ -16,6 +16,7 @@
import thaw.core.I18n;
import thaw.core.Logger;
import thaw.fcp.FCPQueueManager;
+import thaw.fcp.FCPTransferQuery;
public class FileManagementHelper {
@@ -311,4 +312,65 @@
final Clipboard cp = tk.getSystemClipboard();
cp.setContents(st, null);
}
+
+
+
+ public static class TransferCanceller implements FileAction {
+ private AbstractButton src;
+ private FCPQueueManager queueManager;
+ private IndexBrowserPanel indexBrowser;
+ private Vector t;
+
+ public TransferCanceller(FCPQueueManager queueManager,
+ IndexBrowserPanel indexBrowser,
+ final AbstractButton actionSource) {
+ src = actionSource;
+ this.queueManager = queueManager;
+ this.indexBrowser = indexBrowser;
+ if (src != null)
+ src.addActionListener(this);
+ }
+
+ public void setTarget(final Vector targets) {
+ boolean enable = false;
+
+ t = targets;
+
+ if (targets != null) {
+ for (Iterator it = targets.iterator();
+ it.hasNext();) {
+ File file = (File)it.next();
+ if (file.getTransfer(queueManager) !=
null) {
+ enable = true;
+ break;
+ }
+ }
+ }
+
+ src.setEnabled(enable);
+ }
+
+ public void actionPerformed(final ActionEvent e) {
+ FileManagementHelper.cancelTransfers(queueManager,
indexBrowser, t);
+ }
+ }
+
+
+ static void cancelTransfers(FCPQueueManager queueManager,
+ IndexBrowserPanel indexBrowser,
+ Vector files) {
+ FCPTransferQuery transfer;
+
+ for (Iterator it = files.iterator();
+ it.hasNext();) {
+ File file = (File)it.next();
+ if ((transfer = file.getTransfer(queueManager)) !=
null) {
+ if(transfer.stop(queueManager)) {
+ queueManager.remove(transfer);
+ }
+ }
+ }
+
+ indexBrowser.getTables().getFileTable().refresh();
+ }
}
Modified: trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java 2007-01-26
07:03:14 UTC (rev 11618)
+++ trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java 2007-01-26
19:39:11 UTC (rev 11619)
@@ -30,6 +30,7 @@
import thaw.core.I18n;
import thaw.core.Logger;
import thaw.core.IconBox;
+import thaw.core.FreenetURIHelper;
import thaw.plugins.ToolbarModifier;
import thaw.fcp.FCPClientGet;
import thaw.fcp.FCPClientPut;
@@ -68,7 +69,9 @@
private TransferRefresher refresher;
- public FileTable(final FCPQueueManager queueManager, IndexBrowserPanel
indexBrowser, final Config config) {
+ public FileTable(final FCPQueueManager queueManager,
+ IndexBrowserPanel indexBrowser,
+ final Config config) {
this.indexBrowser = indexBrowser;
this.queueManager = queueManager;
@@ -124,6 +127,10 @@
rightClickMenu.add(item);
rightClickActions.add(new
FileManagementHelper.FileKeyComputer(queueManager, indexBrowser, item));
+ item = new
JMenuItem(I18n.getMessage("thaw.common.removeFromTheList"));
+ rightClickMenu.add(item);
+ rightClickActions.add(new
FileManagementHelper.TransferCanceller(queueManager, indexBrowser, item));
+
item = new JMenuItem(I18n.getMessage("thaw.common.remove"));
button = new JButton(IconBox.delete);
button.setToolTipText(I18n.getMessage("thaw.common.remove"));
@@ -456,7 +463,7 @@
while(running) {
try {
- Thread.sleep(5000);
+ Thread.sleep(500);
} catch(InterruptedException e) {
/* \_o< */
}
@@ -469,11 +476,33 @@
i = 0;
- for (Iterator it =
fileListModel.getFiles().iterator() ;
- it.hasNext(); i++) {
- thaw.plugins.index.File file =
(thaw.plugins.index.File)it.next();
- if (file.getTransfer(queueManager) !=
null)
+ try {
+ for (Iterator it =
fileListModel.getFiles().iterator() ;
+ it.hasNext(); i++) {
+ thaw.plugins.index.File file =
(thaw.plugins.index.File)it.next();
+
+ if (file.getPublicKey() == null
+ ||
!FreenetURIHelper.isAKey(file.getPublicKey())) {
+ FCPTransferQuery
transfer;
+ transfer =
file.getTransfer(queueManager);
+
+ if (transfer != null) {
+ if
(transfer.isSuccessful())
+
file.forceReload();
+ }
+ }
+
+ /* won't query the database */
fileListModel.refresh(i);
+
+ try {
+ Thread.sleep(100);
+ } catch(InterruptedException e)
{
+ /* \_o< */
+ }
+ }
+ } catch(final
java.util.ConcurrentModificationException e) {
+ Logger.debug(this, "Collision :
Restarting refresh from the beginnin");
}
}
}