Author: jflesch
Date: 2006-07-30 09:54:53 +0000 (Sun, 30 Jul 2006)
New Revision: 9818

Modified:
   trunk/apps/Thaw/src/thaw/core/Core.java
   trunk/apps/Thaw/src/thaw/core/Logger.java
   trunk/apps/Thaw/src/thaw/core/WarningWindow.java
   trunk/apps/Thaw/src/thaw/fcp/FCPConnection.java
   trunk/apps/Thaw/src/thaw/i18n/thaw.properties
   trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties
Log:
Improve disconnection management

Modified: trunk/apps/Thaw/src/thaw/core/Core.java
===================================================================
--- trunk/apps/Thaw/src/thaw/core/Core.java     2006-07-29 22:30:49 UTC (rev 
9817)
+++ trunk/apps/Thaw/src/thaw/core/Core.java     2006-07-30 09:54:53 UTC (rev 
9818)
@@ -1,10 +1,11 @@
-
 package thaw.core;

 import java.util.Observer;
 import java.util.Observable;

 import javax.swing.JDialog;
+import javax.swing.JPanel;
+import javax.swing.JLabel;
 import javax.swing.JFrame;
 import javax.swing.UIManager;
 import javax.swing.UIManager.LookAndFeelInfo;
@@ -16,7 +17,7 @@

 /**
  * A "core" contains references to all the main parts of Thaw.
- *
+ * The Core has all the functions needed to initialize Thaw / stop Thaw.
  */
 public class Core implements Observer {

@@ -84,7 +85,7 @@
                        return false;

                if(!initNodeConnection())
-                       new WarningWindow(this, "Unable to connect to 
"+config.getValue("nodeAddress")+":"+
+                       new WarningWindow(this, 
I18n.getMessage("thaw.warning.unableToConnectTo")+ " 
"+config.getValue("nodeAddress")+":"+
                                          config.getValue("nodePort"));

                if(!initGraphics())
@@ -302,7 +303,7 @@
         * Check if the connection can be interrupted safely.
         */
        public boolean canDisconnect() {
-               return !connection.isWriting();
+               return connection == null || !connection.isWriting();
        }

        /**
@@ -315,13 +316,15 @@
                        if(!canDisconnect()) {
                                int ret = 
JOptionPane.showOptionDialog((java.awt.Component)null,
                                                                       
I18n.getMessage("thaw.warning.isWriting"),
-                                                                      
I18n.getMessage("thaw.warning.title"),
+                                                                      "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 > 0)
+                               if(ret == JOptionPane.CLOSED_OPTION
+                                  || ret == JOptionPane.CANCEL_OPTION
+                                  || ret == JOptionPane.NO_OPTION)
                                        return;
                        }
                }
@@ -345,13 +348,26 @@
        }


-
        public void update(Observable o, Object target) {
                Logger.debug(this, "Move on the connection (?)");

                if(o == connection && !connection.isConnected()) {
                        int nmbReconnect = 0;

+                       JDialog warningDialog = new JDialog();
+                       warningDialog.setTitle("Thaw - reconnection");
+                       warningDialog.setModal(false);
+                       warningDialog.setSize(500, 40);
+
+                       JPanel warningPanel = new JPanel();
+
+                       JLabel warningLabel = new 
JLabel(I18n.getMessage("thaw.warning.autoreconnecting"),
+                                                        JLabel.CENTER);
+                       warningPanel.add(warningLabel);
+                       warningDialog.setContentPane(warningPanel);
+                       
+                       warningDialog.setVisible(true);
+
                        for(nmbReconnect = 0;
                            nmbReconnect < MAX_CONNECT_TRIES ;
                            nmbReconnect++) {
@@ -362,16 +378,36 @@
                                        // brouzouf
                                }

-                               Logger.info(this, "Trying to reconnect ... : "+ 
Integer.toString(nmbReconnect));
+                               Logger.notice(this, "Trying to reconnect ... : 
"+ Integer.toString(nmbReconnect));

                                if(initNodeConnection())
                                        break;
                        }
+
+                       warningDialog.setVisible(false);
+

                        if(nmbReconnect == MAX_CONNECT_TRIES) {
-                               new WarningWindow(this, "We have been 
disconnected");
+                               while(!initNodeConnection()) {
+                                       int ret = 
JOptionPane.showOptionDialog((java.awt.Component)null,
+                                                                              
I18n.getMessage("thaw.warning.disconnected"),
+                                                                              
"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)
+                                       break;
+                               }
+
                        }
-                       
+
+                       getPluginManager().stopPlugins();
+                       getPluginManager().loadPlugins();
+                       getPluginManager().runPlugins();
                }
        }


Modified: trunk/apps/Thaw/src/thaw/core/Logger.java
===================================================================
--- trunk/apps/Thaw/src/thaw/core/Logger.java   2006-07-29 22:30:49 UTC (rev 
9817)
+++ trunk/apps/Thaw/src/thaw/core/Logger.java   2006-07-30 09:54:53 UTC (rev 
9818)
@@ -94,10 +94,10 @@
         * As it. Similar to verbose()
         */
        public static void asIt(Object o, String msg) {
-               //if(LOG_LEVEL >= 5) {
+               if(LOG_LEVEL >= 5) {
                        System.out.println(msg);
                        notifyLogListeners(msg);
-                       //}
+               }
        }



Modified: trunk/apps/Thaw/src/thaw/core/WarningWindow.java
===================================================================
--- trunk/apps/Thaw/src/thaw/core/WarningWindow.java    2006-07-29 22:30:49 UTC 
(rev 9817)
+++ trunk/apps/Thaw/src/thaw/core/WarningWindow.java    2006-07-30 09:54:53 UTC 
(rev 9818)
@@ -19,12 +19,12 @@
                if(core != null && core.getMainWindow() != null) {
                        
JOptionPane.showMessageDialog(core.getMainWindow().getMainFrame(),
                                                      warning,
-                                                     
I18n.getMessage("thaw.warning.title"),
+                                                     "Thaw - 
"+I18n.getMessage("thaw.warning.title"),
                                                      
JOptionPane.WARNING_MESSAGE);
                } else {
                        JOptionPane.showMessageDialog(null,
                                                      warning,
-                                                     
I18n.getMessage("thaw.warning.title"),
+                                                     "Thaw - 
"+I18n.getMessage("thaw.warning.title"),
                                                      
JOptionPane.WARNING_MESSAGE);
                }
        }

Modified: trunk/apps/Thaw/src/thaw/fcp/FCPConnection.java
===================================================================
--- trunk/apps/Thaw/src/thaw/fcp/FCPConnection.java     2006-07-29 22:30:49 UTC 
(rev 9817)
+++ trunk/apps/Thaw/src/thaw/fcp/FCPConnection.java     2006-07-30 09:54:53 UTC 
(rev 9818)
@@ -152,6 +152,11 @@
                bufferedOut = new FCPBufferedStream(this, maxUploadSpeed);
                bufferedOut.startSender();

+               rawBytesWaiting = 0;
+               lockWriting = false;
+               lockReading = false;
+               lastWrite = 0;
+
                Logger.info(this, "Connected");

                setChanged();

Modified: trunk/apps/Thaw/src/thaw/i18n/thaw.properties
===================================================================
--- trunk/apps/Thaw/src/thaw/i18n/thaw.properties       2006-07-29 22:30:49 UTC 
(rev 9817)
+++ trunk/apps/Thaw/src/thaw/i18n/thaw.properties       2006-07-30 09:54:53 UTC 
(rev 9818)
@@ -138,5 +138,8 @@

 ## Warnings
 thaw.warning.title=Warning
-thaw.warning.isWriting=Warning ! Thaw is writing data. It would be better to 
quit when thaw will finish. Are you sure that you want to quit ?
+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.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

Modified: trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties
===================================================================
--- trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties    2006-07-29 22:30:49 UTC 
(rev 9817)
+++ trunk/apps/Thaw/src/thaw/i18n/thaw_fr.properties    2006-07-30 09:54:53 UTC 
(rev 9818)
@@ -137,5 +137,8 @@

 ## Warnings
 thaw.warning.title=Avertissement
-thaw.warning.isWriting=Attention ! Thaw est entrain d'?crire des informations. 
Il serait pr?f?rable de quitter une fois ces envois finis. Etes-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 quitter une fois ces envois 
finis.\nEtes-vous s?r de vouloir quitter ?
 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 ...


Reply via email to