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();