From jflesch at freenetproject.org Fri Jun 1 10:30:40 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Fri, 1 Jun 2007 10:30:40 +0000 (UTC) Subject: [Thaw-dev] r13432 - in trunk/apps/Thaw/src/thaw: i18n plugins Message-ID: <20070601103040.5798C47A03F@emu.freenetproject.org> Author: jflesch Date: 2007-06-01 10:30:40 +0000 (Fri, 01 Jun 2007) New Revision: 13432 Modified: trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties trunk/apps/Thaw/src/thaw/i18n/thaw.properties trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties trunk/apps/Thaw/src/thaw/plugins/IndexBrowser.java Log: Fix the translations files Modified: trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties =================================================================== --- trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties 2007-06-01 09:32:10 UTC (rev 13431) +++ trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties 2007-06-01 10:30:40 UTC (rev 13432) @@ -178,9 +178,8 @@ thaw.plugin.fetch.freenet0.5.l5=Merci d'avance, thaw.plugin.fetch.freenet0.5.l6=le Thaw d?velopeur de Thaw. -thaw.plugins.fetch.noValidURI=Pas de clef valide trouv?e dans la liste +thaw.plugin.fetch.noValidURI=Pas de clef valide trouv?e dans la liste - thaw.plugin.console.console=Console de log thaw.plugin.console.saveToFile=Sauvegarder les logs thaw.plugin.console.maxSize=M?moire maximum allou? au stockage des logs (in Bytes) Modified: trunk/apps/Thaw/src/thaw/i18n/thaw.properties =================================================================== --- trunk/apps/Thaw/src/thaw/i18n/thaw.properties 2007-06-01 09:32:10 UTC (rev 13431) +++ trunk/apps/Thaw/src/thaw/i18n/thaw.properties 2007-06-01 10:30:40 UTC (rev 13432) @@ -181,7 +181,7 @@ thaw.plugin.fetch.freenet0.5.l5=Thanks, thaw.plugin.fetch.freenet0.5.l6=the Thaw developper. -thaw.plugins.fetch.noValidURI=No valid key found in the list ! +thaw.plugin.fetch.noValidURI=No valid key found in the list ! thaw.plugin.console.console=Log console thaw.plugin.console.saveToFile=Save log to file Modified: trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties =================================================================== --- trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties 2007-06-01 09:32:10 UTC (rev 13431) +++ trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties 2007-06-01 10:30:40 UTC (rev 13432) @@ -178,9 +178,8 @@ thaw.plugin.fetch.freenet0.5.l5=Merci d'avance, thaw.plugin.fetch.freenet0.5.l6=le Thaw d\u00e9velopeur de Thaw. -thaw.plugins.fetch.noValidURI=Pas de clef valide trouv\u00e9e dans la liste +thaw.plugin.fetch.noValidURI=Pas de clef valide trouv\u00e9e dans la liste - thaw.plugin.console.console=Console de log thaw.plugin.console.saveToFile=Sauvegarder les logs thaw.plugin.console.maxSize=M\u00e9moire maximum allou\u00e9 au stockage des logs (in Bytes) Modified: trunk/apps/Thaw/src/thaw/plugins/IndexBrowser.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/IndexBrowser.java 2007-06-01 09:32:10 UTC (rev 13431) +++ trunk/apps/Thaw/src/thaw/plugins/IndexBrowser.java 2007-06-01 10:30:40 UTC (rev 13432) @@ -19,7 +19,7 @@ public class IndexBrowser extends ToolbarModifier implements Plugin, ChangeListener { - public static final String DEFAULT_INDEX = "USK at p-uFAWUomLm37MCQLu3r67-B8e6yF1kS4q2v0liM1Vk,h0MWqM~lF0Bec-AIv445PLn06ams9-RFbnwO6Cm2Snc,AQACAAE/Thaw/1/Thaw.frdx"; + public static final String DEFAULT_INDEX = "USK at p-uFAWUomLm37MCQLu3r67-B8e6yF1kS4q2v0liM1Vk,h0MWqM~lF0Bec-AIv445PLn06ams9-RFbnwO6Cm2Snc,AQACAAE/Thaw/2/Thaw.frdx"; private Core core; private Hsqldb hsqldb; From jflesch at freenetproject.org Fri Jun 1 16:37:00 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Fri, 1 Jun 2007 16:37:00 +0000 (UTC) Subject: [Thaw-dev] r13443 - trunk/apps/Thaw/src/thaw/plugins/index Message-ID: <20070601163700.7837C47A0FA@emu.freenetproject.org> Author: jflesch Date: 2007-06-01 16:37:00 +0000 (Fri, 01 Jun 2007) New Revision: 13443 Modified: trunk/apps/Thaw/src/thaw/plugins/index/AutoRefresh.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/IndexTree.java Log: Should hopefully fix the bug #1254 (Index who were modified are not highlighted correctly) Modified: trunk/apps/Thaw/src/thaw/plugins/index/AutoRefresh.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/AutoRefresh.java 2007-06-01 15:57:55 UTC (rev 13442) +++ trunk/apps/Thaw/src/thaw/plugins/index/AutoRefresh.java 2007-06-01 16:37:00 UTC (rev 13443) @@ -83,7 +83,7 @@ public int updateNext(int lastIdx) { if (browserPanel.getIndexTree().numberOfUpdatingIndexes() >= nmbIndexesPerInterval) { - Logger.notice(this, "Too many indexes are updating ; won't auto-update another one"); + Logger.debug(this, "Too many indexes are updating ; won't auto-update another one"); return lastIdx; } @@ -138,10 +138,7 @@ public void update(java.util.Observable o, Object param) { - if (((Index)o).hasChanged()) - browserPanel.getIndexTree().redraw(); - else - browserPanel.getIndexTree().redraw(); + browserPanel.getIndexTree().refresh(((Index)o).getTreePath(browserPanel.getIndexTree())); if (o.equals(browserPanel.getTables().getFileTable().getFileList())) { browserPanel.getTables().getFileTable().refresh(); Modified: trunk/apps/Thaw/src/thaw/plugins/index/Index.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/Index.java 2007-06-01 15:57:55 UTC (rev 13442) +++ trunk/apps/Thaw/src/thaw/plugins/index/Index.java 2007-06-01 16:37:00 UTC (rev 13443) @@ -19,6 +19,9 @@ import javax.swing.tree.MutableTreeNode; import javax.swing.tree.TreeNode; +import javax.swing.tree.TreePath; + + /* DOM */ import javax.xml.parsers.DocumentBuilder; @@ -70,6 +73,7 @@ import thaw.plugins.signatures.Identity; + public class Index extends Observable implements MutableTreeNode, FileAndLinkList, IndexTreeNode, Observer { private final static long MAX_SIZE = 5242880; /* 5MB */ @@ -2042,4 +2046,105 @@ return 0; } + + + /* The user who is able to have so much depth in its tree + * is crazy. + */ + public final static int MAX_DEPTH = 128; + + public TreePath getTreePath(IndexTree tree) { + + int[] folderIds = new int[MAX_DEPTH]; + + for (int i = 0 ; i < folderIds.length ; i++) + folderIds[i] = -1; + + synchronized(db.dbLock) { + try { + /* we find the id of the parents */ + + PreparedStatement st = db.getConnection().prepareStatement("SELECT folderId FROM indexParents "+ + "WHERE indexId = ? LIMIT 1"); + st.setInt(1, id); + ResultSet res = st.executeQuery(); + + if (!res.next()) { + Logger.error(this, "Can't find the index "+Integer.toString(id)+"in the db! The tree is probably broken !"); + return null; + } + + int i = 0; + + do { + int j = res.getInt("folderId"); + + if (j != 0) /* root */ + folderIds[i] = j; + + i++; + } while(res.next()); + + int nmb_folders = i+1; /* i + root */ + + Object[] path = new Object[nmb_folders + 1]; /* folders + the index */ + + for (i = 0 ; i < path.length ; i++) + path[i] = null; + + + path[0] = indexTree.getRoot(); + + + for (i = 1 ; i < nmb_folders ; i++) { + IndexFolder folder = null; + + for (int j = 0 ; + folder == null && j < folderIds.length && folderIds[j] != -1 ; + j++) { + + folder = ((IndexFolder)path[i-1]).getChildFolder(folderIds[j], false); + + } + + if (folder == null) + break; + + path[i] = folder; + } + + if (i >= 2) + path[i-1] = ((IndexFolder)path[i-2]).getChildIndex(id, false); + else + path[1] = indexTree.getRoot().getChildIndex(id, false); + + + int non_null_elements = 0; + /* we may have null elements if the tree wasn't fully loaded for this path */ + for (i = 0 ; i < path.length ; i++) { + if (path[i] == null) + break; + } + + non_null_elements = i; + + if (non_null_elements != nmb_folders) { + /* we eliminate the null elements */ + Object[] new_path = new Object[non_null_elements]; + + for (i = 0 ; i < non_null_elements; i++) + new_path[i] = path[i]; + + path = new_path; + } + + return new TreePath(path); + + } catch(SQLException e) { + Logger.error(this, "Error while getting index tree path : "+e.toString()); + } + } + + return null; + } } Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java 2007-06-01 15:57:55 UTC (rev 13442) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java 2007-06-01 16:37:00 UTC (rev 13443) @@ -1355,14 +1355,22 @@ public IndexFolder getChildFolder(int id) { + return getChildFolder(id, true); + } + + + public IndexFolder getChildFolder(int id, boolean loadChildren) { if (id < 0) { Logger.notice(this, "getChildFolder() : Asked me to have the root ?!"); return null; } - if (children == null) + if (children == null && loadChildren) loadChildren(); + if (children == null) + return null; + for (Iterator it = children.iterator() ; it.hasNext(); ) { Object child = it.next(); @@ -1379,12 +1387,16 @@ public Index getChildIndex(int id) { + return getChildIndex(id, true); + } + + public Index getChildIndex(int id, boolean loadChildren) { if (id < 0) { Logger.error(this, "getChildIndex() : Invalid parameter !"); return null; } - if (children == null) + if (children == null && loadChildren) loadChildren(); for (Iterator it = children.iterator() ; Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java 2007-06-01 15:57:55 UTC (rev 13442) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java 2007-06-01 16:37:00 UTC (rev 13443) @@ -555,7 +555,9 @@ public void refresh(TreePath path) { - refresh(); + Object[] nodes = path.getPath(); + for (int i = 0 ; i < nodes.length ; i++) + refresh((IndexTreeNode)(nodes[i])); } @@ -578,10 +580,11 @@ //refresh(node); forceHasChangedFlagReload = true; if (treeModel != null) { - if (node != null && node.isInTree()) + if (node != null && node.isInTree()) { treeModel.nodeChanged(node.getTreeNode()); - else + } else { treeModel.nodeChanged(getRoot().getTreeNode()); + } } forceHasChangedFlagReload = false; } From jflesch at freenetproject.org Fri Jun 1 16:45:15 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Fri, 1 Jun 2007 16:45:15 +0000 (UTC) Subject: [Thaw-dev] r13444 - trunk/apps/Thaw/src/thaw/plugins/signatures Message-ID: <20070601164515.1AED44798C2@emu.freenetproject.org> Author: jflesch Date: 2007-06-01 16:45:14 +0000 (Fri, 01 Jun 2007) New Revision: 13444 Modified: trunk/apps/Thaw/src/thaw/plugins/signatures/SigConfigTab.java Log: Fix bug #1429 (Interface becomes unusable after closing the sub-configuration window 'manage your identities') Modified: trunk/apps/Thaw/src/thaw/plugins/signatures/SigConfigTab.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/signatures/SigConfigTab.java 2007-06-01 16:37:00 UTC (rev 13443) +++ trunk/apps/Thaw/src/thaw/plugins/signatures/SigConfigTab.java 2007-06-01 16:45:14 UTC (rev 13444) @@ -141,7 +141,7 @@ minLevel.setSelectedItem(I18n.getMessage(Identity.trustLevelStr[i])); } - protected class YourIdentitiesPanel implements ActionListener, java.awt.event.WindowListener { + protected class YourIdentitiesPanel implements ActionListener { private JDialog dialog; private JList list; @@ -156,12 +156,9 @@ public YourIdentitiesPanel() { - configWindow.setEnabled(false); - dialog = new JDialog(configWindow.getFrame(), I18n.getMessage("thaw.plugin.signature.dialogTitle.yourIdentities")); - dialog.addWindowListener(this); dialog.getContentPane().setLayout(new BorderLayout(5, 5)); @@ -336,39 +333,10 @@ if (e.getSource() == closeWindow) { dialog.setVisible(false); - configWindow.setEnabled(true); } } - public void windowActivated(final WindowEvent e) { - } - - public void windowClosing(final WindowEvent e) { - // todo // - } - - public void windowClosed(final WindowEvent e) { - configWindow.setEnabled(true); - } - - public void windowDeactivated(final WindowEvent e) { - // We don't care - } - - public void windowDeiconified(final WindowEvent e) { - // idem - } - - public void windowIconified(final WindowEvent e) { - // idem - } - - public void windowOpened(final WindowEvent e) { - // idem - } - - } From jflesch at freenetproject.org Fri Jun 1 20:31:45 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Fri, 1 Jun 2007 20:31:45 +0000 (UTC) Subject: [Thaw-dev] r13459 - trunk/apps/Thaw/src/thaw/plugins/index Message-ID: <20070601203145.B5604388707@emu.freenetproject.org> Author: jflesch Date: 2007-06-01 20:31:45 +0000 (Fri, 01 Jun 2007) New Revision: 13459 Modified: trunk/apps/Thaw/src/thaw/plugins/index/BlackList.java Log: Should fix bug #1438 (Blacklist does not work) // needs testing Modified: trunk/apps/Thaw/src/thaw/plugins/index/BlackList.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/BlackList.java 2007-06-01 20:26:52 UTC (rev 13458) +++ trunk/apps/Thaw/src/thaw/plugins/index/BlackList.java 2007-06-01 20:31:45 UTC (rev 13459) @@ -239,25 +239,21 @@ PreparedStatement st; st = db.getConnection().prepareStatement("SELECT id, publicKey FROM indexBlackList WHERE "+ - "LOWER(publicKey) LIKE ?"); + "LOWER(publicKey) LIKE ? LIMIT 1"); st.setString(1, FreenetURIHelper.getComparablePart(key) +"%"); ResultSet res = st.executeQuery(); - while(res.next()) { - String pubKey = res.getString("publicKey").replaceAll(".xml", ".frdx"); + if (!res.next()) + return -1; - if (FreenetURIHelper.compareKeys(pubKey, key)) { - return res.getInt("id"); - } - } + return res.getInt("id"); } } catch(SQLException e) { Logger.error(new BlackList(), "Error while checking if a given key is blacklisted : "+ e.toString()); return -1; } - return -1; } /** @@ -288,20 +284,19 @@ st = db.getConnection().prepareStatement("SELECT id, publicKey FROM links WHERE "+ - "LOWER(publicKey) LIKE ?"); + "LOWER(publicKey) LIKE ? LIMIT 1"); st.setString(1, FreenetURIHelper.getComparablePart(key) +"%"); ResultSet res = st.executeQuery(); - while(res.next()) { - String pubKey = res.getString("publicKey").replaceAll(".xml", ".frdx"); - if (FreenetURIHelper.compareKeys(pubKey, key)) { - anotherSt.setInt(1, res.getInt("id")); - anotherSt.execute(); - } + if (!res.next()) { + return false; } + anotherSt.setInt(1, res.getInt("id")); + anotherSt.execute(); + } } catch(SQLException e) { Logger.error(new BlackList(), "Error while adding an entry to the blacklist : "+e.toString()); @@ -334,12 +329,8 @@ ResultSet res = st.executeQuery(); while(res.next()) { - String pubKey = res.getString("publicKey").replaceAll(".xml", ".frdx"); - - if (FreenetURIHelper.compareKeys(pubKey, key)) { - anotherSt.setInt(1, res.getInt("id")); - anotherSt.execute(); - } + anotherSt.setInt(1, res.getInt("id")); + anotherSt.execute(); } From jflesch at freenetproject.org Fri Jun 1 20:36:22 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Fri, 1 Jun 2007 20:36:22 +0000 (UTC) Subject: [Thaw-dev] r13460 - trunk/apps/Thaw/src/thaw/core Message-ID: <20070601203622.B2D9F388707@emu.freenetproject.org> Author: jflesch Date: 2007-06-01 20:36:22 +0000 (Fri, 01 Jun 2007) New Revision: 13460 Modified: trunk/apps/Thaw/src/thaw/core/Config.java Log: Change default settings : DDA is now disable by default to avoid problems Modified: trunk/apps/Thaw/src/thaw/core/Config.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/Config.java 2007-06-01 20:31:45 UTC (rev 13459) +++ trunk/apps/Thaw/src/thaw/core/Config.java 2007-06-01 20:36:22 UTC (rev 13460) @@ -294,6 +294,6 @@ setDefaultValue("advancedMode", "false"); setDefaultValue("userNickname", "Another anonymous"); setDefaultValue("multipleSockets", "true"); - setDefaultValue("sameComputer", "true"); + setDefaultValue("sameComputer", "false"); } } From jflesch at freenetproject.org Fri Jun 1 20:44:14 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Fri, 1 Jun 2007 20:44:14 +0000 (UTC) Subject: [Thaw-dev] r13461 - trunk/apps/Thaw/src/thaw/core Message-ID: <20070601204414.3DAE5388707@emu.freenetproject.org> Author: jflesch Date: 2007-06-01 20:44:14 +0000 (Fri, 01 Jun 2007) New Revision: 13461 Modified: trunk/apps/Thaw/src/thaw/core/Config.java Log: Revert r13460 : Reactivate DDA by default Modified: trunk/apps/Thaw/src/thaw/core/Config.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/Config.java 2007-06-01 20:36:22 UTC (rev 13460) +++ trunk/apps/Thaw/src/thaw/core/Config.java 2007-06-01 20:44:14 UTC (rev 13461) @@ -294,6 +294,6 @@ setDefaultValue("advancedMode", "false"); setDefaultValue("userNickname", "Another anonymous"); setDefaultValue("multipleSockets", "true"); - setDefaultValue("sameComputer", "false"); + setDefaultValue("sameComputer", "true"); } } From jflesch at freenetproject.org Sat Jun 2 12:50:15 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sat, 2 Jun 2007 12:50:15 +0000 (UTC) Subject: [Thaw-dev] r13463 - trunk/apps/Thaw/src/thaw/plugins/index Message-ID: <20070602125015.0298D479EC7@emu.freenetproject.org> Author: jflesch Date: 2007-06-02 12:50:14 +0000 (Sat, 02 Jun 2007) New Revision: 13463 Modified: trunk/apps/Thaw/src/thaw/plugins/index/AutoRefresh.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/IndexTree.java trunk/apps/Thaw/src/thaw/plugins/index/IndexTreeNode.java Log: Another try to fix bug #1254 (Index who were modified are not highlighted correctly) Modified: trunk/apps/Thaw/src/thaw/plugins/index/AutoRefresh.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/AutoRefresh.java 2007-06-01 20:51:27 UTC (rev 13462) +++ trunk/apps/Thaw/src/thaw/plugins/index/AutoRefresh.java 2007-06-02 12:50:14 UTC (rev 13463) @@ -138,7 +138,7 @@ public void update(java.util.Observable o, Object param) { - browserPanel.getIndexTree().refresh(((Index)o).getTreePath(browserPanel.getIndexTree())); + browserPanel.getIndexTree().redraw(((Index)o).getTreePath(browserPanel.getIndexTree())); if (o.equals(browserPanel.getTables().getFileTable().getFileList())) { browserPanel.getTables().getFileTable().refresh(); Modified: trunk/apps/Thaw/src/thaw/plugins/index/Index.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/Index.java 2007-06-01 20:51:27 UTC (rev 13462) +++ trunk/apps/Thaw/src/thaw/plugins/index/Index.java 2007-06-02 12:50:14 UTC (rev 13463) @@ -365,7 +365,7 @@ synchronized(db.dbLock) { try { PreparedStatement st = - db.getConnection().prepareStatement("SELECT publicKey, revision, privateKey, displayName FROM indexes WHERE id = ? LIMIT 1"); + db.getConnection().prepareStatement("SELECT publicKey, revision, privateKey, displayName, newRev, newComment FROM indexes WHERE id = ? LIMIT 1"); st.setInt(1, id); @@ -376,6 +376,8 @@ privateKey = set.getString("privateKey"); rev = set.getInt("revision"); displayName = set.getString("displayName"); + hasChanged = set.getBoolean("newRev"); + newComment = set.getBoolean("newComment"); return true; } else { Logger.error(this, "Unable to find index "+Integer.toString(id)+" in the database ?!"); @@ -1677,8 +1679,8 @@ } - public void forceHasChangedReload() { - Logger.debug(this, "forceHasChangedReload() => loadData()"); + public void forceFlagsReload() { + Logger.debug(this, "forceReload() => loadData()"); loadData(); } Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java 2007-06-01 20:51:27 UTC (rev 13462) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java 2007-06-02 12:50:14 UTC (rev 13463) @@ -1213,13 +1213,13 @@ private boolean lastHasChangedValue = false; private boolean hasLastHasChangedValueBeenSet = false; - public void forceHasChangedReload() { + public void forceFlagsReload() { if (children != null) { synchronized(children) { for (Iterator it = children.iterator(); it.hasNext();) { IndexTreeNode child = (IndexTreeNode)it.next(); - child.forceHasChangedReload(); + child.forceFlagsReload(); } } } Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java 2007-06-01 20:51:27 UTC (rev 13462) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java 2007-06-02 12:50:14 UTC (rev 13463) @@ -532,16 +532,15 @@ } - private boolean forceHasChangedFlagReload = false; - public void refresh() { refresh(((IndexTreeNode)null)); } public void refresh(IndexTreeNode node) { - forceHasChangedFlagReload = true; + if (node != null) + node.forceFlagsReload(); if (treeModel != null) { if (node != null && node.isInTree()) @@ -549,8 +548,6 @@ else treeModel.reload(getRoot().getTreeNode()); } - - forceHasChangedFlagReload = false; } @@ -577,8 +574,9 @@ } public void redraw(IndexTreeNode node) { - //refresh(node); - forceHasChangedFlagReload = true; + if (node != null) + node.forceFlagsReload(); + if (treeModel != null) { if (node != null && node.isInTree()) { treeModel.nodeChanged(node.getTreeNode()); @@ -586,7 +584,6 @@ treeModel.nodeChanged(getRoot().getTreeNode()); } } - forceHasChangedFlagReload = false; } public void redraw(TreePath path) { @@ -741,10 +738,6 @@ /* Remember that for the index category, this kind of query is recursive */ boolean modifiable = ((IndexTreeNode)o).isModifiable(); - - if (forceHasChangedFlagReload) - ((IndexTreeNode)o).forceHasChangedReload(); - boolean hasChanged = ((IndexTreeNode)o).hasChanged(); boolean newComment = ((IndexTreeNode)o).hasNewComment(); Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexTreeNode.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexTreeNode.java 2007-06-01 20:51:27 UTC (rev 13462) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexTreeNode.java 2007-06-02 12:50:14 UTC (rev 13463) @@ -71,7 +71,7 @@ /** - * Will also force newComment flag reloading + * Will force hasChanged & newComment flag reloading */ - public void forceHasChangedReload(); + public void forceFlagsReload(); } From jflesch at freenetproject.org Sat Jun 2 15:06:53 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sat, 2 Jun 2007 15:06:53 +0000 (UTC) Subject: [Thaw-dev] r13464 - in trunk/apps/Thaw/src/thaw: fcp gui plugins/index Message-ID: <20070602150653.16B7C47A1CA@emu.freenetproject.org> Author: jflesch Date: 2007-06-02 15:06:52 +0000 (Sat, 02 Jun 2007) New Revision: 13464 Modified: trunk/apps/Thaw/src/thaw/fcp/FreenetURIHelper.java trunk/apps/Thaw/src/thaw/gui/Table.java trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java trunk/apps/Thaw/src/thaw/plugins/index/Index.java Log: Thaw can now display in red the keys (CHK@) in the indexes who are/will become obsolete Modified: trunk/apps/Thaw/src/thaw/fcp/FreenetURIHelper.java =================================================================== --- trunk/apps/Thaw/src/thaw/fcp/FreenetURIHelper.java 2007-06-02 12:50:14 UTC (rev 13463) +++ trunk/apps/Thaw/src/thaw/fcp/FreenetURIHelper.java 2007-06-02 15:06:52 UTC (rev 13464) @@ -335,5 +335,29 @@ return false; } + + + + public static boolean isObsolete(String key) { + + if (key.startsWith("KSK")) + return false; + + if (key.startsWith("SSK") || key.startsWith("USK")) { + if (key.indexOf("AQABAAE") > 0) + return true; + + return false; + } + + if (key.startsWith("CHK")) { + if (key.indexOf(",AAE") > 0) + return true; + + return false; + } + + return true; + } } Modified: trunk/apps/Thaw/src/thaw/gui/Table.java =================================================================== --- trunk/apps/Thaw/src/thaw/gui/Table.java 2007-06-02 12:50:14 UTC (rev 13463) +++ trunk/apps/Thaw/src/thaw/gui/Table.java 2007-06-02 15:06:52 UTC (rev 13464) @@ -23,6 +23,7 @@ import thaw.core.Config; import thaw.core.I18n; +import thaw.fcp.FreenetURIHelper; import thaw.fcp.FCPTransferQuery; import thaw.fcp.FCPClientPut; import thaw.fcp.FCPClientGet; @@ -42,7 +43,9 @@ private boolean hasChanged = false; private Thread savingThread; + private int columnWithKeys = -1; + public Table(Config config, String prefix) { super(); setDefaultRenderer(); @@ -99,7 +102,11 @@ setAsListener(); } + public void specifyColumnWithKeys(int c) { + columnWithKeys = c; + } + public void setDefaultRenderer() { setDefaultRenderer(getColumnClass(0), new DefaultRenderer()); } @@ -217,6 +224,16 @@ else cell.setBackground(softGray); } + + cell.setForeground(Color.BLACK); + + + if (column == columnWithKeys && value instanceof String) { + String key = (String)value; + if (FreenetURIHelper.isObsolete(key)) + cell.setForeground(Color.RED); + } + return cell; } Modified: trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java 2007-06-02 12:50:14 UTC (rev 13463) +++ trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java 2007-06-02 15:06:52 UTC (rev 13464) @@ -44,7 +44,7 @@ private final JPanel panel; - private final JTable table; + private final Table table; private FileListModel fileListModel; private FileList fileList; @@ -90,7 +90,7 @@ //table = new JTable(fileListModel); table.setShowGrid(false); table.setIntercellSpacing(new java.awt.Dimension(0, 0)); - + table.specifyColumnWithKeys(2); table.addMouseListener(this); final JTableHeader header = table.getTableHeader(); Modified: trunk/apps/Thaw/src/thaw/plugins/index/Index.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/Index.java 2007-06-02 12:50:14 UTC (rev 13463) +++ trunk/apps/Thaw/src/thaw/plugins/index/Index.java 2007-06-02 15:06:52 UTC (rev 13464) @@ -402,7 +402,7 @@ public boolean isObsolete() { - return (getPublicKey().indexOf("AQABAAE") > 0); + return FreenetURIHelper.isObsolete(getPublicKey()); } public int getRevision() { From jflesch at freenetproject.org Sat Jun 2 15:57:08 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sat, 2 Jun 2007 15:57:08 +0000 (UTC) Subject: [Thaw-dev] r13465 - trunk/apps/Thaw/src/thaw/i18n Message-ID: <20070602155708.9CF64479F26@emu.freenetproject.org> Author: jflesch Date: 2007-06-02 15:57:08 +0000 (Sat, 02 Jun 2007) New Revision: 13465 Modified: trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties Log: Fix a mistake in the french translation Modified: trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties =================================================================== --- trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties 2007-06-02 15:06:52 UTC (rev 13464) +++ trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties 2007-06-02 15:57:08 UTC (rev 13465) @@ -321,7 +321,7 @@ thaw.plugin.index.publishPrivateKey=Attacher la clef priv?e ? l'index -thaw.plugin.index.indexWithNoLink=L'index '?' n'a pas de lien vers d'autres index.\n?tes-vous s?r de vouloir l'ins?rer tel quel ? +thaw.plugin.index.indexWithNoLink=L'index '?' n'a pas de lien vers d'autres indexes.\n?tes-vous s?r de vouloir l'ins?rer tel quel ? thaw.plugin.index.sortAlphabetically=Trier par ordre alphab?tique Modified: trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties =================================================================== --- trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties 2007-06-02 15:06:52 UTC (rev 13464) +++ trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties 2007-06-02 15:57:08 UTC (rev 13465) @@ -321,7 +321,7 @@ thaw.plugin.index.publishPrivateKey=Attacher la clef priv\u00e9e \u00e0 l'index -thaw.plugin.index.indexWithNoLink=L'index '?' n'a pas de lien vers d'autres index.\n\u00cates-vous s\u00fbr de vouloir l'ins\u00e9rer tel quel ? +thaw.plugin.index.indexWithNoLink=L'index '?' n'a pas de lien vers d'autres indexes.\n\u00cates-vous s\u00fbr de vouloir l'ins\u00e9rer tel quel ? thaw.plugin.index.sortAlphabetically=Trier par ordre alphab\u00e9tique From jflesch at freenetproject.org Mon Jun 4 23:09:41 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Mon, 4 Jun 2007 23:09:41 +0000 (UTC) Subject: [Thaw-dev] r13467 - in trunk/apps/Thaw/src/thaw: fcp plugins/index Message-ID: <20070604230941.6C0CA4796C1@emu.freenetproject.org> Author: jflesch Date: 2007-06-04 23:09:41 +0000 (Mon, 04 Jun 2007) New Revision: 13467 Modified: trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java trunk/apps/Thaw/src/thaw/fcp/FCPQueueLoader.java trunk/apps/Thaw/src/thaw/plugins/index/BlackList.java Log: Fix file fetching when using non-global queue Modified: trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java =================================================================== --- trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java 2007-06-04 22:42:10 UTC (rev 13466) +++ trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java 2007-06-04 23:09:41 UTC (rev 13467) @@ -603,8 +603,12 @@ Logger.info(this, "Duplicating socket ..."); - duplicatedQueryManager = queueManager.getQueryManager().duplicate(identifier); - duplicatedQueryManager.addObserver(this); + if (globalQueue) { + duplicatedQueryManager = queueManager.getQueryManager().duplicate(identifier); + duplicatedQueryManager.addObserver(this); + } else { /* won't duplicate ; else it will use another id */ + duplicatedQueryManager = queueManager.getQueryManager(); + } Logger.info(this, "Waiting for socket ..."); status = "Waiting for socket availability ..."; Modified: trunk/apps/Thaw/src/thaw/fcp/FCPQueueLoader.java =================================================================== --- trunk/apps/Thaw/src/thaw/fcp/FCPQueueLoader.java 2007-06-04 22:42:10 UTC (rev 13466) +++ trunk/apps/Thaw/src/thaw/fcp/FCPQueueLoader.java 2007-06-04 23:09:41 UTC (rev 13467) @@ -57,8 +57,9 @@ boolean global = true; - if("false".equals( msg.getValue("Global") )) - global = false; + if (msg.getValue("Global") != null) { + global = Boolean.valueOf(msg.getValue("Global")); + } String destinationDir = null; Modified: trunk/apps/Thaw/src/thaw/plugins/index/BlackList.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/BlackList.java 2007-06-04 22:42:10 UTC (rev 13466) +++ trunk/apps/Thaw/src/thaw/plugins/index/BlackList.java 2007-06-04 23:09:41 UTC (rev 13467) @@ -276,27 +276,18 @@ try { synchronized(db.dbLock) { PreparedStatement st = db.getConnection().prepareStatement("INSERT INTO indexBlackList (publicKey, name) VALUES (?, ?)"); - PreparedStatement anotherSt = db.getConnection().prepareStatement("UPDATE links SET blackListed = true WHERE id = ?"); st.setString(1, key); st.setString(2, Index.getNameFromKey(key)); st.execute(); - - st = db.getConnection().prepareStatement("SELECT id, publicKey FROM links WHERE "+ - "LOWER(publicKey) LIKE ? LIMIT 1"); + st = db.getConnection().prepareStatement("UPDATE links "+ + "SET blackListed = true "+ + "WHERE LOWER(publicKey) LIKE ?"); st.setString(1, FreenetURIHelper.getComparablePart(key) +"%"); - ResultSet res = st.executeQuery(); + st.execute(); - - if (!res.next()) { - return false; - } - - anotherSt.setInt(1, res.getInt("id")); - anotherSt.execute(); - } } catch(SQLException e) { Logger.error(new BlackList(), "Error while adding an entry to the blacklist : "+e.toString()); From jflesch at freenetproject.org Wed Jun 6 01:02:20 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Wed, 6 Jun 2007 01:02:20 +0000 (UTC) Subject: [Thaw-dev] r13479 - trunk/apps/Thaw/src/thaw/fcp Message-ID: <20070606010220.E0DFF479FBC@emu.freenetproject.org> Author: jflesch Date: 2007-06-06 01:02:20 +0000 (Wed, 06 Jun 2007) New Revision: 13479 Modified: trunk/apps/Thaw/src/thaw/fcp/FCPGetNode.java Log: Fix the node reference given by the peermonitor plugin Modified: trunk/apps/Thaw/src/thaw/fcp/FCPGetNode.java =================================================================== --- trunk/apps/Thaw/src/thaw/fcp/FCPGetNode.java 2007-06-05 19:13:13 UTC (rev 13478) +++ trunk/apps/Thaw/src/thaw/fcp/FCPGetNode.java 2007-06-06 01:02:20 UTC (rev 13479) @@ -17,13 +17,12 @@ "version", "dsaPubKey.y", "physical.udp", - "oldark.pubURI", - "oldark.number", "dsaGroup.g", "dsaGroup.q", "dsaGroup.p", "ark.pubURI", - "ark.number" + "ark.number", + "auth.negTypes" }; private String ref; @@ -88,8 +87,9 @@ ref = ""; for (int i = 0 ; i < refElements.length ; i++) { - ref += refElements[i] + "=" + - (msg.getValue(refElements[i]) != null ? msg.getValue(refElements[i]) : "???") + if (msg.getValue(refElements[i]) != null) + ref += refElements[i] + "=" + + msg.getValue(refElements[i]) + "\n"; } From nextgens at freenetproject.org Sat Jun 16 23:43:42 2007 From: nextgens at freenetproject.org (nextgens at freenetproject.org) Date: Sat, 16 Jun 2007 23:43:42 +0000 (UTC) Subject: [Thaw-dev] r13633 - trunk/apps/Thaw Message-ID: <20070616234342.CF14D4791A8@emu.freenetproject.org> Author: nextgens Date: 2007-06-16 23:43:42 +0000 (Sat, 16 Jun 2007) New Revision: 13633 Modified: trunk/apps/Thaw/build.xml Log: Thaw: apply a patch to build.xml (from Jflesch) Modified: trunk/apps/Thaw/build.xml =================================================================== --- trunk/apps/Thaw/build.xml 2007-06-16 21:01:59 UTC (rev 13632) +++ trunk/apps/Thaw/build.xml 2007-06-16 23:43:42 UTC (rev 13633) @@ -44,6 +44,7 @@ + From jflesch at freenetproject.org Sun Jun 17 23:53:50 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sun, 17 Jun 2007 23:53:50 +0000 (UTC) Subject: [Thaw-dev] r13639 - in trunk/apps/Thaw/src/thaw: core gui plugins plugins/index Message-ID: <20070617235350.D682F47A107@emu.freenetproject.org> Author: jflesch Date: 2007-06-17 23:53:50 +0000 (Sun, 17 Jun 2007) New Revision: 13639 Added: trunk/apps/Thaw/src/thaw/gui/TabbedPane.java Modified: trunk/apps/Thaw/src/thaw/core/MainWindow.java trunk/apps/Thaw/src/thaw/plugins/IndexBrowser.java trunk/apps/Thaw/src/thaw/plugins/LogConsole.java trunk/apps/Thaw/src/thaw/plugins/PeerMonitor.java trunk/apps/Thaw/src/thaw/plugins/QueueWatcher.java trunk/apps/Thaw/src/thaw/plugins/SqlConsole.java trunk/apps/Thaw/src/thaw/plugins/TransferLogs.java trunk/apps/Thaw/src/thaw/plugins/index/BlackList.java trunk/apps/Thaw/src/thaw/plugins/index/CommentTab.java Log: Change the tabbed pane behavior Modified: trunk/apps/Thaw/src/thaw/core/MainWindow.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/MainWindow.java 2007-06-17 20:30:04 UTC (rev 13638) +++ trunk/apps/Thaw/src/thaw/core/MainWindow.java 2007-06-17 23:53:50 UTC (rev 13639) @@ -22,6 +22,7 @@ import javax.swing.WindowConstants; +import thaw.gui.TabbedPane; import thaw.gui.IconBox; @@ -77,7 +78,7 @@ private JButton settingsButton = null; private JButton quitButton = null; - private JTabbedPane tabbedPane = null; + private TabbedPane tabbedPane = null; private JLabel statusBar = null; private Core core = null; /* core is called back when exit() */ @@ -171,7 +172,7 @@ // TABBED PANE - tabbedPane = new JTabbedPane(); + tabbedPane = new TabbedPane(); // STATUS BAR @@ -300,18 +301,21 @@ /** * Used to add a tab in the main window. - * In the future, even if the interface, this function should remain available. + * In the future, even if the interface change, + * this function should remain available. */ public boolean addTab(final String tabName, final java.awt.Component panel) { - tabbedPane.addTab(tabName, panel); - - return true; + return addTab(tabName, IconBox.add, panel); } /** + * Used to add a tab in the main window. + * In the future, even if the interface change, + * this function should remain available * @see #addTab(String, java.awt.Component) */ - public boolean addTab(final String tabName, final Icon icon, final java.awt.Component panel) { + public boolean addTab(final String tabName, final Icon icon, + final java.awt.Component panel) { tabbedPane.addTab(tabName, icon, panel); return true; Added: trunk/apps/Thaw/src/thaw/gui/TabbedPane.java =================================================================== --- trunk/apps/Thaw/src/thaw/gui/TabbedPane.java (rev 0) +++ trunk/apps/Thaw/src/thaw/gui/TabbedPane.java 2007-06-17 23:53:50 UTC (rev 13639) @@ -0,0 +1,63 @@ +package thaw.gui; + +import javax.swing.JTabbedPane; +import javax.swing.Icon; +import java.awt.Component; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; + + +import java.util.Vector; + +import thaw.core.Logger; + + +public class TabbedPane extends JTabbedPane implements ChangeListener { + private Vector tabNames; + + public TabbedPane() { + super(); + tabNames = new Vector(); + super.addChangeListener(this); + } + + + public void addTab(final String tabName, final Icon icon, + final java.awt.Component panel) { + tabNames.add(tabName); + + if (tabNames.size() > 1) + super.addTab("", icon, panel); + else + super.addTab(tabName, icon, panel); + + int x = super.indexOfComponent(panel); + + super.setToolTipTextAt(x, tabName); + } + + + public void remove(Component panel) { + int x = super.indexOfComponent(panel); + + if (x >= 0) + tabNames.remove(x); + else + Logger.error(this, "remove(): Component not found ?"); + + super.remove(panel); + } + + + public void stateChanged(final ChangeEvent e) { + int x = super.getSelectedIndex(); + int tabCount = super.getTabCount(); + + for (int i = 0 ; i < tabCount ; i++) { + if (i == x) + super.setTitleAt(i, (String)tabNames.get(i)); + else + super.setTitleAt(i, ""); + } + } +} Modified: trunk/apps/Thaw/src/thaw/plugins/IndexBrowser.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/IndexBrowser.java 2007-06-17 20:30:04 UTC (rev 13638) +++ trunk/apps/Thaw/src/thaw/plugins/IndexBrowser.java 2007-06-17 23:53:50 UTC (rev 13639) @@ -78,7 +78,7 @@ core.getMainWindow().getTabbedPane().addChangeListener(this); core.getMainWindow().addTab(I18n.getMessage("thaw.plugin.index.indexes"), - IconBox.minIndexBrowser, + IconBox.indexBrowser, browserPanel.getPanel()); browserPanel.restoreState(); Modified: trunk/apps/Thaw/src/thaw/plugins/LogConsole.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/LogConsole.java 2007-06-17 20:30:04 UTC (rev 13638) +++ trunk/apps/Thaw/src/thaw/plugins/LogConsole.java 2007-06-17 23:53:50 UTC (rev 13639) @@ -67,7 +67,8 @@ consolePanel.add(logAreaScrollPane, BorderLayout.CENTER); consolePanel.add(saveToFile, BorderLayout.SOUTH); - core.getMainWindow().addTab(I18n.getMessage("thaw.plugin.console.console"), thaw.gui.IconBox.minTerminal, consolePanel); + core.getMainWindow().addTab(I18n.getMessage("thaw.plugin.console.console"), + thaw.gui.IconBox.terminal, consolePanel); Logger.addLogListener(this); Modified: trunk/apps/Thaw/src/thaw/plugins/PeerMonitor.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/PeerMonitor.java 2007-06-17 20:30:04 UTC (rev 13638) +++ trunk/apps/Thaw/src/thaw/plugins/PeerMonitor.java 2007-06-17 23:53:50 UTC (rev 13639) @@ -141,7 +141,7 @@ public void update(Observable o, Object param) { core.getMainWindow().addTab(I18n.getMessage("thaw.plugin.peerMonitor.peerMonitor"), - thaw.gui.IconBox.minPeerMonitor, + thaw.gui.IconBox.peers, peerPanel.getTabPanel()); core.getMainWindow().setSelectedTab(peerPanel.getTabPanel()); Modified: trunk/apps/Thaw/src/thaw/plugins/QueueWatcher.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/QueueWatcher.java 2007-06-17 20:30:04 UTC (rev 13638) +++ trunk/apps/Thaw/src/thaw/plugins/QueueWatcher.java 2007-06-17 23:53:50 UTC (rev 13639) @@ -98,7 +98,7 @@ setMainWindow(core.getMainWindow()); core.getMainWindow().getTabbedPane().addChangeListener(this); core.getMainWindow().addTab(I18n.getMessage("thaw.plugin.queueWatcher"), - IconBox.minQueue, + IconBox.queue, panelAdded); split.setResizeWeight(0.5); Modified: trunk/apps/Thaw/src/thaw/plugins/SqlConsole.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/SqlConsole.java 2007-06-17 20:30:04 UTC (rev 13638) +++ trunk/apps/Thaw/src/thaw/plugins/SqlConsole.java 2007-06-17 23:53:50 UTC (rev 13639) @@ -64,7 +64,7 @@ panel = getPanel(); core.getMainWindow().addTab(I18n.getMessage("thaw.plugin.hsqldb.console"), - thaw.gui.IconBox.minTerminal, + thaw.gui.IconBox.terminal, panel); return true; Modified: trunk/apps/Thaw/src/thaw/plugins/TransferLogs.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/TransferLogs.java 2007-06-17 20:30:04 UTC (rev 13638) +++ trunk/apps/Thaw/src/thaw/plugins/TransferLogs.java 2007-06-17 23:53:50 UTC (rev 13639) @@ -135,7 +135,7 @@ setAsObserverEverywhere(true); core.getMainWindow().addTab(I18n.getMessage("thaw.plugin.transferLogs.transferLogsShort"), - thaw.gui.IconBox.minFile, + thaw.gui.IconBox.file, tab); return true; Modified: trunk/apps/Thaw/src/thaw/plugins/index/BlackList.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/BlackList.java 2007-06-17 20:30:04 UTC (rev 13638) +++ trunk/apps/Thaw/src/thaw/plugins/index/BlackList.java 2007-06-17 23:53:50 UTC (rev 13639) @@ -180,7 +180,7 @@ visible = true; updateList(); core.getMainWindow().addTab(I18n.getMessage("thaw.plugin.index.blackList"), - IconBox.minStop, panel); + IconBox.stop, panel); core.getMainWindow().setSelectedTab(panel); } Modified: trunk/apps/Thaw/src/thaw/plugins/index/CommentTab.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/CommentTab.java 2007-06-17 20:30:04 UTC (rev 13638) +++ trunk/apps/Thaw/src/thaw/plugins/index/CommentTab.java 2007-06-17 23:53:50 UTC (rev 13639) @@ -182,6 +182,7 @@ updateCommentList(); indexBrowser.getMainWindow().addTab(I18n.getMessage("thaw.plugin.index.comment.commentList"), + thaw.gui.IconBox.readComments, tabPanel); indexBrowser.getMainWindow().setSelectedTab(tabPanel); From jflesch at freenetproject.org Mon Jun 18 00:01:23 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Mon, 18 Jun 2007 00:01:23 +0000 (UTC) Subject: [Thaw-dev] r13640 - in trunk/apps/Thaw/src/thaw: gui plugins/index Message-ID: <20070618000123.C2F6347A1F6@emu.freenetproject.org> Author: jflesch Date: 2007-06-18 00:01:23 +0000 (Mon, 18 Jun 2007) New Revision: 13640 Modified: trunk/apps/Thaw/src/thaw/gui/TabbedPane.java trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java Log: Fix the warnings due to the new tabbedpane behavior Modified: trunk/apps/Thaw/src/thaw/gui/TabbedPane.java =================================================================== --- trunk/apps/Thaw/src/thaw/gui/TabbedPane.java 2007-06-17 23:53:50 UTC (rev 13639) +++ trunk/apps/Thaw/src/thaw/gui/TabbedPane.java 2007-06-18 00:01:23 UTC (rev 13640) @@ -48,7 +48,11 @@ super.remove(panel); } + public int indexOfTab(String tabName) { + return tabNames.indexOf(tabName); + } + public void stateChanged(final ChangeEvent e) { int x = super.getSelectedIndex(); int tabCount = super.getTabCount(); Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java 2007-06-17 23:53:50 UTC (rev 13639) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java 2007-06-18 00:01:23 UTC (rev 13640) @@ -587,12 +587,16 @@ } public void redraw(TreePath path) { - Object[] nodes = (path.getPath()); + if (path != null) { + Object[] nodes = (path.getPath()); - for (int i = 0 ; i < nodes.length ; i++) { - IndexTreeNode node = (IndexTreeNode)nodes[i]; - redraw(node); + for (int i = 0 ; i < nodes.length ; i++) { + IndexTreeNode node = (IndexTreeNode)nodes[i]; + redraw(node); + } } + else + redraw(getRoot()); } From jflesch at freenetproject.org Mon Jun 18 00:02:44 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Mon, 18 Jun 2007 00:02:44 +0000 (UTC) Subject: [Thaw-dev] r13641 - trunk/apps/Thaw/src/thaw/plugins Message-ID: <20070618000244.883EE47A1F0@emu.freenetproject.org> Author: jflesch Date: 2007-06-18 00:02:44 +0000 (Mon, 18 Jun 2007) New Revision: 13641 Modified: trunk/apps/Thaw/src/thaw/plugins/TransferLogs.java Log: Fix the transferlogs plugin : Didn't register before accessing the database though the hsqldb plugin Modified: trunk/apps/Thaw/src/thaw/plugins/TransferLogs.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/TransferLogs.java 2007-06-18 00:01:23 UTC (rev 13640) +++ trunk/apps/Thaw/src/thaw/plugins/TransferLogs.java 2007-06-18 00:02:44 UTC (rev 13641) @@ -90,6 +90,7 @@ } db = (Hsqldb)core.getPluginManager().getPlugin("thaw.plugins.Hsqldb"); + db.registerChild(this); createTables(); From jflesch at freenetproject.org Mon Jun 18 00:26:54 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Mon, 18 Jun 2007 00:26:54 +0000 (UTC) Subject: [Thaw-dev] r13642 - trunk/apps/Thaw/src/thaw/i18n Message-ID: <20070618002654.7472947983B@emu.freenetproject.org> Author: jflesch Date: 2007-06-18 00:26:54 +0000 (Mon, 18 Jun 2007) New Revision: 13642 Modified: trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties trunk/apps/Thaw/src/thaw/i18n/thaw.properties trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties Log: Make the option attaching the private key of the index to the index more explicit Modified: trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties =================================================================== --- trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties 2007-06-18 00:02:44 UTC (rev 13641) +++ trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties 2007-06-18 00:26:54 UTC (rev 13642) @@ -319,7 +319,7 @@ thaw.plugin.index.markAllAsSeen=Les marquer tous comme vus thaw.plugin.index.markAsSeen=Marquer comme vu -thaw.plugin.index.publishPrivateKey=Attacher la clef priv?e ? l'index +thaw.plugin.index.publishPrivateKey=Attacher la clef priv?e de l'index ? l'index (DANGEREUX !) thaw.plugin.index.indexWithNoLink=L'index '?' n'a pas de lien vers d'autres indexes.\n?tes-vous s?r de vouloir l'ins?rer tel quel ? Modified: trunk/apps/Thaw/src/thaw/i18n/thaw.properties =================================================================== --- trunk/apps/Thaw/src/thaw/i18n/thaw.properties 2007-06-18 00:02:44 UTC (rev 13641) +++ trunk/apps/Thaw/src/thaw/i18n/thaw.properties 2007-06-18 00:26:54 UTC (rev 13642) @@ -325,7 +325,7 @@ thaw.plugin.index.markAllAsSeen=Mark all as seen thaw.plugin.index.markAsSeen=Mark as seen -thaw.plugin.index.publishPrivateKey=Attach the private key with the index +thaw.plugin.index.publishPrivateKey=Attach the private key of the index with the index (BE CAREFUL !) thaw.plugin.index.indexWithNoLink=The index '?' has no link to other indexes.\nAre you sure that you want to insert it as it ? Modified: trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties =================================================================== --- trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties 2007-06-18 00:02:44 UTC (rev 13641) +++ trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties 2007-06-18 00:26:54 UTC (rev 13642) @@ -319,7 +319,7 @@ thaw.plugin.index.markAllAsSeen=Les marquer tous comme vus thaw.plugin.index.markAsSeen=Marquer comme vu -thaw.plugin.index.publishPrivateKey=Attacher la clef priv\u00e9e \u00e0 l'index +thaw.plugin.index.publishPrivateKey=Attacher la clef priv\u00e9e de l'index \u00e0 l'index (DANGEREUX !) thaw.plugin.index.indexWithNoLink=L'index '?' n'a pas de lien vers d'autres indexes.\n\u00cates-vous s\u00fbr de vouloir l'ins\u00e9rer tel quel ? From jflesch at freenetproject.org Mon Jun 18 11:30:17 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Mon, 18 Jun 2007 11:30:17 +0000 (UTC) Subject: [Thaw-dev] r13647 - trunk/apps/Thaw/src/thaw/core Message-ID: <20070618113017.49F7E47A0E7@emu.freenetproject.org> Author: jflesch Date: 2007-06-18 11:30:17 +0000 (Mon, 18 Jun 2007) New Revision: 13647 Modified: trunk/apps/Thaw/src/thaw/core/ConfigWindow.java Log: Change the tab behavior also in the config window Modified: trunk/apps/Thaw/src/thaw/core/ConfigWindow.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/ConfigWindow.java 2007-06-18 10:28:50 UTC (rev 13646) +++ trunk/apps/Thaw/src/thaw/core/ConfigWindow.java 2007-06-18 11:30:17 UTC (rev 13647) @@ -11,7 +11,7 @@ import javax.swing.JDialog; import javax.swing.JOptionPane; import javax.swing.JPanel; -import javax.swing.JTabbedPane; +import thaw.gui.TabbedPane; import thaw.gui.IconBox; @@ -25,7 +25,7 @@ */ public class ConfigWindow extends Observable implements ActionListener, java.awt.event.WindowListener { private JDialog configWin; - private JTabbedPane tabs; + private TabbedPane tabs; private JPanel buttons; private JButton okButton; @@ -50,7 +50,7 @@ configWin = new JDialog(core.getMainWindow().getMainFrame(), I18n.getMessage("thaw.config.windowName")); - tabs = new JTabbedPane(); + tabs = new TabbedPane(); buttons = new JPanel(); buttons.setLayout(new GridLayout(1, 2)); From jflesch at freenetproject.org Sat Jun 23 02:22:52 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sat, 23 Jun 2007 02:22:52 +0000 (UTC) Subject: [Thaw-dev] r13726 - in trunk/apps/Thaw: images src/thaw/gui src/thaw/plugins/queueWatcher Message-ID: <20070623022252.D9B0F479703@emu.freenetproject.org> Author: jflesch Date: 2007-06-23 02:22:52 +0000 (Sat, 23 Jun 2007) New Revision: 13726 Added: trunk/apps/Thaw/images/min-green.png trunk/apps/Thaw/images/min-orange.png trunk/apps/Thaw/images/min-red.png Modified: trunk/apps/Thaw/src/thaw/gui/IconBox.java trunk/apps/Thaw/src/thaw/plugins/queueWatcher/DragAndDropManager.java trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueuePanel.java trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueueTableModel.java Log: Change the way that downloads/insertions are displayed in Thaw : Will require some testing and some feedbacks Added: trunk/apps/Thaw/images/min-green.png =================================================================== (Binary files differ) Property changes on: trunk/apps/Thaw/images/min-green.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/apps/Thaw/images/min-orange.png =================================================================== (Binary files differ) Property changes on: trunk/apps/Thaw/images/min-orange.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/apps/Thaw/images/min-red.png =================================================================== (Binary files differ) Property changes on: trunk/apps/Thaw/images/min-red.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/apps/Thaw/src/thaw/gui/IconBox.java =================================================================== --- trunk/apps/Thaw/src/thaw/gui/IconBox.java 2007-06-23 01:26:21 UTC (rev 13725) +++ trunk/apps/Thaw/src/thaw/gui/IconBox.java 2007-06-23 02:22:52 UTC (rev 13726) @@ -128,6 +128,11 @@ public static ImageIcon readComments; public static ImageIcon minReadComments; + public static ImageIcon minRed; + public static ImageIcon minOrange; + public static ImageIcon minGreen; + + /** * Not really used */ @@ -239,6 +244,9 @@ IconBox.minAddComment = IconBox.loadIcon("min-newComment.png"); IconBox.readComments = IconBox.loadIcon("readComments.png"); IconBox.minReadComments = IconBox.loadIcon("min-readComments.png"); + IconBox.minRed = IconBox.loadIcon("min-red.png"); + IconBox.minOrange = IconBox.loadIcon("min-orange.png"); + IconBox.minGreen = IconBox.loadIcon("min-green.png"); } } Modified: trunk/apps/Thaw/src/thaw/plugins/queueWatcher/DragAndDropManager.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/queueWatcher/DragAndDropManager.java 2007-06-23 01:26:21 UTC (rev 13725) +++ trunk/apps/Thaw/src/thaw/plugins/queueWatcher/DragAndDropManager.java 2007-06-23 02:22:52 UTC (rev 13726) @@ -36,16 +36,16 @@ dragSource = DragSource.getDefaultDragSource(); - for(int i = 0 ; i < queuePanels.length ; i++) { - dragSource.createDefaultDragGestureRecognizer(queuePanels[i].getTable(), - DnDConstants.ACTION_COPY_OR_MOVE, - this); + //for(int i = 0 ; i < queuePanels.length ; i++) { + //dragSource.createDefaultDragGestureRecognizer(queuePanels[i].getTable(), + // DnDConstants.ACTION_COPY_OR_MOVE, + // this); /* TODO: Finish DnD support */ //queuePanels[i].getTable().setTransferHandler(new FileTransferHandler()); //queuePanels[i].getTable().setDragEnabled(true); - } + //} } private class FileTransferHandler extends TransferHandler { Modified: trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueuePanel.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueuePanel.java 2007-06-23 01:26:21 UTC (rev 13725) +++ trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueuePanel.java 2007-06-23 02:22:52 UTC (rev 13726) @@ -57,6 +57,8 @@ public final static int ACTION_COPY_KEYS_SELECTED = 6; public final static int ACTION_CHANGE_PRIORITY_SELECTED = 7; + public final static int FIRST_COLUMN_SIZE = 20; + private Core core; private JButton button; @@ -107,7 +109,8 @@ isForInsertionQueue ? "table_insertions" : "table_downloads", tableModel); - table.setShowGrid(true); + table.setShowGrid(false); + table.setIntercellSpacing(new java.awt.Dimension(0, 0)); final JTableHeader header = table.getTableHeader(); header.setUpdateTableInRealTime(true); @@ -197,6 +200,13 @@ table.addMouseListener(this); table.addKeyListener(this); + /* we really really want a column 0 with a size of FIRST_COLUMN_SIZE ! */ + table.getColumnModel().getColumn(0).setPreferredWidth(FIRST_COLUMN_SIZE); + table.getColumnModel().getColumn(0).setResizable(false); + table.getColumnModel().getColumn(0).setPreferredWidth(FIRST_COLUMN_SIZE); + table.getColumnModel().getColumn(0).setMinWidth(FIRST_COLUMN_SIZE); + table.getColumnModel().getColumn(0).setMaxWidth(FIRST_COLUMN_SIZE); + /* If a queue is already existing, we need to add it */ if(core.getQueueManager() != null) { this.addToTable(core.getQueueManager().getRunningQueue()); @@ -224,6 +234,7 @@ private final Color FAILURE = Color.RED; private final Color RUNNING = Color.ORANGE; private final Color PENDING = Color.WHITE; + private Color softGray; private QueueTableModel model = null; private JTable tabl = null; @@ -233,6 +244,7 @@ this.model = model; tabl = table; insertionQueue = isForInsertion; + softGray = new Color(240,240,240); } public Component getTableCellRendererComponent(final JTable table, Object value, @@ -270,11 +282,42 @@ return bar; } + Component cell = null; - final Component cell = super.getTableCellRendererComponent(table, value, - isSelected, hasFocus, - row, column); + if (column == 0) { + if(query == null) + return null; + if(!query.isRunning() && !query.isFinished()) + cell = new JLabel(""); + + if(query.isFinished() && query.isSuccessful() && + ( (!(query instanceof FCPClientGet)) || ((FCPClientGet)query).isWritingSuccessful())) + cell = new JLabel(IconBox.minGreen); + + if(query.isFinished() && (!query.isSuccessful() || + ((query instanceof FCPClientGet) && !((FCPClientGet)query).isWritingSuccessful()) ) ) + cell = new JLabel(IconBox.minRed); + + if(query.isRunning() && !query.isFinished()) + cell = new JLabel(IconBox.minOrange); + + } else { + + cell = super.getTableCellRendererComponent(table, value, + isSelected, hasFocus, + row, column); + + } + + if (!isSelected) { + if (row % 2 == 0) + cell.setBackground(Color.WHITE); + else + cell.setBackground(softGray); + } + + /* if(!isSelected) { if(query == null) @@ -294,8 +337,8 @@ if(query.isRunning() && !query.isFinished()) cell.setBackground(RUNNING); } + */ - return cell; } Modified: trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueueTableModel.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueueTableModel.java 2007-06-23 01:26:21 UTC (rev 13725) +++ trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueueTableModel.java 2007-06-23 02:22:52 UTC (rev 13726) @@ -43,6 +43,7 @@ columnNames = new Vector(); + columnNames.add(" "); columnNames.add(I18n.getMessage("thaw.common.file")); columnNames.add(I18n.getMessage("thaw.common.size")); @@ -90,10 +91,18 @@ } - public Object getValueAt(final int row, final int column) { + public Object getValueAt(final int row, int column) { if(row >= queries.size()) return null; + /* we don't return any value for the first column, + * the renderer will deduce itself what must be put in this column + */ + if (column == 0) + return null; + else + column--; + final FCPTransferQuery query = (FCPTransferQuery)queries.get(row); if(column == 0) { @@ -345,7 +354,7 @@ final int columnsCount = table.getColumnCount(); - if (modelIndex < 0) + if (modelIndex < 0 || columnModelIndex < 1) return; if (sortedColumn == modelIndex) @@ -376,7 +385,7 @@ public QueryComparator(final boolean sortedAsc, final int column, final boolean isForInsertionTable) { isSortedAsc = sortedAsc; - this.column = column; + this.column = column - 1; /* can't sort on the first column */ this.isForInsertionTable = isForInsertionTable; } From jflesch at freenetproject.org Sat Jun 23 15:51:17 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sat, 23 Jun 2007 15:51:17 +0000 (UTC) Subject: [Thaw-dev] r13733 - trunk/apps/Thaw/src/thaw/fcp Message-ID: <20070623155117.0A32E479872@emu.freenetproject.org> Author: jflesch Date: 2007-06-23 15:51:16 +0000 (Sat, 23 Jun 2007) New Revision: 13733 Modified: trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java trunk/apps/Thaw/src/thaw/fcp/FCPConnection.java Log: Try to fix the behavior of FCPClientGet when disconnected when downloading data from the node Modified: trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java =================================================================== --- trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java 2007-06-23 14:34:49 UTC (rev 13732) +++ trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java 2007-06-23 15:51:16 UTC (rev 13733) @@ -505,11 +505,15 @@ if(fetchDirectly(queryManager.getConnection(), fileSize, true)) { writingSuccessful = true; + successful = false; status = "Available"; } else { Logger.warning(this, "Unable to fetch correctly the file. This may create problems on socket"); - writingSuccessful = false; - status = "Error while receveing the file"; + if (writingSuccessful) { /* if we forgot to set the correct values */ + writingSuccessful = false; + successful = false; + status = "Error while receveing the file"; + } } Logger.info(this, "File received"); @@ -717,9 +721,17 @@ if(amount <= -1) { Logger.error(this, "Socket closed, damn !"); - status = "Read error"; + status = "Unable to read data from the node"; writingSuccessful = false; - break; + successful = false; + try { + outputStream.close(); + } catch(java.io.IOException ex) { + Logger.error(this, "Unable to close the file cleanly : "+ex.toString()); + Logger.error(this, "Things seem to go wrong !"); + } + newFile.delete(); + return false; } if(reallyWrite) { @@ -729,6 +741,14 @@ Logger.error(this, "Unable to write file on disk ... out of space ? : "+e.toString()); status = "Unable to fetch / disk probably full !"; writingSuccessful = false; + successful = false; + try { + outputStream.close(); + } catch(java.io.IOException ex) { + Logger.error(this, "Unable to close the file cleanly : "+ex.toString()); + Logger.error(this, "Things seem to go wrong !"); + } + newFile.delete(); return false; } } Modified: trunk/apps/Thaw/src/thaw/fcp/FCPConnection.java =================================================================== --- trunk/apps/Thaw/src/thaw/fcp/FCPConnection.java 2007-06-23 14:34:49 UTC (rev 13732) +++ trunk/apps/Thaw/src/thaw/fcp/FCPConnection.java 2007-06-23 15:51:16 UTC (rev 13733) @@ -334,6 +334,7 @@ if(rdBytes < 0) { Logger.error(this, "Error while reading on the socket => disconnection"); disconnect(); + return rdBytes; } rawBytesWaiting = rawBytesWaiting - rdBytes; From jflesch at freenetproject.org Sat Jun 23 15:58:14 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sat, 23 Jun 2007 15:58:14 +0000 (UTC) Subject: [Thaw-dev] r13734 - trunk/apps/Thaw/src/thaw/plugins/index Message-ID: <20070623155814.591DD47A1E6@emu.freenetproject.org> Author: jflesch Date: 2007-06-23 15:58:14 +0000 (Sat, 23 Jun 2007) New Revision: 13734 Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java Log: Fix folder deletion Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java 2007-06-23 15:51:16 UTC (rev 13733) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java 2007-06-23 15:58:14 UTC (rev 13734) @@ -702,9 +702,29 @@ synchronized(db.dbLock) { try { - /* we remove all the files */ PreparedStatement st; + /* we remove all the comments */ + + st = db.getConnection().prepareStatement("DELETE FROM indexCommentKeys "+ + "WHERE indexCommentKeys.indexId IN "+ + " (SELECT indexParents.indexId "+ + " FROM indexParents "+ + " WHERE indexParents.folderId = ?)"); + st = db.getConnection().prepareStatement("DELETE FROM indexComments "+ + "WHERE indexComments.indexId IN "+ + " (SELECT indexParents.indexId "+ + " FROM indexParents "+ + " WHERE indexParents.folderId = ?)"); + st = db.getConnection().prepareStatement("DELETE FROM indexCommentBlackList "+ + "WHERE indexCommentBlackList.indexId IN "+ + " (SELECT indexParents.indexId "+ + " FROM indexParents "+ + " WHERE indexParents.folderId = ?)"); + + + /* we remove all the files */ + st = db.getConnection().prepareStatement("DELETE FROM files WHERE files.indexParent IN "+ "(SELECT indexParents.indexId FROM indexParents WHERE indexParents.folderId = ?)"); From jflesch at freenetproject.org Sat Jun 23 16:08:11 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sat, 23 Jun 2007 16:08:11 +0000 (UTC) Subject: [Thaw-dev] r13735 - trunk/apps/Thaw/src/thaw/plugins/index Message-ID: <20070623160811.15CFA47A254@emu.freenetproject.org> Author: jflesch Date: 2007-06-23 16:08:10 +0000 (Sat, 23 Jun 2007) New Revision: 13735 Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java Log: I'm stupid : I prepared the SQL statements but didn't execute them Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java 2007-06-23 15:58:14 UTC (rev 13734) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java 2007-06-23 16:08:10 UTC (rev 13735) @@ -711,16 +711,21 @@ " (SELECT indexParents.indexId "+ " FROM indexParents "+ " WHERE indexParents.folderId = ?)"); + st.execute(); + st = db.getConnection().prepareStatement("DELETE FROM indexComments "+ "WHERE indexComments.indexId IN "+ " (SELECT indexParents.indexId "+ " FROM indexParents "+ " WHERE indexParents.folderId = ?)"); + st.execute(); + st = db.getConnection().prepareStatement("DELETE FROM indexCommentBlackList "+ "WHERE indexCommentBlackList.indexId IN "+ " (SELECT indexParents.indexId "+ " FROM indexParents "+ " WHERE indexParents.folderId = ?)"); + st.execute(); /* we remove all the files */ From jflesch at freenetproject.org Sat Jun 23 17:29:59 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sat, 23 Jun 2007 17:29:59 +0000 (UTC) Subject: [Thaw-dev] r13736 - trunk/apps/Thaw/src/thaw/plugins/index Message-ID: <20070623172959.17E5847A2CA@emu.freenetproject.org> Author: jflesch Date: 2007-06-23 17:29:58 +0000 (Sat, 23 Jun 2007) New Revision: 13736 Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java Log: ... and I forgot to specify the argument values of the SQL statements Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java 2007-06-23 16:08:10 UTC (rev 13735) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java 2007-06-23 17:29:58 UTC (rev 13736) @@ -711,6 +711,7 @@ " (SELECT indexParents.indexId "+ " FROM indexParents "+ " WHERE indexParents.folderId = ?)"); + st.setInt(1, id); st.execute(); st = db.getConnection().prepareStatement("DELETE FROM indexComments "+ @@ -718,6 +719,7 @@ " (SELECT indexParents.indexId "+ " FROM indexParents "+ " WHERE indexParents.folderId = ?)"); + st.setInt(1, id); st.execute(); st = db.getConnection().prepareStatement("DELETE FROM indexCommentBlackList "+ @@ -725,6 +727,7 @@ " (SELECT indexParents.indexId "+ " FROM indexParents "+ " WHERE indexParents.folderId = ?)"); + st.setInt(1, id); st.execute(); From jflesch at freenetproject.org Sat Jun 23 18:21:33 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sat, 23 Jun 2007 18:21:33 +0000 (UTC) Subject: [Thaw-dev] r13737 - trunk/apps/Thaw/src/thaw/fcp Message-ID: <20070623182133.1403C47A240@emu.freenetproject.org> Author: jflesch Date: 2007-06-23 18:21:32 +0000 (Sat, 23 Jun 2007) New Revision: 13737 Modified: trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java Log: Fix FCPClientGet Modified: trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java =================================================================== --- trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java 2007-06-23 17:29:58 UTC (rev 13736) +++ trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java 2007-06-23 18:21:32 UTC (rev 13737) @@ -505,7 +505,7 @@ if(fetchDirectly(queryManager.getConnection(), fileSize, true)) { writingSuccessful = true; - successful = false; + successful = true; status = "Available"; } else { Logger.warning(this, "Unable to fetch correctly the file. This may create problems on socket"); From jflesch at freenetproject.org Sat Jun 23 19:14:41 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sat, 23 Jun 2007 19:14:41 +0000 (UTC) Subject: [Thaw-dev] r13738 - in trunk/apps/Thaw/src/thaw: gui plugins/queueWatcher Message-ID: <20070623191441.7688F4797C8@emu.freenetproject.org> Author: jflesch Date: 2007-06-23 19:14:41 +0000 (Sat, 23 Jun 2007) New Revision: 13738 Modified: trunk/apps/Thaw/src/thaw/gui/TabbedPane.java trunk/apps/Thaw/src/thaw/gui/Table.java trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueuePanel.java trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueueTableModel.java Log: Modify the internal mechanisms to display the tables in the queueWatcher tab Modified: trunk/apps/Thaw/src/thaw/gui/TabbedPane.java =================================================================== --- trunk/apps/Thaw/src/thaw/gui/TabbedPane.java 2007-06-23 18:21:32 UTC (rev 13737) +++ trunk/apps/Thaw/src/thaw/gui/TabbedPane.java 2007-06-23 19:14:41 UTC (rev 13738) @@ -42,8 +42,14 @@ if (x >= 0) tabNames.remove(x); - else + else { Logger.error(this, "remove(): Component not found ?"); + try { /* dirty way to have a trace back */ + throw new Exception("bleh"); + } catch(Exception e) { + e.printStackTrace(); + } + } super.remove(panel); } Modified: trunk/apps/Thaw/src/thaw/gui/Table.java =================================================================== --- trunk/apps/Thaw/src/thaw/gui/Table.java 2007-06-23 18:21:32 UTC (rev 13737) +++ trunk/apps/Thaw/src/thaw/gui/Table.java 2007-06-23 19:14:41 UTC (rev 13738) @@ -13,9 +13,10 @@ import javax.swing.JTable; import javax.swing.JProgressBar; import javax.swing.JTextArea; +import javax.swing.JLabel; import java.awt.Color; import java.awt.Component; - +import javax.swing.ImageIcon; import java.util.Vector; @@ -45,6 +46,7 @@ private int columnWithKeys = -1; + private boolean statusInProgressBars = true; public Table(Config config, String prefix) { super(); @@ -106,6 +108,9 @@ columnWithKeys = c; } + public void showStatusInProgressBars(boolean v) { + statusInProgressBars = v; + } public void setDefaultRenderer() { setDefaultRenderer(getColumnClass(0), new DefaultRenderer()); @@ -157,11 +162,11 @@ final boolean isSelected, final boolean hasFocus, final int row, final int column) { - if(value == null) + if (value == null) return super.getTableCellRendererComponent(table, "", isSelected, hasFocus, row, column); - if(value instanceof FCPTransferQuery) { + if (value instanceof FCPTransferQuery) { final FCPTransferQuery query = (FCPTransferQuery)value; final JProgressBar bar = new JProgressBar(0, 100); @@ -185,8 +190,11 @@ bar.setString(I18n.getMessage("thaw.common.ok")); if(!query.isFinished()) { - bar.setString(query.getStatus() + - " [ "+Integer.toString(progress)+"% ]"); + if (statusInProgressBars) + bar.setString(query.getStatus() + + " [ "+Integer.toString(progress)+"% ]"); + else + bar.setString(Integer.toString(progress)+"%"); } return bar; @@ -194,7 +202,9 @@ Component cell; - if(value instanceof Long) { + if (value instanceof ImageIcon) { + cell = new JLabel(((ImageIcon)value)); + } else if(value instanceof Long) { cell = super.getTableCellRendererComponent(table, thaw.gui.GUIHelper.getPrintableSize(((Long)value).longValue()), Modified: trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueuePanel.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueuePanel.java 2007-06-23 18:21:32 UTC (rev 13737) +++ trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueuePanel.java 2007-06-23 19:14:41 UTC (rev 13738) @@ -111,6 +111,7 @@ table.setShowGrid(false); table.setIntercellSpacing(new java.awt.Dimension(0, 0)); + table.showStatusInProgressBars(false); final JTableHeader header = table.getTableHeader(); header.setUpdateTableInRealTime(true); @@ -141,7 +142,7 @@ scrollPane = new JScrollPane(table); panel.add(scrollPane, BorderLayout.CENTER); - table.setDefaultRenderer( table.getColumnClass(0), new ProgressRenderer(table, tableModel, isForInsertionQueue) ); + //table.setDefaultRenderer( table.getColumnClass(0), new ProgressRenderer(table, tableModel, isForInsertionQueue) ); tableModel.addTableModelListener(table); @@ -227,124 +228,6 @@ } - private class ProgressRenderer extends DefaultTableCellRenderer { - private final static long serialVersionUID = 20060709; - - private final Color SUCCESS = Color.GREEN; - private final Color FAILURE = Color.RED; - private final Color RUNNING = Color.ORANGE; - private final Color PENDING = Color.WHITE; - private Color softGray; - - private QueueTableModel model = null; - private JTable tabl = null; - private boolean insertionQueue; - - public ProgressRenderer(final JTable table, final QueueTableModel model, final boolean isForInsertion) { - this.model = model; - tabl = table; - insertionQueue = isForInsertion; - softGray = new Color(240,240,240); - } - - public Component getTableCellRendererComponent(final JTable table, Object value, - boolean isSelected, final boolean hasFocus, - final int row, final int column) { - - if(value == null) - value = ""; - - final FCPTransferQuery query = model.getQuery(row); - - if(value instanceof Integer) { - - final Integer progress = (Integer)value; - final JProgressBar bar = new JProgressBar(0, 100); - - bar.setStringPainted(true); - bar.setBorderPainted(false); - - if(progress.intValue() >= 0) { - bar.setValue(progress.intValue()); - - String toAdd = "%"; - - if(!query.isProgressionReliable()) - toAdd = toAdd + " [*]"; - - bar.setString(progress.toString() + toAdd); - } else { - bar.setValue(100); - bar.setString(I18n.getMessage("thaw.common.failed")); - } - - - return bar; - } - - Component cell = null; - - if (column == 0) { - if(query == null) - return null; - - if(!query.isRunning() && !query.isFinished()) - cell = new JLabel(""); - - if(query.isFinished() && query.isSuccessful() && - ( (!(query instanceof FCPClientGet)) || ((FCPClientGet)query).isWritingSuccessful())) - cell = new JLabel(IconBox.minGreen); - - if(query.isFinished() && (!query.isSuccessful() || - ((query instanceof FCPClientGet) && !((FCPClientGet)query).isWritingSuccessful()) ) ) - cell = new JLabel(IconBox.minRed); - - if(query.isRunning() && !query.isFinished()) - cell = new JLabel(IconBox.minOrange); - - } else { - - cell = super.getTableCellRendererComponent(table, value, - isSelected, hasFocus, - row, column); - - } - - if (!isSelected) { - if (row % 2 == 0) - cell.setBackground(Color.WHITE); - else - cell.setBackground(softGray); - } - - /* - if(!isSelected) { - - if(query == null) - return null; - - if(!query.isRunning() && !query.isFinished()) - cell.setBackground(PENDING); - - if(query.isFinished() && query.isSuccessful() && - ( (!(query instanceof FCPClientGet)) || ((FCPClientGet)query).isWritingSuccessful())) - cell.setBackground(SUCCESS); - - if(query.isFinished() && (!query.isSuccessful() || - ((query instanceof FCPClientGet) && !((FCPClientGet)query).isWritingSuccessful()) ) ) - cell.setBackground(FAILURE); - - if(query.isRunning() && !query.isFinished()) - cell.setBackground(RUNNING); - } - */ - - return cell; - } - - } - - public void reloadSelections() { selectedRows = table.getSelectedRows(); Modified: trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueueTableModel.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueueTableModel.java 2007-06-23 18:21:32 UTC (rev 13737) +++ trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueueTableModel.java 2007-06-23 19:14:41 UTC (rev 13738) @@ -18,7 +18,12 @@ import thaw.core.Logger; import thaw.fcp.FCPQueueManager; import thaw.fcp.FCPTransferQuery; +import thaw.fcp.FCPClientGet; +import thaw.fcp.FCPClientPut; +import thaw.gui.IconBox; + + public class QueueTableModel extends javax.swing.table.AbstractTableModel implements Observer { private static final long serialVersionUID = 20060708; @@ -95,17 +100,31 @@ if(row >= queries.size()) return null; - /* we don't return any value for the first column, - * the renderer will deduce itself what must be put in this column - */ - if (column == 0) - return null; - else - column--; - final FCPTransferQuery query = (FCPTransferQuery)queries.get(row); - if(column == 0) { + if (column == 0) { + if(query == null) + return null; + + if(!query.isRunning() && !query.isFinished()) + return " "; + + if(query.isFinished() && query.isSuccessful() && + ( (!(query instanceof FCPClientGet)) || ((FCPClientGet)query).isWritingSuccessful())) + return IconBox.minGreen; + + if(query.isFinished() && (!query.isSuccessful() || + ((query instanceof FCPClientGet) && !((FCPClientGet)query).isWritingSuccessful()) ) ) + return IconBox.minRed; + + if(query.isRunning() && !query.isFinished()) + return IconBox.minOrange; + + return " "; + } + + + if(column == 1) { String filename = query.getFilename(); if (filename == null) @@ -114,7 +133,7 @@ return filename; } - if(column == 1) + if(column == 2) return thaw.gui.GUIHelper.getPrintableSize(query.getFileSize()); if(!isForInsertions && (column == 2)) { @@ -124,28 +143,14 @@ return I18n.getMessage("thaw.common.unspecified"); } - if( (isForInsertions && (column == 2)) - || (!isForInsertions && (column == 3)) ) + if( (isForInsertions && (column == 3)) + || (!isForInsertions && (column == 4)) ) return query.getStatus(); - if( ((isForInsertions && (column == 3)) - || (!isForInsertions && (column == 4)) ) ) { + if( ((isForInsertions && (column == 4)) + || (!isForInsertions && (column == 5)) ) ) { - if(!query.isFinished() || query.isSuccessful()) { - int progress; - - if ((query instanceof thaw.fcp.FCPClientPut - && (query.getTransferWithTheNodeProgression() < 100)) - || ((query instanceof thaw.fcp.FCPClientGet) - && (query.getTransferWithTheNodeProgression() > 0))) - progress = query.getTransferWithTheNodeProgression(); - else - progress = query.getProgression(); - - return new Integer(progress); - } else - return new Integer(-1); - + return query; } return null; From jflesch at freenetproject.org Sat Jun 23 19:23:12 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sat, 23 Jun 2007 19:23:12 +0000 (UTC) Subject: [Thaw-dev] r13739 - in trunk/apps/Thaw/src/thaw: gui i18n plugins/queueWatcher Message-ID: <20070623192312.F1B3047A1E0@emu.freenetproject.org> Author: jflesch Date: 2007-06-23 19:23:12 +0000 (Sat, 23 Jun 2007) New Revision: 13739 Modified: trunk/apps/Thaw/src/thaw/gui/Table.java trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties trunk/apps/Thaw/src/thaw/i18n/thaw.properties trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueueTableModel.java Log: Fix display of the third column in the download table Modified: trunk/apps/Thaw/src/thaw/gui/Table.java =================================================================== --- trunk/apps/Thaw/src/thaw/gui/Table.java 2007-06-23 19:14:41 UTC (rev 13738) +++ trunk/apps/Thaw/src/thaw/gui/Table.java 2007-06-23 19:23:12 UTC (rev 13739) @@ -187,7 +187,7 @@ bar.setString(I18n.getMessage("thaw.common.failed")); if(query.isFinished() && query.isSuccessful()) - bar.setString(I18n.getMessage("thaw.common.ok")); + bar.setString(I18n.getMessage("thaw.common.finished")); if(!query.isFinished()) { if (statusInProgressBars) Modified: trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties =================================================================== --- trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties 2007-06-23 19:14:41 UTC (rev 13738) +++ trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties 2007-06-23 19:23:12 UTC (rev 13739) @@ -70,6 +70,7 @@ thaw.common.failed=ECHEC thaw.common.done=Fait thaw.common.ok=Ok +thaw.common.finished=Fini thaw.common.search=Recherche Modified: trunk/apps/Thaw/src/thaw/i18n/thaw.properties =================================================================== --- trunk/apps/Thaw/src/thaw/i18n/thaw.properties 2007-06-23 19:14:41 UTC (rev 13738) +++ trunk/apps/Thaw/src/thaw/i18n/thaw.properties 2007-06-23 19:23:12 UTC (rev 13739) @@ -72,6 +72,7 @@ thaw.common.failed=FAILED thaw.common.done=Done thaw.common.ok=Ok +thaw.common.finished=Finished thaw.common.search=Search Modified: trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties =================================================================== --- trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties 2007-06-23 19:14:41 UTC (rev 13738) +++ trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties 2007-06-23 19:23:12 UTC (rev 13739) @@ -70,6 +70,7 @@ thaw.common.failed=ECHEC thaw.common.done=Fait thaw.common.ok=Ok +thaw.common.finished=Fini thaw.common.search=Recherche Modified: trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueueTableModel.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueueTableModel.java 2007-06-23 19:14:41 UTC (rev 13738) +++ trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueueTableModel.java 2007-06-23 19:23:12 UTC (rev 13739) @@ -136,7 +136,7 @@ if(column == 2) return thaw.gui.GUIHelper.getPrintableSize(query.getFileSize()); - if(!isForInsertions && (column == 2)) { + if(!isForInsertions && (column == 3)) { if(query.getPath() != null) return query.getPath(); else From jflesch at freenetproject.org Sat Jun 23 21:06:34 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sat, 23 Jun 2007 21:06:34 +0000 (UTC) Subject: [Thaw-dev] r13742 - in trunk/apps/Thaw/src/thaw: core gui i18n plugins Message-ID: <20070623210634.B57A747A256@emu.freenetproject.org> Author: jflesch Date: 2007-06-23 21:06:34 +0000 (Sat, 23 Jun 2007) New Revision: 13742 Added: trunk/apps/Thaw/src/thaw/gui/SysTrayIcon.java trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java Modified: trunk/apps/Thaw/src/thaw/core/MainWindow.java trunk/apps/Thaw/src/thaw/core/PluginManager.java trunk/apps/Thaw/src/thaw/gui/Table.java trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties trunk/apps/Thaw/src/thaw/i18n/thaw.properties trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties Log: Add a basic tray icon Modified: trunk/apps/Thaw/src/thaw/core/MainWindow.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/MainWindow.java 2007-06-23 20:47:40 UTC (rev 13741) +++ trunk/apps/Thaw/src/thaw/core/MainWindow.java 2007-06-23 21:06:34 UTC (rev 13742) @@ -20,8 +20,8 @@ import javax.swing.JToolBar; import javax.swing.JTextField; import javax.swing.WindowConstants; +import java.awt.event.WindowListener; - import thaw.gui.TabbedPane; import thaw.gui.IconBox; @@ -51,7 +51,7 @@ * * @author Jerome Flesch */ -public class MainWindow implements java.awt.event.ActionListener, java.awt.event.WindowListener, +public class MainWindow implements java.awt.event.ActionListener, WindowListener, java.util.Observer { public final static int DEFAULT_SIZE_X = 790; @@ -208,6 +208,15 @@ } + public void addWindowListener(WindowListener wl) { + mainWindow.addWindowListener(wl); + } + + public void removeWindowListener(WindowListener wl) { + mainWindow.removeWindowListener(wl); + } + + public void connectionHasChanged() { core.getConnectionManager().addObserver(this); } @@ -222,6 +231,19 @@ } + public boolean isVisible() { + return mainWindow.isVisible(); + } + + public void setIconified() { + mainWindow.setExtendedState(JFrame.ICONIFIED); + } + + public void setNonIconified() { + mainWindow.setExtendedState(JFrame.NORMAL); + } + + public JFrame getMainFrame() { return mainWindow; } @@ -550,7 +572,7 @@ public void showDialogAbout() { final JComponent[] labels = new JComponent[] { - null, + new JTextField("Thaw "+Main.VERSION), new JLabel(I18n.getMessage("thaw.about.l2")), new JLabel(I18n.getMessage("thaw.about.l3")), new JLabel(I18n.getMessage("thaw.about.l4")), @@ -569,8 +591,6 @@ } */ - - labels[0] = new JTextField("Thaw "+Main.VERSION); ((JTextField)labels[0]).setFont(new Font("Dialog", Font.BOLD, 30)); ((JTextField)labels[0]).setEditable(false); Modified: trunk/apps/Thaw/src/thaw/core/PluginManager.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/PluginManager.java 2007-06-23 20:47:40 UTC (rev 13741) +++ trunk/apps/Thaw/src/thaw/core/PluginManager.java 2007-06-23 21:06:34 UTC (rev 13742) @@ -26,6 +26,7 @@ "thaw.plugins.FetchPlugin", "thaw.plugins.InsertPlugin", "thaw.plugins.StatusBar", + "thaw.plugins.TrayIcon", "thaw.plugins.ThemeSelector", "thaw.plugins.Hsqldb", "thaw.plugins.Signatures", @@ -226,7 +227,8 @@ ((Plugin)plugins.get(className)).run(core); } catch(final Exception e) { - Logger.warning(this, "runPlugin('"+className+"'): Exception: "+e); + Logger.error(this, "runPlugin('"+className+"'): Exception: "+e); + e.printStackTrace(); return false; } Added: trunk/apps/Thaw/src/thaw/gui/SysTrayIcon.java =================================================================== --- trunk/apps/Thaw/src/thaw/gui/SysTrayIcon.java (rev 0) +++ trunk/apps/Thaw/src/thaw/gui/SysTrayIcon.java 2007-06-23 21:06:34 UTC (rev 13742) @@ -0,0 +1,133 @@ +package thaw.gui; + +import java.lang.reflect.Method; +import javax.swing.ImageIcon; +import java.awt.Image; +import java.awt.event.MouseListener; +import java.awt.PopupMenu; + +import thaw.core.Logger; + +/** + * Systray icon that must compile with java 1.4 AND 1.6 + * Limitations: + * + *
+ */ +public class SysTrayIcon { + private Object systemTray; + private Object trayIcon; + + public SysTrayIcon(ImageIcon icon) { + try { + systemTray = Class.forName("java.awt.SystemTray").getMethod("getSystemTray", (Class[])null).invoke(null, (Object[])null); + trayIcon = Class.forName("java.awt.TrayIcon").getConstructor(new Class[] { + Image.class + }).newInstance(new Object[] { + icon.getImage() + }); + + Class.forName("java.awt.TrayIcon").getMethod("setImageAutoSize", new Class[] { + Boolean.TYPE + }).invoke(trayIcon, new Object[] { + new Boolean(true) + }); + + } catch(Exception e) { + Logger.notice(this, "Can't use Tray icon because: "+e.toString()); + if (e.getCause() != null) + Logger.notice(this, "Cause: "+e.getCause().toString()); + Logger.notice(this, "Probably due to a JVM without the support for the tray icons"); + systemTray = null; + trayIcon = null; + } + } + + public boolean canWork() { + return (systemTray != null); + } + + + public void setVisible(boolean v) { + if (!canWork()) + return; + + String method = (v ? "add" : "remove"); + + try { + Class.forName("java.awt.SystemTray").getMethod(method, new Class[] { + Class.forName("java.awt.TrayIcon") + }).invoke(systemTray, new Object[] { + trayIcon + }); + } catch(Exception e) { + Logger.warning(this, "Error while changing visibility of the icon : "+e.toString()); + } + } + + + public void addMouseListener(MouseListener ml) { + if (!canWork()) + return; + + try { + Class.forName("java.awt.TrayIcon").getMethod("addMouseListener", new Class[] { + MouseListener.class + }).invoke(trayIcon, new Object[] { + ml + }); + } catch(Exception e) { + Logger.warning(this, "Error while adding mouse listener : "+e.toString()); + } + } + + public void removeMouseListener(MouseListener ml) { + if (!canWork()) + return; + + try { + Class.forName("java.awt.TrayIcon").getMethod("removeMouseListener", new Class[] { + MouseListener.class + }).invoke(trayIcon, new Object[] { + ml + }); + } catch(Exception e) { + Logger.warning(this, "Error while removing mouse listener : "+e.toString()); + } + } + + public void setToolTip(String tt) { + if (!canWork()) + return; + + try { + Class.forName("java.awt.TrayIcon").getMethod("setToolTip", new Class[] { + String.class + }).invoke(trayIcon, new Object[] { + tt + }); + } catch(Exception e) { + Logger.warning(this, "Error while setting tooltip : "+e.toString()); + } + } + + + public void setPopupMenu(PopupMenu m) { + if (!canWork()) + return; + + try { + Class.forName("java.awt.TrayIcon").getMethod("setPopupMenu", new Class[] { + PopupMenu.class + }).invoke(trayIcon, new Object[] { + m + }); + } catch(Exception e) { + Logger.warning(this, "Error while setting popup menu : "+e.toString()); + } + } + +} Modified: trunk/apps/Thaw/src/thaw/gui/Table.java =================================================================== --- trunk/apps/Thaw/src/thaw/gui/Table.java 2007-06-23 20:47:40 UTC (rev 13741) +++ trunk/apps/Thaw/src/thaw/gui/Table.java 2007-06-23 21:06:34 UTC (rev 13742) @@ -290,7 +290,7 @@ TableColumn c = m.getColumn(i); String size = config.getValue(configPrefix+"_col_width_"+Integer.toString(i)); - if (size != null) { + if (size != null && !("".equals(size))) { c.setPreferredWidth(Integer.parseInt(size)); } } Modified: trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties =================================================================== --- trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties 2007-06-23 20:47:40 UTC (rev 13741) +++ trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties 2007-06-23 21:06:34 UTC (rev 13742) @@ -485,4 +485,4 @@ thaw.plugin.transferLogs.chooseFile=Choisisez un fichier thaw.plugin.transferLogs.importedKey=Clef import?e - +thaw.plugin.trayIcon.pluginName=Ic?ne systray Modified: trunk/apps/Thaw/src/thaw/i18n/thaw.properties =================================================================== --- trunk/apps/Thaw/src/thaw/i18n/thaw.properties 2007-06-23 20:47:40 UTC (rev 13741) +++ trunk/apps/Thaw/src/thaw/i18n/thaw.properties 2007-06-23 21:06:34 UTC (rev 13742) @@ -495,3 +495,6 @@ thaw.plugin.transferLogs.exportKeys=Export key list thaw.plugin.transferLogs.chooseFile=Choose a file thaw.plugin.transferLogs.importedKey=Imported key + + +thaw.plugin.trayIcon.pluginName=Tray icon Modified: trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties =================================================================== --- trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties 2007-06-23 20:47:40 UTC (rev 13741) +++ trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties 2007-06-23 21:06:34 UTC (rev 13742) @@ -485,4 +485,4 @@ thaw.plugin.transferLogs.chooseFile=Choisisez un fichier thaw.plugin.transferLogs.importedKey=Clef import\u00e9e - +thaw.plugin.trayIcon.pluginName=Ic\u00f4ne systray Added: trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java (rev 0) +++ trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java 2007-06-23 21:06:34 UTC (rev 13742) @@ -0,0 +1,88 @@ +package thaw.plugins; + +import java.awt.event.MouseListener; +import java.awt.event.MouseEvent; +import java.awt.event.WindowListener; +import java.awt.event.WindowEvent; + +import thaw.core.Core; +import thaw.core.Logger; +import thaw.core.I18n; + +import thaw.gui.SysTrayIcon; + + +public class TrayIcon implements thaw.core.Plugin, MouseListener, WindowListener { + private Core core; + private SysTrayIcon icon; + + + public TrayIcon() { + + } + + + public boolean run(Core core) { + this.core = core; + + icon = new SysTrayIcon(thaw.gui.IconBox.blueBunny); + icon.setToolTip("Thaw "+thaw.core.Main.VERSION); + icon.addMouseListener(this); + + core.getMainWindow().addWindowListener(this); + + icon.setVisible(true); + + return true; + } + + + public boolean stop() { + core.getMainWindow().addWindowListener(this); + icon.removeMouseListener(this); + + icon.setVisible(false); + + return true; + } + + public String getNameForUser() { + return I18n.getMessage("thaw.plugin.trayIcon.pluginName"); + } + + public javax.swing.ImageIcon getIcon() { + return thaw.gui.IconBox.blueBunny; + } + + public void switchMainWindowVisibility() { + boolean v = !core.getMainWindow().isVisible(); + + core.getMainWindow().setNonIconified(); + + core.getMainWindow().setVisible(v); + + core.getMainWindow().setNonIconified(); + } + + public void windowActivated(WindowEvent e) { } + public void windowClosed(WindowEvent e) { } + public void windowClosing(WindowEvent e) { } + public void windowDeactivated(WindowEvent e) { } + public void windowDeiconified(WindowEvent e) { } + + public void windowIconified(WindowEvent e) { + switchMainWindowVisibility(); + } + + public void windowOpened(WindowEvent e) { } + + + public void mouseClicked(MouseEvent e) { + switchMainWindowVisibility(); + } + + public void mouseEntered(MouseEvent e) { } + public void mouseExited(MouseEvent e) { } + public void mousePressed(MouseEvent e) { } + public void mouseReleased(MouseEvent e) { } +} From jflesch at freenetproject.org Sat Jun 23 22:53:59 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sat, 23 Jun 2007 22:53:59 +0000 (UTC) Subject: [Thaw-dev] r13743 - in trunk/apps/Thaw/src/thaw: gui i18n plugins Message-ID: <20070623225359.8425F47A23B@emu.freenetproject.org> Author: jflesch Date: 2007-06-23 22:53:59 +0000 (Sat, 23 Jun 2007) New Revision: 13743 Added: trunk/apps/Thaw/src/thaw/gui/TransferProgressBar.java Modified: trunk/apps/Thaw/src/thaw/gui/SysTrayIcon.java trunk/apps/Thaw/src/thaw/gui/Table.java trunk/apps/Thaw/src/thaw/i18n/thaw.properties trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java Log: When you right-click on the tray icon, now, it displays a dialog with all the running transfers Modified: trunk/apps/Thaw/src/thaw/gui/SysTrayIcon.java =================================================================== --- trunk/apps/Thaw/src/thaw/gui/SysTrayIcon.java 2007-06-23 21:06:34 UTC (rev 13742) +++ trunk/apps/Thaw/src/thaw/gui/SysTrayIcon.java 2007-06-23 22:53:59 UTC (rev 13743) @@ -130,4 +130,23 @@ } } + + /** + * Return the mouse position on the screen + * put here just to keep all the code >= java 1.5 in the same class + */ + public java.awt.Point getMousePosition() { + try { + Object pointerInfo = Class.forName("java.awt.MouseInfo").getMethod("getPointerInfo", (Class[])null).invoke(null, (Object[]) null); + + java.awt.Point location = (java.awt.Point)Class.forName("java.awt.PointerInfo").getMethod("getLocation", (Class[])null).invoke(pointerInfo, (Object[])null); + + return location; + } catch(Exception e) { + Logger.warning(this, "Error while setting popup menu : "+e.toString()); + return null; + } + + } + } Modified: trunk/apps/Thaw/src/thaw/gui/Table.java =================================================================== --- trunk/apps/Thaw/src/thaw/gui/Table.java 2007-06-23 21:06:34 UTC (rev 13742) +++ trunk/apps/Thaw/src/thaw/gui/Table.java 2007-06-23 22:53:59 UTC (rev 13743) @@ -168,35 +168,8 @@ if (value instanceof FCPTransferQuery) { final FCPTransferQuery query = (FCPTransferQuery)value; - final JProgressBar bar = new JProgressBar(0, 100); + final JProgressBar bar = new TransferProgressBar(query, statusInProgressBars); - int progress; - - bar.setStringPainted(true); - bar.setBorderPainted(false); - - if ((query instanceof FCPClientPut && (query.getTransferWithTheNodeProgression() < 100)) - || ((query instanceof FCPClientGet) && (query.getTransferWithTheNodeProgression() > 0))) - progress = query.getTransferWithTheNodeProgression(); - else - progress = query.getProgression(); - - bar.setValue(progress); - - if(query.isFinished() && !query.isSuccessful()) - bar.setString(I18n.getMessage("thaw.common.failed")); - - if(query.isFinished() && query.isSuccessful()) - bar.setString(I18n.getMessage("thaw.common.finished")); - - if(!query.isFinished()) { - if (statusInProgressBars) - bar.setString(query.getStatus() + - " [ "+Integer.toString(progress)+"% ]"); - else - bar.setString(Integer.toString(progress)+"%"); - } - return bar; } Added: trunk/apps/Thaw/src/thaw/gui/TransferProgressBar.java =================================================================== --- trunk/apps/Thaw/src/thaw/gui/TransferProgressBar.java (rev 0) +++ trunk/apps/Thaw/src/thaw/gui/TransferProgressBar.java 2007-06-23 22:53:59 UTC (rev 13743) @@ -0,0 +1,48 @@ +package thaw.gui; + +import javax.swing.JProgressBar; + +import thaw.fcp.FCPTransferQuery; +import thaw.fcp.FCPClientPut; +import thaw.fcp.FCPClientGet; + +import thaw.core.I18n; + +public class TransferProgressBar extends JProgressBar { + + public TransferProgressBar(FCPTransferQuery q) { + this(q, true); + } + + public TransferProgressBar(FCPTransferQuery query, boolean statusInProgressBar) { + super(0, 100); + + int progress; + + setStringPainted(true); + setBorderPainted(false); + + if ((query instanceof FCPClientPut && (query.getTransferWithTheNodeProgression() < 100)) + || ((query instanceof FCPClientGet) && (query.getTransferWithTheNodeProgression() > 0))) + progress = query.getTransferWithTheNodeProgression(); + else + progress = query.getProgression(); + + setValue(progress); + + if(query.isFinished() && !query.isSuccessful()) + setString(I18n.getMessage("thaw.common.failed")); + + if(query.isFinished() && query.isSuccessful()) + setString(I18n.getMessage("thaw.common.finished")); + + if(!query.isFinished()) { + if (statusInProgressBar) + setString(query.getStatus() + + " [ "+Integer.toString(progress)+"% ]"); + else + setString(Integer.toString(progress)+"%"); + } + } + +} Modified: trunk/apps/Thaw/src/thaw/i18n/thaw.properties =================================================================== --- trunk/apps/Thaw/src/thaw/i18n/thaw.properties 2007-06-23 21:06:34 UTC (rev 13742) +++ trunk/apps/Thaw/src/thaw/i18n/thaw.properties 2007-06-23 22:53:59 UTC (rev 13743) @@ -498,3 +498,4 @@ thaw.plugin.trayIcon.pluginName=Tray icon +thaw.plugin.trayIcon.dialogTitle=Thaw transfers Modified: trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java 2007-06-23 21:06:34 UTC (rev 13742) +++ trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java 2007-06-23 22:53:59 UTC (rev 13743) @@ -1,22 +1,49 @@ package thaw.plugins; +import java.util.Comparator; +import java.util.Collections; +import java.util.Vector; +import java.util.Iterator; + import java.awt.event.MouseListener; import java.awt.event.MouseEvent; import java.awt.event.WindowListener; import java.awt.event.WindowEvent; +import java.awt.event.ActionListener; +import java.awt.event.ActionEvent; +import javax.swing.JProgressBar; +import javax.swing.JLabel; +import javax.swing.JButton; +import javax.swing.JDialog; +import javax.swing.JScrollPane; +import javax.swing.JPanel; + +import java.awt.Toolkit; + +import java.awt.GridLayout; +import java.awt.BorderLayout; + import thaw.core.Core; import thaw.core.Logger; import thaw.core.I18n; +import thaw.fcp.FCPTransferQuery; + import thaw.gui.SysTrayIcon; +import thaw.gui.TransferProgressBar; +import thaw.gui.IconBox; - -public class TrayIcon implements thaw.core.Plugin, MouseListener, WindowListener { +public class TrayIcon implements thaw.core.Plugin, MouseListener, WindowListener, ActionListener { private Core core; private SysTrayIcon icon; + private JDialog dialog; + private JButton closeDialog; + public final static int DIALOG_X = 300; + public final static int DIALOG_Y = 500; + public TrayIcon() { } @@ -64,6 +91,150 @@ core.getMainWindow().setNonIconified(); } + + private class QueryComparator implements Comparator { + public QueryComparator() { + + } + + public int compare(final Object o1, final Object o2) { + int result = 0; + + if(!(o1 instanceof FCPTransferQuery) + || !(o2 instanceof FCPTransferQuery)) + return 0; + + final FCPTransferQuery q1 = (FCPTransferQuery)o1; + final FCPTransferQuery q2 = (FCPTransferQuery)o2; + + + if((q1.getProgression() <= 0) + && (q2.getProgression() <= 0)) { + if(q1.isRunning() && !q2.isRunning()) + return 1; + + if(q2.isRunning() && !q1.isRunning()) + return -1; + } + + result = (new Integer(q1.getProgression())).compareTo(new Integer(q2.getProgression())); + + return result; + } + + + public boolean equals(final Object obj) { + return true; + } + + public int hashCode(){ + return super.hashCode(); + } + } + + + private JPanel getTransferPanel(FCPTransferQuery q) { + JPanel p = new JPanel(new GridLayout(2, 1)); + + String txt = q.getFilename(); + + if (txt == null) + txt = q.getFileKey(); + + if (txt == null) + txt = "?"; + + javax.swing.ImageIcon icon; + + if (q.getQueryType() == 2) + icon = IconBox.minInsertions; + else + icon = IconBox.minDownloads; + + JLabel l = new JLabel(txt); + l.setIcon(icon); + + p.add(l); + p.add(new TransferProgressBar(q)); + + return p; + } + + + private void realDisplayFrame(int x, int y) { + dialog = new JDialog((java.awt.Frame)null, + I18n.getMessage("thaw.plugin.trayIcon.dialogTitle")); + dialog.getContentPane().setLayout(new BorderLayout(5, 5)); + dialog.setUndecorated(true); + dialog.setResizable(true); + + JPanel panel = new JPanel(new BorderLayout(10, 10)); + panel.add(new JLabel(" "), BorderLayout.CENTER); + + Vector queries = core.getQueueManager().getRunningQueue(); + + JPanel north; + + Vector newQueries = new Vector(); + + synchronized(queries) { + for (Iterator it = queries.iterator(); + it.hasNext();) { + newQueries.add(it.next()); + } + } + + Collections.sort(newQueries, new QueryComparator()); + + + north = new JPanel(new GridLayout(queries.size(), 1, 10, 10)); + + for (Iterator it = newQueries.iterator(); + it.hasNext();) { + north.add(getTransferPanel((FCPTransferQuery)it.next())); + } + + + JPanel northNorth = new JPanel(new BorderLayout()); + northNorth.add(new JLabel(" "), BorderLayout.CENTER); + + closeDialog = new JButton(IconBox.minClose); + closeDialog.addActionListener(this); + northNorth.add(closeDialog, BorderLayout.EAST); + + dialog.getContentPane().add(northNorth, BorderLayout.NORTH); + dialog.getContentPane().add(panel, BorderLayout.CENTER); + + panel.add(north, + BorderLayout.NORTH); + + dialog.getContentPane().add(new JScrollPane(panel, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED), + BorderLayout.CENTER); + + dialog.setLocation(x, y); + + dialog.setSize(DIALOG_X, DIALOG_Y); + dialog.setPreferredSize(new java.awt.Dimension(DIALOG_X, DIALOG_Y)); + dialog.validate(); + + dialog.setVisible(true); + } + + public void displayFrame(int x, int y) { + java.awt.Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); + int screen_x = (int)d.getWidth(); + int screen_y = (int)d.getHeight(); + + if (x+DIALOG_X >= screen_x) + x -= DIALOG_X; + if (y+DIALOG_Y >= screen_y) + y -= DIALOG_Y; + + realDisplayFrame(x, y); + } + public void windowActivated(WindowEvent e) { } public void windowClosed(WindowEvent e) { } public void windowClosing(WindowEvent e) { } @@ -78,11 +249,33 @@ public void mouseClicked(MouseEvent e) { - switchMainWindowVisibility(); + if (dialog != null) { + dialog.setVisible(false); + dialog = null; + return; + } + + if (e.getButton() == MouseEvent.BUTTON1) + switchMainWindowVisibility(); + else if (e.getButton() == MouseEvent.BUTTON3) { + if (dialog == null) { + java.awt.Point p = icon.getMousePosition(); + displayFrame(((int)p.getX()), ((int)p.getY())); + } + } } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } + + public void actionPerformed(ActionEvent e) { + if (e.getSource() == closeDialog) { + if (dialog != null) { + dialog.setVisible(false); + dialog = null; + } + } + } } From jflesch at freenetproject.org Sat Jun 23 23:23:29 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sat, 23 Jun 2007 23:23:29 +0000 (UTC) Subject: [Thaw-dev] r13744 - in trunk/apps/Thaw/src/thaw: core plugins Message-ID: <20070623232329.6004A47A254@emu.freenetproject.org> Author: jflesch Date: 2007-06-23 23:23:28 +0000 (Sat, 23 Jun 2007) New Revision: 13744 Modified: trunk/apps/Thaw/src/thaw/core/MainWindow.java trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java Log: Just to simplify a little bit the code used to 'reduce' the main window to the systray Modified: trunk/apps/Thaw/src/thaw/core/MainWindow.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/MainWindow.java 2007-06-23 22:53:59 UTC (rev 13743) +++ trunk/apps/Thaw/src/thaw/core/MainWindow.java 2007-06-23 23:23:28 UTC (rev 13744) @@ -236,11 +236,19 @@ } public void setIconified() { - mainWindow.setExtendedState(JFrame.ICONIFIED); + int state = mainWindow.getExtendedState(); + + state |= JFrame.ICONIFIED; + + mainWindow.setExtendedState(state); } public void setNonIconified() { - mainWindow.setExtendedState(JFrame.NORMAL); + int state = mainWindow.getExtendedState(); + + state &= ~JFrame.ICONIFIED; + + mainWindow.setExtendedState(state); } Modified: trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java 2007-06-23 22:53:59 UTC (rev 13743) +++ trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java 2007-06-23 23:23:28 UTC (rev 13744) @@ -84,11 +84,7 @@ public void switchMainWindowVisibility() { boolean v = !core.getMainWindow().isVisible(); - core.getMainWindow().setNonIconified(); - core.getMainWindow().setVisible(v); - - core.getMainWindow().setNonIconified(); } From jflesch at freenetproject.org Sat Jun 23 23:27:03 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sat, 23 Jun 2007 23:27:03 +0000 (UTC) Subject: [Thaw-dev] r13745 - trunk/apps/Thaw/src/thaw/plugins Message-ID: <20070623232703.5768747A349@emu.freenetproject.org> Author: jflesch Date: 2007-06-23 23:27:03 +0000 (Sat, 23 Jun 2007) New Revision: 13745 Modified: trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java Log: Fix: JDialog.setPreferedSize() doesn't seem to exist in java 1.4 Modified: trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java 2007-06-23 23:23:28 UTC (rev 13744) +++ trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java 2007-06-23 23:27:03 UTC (rev 13745) @@ -212,7 +212,6 @@ dialog.setLocation(x, y); dialog.setSize(DIALOG_X, DIALOG_Y); - dialog.setPreferredSize(new java.awt.Dimension(DIALOG_X, DIALOG_Y)); dialog.validate(); dialog.setVisible(true); From jflesch at freenetproject.org Sat Jun 23 23:45:32 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sat, 23 Jun 2007 23:45:32 +0000 (UTC) Subject: [Thaw-dev] r13746 - trunk/apps/Thaw/src/thaw/plugins Message-ID: <20070623234532.C15E9479FA4@emu.freenetproject.org> Author: jflesch Date: 2007-06-23 23:45:32 +0000 (Sat, 23 Jun 2007) New Revision: 13746 Modified: trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java Log: Avoid using WindowListener.windowIconified() : Swing call it even when I just go to another desktop Modified: trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java 2007-06-23 23:27:03 UTC (rev 13745) +++ trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java 2007-06-23 23:45:32 UTC (rev 13746) @@ -82,6 +82,8 @@ } public void switchMainWindowVisibility() { + Logger.info(this, "Changing main window visibility"); + boolean v = !core.getMainWindow().isVisible(); core.getMainWindow().setVisible(v); @@ -230,14 +232,15 @@ realDisplayFrame(x, y); } + public void windowActivated(WindowEvent e) { } public void windowClosed(WindowEvent e) { } public void windowClosing(WindowEvent e) { } public void windowDeactivated(WindowEvent e) { } - public void windowDeiconified(WindowEvent e) { } + public void windowDeiconified(WindowEvent e) { + } public void windowIconified(WindowEvent e) { - switchMainWindowVisibility(); } public void windowOpened(WindowEvent e) { } From jflesch at freenetproject.org Sun Jun 24 00:09:58 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sun, 24 Jun 2007 00:09:58 +0000 (UTC) Subject: [Thaw-dev] r13747 - in trunk/apps/Thaw/src/thaw: gui plugins Message-ID: <20070624000958.34B574796C6@emu.freenetproject.org> Author: jflesch Date: 2007-06-24 00:09:56 +0000 (Sun, 24 Jun 2007) New Revision: 13747 Modified: trunk/apps/Thaw/src/thaw/gui/TransferProgressBar.java trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java Log: Refresh progressvily the progress bars inside the panel attached to the systray icon Modified: trunk/apps/Thaw/src/thaw/gui/TransferProgressBar.java =================================================================== --- trunk/apps/Thaw/src/thaw/gui/TransferProgressBar.java 2007-06-23 23:45:32 UTC (rev 13746) +++ trunk/apps/Thaw/src/thaw/gui/TransferProgressBar.java 2007-06-24 00:09:56 UTC (rev 13747) @@ -9,6 +9,8 @@ import thaw.core.I18n; public class TransferProgressBar extends JProgressBar { + private FCPTransferQuery query; + private boolean statusInProgressBar; public TransferProgressBar(FCPTransferQuery q) { this(q, true); @@ -16,7 +18,14 @@ public TransferProgressBar(FCPTransferQuery query, boolean statusInProgressBar) { super(0, 100); + this.query = query; + this.statusInProgressBar = statusInProgressBar; + refresh(); + } + + public void refresh() { + int progress; setStringPainted(true); @@ -44,5 +53,4 @@ setString(Integer.toString(progress)+"%"); } } - } Modified: trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java 2007-06-23 23:45:32 UTC (rev 13746) +++ trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java 2007-06-24 00:09:56 UTC (rev 13747) @@ -130,7 +130,9 @@ } } + private Vector progressBars = null; + private JPanel getTransferPanel(FCPTransferQuery q) { JPanel p = new JPanel(new GridLayout(2, 1)); @@ -153,8 +155,11 @@ l.setIcon(icon); p.add(l); - p.add(new TransferProgressBar(q)); + TransferProgressBar bar = new TransferProgressBar(q); + progressBars.add(bar); + p.add(bar); + return p; } @@ -187,6 +192,8 @@ north = new JPanel(new GridLayout(queries.size(), 1, 10, 10)); + progressBars = new Vector(); + for (Iterator it = newQueries.iterator(); it.hasNext();) { north.add(getTransferPanel((FCPTransferQuery)it.next())); @@ -219,6 +226,46 @@ dialog.setVisible(true); } + + private class ProgressBarRefresher implements Runnable { + private Vector bars; + private boolean stop; + + public ProgressBarRefresher(Vector bars) { + this.bars = bars; + stop = false; + } + + public void run() { + while(!stop) { + + for (Iterator it = bars.iterator(); + it.hasNext();) { + + try { + Thread.sleep(200); + } catch(InterruptedException e) { + /* \_o< */ + } + + if (stop) + break; + + TransferProgressBar bar = (TransferProgressBar)it.next(); + bar.refresh(); + } + } + } + + public void stop() { + stop = true; + } + } + + + private ProgressBarRefresher refresher = null; + + public void displayFrame(int x, int y) { java.awt.Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); int screen_x = (int)d.getWidth(); @@ -230,9 +277,20 @@ y -= DIALOG_Y; realDisplayFrame(x, y); + + /* progressBars vector is generated at the same time than the panels */ + refresher = new ProgressBarRefresher(progressBars); } + public void hideFrame() { + dialog.setVisible(false); + dialog = null; + progressBars = null; + refresher.stop(); + refresher = null; + } + public void windowActivated(WindowEvent e) { } public void windowClosed(WindowEvent e) { } public void windowClosing(WindowEvent e) { } @@ -248,8 +306,7 @@ public void mouseClicked(MouseEvent e) { if (dialog != null) { - dialog.setVisible(false); - dialog = null; + hideFrame(); return; } @@ -271,8 +328,7 @@ public void actionPerformed(ActionEvent e) { if (e.getSource() == closeDialog) { if (dialog != null) { - dialog.setVisible(false); - dialog = null; + hideFrame(); } } } From jflesch at freenetproject.org Sun Jun 24 00:15:10 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sun, 24 Jun 2007 00:15:10 +0000 (UTC) Subject: [Thaw-dev] r13748 - in trunk/apps/Thaw/src/thaw: gui plugins Message-ID: <20070624001510.0C44647A07F@emu.freenetproject.org> Author: jflesch Date: 2007-06-24 00:15:07 +0000 (Sun, 24 Jun 2007) New Revision: 13748 Modified: trunk/apps/Thaw/src/thaw/gui/TransferProgressBar.java trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java Log: Draw the border around the progress bars in the panel attached to the tray icon Modified: trunk/apps/Thaw/src/thaw/gui/TransferProgressBar.java =================================================================== --- trunk/apps/Thaw/src/thaw/gui/TransferProgressBar.java 2007-06-24 00:09:56 UTC (rev 13747) +++ trunk/apps/Thaw/src/thaw/gui/TransferProgressBar.java 2007-06-24 00:15:07 UTC (rev 13748) @@ -11,25 +11,32 @@ public class TransferProgressBar extends JProgressBar { private FCPTransferQuery query; private boolean statusInProgressBar; + private boolean withBorder; public TransferProgressBar(FCPTransferQuery q) { this(q, true); } - public TransferProgressBar(FCPTransferQuery query, boolean statusInProgressBar) { + public TransferProgressBar(FCPTransferQuery query, boolean statusInProgressBar, + boolean withBorder) { super(0, 100); this.query = query; this.statusInProgressBar = statusInProgressBar; + this.withBorder = withBorder; refresh(); } + public TransferProgressBar(FCPTransferQuery query, boolean statusInProgressBar) { + this(query, statusInProgressBar, false); + } + public void refresh() { int progress; setStringPainted(true); - setBorderPainted(false); + setBorderPainted(withBorder); if ((query instanceof FCPClientPut && (query.getTransferWithTheNodeProgression() < 100)) || ((query instanceof FCPClientGet) && (query.getTransferWithTheNodeProgression() > 0))) Modified: trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java 2007-06-24 00:09:56 UTC (rev 13747) +++ trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java 2007-06-24 00:15:07 UTC (rev 13748) @@ -156,7 +156,7 @@ p.add(l); - TransferProgressBar bar = new TransferProgressBar(q); + TransferProgressBar bar = new TransferProgressBar(q, true, true); progressBars.add(bar); p.add(bar); From jflesch at freenetproject.org Sun Jun 24 10:23:44 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sun, 24 Jun 2007 10:23:44 +0000 (UTC) Subject: [Thaw-dev] r13749 - trunk/apps/Thaw/src/thaw/plugins Message-ID: <20070624102344.478ED479F1D@emu.freenetproject.org> Author: jflesch Date: 2007-06-24 10:23:43 +0000 (Sun, 24 Jun 2007) New Revision: 13749 Modified: trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java Log: Fix: Make the main window visible again if we stop the tray icon plugin while the main window was 'reduced' to the tray icon Modified: trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java 2007-06-24 00:15:07 UTC (rev 13748) +++ trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java 2007-06-24 10:23:43 UTC (rev 13749) @@ -70,6 +70,11 @@ icon.setVisible(false); + if (!core.getMainWindow().isVisible()) { + Logger.info(this, "Making main window visible again"); + core.getMainWindow().setVisible(true); + } + return true; } @@ -115,7 +120,7 @@ return -1; } - result = (new Integer(q1.getProgression())).compareTo(new Integer(q2.getProgression())); + result = -1 * (new Integer(q1.getProgression())).compareTo(new Integer(q2.getProgression())); return result; } From jflesch at freenetproject.org Mon Jun 25 22:51:06 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Mon, 25 Jun 2007 22:51:06 +0000 (UTC) Subject: [Thaw-dev] r13755 - trunk/apps/Thaw/src/thaw/plugins Message-ID: <20070625225106.288C3479FBC@emu.freenetproject.org> Author: jflesch Date: 2007-06-25 22:51:05 +0000 (Mon, 25 Jun 2007) New Revision: 13755 Modified: trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java Log: Woops, forgot to start the thread refreshing the panel attached to the tray icon Modified: trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java 2007-06-25 20:44:20 UTC (rev 13754) +++ trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java 2007-06-25 22:51:05 UTC (rev 13755) @@ -229,6 +229,7 @@ dialog.validate(); dialog.setVisible(true); + dialog.toFront(); } @@ -285,6 +286,8 @@ /* progressBars vector is generated at the same time than the panels */ refresher = new ProgressBarRefresher(progressBars); + Thread th = new Thread(refresher); + th.start(); } public void hideFrame() { From jflesch at freenetproject.org Tue Jun 26 18:02:03 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Tue, 26 Jun 2007 18:02:03 +0000 (UTC) Subject: [Thaw-dev] r13768 - trunk/apps/Thaw/src/thaw/plugins/peerMonitor Message-ID: <20070626180203.9DCBF479936@emu.freenetproject.org> Author: jflesch Date: 2007-06-26 18:02:03 +0000 (Tue, 26 Jun 2007) New Revision: 13768 Modified: trunk/apps/Thaw/src/thaw/plugins/peerMonitor/PeerHelper.java Log: Add a JScrollPane in the dialog used to add a peer Modified: trunk/apps/Thaw/src/thaw/plugins/peerMonitor/PeerHelper.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/peerMonitor/PeerHelper.java 2007-06-26 17:55:59 UTC (rev 13767) +++ trunk/apps/Thaw/src/thaw/plugins/peerMonitor/PeerHelper.java 2007-06-26 18:02:03 UTC (rev 13768) @@ -10,6 +10,7 @@ import javax.swing.JTextField; import javax.swing.JButton; import javax.swing.JOptionPane; +import javax.swing.JScrollPane; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; @@ -76,7 +77,7 @@ JLabel label = new JLabel(I18n.getMessage("thaw.plugin.peerMonitor.enterRef")); centerPanel.add(label, BorderLayout.NORTH); - centerPanel.add(refArea, BorderLayout.CENTER); + centerPanel.add(new JScrollPane(refArea), BorderLayout.CENTER); JPanel southPanel = new JPanel(new GridLayout(2, 1)); From jflesch at freenetproject.org Wed Jun 27 14:53:29 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Wed, 27 Jun 2007 14:53:29 +0000 (UTC) Subject: [Thaw-dev] r13780 - in trunk/apps/Thaw/src/thaw/plugins: . index Message-ID: <20070627145329.A785E4798FA@emu.freenetproject.org> Author: jflesch Date: 2007-06-27 14:53:29 +0000 (Wed, 27 Jun 2007) New Revision: 13780 Modified: trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java Log: Add a JScrollPane around the text area allowing to add specific keys to an index Modified: trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java 2007-06-27 13:46:52 UTC (rev 13779) +++ trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java 2007-06-27 14:53:29 UTC (rev 13780) @@ -92,6 +92,9 @@ boolean v = !core.getMainWindow().isVisible(); core.getMainWindow().setVisible(v); + + if (v) + core.getMainWindow().getMainFrame().toFront(); } Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java 2007-06-27 13:46:52 UTC (rev 13779) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java 2007-06-27 14:53:29 UTC (rev 13780) @@ -1367,7 +1367,7 @@ frame.getContentPane().setLayout(new BorderLayout()); frame.getContentPane().add(header, BorderLayout.NORTH); - frame.getContentPane().add(textArea, BorderLayout.CENTER); + frame.getContentPane().add(new JScrollPane(textArea), BorderLayout.CENTER); buttonPanel.setLayout(new GridLayout(1, 2)); buttonPanel.add(okButton);