r3751 - in trunk/src/main: java/fr/ifremer/isisfish/mexico java/fr/ifremer/isisfish/ui/sensitivity resources/i18n
Author: echatellier Date: 2012-08-31 16:12:18 +0200 (Fri, 31 Aug 2012) New Revision: 3751 Url: http://forge.codelutin.com/repositories/revision/isis-fish/3751 Log: fixes #1450 : Add option to export factor list into mexico xml file Modified: trunk/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityInputHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx trunk/src/main/resources/i18n/isis-fish_en_GB.properties trunk/src/main/resources/i18n/isis-fish_fr_FR.properties Modified: trunk/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java 2012-08-31 13:09:22 UTC (rev 3750) +++ trunk/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java 2012-08-31 14:12:18 UTC (rev 3751) @@ -45,6 +45,8 @@ import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.ConvertUtilsBean; +import org.apache.commons.io.FileUtils; +import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringEscapeUtils; import org.apache.commons.logging.Log; @@ -59,6 +61,7 @@ import org.nuiton.topia.TopiaContext; import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.TopiaEntity; +import org.omg.CosNaming.NamingContextExtPackage.StringNameHelper; import org.xml.sax.InputSource; import fr.ifremer.isisfish.IsisFishDAOHelper; @@ -106,7 +109,20 @@ designPlanXml = MexicoHelper.formatXML(designPlanXml); return designPlanXml; + } + /** + * Convert design plan to xml and write it to given file. + * + * @param designPlan + */ + public static void writeDesignPlanToFile(File file, DesignPlan designPlan) { + String content = getDesignPlanAsXML(designPlan); + try { + FileUtils.writeStringToFile(file, content); + } catch (IOException ex) { + throw new IsisFishRuntimeException("Can't export factors to xml file", ex); + } } /** Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityInputHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityInputHandler.java 2012-08-31 13:09:22 UTC (rev 3750) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityInputHandler.java 2012-08-31 14:12:18 UTC (rev 3751) @@ -29,6 +29,8 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; +import java.io.File; +import java.io.IOException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; @@ -51,6 +53,8 @@ import jaxx.runtime.context.JAXXInitialContext; +import org.apache.commons.io.FileUtils; +import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; @@ -61,12 +65,15 @@ import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaEntityContextable; +import org.nuiton.util.FileUtil; import fr.ifremer.isisfish.IsisFishRuntimeException; import fr.ifremer.isisfish.datastore.RegionStorage; import fr.ifremer.isisfish.entities.Equation; import fr.ifremer.isisfish.entities.FisheryRegion; +import fr.ifremer.isisfish.mexico.MexicoHelper; import fr.ifremer.isisfish.rule.Rule; +import fr.ifremer.isisfish.simulator.sensitivity.DesignPlan; import fr.ifremer.isisfish.simulator.sensitivity.Domain; import fr.ifremer.isisfish.simulator.sensitivity.Factor; import fr.ifremer.isisfish.simulator.sensitivity.FactorGroup; @@ -91,8 +98,8 @@ import fr.ifremer.isisfish.ui.input.tree.FisheryTreeRenderer; import fr.ifremer.isisfish.ui.simulator.RuleChooser; import fr.ifremer.isisfish.ui.simulator.SimulAction; +import fr.ifremer.isisfish.ui.widget.editor.MonthComponent; import fr.ifremer.isisfish.ui.widget.editor.StepComponent; -import fr.ifremer.isisfish.ui.widget.editor.MonthComponent; /** * Handler for sensitivity tab ui (fishery region factors). @@ -1266,4 +1273,33 @@ factorWizardUI.getContextValue(SimulationUI.class, "SimulationUI").refreshFactorTree(); factorWizardUI.dispose(); } + + /** + * Export factors list to xml mexico file. + * + * @since 4.1.1.2 + */ + public void exportFactorsToMexico(SensitivityTabUI view) { + File xmlFile = FileUtil.getFile(_("isisfish.sensitivity.mexico.exporttoxml.title"), + _("isisfish.sensitivity.mexico.exporttoxml.approve"), view, + new String[]{ + ".*\\.xml", + _("isisfish.sensitivity.mexico.exporttoxml.filter") + }); + + if (xmlFile != null) { + + // try to add ".xml" extension if no present + if (!FilenameUtils.isExtension(xmlFile.getAbsolutePath(), "xml")) { + xmlFile = new File(xmlFile.getAbsolutePath() + ".xml"); + } + + SimulAction simulAction = view.getContextValue(SimulAction.class); + + DesignPlan designPlan = new DesignPlan(); + designPlan.setFactorGroup(simulAction.getFactorGroup()); + String xml = MexicoHelper.getDesignPlanAsXML(designPlan); + MexicoHelper.writeDesignPlanToFile(xmlFile, designPlan); + } + } } Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx 2012-08-31 13:09:22 UTC (rev 3750) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx 2012-08-31 14:12:18 UTC (rev 3751) @@ -108,13 +108,17 @@ <JButton icon="factors/dgroup.png" toolTipText="isisfish.sensitivity.newfactordgroup.tip" onActionPerformed="getHandler().addNewFactorGroup(this, false)"/> </cell> - <cell anchor='west' weightx='1'> + <cell anchor='west'> <JButton icon="factors/cgroup.png" toolTipText="isisfish.sensitivity.newfactorcgroup.tip" onActionPerformed="getHandler().addNewFactorGroup(this, true)"/> </cell> + <cell anchor='west' weightx='1'> + <JButton icon="script_go.png" toolTipText="isisfish.sensitivity.mexico.exporttoxml.tip" + onActionPerformed="getHandler().exportFactorsToMexico(this)"/> + </cell> </row> <row> - <cell columns='2' fill="both" weightx='1.0' weighty='1.0'> + <cell columns='3' fill="both" weightx='1.0' weighty='1.0'> <JScrollPane> <FactorTree id="factorsTree" constructorParams='this' rootVisible="true" selectionRow='0' Modified: trunk/src/main/resources/i18n/isis-fish_en_GB.properties =================================================================== --- trunk/src/main/resources/i18n/isis-fish_en_GB.properties 2012-08-31 13:09:22 UTC (rev 3750) +++ trunk/src/main/resources/i18n/isis-fish_en_GB.properties 2012-08-31 14:12:18 UTC (rev 3751) @@ -866,6 +866,10 @@ isisfish.sensitivity.increment=Cardinality isisfish.sensitivity.lastValue=Last value isisfish.sensitivity.methodfactorsupported=The selected sensitivity method handles factors cardinalities +isisfish.sensitivity.mexico.exporttoxml.approve=Export +isisfish.sensitivity.mexico.exporttoxml.filter=Xml files +isisfish.sensitivity.mexico.exporttoxml.tip=Export factors to mexico xml file +isisfish.sensitivity.mexico.exporttoxml.title=Export factors to mexico xml file isisfish.sensitivity.moveillegal=Can't move discrete factor to continuous group \! isisfish.sensitivity.name=Factor name isisfish.sensitivity.newfactorcgroup.tip=Add new continuous factor group Modified: trunk/src/main/resources/i18n/isis-fish_fr_FR.properties =================================================================== --- trunk/src/main/resources/i18n/isis-fish_fr_FR.properties 2012-08-31 13:09:22 UTC (rev 3750) +++ trunk/src/main/resources/i18n/isis-fish_fr_FR.properties 2012-08-31 14:12:18 UTC (rev 3751) @@ -866,6 +866,10 @@ isisfish.sensitivity.increment=Cardinalité isisfish.sensitivity.lastValue=Dernière valeur isisfish.sensitivity.methodfactorsupported=La méthode de sensibilité choisie gère les cardinalités des facteurs +isisfish.sensitivity.mexico.exporttoxml.approve=Exporter +isisfish.sensitivity.mexico.exporttoxml.filter=Fichier XML +isisfish.sensitivity.mexico.exporttoxml.tip=Exporter les facteurs vers un fichier xml mexico +isisfish.sensitivity.mexico.exporttoxml.title=Exporter les facteurs vers un fichier xml mexico isisfish.sensitivity.moveillegal=Impossible d'ajouter un facteur discret dans un groupe continu \! isisfish.sensitivity.name=Nom du facteur isisfish.sensitivity.newfactorcgroup.tip=Ajouter un groupe de facteur continu
participants (1)
-
echatellier@users.forge.codelutin.com