r235 - in trunk: msm/src/main/java/org/nuiton/mapstoragemanager/core msm/src/main/java/org/nuiton/mapstoragemanager/ui msm-pluginmanager/src/main/java/org/nuiton/mapstoragemanager/plugins/pluginmanager msm-pluginmanager/src/main/resources msm-pluginmanager/src/main/resources/META-INF msm-pluginmanager/src/main/resources/META-INF/services
Author: dlanglais Date: 2010-03-13 21:24:39 +0100 (Sat, 13 Mar 2010) New Revision: 235 Log: Modification : - Le plugin pluginManager est d?\195?\169sormais un vrai Plugin qui peut ?\195?\170tre lanc?\195?\169 via MapStorageManager ; - A son chargement, il s'ajoute au menu Plugin de l'application. Ajout du dossier META-INF pour le plugin PluginManager. Autre modification : - Suppression du sous menu 'listerlesplugins' de MapStorageManager, cette fonction ?\195?\169tant r?\195?\169alis?\195?\169e par le pr?\195?\169sent plugin. Added: trunk/msm-pluginmanager/src/main/resources/META-INF/ trunk/msm-pluginmanager/src/main/resources/META-INF/services/ trunk/msm-pluginmanager/src/main/resources/META-INF/services/org.nuiton.mapstoragemanager.plugins.Plugin 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/PluginManager.jaxx trunk/msm/src/main/java/org/nuiton/mapstoragemanager/core/PluginLoader.java trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/MainUI.jaxx Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/core/PluginLoader.java =================================================================== --- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/core/PluginLoader.java 2010-03-13 18:44:16 UTC (rev 234) +++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/core/PluginLoader.java 2010-03-13 20:24:39 UTC (rev 235) @@ -88,6 +88,8 @@ ServiceLoader.load(Exporter.class, this); ServiceLoader<Monitoring> monitoringSetLoader = ServiceLoader.load(Monitoring.class, this); + ServiceLoader<Plugin> pluginSetLoader = + ServiceLoader.load(Plugin.class, this); /** * Add plugin in the plugin's map. @@ -108,6 +110,10 @@ monitor.load(); plugins.put(monitor.getPluginName(), monitor); } + for (Plugin plugin : pluginSetLoader) { + plugin.load(); + plugins.put(plugin.getPluginName(), plugin); + } } /** Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/MainUI.jaxx =================================================================== --- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/MainUI.jaxx 2010-03-13 18:44:16 UTC (rev 234) +++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/MainUI.jaxx 2010-03-13 20:24:39 UTC (rev 235) @@ -134,8 +134,8 @@ <JMenuItem id='menuPluginLoad' onActionPerformed='engine.loadAPlugin()'/> <JSeparator/> - <JMenuItem id='menuPluginShow' - onActionPerformed='engine.doSomething()'/> + <!--JMenuItem id='menuPluginShow' + onActionPerformed='engine.doSomething()'/--> </JMenu> <JMenu id='menuHelp'> 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 18:44:16 UTC (rev 234) +++ trunk/msm-pluginmanager/src/main/java/org/nuiton/mapstoragemanager/plugins/pluginmanager/Main.java 2010-03-13 20:24:39 UTC (rev 235) @@ -33,6 +33,10 @@ */ private static Locale locale = Locale.FRANCE; + /** + * Main to test the PluginManager alone. + * @param args args. + */ public static void main(String ... args) { //ApplicationEngine.getInstance().getPluginLoader().getAllPlugin(null); final PluginManager pluginManager = PluginManager.getInstance(); 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 18:44:16 UTC (rev 234) +++ trunk/msm-pluginmanager/src/main/java/org/nuiton/mapstoragemanager/plugins/pluginmanager/PluginManager.jaxx 2010-03-13 20:24:39 UTC (rev 235) @@ -1,4 +1,4 @@ -<Application id='pluginManagerFrame' width='640' height='480'> +<Application id='pluginManagerFrame' width='640' height='480' implements='Plugin' > <!-- include java files for treatment --> <script> @@ -6,11 +6,16 @@ import org.nuiton.mapstoragemanager.ui.gui.ApplicationEngine; import org.nuiton.mapstoragemanager.core.PluginLoader; import org.nuiton.mapstoragemanager.plugins.Plugin; +import org.nuiton.mapstoragemanager.ui.MainUI; /** * classe instance (singleton pattern). */ private static PluginManager instance = null; +/** + * MenuItemPlugin. + */ +private static JMenuItem menuItemPlugin; /** * getInstance method (singleton pattern). @@ -32,100 +37,155 @@ 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(); +/** + * 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)) { + for(final Plugin plugin : pluginLoader.getAllPlugin(null)) { - final String pluginName = plugin.getPluginName(); - final String pluginDescritpion = "";//plugin.getDescription(); + final String pluginName = plugin.getPluginName(); + final String pluginDescritpion = "";//plugin.getDescription(); - JButton pluginButton = new JButton(pluginName); - pluginButton.setSize(100, 20); - pluginButton.addActionListener(new ActionListener() { + JButton pluginButton = new JButton(pluginName); + pluginButton.setSize(100, 20); + pluginButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { + public void actionPerformed(ActionEvent e) { - JPanel pluginView = getPluginView(); - pluginView.setLayout(new BorderLayout()); + 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); + 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 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)); + 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")); + 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() { + buttonActivate.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - //TODO; - buttonActivate.setEnabled(false); - buttonDesactivate.setEnabled(true); - } - }); + public void actionPerformed(ActionEvent e) { + //TODO; + buttonActivate.setEnabled(false); + buttonDesactivate.setEnabled(true); + } + }); - buttonDesactivate.addActionListener(new ActionListener() { + buttonDesactivate.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - //TODO; - buttonActivate.setEnabled(true); - buttonDesactivate.setEnabled(false); - } - }); + public void actionPerformed(ActionEvent e) { + //TODO; + buttonActivate.setEnabled(true); + buttonDesactivate.setEnabled(false); + } + }); - buttonLoad.addActionListener(new ActionListener() { + buttonLoad.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - plugin.load(); - buttonLoad.setEnabled(false); - buttonUnload.setEnabled(true); - } - }); + public void actionPerformed(ActionEvent e) { + plugin.load(); + buttonLoad.setEnabled(false); + buttonUnload.setEnabled(true); + } + }); - buttonUnload.addActionListener(new ActionListener() { + buttonUnload.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - plugin.unload(); - buttonLoad.setEnabled(true); - buttonUnload.setEnabled(false); - } - }); + 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); + southButton.add(buttonActivate); + southButton.add(buttonDesactivate); + southButton.add(buttonLoad); + southButton.add(buttonUnload); - pluginView.add(southButton, BorderLayout.PAGE_END); - pluginView.updateUI(); - } - }); + pluginView.add(southButton, BorderLayout.PAGE_END); + pluginView.updateUI(); + } + }); - getPluginList().add(pluginButton); + getPluginList().add(pluginButton); + } + getPluginList().updateUI(); +} + + +/** + * {@inheritDoc} + */ +public String getPluginName() { + return this.getClass().getSimpleName(); +} + +/** + * {@inheritDoc} + */ +public String getDescription() { + throw new UnsupportedOperationException("Not supported yet."); +} + +/** + * {@inheritDoc} + */ +@Override +public void load() { + final String pluginName = getPluginName(); + JMenu menuPluginMSM = MainUI.getInstance().getMenuPlugin(); + + if(menuItemPlugin != null) { + menuPluginMSM.remove(menuItemPlugin); + } + + jaxx.runtime.JAXXUtil.assignment(menuItemPlugin = new JMenuItem(pluginName), "menuItemPlugin", org.nuiton.mapstoragemanager.plugins.pluginmanager.PluginManager.this); + menuItemPlugin.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + PluginManager.getInstance().setVisible(true); } - getPluginList().updateUI(); + }); + menuPluginMSM.add(menuItemPlugin); + + if (!menuPluginMSM.isEnabled()) { + menuPluginMSM.setEnabled(true); } +} +/** + * {@inheritDoc} + */ +@Override +public void unload() { + JMenu menuPluginMSM = MainUI.getInstance().getMenuPlugin(); + if(menuItemPlugin != null) { + menuPluginMSM.remove(menuItemPlugin); + } + if (menuPluginMSM.getComponentCount() == 0) { + menuPluginMSM.setEnabled(false); + } +} ]]> </script> Added: trunk/msm-pluginmanager/src/main/resources/META-INF/services/org.nuiton.mapstoragemanager.plugins.Plugin =================================================================== --- trunk/msm-pluginmanager/src/main/resources/META-INF/services/org.nuiton.mapstoragemanager.plugins.Plugin (rev 0) +++ trunk/msm-pluginmanager/src/main/resources/META-INF/services/org.nuiton.mapstoragemanager.plugins.Plugin 2010-03-13 20:24:39 UTC (rev 235) @@ -0,0 +1 @@ +org.nuiton.mapstoragemanager.plugins.pluginmanager.PluginManager \ No newline at end of file
participants (1)
-
dlanglais@users.nuiton.org