From nextgens at freenetproject.org Sat Mar 3 22:19:46 2007 From: nextgens at freenetproject.org (nextgens at freenetproject.org) Date: Sat, 3 Mar 2007 22:19:46 +0000 (UTC) Subject: [Thaw-dev] r11948 - in trunk/apps/Thaw/src/thaw: core gui plugins plugins/index Message-ID: <20070303221946.953819C24D@emu.freenetproject.org> Author: nextgens Date: 2007-03-03 22:19:45 +0000 (Sat, 03 Mar 2007) New Revision: 11948 Modified: trunk/apps/Thaw/src/thaw/core/Core.java trunk/apps/Thaw/src/thaw/core/PluginConfigPanel.java trunk/apps/Thaw/src/thaw/gui/JDragTree.java trunk/apps/Thaw/src/thaw/plugins/IndexBrowser.java trunk/apps/Thaw/src/thaw/plugins/LogConsole.java trunk/apps/Thaw/src/thaw/plugins/index/DatabaseManager.java trunk/apps/Thaw/src/thaw/plugins/index/File.java trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java trunk/apps/Thaw/src/thaw/plugins/index/Index.java trunk/apps/Thaw/src/thaw/plugins/index/IndexBrowserPanel.java trunk/apps/Thaw/src/thaw/plugins/index/IndexConfigPanel.java trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java trunk/apps/Thaw/src/thaw/plugins/index/IndexProgressBar.java trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java trunk/apps/Thaw/src/thaw/plugins/index/IndexTreeNode.java trunk/apps/Thaw/src/thaw/plugins/index/Link.java trunk/apps/Thaw/src/thaw/plugins/index/LinkManagementHelper.java trunk/apps/Thaw/src/thaw/plugins/index/LinkTable.java trunk/apps/Thaw/src/thaw/plugins/index/SearchBar.java trunk/apps/Thaw/src/thaw/plugins/index/SearchResult.java trunk/apps/Thaw/src/thaw/plugins/index/Tables.java trunk/apps/Thaw/src/thaw/plugins/index/UnknownIndexList.java Log: Thaw: remove unused imports Modified: trunk/apps/Thaw/src/thaw/core/Core.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/Core.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/core/Core.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -5,18 +5,8 @@ import javax.swing.JDialog; import javax.swing.JFrame; -import javax.swing.JLabel; import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.SwingConstants; import javax.swing.UIManager; -import javax.swing.WindowConstants; -import javax.swing.JButton; -import java.awt.BorderLayout; - -import java.awt.event.ActionListener; -import java.awt.event.ActionEvent; - import thaw.fcp.FCPClientHello; import thaw.fcp.FCPConnection; import thaw.fcp.FCPQueryManager; @@ -501,7 +491,7 @@ public void reconnect() { if (reconnectionManager == null) { reconnectionManager = new ReconnectionManager(); - Thread th = new Thread(reconnectionManager); + final Thread th = new Thread(reconnectionManager); th.start(); } else { Logger.warning(this, "Already trying to reconnect !"); Modified: trunk/apps/Thaw/src/thaw/core/PluginConfigPanel.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/PluginConfigPanel.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/core/PluginConfigPanel.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -1,6 +1,5 @@ package thaw.core; -import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -10,12 +9,7 @@ import java.util.Vector; import java.util.LinkedHashMap; -import javax.swing.JButton; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.JOptionPane; import javax.swing.JPanel; -import javax.swing.JTextField; import javax.swing.JCheckBox; /** Modified: trunk/apps/Thaw/src/thaw/gui/JDragTree.java =================================================================== --- trunk/apps/Thaw/src/thaw/gui/JDragTree.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/gui/JDragTree.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -56,7 +56,6 @@ import javax.swing.Icon; import javax.swing.JLabel; import javax.swing.JTree; -import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.MutableTreeNode; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeModel; Modified: trunk/apps/Thaw/src/thaw/plugins/IndexBrowser.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/IndexBrowser.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/plugins/IndexBrowser.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -1,12 +1,7 @@ package thaw.plugins; -import java.util.Iterator; import java.util.Vector; -import java.awt.BorderLayout; -import javax.swing.JPanel; - -import javax.swing.JButton; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; @@ -17,7 +12,6 @@ import thaw.core.Plugin; import thaw.plugins.index.IndexBrowserPanel; import thaw.plugins.index.IndexManagementHelper; -import thaw.plugins.index.IndexTreeNode; import thaw.plugins.index.DatabaseManager; import thaw.plugins.index.IndexConfigPanel; import thaw.plugins.index.AutoRefresh; Modified: trunk/apps/Thaw/src/thaw/plugins/LogConsole.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/LogConsole.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/plugins/LogConsole.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -1,7 +1,6 @@ package thaw.plugins; import java.awt.BorderLayout; -import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; @@ -9,12 +8,9 @@ import javax.swing.JButton; import javax.swing.JFileChooser; -import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; -import javax.swing.JTextField; - import thaw.core.Core; import thaw.core.FileChooser; import thaw.core.I18n; Modified: trunk/apps/Thaw/src/thaw/plugins/index/DatabaseManager.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/DatabaseManager.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/plugins/index/DatabaseManager.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -4,7 +4,6 @@ import java.io.FileOutputStream; import java.io.FileInputStream; -import javax.swing.tree.DefaultMutableTreeNode; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.OutputKeys; @@ -15,9 +14,6 @@ import org.w3c.dom.DOMImplementation; import org.w3c.dom.Document; import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.w3c.dom.Text; import java.util.Vector; import java.util.Iterator; Modified: trunk/apps/Thaw/src/thaw/plugins/index/File.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/File.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/plugins/index/File.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -3,17 +3,11 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -import java.sql.Types; -import java.util.Iterator; -import java.util.Vector; import java.util.Observer; import java.util.Observable; import org.w3c.dom.Document; import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - import thaw.core.FreenetURIHelper; import thaw.core.Logger; import thaw.fcp.FCPClientGet; @@ -21,7 +15,6 @@ import thaw.fcp.FCPQueueManager; import thaw.fcp.FCPTransferQuery; import thaw.plugins.Hsqldb; -import thaw.plugins.insertPlugin.DefaultMIMETypes; public class File implements Observer { private Hsqldb db = null; Modified: trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -9,7 +9,6 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.Iterator; -import java.util.Observable; import java.util.Vector; import java.awt.Color; @@ -24,11 +23,7 @@ import javax.swing.event.TableModelEvent; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.JTableHeader; -import javax.swing.tree.TreePath; - import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import javax.swing.event.TableModelEvent; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; Modified: trunk/apps/Thaw/src/thaw/plugins/index/Index.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/Index.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/plugins/index/Index.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -10,14 +10,12 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Types; -import java.util.Iterator; import java.util.Vector; import java.util.Enumeration; import java.util.Observer; import java.util.Observable; import javax.swing.JOptionPane; -import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.MutableTreeNode; import javax.swing.tree.TreeNode; import javax.xml.parsers.DocumentBuilder; @@ -40,7 +38,6 @@ import thaw.core.I18n; import thaw.fcp.FCPClientGet; import thaw.fcp.FCPClientPut; -import thaw.fcp.FCPGenerateSSK; import thaw.fcp.FCPQueueManager; import thaw.fcp.FCPTransferQuery; import thaw.plugins.Hsqldb; Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexBrowserPanel.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexBrowserPanel.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexBrowserPanel.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -1,13 +1,8 @@ package thaw.plugins.index; import java.awt.BorderLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - import javax.swing.JPanel; import javax.swing.JSplitPane; -import javax.swing.tree.DefaultMutableTreeNode; - import thaw.core.Config; import thaw.core.I18n; import thaw.core.Logger; Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexConfigPanel.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexConfigPanel.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexConfigPanel.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -1,7 +1,6 @@ package thaw.plugins.index; import javax.swing.JPanel; -import java.awt.BorderLayout; import java.awt.GridLayout; import javax.swing.JLabel; import javax.swing.JTextField; Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -1,6 +1,5 @@ package thaw.plugins.index; -import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; @@ -9,9 +8,6 @@ import java.util.Iterator; import java.util.Vector; import java.util.Observer; -import java.util.Observable; - -import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.MutableTreeNode; import javax.swing.tree.TreeNode; Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -31,17 +31,13 @@ import javax.swing.JTextField; import javax.swing.tree.TreeNode; import javax.swing.tree.MutableTreeNode; -import javax.swing.tree.DefaultMutableTreeNode; - import java.sql.*; import thaw.core.FileChooser; import thaw.core.FreenetURIHelper; import thaw.core.I18n; import thaw.core.Logger; -import thaw.core.MainWindow; import thaw.core.Config; -import thaw.fcp.FCPClientPut; import thaw.fcp.FCPQueueManager; import thaw.fcp.FCPTransferQuery; import thaw.fcp.FCPGenerateSSK; @@ -224,7 +220,7 @@ sskGenerator.getPublicKey(), 0, sskGenerator.getPrivateKey(), name, false); - ((MutableTreeNode)getTarget()).insert(((MutableTreeNode)index), 0); + ((MutableTreeNode)getTarget()).insert((index), 0); getIndexBrowserPanel().getIndexTree().refresh(getTarget()); @@ -594,7 +590,7 @@ st.execute(); - index = new Index(db, id, (TreeNode)parent, + index = new Index(db, id, parent, publicKey, revision, privateKey, name, false); @@ -608,7 +604,7 @@ if (load) download(queueManager, indexBrowser, index); - ((MutableTreeNode)parent).insert(((MutableTreeNode)index), 0); + ((MutableTreeNode)parent).insert((index), 0); indexBrowser.getIndexTree().refresh(parent); @@ -683,7 +679,7 @@ } } - ((MutableTreeNode)target).insert(((MutableTreeNode)folder), 0); + ((MutableTreeNode)target).insert((folder), 0); indexBrowser.getIndexTree().refresh(target); return folder; Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexProgressBar.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexProgressBar.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexProgressBar.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -2,14 +2,7 @@ import javax.swing.JProgressBar; -import java.util.Vector; -import java.util.Iterator; - -import java.util.Observable; -import java.util.Observer; - import thaw.core.Logger; -import thaw.fcp.FCPTransferQuery; public class IndexProgressBar { Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -12,8 +12,6 @@ import java.sql.ResultSet; import java.util.Iterator; import java.util.Vector; -import java.util.Hashtable; - import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.JPanel; @@ -32,11 +30,9 @@ import thaw.core.I18n; import thaw.core.IconBox; import thaw.core.Logger; -import thaw.core.MainWindow; import thaw.core.FreenetURIHelper; import thaw.fcp.FCPQueueManager; import thaw.gui.JDragTree; -import thaw.plugins.Hsqldb; import thaw.plugins.ToolbarModifier; /** @@ -534,7 +530,7 @@ } public void redraw(TreePath path) { - Object[] nodes = (Object[])(path.getPath()); + Object[] nodes = (path.getPath()); for (int i = 0 ; i < nodes.length ; i++) { IndexTreeNode node = (IndexTreeNode)nodes[i]; Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexTreeNode.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexTreeNode.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexTreeNode.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -1,11 +1,7 @@ package thaw.plugins.index; -import java.util.Vector; - -import java.util.Observable; import java.util.Observer; -import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.MutableTreeNode; import org.w3c.dom.Element; import org.w3c.dom.Document; Modified: trunk/apps/Thaw/src/thaw/plugins/index/Link.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/Link.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/plugins/index/Link.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -3,8 +3,6 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -import java.sql.Types; - import org.w3c.dom.Document; import org.w3c.dom.Element; Modified: trunk/apps/Thaw/src/thaw/plugins/index/LinkManagementHelper.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/LinkManagementHelper.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/plugins/index/LinkManagementHelper.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -11,7 +11,6 @@ import javax.swing.AbstractButton; import thaw.fcp.FCPQueueManager; -import thaw.plugins.Hsqldb; public class LinkManagementHelper { public interface LinkAction extends ActionListener { Modified: trunk/apps/Thaw/src/thaw/plugins/index/LinkTable.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/LinkTable.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/plugins/index/LinkTable.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -8,7 +8,6 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.Iterator; -import java.util.Observable; import java.util.Vector; import java.awt.Color; import java.awt.Component; @@ -22,14 +21,10 @@ import javax.swing.JButton; import javax.swing.event.TableModelEvent; import javax.swing.table.DefaultTableCellRenderer; -import javax.swing.tree.TreePath; - import thaw.core.I18n; -import thaw.core.Logger; import thaw.core.IconBox; import thaw.plugins.ToolbarModifier; import thaw.fcp.FCPQueueManager; -import thaw.plugins.Hsqldb; public class LinkTable implements MouseListener, KeyListener, ActionListener { Modified: trunk/apps/Thaw/src/thaw/plugins/index/SearchBar.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/SearchBar.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/plugins/index/SearchBar.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -10,8 +10,6 @@ import javax.swing.JTextField; import thaw.core.I18n; -import thaw.fcp.FCPQueueManager; -import thaw.plugins.Hsqldb; public class SearchBar implements ActionListener { private JPanel panel; Modified: trunk/apps/Thaw/src/thaw/plugins/index/SearchResult.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/SearchResult.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/plugins/index/SearchResult.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -1,16 +1,11 @@ package thaw.plugins.index; -import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.Iterator; -import java.util.Observable; -import java.util.Observer; import java.util.Vector; import thaw.core.Logger; -import thaw.fcp.FCPQueueManager; import thaw.plugins.Hsqldb; public class SearchResult implements FileAndLinkList { Modified: trunk/apps/Thaw/src/thaw/plugins/index/Tables.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/Tables.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/plugins/index/Tables.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -7,7 +7,6 @@ import thaw.core.Config; import thaw.fcp.FCPQueueManager; -import thaw.plugins.Hsqldb; /** * Contains a FileTable, a LinkTable, and a SearchBar Modified: trunk/apps/Thaw/src/thaw/plugins/index/UnknownIndexList.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/UnknownIndexList.java 2007-03-03 19:19:41 UTC (rev 11947) +++ trunk/apps/Thaw/src/thaw/plugins/index/UnknownIndexList.java 2007-03-03 22:19:45 UTC (rev 11948) @@ -18,7 +18,6 @@ import thaw.core.IconBox; import thaw.plugins.ToolbarModifier; import thaw.fcp.FCPQueueManager; -import thaw.plugins.Hsqldb; public class UnknownIndexList implements MouseListener { public final static int MAX_INDEXES = 50; From jflesch at freenetproject.org Sat Mar 3 23:34:27 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sat, 3 Mar 2007 23:34:27 +0000 (UTC) Subject: [Thaw-dev] r11949 - in trunk/apps/Thaw/src/thaw: i18n plugins/index Message-ID: <20070303233427.8A83E9C251@emu.freenetproject.org> Author: jflesch Date: 2007-03-03 23:34:26 +0000 (Sat, 03 Mar 2007) New Revision: 11949 Modified: trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties trunk/apps/Thaw/src/thaw/plugins/index/File.java trunk/apps/Thaw/src/thaw/plugins/index/SearchResult.java Log: Fix searching (bug #1105) Modified: trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties =================================================================== --- trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties 2007-03-03 22:19:45 UTC (rev 11948) +++ trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties 2007-03-03 23:34:26 UTC (rev 11949) @@ -140,7 +140,7 @@ thaw.plugin.fetch.pasteFromClipboard=Coller depuis le presse-papier thaw.plugin.fetch.chooseADestination=Vous devez choisir une destination -thaw.plugin.console.console=Console +thaw.plugin.console.console=Console de log thaw.plugin.console.saveToFile=Sauvegarder les logs dans un fichier thaw.plugin.console.maxSize=Taille m?moire maximum utilis?e pour m?moriser les logs (en octets) Modified: trunk/apps/Thaw/src/thaw/plugins/index/File.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/File.java 2007-03-03 22:19:45 UTC (rev 11948) +++ trunk/apps/Thaw/src/thaw/plugins/index/File.java 2007-03-03 23:34:26 UTC (rev 11949) @@ -356,7 +356,7 @@ * Note: Do a SQL requests each time */ public boolean isModifiable() { - if (parent != null) { + if (parent == null) { Logger.debug(this, "isModifiable() => new Index().isModifiable()"); return (new Index(db, parentId)).isModifiable(); } Modified: trunk/apps/Thaw/src/thaw/plugins/index/SearchResult.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/SearchResult.java 2007-03-03 22:19:45 UTC (rev 11948) +++ trunk/apps/Thaw/src/thaw/plugins/index/SearchResult.java 2007-03-03 23:34:26 UTC (rev 11949) @@ -41,7 +41,7 @@ if (where == null) { where = " LOWER("+column+") LIKE ?"; } else { - where = " AND LOWER("+column+") LIKE ?"; + where+=" AND LOWER("+column+") LIKE ?"; } } From jflesch at freenetproject.org Sat Mar 3 23:42:55 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Sat, 3 Mar 2007 23:42:55 +0000 (UTC) Subject: [Thaw-dev] r11951 - trunk/apps/Thaw/src/thaw/plugins/index Message-ID: <20070303234255.711D59BB49@emu.freenetproject.org> Author: jflesch Date: 2007-03-03 23:42:55 +0000 (Sat, 03 Mar 2007) New Revision: 11951 Modified: trunk/apps/Thaw/src/thaw/plugins/index/AutoRefresh.java Log: Don't auto-refresh indexes with a private key and a revision == 0 (bug #1138) Modified: trunk/apps/Thaw/src/thaw/plugins/index/AutoRefresh.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/AutoRefresh.java 2007-03-03 23:42:31 UTC (rev 11950) +++ trunk/apps/Thaw/src/thaw/plugins/index/AutoRefresh.java 2007-03-03 23:42:55 UTC (rev 11951) @@ -106,20 +106,26 @@ Index index; - index = new Index(browserPanel.getDb(), - results.getInt("id"), - null, results.getString("publicKey"), - results.getInt("revision"), - results.getString("privateKey"), - results.getString("displayName"), - false); + if (results.getString("privateKey") == null + || results.getInt("revision") > 0) { - index.downloadFromFreenet(this, browserPanel.getIndexTree(), queueManager); + Logger.debug(this, "Index unavailable on freenet -> not updated"); - browserPanel.getIndexTree().redraw(); + index = new Index(browserPanel.getDb(), + results.getInt("id"), + null, results.getString("publicKey"), + results.getInt("revision"), + results.getString("privateKey"), + results.getString("displayName"), + false); - browserPanel.getIndexProgressBar().addTransfer(1); + index.downloadFromFreenet(this, browserPanel.getIndexTree(), queueManager); + browserPanel.getIndexTree().redraw(); + + browserPanel.getIndexProgressBar().addTransfer(1); + } + return ret; } catch(java.sql.SQLException e) { From jflesch at freenetproject.org Wed Mar 7 14:26:48 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Wed, 7 Mar 2007 14:26:48 +0000 (UTC) Subject: [Thaw-dev] r12009 - in trunk/apps/Thaw/src/thaw: core fcp plugins/index Message-ID: <20070307142648.DB9659C0CB@emu.freenetproject.org> Author: jflesch Date: 2007-03-07 14:26:47 +0000 (Wed, 07 Mar 2007) New Revision: 12009 Modified: trunk/apps/Thaw/src/thaw/core/ConfigWindow.java trunk/apps/Thaw/src/thaw/fcp/FCPQueueManager.java trunk/apps/Thaw/src/thaw/plugins/index/IndexConfigPanel.java Log: Add some icons to the config window Modified: trunk/apps/Thaw/src/thaw/core/ConfigWindow.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/ConfigWindow.java 2007-03-07 12:41:16 UTC (rev 12008) +++ trunk/apps/Thaw/src/thaw/core/ConfigWindow.java 2007-03-07 14:26:47 UTC (rev 12009) @@ -91,14 +91,14 @@ * Remove them and re-add them. */ private void addTabs() { - tabs.remove( thawConfigPanel.getPanel() ); - tabs.remove( nodeConfigPanel.getPanel() ); - tabs.remove( pluginConfigPanel.getPanel() ); + removeTab( thawConfigPanel.getPanel() ); + removeTab( nodeConfigPanel.getPanel() ); + removeTab( pluginConfigPanel.getPanel() ); - tabs.add("Thaw", thawConfigPanel.getPanel()); - tabs.add(I18n.getMessage("thaw.common.node"), nodeConfigPanel.getPanel()); + addTab("Thaw", thawConfigPanel.getPanel()); + addTab(I18n.getMessage("thaw.common.node"), IconBox.minConnectAction, nodeConfigPanel.getPanel()); if(advancedMode) - tabs.add(I18n.getMessage("thaw.common.plugins"), pluginConfigPanel.getPanel()); + addTab(I18n.getMessage("thaw.common.plugins"), IconBox.minSettings, pluginConfigPanel.getPanel()); } @@ -115,10 +115,15 @@ } public boolean addTab(final String name, final java.awt.Component panel) { - tabs.add(name, panel); + tabs.addTab(name, panel); return true; } + public boolean addTab(final String name, javax.swing.ImageIcon icon, final java.awt.Component panel) { + tabs.addTab(name, icon, panel); + return true; + } + public boolean removeTab(final java.awt.Component panel) { tabs.remove(panel); return true; Modified: trunk/apps/Thaw/src/thaw/fcp/FCPQueueManager.java =================================================================== --- trunk/apps/Thaw/src/thaw/fcp/FCPQueueManager.java 2007-03-07 12:41:16 UTC (rev 12008) +++ trunk/apps/Thaw/src/thaw/fcp/FCPQueueManager.java 2007-03-07 14:26:47 UTC (rev 12009) @@ -289,7 +289,8 @@ return false; } - if(queryA.getFilename().equals(queryB.getFilename())) { + if(queryA.getFilename() != null + && queryA.getFilename().equals(queryB.getFilename())) { Logger.debug(this, "isTheSame(): Filename"); return true; } Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexConfigPanel.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexConfigPanel.java 2007-03-07 12:41:16 UTC (rev 12008) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexConfigPanel.java 2007-03-07 14:26:47 UTC (rev 12009) @@ -53,7 +53,9 @@ public void addTab() { - configWindow.addTab(I18n.getMessage("thaw.plugin.index.indexes"), panel); + configWindow.addTab(I18n.getMessage("thaw.plugin.index.indexes"), + thaw.core.IconBox.minIndex, + panel); } From jflesch at freenetproject.org Wed Mar 7 15:49:24 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Wed, 7 Mar 2007 15:49:24 +0000 (UTC) Subject: [Thaw-dev] r12010 - in trunk/apps/Thaw/src/thaw: core i18n plugins/index Message-ID: <20070307154924.7620D9C28E@emu.freenetproject.org> Author: jflesch Date: 2007-03-07 15:49:23 +0000 (Wed, 07 Mar 2007) New Revision: 12010 Modified: trunk/apps/Thaw/src/thaw/core/ConfigWindow.java trunk/apps/Thaw/src/thaw/i18n/thaw.properties trunk/apps/Thaw/src/thaw/plugins/index/IndexConfigPanel.java trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java trunk/apps/Thaw/src/thaw/plugins/index/IndexRoot.java trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java Log: Thaw loads now the whole index tree at startup. This behavior can be change in the configuration window (advanced mode). As this option is not really useful, it may be removed in the future. Modified: trunk/apps/Thaw/src/thaw/core/ConfigWindow.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/ConfigWindow.java 2007-03-07 14:26:47 UTC (rev 12009) +++ trunk/apps/Thaw/src/thaw/core/ConfigWindow.java 2007-03-07 15:49:23 UTC (rev 12010) @@ -151,6 +151,10 @@ return cancelButton; } + /** + * Call this function if a change made by the user + * need a connection reset with the plugins reset + */ public void willNeedConnectionReset() { needConnectionReset = true; } Modified: trunk/apps/Thaw/src/thaw/i18n/thaw.properties =================================================================== --- trunk/apps/Thaw/src/thaw/i18n/thaw.properties 2007-03-07 14:26:47 UTC (rev 12009) +++ trunk/apps/Thaw/src/thaw/i18n/thaw.properties 2007-03-07 15:49:23 UTC (rev 12010) @@ -296,4 +296,6 @@ thaw.plugin.index.indexWithNoLink=The index '?' has no link.\nAre you sure that you want to insert it as it ? -thaw.plugin.index.sortAlphabetically=Sort by alphabetic order \ No newline at end of file +thaw.plugin.index.sortAlphabetically=Sort by alphabetic order + +thaw.plugin.index.loadOnTheFly=Load the index tree on the fly (means less memory consumption but more CPU usage) Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexConfigPanel.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexConfigPanel.java 2007-03-07 14:26:47 UTC (rev 12009) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexConfigPanel.java 2007-03-07 15:49:23 UTC (rev 12010) @@ -20,7 +20,9 @@ private JTextField refreshInterval; private JTextField indexPerRefresh; + private JCheckBox loadOnTheFly; + public IndexConfigPanel(ConfigWindow configWindow, Config config) { this.configWindow = configWindow; this.config = config; @@ -36,6 +38,9 @@ JLabel indexPerRefreshLabel = new JLabel(I18n.getMessage("thaw.plugin.index.nmbIndexPerRefresh")); indexPerRefresh = new JTextField(""); + loadOnTheFly = new JCheckBox(I18n.getMessage("thaw.plugin.index.loadOnTheFly")); + + resetValues(); autorefreshActivated.addActionListener(this); @@ -48,6 +53,11 @@ panel.add(indexPerRefreshLabel); panel.add(indexPerRefresh); + if (Boolean.valueOf(config.getValue("advancedMode")).booleanValue()) { + panel.add(new JLabel(" ")); + panel.add(loadOnTheFly); + } + updateTextFieldState(); } @@ -74,6 +84,7 @@ boolean activated = AutoRefresh.DEFAULT_ACTIVATED; int refreshIntervalInt = AutoRefresh.DEFAULT_INTERVAL; int nmbIndexInt = AutoRefresh.DEFAULT_INDEX_NUMBER; + boolean loadOnTheFlyBoolean = false; try { if (config.getValue("indexAutoRefreshActivated") != null) { @@ -87,6 +98,12 @@ if (config.getValue("nmbIndexesPerRefreshInterval") != null) { nmbIndexInt = Integer.parseInt(config.getValue("nmbIndexesPerRefreshInterval")); } + + + if (config.getValue("loadIndexTreeOnTheFly") != null) { + loadOnTheFlyBoolean = Boolean.valueOf(config.getValue("loadIndexTreeOnTheFly")).booleanValue(); + } + } catch(NumberFormatException e) { Logger.error(this, "Error while parsing config !"); } @@ -95,6 +112,7 @@ autorefreshActivated.setSelected(activated); refreshInterval.setText(Integer.toString(refreshIntervalInt)); indexPerRefresh.setText(Integer.toString(nmbIndexInt)); + loadOnTheFly.setSelected(loadOnTheFlyBoolean); } @@ -105,6 +123,8 @@ refreshInterval.getText()); config.setValue("nmbIndexesPerRefreshInterval", indexPerRefresh.getText()); + config.setValue("loadIndexTreeOnTheFly", + Boolean.toString(loadOnTheFly.isSelected())); } public void actionPerformed(ActionEvent e) { Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java 2007-03-07 14:26:47 UTC (rev 12009) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java 2007-03-07 15:49:23 UTC (rev 12010) @@ -33,16 +33,22 @@ private Vector children = null; - public IndexFolder(final Hsqldb db, final int id) { + private boolean loadOnTheFly = true; + + + + public IndexFolder(final Hsqldb db, final int id, boolean loadOnTheFly) { this.id = id; this.db = db; + this.loadOnTheFly = loadOnTheFly; } /** * @param parentNode only required if in a tree */ - public IndexFolder(final Hsqldb db, final int id, TreeNode parentNode, String name) { - this(db, id); + public IndexFolder(final Hsqldb db, final int id, TreeNode parentNode, String name, boolean loadOnTheFly) { + this(db, id, loadOnTheFly); + this.parentNode = parentNode; this.name = name; } @@ -58,8 +64,11 @@ while(set.next()) { IndexTreeNode n; - if (folder) - n = new IndexFolder(db, set.getInt("id"), this, set.getString("name")); + if (folder) { + n = new IndexFolder(db, set.getInt("id"), this, set.getString("name"), loadOnTheFly); + if (!loadOnTheFly) /* => load immediatly */ + ((IndexFolder)n).loadChildren(); + } else n = new Index(db, set.getInt("id"), this, set.getString("publicKey"), set.getInt("revision"), set.getString("privateKey"), @@ -321,7 +330,7 @@ if (index) node = new Index(db, target_id); else - node = new IndexFolder(db, target_id); + node = new IndexFolder(db, target_id, false); children.remove(node); } Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexRoot.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexRoot.java 2007-03-07 14:26:47 UTC (rev 12009) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexRoot.java 2007-03-07 15:49:23 UTC (rev 12010) @@ -12,10 +12,17 @@ private FCPQueueManager queueManager; private IndexBrowserPanel indexBrowser; - public IndexRoot(final FCPQueueManager queueManager, final IndexBrowserPanel indexBrowser, final String name) { - super(indexBrowser.getDb(), -1); + public IndexRoot(final FCPQueueManager queueManager, + final IndexBrowserPanel indexBrowser, + final String name, + final boolean loadOnTheFly) { + super(indexBrowser.getDb(), -1, loadOnTheFly); + this.queueManager = queueManager; this.indexBrowser = indexBrowser; + + if (!loadOnTheFly) /* anyway loading for this folder will be done immediatly ... :p */ + loadChildren(); } Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java 2007-03-07 14:26:47 UTC (rev 12009) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java 2007-03-07 15:49:23 UTC (rev 12010) @@ -111,8 +111,13 @@ panel = new JPanel(); panel.setLayout(new BorderLayout(10, 10)); - root = new IndexRoot(queueManager, indexBrowser, rootName); + boolean loadOnTheFly = false; + if (config.getValue("loadIndexTreeOnTheFly") != null) + loadOnTheFly = Boolean.valueOf(config.getValue("loadIndexTreeOnTheFly")).booleanValue(); + + root = new IndexRoot(queueManager, indexBrowser, rootName, loadOnTheFly); + treeModel = new DefaultTreeModel(root); if (!selectionOnly) { From jflesch at freenetproject.org Wed Mar 7 15:58:29 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Wed, 7 Mar 2007 15:58:29 +0000 (UTC) Subject: [Thaw-dev] r12011 - trunk/apps/Thaw/src/thaw/plugins/index Message-ID: <20070307155829.7FBE59C27D@emu.freenetproject.org> Author: jflesch Date: 2007-03-07 15:58:28 +0000 (Wed, 07 Mar 2007) New Revision: 12011 Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java Log: Fix IndexManagementHelper compilation Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java 2007-03-07 15:49:23 UTC (rev 12010) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java 2007-03-07 15:58:28 UTC (rev 12011) @@ -670,7 +670,7 @@ st.execute(); - folder = new IndexFolder(indexBrowser.getDb(), nextId, target, name); + folder = new IndexFolder(indexBrowser.getDb(), nextId, target, name, false); } catch(SQLException e) { Logger.error(new IndexManagementHelper(), "Error while creating folder: "+e.toString()); From jflesch at freenetproject.org Wed Mar 7 16:04:16 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Wed, 7 Mar 2007 16:04:16 +0000 (UTC) Subject: [Thaw-dev] r12012 - trunk/apps/Thaw/src/thaw/core Message-ID: <20070307160416.DFD399C285@emu.freenetproject.org> Author: jflesch Date: 2007-03-07 16:03:58 +0000 (Wed, 07 Mar 2007) New Revision: 12012 Modified: trunk/apps/Thaw/src/thaw/core/PluginManager.java Log: Remove 'thaw.plugins.' prefixes in the plugin names in the splashscreen Modified: trunk/apps/Thaw/src/thaw/core/PluginManager.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/PluginManager.java 2007-03-07 15:58:28 UTC (rev 12011) +++ trunk/apps/Thaw/src/thaw/core/PluginManager.java 2007-03-07 16:03:58 UTC (rev 12012) @@ -86,7 +86,7 @@ final String pluginName = (String)pluginIt.next(); core.getSplashScreen().setProgressionAndStatus(core.getSplashScreen().getProgression()+progressJump, - "Loading plugin '"+pluginName+"' ..."); + "Loading plugin '"+pluginName.replaceFirst("thaw.plugins.", "")+"' ..."); loadPlugin(pluginName); } @@ -119,7 +119,7 @@ Logger.info(this, "Running plugin '"+plugin.getClass().getName()+"'"); core.getSplashScreen().setProgressionAndStatus(core.getSplashScreen().getProgression()+progressJump, - "Starting plugin '"+plugin.getClass().getName()+"' ..."); + "Starting plugin '"+plugin.getClass().getName().replaceFirst("thaw.plugins.", "")+"' ..."); javax.swing.ImageIcon icon = null; From nextgens at freenetproject.org Wed Mar 7 19:41:24 2007 From: nextgens at freenetproject.org (nextgens at freenetproject.org) Date: Wed, 7 Mar 2007 19:41:24 +0000 (UTC) Subject: [Thaw-dev] r12013 - trunk/apps/Thaw/src/thaw/core Message-ID: <20070307194124.973C89BBA5@emu.freenetproject.org> Author: nextgens Date: 2007-03-07 19:41:23 +0000 (Wed, 07 Mar 2007) New Revision: 12013 Modified: trunk/apps/Thaw/src/thaw/core/IconBox.java Log: Thaw: improve log. messages Modified: trunk/apps/Thaw/src/thaw/core/IconBox.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/IconBox.java 2007-03-07 16:03:58 UTC (rev 12012) +++ trunk/apps/Thaw/src/thaw/core/IconBox.java 2007-03-07 19:41:23 UTC (rev 12013) @@ -100,14 +100,14 @@ classLoader = daClass.getClassLoader(); if (classLoader == null) { - Logger.error(new IconBox(), "Icon '"+fileName+"' not found ! (Class)"); + Logger.error(new IconBox(), "Icon '"+fileName+"' not found ! (ClassLoader)"); return null; } url = classLoader.getResource(fileName); if (url == null) { - Logger.error(new IconBox(), "Icon '"+fileName+"' not found ! (Class)"); + Logger.error(new IconBox(), "Icon '"+fileName+"' not found ! (Resource)"); return null; } From nextgens at freenetproject.org Wed Mar 7 19:42:47 2007 From: nextgens at freenetproject.org (nextgens at freenetproject.org) Date: Wed, 7 Mar 2007 19:42:47 +0000 (UTC) Subject: [Thaw-dev] r12014 - trunk/apps/Thaw/src/thaw/core Message-ID: <20070307194247.944889BBA5@emu.freenetproject.org> Author: nextgens Date: 2007-03-07 19:42:44 +0000 (Wed, 07 Mar 2007) New Revision: 12014 Modified: trunk/apps/Thaw/src/thaw/core/Main.java Log: Thaw: indent Modified: trunk/apps/Thaw/src/thaw/core/Main.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/Main.java 2007-03-07 19:41:23 UTC (rev 12013) +++ trunk/apps/Thaw/src/thaw/core/Main.java 2007-03-07 19:42:44 UTC (rev 12014) @@ -14,14 +14,14 @@ public class Main { public final static int - _major = 0, - _minor = 6, - _update = 3; + _major = 0, + _minor = 6, + _update = 3; public final static String - _svnBuildNumber = "@custom@"; + _svnBuildNumber = "@custom@"; public final static String - VERSION = Main._major + "." + Main._minor + "." + Main._update + " Beta r"+Main._svnBuildNumber; + VERSION = Main._major + "." + Main._minor + "." + Main._update + " Beta r"+Main._svnBuildNumber; /** @@ -39,7 +39,7 @@ /** * Used to start the program * - * @param args "-?", "-help", "--help", "/?", "/help", "-lf lookandfeel" + * @param args "-?", "-help", "--help", "/?", "/help", "-lf lookandfeel" */ public static void main(final String[] args) { Core core; @@ -113,7 +113,6 @@ System.out.println(" for the complete list"); System.exit(0); - } From nextgens at freenetproject.org Wed Mar 7 20:38:01 2007 From: nextgens at freenetproject.org (nextgens at freenetproject.org) Date: Wed, 7 Mar 2007 20:38:01 +0000 (UTC) Subject: [Thaw-dev] r12016 - trunk/apps/Thaw/src/thaw/core Message-ID: <20070307203802.3BD019C270@emu.freenetproject.org> Author: nextgens Date: 2007-03-07 20:38:00 +0000 (Wed, 07 Mar 2007) New Revision: 12016 Modified: trunk/apps/Thaw/src/thaw/core/Core.java Log: Thaw: improve the wording of the credit page (I got the authorisation from Jflesch) Modified: trunk/apps/Thaw/src/thaw/core/Core.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/Core.java 2007-03-07 20:35:44 UTC (rev 12015) +++ trunk/apps/Thaw/src/thaw/core/Core.java 2007-03-07 20:38:00 UTC (rev 12016) @@ -46,7 +46,7 @@ public Core() { Logger.info(this, "Thaw, version "+Main.VERSION, true); Logger.info(this, "2006(c) Freenet project", true); - Logger.info(this, "under GPL license (see gpl.txt joined)", true); + Logger.info(this, "Released under GPL license version 2 or above (see http://www.fsf.org/licensing/licenses/gpl.html)", true); } /** From nextgens at freenetproject.org Wed Mar 7 20:38:50 2007 From: nextgens at freenetproject.org (nextgens at freenetproject.org) Date: Wed, 7 Mar 2007 20:38:50 +0000 (UTC) Subject: [Thaw-dev] r12017 - trunk/apps/Thaw/src/thaw/core Message-ID: <20070307203850.354319C270@emu.freenetproject.org> Author: nextgens Date: 2007-03-07 20:38:49 +0000 (Wed, 07 Mar 2007) New Revision: 12017 Modified: trunk/apps/Thaw/src/thaw/core/Core.java Log: Thaw: s/later/above/ :$ Modified: trunk/apps/Thaw/src/thaw/core/Core.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/Core.java 2007-03-07 20:38:00 UTC (rev 12016) +++ trunk/apps/Thaw/src/thaw/core/Core.java 2007-03-07 20:38:49 UTC (rev 12017) @@ -46,7 +46,7 @@ public Core() { Logger.info(this, "Thaw, version "+Main.VERSION, true); Logger.info(this, "2006(c) Freenet project", true); - Logger.info(this, "Released under GPL license version 2 or above (see http://www.fsf.org/licensing/licenses/gpl.html)", true); + Logger.info(this, "Released under GPL license version 2 or later (see http://www.fsf.org/licensing/licenses/gpl.html)", true); } /** From nextgens at freenetproject.org Wed Mar 7 21:20:35 2007 From: nextgens at freenetproject.org (nextgens at freenetproject.org) Date: Wed, 7 Mar 2007 21:20:35 +0000 (UTC) Subject: [Thaw-dev] r12018 - trunk/apps/Thaw/src/thaw/core Message-ID: <20070307212035.DD1AE9BB22@emu.freenetproject.org> Author: nextgens Date: 2007-03-07 21:20:34 +0000 (Wed, 07 Mar 2007) New Revision: 12018 Modified: trunk/apps/Thaw/src/thaw/core/Config.java trunk/apps/Thaw/src/thaw/core/Core.java Log: Thaw: Refactor the config. a bit: add a few comments, remove dead code Modified: trunk/apps/Thaw/src/thaw/core/Config.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/Config.java 2007-03-07 20:38:49 UTC (rev 12017) +++ trunk/apps/Thaw/src/thaw/core/Config.java 2007-03-07 21:20:34 UTC (rev 12018) @@ -29,19 +29,14 @@ */ public class Config { - private File configFile = new File("thaw.conf.xml"); /* Default name */ + public static String CONFIG_FILE_NAME = "thaw.conf.xml"; + private final File configFile; - private HashMap parameters = null; /* String (param) -> String (value) */ - private Vector pluginNames = null; /* String (plugin names) */ + private final HashMap parameters; /* String (param) -> String (value) */ + private final Vector pluginNames; /* String (plugin names) */ - - public Config() { - this(null); - } - public Config(final String filename) { - if(filename != null) - configFile = new File(filename); + configFile = new File(filename); parameters = new HashMap(); pluginNames = new Vector(); @@ -49,25 +44,18 @@ /** * Returns the corresponding value + * * @return null if the value doesn't exit in the config. */ public String getValue(final String key) { - try { - return ((String)parameters.get(key)); - } catch(final Exception e) { /* I should see for the correct exception */ - Logger.notice(this, "Unknow key in configuration: '"+key+"'"); - return null; - } + return ((String)parameters.get(key)); } /** * Set the value in the config. */ public void setValue(final String key, final String value) { - if(value != null) - Logger.info(this, "Setting value '"+key+"' to '"+value+"'"); - else - Logger.info(this, "Setting value '"+key+"' to null"); + Logger.info(this, "Setting value '"+key+"' to '"+value+"'"); parameters.put(key, value); } @@ -181,6 +169,7 @@ /** * Save the configuration. + * * @return true if success, else false. */ public boolean saveConfig() { @@ -201,8 +190,6 @@ Logger.warning(this, "Error while checking perms to save config: "+e); } - - configOut = new StreamResult(configFile); Document xmlDoc = null; @@ -309,5 +296,4 @@ setDefaultValue("multipleSockets", "true"); setDefaultValue("sameComputer", "true"); } - } Modified: trunk/apps/Thaw/src/thaw/core/Core.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/Core.java 2007-03-07 20:38:49 UTC (rev 12017) +++ trunk/apps/Thaw/src/thaw/core/Core.java 2007-03-07 21:20:34 UTC (rev 12018) @@ -136,9 +136,10 @@ * Init configuration. May re-set I18n. */ public boolean initConfig() { - config = new Config(); + config = new Config(Config.CONFIG_FILE_NAME); + + // FIXME: awfull hack to set default values if necessary. Maybe the freenet's config framework should be borrowed ;) config.loadConfig(); - config.setDefaultValues(); return true; From nextgens at freenetproject.org Wed Mar 7 21:25:25 2007 From: nextgens at freenetproject.org (nextgens at freenetproject.org) Date: Wed, 7 Mar 2007 21:25:25 +0000 (UTC) Subject: [Thaw-dev] r12019 - in trunk/apps/Thaw/src/thaw: core gui plugins plugins/index plugins/queueWatcher Message-ID: <20070307212525.AE1009BB22@emu.freenetproject.org> Author: nextgens Date: 2007-03-07 21:25:24 +0000 (Wed, 07 Mar 2007) New Revision: 12019 Modified: trunk/apps/Thaw/src/thaw/core/Core.java trunk/apps/Thaw/src/thaw/core/PluginConfigPanel.java trunk/apps/Thaw/src/thaw/core/SplashScreen.java trunk/apps/Thaw/src/thaw/gui/JDragTree.java trunk/apps/Thaw/src/thaw/plugins/IndexBrowser.java trunk/apps/Thaw/src/thaw/plugins/IndexExporter.java trunk/apps/Thaw/src/thaw/plugins/LogConsole.java trunk/apps/Thaw/src/thaw/plugins/QueueWatcher.java trunk/apps/Thaw/src/thaw/plugins/index/AutoRefresh.java trunk/apps/Thaw/src/thaw/plugins/index/DatabaseManager.java trunk/apps/Thaw/src/thaw/plugins/index/File.java trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java trunk/apps/Thaw/src/thaw/plugins/index/Index.java trunk/apps/Thaw/src/thaw/plugins/index/IndexBrowserPanel.java trunk/apps/Thaw/src/thaw/plugins/index/IndexConfigPanel.java trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java trunk/apps/Thaw/src/thaw/plugins/index/IndexRoot.java trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java trunk/apps/Thaw/src/thaw/plugins/index/IndexTreeNode.java trunk/apps/Thaw/src/thaw/plugins/index/Link.java trunk/apps/Thaw/src/thaw/plugins/index/LinkTable.java trunk/apps/Thaw/src/thaw/plugins/index/UnknownIndexList.java trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueuePanel.java Log: Thaw: bulk commit organizing imports Modified: trunk/apps/Thaw/src/thaw/core/Core.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/Core.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/core/Core.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -7,6 +7,7 @@ import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.UIManager; + import thaw.fcp.FCPClientHello; import thaw.fcp.FCPConnection; import thaw.fcp.FCPQueryManager; Modified: trunk/apps/Thaw/src/thaw/core/PluginConfigPanel.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/PluginConfigPanel.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/core/PluginConfigPanel.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -4,13 +4,13 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.Observable; import java.util.Observer; import java.util.Vector; -import java.util.LinkedHashMap; +import javax.swing.JCheckBox; import javax.swing.JPanel; -import javax.swing.JCheckBox; /** * PluginConfigPanel. Creates and manages the panel containing all the things to configure Modified: trunk/apps/Thaw/src/thaw/core/SplashScreen.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/SplashScreen.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/core/SplashScreen.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -1,17 +1,17 @@ package thaw.core; import java.awt.BorderLayout; -import java.awt.GridLayout; import java.awt.Dimension; import java.awt.Font; +import java.awt.GridLayout; import java.awt.Toolkit; +import java.util.Vector; +import javax.swing.ImageIcon; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JProgressBar; -import javax.swing.ImageIcon; -import java.util.Vector; public class SplashScreen { public final static int SIZE_X = 500; Modified: trunk/apps/Thaw/src/thaw/gui/JDragTree.java =================================================================== --- trunk/apps/Thaw/src/thaw/gui/JDragTree.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/gui/JDragTree.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -56,8 +56,8 @@ import javax.swing.Icon; import javax.swing.JLabel; import javax.swing.JTree; +import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.MutableTreeNode; -import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeModel; import javax.swing.tree.TreeNode; import javax.swing.tree.TreePath; Modified: trunk/apps/Thaw/src/thaw/plugins/IndexBrowser.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/IndexBrowser.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/plugins/IndexBrowser.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -10,11 +10,11 @@ import thaw.core.IconBox; import thaw.core.Logger; import thaw.core.Plugin; +import thaw.plugins.index.AutoRefresh; +import thaw.plugins.index.DatabaseManager; import thaw.plugins.index.IndexBrowserPanel; +import thaw.plugins.index.IndexConfigPanel; import thaw.plugins.index.IndexManagementHelper; -import thaw.plugins.index.DatabaseManager; -import thaw.plugins.index.IndexConfigPanel; -import thaw.plugins.index.AutoRefresh; public class IndexBrowser extends ToolbarModifier implements Plugin, ChangeListener { Modified: trunk/apps/Thaw/src/thaw/plugins/IndexExporter.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/IndexExporter.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/plugins/IndexExporter.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -1,16 +1,19 @@ package thaw.plugins; -import javax.swing.JMenu; -import javax.swing.JMenuItem; - +import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.awt.event.ActionEvent; import javax.swing.JFileChooser; +import javax.swing.JMenu; +import javax.swing.JMenuItem; -import thaw.core.*; -import thaw.plugins.IndexBrowser; -import thaw.plugins.index.*; +import thaw.core.Core; +import thaw.core.FileChooser; +import thaw.core.I18n; +import thaw.core.IconBox; +import thaw.core.Logger; +import thaw.core.Plugin; +import thaw.plugins.index.DatabaseManager; public class IndexExporter implements Plugin, ActionListener { Modified: trunk/apps/Thaw/src/thaw/plugins/LogConsole.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/LogConsole.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/plugins/LogConsole.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -11,6 +11,7 @@ import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; + import thaw.core.Core; import thaw.core.FileChooser; import thaw.core.I18n; Modified: trunk/apps/Thaw/src/thaw/plugins/QueueWatcher.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/QueueWatcher.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/plugins/QueueWatcher.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -1,16 +1,16 @@ package thaw.plugins; +import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.awt.event.ActionEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.Iterator; import java.util.Vector; +import javax.swing.JButton; import javax.swing.JSplitPane; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import javax.swing.JButton; import thaw.core.Core; import thaw.core.I18n; Modified: trunk/apps/Thaw/src/thaw/plugins/index/AutoRefresh.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/AutoRefresh.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/plugins/index/AutoRefresh.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -1,13 +1,14 @@ package thaw.plugins.index; -import java.sql.*; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; import thaw.core.Config; import thaw.core.Logger; +import thaw.fcp.FCPQueueManager; import thaw.plugins.Hsqldb; -import thaw.fcp.FCPQueueManager; - public class AutoRefresh implements Runnable, java.util.Observer { public final static boolean DEFAULT_ACTIVATED = true; Modified: trunk/apps/Thaw/src/thaw/plugins/index/DatabaseManager.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/DatabaseManager.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/plugins/index/DatabaseManager.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -1,9 +1,15 @@ package thaw.plugins.index; -import java.sql.*; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Types; +import java.util.Iterator; +import java.util.Vector; -import java.io.FileOutputStream; -import java.io.FileInputStream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.OutputKeys; @@ -11,18 +17,16 @@ import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; + import org.w3c.dom.DOMImplementation; import org.w3c.dom.Document; import org.w3c.dom.Element; -import java.util.Vector; -import java.util.Iterator; - +import thaw.core.Config; import thaw.core.Logger; -import thaw.core.Config; import thaw.core.SplashScreen; +import thaw.fcp.FCPQueueManager; import thaw.plugins.Hsqldb; -import thaw.fcp.FCPQueueManager; /** * Creates all the tables used to save the indexes, Modified: trunk/apps/Thaw/src/thaw/plugins/index/File.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/File.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/plugins/index/File.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -3,11 +3,12 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.Observable; import java.util.Observer; -import java.util.Observable; import org.w3c.dom.Document; import org.w3c.dom.Element; + import thaw.core.FreenetURIHelper; import thaw.core.Logger; import thaw.fcp.FCPClientGet; Modified: trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -1,17 +1,19 @@ package thaw.plugins.index; import java.awt.BorderLayout; +import java.awt.Color; import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; +import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.Iterator; import java.util.Vector; -import java.awt.Color; +import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JMenuItem; import javax.swing.JPanel; @@ -19,25 +21,22 @@ import javax.swing.JProgressBar; import javax.swing.JScrollPane; import javax.swing.JTable; -import javax.swing.JButton; import javax.swing.event.TableModelEvent; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.JTableHeader; -import java.awt.event.MouseAdapter; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; - import thaw.core.Config; +import thaw.core.FreenetURIHelper; import thaw.core.I18n; -import thaw.core.Logger; import thaw.core.IconBox; -import thaw.core.FreenetURIHelper; -import thaw.plugins.ToolbarModifier; +import thaw.core.Logger; import thaw.fcp.FCPClientGet; import thaw.fcp.FCPClientPut; import thaw.fcp.FCPQueueManager; import thaw.fcp.FCPTransferQuery; +import thaw.plugins.ToolbarModifier; public class FileTable implements MouseListener, KeyListener, ActionListener { Modified: trunk/apps/Thaw/src/thaw/plugins/index/Index.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/Index.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/plugins/index/Index.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -10,10 +10,10 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Types; -import java.util.Vector; import java.util.Enumeration; -import java.util.Observer; import java.util.Observable; +import java.util.Observer; +import java.util.Vector; import javax.swing.JOptionPane; import javax.swing.tree.MutableTreeNode; @@ -34,14 +34,13 @@ import org.w3c.dom.Text; import thaw.core.FreenetURIHelper; -import thaw.core.Logger; import thaw.core.I18n; +import thaw.core.Logger; import thaw.fcp.FCPClientGet; import thaw.fcp.FCPClientPut; import thaw.fcp.FCPQueueManager; import thaw.fcp.FCPTransferQuery; import thaw.plugins.Hsqldb; - import thaw.plugins.insertPlugin.DefaultMIMETypes; Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexBrowserPanel.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexBrowserPanel.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexBrowserPanel.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -1,8 +1,10 @@ package thaw.plugins.index; import java.awt.BorderLayout; + import javax.swing.JPanel; import javax.swing.JSplitPane; + import thaw.core.Config; import thaw.core.I18n; import thaw.core.Logger; Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexConfigPanel.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexConfigPanel.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexConfigPanel.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -1,14 +1,18 @@ package thaw.plugins.index; -import javax.swing.JPanel; import java.awt.GridLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.JCheckBox; import javax.swing.JLabel; +import javax.swing.JPanel; import javax.swing.JTextField; -import javax.swing.JCheckBox; -import java.awt.event.ActionListener; -import java.awt.event.ActionEvent; -import thaw.core.*; +import thaw.core.Config; +import thaw.core.ConfigWindow; +import thaw.core.I18n; +import thaw.core.Logger; public class IndexConfigPanel implements ActionListener { private ConfigWindow configWindow; Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -6,8 +6,9 @@ import java.sql.Types; import java.util.Enumeration; import java.util.Iterator; +import java.util.Observer; import java.util.Vector; -import java.util.Observer; + import javax.swing.tree.MutableTreeNode; import javax.swing.tree.TreeNode; Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -1,6 +1,7 @@ package thaw.plugins.index; import java.awt.BorderLayout; +import java.awt.Component; import java.awt.GridLayout; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; @@ -9,16 +10,19 @@ import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; -import java.awt.Component; import java.io.FileOutputStream; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Types; import java.util.Iterator; +import java.util.Observable; +import java.util.Observer; import java.util.Vector; -import java.util.Observer; -import java.util.Observable; - import javax.swing.AbstractButton; import javax.swing.JButton; +import javax.swing.JCheckBox; import javax.swing.JDialog; import javax.swing.JFileChooser; import javax.swing.JLabel; @@ -27,20 +31,18 @@ import javax.swing.JPanel; import javax.swing.JPopupMenu; import javax.swing.JTextArea; -import javax.swing.JCheckBox; import javax.swing.JTextField; +import javax.swing.tree.MutableTreeNode; import javax.swing.tree.TreeNode; -import javax.swing.tree.MutableTreeNode; -import java.sql.*; +import thaw.core.Config; import thaw.core.FileChooser; import thaw.core.FreenetURIHelper; import thaw.core.I18n; import thaw.core.Logger; -import thaw.core.Config; +import thaw.fcp.FCPGenerateSSK; import thaw.fcp.FCPQueueManager; import thaw.fcp.FCPTransferQuery; -import thaw.fcp.FCPGenerateSSK; import thaw.plugins.Hsqldb; /** Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexRoot.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexRoot.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexRoot.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -1,12 +1,14 @@ package thaw.plugins.index; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +import thaw.core.I18n; import thaw.core.Logger; -import thaw.core.I18n; import thaw.fcp.FCPQueueManager; import thaw.plugins.Hsqldb; -import java.sql.*; - public class IndexRoot extends IndexFolder implements IndexTreeNode { private FCPQueueManager queueManager; Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -12,25 +12,26 @@ import java.sql.ResultSet; import java.util.Iterator; import java.util.Vector; + +import javax.swing.JButton; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.JPanel; -import javax.swing.JButton; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; import javax.swing.JTree; -import javax.swing.tree.MutableTreeNode; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeCellRenderer; import javax.swing.tree.DefaultTreeModel; +import javax.swing.tree.MutableTreeNode; import javax.swing.tree.TreePath; import javax.swing.tree.TreeSelectionModel; import thaw.core.Config; +import thaw.core.FreenetURIHelper; import thaw.core.I18n; import thaw.core.IconBox; import thaw.core.Logger; -import thaw.core.FreenetURIHelper; import thaw.fcp.FCPQueueManager; import thaw.gui.JDragTree; import thaw.plugins.ToolbarModifier; Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexTreeNode.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/IndexTreeNode.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/plugins/index/IndexTreeNode.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -3,10 +3,10 @@ import java.util.Observer; import javax.swing.tree.MutableTreeNode; + +import org.w3c.dom.Document; import org.w3c.dom.Element; -import org.w3c.dom.Document; - import thaw.fcp.FCPQueueManager; public interface IndexTreeNode { Modified: trunk/apps/Thaw/src/thaw/plugins/index/Link.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/Link.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/plugins/index/Link.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -3,11 +3,12 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; + import org.w3c.dom.Document; import org.w3c.dom.Element; +import thaw.core.FreenetURIHelper; import thaw.core.Logger; -import thaw.core.FreenetURIHelper; import thaw.plugins.Hsqldb; public class Link extends java.util.Observable { Modified: trunk/apps/Thaw/src/thaw/plugins/index/LinkTable.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/LinkTable.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/plugins/index/LinkTable.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -1,6 +1,8 @@ package thaw.plugins.index; import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; @@ -9,22 +11,21 @@ import java.awt.event.MouseListener; import java.util.Iterator; import java.util.Vector; -import java.awt.Color; -import java.awt.Component; +import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; import javax.swing.JTable; -import javax.swing.JButton; import javax.swing.event.TableModelEvent; import javax.swing.table.DefaultTableCellRenderer; + import thaw.core.I18n; import thaw.core.IconBox; +import thaw.fcp.FCPQueueManager; import thaw.plugins.ToolbarModifier; -import thaw.fcp.FCPQueueManager; public class LinkTable implements MouseListener, KeyListener, ActionListener { Modified: trunk/apps/Thaw/src/thaw/plugins/index/UnknownIndexList.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/index/UnknownIndexList.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/plugins/index/UnknownIndexList.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -6,18 +6,18 @@ import java.util.Iterator; import java.util.Vector; +import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; -import javax.swing.JButton; import thaw.core.I18n; import thaw.core.IconBox; +import thaw.fcp.FCPQueueManager; import thaw.plugins.ToolbarModifier; -import thaw.fcp.FCPQueueManager; public class UnknownIndexList implements MouseListener { public final static int MAX_INDEXES = 50; Modified: trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueuePanel.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueuePanel.java 2007-03-07 21:20:34 UTC (rev 12018) +++ trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueuePanel.java 2007-03-07 21:25:24 UTC (rev 12019) @@ -39,8 +39,8 @@ import thaw.core.I18n; import thaw.core.IconBox; import thaw.core.Logger; +import thaw.fcp.FCPClientGet; import thaw.fcp.FCPTransferQuery; -import thaw.fcp.FCPClientGet; import thaw.plugins.QueueWatcher; From nextgens at freenetproject.org Fri Mar 9 14:32:30 2007 From: nextgens at freenetproject.org (nextgens at freenetproject.org) Date: Fri, 9 Mar 2007 14:32:30 +0000 (UTC) Subject: [Thaw-dev] r12054 - in trunk/apps/Thaw: . src/thaw/core Message-ID: <20070309143230.7A4179BBBF@emu.freenetproject.org> Author: nextgens Date: 2007-03-09 14:32:29 +0000 (Fri, 09 Mar 2007) New Revision: 12054 Modified: trunk/apps/Thaw/build.xml trunk/apps/Thaw/src/thaw/core/Core.java trunk/apps/Thaw/src/thaw/core/SplashScreen.java Log: Thaw: implement MDNS discovery for thaw... some work has still to be done Modified: trunk/apps/Thaw/build.xml =================================================================== --- trunk/apps/Thaw/build.xml 2007-03-09 03:11:42 UTC (rev 12053) +++ trunk/apps/Thaw/build.xml 2007-03-09 14:32:29 UTC (rev 12054) @@ -9,7 +9,12 @@ - + + + + + --> + @@ -56,6 +62,7 @@ + Modified: trunk/apps/Thaw/src/thaw/core/Core.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/Core.java 2007-03-09 03:11:42 UTC (rev 12053) +++ trunk/apps/Thaw/src/thaw/core/Core.java 2007-03-09 14:32:29 UTC (rev 12054) @@ -14,6 +14,7 @@ import thaw.fcp.FCPQueueLoader; import thaw.fcp.FCPQueueManager; import thaw.fcp.FCPWatchGlobal; +import thaw.gui.MDNSDiscoveryPanel; /** * A "core" contains references to all the main parts of Thaw. @@ -138,11 +139,12 @@ */ public boolean initConfig() { config = new Config(Config.CONFIG_FILE_NAME); + + if(!config.loadConfig()){ + config.setDefaultValues(); + new MDNSDiscoveryPanel(config).run(); + } - // FIXME: awfull hack to set default values if necessary. Maybe the freenet's config framework should be borrowed ;) - config.loadConfig(); - config.setDefaultValues(); - return true; } Modified: trunk/apps/Thaw/src/thaw/core/SplashScreen.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/SplashScreen.java 2007-03-09 03:11:42 UTC (rev 12053) +++ trunk/apps/Thaw/src/thaw/core/SplashScreen.java 2007-03-09 14:32:29 UTC (rev 12054) @@ -92,7 +92,7 @@ } /** - * @param progress In pourcent + * @param progress In percent */ public void setProgression(final int progress) { if(progressBar != null && splashScreen != null) { From nextgens at freenetproject.org Fri Mar 9 15:19:16 2007 From: nextgens at freenetproject.org (nextgens at freenetproject.org) Date: Fri, 9 Mar 2007 15:19:16 +0000 (UTC) Subject: [Thaw-dev] r12055 - trunk/apps/Thaw/src/thaw/gui Message-ID: <20070309151916.396839BB46@emu.freenetproject.org> Author: nextgens Date: 2007-03-09 15:19:14 +0000 (Fri, 09 Mar 2007) New Revision: 12055 Added: trunk/apps/Thaw/src/thaw/gui/MDNSDiscoveryPanel.java Log: Thaw: I forgot a file Added: trunk/apps/Thaw/src/thaw/gui/MDNSDiscoveryPanel.java =================================================================== --- trunk/apps/Thaw/src/thaw/gui/MDNSDiscoveryPanel.java (rev 0) +++ trunk/apps/Thaw/src/thaw/gui/MDNSDiscoveryPanel.java 2007-03-09 15:19:14 UTC (rev 12055) @@ -0,0 +1,240 @@ +/* This code is part of Freenet. It is distributed under the GNU General + * Public License, version 2 (or at your option any later version). See + * http://www.gnu.org/ for further details of the GPL. */ + +package thaw.gui; + +import java.io.IOException; +import java.util.HashMap; + +import javax.jmdns.JmDNS; +import javax.jmdns.ServiceEvent; +import javax.jmdns.ServiceInfo; +import javax.jmdns.ServiceListener; +import javax.swing.DefaultListModel; +import javax.swing.GroupLayout; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.JProgressBar; +import javax.swing.JScrollPane; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; + +import thaw.core.Config; +import thaw.core.Logger; +import thaw.fcp.FCPConnection; + +/** + * This panel implements Zeroconf (called Bonjour/RendezVous by apple) discovery for Thaw + * + * WARNING: for it to work, you must have a running freenet node on the same network subnet, using the MDNSDiscovery panel + * + * @author Florent Daignière <nextgens at freenetproject.org> + * + * @see http://wiki.freenetproject.org/MDNSDiscoverypanel + * + * @see http://www.dns-sd.org/ServiceTypes.html + * @see http://www.multicastdns.org/ + * @see http://jmdns.sourceforge.net/ + * + * TODO: implement the "Manual" mode + * TODO: maybe we should have a small progressbar shown in a new popup to introduce a "delay" at startup + */ +public class MDNSDiscoveryPanel extends JFrame implements ListSelectionListener { + private static final long serialVersionUID = 1L; + + private static final String FCP_SERVICE_TYPE = "_fcp._tcp.local."; + + private boolean goon = true; + private ServiceInfo selectedValue; + + private final JScrollPane panel; + private final JProgressBar progressBar; + private final JList list; + private final DefaultListModel listModel; + private final JLabel label; + + private final Config config; + private final HashMap foundNodes; + private final JmDNS jmdns; + + public MDNSDiscoveryPanel(Config conf) { + this.config = conf; + this.foundNodes = new HashMap(); + try { + // Spawn the mdns listener + this.jmdns = new JmDNS(); + + // Start listening for new nodes + jmdns.addServiceListener(MDNSDiscoveryPanel.FCP_SERVICE_TYPE, new FCPMDNSListener(this)); + + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("Error loading MDNSDiscoveryPanel : " + e.getMessage()); + } + + // The UI + panel = new JScrollPane(); + progressBar = new JProgressBar(0, 30); + list = new JList(); + listModel = new DefaultListModel(); + label = new JLabel(); + + listModel.addElement("Manual configuration (not recommended) : NotYetImplemented ;)"); + + list.setModel(listModel); + list.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); + list.addListSelectionListener(this); + + panel.setViewportView(list); + + label.setText("Select the freenet node you want to connect to from the list below :"); + + panel.add(progressBar); + + GroupLayout layout = new GroupLayout(this.getContentPane()); + + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(label, GroupLayout.PREFERRED_SIZE, 430, GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createSequentialGroup() + .addGap(36, 36, 36) + .addComponent(panel, GroupLayout.PREFERRED_SIZE, 380, GroupLayout.PREFERRED_SIZE)) + ); + layout.setVerticalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(7, 7, 7) + .addComponent(label) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(panel, GroupLayout.PREFERRED_SIZE, 70, GroupLayout.PREFERRED_SIZE) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + + pack(); + super.setAlwaysOnTop(true); + super.setLocationRelativeTo(this.getParent()); + this.setTitle("ZeroConf discovery plugin... Please hold on"); + this.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); + this.setVisible(true); + + Logger.notice(this, "The configuration file doesn't seems to be valid... MDNSDiscovery is starting!"); + } + + private class FCPMDNSListener implements ServiceListener { + private final MDNSDiscoveryPanel panel; + + public FCPMDNSListener(MDNSDiscoveryPanel panel) { + this.panel = panel; + } + + public void serviceAdded(ServiceEvent event) { + Logger.notice(this, "Service added : " + event.getName()+"."+event.getType()); + // Force the gathering of informations + jmdns.getServiceInfo(MDNSDiscoveryPanel.FCP_SERVICE_TYPE, event.getName()); + } + + public synchronized void serviceRemoved(ServiceEvent event) { + Logger.notice(this, "Service removed : " + event.getName()+"."+event.getType()); + ServiceInfo service = event.getInfo(); + + synchronized (panel) { + panel.foundNodes.remove(service.getName()); + panel.listModel.removeElement(service.getName()); + notify(); + } + } + + public synchronized void serviceResolved(ServiceEvent event) { + Logger.debug(this, "Service resolved: " + event.getInfo()); + ServiceInfo service = event.getInfo(); + + synchronized (panel) { + panel.foundNodes.put(service.getName(), service); + panel.listModel.addElement(service.getName()); + notify(); + } + } + } + + /** + * The user has selected something: notify the main loop and process the data. + */ + public void valueChanged(ListSelectionEvent e) { + if (e.getValueIsAdjusting() == false) { + if(list.getSelectedValue() == null) return; // Ignore the user if he clicks nowhere + + synchronized (this) { + selectedValue = (ServiceInfo) foundNodes.get(list.getSelectedValue()); + goon = false; + notify(); + } + Logger.debug(this, "User has selected : "+foundNodes.get(list.getSelectedValue())); + } + } + + /** + * The main loop : TheRealMeat(TM) + * + */ + public void run() { + boolean isConfigValid = false; + FCPConnection fcp = null; + + do { + // Loop until a selection is done + while(goon) { + try { + synchronized (this) { + wait(Long.MAX_VALUE); + } + } catch (InterruptedException e) {} + + list.repaint(); + } + + if(selectedValue == null) continue; // TODO: implement the "manual" popup there + + Logger.debug(this, "We got something from the UI : let's try to connect"); + + // We try to connect to the server + fcp = new FCPConnection(selectedValue.getHostAddress(), selectedValue.getPort(), -1, true, true); + isConfigValid = fcp.connect(); + + Logger.debug(this, "isConfigValid ="+isConfigValid); + + // Reload, just in case it failed... + goon = true; + list.removeSelectionInterval(0, foundNodes.size()); + } while(!isConfigValid); + + Logger.debug(this, "We got something that looks valid from the UI : let's propagate changes to the config"); + + // Save the config. now that we know it's valid + config.setValue("nodeAddress", selectedValue.getHostAddress()); + config.setValue("nodePort", new Integer(selectedValue.getPort()).toString()); + try { + config.setValue("sameComputer", (jmdns.getInterface().equals(selectedValue.getAddress()) ? "true" : "false")); + } catch (IOException e ) {} // What can we do except assuming default is fine ? + + + Logger.info(this, "We are done : configuration has been saved sucessfully."); + + // Close the fcp socket we have openned, cleanup + fcp.disconnect(); + jmdns.close(); + this.setVisible(false); + } + + /** + * Convenient testing function function. + */ + public static void main(String[] args) { + new MDNSDiscoveryPanel(new Config("/tmp/conf.ini")).run(); + System.exit(0); + } +} From jflesch at freenetproject.org Fri Mar 9 20:13:39 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Fri, 9 Mar 2007 20:13:39 +0000 (UTC) Subject: [Thaw-dev] r12071 - in trunk/apps/Thaw: images src/thaw/core src/thaw/fcp src/thaw/gui src/thaw/i18n src/thaw/plugins src/thaw/plugins/peerMonitor Message-ID: <20070309201339.C057D9C295@emu.freenetproject.org> Author: jflesch Date: 2007-03-09 20:13:38 +0000 (Fri, 09 Mar 2007) New Revision: 12071 Added: trunk/apps/Thaw/images/min-peerMonitor.png trunk/apps/Thaw/images/peerMonitor.png trunk/apps/Thaw/src/thaw/plugins/peerMonitor/ trunk/apps/Thaw/src/thaw/plugins/peerMonitor/PeerMonitorPanel.java Modified: trunk/apps/Thaw/images/queueWatcher.png trunk/apps/Thaw/src/thaw/core/IconBox.java trunk/apps/Thaw/src/thaw/core/Logger.java trunk/apps/Thaw/src/thaw/core/PluginManager.java trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java trunk/apps/Thaw/src/thaw/fcp/FCPClientPut.java trunk/apps/Thaw/src/thaw/fcp/FCPConnection.java trunk/apps/Thaw/src/thaw/gui/MDNSDiscoveryPanel.java trunk/apps/Thaw/src/thaw/i18n/thaw.properties trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties Log: Fix Thaw build Added: trunk/apps/Thaw/images/min-peerMonitor.png =================================================================== (Binary files differ) Property changes on: trunk/apps/Thaw/images/min-peerMonitor.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/apps/Thaw/images/peerMonitor.png =================================================================== (Binary files differ) Property changes on: trunk/apps/Thaw/images/peerMonitor.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/apps/Thaw/images/queueWatcher.png =================================================================== (Binary files differ) Modified: trunk/apps/Thaw/src/thaw/core/IconBox.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/IconBox.java 2007-03-09 19:57:01 UTC (rev 12070) +++ trunk/apps/Thaw/src/thaw/core/IconBox.java 2007-03-09 20:13:38 UTC (rev 12071) @@ -73,6 +73,10 @@ public static ImageIcon queueWatcher; public static ImageIcon importExport; + public static ImageIcon peerMonitor; + public static ImageIcon minPeerMonitor; + + public static ImageIcon minImportAction; public static ImageIcon minExportAction; @@ -114,48 +118,51 @@ return new ImageIcon(url); } + public static void loadIcons() { - IconBox.blueBunny = IconBox.loadIcon("blueBunny.png"); - IconBox.connectAction = IconBox.loadIcon("connect.png"); - IconBox.minConnectAction = IconBox.loadIcon("min-connect.png"); - IconBox.disconnectAction = IconBox.loadIcon("disconnect.png"); - IconBox.queue = IconBox.loadIcon("connect.png"); - IconBox.minQueue = IconBox.loadIcon("min-connect.png"); - IconBox.insertions = IconBox.loadIcon("insertion.png"); - IconBox.minInsertions = IconBox.loadIcon("min-insertion.png"); - IconBox.minIndex = IconBox.loadIcon("min-index.png"); - IconBox.minIndexReadOnly = IconBox.loadIcon("min-indexReadOnly.png"); - IconBox.indexNew = IconBox.loadIcon("index-new.png"); - IconBox.indexReuse = IconBox.loadIcon("indexReadOnly.png"); - IconBox.downloads = IconBox.loadIcon("download.png"); - IconBox.minDownloads = IconBox.loadIcon("min-download.png"); - IconBox.settings = IconBox.loadIcon("settings.png"); - IconBox.minSettings = IconBox.loadIcon("min-settings.png"); - IconBox.indexBrowser = IconBox.loadIcon("index.png"); - IconBox.minIndexBrowser = IconBox.loadIcon("min-index.png"); - IconBox.addToIndexAction = IconBox.loadIcon("add.png"); - IconBox.add = IconBox.loadIcon("add.png"); + IconBox.blueBunny = IconBox.loadIcon("blueBunny.png"); + IconBox.connectAction = IconBox.loadIcon("connect.png"); + IconBox.minConnectAction = IconBox.loadIcon("min-connect.png"); + IconBox.disconnectAction = IconBox.loadIcon("disconnect.png"); + IconBox.queue = IconBox.loadIcon("connect.png"); + IconBox.minQueue = IconBox.loadIcon("min-connect.png"); + IconBox.insertions = IconBox.loadIcon("insertion.png"); + IconBox.minInsertions = IconBox.loadIcon("min-insertion.png"); + IconBox.minIndex = IconBox.loadIcon("min-index.png"); + IconBox.minIndexReadOnly = IconBox.loadIcon("min-indexReadOnly.png"); + IconBox.indexNew = IconBox.loadIcon("index-new.png"); + IconBox.indexReuse = IconBox.loadIcon("indexReadOnly.png"); + IconBox.downloads = IconBox.loadIcon("download.png"); + IconBox.minDownloads = IconBox.loadIcon("min-download.png"); + IconBox.settings = IconBox.loadIcon("settings.png"); + IconBox.minSettings = IconBox.loadIcon("min-settings.png"); + IconBox.indexBrowser = IconBox.loadIcon("index.png"); + IconBox.minIndexBrowser = IconBox.loadIcon("min-index.png"); + IconBox.addToIndexAction = IconBox.loadIcon("add.png"); + IconBox.add = IconBox.loadIcon("add.png"); IconBox.insertAndAddToIndexAction = IconBox.loadIcon("index.png"); - IconBox.makeALinkAction = IconBox.loadIcon("makeLink.png"); - IconBox.reconnectAction = IconBox.loadIcon("refresh.png"); + IconBox.makeALinkAction = IconBox.loadIcon("makeLink.png"); + IconBox.reconnectAction = IconBox.loadIcon("refresh.png"); IconBox.minReconnectAction = IconBox.loadIcon("min-refresh.png"); - IconBox.refreshAction = IconBox.loadIcon("refresh.png"); - IconBox.quitAction = IconBox.loadIcon("quit.png"); - IconBox.minQuitAction = IconBox.loadIcon("min-quit.png"); - IconBox.key = IconBox.loadIcon("key.png"); - IconBox.delete = IconBox.loadIcon("delete.png"); - IconBox.folderNew = IconBox.loadIcon("folder-new.png"); - IconBox.help = IconBox.loadIcon("help.png"); - IconBox.minHelp = IconBox.loadIcon("min-help.png"); - IconBox.mainWindow = IconBox.loadIcon("mainWindow.png"); - IconBox.terminal = IconBox.loadIcon("terminal.png"); - IconBox.minTerminal = IconBox.loadIcon("min-terminal.png"); - IconBox.remove = IconBox.loadIcon("remove.png"); - IconBox.queueWatcher = IconBox.loadIcon("queueWatcher.png"); - IconBox.importExport = IconBox.loadIcon("refresh.png"); - IconBox.minImportAction = IconBox.loadIcon("min-import.png"); - IconBox.minExportAction = IconBox.loadIcon("min-export.png"); - IconBox.database = IconBox.loadIcon("database.png"); + IconBox.refreshAction = IconBox.loadIcon("refresh.png"); + IconBox.quitAction = IconBox.loadIcon("quit.png"); + IconBox.minQuitAction = IconBox.loadIcon("min-quit.png"); + IconBox.key = IconBox.loadIcon("key.png"); + IconBox.delete = IconBox.loadIcon("delete.png"); + IconBox.folderNew = IconBox.loadIcon("folder-new.png"); + IconBox.help = IconBox.loadIcon("help.png"); + IconBox.minHelp = IconBox.loadIcon("min-help.png"); + IconBox.mainWindow = IconBox.loadIcon("mainWindow.png"); + IconBox.terminal = IconBox.loadIcon("terminal.png"); + IconBox.minTerminal = IconBox.loadIcon("min-terminal.png"); + IconBox.remove = IconBox.loadIcon("remove.png"); + IconBox.queueWatcher = IconBox.loadIcon("queueWatcher.png"); + IconBox.importExport = IconBox.loadIcon("refresh.png"); + IconBox.minImportAction = IconBox.loadIcon("min-import.png"); + IconBox.minExportAction = IconBox.loadIcon("min-export.png"); + IconBox.database = IconBox.loadIcon("database.png"); + IconBox.minPeerMonitor = IconBox.loadIcon("min-peerMonitor.png"); + IconBox.peerMonitor = IconBox.loadIcon("peerMonitor.png"); } } Modified: trunk/apps/Thaw/src/thaw/core/Logger.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/Logger.java 2007-03-09 19:57:01 UTC (rev 12070) +++ trunk/apps/Thaw/src/thaw/core/Logger.java 2007-03-09 20:13:38 UTC (rev 12071) @@ -22,7 +22,7 @@ * 2 or more is recommanded. * 4 or more is unhealthy */ - public final static int LOG_LEVEL = 2; + public final static int LOG_LEVEL = 5; private static Vector logListeners = null; Modified: trunk/apps/Thaw/src/thaw/core/PluginManager.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/PluginManager.java 2007-03-09 19:57:01 UTC (rev 12070) +++ trunk/apps/Thaw/src/thaw/core/PluginManager.java 2007-03-09 20:13:38 UTC (rev 12071) @@ -19,6 +19,7 @@ }; private final static String[] knownPlugins = { + "thaw.plugins.PeerMonitor", "thaw.plugins.QueueWatcher", "thaw.plugins.FetchPlugin", "thaw.plugins.InsertPlugin", Modified: trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java =================================================================== --- trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java 2007-03-09 19:57:01 UTC (rev 12070) +++ trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java 2007-03-09 20:13:38 UTC (rev 12071) @@ -228,9 +228,7 @@ queueManager.getQueryManager().deleteObserver(this); queueManager.getQueryManager().addObserver(this); - queueManager.getQueryManager().writeMessage(queryMessage); - - return true; + return queueManager.getQueryManager().writeMessage(queryMessage); } Modified: trunk/apps/Thaw/src/thaw/fcp/FCPClientPut.java =================================================================== --- trunk/apps/Thaw/src/thaw/fcp/FCPClientPut.java 2007-03-09 19:57:01 UTC (rev 12070) +++ trunk/apps/Thaw/src/thaw/fcp/FCPClientPut.java 2007-03-09 20:13:38 UTC (rev 12071) @@ -255,7 +255,7 @@ status = "Waiting for socket availability"; - Logger.info(this, "Another file is being uploaded ... waiting ..."); + Logger.info(this, "Waiting for socket availability ..."); final Thread fork = new Thread(new UnlockWaiter(this, connection)); Modified: trunk/apps/Thaw/src/thaw/fcp/FCPConnection.java =================================================================== --- trunk/apps/Thaw/src/thaw/fcp/FCPConnection.java 2007-03-09 19:57:01 UTC (rev 12070) +++ trunk/apps/Thaw/src/thaw/fcp/FCPConnection.java 2007-03-09 20:13:38 UTC (rev 12071) @@ -14,12 +14,12 @@ * After being instanciated, you should commit it to the FCPQueryManager, and then * commit the FCPQueryManager to the FCPQueueManager. * Call observer when connected / disconnected.
- * WARNING: This FCP implement don't guarantee that messages are sent in the same order than initally put + * WARNING: This FCP implementation doesn't guarantee that messages are sent in the same order than initally put * if the lock on writting is not set !
- * TODO: Add functions socketToStream(long size, OutputStream file) / streamToSocket(InputStream file) */ public class FCPConnection extends Observable { - /** If == true, then will print on stdout + /** + * If == true, then will print on stdout * all fcp input / output. */ private final static boolean DEBUG_MODE = true; Modified: trunk/apps/Thaw/src/thaw/gui/MDNSDiscoveryPanel.java =================================================================== --- trunk/apps/Thaw/src/thaw/gui/MDNSDiscoveryPanel.java 2007-03-09 19:57:01 UTC (rev 12070) +++ trunk/apps/Thaw/src/thaw/gui/MDNSDiscoveryPanel.java 2007-03-09 20:13:38 UTC (rev 12071) @@ -12,7 +12,8 @@ import javax.jmdns.ServiceInfo; import javax.jmdns.ServiceListener; import javax.swing.DefaultListModel; -import javax.swing.GroupLayout; +import java.awt.GridLayout; +import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; @@ -27,17 +28,17 @@ /** * This panel implements Zeroconf (called Bonjour/RendezVous by apple) discovery for Thaw - * + * * WARNING: for it to work, you must have a running freenet node on the same network subnet, using the MDNSDiscovery panel - * + * * @author Florent Daignière <nextgens at freenetproject.org> * * @see http://wiki.freenetproject.org/MDNSDiscoverypanel - * + * * @see http://www.dns-sd.org/ServiceTypes.html * @see http://www.multicastdns.org/ - * @see http://jmdns.sourceforge.net/ - * + * @see http://jmdns.sourceforge.net/ + * * TODO: implement the "Manual" mode * TODO: maybe we should have a small progressbar shown in a new popup to introduce a "delay" at startup */ @@ -74,7 +75,7 @@ throw new RuntimeException("Error loading MDNSDiscoveryPanel : " + e.getMessage()); } - // The UI + // The UI panel = new JScrollPane(); progressBar = new JProgressBar(0, 30); list = new JList(); @@ -87,34 +88,15 @@ list.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); list.addListSelectionListener(this); - panel.setViewportView(list); - label.setText("Select the freenet node you want to connect to from the list below :"); - panel.add(progressBar); + panel.setLayout(new BorderLayout()); + panel.add(label, BorderLayout.NORTH); + panel.add(list, BorderLayout.CENTER); + panel.add(progressBar, BorderLayout.SOUTH); - GroupLayout layout = new GroupLayout(this.getContentPane()); + setContentPane(panel); - getContentPane().setLayout(layout); - layout.setHorizontalGroup( - layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(label, GroupLayout.PREFERRED_SIZE, 430, GroupLayout.PREFERRED_SIZE)) - .addGroup(layout.createSequentialGroup() - .addGap(36, 36, 36) - .addComponent(panel, GroupLayout.PREFERRED_SIZE, 380, GroupLayout.PREFERRED_SIZE)) - ); - layout.setVerticalGroup( - layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(7, 7, 7) - .addComponent(label) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(panel, GroupLayout.PREFERRED_SIZE, 70, GroupLayout.PREFERRED_SIZE) - .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - ); - pack(); super.setAlwaysOnTop(true); super.setLocationRelativeTo(this.getParent()); @@ -125,6 +107,7 @@ Logger.notice(this, "The configuration file doesn't seems to be valid... MDNSDiscovery is starting!"); } + private class FCPMDNSListener implements ServiceListener { private final MDNSDiscoveryPanel panel; @@ -190,7 +173,7 @@ while(goon) { try { synchronized (this) { - wait(Long.MAX_VALUE); + wait(Long.MAX_VALUE); } } catch (InterruptedException e) {} Modified: trunk/apps/Thaw/src/thaw/i18n/thaw.properties =================================================================== --- trunk/apps/Thaw/src/thaw/i18n/thaw.properties 2007-03-09 19:57:01 UTC (rev 12070) +++ trunk/apps/Thaw/src/thaw/i18n/thaw.properties 2007-03-09 20:13:38 UTC (rev 12071) @@ -299,3 +299,6 @@ thaw.plugin.index.sortAlphabetically=Sort by alphabetic order thaw.plugin.index.loadOnTheFly=Load the index tree on the fly (means less memory consumption but more CPU usage) + + +thaw.plugin.peerMonitor.peerMonitor=Peer management Modified: trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties =================================================================== --- trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties 2007-03-09 19:57:01 UTC (rev 12070) +++ trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties 2007-03-09 20:13:38 UTC (rev 12071) @@ -234,3 +234,4 @@ thaw.plugin.index.addAlreadyExistingIndex=Ajouter un index d?j? pr?sent sur Freenet +thaw.plugin.peerMonitor.peerMonitor=Gestion des peers Added: trunk/apps/Thaw/src/thaw/plugins/peerMonitor/PeerMonitorPanel.java =================================================================== --- trunk/apps/Thaw/src/thaw/plugins/peerMonitor/PeerMonitorPanel.java (rev 0) +++ trunk/apps/Thaw/src/thaw/plugins/peerMonitor/PeerMonitorPanel.java 2007-03-09 20:13:38 UTC (rev 12071) @@ -0,0 +1,43 @@ +package thaw.plugins.peerMonitor; + +import javax.swing.JPanel; +import javax.swing.JTextArea; +import javax.swing.JScrollPane; +import javax.swing.JList; +import javax.swing.JLabel; + +import java.awt.BorderLayout; +import java.awt.GridLayout; + +import thaw.core.Config; + + +public class PeerMonitorPanel +{ + private JPanel panel; + + private JPanel mainPanel; + + private JList peerList; + + + public PeerMonitorPanel(Config config) { + panel = new JPanel(new BorderLayout()); + + peerList = new JList(); + + mainPanel = new JPanel(new GridLayout(2, 1)); + + mainPanel.add(new JLabel("*Put the node ref here*")); + mainPanel.add(new JLabel("*Put details about the peer here*")); + + panel.add(mainPanel, BorderLayout.CENTER); + panel.add(peerList, BorderLayout.EAST); + } + + + public JPanel getPanel() { + return panel; + } + +} From jflesch at freenetproject.org Fri Mar 9 20:41:02 2007 From: jflesch at freenetproject.org (jflesch at freenetproject.org) Date: Fri, 9 Mar 2007 20:41:02 +0000 (UTC) Subject: [Thaw-dev] r12072 - in trunk/apps/Thaw/src/thaw: core core/gui gui plugins plugins/fetchPlugin plugins/index plugins/queueWatcher Message-ID: <20070309204102.743FB9C29E@emu.freenetproject.org> Author: jflesch Date: 2007-03-09 20:41:01 +0000 (Fri, 09 Mar 2007) New Revision: 12072 Added: trunk/apps/Thaw/src/thaw/core/gui/ trunk/apps/Thaw/src/thaw/core/gui/MDNSDiscoveryPanel.java trunk/apps/Thaw/src/thaw/gui/GUIHelper.java trunk/apps/Thaw/src/thaw/gui/IconBox.java Removed: trunk/apps/Thaw/src/thaw/core/GUIHelper.java trunk/apps/Thaw/src/thaw/core/IconBox.java trunk/apps/Thaw/src/thaw/gui/MDNSDiscoveryPanel.java Modified: trunk/apps/Thaw/src/thaw/core/ConfigWindow.java trunk/apps/Thaw/src/thaw/core/Core.java trunk/apps/Thaw/src/thaw/core/MainWindow.java trunk/apps/Thaw/src/thaw/core/PluginManager.java trunk/apps/Thaw/src/thaw/plugins/FetchPlugin.java trunk/apps/Thaw/src/thaw/plugins/Hsqldb.java trunk/apps/Thaw/src/thaw/plugins/IndexBrowser.java trunk/apps/Thaw/src/thaw/plugins/IndexExporter.java trunk/apps/Thaw/src/thaw/plugins/InsertPlugin.java trunk/apps/Thaw/src/thaw/plugins/LogConsole.java trunk/apps/Thaw/src/thaw/plugins/QueueWatcher.java trunk/apps/Thaw/src/thaw/plugins/SqlConsole.java trunk/apps/Thaw/src/thaw/plugins/StatusBar.java trunk/apps/Thaw/src/thaw/plugins/fetchPlugin/FetchPanel.java trunk/apps/Thaw/src/thaw/plugins/index/FileTable.java trunk/apps/Thaw/src/thaw/plugins/index/IndexConfigPanel.java trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java trunk/apps/Thaw/src/thaw/plugins/index/LinkTable.java trunk/apps/Thaw/src/thaw/plugins/index/UnknownIndexList.java trunk/apps/Thaw/src/thaw/plugins/queueWatcher/QueuePanel.java Log: Fix thaw build (bis) + move some files Modified: trunk/apps/Thaw/src/thaw/core/ConfigWindow.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/ConfigWindow.java 2007-03-09 20:13:38 UTC (rev 12071) +++ trunk/apps/Thaw/src/thaw/core/ConfigWindow.java 2007-03-09 20:41:01 UTC (rev 12072) @@ -13,6 +13,7 @@ import javax.swing.JPanel; import javax.swing.JTabbedPane; +import thaw.gui.IconBox; /** Modified: trunk/apps/Thaw/src/thaw/core/Core.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/Core.java 2007-03-09 20:13:38 UTC (rev 12071) +++ trunk/apps/Thaw/src/thaw/core/Core.java 2007-03-09 20:41:01 UTC (rev 12072) @@ -14,8 +14,10 @@ import thaw.fcp.FCPQueueLoader; import thaw.fcp.FCPQueueManager; import thaw.fcp.FCPWatchGlobal; -import thaw.gui.MDNSDiscoveryPanel; +import thaw.core.gui.MDNSDiscoveryPanel; +import thaw.gui.IconBox; + /** * A "core" contains references to all the main parts of Thaw. * The Core has all the functions needed to initialize Thaw / stop Thaw. @@ -144,7 +146,7 @@ config.setDefaultValues(); new MDNSDiscoveryPanel(config).run(); } - + return true; } Deleted: trunk/apps/Thaw/src/thaw/core/GUIHelper.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/GUIHelper.java 2007-03-09 20:13:38 UTC (rev 12071) +++ trunk/apps/Thaw/src/thaw/core/GUIHelper.java 2007-03-09 20:41:01 UTC (rev 12072) @@ -1,57 +0,0 @@ -package thaw.core; - -import java.awt.Toolkit; -import java.awt.datatransfer.Clipboard; -import java.awt.datatransfer.DataFlavor; -import java.awt.datatransfer.Transferable; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.AbstractButton; -import javax.swing.text.JTextComponent; - -public class GUIHelper { - - public GUIHelper() { - - } - - public static class PasteHelper implements ActionListener { - JTextComponent txtComp; - - public PasteHelper(final AbstractButton src, final JTextComponent txtComp) { - if (src != null) - src.addActionListener(this); - this.txtComp = txtComp; - } - - public void actionPerformed(final ActionEvent evt) { - GUIHelper.pasteToComponent(txtComp); - } - } - - public static void pasteToComponent(final JTextComponent txtComp) { - final Toolkit tk = Toolkit.getDefaultToolkit(); - final Clipboard cp = tk.getSystemClipboard(); - - String result; - final Transferable contents = cp.getContents(null); - - final boolean hasTransferableText = ((contents != null) && - contents.isDataFlavorSupported(DataFlavor.stringFlavor)); - - try { - if ( hasTransferableText ) { - result = (String)contents.getTransferData(DataFlavor.stringFlavor); - txtComp.setText(txtComp.getText() + result); - } else { - Logger.notice(new GUIHelper(), "Nothing to get from clipboard"); - } - } catch(final java.awt.datatransfer.UnsupportedFlavorException e) { - Logger.error(new GUIHelper(), "Error while pasting: UnsupportedFlavorException: "+e.toString()); - } catch(final java.io.IOException e) { - Logger.error(new GUIHelper(), "Error while pasting: IOException: "+e.toString()); - } - } - -} Deleted: trunk/apps/Thaw/src/thaw/core/IconBox.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/IconBox.java 2007-03-09 20:13:38 UTC (rev 12071) +++ trunk/apps/Thaw/src/thaw/core/IconBox.java 2007-03-09 20:41:01 UTC (rev 12072) @@ -1,168 +0,0 @@ -package thaw.core; - -import java.net.URL; - -import javax.swing.ImageIcon; - -/** - * This class is simply an helper to find and load quickly some common icons. - */ -public class IconBox { - - /** - * Freenet logo :) - */ - public static ImageIcon blueBunny; - - public static ImageIcon connectAction; - public static ImageIcon minConnectAction; - - public static ImageIcon disconnectAction; - - public static ImageIcon queue; - public static ImageIcon minQueue; - - public static ImageIcon insertions; - public static ImageIcon minInsertions; - - public static ImageIcon downloads; - public static ImageIcon minDownloads; - - public static ImageIcon indexBrowser; - public static ImageIcon minIndexBrowser; - - public static ImageIcon addToIndexAction; - - public static ImageIcon insertAndAddToIndexAction; - - public static ImageIcon makeALinkAction; - - public static ImageIcon minIndex; - public static ImageIcon minIndexReadOnly; - - public static ImageIcon indexNew; - public static ImageIcon indexReuse; - - public static ImageIcon delete; - - public static ImageIcon refreshAction; - - public static ImageIcon settings; - public static ImageIcon minSettings; - - public static ImageIcon reconnectAction; - public static ImageIcon minReconnectAction; - - public static ImageIcon quitAction; - public static ImageIcon minQuitAction; - - public static ImageIcon key; - - public static ImageIcon help; - public static ImageIcon minHelp; - - public static ImageIcon folderNew; - - public static ImageIcon mainWindow; - - public static ImageIcon add; - public static ImageIcon remove; - - public static ImageIcon terminal; - public static ImageIcon minTerminal; - public static ImageIcon queueWatcher; - public static ImageIcon importExport; - - public static ImageIcon peerMonitor; - public static ImageIcon minPeerMonitor; - - - public static ImageIcon minImportAction; - public static ImageIcon minExportAction; - - public static ImageIcon database; - - /** - * Not really used - */ - public IconBox() { - - } - - protected static ImageIcon loadIcon(final String fileName) { - URL url; - Class daClass; - ClassLoader classLoader; - - daClass = (new IconBox()).getClass(); - - if (daClass == null) { - Logger.error(new IconBox(), "Icon '"+fileName+"' not found ! (Class)"); - return null; - } - - classLoader = daClass.getClassLoader(); - - if (classLoader == null) { - Logger.error(new IconBox(), "Icon '"+fileName+"' not found ! (ClassLoader)"); - return null; - } - - url = classLoader.getResource(fileName); - - if (url == null) { - Logger.error(new IconBox(), "Icon '"+fileName+"' not found ! (Resource)"); - return null; - } - - return new ImageIcon(url); - } - - - public static void loadIcons() { - IconBox.blueBunny = IconBox.loadIcon("blueBunny.png"); - IconBox.connectAction = IconBox.loadIcon("connect.png"); - IconBox.minConnectAction = IconBox.loadIcon("min-connect.png"); - IconBox.disconnectAction = IconBox.loadIcon("disconnect.png"); - IconBox.queue = IconBox.loadIcon("connect.png"); - IconBox.minQueue = IconBox.loadIcon("min-connect.png"); - IconBox.insertions = IconBox.loadIcon("insertion.png"); - IconBox.minInsertions = IconBox.loadIcon("min-insertion.png"); - IconBox.minIndex = IconBox.loadIcon("min-index.png"); - IconBox.minIndexReadOnly = IconBox.loadIcon("min-indexReadOnly.png"); - IconBox.indexNew = IconBox.loadIcon("index-new.png"); - IconBox.indexReuse = IconBox.loadIcon("indexReadOnly.png"); - IconBox.downloads = IconBox.loadIcon("download.png"); - IconBox.minDownloads = IconBox.loadIcon("min-download.png"); - IconBox.settings = IconBox.loadIcon("settings.png"); - IconBox.minSettings = IconBox.loadIcon("min-settings.png"); - IconBox.indexBrowser = IconBox.loadIcon("index.png"); - IconBox.minIndexBrowser = IconBox.loadIcon("min-index.png"); - IconBox.addToIndexAction = IconBox.loadIcon("add.png"); - IconBox.add = IconBox.loadIcon("add.png"); - IconBox.insertAndAddToIndexAction = IconBox.loadIcon("index.png"); - IconBox.makeALinkAction = IconBox.loadIcon("makeLink.png"); - IconBox.reconnectAction = IconBox.loadIcon("refresh.png"); - IconBox.minReconnectAction = IconBox.loadIcon("min-refresh.png"); - IconBox.refreshAction = IconBox.loadIcon("refresh.png"); - IconBox.quitAction = IconBox.loadIcon("quit.png"); - IconBox.minQuitAction = IconBox.loadIcon("min-quit.png"); - IconBox.key = IconBox.loadIcon("key.png"); - IconBox.delete = IconBox.loadIcon("delete.png"); - IconBox.folderNew = IconBox.loadIcon("folder-new.png"); - IconBox.help = IconBox.loadIcon("help.png"); - IconBox.minHelp = IconBox.loadIcon("min-help.png"); - IconBox.mainWindow = IconBox.loadIcon("mainWindow.png"); - IconBox.terminal = IconBox.loadIcon("terminal.png"); - IconBox.minTerminal = IconBox.loadIcon("min-terminal.png"); - IconBox.remove = IconBox.loadIcon("remove.png"); - IconBox.queueWatcher = IconBox.loadIcon("queueWatcher.png"); - IconBox.importExport = IconBox.loadIcon("refresh.png"); - IconBox.minImportAction = IconBox.loadIcon("min-import.png"); - IconBox.minExportAction = IconBox.loadIcon("min-export.png"); - IconBox.database = IconBox.loadIcon("database.png"); - IconBox.minPeerMonitor = IconBox.loadIcon("min-peerMonitor.png"); - IconBox.peerMonitor = IconBox.loadIcon("peerMonitor.png"); - } - -} Modified: trunk/apps/Thaw/src/thaw/core/MainWindow.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/MainWindow.java 2007-03-09 20:13:38 UTC (rev 12071) +++ trunk/apps/Thaw/src/thaw/core/MainWindow.java 2007-03-09 20:41:01 UTC (rev 12072) @@ -20,6 +20,9 @@ import javax.swing.WindowConstants; +import thaw.gui.IconBox; + + /** * MainWindow. This class create the main window. * Modified: trunk/apps/Thaw/src/thaw/core/PluginManager.java =================================================================== --- trunk/apps/Thaw/src/thaw/core/PluginManager.java 2007-03-09 20:13:38 UTC (rev 12071) +++ trunk/apps/Thaw/src/thaw/core/PluginManager.java 2007-03-09 20:41:01 UTC (rev 12072) @@ -127,7 +127,7 @@ if ((icon = plugin.getIcon()) != null) core.getSplashScreen().addIcon(icon); else - core.getSplashScreen().addIcon(IconBox.add); + core.getSplashScreen().addIcon(thaw.gui.IconBox.add); plugin.run(core); } Copied: trunk/apps/Thaw/src/thaw/core/gui/MDNSDiscoveryPanel.java (from rev 12071, trunk/apps/Thaw/src/thaw/gui/MDNSDiscoveryPanel.java) =================================================================== --- trunk/apps/Thaw/src/thaw/core/gui/MDNSDiscoveryPanel.java (rev 0) +++ trunk/apps/Thaw/src/thaw/core/gui/MDNSDiscoveryPanel.java 2007-03-09 20:41:01 UTC (rev 12072) @@ -0,0 +1,223 @@ +/* This code is part of Freenet. It is distributed under the GNU General + * Public License, version 2 (or at your option any later version). See + * http://www.gnu.org/ for further details of the GPL. */ + +package thaw.core.gui; + +import java.io.IOException; +import java.util.HashMap; + +import javax.jmdns.JmDNS; +import javax.jmdns.ServiceEvent; +import javax.jmdns.ServiceInfo; +import javax.jmdns.ServiceListener; +import javax.swing.DefaultListModel; +import java.awt.GridLayout; +import java.awt.BorderLayout; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.JProgressBar; +import javax.swing.JScrollPane; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; + +import thaw.core.Config; +import thaw.core.Logger; +import thaw.fcp.FCPConnection; + +/** + * This panel implements Zeroconf (called Bonjour/RendezVous by apple) discovery for Thaw + * + * WARNING: for it to work, you must have a running freenet node on the same network subnet, using the MDNSDiscovery panel + * + * @author Florent Daignière <nextgens at freenetproject.org> + * + * @see http://wiki.freenetproject.org/MDNSDiscoverypanel + * + * @see http://www.dns-sd.org/ServiceTypes.html + * @see http://www.multicastdns.org/ + * @see http://jmdns.sourceforge.net/ + * + * TODO: implement the "Manual" mode + * TODO: maybe we should have a small progressbar shown in a new popup to introduce a "delay" at startup + */ +public class MDNSDiscoveryPanel extends JFrame implements ListSelectionListener { + private static final long serialVersionUID = 1L; + + private static final String FCP_SERVICE_TYPE = "_fcp._tcp.local."; + + private boolean goon = true; + private ServiceInfo selectedValue; + + private final JScrollPane panel; + private final JProgressBar progressBar; + private final JList list; + private final DefaultListModel listModel; + private final JLabel label; + + private final Config config; + private final HashMap foundNodes; + private final JmDNS jmdns; + + public MDNSDiscoveryPanel(Config conf) { + this.config = conf; + this.foundNodes = new HashMap(); + try { + // Spawn the mdns listener + this.jmdns = new JmDNS(); + + // Start listening for new nodes + jmdns.addServiceListener(MDNSDiscoveryPanel.FCP_SERVICE_TYPE, new FCPMDNSListener(this)); + + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("Error loading MDNSDiscoveryPanel : " + e.getMessage()); + } + + // The UI + panel = new JScrollPane(); + progressBar = new JProgressBar(0, 30); + list = new JList(); + listModel = new DefaultListModel(); + label = new JLabel(); + + listModel.addElement("Manual configuration (not recommended) : NotYetImplemented ;)"); + + list.setModel(listModel); + list.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); + list.addListSelectionListener(this); + + label.setText("Select the freenet node you want to connect to from the list below :"); + + panel.setLayout(new BorderLayout()); + panel.add(label, BorderLayout.NORTH); + panel.add(list, BorderLayout.CENTER); + panel.add(progressBar, BorderLayout.SOUTH); + + setContentPane(panel); + + pack(); + + super.setLocationRelativeTo(this.getParent()); + this.setTitle("ZeroConf discovery plugin... Please hold on"); + this.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); + this.setVisible(true); + + Logger.notice(this, "The configuration file doesn't seems to be valid... MDNSDiscovery is starting!"); + } + + + private class FCPMDNSListener implements ServiceListener { + private final MDNSDiscoveryPanel panel; + + public FCPMDNSListener(MDNSDiscoveryPanel panel) { + this.panel = panel; + } + + public void serviceAdded(ServiceEvent event) { + Logger.notice(this, "Service added : " + event.getName()+"."+event.getType()); + // Force the gathering of informations + jmdns.getServiceInfo(MDNSDiscoveryPanel.FCP_SERVICE_TYPE, event.getName()); + } + + public synchronized void serviceRemoved(ServiceEvent event) { + Logger.notice(this, "Service removed : " + event.getName()+"."+event.getType()); + ServiceInfo service = event.getInfo(); + + synchronized (panel) { + panel.foundNodes.remove(service.getName()); + panel.listModel.removeElement(service.getName()); + notify(); + } + } + + public synchronized void serviceResolved(ServiceEvent event) { + Logger.debug(this, "Service resolved: " + event.getInfo()); + ServiceInfo service = event.getInfo(); + + synchronized (panel) { + panel.foundNodes.put(service.getName(), service); + panel.listModel.addElement(service.getName()); + notify(); + } + } + } + + /** + * The user has selected something: notify the main loop and process the data. + */ + public void valueChanged(ListSelectionEvent e) { + if (e.getValueIsAdjusting() == false) { + if(list.getSelectedValue() == null) return; // Ignore the user if he clicks nowhere + + synchronized (this) { + selectedValue = (ServiceInfo) foundNodes.get(list.getSelectedValue()); + goon = false; + notify(); + } + Logger.debug(this, "User has selected : "+foundNodes.get(list.getSelectedValue())); + } + } + + /** + * The main loop : TheRealMeat(TM) + * + */ + public void run() { + boolean isConfigValid = false; + FCPConnection fcp = null; + + do { + // Loop until a selection is done + while(goon) { + try { + synchronized (this) { + wait(Long.MAX_VALUE); + } + } catch (InterruptedException e) {} + + list.repaint(); + } + + if(selectedValue == null) continue; // TODO: implement the "manual" popup there + + Logger.debug(this, "We got something from the UI : let's try to connect"); + + // We try to connect to the server + fcp = new FCPConnection(selectedValue.getHostAddress(), selectedValue.getPort(), -1, true, true); + isConfigValid = fcp.connect(); + + Logger.debug(this, "isConfigValid ="+isConfigValid); + + // Reload, just in case it failed... + goon = true; + list.removeSelectionInterval(0, foundNodes.size()); + } while(!isConfigValid); + + Logger.debug(this, "We got something that looks valid from the UI : let's propagate changes to the config"); + + // Save the config. now that we know it's valid + config.setValue("nodeAddress", selectedValue.getHostAddress()); + config.setValue("nodePort", new Integer(selectedValue.getPort()).toString()); + try { + config.setValue("sameComputer", (jmdns.getInterface().equals(selectedValue.getAddress()) ? "true" : "false")); + } catch (IOException e ) {} // What can we do except assuming default is fine ? + + + Logger.info(this, "We are done : configuration has been saved sucessfully."); + + // Close the fcp socket we have openned, cleanup + fcp.disconnect(); + jmdns.close(); + this.setVisible(false); + } + + /** + * Convenient testing function function. + */ + public static void main(String[] args) { + new MDNSDiscoveryPanel(new Config("/tmp/conf.ini")).run(); + System.exit(0); + } +} Copied: trunk/apps/Thaw/src/thaw/gui/GUIHelper.java (from rev 12055, trunk/apps/Thaw/src/thaw/core/GUIHelper.java) =================================================================== --- trunk/apps/Thaw/src/thaw/gui/GUIHelper.java (rev 0) +++ trunk/apps/Thaw/src/thaw/gui/GUIHelper.java 2007-03-09 20:41:01 UTC (rev 12072) @@ -0,0 +1,59 @@ +package thaw.gui; + +import java.awt.Toolkit; +import java.awt.datatransfer.Clipboard; +import java.awt.datatransfer.DataFlavor; +import java.awt.datatransfer.Transferable; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.AbstractButton; +import javax.swing.text.JTextComponent; + +import thaw.core.Logger; + +public class GUIHelper { + + public GUIHelper() { + + } + + public static class PasteHelper implements ActionListener { + JTextComponent txtComp; + + public PasteHelper(final AbstractButton src, final JTextComponent txtComp) { + if (src != null) + src.addActionListener(this); + this.txtComp = txtComp; + } + + public void actionPerformed(final ActionEvent evt) { + GUIHelper.pasteToComponent(txtComp); + } + } + + public static void pasteToComponent(final JTextComponent txtComp) { + final Toolkit tk = Toolkit.getDefaultToolkit(); + final Clipboard cp = tk.getSystemClipboard(); + + String result; + final Transferable contents = cp.getContents(null); + + final boolean hasTransferableText = ((contents != null) && + contents.isDataFlavorSupported(DataFlavor.stringFlavor)); + + try { + if ( hasTransferableText ) { + result = (String)contents.getTransferData(DataFlavor.stringFlavor); + txtComp.setText(txtComp.getText() + result); + } else { + Logger.notice(new GUIHelper(), "Nothing to get from clipboard"); + } + } catch(final java.awt.datatransfer.UnsupportedFlavorException e) { + Logger.error(new GUIHelper(), "Error while pasting: UnsupportedFlavorException: "+e.toString()); + } catch(final java.io.IOException e) { + Logger.error(new GUIHelper(), "Error while pasting: IOException: "+e.toString()); + } + } + +} Copied: trunk/apps/Thaw/src/thaw/gui/IconBox.java (from rev 12071, trunk/apps/Thaw/src/thaw/core/IconBox.java) =================================================================== --- trunk/apps/Thaw/src/thaw/gui/IconBox.java (rev 0) +++ trunk/apps/Thaw/src/thaw/gui/IconBox.java 2007-03-09 20:41:01 UTC (rev 12072) @@ -0,0 +1,171 @@ +package thaw.gui; + +import java.net.URL; + +import javax.swing.ImageIcon; + +import thaw.core.Logger; + + +/** + * This class is simply an helper to find and load quickly some common icons. + */ +public class IconBox { + + /** + * Freenet logo :) + */ + public static ImageIcon blueBunny; + + public static ImageIcon connectAction; + public static ImageIcon minConnectAction; + + public static ImageIcon disconnectAction; + + public static ImageIcon queue; + public static ImageIcon minQueue; + + public static ImageIcon insertions; + public static ImageIcon minInsertions; + + public static ImageIcon downloads; + public static ImageIcon minDownloads; + + public static ImageIcon indexBrowser; + public static ImageIcon minIndexBrowser; + + public static ImageIcon addToIndexAction; + + public static ImageIcon insertAndAddToIndexAction; + + public static ImageIcon makeALinkAction; + + public static ImageIcon minIndex; + public static ImageIcon minIndexReadOnly; + + public static ImageIcon indexNew; + public static ImageIcon indexReuse; + + public static ImageIcon delete; + + public static ImageIcon refreshAction; + + public static ImageIcon settings; + public static ImageIcon minSettings; + + public static ImageIcon reconnectAction; + public static ImageIcon minReconnectAction; + + public static ImageIcon quitAction; + public static ImageIcon minQuitAction; + + public static ImageIcon key; + + public static ImageIcon help; + public static ImageIcon minHelp; + + public static ImageIcon folderNew; + + public static ImageIcon mainWindow; + + public static ImageIcon add; + public static ImageIcon remove; + + public static ImageIcon terminal; + public static ImageIcon minTerminal; + public static ImageIcon queueWatcher; + public static ImageIcon importExport; + + public static ImageIcon peerMonitor; + public static ImageIcon minPeerMonitor; + + + public static ImageIcon minImportAction; + public static ImageIcon minExportAction; + + public static ImageIcon database; + + /** + * Not really used + */ + public IconBox() { + + } + + protected static ImageIcon loadIcon(final String fileName) { + URL url; + Class daClass; + ClassLoader classLoader; + + daClass = (new IconBox()).getClass(); + + if (daClass == null) { + Logger.error(new IconBox(), "Icon '"+fileName+"' not found ! (Class)"); + return null; + } + + classLoader = daClass.getClassLoader(); + + if (classLoader == null) { + Logger.error(new IconBox(), "Icon '"+fileName+"' not found ! (ClassLoader)"); + return null; + } + + url = classLoader.getResource(fileName); + + if (url == null) { + Logger.error(new IconBox(), "Icon '"+fileName+"' not found ! (Resource)"); + return null; + } + + return new ImageIcon(url); + } + + + public static void loadIcons() { + IconBox.blueBunny = IconBox.loadIcon("blueBunny.png"); + IconBox.connectAction = IconBox.loadIcon("connect.png"); + IconBox.minConnectAction = IconBox.loadIcon("min-connect.png"); + IconBox.disconnectAction = IconBox.loadIcon("disconnect.png"); + IconBox.queue = IconBox.loadIcon("connect.png"); + IconBox.minQueue = IconBox.loadIcon("min-connect.png"); + IconBox.insertions = IconBox.loadIcon("insertion.png"); + IconBox.minInsertions = IconBox.loadIcon("min-insertion.png"); + IconBox.minIndex = IconBox.loadIcon("min-index.png"); + IconBox.minIndexReadOnly = IconBox.loadIcon("min-indexReadOnly.png"); + IconBox.indexNew = IconBox.loadIcon("index-new.png"); + IconBox.indexReuse = IconBox.loadIcon("indexReadOnly.png"); + IconBox.downloads = IconBox.loadIcon("download.png"); + IconBox.minDownloads = IconBox.loadIcon("min-download.png"); + IconBox.settings = IconBox.loadIcon("settings.png"); + IconBox.minSettings = IconBox.loadIcon("min-settings.png"); + IconBox.indexBrowser = IconBox.loadIcon("index.png"); + IconBox.minIndexBrowser = IconBox.loadIcon("min-index.png"); + IconBox.addToIndexAction = IconBox.loadIcon("add.png"); + IconBox.add = IconBox.loadIcon("add.png"); + IconBox.insertAndAddToIndexAction = IconBox.loadIcon("index.png"); + IconBox.makeALinkAction = IconBox.loadIcon("makeLink.png"); + IconBox.reconnectAction = IconBox.loadIcon("refresh.png"); + IconBox.minReconnectAction = IconBox.loadIcon("min-refresh.png"); + IconBox.refreshAction = IconBox.loadIcon("refresh.png"); + IconBox.quitAction = IconBox.loadIcon("quit.png"); + IconBox.minQuitAction = IconBox.loadIcon("min-quit.png"); + IconBox.key = IconBox.loadIcon("key.png"); + IconBox.delete = IconBox.loadIcon("delete.png"); + IconBox.folderNew = IconBox.loadIcon("folder-new.png"); + IconBox.help = IconBox.loadIcon("help.png"); + IconBox.minHelp = IconBox.loadIcon("min-help.png"); + IconBox.mainWindow = IconBox.loadIcon("mainWindow.png"); + IconBox.terminal = IconBox.loadIcon("terminal.png"); + IconBox.minTerminal = IconBox.loadIcon("min-terminal.png"); + IconBox.remove = IconBox.loadIcon("remove.png"); + IconBox.queueWatcher = IconBox.loadIcon("queueWatcher.png"); + IconBox.importExport = IconBox.loadIcon("refresh.png"); + IconBox.minImportAction = IconBox.loadIcon("min-import.png"); + IconBox.minExportAction = IconBox.loadIcon("min-export.png"); + IconBox.database = IconBox.loadIcon("database.png"); + IconBox.minPeerMonitor = IconBox.loadIcon("min-peerMonitor.png"); + IconBox.peerMonitor = IconBox.loadIcon("peerMonitor.png"); + } + +} Deleted: trunk/apps/Thaw/src/thaw/gui/MDNSDiscoveryPanel.java =================================================================== --- trunk/apps/Thaw/src/thaw/gui/MDNSDiscoveryPanel.java 2007-03-09 20:13:38 UTC (rev 12071) +++ trunk/apps/Thaw/src/thaw/gui/MDNSDiscoveryPanel.java 2007-03-09 20:41:01 UTC (rev 12072) @@ -1,223 +0,0 @@ -/* This code is part of Freenet. It is distributed under the GNU General - * Public License, version 2 (or at your option any later version). See - * http://www.gnu.org/ for further details of the GPL. */ - -package thaw.gui; - -import java.io.IOException; -import java.util.HashMap; - -import javax.jmdns.JmDNS; -import javax.jmdns.ServiceEvent; -import javax.jmdns.ServiceInfo; -import javax.jmdns.ServiceListener; -import javax.swing.DefaultListModel; -import java.awt.GridLayout; -import java.awt.BorderLayout; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.JProgressBar; -import javax.swing.JScrollPane; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; - -import thaw.core.Config; -import thaw.core.Logger; -import thaw.fcp.FCPConnection; - -/** - * This panel implements Zeroconf (called Bonjour/RendezVous by apple) discovery for Thaw - * - * WARNING: for it to work, you must have a running freenet node on the same network subnet, using the MDNSDiscovery panel - * - * @author Florent Daignière <nextgens at freenetproject.org> - * - * @see http://wiki.freenetproject.org/MDNSDiscoverypanel - * - * @see http://www.dns-sd.org/ServiceTypes.html - * @see http://www.multicastdns.org/ - * @see http://jmdns.sourceforge.net/ - * - * TODO: implement the "Manual" mode - * TODO: maybe we should have a small progressbar shown in a new popup to introduce a "delay" at startup - */ -public class MDNSDiscoveryPanel extends JFrame implements ListSelectionListener { - private static final long serialVersionUID = 1L; - - private static final String FCP_SERVICE_TYPE = "_fcp._tcp.local."; - - private boolean goon = true; - private ServiceInfo selectedValue; - - private final JScrollPane panel; - private final JProgressBar progressBar; - private final JList list; - private final DefaultListModel listModel; - private final JLabel label; - - private final Config config; - private final HashMap foundNodes; - private final JmDNS jmdns; - - public MDNSDiscoveryPanel(Config conf) { - this.config = conf; - this.foundNodes = new HashMap(); - try { - // Spawn the mdns listener - this.jmdns = new JmDNS(); - - // Start listening for new nodes - jmdns.addServiceListener(MDNSDiscoveryPanel.FCP_SERVICE_TYPE, new FCPMDNSListener(this)); - - } catch (Exception e) { - e.printStackTrace(); - throw new RuntimeException("Error loading MDNSDiscoveryPanel : " + e.getMessage())