Author: jflesch
Date: 2006-07-30 15:10:48 +0000 (Sun, 30 Jul 2006)
New Revision: 9821

Modified:
   trunk/apps/Thaw/images/go-jump.png
   trunk/apps/Thaw/images/process-stop.png
   trunk/apps/Thaw/src/thaw/core/Core.java
   trunk/apps/Thaw/src/thaw/core/MainWindow.java
   trunk/apps/Thaw/src/thaw/i18n/thaw.properties
   trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties
   trunk/apps/Thaw/src/thaw/plugins/fetchPlugin/FetchPanel.java
Log:
Add toolbar

Modified: trunk/apps/Thaw/images/go-jump.png
===================================================================
(Binary files differ)

Modified: trunk/apps/Thaw/images/process-stop.png
===================================================================
(Binary files differ)

Modified: trunk/apps/Thaw/src/thaw/core/Core.java
===================================================================
--- trunk/apps/Thaw/src/thaw/core/Core.java     2006-07-30 14:03:12 UTC (rev 
9820)
+++ trunk/apps/Thaw/src/thaw/core/Core.java     2006-07-30 15:10:48 UTC (rev 
9821)
@@ -133,9 +133,15 @@
                                disconnect();
                        }

-                       connection = new 
FCPConnection(config.getValue("nodeAddress"),
-                                                      
Integer.parseInt(config.getValue("nodePort")),
-                                                      
Integer.parseInt(config.getValue("maxUploadSpeed")));
+                       if(connection == null) {
+                               connection = new 
FCPConnection(config.getValue("nodeAddress"),
+                                                              
Integer.parseInt(config.getValue("nodePort")),
+                                                              
Integer.parseInt(config.getValue("maxUploadSpeed")));
+                       } else {
+                               
connection.setNodeAddress(config.getValue("nodeAddress"));
+                               
connection.setNodePort(Integer.parseInt(config.getValue("nodePort")));
+                               
connection.setMaxUploadSpeed(Integer.parseInt(config.getValue("maxUploadSpeed")));
+                       }

                        if(!connection.connect()) {
                                Logger.warning(this, "Unable to connect !");
@@ -315,17 +321,7 @@
        public void exit(boolean force) {
                if(!force) {
                        if(!canDisconnect()) {
-                               int ret = 
JOptionPane.showOptionDialog((java.awt.Component)null,
-                                                                      
I18n.getMessage("thaw.warning.isWriting"),
-                                                                      "Thaw - 
"+I18n.getMessage("thaw.warning.title"),
-                                                                      
JOptionPane.YES_NO_OPTION, 
-                                                                      
JOptionPane.WARNING_MESSAGE,
-                                                                      
(javax.swing.Icon)null,
-                                                                      
(java.lang.Object[])null,
-                                                                      
(java.lang.Object)null);
-                               if(ret == JOptionPane.CLOSED_OPTION
-                                  || ret == JOptionPane.CANCEL_OPTION
-                                  || ret == JOptionPane.NO_OPTION)
+                               if(!askDeconnectionConfirmation())
                                        return;
                        }
                }
@@ -349,6 +345,23 @@
        }


+       public boolean askDeconnectionConfirmation() {
+               int ret = JOptionPane.showOptionDialog((java.awt.Component)null,
+                                                      
I18n.getMessage("thaw.warning.isWriting"),
+                                                      "Thaw - 
"+I18n.getMessage("thaw.warning.title"),
+                                                      
JOptionPane.YES_NO_OPTION, 
+                                                      
JOptionPane.WARNING_MESSAGE,
+                                                      (javax.swing.Icon)null,
+                                                      (java.lang.Object[])null,
+                                                      (java.lang.Object)null);
+               if(ret == JOptionPane.CLOSED_OPTION
+                  || ret == JOptionPane.CANCEL_OPTION
+                  || ret == JOptionPane.NO_OPTION)
+                       return false;
+
+               return true;
+       }
+
        public void update(Observable o, Object target) {
                Logger.debug(this, "Move on the connection (?)");


Modified: trunk/apps/Thaw/src/thaw/core/MainWindow.java
===================================================================
--- trunk/apps/Thaw/src/thaw/core/MainWindow.java       2006-07-30 14:03:12 UTC 
(rev 9820)
+++ trunk/apps/Thaw/src/thaw/core/MainWindow.java       2006-07-30 15:10:48 UTC 
(rev 9821)
@@ -12,8 +12,11 @@
 import java.awt.event.WindowEvent;
 import javax.swing.ImageIcon;
 import javax.swing.JOptionPane;
+import javax.swing.JToolBar;
+import javax.swing.JButton;
 import javax.swing.Icon;
 import java.awt.Font;
+import javax.swing.Box;

 import thaw.i18n.I18n;

@@ -27,8 +30,13 @@
  * ------------------------------------
  * | MenuBar                          |
  * ------------------------------------
- * | Tabbed Pane                      |
+ * | ToolBar                          |
+ * ------------------------------------
+ * | Tab 1 | Tab 2 | Tab 3 |          |
+ * |----------------------------------|
+ * | Tab content                      |
  * |                                  |
+ * |??                                 |
  * |                                  |
  * |                                  |
  * ------------------------------------
@@ -38,7 +46,9 @@
  *
  * @author <a href="mailto:jflesch at nerim.net">Jerome Flesch</a>
  */
-public class MainWindow implements java.awt.event.ActionListener, 
java.awt.event.WindowListener {
+public class MainWindow implements java.awt.event.ActionListener, 
java.awt.event.WindowListener,
+                                  java.util.Observer {
+
        private JFrame mainWindow = null;

        private JMenuBar menuBar = null;
@@ -51,6 +61,13 @@
        private JMenu helpMenu = null;
        private JMenuItem aboutHelpMenuItem = null;

+       private JToolBar toolBar = null;
+       private JButton connectButton = null;
+       private JButton disconnectButton = null;
+       private JButton settingsButton = null;
+       private JButton quitButton = null;
+       
+
        private JTabbedPane tabbedPane = null;
        private JLabel statusBar = null;

@@ -75,7 +92,9 @@
                } catch(Throwable e) {
                        Logger.notice(this, "No icon");
                }
-                       
+               
+               // MENUS
+       
                menuBar = new JMenuBar();
                fileMenu = new JMenu(I18n.getMessage("thaw.menu.file"));

@@ -93,6 +112,7 @@
                fileMenu.add(reconnectionFileMenuItem);
                fileMenu.add(optionsFileMenuItem);
                fileMenu.add(quitFileMenuItem);
+
                menuBar.add(fileMenu);

                helpMenu = new JMenu(I18n.getMessage("thaw.menu.help"));
@@ -101,25 +121,62 @@
                aboutHelpMenuItem.addActionListener(this);

                helpMenu.add(aboutHelpMenuItem);
+
+               menuBar.add(Box.createHorizontalGlue());
                menuBar.add(helpMenu);

+               // TOOLBAR
+               toolBar = new JToolBar(I18n.getMessage("thaw.toolbar.title"));
+
+               connectButton = new JButton(IconBox.connectAction);
+               
connectButton.setToolTipText(I18n.getMessage("thaw.toolbar.button.connect"));
+               disconnectButton = new JButton(IconBox.disconnectAction);
+               
disconnectButton.setToolTipText(I18n.getMessage("thaw.toolbar.button.disconnect"));
+
+               settingsButton = new JButton(IconBox.settings);
+               
settingsButton.setToolTipText(I18n.getMessage("thaw.toolbar.button.settings"));
+
+               quitButton = new JButton(IconBox.quitAction);
+               
quitButton.setToolTipText(I18n.getMessage("thaw.toolbar.button.quit"));
+               
+
+               connectButton.addActionListener(this);
+               disconnectButton.addActionListener(this);
+               settingsButton.addActionListener(this);
+               quitButton.addActionListener(this);
+
+               toolBar.add(connectButton);
+               toolBar.add(disconnectButton);
+               toolBar.addSeparator();
+               toolBar.add(settingsButton);
+               toolBar.addSeparator();
+               toolBar.add(quitButton);
+
+               updateToolBar();
+
+               // TABBED PANE
+               
                tabbedPane = new JTabbedPane();

-               //tabbedPane.setTabPlacement(JTabbedPane.RIGHT);
-
+               // STATUS BAR
+               
                statusBar = new JLabel();
                setStatus(null);
                statusBar.setSize(500, 30);

+
                mainWindow.getContentPane().setLayout(new BorderLayout());

                mainWindow.setJMenuBar(menuBar);
+               mainWindow.getContentPane().add(toolBar, BorderLayout.NORTH);
                mainWindow.getContentPane().add(tabbedPane, 
BorderLayout.CENTER);
                mainWindow.getContentPane().add(statusBar, BorderLayout.SOUTH);

                mainWindow.setSize(790, 550);

                mainWindow.addWindowListener(this);
+
+               core.getConnectionManager().addObserver(this);
        }


@@ -189,12 +246,48 @@
         * Called when an element from the menu is called.
         */
        public void actionPerformed(ActionEvent e) {
+               if(e.getSource() == connectButton) {
+                       core.getPluginManager().stopPlugins();                  
+
+                       if(!core.initNodeConnection())
+                               unableToConnect();
+
+                       core.getPluginManager().runPlugins();
+               }
+
+               if(e.getSource() == disconnectButton) {
+                       if(!core.canDisconnect()) {
+                               if(!core.askDeconnectionConfirmation())
+                                       return;
+                       }
+
+                       core.getPluginManager().stopPlugins();
+
+                       core.disconnect();
+
+                       core.getPluginManager().runPlugins();
+               }
+
+               if(e.getSource() == settingsButton) {
+                       core.getConfigWindow().setVisible(true);
+               }
+
+               if(e.getSource() == quitButton) {
+                       core.exit();
+               }
+
                if(e.getSource() == reconnectionFileMenuItem) {

+                       if(!core.canDisconnect()) {
+                               if(!core.askDeconnectionConfirmation())
+                                       return;
+                       }
+
                        core.getPluginManager().stopPlugins();

-                       core.initNodeConnection();
-
+                       if(!core.initNodeConnection())
+                               unableToConnect();
+                       
                        core.getPluginManager().loadPlugins();
                        core.getPluginManager().runPlugins();

@@ -215,6 +308,30 @@
        }

        /**
+        * Warns the user by a popup.
+        */
+       protected void unableToConnect() {
+               new WarningWindow(core, 
+                                 
I18n.getMessage("thaw.warning.unableToConnectTo")+
+                                 " 
"+core.getConfig().getValue("nodeAddress")+":"+ 
core.getConfig().getValue("nodePort"));
+       }
+
+       public void update(java.util.Observable o, Object arg) {
+               updateToolBar();
+       }
+
+
+       public void updateToolBar() {
+               if(core.getConnectionManager().isConnected()) {
+                       connectButton.setEnabled(false);
+                       disconnectButton.setEnabled(true);
+               } else {
+                       connectButton.setEnabled(true);
+                       disconnectButton.setEnabled(false);
+               }
+       }
+
+       /**
         * Called when window is closed or 'quit' is choosed is the menu.
         */
        public void endOfTheWorld() {

Modified: trunk/apps/Thaw/src/thaw/i18n/thaw.properties
===================================================================
--- trunk/apps/Thaw/src/thaw/i18n/thaw.properties       2006-07-30 14:03:12 UTC 
(rev 9820)
+++ trunk/apps/Thaw/src/thaw/i18n/thaw.properties       2006-07-30 15:10:48 UTC 
(rev 9821)
@@ -121,6 +121,7 @@
 thaw.plugin.fetch.destinationDirectory=Destination directory
 thaw.plugin.fetch.chooseDestination=Choose destination ...
 thaw.plugin.fetch.pasteFromClipboard=Paste from clipboard
+thaw.plugin.fetch.chooseADestination=You must choose a destination

 thaw.plugin.console.console=Console
 thaw.plugin.console.saveToFile=Save log to file
@@ -142,16 +143,25 @@

 ## Warnings
 thaw.warning.title=Warning
-thaw.warning.isWriting=Warning ! Thaw is exchanging data with the node.\nIt 
would be better to quit when thaw will finish.\nAre you sure that you want to 
quit ?
+thaw.warning.isWriting=Warning ! Thaw is exchanging data with the node.\nIt 
would be better to disconnect when thaw will finish.\nAre you sure that you 
want to disconnect ?
 thaw.warning.isWritingSoApplyLater=Warning ! Thaw is exchanging data with the 
node,\nand settings changes makes Thaw disconnect/reconnect.\nAre you sure that 
you want to change them now ?
 thaw.warning.disconnected=Thaw has been disconnected. Do you want to try to 
reconnect ?
 thaw.warning.unableToConnectTo=Unable to connect to
 thaw.warning.autoreconnecting=Disconnected. Thaw is trying to automatically 
reconnect ...

+
+
+## Toolbar
+thaw.toolbar.title=Toolbar Thaw
+thaw.toolbar.button.connect=Connect
+thaw.toolbar.button.disconnect=Disconnect
+thaw.toolbar.button.settings=Settings
+thaw.toolbar.button.quit=Quit
+
 ## About
 thaw.about.title=About
 thaw.about.l1=Thaw
 thaw.about.l2=by Jerome Flesch
 thaw.about.l3=2006(c) Freenet Project Incorporated
 thaw.about.l4=under GPLv2
-thaw.about.l6=Icon theme "Gorilla" created by Jimmac 
(http://jimmac.musichall.cz/icons.php)
\ No newline at end of file
+thaw.about.l6=Icon theme "Gorilla" created by Jimmac 
(http://jimmac.musichall.cz/icons.php)

Modified: trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties
===================================================================
--- trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties    2006-07-30 14:03:12 UTC 
(rev 9820)
+++ trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties    2006-07-30 15:10:48 UTC 
(rev 9821)
@@ -141,12 +141,19 @@

 ## Warnings
 thaw.warning.title=Avertissement
-thaw.warning.isWriting=Attention ! Thaw est entrain d'?changer des 
informations avec la node.\nIl serait pr?f?rable de quitter une fois ces envois 
finis.\nEtes-vous s?r de vouloir quitter ?
+thaw.warning.isWriting=Attention ! Thaw est entrain d'?changer des 
informations avec la node.\nIl serait pr?f?rable de vous d?connecter une fois 
ces envois finis.\nEtes-vous s?r de vouloir vous d?connecter ?
 thaw.warning.isWritingSoApplyLater=Attention ! Thaw est en train d'?changer 
des informations avec la node,\net changer des param?tres d?connecte/reconnecte 
Thaw.\nEtes-vous s?r de vouloir les changer maintenant ?
 thaw.warning.disconnected=Thaw a ?t? d?connect?, voulez-vous essayer de vous 
reconnecter ?
 thaw.warning.unableToConnectTo=Impossible de se connecter ?
 thaw.warning.autoreconnecting=D?connect?. Thaw est entrain d'essayer de se 
reconnecter ...

+## Toolbar
+thaw.toolbar.title=Bar d'outils de Thaw
+thaw.toolbar.button.connect=Se connecter
+thaw.toolbar.button.disconnect=Se d?connecter
+thaw.toolbar.button.settings=R?glages
+thaw.toolbar.button.quit=Quitter
+
 ## About
 thaw.about.title=? propos
 thaw.about.l1=Thaw

Modified: trunk/apps/Thaw/src/thaw/plugins/fetchPlugin/FetchPanel.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/fetchPlugin/FetchPanel.java        
2006-07-30 14:03:12 UTC (rev 9820)
+++ trunk/apps/Thaw/src/thaw/plugins/fetchPlugin/FetchPanel.java        
2006-07-30 15:10:48 UTC (rev 9821)
@@ -213,7 +213,7 @@
                        }

                        if(destinationField.getText() == null || 
destinationField.getText().equals("")) {
-                               new thaw.core.WarningWindow(core, "You must 
choose a destination");
+                               new thaw.core.WarningWindow(core, 
I18n.getMessage("thaw.plugin.fetch.chooseADestination"));
                                return;
                        }



Reply via email to