Author: fgilet Date: 2010-03-18 14:50:10 +0100 (Thu, 18 Mar 2010) New Revision: 258 Log: Gestion de rechargement des plugins fonctionnelle Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/ApplicationEngine.java Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/ApplicationEngine.java =================================================================== --- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/ApplicationEngine.java 2010-03-18 13:38:26 UTC (rev 257) +++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/engine/ApplicationEngine.java 2010-03-18 13:50:10 UTC (rev 258) @@ -7,10 +7,18 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; +import java.util.ArrayList; import java.util.Enumeration; +import java.util.HashMap; +import java.util.List; import java.util.Locale; +import java.util.Map; import java.util.Properties; import java.util.Set; import javax.swing.AbstractButton; @@ -157,17 +165,38 @@ */ public void savePlugin() { PluginLoader pluginLoaderTemp = getPluginLoader(); - final JPanel buttonDisplay = new JPanel(new GridLayout(3,20)); + final JPanel buttonDisplay = new JPanel(new GridLayout(20,3)); final JPanel content = new JPanel(new BorderLayout()); - JFrame frameTemp = new JFrame(); + final JFrame frameTemp = new JFrame(); + List<String> nomPlugins = new ArrayList<String>(); + final Map<String,String> mapPlugins = new HashMap<String,String>(); //check all plugins in .properties - for(final Plugin plugin : pluginLoaderTemp.getAllPlugin(null)) { + final Properties properties = new Properties(); + final File propertiesFile = new File(MSM_PLUGINS_DIR, ".properties"); + try { + FileInputStream fis = new FileInputStream(propertiesFile); + properties.load(fis); + Set<Object> props = properties.keySet(); + for (Object property : props) { + String nomPlugin = property.toString(); + nomPlugin = nomPlugin.substring(nomPlugin.lastIndexOf("/")+1); + nomPlugins.add(nomPlugin); + mapPlugins.put(nomPlugin, property.toString()); + } - String pluginName = plugin.getPluginName(); + } catch(FileNotFoundException e){ + LOG.fatal(e, e); + } catch (IOException ioe){ + LOG.fatal(ioe, ioe); + } - JCheckBox pluginButton = new JCheckBox(pluginName); + + + for(final String nomPlugin : nomPlugins) { + + JCheckBox pluginButton = new JCheckBox(nomPlugin); pluginButton.setSize(100, 20); buttonDisplay.add(pluginButton); @@ -179,13 +208,21 @@ @Override public void actionPerformed(ActionEvent e) { - Component[] component = buttonDisplay.getComponents(); - for(final Component comp : component){ - JButton buttonTemp = (JButton) comp; + Component[] components = buttonDisplay.getComponents(); + for(final Component comp : components){ + JCheckBox buttonTemp = (JCheckBox) comp; //if disable, write false into .properties - if(!buttonTemp.isEnabled()){ + if(!buttonTemp.isSelected()){ + properties.put(mapPlugins.get(buttonTemp.getText()), "false"); + try { + properties.store(new FileOutputStream(propertiesFile), null); + + } catch (IOException ex) { + LOG.error(ex, ex); + } } } + frameTemp.dispose(); } });
participants (1)
-
fgilet@users.nuiton.org