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



Reply via email to