Author: jflesch
Date: 2007-03-18 20:23:05 +0000 (Sun, 18 Mar 2007)
New Revision: 12209
Modified:
trunk/apps/Thaw/src/thaw/plugins/IndexBrowser.java
trunk/apps/Thaw/src/thaw/plugins/index/File.java
trunk/apps/Thaw/src/thaw/plugins/peerMonitor/PeerMonitorPanel.java
Log:
Reimplement insertion resuming in the indexes
Modified: trunk/apps/Thaw/src/thaw/plugins/IndexBrowser.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/IndexBrowser.java 2007-03-18 19:40:45 UTC
(rev 12208)
+++ trunk/apps/Thaw/src/thaw/plugins/IndexBrowser.java 2007-03-18 20:23:05 UTC
(rev 12209)
@@ -88,6 +88,8 @@
}
}
+ thaw.plugins.index.File.resumeTransfers(core.getQueueManager(),
hsqldb);
+
if (autoRefresh != null)
autoRefresh.start();
Modified: trunk/apps/Thaw/src/thaw/plugins/index/File.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/File.java 2007-03-18 19:40:45 UTC
(rev 12208)
+++ trunk/apps/Thaw/src/thaw/plugins/index/File.java 2007-03-18 20:23:05 UTC
(rev 12209)
@@ -9,14 +9,21 @@
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import java.util.Vector;
+import java.util.Iterator;
+
import thaw.core.FreenetURIHelper;
import thaw.core.Logger;
+
import thaw.fcp.FCPClientGet;
import thaw.fcp.FCPClientPut;
import thaw.fcp.FCPQueueManager;
import thaw.fcp.FCPTransferQuery;
+import thaw.fcp.FCPQuery;
+
import thaw.plugins.Hsqldb;
+
public class File implements Observer {
private Hsqldb db = null;
private int id = -1; /* -1 = undefined */
@@ -363,4 +370,58 @@
}
return parent.isModifiable();
}
+
+
+ /**
+ * Will browse the queue to see if one of the transfers match
+ * a file in the database
+ */
+ public static boolean resumeTransfers(FCPQueueManager queue, Hsqldb db)
{
+ PreparedStatement st;
+
+ try {
+ st = db.getConnection().prepareStatement("SELECT id,
filename, publicKey, "+
+ "localPath,
mime, size, indexParent "+
+ "FROM files "+
+ "WHERE
filename LIKE ?");
+ } catch(SQLException e) {
+ Logger.error("thaw.plugin.index.File", "Please tell to
JFlesch that his SQL sux because : "+e.toString());
+ return false;
+ }
+
+ for (Iterator it = queue.getRunningQueue().iterator();
+ it.hasNext();) {
+ FCPTransferQuery tq = (FCPTransferQuery)it.next();
+
+ if (tq instanceof FCPClientPut) {
+ try {
+ st.setString(1, tq.getFilename());
+
+ ResultSet rs = st.executeQuery();
+
+ while(rs.next()) {
+ File file = new File(db,
+
rs.getInt("id"),
+
rs.getString("filename"),
+
rs.getString("publicKey"),
+
rs.getString("localPath") != null ? new java.io.File(rs.getString("localPath"))
: null,
+
rs.getString("mime"),
+
rs.getLong("size"),
+
rs.getInt("indexParent"));
+
+
((Observable)tq).addObserver(file);
+
+ if (tq.getFileKey() != null)
+
file.update(((Observable)tq), null);
+ }
+
+ } catch(SQLException e) {
+
Logger.warning("thaw.plugins.index.File", "Error while resuming key
computations : "+e.toString());
+ return false;
+ }
+ }
+ }
+
+ return true;
+ }
}
Modified: trunk/apps/Thaw/src/thaw/plugins/peerMonitor/PeerMonitorPanel.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/peerMonitor/PeerMonitorPanel.java
2007-03-18 19:40:45 UTC (rev 12208)
+++ trunk/apps/Thaw/src/thaw/plugins/peerMonitor/PeerMonitorPanel.java
2007-03-18 20:23:05 UTC (rev 12209)
@@ -233,7 +233,13 @@
}
if (value instanceof Peer) {
- setText(((Peer)value).toString());
+ String txt = ((Peer)value).toString();
+
+ if (txt.length() > 35) {
+ txt = txt.substring(0, 35) + "(...)";
+ }
+
+ setText(txt);
setForeground(((Peer)value).getTextColor());
setBackground(JLIST_PEER_BACKGROUND);
}