Author: jflesch
Date: 2006-10-20 19:17:12 +0000 (Fri, 20 Oct 2006)
New Revision: 10681
Modified:
trunk/apps/Thaw/src/thaw/fcp/FCPQueueManager.java
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/SearchBar.java
trunk/apps/Thaw/src/thaw/plugins/index/SearchResult.java
trunk/apps/Thaw/src/thaw/plugins/index/Tables.java
Log:
Fix some display issues
Modified: trunk/apps/Thaw/src/thaw/fcp/FCPQueueManager.java
===================================================================
--- trunk/apps/Thaw/src/thaw/fcp/FCPQueueManager.java 2006-10-20 18:09:26 UTC
(rev 10680)
+++ trunk/apps/Thaw/src/thaw/fcp/FCPQueueManager.java 2006-10-20 19:17:12 UTC
(rev 10681)
@@ -270,6 +270,49 @@
/**
+ * Not very reliable ?
+ */
+ public FCPTransferQuery getTransfer(String key) {
+ boolean interrupted=true;
+
+ Iterator it;
+
+ while(interrupted) {
+ interrupted = false;
+
+ try {
+ for(it = runningQueries.iterator();
+ it.hasNext(); )
+ {
+ FCPTransferQuery plop =
(FCPTransferQuery)it.next();
+ if (plop.getFileKey() == key
+ ||
key.equals(plop.getFileKey()))
+ return plop;
+ }
+
+ for(int i = 0 ; i <= PRIORITY_MIN ; i++) {
+ for(it = pendingQueries[i].iterator();
+ it.hasNext(); )
+ {
+ FCPTransferQuery plop =
(FCPTransferQuery)it.next();
+ if (plop.getFileKey()
== key
+ ||
key.equals(plop.getFileKey()))
+ return plop;
+ }
+
+ }
+ } catch(java.util.ConcurrentModificationException e) {
+ Logger.notice(this, "getTransfer(): Collission.
Reitering");
+ interrupted = true;
+ }
+
+ }
+
+ return null;
+ }
+
+
+ /**
* Compare using the key.
*/
public boolean isAlreadyPresent(FCPTransferQuery query) {
Modified: trunk/apps/Thaw/src/thaw/plugins/index/File.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/File.java 2006-10-20 18:09:26 UTC
(rev 10680)
+++ trunk/apps/Thaw/src/thaw/plugins/index/File.java 2006-10-20 19:17:12 UTC
(rev 10681)
@@ -154,13 +154,27 @@
public void setTransfer(FCPTransferQuery query) {
transfer = query;
- if(transfer instanceof FCPClientPut)
- ((FCPClientPut)transfer).addObserver(this);
+ if (transfer != null) {
+ if(transfer instanceof FCPClientPut)
+ ((FCPClientPut)transfer).addObserver(this);
+ if(transfer instanceof FCPClientGet)
+ ((FCPClientGet)transfer).addObserver(this);
+ }
setChanged();
notifyObservers(query);
}
+ /* Try to find its download automagically */
+ public void setTransfer(FCPQueueManager queueManager) {
+ if (publicKey != null) {
+ setTransfer(queueManager.getTransfer(publicKey));
+ }
+
+ setChanged();
+ notifyObservers();
+ }
+
public void insert() {
if (parent == null) {
Logger.notice(this, "insert(): No parent !");
@@ -315,10 +329,15 @@
public void update(java.util.Observable o, Object param) {
if(o == transfer) {
if(transfer.isFinished() && transfer instanceof
FCPClientPut) {
+ ((FCPClientPut)transfer).deleteObserver(this);
setPublicKey(transfer.getFileKey());
update();
}
+ if(transfer.isFinished() && transfer instanceof
FCPClientGet) {
+ ((FCPClientGet)transfer).deleteObserver(this);
+ }
+
if(transfer.isFinished() && transfer.isSuccessful()) {
transfer = null;
}
Modified: trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java 2006-10-20
18:09:26 UTC (rev 10680)
+++ trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java 2006-10-20
19:17:12 UTC (rev 10681)
@@ -38,6 +38,16 @@
import java.util.Observable;
import java.util.Observer;
+import javax.swing.event.TableModelListener;
+import javax.swing.event.TableModelEvent;
+import javax.swing.table.TableColumnModel;
+import javax.swing.table.TableColumn;
+import javax.swing.table.JTableHeader;
+
+
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+
import thaw.core.*;
import thaw.fcp.*;
@@ -63,6 +73,9 @@
private FCPQueueManager queueManager;
+ private String sortColumn = null;
+ private boolean ascOrder = false;
+
private int[] selectedRows;
public FileTable(boolean modifiables, FCPQueueManager queueManager) {
@@ -100,6 +113,10 @@
table.addMouseListener(this);
+ JTableHeader header = table.getTableHeader();
+ header.setUpdateTableInRealTime(true);
+ header.setReorderingAllowed(true);
+
panel = new JPanel();
panel.setLayout(new BorderLayout());
@@ -120,7 +137,7 @@
}
if(fileList != null) {
- fileList.loadFiles(null, true);
+ fileList.loadFiles(sortColumn, ascOrder);
}
this.fileList = fileList;
@@ -444,5 +461,4 @@
}
-
}
Modified: trunk/apps/Thaw/src/thaw/plugins/index/Index.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/Index.java 2006-10-20 18:09:26 UTC
(rev 10680)
+++ trunk/apps/Thaw/src/thaw/plugins/index/Index.java 2006-10-20 19:17:12 UTC
(rev 10681)
@@ -482,6 +482,7 @@
while(results.next()) {
thaw.plugins.index.File file = new
thaw.plugins.index.File(db, results, this);
+ file.setTransfer(queueManager);
addFileToList(file);
}
}
@@ -515,6 +516,7 @@
public void unloadFiles() {
+ /*
for(Iterator it = fileList.iterator();
it.hasNext(); ) {
thaw.plugins.index.File file =
(thaw.plugins.index.File)it.next();
@@ -523,6 +525,7 @@
return;
}
}
+ */
if (fileList != null) {
for (Iterator it = fileList.iterator();
Modified: trunk/apps/Thaw/src/thaw/plugins/index/SearchBar.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/SearchBar.java 2006-10-20
18:09:26 UTC (rev 10680)
+++ trunk/apps/Thaw/src/thaw/plugins/index/SearchBar.java 2006-10-20
19:17:12 UTC (rev 10681)
@@ -12,6 +12,8 @@
import thaw.core.I18n;
+import thaw.fcp.FCPQueueManager;
+
import thaw.plugins.Hsqldb;
public class SearchBar implements ActionListener {
@@ -25,10 +27,13 @@
private Tables tables;
- public SearchBar(Hsqldb db, IndexTree indexTree, Tables tables) {
+ private FCPQueueManager queueManager;
+
+ public SearchBar(Hsqldb db, IndexTree indexTree, FCPQueueManager
queueManager, Tables tables) {
this.db = db;
this.tree = indexTree;
this.tables = tables;
+ this.queueManager = queueManager;
panel = new JPanel();
panel.setLayout(new BorderLayout(10, 10));
@@ -55,7 +60,10 @@
if (tree.getSelectedNode() == null)
return;
- SearchResult sr = new SearchResult(db, userText.getText(),
tree.getSelectedNode());
+ userText.setSelectionStart(0);
+ userText.setSelectionEnd(userText.getText().length());
+
+ SearchResult sr = new SearchResult(db, userText.getText(),
tree.getSelectedNode(), queueManager);
tables.setList(sr);
}
Modified: trunk/apps/Thaw/src/thaw/plugins/index/SearchResult.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/SearchResult.java 2006-10-20
18:09:26 UTC (rev 10680)
+++ trunk/apps/Thaw/src/thaw/plugins/index/SearchResult.java 2006-10-20
19:17:12 UTC (rev 10681)
@@ -9,10 +9,11 @@
import java.sql.*;
import thaw.plugins.Hsqldb;
+import thaw.fcp.FCPQueueManager;
import thaw.core.Logger;
-public class SearchResult extends Observable implements FileAndLinkList {
+public class SearchResult extends Observable implements Observer,
FileAndLinkList {
private Vector fileList = null;
private Vector linkList = null;
@@ -21,8 +22,10 @@
private Vector indexIds = null;
private Hsqldb db;
+ private FCPQueueManager queueManager;
- public SearchResult(Hsqldb hsqldb, String search, IndexTreeNode node) {
+ public SearchResult(Hsqldb hsqldb, String search, IndexTreeNode node,
FCPQueueManager queueManager) {
+ this.queueManager = queueManager;
this.search = search.split(" ");
this.indexIds = node.getIndexIds();
this.db = hsqldb;
@@ -91,6 +94,8 @@
while(results.next()) {
thaw.plugins.index.File file = new
thaw.plugins.index.File(db, results, null);
+ file.setTransfer(queueManager);
+ file.addObserver(this);
fileList.add(file);
}
}
@@ -129,6 +134,12 @@
}
+ public void update(Observable o, Object param) {
+ setChanged();
+ notifyObservers(o);
+ }
+
+
public Vector getFileList() {
return fileList;
}
@@ -150,6 +161,12 @@
public void unloadFiles() {
+ for (Iterator it = fileList.iterator();
+ it.hasNext();) {
+ thaw.plugins.index.File file =
(thaw.plugins.index.File)it.next();
+ file.deleteObserver(this);
+ }
+
fileList = null;
}
Modified: trunk/apps/Thaw/src/thaw/plugins/index/Tables.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/Tables.java 2006-10-20 18:09:26 UTC
(rev 10680)
+++ trunk/apps/Thaw/src/thaw/plugins/index/Tables.java 2006-10-20 19:17:12 UTC
(rev 10681)
@@ -31,7 +31,7 @@
fileTable = new FileTable(modifiables, queueManager);
linkTable = new LinkTable(modifiables, db, queueManager, tree);
- searchBar = new SearchBar(db, tree, this);
+ searchBar = new SearchBar(db, tree, queueManager, this);
split = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
linkTable.getPanel(),