r232 - in trunk/msm-pluginmanager: . src/main/java/org/nuiton/mapstoragemanager/plugins/pluginmanager
Author: dlanglais Date: 2010-03-13 05:24:01 +0100 (Sat, 13 Mar 2010) New Revision: 232 Log: Correction : - ApplicationEngine : fonction getBigTableLoader() renomm?\195?\169e en getPluginLoader() (un oubli). Am?\195?\169lioration : - le pluginLoader est capable de charger des plugins (appel d'une fonction sur l'application principale) ; - r?\195?\169actualise la liste des boutons correspondants aux plugins charg?\195?\169s au chargement d'un plugin ; - affiche des informations sur le plugin s?\195?\169lectionn?\195?\169 ; - permet le chargemenet / d?\195?\169chargement de celui-ci (n?\195?\169anmoins bouton activation/d?\195?\169sactivation non fonctionnels). Modified: trunk/msm-pluginmanager/pom.xml trunk/msm-pluginmanager/src/main/java/org/nuiton/mapstoragemanager/plugins/pluginmanager/Main.java trunk/msm-pluginmanager/src/main/java/org/nuiton/mapstoragemanager/plugins/pluginmanager/PluginManager.jaxx Modified: trunk/msm-pluginmanager/pom.xml =================================================================== --- trunk/msm-pluginmanager/pom.xml 2010-03-13 02:54:51 UTC (rev 231) +++ trunk/msm-pluginmanager/pom.xml 2010-03-13 04:24:01 UTC (rev 232) @@ -131,6 +131,29 @@ <!-- ************************************************************* --> <!-- *** Build Settings ****************************************** --> <!-- ************************************************************* --> + <properties> + <maven.test.skip>false</maven.test.skip> + + <!--PluginManager Main Class in JAR --> + <maven.jar.main.class>org.nuiton.mapstoragemanager.plugins.pluginmanager.Main</maven.jar.main.class> + + <!-- jaxx configuration --> + <jaxx.addProjectClassPath>true</jaxx.addProjectClassPath> + <jaxx.addSourcesToClassPath>true</jaxx.addSourcesToClassPath> + <jaxx.useUIManagerForIcon>true</jaxx.useUIManagerForIcon> + + <jaxx.extraImportList> + static org.nuiton.i18n.I18n.n_ + </jaxx.extraImportList> + + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <!-- jaxx help configuration --> + <!--jaxx.helpSetName>vradi</jaxx.helpSetName> + <jaxx.locale>fr</jaxx.locale> + <jaxx.helpTarget>src/main/help</jaxx.helpTarget--> + + </properties> + <packaging>jar</packaging> <build> @@ -274,9 +297,6 @@ </plugins> </build> - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> </project> Modified: trunk/msm-pluginmanager/src/main/java/org/nuiton/mapstoragemanager/plugins/pluginmanager/Main.java =================================================================== --- trunk/msm-pluginmanager/src/main/java/org/nuiton/mapstoragemanager/plugins/pluginmanager/Main.java 2010-03-13 02:54:51 UTC (rev 231) +++ trunk/msm-pluginmanager/src/main/java/org/nuiton/mapstoragemanager/plugins/pluginmanager/Main.java 2010-03-13 04:24:01 UTC (rev 232) @@ -16,6 +16,7 @@ import javax.swing.SwingUtilities; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.mapstoragemanager.ui.gui.ApplicationEngine; /** * * @author Dorian Langlais @@ -32,8 +33,8 @@ */ private static Locale locale = Locale.FRANCE; - private static void main(String ... args) { - + public static void main(String ... args) { +//ApplicationEngine.getInstance().getPluginLoader().getAllPlugin(null); final PluginManager pluginManager = PluginManager.getInstance(); pluginManager.setVisible(true); @@ -45,55 +46,55 @@ } }); - JButton[] buttons = new JButton[20]; - for(int i = 0 ; i < buttons.length ; i++) { - final int actualI = i; - - buttons[i] = new JButton("test" + i); - buttons[i].setSize(100, 20); - buttons[i].addActionListener(new ActionListener() { - - public void actionPerformed(ActionEvent e) { -// JPanel panel = new JPanel(); -// panel.add(new JLabel("test" + actualI)); - - JPanel pluginView = pluginManager.getPluginView(); - pluginView.setLayout(new BorderLayout()); - - pluginView.removeAll(); - JLabel titre; - pluginView.add(titre = new JLabel("nom plugin " + actualI), BorderLayout.PAGE_START); - - JPanel description = new JPanel(); - description.add(new JLabel(" ")); - description.add(new JLabel(" ")); -// pluginView.add(new JSeparator()); - description.add(new JLabel("description plugin " + actualI)); - description.add(new JLabel("test" + actualI)); - description.add(new JLabel("test" + actualI)); - description.add(new JLabel("test" + actualI)); - pluginView.add(description, BorderLayout.CENTER); - - - JPanel buttons2 = new JPanel(); - buttons2.setLayout(new GridLayout(1,4)); - buttons2.add(new JButton("Activer")); - buttons2.add(new JButton("DesActiver")); - buttons2.add(new JButton("Charger")); - buttons2.add(new JButton("DéCharger")); - - pluginView.add(buttons2, BorderLayout.PAGE_END); - pluginView.updateUI(); - } - }); - - pluginManager.getPluginList().add(buttons[i]); - try { - Thread.sleep(100); - pluginManager.getPluginList().updateUI(); - } catch (InterruptedException ex) { - LOG.error(ex, ex); - } - } +// JButton[] buttons = new JButton[20]; +// for(int i = 0 ; i < buttons.length ; i++) { +// final int actualI = i; +// +// buttons[i] = new JButton("test" + i); +// buttons[i].setSize(100, 20); +// buttons[i].addActionListener(new ActionListener() { +// +// public void actionPerformed(ActionEvent e) { +//// JPanel panel = new JPanel(); +//// panel.add(new JLabel("test" + actualI)); +// +// JPanel pluginView = pluginManager.getPluginView(); +// pluginView.setLayout(new BorderLayout()); +// +// pluginView.removeAll(); +// JLabel titre; +// pluginView.add(titre = new JLabel("nom plugin " + actualI), BorderLayout.PAGE_START); +// +// JPanel description = new JPanel(); +// description.add(new JLabel(" ")); +// description.add(new JLabel(" ")); +//// pluginView.add(new JSeparator()); +// description.add(new JLabel("description plugin " + actualI)); +// description.add(new JLabel("test" + actualI)); +// description.add(new JLabel("test" + actualI)); +// description.add(new JLabel("test" + actualI)); +// pluginView.add(description, BorderLayout.CENTER); +// +// +// JPanel buttons2 = new JPanel(); +// buttons2.setLayout(new GridLayout(1,4)); +// buttons2.add(new JButton("Activer")); +// buttons2.add(new JButton("DesActiver")); +// buttons2.add(new JButton("Charger")); +// buttons2.add(new JButton("DéCharger")); +// +// pluginView.add(buttons2, BorderLayout.PAGE_END); +// pluginView.updateUI(); +// } +// }); +// +// pluginManager.getPluginList().add(buttons[i]); +// try { +// Thread.sleep(100); +// pluginManager.getPluginList().updateUI(); +// } catch (InterruptedException ex) { +// LOG.error(ex, ex); +// } +// } } } Modified: trunk/msm-pluginmanager/src/main/java/org/nuiton/mapstoragemanager/plugins/pluginmanager/PluginManager.jaxx =================================================================== --- trunk/msm-pluginmanager/src/main/java/org/nuiton/mapstoragemanager/plugins/pluginmanager/PluginManager.jaxx 2010-03-13 02:54:51 UTC (rev 231) +++ trunk/msm-pluginmanager/src/main/java/org/nuiton/mapstoragemanager/plugins/pluginmanager/PluginManager.jaxx 2010-03-13 04:24:01 UTC (rev 232) @@ -1,8 +1,11 @@ -<Application id='pluginManagerFrame' width='500' height='400'> +<Application id='pluginManagerFrame' width='640' height='480'> <!-- include java files for treatment --> <script> <![CDATA[ +import org.nuiton.mapstoragemanager.ui.gui.ApplicationEngine; +import org.nuiton.mapstoragemanager.core.PluginLoader; +import org.nuiton.mapstoragemanager.plugins.Plugin; /** * classe instance (singleton pattern). @@ -19,6 +22,110 @@ } return instance; } + +/** + * loadAPlugin. + * Call the MSM instance to load a Plugin. + */ +public void loadAPlugin() { + ApplicationEngine.getInstance().loadAPlugin(); + refreshPluginList(); +} + + /** + * refresh the plugin list. + * Call application Engine to get plugin loader and get all plugin to refresh + * the frame. + */ + public void refreshPluginList() { + ApplicationEngine engine = ApplicationEngine.getInstance(); + PluginLoader pluginLoader = engine.getPluginLoader(); + getPluginList().removeAll(); + + for(final Plugin plugin : pluginLoader.getAllPlugin(null)) { + + final String pluginName = plugin.getPluginName(); + final String pluginDescritpion = "";//plugin.getDescription(); + + JButton pluginButton = new JButton(pluginName); + pluginButton.setSize(100, 20); + pluginButton.addActionListener(new ActionListener() { + + public void actionPerformed(ActionEvent e) { + + JPanel pluginView = getPluginView(); + pluginView.setLayout(new BorderLayout()); + + pluginView.removeAll(); + JPanel titre = new JPanel(); + titre.add(new JLabel(pluginName), BorderLayout.CENTER); + pluginView.add(titre, BorderLayout.PAGE_START); + + JPanel description = new JPanel(); + description.add(new JLabel(" ")); + description.add(new JLabel(pluginDescritpion)); + pluginView.add(description, BorderLayout.CENTER); + + + JPanel southButton = new JPanel(); + southButton.setLayout(new GridLayout(1,4)); + + final JButton buttonActivate = new JButton(_("activate")); + final JButton buttonDesactivate = new JButton(_("desactivate")); + final JButton buttonLoad = new JButton(_("load")); + final JButton buttonUnload = new JButton(_("unload")); + + buttonActivate.addActionListener(new ActionListener() { + + public void actionPerformed(ActionEvent e) { + //TODO; + buttonActivate.setEnabled(false); + buttonDesactivate.setEnabled(true); + } + }); + + buttonDesactivate.addActionListener(new ActionListener() { + + public void actionPerformed(ActionEvent e) { + //TODO; + buttonActivate.setEnabled(true); + buttonDesactivate.setEnabled(false); + } + }); + + buttonLoad.addActionListener(new ActionListener() { + + public void actionPerformed(ActionEvent e) { + plugin.load(); + buttonLoad.setEnabled(false); + buttonUnload.setEnabled(true); + } + }); + + buttonUnload.addActionListener(new ActionListener() { + + public void actionPerformed(ActionEvent e) { + plugin.unload(); + buttonLoad.setEnabled(true); + buttonUnload.setEnabled(false); + } + }); + + southButton.add(buttonActivate); + southButton.add(buttonDesactivate); + southButton.add(buttonLoad); + southButton.add(buttonUnload); + + pluginView.add(southButton, BorderLayout.PAGE_END); + pluginView.updateUI(); + } + }); + + getPluginList().add(pluginButton); + } + getPluginList().updateUI(); + } + ]]> </script> @@ -30,14 +137,15 @@ <JMenuBar> <JMenu id='menuPlugin'> - <JMenuItem id='menuPluginLoad'/> - <JMenuItem id='menuPluginShow'/> + <JMenuItem id='menuPluginLoad' + onActionPerformed='this.loadAPlugin()' /> + <!--JMenuItem id='menuPluginShow'/--> </JMenu> </JMenuBar> <JPanel layout='{new BorderLayout()}' constraints='BorderLayout.CENTER'> <JPanel layout='{new BorderLayout()}' id='mainPanel'> - <JSplitPane constraints='BorderLayout.CENTER' dividerLocation='100'> + <JSplitPane constraints='BorderLayout.CENTER' dividerLocation='150'> <JScrollPane> <VBox layout='{new GridLayout(0,1)}' id='pluginList' /> </JScrollPane>
participants (1)
-
dlanglais@users.nuiton.org