Author: jflesch
Date: 2007-08-17 21:22:52 +0000 (Fri, 17 Aug 2007)
New Revision: 14772

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
Log:
Fix the way the plugins are loaded and runned

Modified: trunk/apps/Thaw/src/thaw/core/ConfigWindow.java
===================================================================
--- trunk/apps/Thaw/src/thaw/core/ConfigWindow.java     2007-08-17 20:56:37 UTC 
(rev 14771)
+++ trunk/apps/Thaw/src/thaw/core/ConfigWindow.java     2007-08-17 21:22:52 UTC 
(rev 14772)
@@ -271,8 +271,7 @@
                        /* put back the config tab */
                        addTabs();

-                       core.getPluginManager().loadPlugins();
-                       core.getPluginManager().runPlugins();
+                       core.getPluginManager().loadAndRunPlugins();

                        dialog.setVisible(false);
                }

Modified: trunk/apps/Thaw/src/thaw/core/Core.java
===================================================================
--- trunk/apps/Thaw/src/thaw/core/Core.java     2007-08-17 20:56:37 UTC (rev 
14771)
+++ trunk/apps/Thaw/src/thaw/core/Core.java     2007-08-17 21:22:52 UTC (rev 
14772)
@@ -463,12 +463,9 @@
        public boolean initPluginManager() {
                pluginManager = new PluginManager(this);

-               if(!pluginManager.loadPlugins())
+               if(!pluginManager.loadAndRunPlugins())
                        return false;

-               if(!pluginManager.runPlugins())
-                       return false;
-
                return true;
        }

@@ -615,8 +612,7 @@
                        }

                        if (running) {
-                               getPluginManager().loadPlugins();
-                               getPluginManager().runPlugins();
+                               getPluginManager().loadAndRunPlugins();
                        }

                        reconnectionManager = null;

Modified: trunk/apps/Thaw/src/thaw/core/MainWindow.java
===================================================================
--- trunk/apps/Thaw/src/thaw/core/MainWindow.java       2007-08-17 20:56:37 UTC 
(rev 14771)
+++ trunk/apps/Thaw/src/thaw/core/MainWindow.java       2007-08-17 21:22:52 UTC 
(rev 14772)
@@ -451,7 +451,7 @@

                        core.getPluginManager().stopPlugins();
                        core.disconnect();
-                       core.getPluginManager().runPlugins();
+                       core.getPluginManager().loadAndRunPlugins();
                }

                if(e.getSource() == settingsButton) {

Modified: trunk/apps/Thaw/src/thaw/core/PluginManager.java
===================================================================
--- trunk/apps/Thaw/src/thaw/core/PluginManager.java    2007-08-17 20:56:37 UTC 
(rev 14771)
+++ trunk/apps/Thaw/src/thaw/core/PluginManager.java    2007-08-17 21:22:52 UTC 
(rev 14772)
@@ -73,7 +73,7 @@
         * Load plugin from config or from default list.
         * Reload if already loaded.
         */
-       public synchronized boolean loadPlugins() {
+       public synchronized boolean loadAndRunPlugins() {
                plugins = new LinkedHashMap();

                Vector pluginNames;
@@ -90,7 +90,7 @@

                final Iterator pluginIt = pluginNames.iterator();

-               final int progressJump = 10 / pluginNames.size();
+               final int progressJump = (100-40) / (pluginNames.size()*2);
                core.getSplashScreen().setProgression(40);

                while(pluginIt.hasNext()) {
@@ -100,60 +100,15 @@
                                                                       "Loading 
plugin '"+pluginName.replaceFirst("thaw.plugins.", "")+"' ...");

                        loadPlugin(pluginName);
+                       
core.getSplashScreen().setProgressionAndStatus(core.getSplashScreen().getProgression()+progressJump,
+                                                                               
            "Starting plugin '"+pluginName.replaceFirst("thaw.plugins.", "")+"' 
...");
+                       runPlugin(pluginName);
                }

                return true;
        }

-       /**
-        * Start plugins.
-        */
-       public synchronized boolean runPlugins() {
-               Iterator pluginIt;

-               if (plugins == null || plugins.size() == 0) {
-                       Logger.error(this, "No plugin to run ?!");
-                       return false;
-               }
-
-               pluginIt = (new Vector(plugins.values())).iterator();
-
-               final int progressJump = 50 / plugins.size();
-
-               core.getSplashScreen().setProgression(50);
-
-               while(pluginIt.hasNext()) {
-                       final Plugin plugin = (Plugin)pluginIt.next();
-
-                       try {
-                               if (plugin != null) {
-                                       Logger.info(this, "Running plugin 
'"+plugin.getClass().getName()+"'");
-
-                                       
core.getSplashScreen().setProgressionAndStatus(core.getSplashScreen().getProgression()+progressJump,
-                                                                               
            "Starting plugin 
'"+plugin.getClass().getName().replaceFirst("thaw.plugins.", "")+"' ...");
-
-                                       javax.swing.ImageIcon icon = null;
-
-                                       if ((icon = plugin.getIcon()) != null)
-                                               
core.getSplashScreen().addIcon(icon);
-                                       else
-                                               
core.getSplashScreen().addIcon(thaw.gui.IconBox.add);
-
-                                       plugin.run(core);
-                               }
-                               else
-                                       Logger.notice(this, "Plugin == null ?");
-
-                       } catch(final Exception e) {
-                               Logger.error(this, "Unable to run the plugin 
'"+plugin.getClass().getName()+"' because: "+e+":");
-                               e.printStackTrace();
-                       }
-               }
-
-               return true;
-       }
-
-
        /**
         * Stop all plugins.
         */
@@ -200,11 +155,11 @@

                try {
                        if(plugins.get(className) != null) {
-                               Logger.notice(this, "loadPlugin(): Plugin 
'"+className+"' already loaded");
+                               Logger.debug(this, "loadPlugin(): Plugin 
'"+className+"' already loaded");
                                return null;
                        }

-                       Logger.info(this, "Loading plugin '"+className+"'");
+                       //Logger.info(this, "Loading plugin '"+className+"'");

                        plugin = (Plugin)Class.forName(className).newInstance();

@@ -227,8 +182,17 @@
                Logger.info(this, "Starting plugin: '"+className+"'");

                try {
-                       ((Plugin)plugins.get(className)).run(core);
+                       Plugin plugin = (Plugin)plugins.get(className);

+                       javax.swing.ImageIcon icon;
+
+                       if ((icon = plugin.getIcon()) != null)
+                               core.getSplashScreen().addIcon(icon);
+                       else
+                               
core.getSplashScreen().addIcon(thaw.gui.IconBox.add);
+
+                       plugin.run(core);
+
                } catch(final Exception e) {
                        Logger.error(this, "runPlugin('"+className+"'): 
Exception: "+e);
                        e.printStackTrace();


Reply via email to