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