Author: echatellier Date: 2014-03-21 18:31:25 +0100 (Fri, 21 Mar 2014) New Revision: 3904 Url: http://forge.codelutin.com/projects/isis-fish/repository/revisions/3904 Log: refs #4803: Saisit et parametrisation des scripts d'optimisation dans l'interface Added: branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/models/optimization/ branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/models/optimization/OptimizationComboModel.java branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/models/optimization/OptimizationComboRenderer.java Modified: branches/4.0.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java branches/4.0.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterCache.java branches/4.0.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterImpl.java branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/optimization/OptimizationHandler.java branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/optimization/OptimizationMethodUI.jaxx branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java branches/4.0.1/src/main/resources/i18n/isis-fish_fr_FR.properties Modified: branches/4.0.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java =================================================================== --- branches/4.0.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java 2014-03-21 16:33:37 UTC (rev 3903) +++ branches/4.0.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java 2014-03-21 17:31:25 UTC (rev 3904) @@ -340,10 +340,33 @@ /** * @param sensitivityExport the sensitivityExportNames to set */ - public void setSensitivityExport( - List<SensitivityExport> sensitivityExport); + public void setSensitivityExport(List<SensitivityExport> sensitivityExport); /** + * Return used optimization script + */ + public Optimization getOptimization(); + + /** + * Set simulation optimization. + * + * @param optimization optimization + */ + public void setOptimization(Optimization optimization); + + /** + * Return used objective. + * + * @return + */ + public Objective getObjective(); + + /** + * Set objective. + */ + public void setObjective(Objective objective); + + /** * Get use simulation plans property. * * @return use simulation plan. Modified: branches/4.0.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterCache.java =================================================================== --- branches/4.0.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterCache.java 2014-03-21 16:33:37 UTC (rev 3903) +++ branches/4.0.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterCache.java 2014-03-21 17:31:25 UTC (rev 3904) @@ -87,8 +87,7 @@ paramFile = File.createTempFile("isis-fish-param", ".properties"); paramFile.deleteOnExit(); store(param); - } - catch (IOException eee) { + } catch (IOException eee) { throw new IsisFishRuntimeException("Can't cache param to disk", eee); } @@ -101,11 +100,9 @@ try { writer = new BufferedWriter(new FileWriter(paramFile)); prop.store(writer, "Parameter cache"); - } - catch (IOException eee) { + } catch (IOException eee) { throw new IsisFishRuntimeException("Can't cache param to disk", eee); - } - finally { + } finally { IOUtils.closeQuietly(writer); } } @@ -122,11 +119,9 @@ result = new SimulationParameterImpl(); result.fromProperties(prop); ref = new SoftReference<SimulationParameter>(result); - } - catch (IOException eee) { + } catch (IOException eee) { throw new IsisFishRuntimeException("Can't cache param to disk", eee); - } - finally { + } finally { IOUtils.closeQuietly(reader); } @@ -179,7 +174,6 @@ SimulationParameter param = getParam(); param.setDescription(description); store(param); - } /* @@ -217,7 +211,6 @@ SimulationParameter param = getParam(); param.addExtraRules(extraRules); store(param); - } /* @@ -237,7 +230,6 @@ SimulationParameter param = getParam(); param.setPopulations(populations); store(param); - } /* @@ -257,7 +249,6 @@ SimulationParameter param = getParam(); param.setStrategies(strategies); store(param); - } /* @@ -268,7 +259,6 @@ SimulationParameter param = getParam(); param.addSimulationPlan(plan); store(param); - } /* @@ -299,7 +289,6 @@ SimulationParameter param = getParam(); param.setSimulationPlans(plans); store(param); - } /* @@ -319,7 +308,6 @@ SimulationParameter param = getParam(); param.clearPlans(); store(param); - } /* @@ -330,7 +318,6 @@ SimulationParameter param = getParam(); param.addRule(rule); store(param); - } /* @@ -361,7 +348,6 @@ SimulationParameter param = getParam(); param.setRules(rules); store(param); - } /* @@ -372,7 +358,6 @@ SimulationParameter param = getParam(); param.clearRules(); store(param); - } /* @@ -392,7 +377,6 @@ SimulationParameter param = getParam(); param.setUseOptimization(useOptimization); store(param); - } /* @@ -412,7 +396,6 @@ SimulationParameter param = getParam(); param.setUseStatistic(useStatistic); store(param); - } /* @@ -432,7 +415,6 @@ SimulationParameter param = getParam(); param.setExportNames(exportNames); store(param); - } /* @@ -453,7 +435,6 @@ SimulationParameter param = getParam(); param.setNumberOfSensitivitySimulation(numberOfSensitivitySimulation); store(param); - } /* @@ -493,7 +474,6 @@ SimulationParameter param = getParam(); param.setSensitivityExport(sensitivityExport); store(param); - } /* @@ -513,7 +493,6 @@ SimulationParameter param = getParam(); param.setUseSimulationPlan(useSimulationPlan); store(param); - } /* @@ -900,7 +879,6 @@ SimulationParameter param = getParam(); param.fromProperties(props); store(param); - } /* @@ -912,4 +890,32 @@ param.reloadContextParameters(); store(param); } + + @Override + public Optimization getOptimization() { + SimulationParameter param = getParam(); + return param.getOptimization(); + } + + @Override + public Objective getObjective() { + SimulationParameter param = getParam(); + return param.getObjective(); + } + + @Override + public void setOptimization(Optimization optimization) { + SimulationParameter param = getParam(); + param.setOptimization(optimization); + store(param); + } + + @Override + public void setObjective(Objective objective) { + SimulationParameter param = getParam(); + param.setObjective(objective); + store(param); + } + + } Modified: branches/4.0.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterImpl.java =================================================================== --- branches/4.0.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterImpl.java 2014-03-21 16:33:37 UTC (rev 3903) +++ branches/4.0.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterImpl.java 2014-03-21 17:31:25 UTC (rev 3904) @@ -54,6 +54,8 @@ import fr.ifremer.isisfish.IsisConfig; import fr.ifremer.isisfish.IsisFishDAOHelper; import fr.ifremer.isisfish.IsisFishException; +import fr.ifremer.isisfish.datastore.ObjectiveStorage; +import fr.ifremer.isisfish.datastore.OptimizationStorage; import fr.ifremer.isisfish.datastore.RegionStorage; import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage; @@ -171,6 +173,12 @@ /** Script utilisé pour les analyses de sensibilités. */ protected SensitivityAnalysis sensitivityAnalysis; + /** Script d'optimisation. */ + protected Optimization optimization; + + /** Fonction d'objectif. */ + protected Objective objective; + /** La liste des resultats qui nous interesse. */ protected Collection<String> resultEnabled; @@ -860,6 +868,65 @@ this.sensitivityExports = sensitivityExport; } + @Override + public Optimization getOptimization() { + if (optimization == null) { + if (propertiesParameters != null) { + String optimizationName = propertiesParameters.getProperty("optimization"); + if (!StringUtils.isEmpty(optimizationName)) { + try { + OptimizationStorage optimizationStorage = OptimizationStorage.getOptimization(optimizationName); + optimizationName = optimizationStorage.getNewInstance(); + // 0 = only single sensitivity + StorageHelper.populateStorageParams(0, getRegion().getStorage(), optimization, + propertiesParameters, "optimization"); + } catch (IsisFishException eee) { + optimization = null; + if (log.isWarnEnabled()) { + log.warn("Can't find optimization: " + optimization, eee); + } + } + } + } + } + + return optimization; + } + + @Override + public void setOptimization(Optimization optimization) { + this.optimization = optimization; + } + + @Override + public Objective getObjective() { + if (objective == null) { + if (propertiesParameters != null) { + String objectiveName = propertiesParameters.getProperty("objective"); + if (!StringUtils.isEmpty(objectiveName)) { + try { + ObjectiveStorage objectiveStorage = ObjectiveStorage.getObjective(objectiveName); + objective = objectiveStorage.getNewInstance(); + // 0 = only single sensitivity + StorageHelper.populateStorageParams(0, getRegion().getStorage(), objective, + propertiesParameters, "objective"); + } catch (IsisFishException eee) { + objective = null; + if (log.isWarnEnabled()) { + log.warn("Can't find objective: " + objective, eee); + } + } + } + } + } + return objective; + } + + @Override + public void setObjective(Objective objective) { + this.objective = objective; + } + /* * @see fr.ifremer.isisfish.simulator.SimulationParameter#getUseAnalysePlan() */ Added: branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/models/optimization/OptimizationComboModel.java =================================================================== --- branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/models/optimization/OptimizationComboModel.java (rev 0) +++ branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/models/optimization/OptimizationComboModel.java 2014-03-21 17:31:25 UTC (rev 3904) @@ -0,0 +1,109 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.models.optimization; + +import java.util.List; + +import javax.swing.DefaultComboBoxModel; + +/** + * Model pour la liste des script d'optimization. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class OptimizationComboModel extends DefaultComboBoxModel<String> { + + /** serialVersionUID. */ + private static final long serialVersionUID = -4070846632975105788L; + + /** SensitivityAnalysis names. */ + protected List<String> optimizationNames; + + /** + * Empty constructor. + */ + public OptimizationComboModel() { + this(null); + } + + /** + * Constructor with calculator list. + * + * @param sensitivityAnalysisNames sensitivity analysis Names + */ + public OptimizationComboModel(List<String> optimizationNames) { + setOptimizationNames(optimizationNames); + } + + /** + * Get sensitivity analysis plan names. + * + * @return the sensitivity analysis plan names + */ + public List<String> getOptimizationNames() { + return optimizationNames; + } + + /** + * Set sensitivity analysis names. + * + * @param sensitivityAnalysisNames the names to set + */ + public void setOptimizationNames(List<String> optimizationNames) { + this.optimizationNames = optimizationNames; + + // default first selected + /* disable default selection + if (!sensitivityAnalysisNames.isEmpty()) { + setSelectedItem(sensitivityAnalysisNames.get(0)); + }*/ + } + + /* + * @see javax.swing.ListModel#getElementAt(int) + */ + @Override + public String getElementAt(int index) { + return optimizationNames.get(index); + } + + /* + * @see javax.swing.ListModel#getSize() + */ + @Override + public int getSize() { + int size = 0; + + if (optimizationNames != null) { + size = optimizationNames.size(); + } + return size; + } +} Property changes on: branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/models/optimization/OptimizationComboModel.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/models/optimization/OptimizationComboRenderer.java =================================================================== --- branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/models/optimization/OptimizationComboRenderer.java (rev 0) +++ branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/models/optimization/OptimizationComboRenderer.java 2014-03-21 17:31:25 UTC (rev 3904) @@ -0,0 +1,101 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2010 Ifremer, Code Lutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.models.optimization; + +import static org.nuiton.i18n.I18n._; + +import java.awt.Component; +import java.util.HashMap; +import java.util.Map; + +import javax.swing.DefaultListCellRenderer; +import javax.swing.JLabel; +import javax.swing.JList; + +import fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage; +import fr.ifremer.isisfish.simulator.Optimization; +import fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysis; +import fr.ifremer.isisfish.ui.util.TooltipHelper; + +/** + * Renderer pour la combo des script d'optimisation. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class OptimizationComboRenderer extends DefaultListCellRenderer { + + /** serialVersionUID. */ + private static final long serialVersionUID = -4070846632975105788L; + + /** Optimization cache. */ + protected Map<String, Optimization> optimizationCache; + + /** + * Empty constructor. + */ + public OptimizationComboRenderer() { + optimizationCache = new HashMap<String, Optimization>(); + } + + /* + * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean) + */ + @Override + public Component getListCellRendererComponent(JList<?> list, Object value, + int index, boolean isSelected, boolean cellHasFocus) { + + // this must be used to have alterned highlight rows and default + // selection color + JLabel c = (JLabel) super.getListCellRendererComponent(list, value, + index, isSelected, cellHasFocus); + + String optimizationName = (String) value; + c.setText(optimizationName); + + // c'est tres couteux d'avoir une instance + // on les met en cache + /*try { + Optimization optim = optimizationCache.get(optimizationName); + if (optim == null) { + SensitivityAnalysisStorage storage = SensitivityAnalysisStorage + .getSensitivityAnalysis(optimizationName); + optim = storage.getNewInstance(); + optimizationCache.put(optimizationName, optim); + } + + c.setToolTipText(optim.getDescription()); + } catch (Exception e) { + String errorTooltip = TooltipHelper.getErrorTooltip(_("isisfish.error.compile.fileerror", sensitivityName)); + c.setToolTipText(errorTooltip); + }*/ + + return c; + } +} Property changes on: branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/models/optimization/OptimizationComboRenderer.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/optimization/OptimizationHandler.java =================================================================== --- branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/optimization/OptimizationHandler.java 2014-03-21 16:33:37 UTC (rev 3903) +++ branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/optimization/OptimizationHandler.java 2014-03-21 17:31:25 UTC (rev 3904) @@ -22,15 +22,29 @@ */ package fr.ifremer.isisfish.ui.optimization; -import javax.swing.DefaultComboBoxModel; -import javax.swing.DefaultListModel; +import java.awt.CardLayout; +import java.util.ArrayList; +import java.util.List; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import fr.ifremer.isisfish.IsisFishException; +import fr.ifremer.isisfish.datastore.OptimizationStorage; +import fr.ifremer.isisfish.simulator.Optimization; import fr.ifremer.isisfish.ui.input.InputHandler; +import fr.ifremer.isisfish.ui.models.common.ScriptParametersTableCellEditor; +import fr.ifremer.isisfish.ui.models.common.ScriptParametersTableCellRenderer; +import fr.ifremer.isisfish.ui.models.common.ScriptParametersTableModel; +import fr.ifremer.isisfish.ui.models.optimization.OptimizationComboModel; +import fr.ifremer.isisfish.ui.simulator.SimulAction; public class OptimizationHandler extends InputHandler { + private static final Log log = LogFactory.getLog(OptimizationHandler.class); + public void init(OptimizationMethodUI view) { - DefaultComboBoxModel<String> methodModel = new DefaultComboBoxModel<String>(); + /*DefaultComboBoxModel<String> methodModel = new DefaultComboBoxModel<String>(); methodModel.addElement("Simplex"); methodModel.addElement("ABC"); methodModel.addElement("Génétique"); @@ -46,6 +60,69 @@ criteriaModel.addElement("Max"); criteriaModel.addElement("Seuil à dépasser"); criteriaModel.addElement("Epsilon"); - view.getFieldOptimizationCriteriaSelect().setModel(criteriaModel); + view.getFieldOptimizationCriteriaSelect().setModel(criteriaModel);*/ } + + /** + * Optimization model for combo box. + * + * @return model + */ + public OptimizationComboModel getOptimizationComboModel() { + List<String> result = new ArrayList<String>(); + for (String r : OptimizationStorage.getOptimizationNames()) { + // there is some non java files in sensitivity directory + if (r.endsWith(".java")) { + // Remove .java extention + // for example SensitivityStorage.getRuleName(String) + result.add(r.substring(0, r.length() - 5)); + } + } + + OptimizationComboModel model = new OptimizationComboModel(result); + return model; + } + + /** + * Selection d'une méthode d'optimisation. + * + * @param view view + */ + public void optimizationChanged(OptimizationMethodUI view) { + String optimizationName = (String)view.getFieldOptimizationMethodSelect().getSelectedItem(); + SimulAction simulAction = view.getContextValue(SimulAction.class); + + // creation new instance only when name change to not lose parameters value + Optimization optimization = simulAction.getOptimization(); + if (optimization != null && optimization.getClass().getSimpleName().equals(optimizationName)) { + optimization = simulAction.getOptimization(); + } else { + try { + OptimizationStorage optimizationStorage = OptimizationStorage.getOptimization(optimizationName); + optimization = optimizationStorage.getNewInstance(); + } catch (IsisFishException e) { + if (log.isErrorEnabled()) { + log.error("Can't set optimization", e); + } + } + } + + // can be null for example if analysis can't be compiled + if (optimization != null) { + simulAction.setOptimization(optimization); + + /*CardLayout factorPanelLayout = (CardLayout)view.getFactorCardinalityPanel().getLayout(); + if (sensitivityAnalysis.canManageCardinality()) { + factorPanelLayout.show(factorCardinalityPanel, "factorCardinalitySupported"); + } else { + factorPanelLayout.show(factorCardinalityPanel, "factorCardinalityNotSupported"); + }*/ + + // update model + ScriptParametersTableModel parametersTableModel = new ScriptParametersTableModel(optimization); + view.getSimulOptimizationMethodParam().setModel(parametersTableModel); + view.getSimulOptimizationMethodParam().getColumnModel().getColumn(0).setCellRenderer(new ScriptParametersTableCellRenderer(optimization)); + view.getSimulOptimizationMethodParam().getColumnModel().getColumn(1).setCellEditor(new ScriptParametersTableCellEditor(optimization)); + } + } } Modified: branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/optimization/OptimizationMethodUI.jaxx =================================================================== --- branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/optimization/OptimizationMethodUI.jaxx 2014-03-21 16:33:37 UTC (rev 3903) +++ branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/optimization/OptimizationMethodUI.jaxx 2014-03-21 17:31:25 UTC (rev 3904) @@ -27,6 +27,7 @@ java.awt.CardLayout javax.swing.ComboBoxModel javax.swing.table.DefaultTableModel + fr.ifremer.isisfish.ui.models.optimization.OptimizationComboRenderer </import> <script><![CDATA[ @@ -34,12 +35,14 @@ getContextValue(OptimizationHandler.class).init(this); } ]]></script> + <OptimizationHandler id="handler" /> <row> <cell fill="horizontal"> <JLabel text="isisfish.optimization.select"/> </cell> <cell fill="horizontal" weightx="1.0"> - <JComboBox id="fieldOptimizationMethodSelect" /> + <JComboBox id="fieldOptimizationMethodSelect" model='{handler.getOptimizationComboModel()}' + renderer='{new OptimizationComboRenderer()}' onActionPerformed='handler.optimizationChanged(this)'/> </cell> </row> <row> @@ -49,7 +52,8 @@ </JScrollPane> </cell> </row> - <row> + + <!-- <row> <cell columns="2" fill="both" weightx="1.0" weighty="1.0"> <JPanel id="factorCardinalityPanel" layout="{new CardLayout()}"> <JLabel text="isisfish.optimization.methodfactorsupported" horizontalAlignment="center" @@ -59,7 +63,7 @@ </JScrollPane> </JPanel> </cell> - </row> + </row> --> <row> <cell fill="both" columns='3' weightx="1.0"> <JLabel text="isisfish.optimization.objectives"/> Modified: branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java =================================================================== --- branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2014-03-21 16:33:37 UTC (rev 3903) +++ branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2014-03-21 17:31:25 UTC (rev 3904) @@ -79,6 +79,7 @@ import fr.ifremer.isisfish.export.SensitivityExport; import fr.ifremer.isisfish.mexico.MexicoHelper; import fr.ifremer.isisfish.rule.Rule; +import fr.ifremer.isisfish.simulator.Optimization; import fr.ifremer.isisfish.simulator.SimulationParameter; import fr.ifremer.isisfish.simulator.SimulationParameterImpl; import fr.ifremer.isisfish.simulator.SimulationPlan; @@ -129,7 +130,6 @@ protected SimulationStorage simulStorage = null; protected List<String> oldSimulNames = null; protected String simulName = null; - protected SensitivityAnalysisStorage sensitivityStorage = null; /** * List de facteur sous forme d'arbre (factor group). @@ -802,7 +802,7 @@ public SensitivityAnalysis getSensitivityAnalysisInstance(String name) { SensitivityAnalysis sensitivityAnalysis = null; try { - sensitivityStorage = SensitivityAnalysisStorage.getSensitivityAnalysis(name); + SensitivityAnalysisStorage sensitivityStorage = SensitivityAnalysisStorage.getSensitivityAnalysis(name); sensitivityAnalysis = sensitivityStorage.getNewInstance(); } catch (IsisFishException e) { if (log.isErrorEnabled()) { @@ -1328,4 +1328,12 @@ throw new IsisFishRuntimeException("Can't add factor on rule", ex); }*/ } + + public Optimization getOptimization() { + return param.getOptimization(); + } + + public void setOptimization(Optimization optimization) { + param.setOptimization(optimization); + } } Modified: branches/4.0.1/src/main/resources/i18n/isis-fish_fr_FR.properties =================================================================== --- branches/4.0.1/src/main/resources/i18n/isis-fish_fr_FR.properties 2014-03-21 16:33:37 UTC (rev 3903) +++ branches/4.0.1/src/main/resources/i18n/isis-fish_fr_FR.properties 2014-03-21 17:31:25 UTC (rev 3904) @@ -651,11 +651,11 @@ isisfish.month.november=novembre isisfish.month.october=octobre isisfish.month.september=septembre -isisfish.optimization.methodfactorsupported=La méthode de calibration choisie gère les cardinalités des facteurs +isisfish.optimization.methodfactorsupported=La méthode d'optimisation choisie gère les cardinalités des facteurs isisfish.optimization.objectives=Fonctions d'objectif isisfish.optimization.optimization=Critère d'optimisation -isisfish.optimization.select=Méthode de calibration -isisfish.optimization.title=Calibration +isisfish.optimization.select=Méthode d'optimisation +isisfish.optimization.title=Optimisation isisfish.params.changeLogLev=Passe du niveau '%1$s' au niveau '%2$s' isisfish.params.description=Description isisfish.params.loadOldSimulation=Charger une ancienne simulation