Author: sletellier Date: 2009-03-11 16:41:51 +0000 (Wed, 11 Mar 2009) New Revision: 1945 Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizard.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties Log: Simulation with sensibility is enabled Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationUI.jaxx 2009-03-11 15:24:51 UTC (rev 1944) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationUI.jaxx 2009-03-11 16:41:51 UTC (rev 1945) @@ -137,9 +137,9 @@ <JPanel id="hidablePanel" layout='{new CardLayout()}'> <PopulationMigrationEquationUI id='populationMigrationEquationUI' constraints='"fieldUseEquation"' constructorParams='this'/> <JTabbedPane id="fieldUseMatrix" constraints='"fieldUseMatrix"'> - <tab title='{_("isisfish.metier.title")}'><PopulationMigrationMigrationUI id="populationMigrationMigrationUI" constructorParams='this'/></tab> - <tab title='{_("isisfish.metierSeasonInfoZone.title")}'><PopulationMigrationImmigrationUI id="populationMigrationImmigrationUI" constructorParams='this'/></tab> - <tab title='{_("isisfish.metierSeasonInfoSpecies.title")}'><PopulationMigrationEmigrationUI id="populationMigrationEmigrationUI" constructorParams='this'/></tab> + <tab title='{_("isisfish.populationMigrationMigration.title")}'><PopulationMigrationMigrationUI id="populationMigrationMigrationUI" constructorParams='this'/></tab> + <tab title='{_("isisfish.populationMigrationImmigration.title")}'><PopulationMigrationImmigrationUI id="populationMigrationImmigrationUI" constructorParams='this'/></tab> + <tab title='{_("isisfish.populationMigrationEmigration.title")}'><PopulationMigrationEmigrationUI id="populationMigrationEmigrationUI" constructorParams='this'/></tab> </JTabbedPane> </JPanel> </cell> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizard.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizard.jaxx 2009-03-11 15:24:51 UTC (rev 1944) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizard.jaxx 2009-03-11 16:41:51 UTC (rev 1945) @@ -201,13 +201,17 @@ <JLabel text='isisfish.factor.firstValue' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/> </cell> <cell fill='horizontal' weightx='0.5'> - <JPanel id='continueMinPanel' layout='{new BorderLayout()}'/> + <JScrollPane> + <JPanel id='continueMinPanel' layout='{new BorderLayout()}'/> + </JScrollPane> </cell> <cell fill='horizontal'> <JLabel text='isisfish.factor.lastValue' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/> </cell> <cell fill='horizontal' weightx='0.5'> - <JPanel id='continueMaxPanel' layout='{new BorderLayout()}'/> + <JScrollPane> + <JPanel id='continueMaxPanel' layout='{new BorderLayout()}'/> + </JScrollPane> </cell> </row> <row> @@ -240,6 +244,18 @@ </cell> </row> <row> + <cell columns='4' fill='horizontal'> + <JLabel text='isisfish.factor.comment'/> + </cell> + </row> + <row> + <cell columns='4' fill='both' weightx='1' weighty='1'> + <JScrollPane> + <JTextArea id='comment'/> + </JScrollPane> + </cell> + </row> + <row> <cell fill='horizontal' weightx='0.25'> <JButton id='cancel' text='isisfish.common.cancel' onActionPerformed='this.dispose()'/> </cell> Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx 2009-03-11 16:41:51 UTC (rev 1945) @@ -0,0 +1,118 @@ +<!-- +/* *##% + * Copyright (C) 2005 + * Ifremer, Code Lutin, Cedric Pineau, Benjamin Poussin + * + * 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 2 + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + *##%*/ + +/* * + * IsisFish.java + * + * Created: 1 aout 2005 18:37:25 CEST + * + * @author Benjamin POUSSIN <poussin at codelutin.com> + * @version $Revision: 1312 $ + * + * Last update: $Date: 2008-08-28 10:21:07 +0200 (jeu, 28 aoû 2008) $ + * by : $Author: sletellier $ + */ + --> + +<Table> +<script><![CDATA[ +import javax.swing.table.DefaultTableModel; +import javax.swing.table.TableModel; +import jaxx.runtime.swing.Item; +import fr.ifremer.isisfish.datastore.SensitivityStorage; +import fr.ifremer.isisfish.ui.simulator.SimulAction; +import fr.ifremer.isisfish.ui.widget.editor.GenericCell; +import fr.ifremer.isisfish.ui.widget.editor.ParameterColumnEditor; + +public ComboBoxModel getSensitivityModel(){ + java.util.List<Item> items = new ArrayList<Item>(); + items.add(new Item("null", " ", null, true)); + for (String s : getSimulAction().getSensitivityName()){ + items.add(new Item(s, s, s, false)); + } + fieldSensitivitySelect.setItems(items); + return fieldSensitivitySelect.getModel(); +} +protected SimulAction getSimulAction(){ + return getContextValue(SimulAction.class); +} +protected void sensChanged(){ + if (fieldSensitivitySelect.getSelectedIndex() != -1){ + getSimulAction().setSensitivity((String)fieldSensitivitySelect.getSelectedItem()); + setTableModel(); + } +} +protected void setTableModel(){ + Map<String, Class<?>> values = getSimulAction().getSensitivityParameterNames((String)fieldSensitivitySelect.getSelectedItem()); + int row = 0; + if (values != null){ + DefaultTableModel model = new DefaultTableModel(){ + @Override + public boolean isCellEditable(int row, int column) { + boolean result = false; + if (column > 0){ + result =true; + } + return result; + } + }; + java.util.List<GenericCell> valuesList = new ArrayList<GenericCell>(); + java.util.List<Object> propertyList = new ArrayList<Object>(); + for (Iterator<String> it = values.keySet().iterator(); it.hasNext();) { + String name = it.next(); + Object properties = getContextValue(SimulAction.class).getSensitivityParameterValue(name); + GenericCell value = new GenericCell(name, values.get(name), null); + valuesList.add(value); + propertyList.add(properties); + row++; + } + model.addColumn("Name", valuesList.toArray()); + model.addColumn("Value", propertyList.toArray()); + simulSensitivityParam.setModel(model); + ParameterColumnEditor cellEditor = new ParameterColumnEditor(); + cellEditor.setRegion(getContextValue(SimulAction.class).getRegionStorage()); + simulSensitivityParam.getColumnModel().getColumn(1).setCellEditor(cellEditor); + simulSensitivityParam.getModel().addTableModelListener(new TableModelListener() { + @Override + public void tableChanged(TableModelEvent e) { + int row = e.getFirstRow(); + TableModel model = (TableModel)e.getSource(); + GenericCell data = (GenericCell) model.getValueAt(row, 0); + getContextValue(SimulAction.class).setSensitivityParameterValue(data.getName(), model.getValueAt(row, 1)); + } + }); + + } +} + ]]> + </script> + <row> + <cell columns="2" fill="horizontal" weightx="1.0"> + <JComboBox id="fieldSensitivitySelect" model='{getSensitivityModel()}' onActionPerformed='sensChanged()'/> + </cell> + </row> + <row> + <cell columns="2" fill="both" weightx="1.0" weighty="1.0"> + <JScrollPane> + <JTable id="simulSensitivityParam" rowHeight='24'/> + </JScrollPane> + </cell> + </row> +</Table> \ No newline at end of file Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx 2009-03-11 15:24:51 UTC (rev 1944) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx 2009-03-11 16:41:51 UTC (rev 1945) @@ -52,6 +52,9 @@ <tab title='isisfish.params.title'> <ParamsUI id='paramsUI' constructorParams='getContextValue(SimulAction.class)'/> </tab> + <tab title='isisfish.sensitivityChooser.title'> + <SensitivityChooserUI id="sensitivityChooserUI" constructorParams='new JAXXInitialContext().add(this)'/> + </tab> <tab title='isisfish.sensitivity.title'> <SensitivityTabUI id="sensitivityTabUI" constructorParams='new JAXXInitialContext().add(new InputAction()).add(new InputSaveVerifier()).add(this)'/> </tab> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2009-03-11 15:24:51 UTC (rev 1944) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2009-03-11 16:41:51 UTC (rev 1945) @@ -172,7 +172,12 @@ setRulesItems(); } protected void simul(){ - getContextValue(SimulAction.class).launchSimulation(fieldSimulParamsName.getText(), (SimulatorLauncher)comboSelLauncher.getSelectedItem()); + if (!isSensitivity()){ + getContextValue(SimulAction.class).launchSimulation(fieldSimulParamsName.getText(), (SimulatorLauncher)comboSelLauncher.getSelectedItem()); + } + else{ + getContextValue(SimulAction.class).launchSimulationWhithSensibility(fieldSimulParamsName.getText(), (SimulatorLauncher)comboSelLauncher.getSelectedItem()); + } getParentContainer(WelcomeTabUI.class).selTab(5); } protected void enablePreSimul(){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-03-11 15:24:51 UTC (rev 1944) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-03-11 16:41:51 UTC (rev 1945) @@ -105,6 +105,8 @@ protected SensitivityStorage sensitivityStorage = null; protected Map<String, Factor<? extends Serializable>> factors = new HashMap<String, Factor<? extends Serializable>>(); protected Map<String, JComponent> factorComponent = new HashMap<String, JComponent>(); + protected DesignPlan designPlan = new DesignPlan(); + protected SensitivityCalculator sensitivityCalculator = null; /* ************ * Init @@ -607,11 +609,54 @@ public List<String> getSensitivityName(){ return SensitivityStorage.getSensitivityNames(); } + public void addSensitivity(String name){ + try { + SensitivityCalculator sens = SensitivityStorage.getSensitivity(name).getNewSensitivityInstance(); + getSimulationParameter().setSensitivityCalculator(sens); + } catch (IsisFishException ex) { + Logger.getLogger(SimulAction.class.getName()).log(Level.SEVERE, null, ex); + showMsgBox(ex); + } + } + public Map<String, Class<?>> getSensitivityParameterNames(String name){ + Map<String, Class<?>> result = null; + try { + SensitivityStorage sens = SensitivityStorage.getSensitivity(name); + result = sens.getParameterNames(); + } catch (IsisFishException ex) { + Logger.getLogger(SimulAction.class.getName()).log(Level.SEVERE, null, ex); + } + return result; + } + public Object getSensitivityParameterValue(String paramName){ + Object result = null; + try { + result = SensitivityStorage.getParameterValue(param.getSensitivityCalculator(), paramName); + } catch (IsisFishException ex) { + Logger.getLogger(SimulAction.class.getName()).log(Level.SEVERE, null, ex); + showMsgBox(ex); + } + return result; + } + public void setSensitivityParameterValue(String paramName, Object value){ + try { + SensitivityStorage.setParameterValue(param.getSensitivityCalculator(), paramName, value); + } catch (IsisFishException ex) { + Logger.getLogger(SimulAction.class.getName()).log(Level.SEVERE, null, ex); + showMsgBox(ex); + } + } public SensitivityStorage getSensitivity(String name){ return SensitivityStorage.getSensitivity(name); } public void setSensitivity(String name){ - sensitivityStorage = SensitivityStorage.getSensitivity(name); + try { + sensitivityStorage = SensitivityStorage.getSensitivity(name); + SensitivityCalculator sensCal = sensitivityStorage.getNewSensitivityInstance(); + sensitivityCalculator = sensCal; + } catch (IsisFishException ex) { + Logger.getLogger(SimulAction.class.getName()).log(Level.SEVERE, null, ex); + } } public List<Factor<? extends Serializable>> getFactors(){ List<Factor<? extends Serializable>> result = new ArrayList<Factor<? extends Serializable>>(); @@ -623,6 +668,7 @@ public void addFactor(String path, Factor f, JComponent c){ factors.put(path, f); factorComponent.put(path, c); + designPlan.setFactors(getFactors()); } public Factor<? extends Serializable> getFactor(String name){ return factors.get(name); @@ -659,6 +705,7 @@ public void removeFactor(String path){ factors.remove(path); factorComponent.remove(path); + designPlan.setFactors(getFactors()); } /* @@ -763,4 +810,9 @@ showMsgBox(eee); } } + + + public void launchSimulationWhithSensibility(String simulationId, SimulatorLauncher launcher) { + launchSimulation(simulationId, launcher, sensitivityCalculator, designPlan); + } } Modified: isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties =================================================================== --- isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-03-11 15:24:51 UTC (rev 1944) +++ isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-03-11 16:41:51 UTC (rev 1945) @@ -351,6 +351,7 @@ isisfish.export.directory=Export directory isisfish.export.saved=Export saved isisfish.export.title=Results export +isisfish.factor.comment=Comment isisfish.factor.continue=Continue factor isisfish.factor.discret=Discret factor isisfish.factor.firstValue=First value @@ -638,7 +639,7 @@ isisfish.params.toString.simul.logger.level=Level of simulator's logger %1$s isisfish.params.toString.simulation.done=Simulation done with %1$s\: isisfish.params.toString.strategies=Strat\u00E9gies d'exploitation\: -isisfish.params.useAnalysePlan=Use analyse plan +isisfish.params.useAnalysePlan=Use simulation plan isisfish.params.usePreSimulationScript=Use pre simulation script isisfish.population.capturability=Capturability isisfish.population.comments=Comments @@ -682,11 +683,14 @@ isisfish.populationMigration.useEquation=Use equation isisfish.populationMigrationEmigration.coefficient=Coefficient isisfish.populationMigrationEmigration.departureZone=Departure Zone +isisfish.populationMigrationEmigration.title= isisfish.populationMigrationImmigration.arrivalZone=Arrival Zone isisfish.populationMigrationImmigration.coefficient=Coefficient +isisfish.populationMigrationImmigration.title= isisfish.populationMigrationMigration.arrivalZone=Arrival Zone isisfish.populationMigrationMigration.coefficient=Coefficient isisfish.populationMigrationMigration.departureZone=Departure Zone +isisfish.populationMigrationMigration.title= isisfish.populationRecruitment.comments=Comments isisfish.populationRecruitment.recruitmentDistribution=Recruitment Distribution isisfish.populationRecruitment.reproductionEquation=ReproductionEquation @@ -850,7 +854,8 @@ isisfish.sensWizardPanels.validate=Validate isisfish.sensWizardPanels.values=Values isisfish.sensibilityWizard.title=Sensibility Wizard -isisfish.sensitivity.title=Sensitivities input +isisfish.sensitivity.title=Factors input +isisfish.sensitivityChooser.title=Sensitivities input isisfish.server.ssh.generateKey.title=Generate Ssh key isisfish.setOfVessels.comments=Comments isisfish.setOfVessels.fixedCosts=Fixed costs Modified: isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties =================================================================== --- isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-03-11 15:24:51 UTC (rev 1944) +++ isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-03-11 16:41:51 UTC (rev 1945) @@ -351,6 +351,7 @@ isisfish.export.directory=Dossier d'export isisfish.export.saved=Exports des r\u00E9sultats sauvegard\u00E9s isisfish.export.title=Export des r\u00E9sultats +isisfish.factor.comment=Commentaires isisfish.factor.continue=Facteur continue isisfish.factor.discret=Facteur discret isisfish.factor.firstValue=Premi\u00E8re valeur @@ -638,7 +639,7 @@ isisfish.params.toString.simul.logger.level=niveau du logger de simulateur %1$s isisfish.params.toString.simulation.done=Simulation r\u00E9alis\u00E9e avec %1$s\: isisfish.params.toString.strategies=Strat\u00E9gies d'exploitation\: -isisfish.params.useAnalysePlan=Utiliser le plan d'analyse +isisfish.params.useAnalysePlan=Utiliser le plan de simulation isisfish.params.usePreSimulationScript=Utiliser un script de pr\u00E9-simulation isisfish.population.capturability=Capturabilit\u0E009e isisfish.population.comments=Commentaires @@ -682,11 +683,14 @@ isisfish.populationMigration.useEquation=Utiliser l'\u00E9quation isisfish.populationMigrationEmigration.coefficient=Coefficient isisfish.populationMigrationEmigration.departureZone=Zone de d\u00E9part +isisfish.populationMigrationEmigration.title= isisfish.populationMigrationImmigration.arrivalZone=Zone d'arriv\u00E9e isisfish.populationMigrationImmigration.coefficient=Coefficient +isisfish.populationMigrationImmigration.title= isisfish.populationMigrationMigration.arrivalZone=Zone d'arriv\u00E9e isisfish.populationMigrationMigration.coefficient=Coefficient isisfish.populationMigrationMigration.departureZone=Zone de d\u00E9part +isisfish.populationMigrationMigration.title= isisfish.populationRecruitment.comments=Commentaires isisfish.populationRecruitment.recruitmentDistribution=Distribution du recrutement isisfish.populationRecruitment.reproductionEquation=Equation de reproduction @@ -851,6 +855,7 @@ isisfish.sensWizardPanels.values=Valeurs isisfish.sensibilityWizard.title=Sensibility Wizard isisfish.sensitivity.title=S\u00E9lection des facteurs +isisfish.sensitivityChooser.title=S\u00E9lection des sensibilit\u00E9es isisfish.server.ssh.generateKey.title=G\u00E9n\u00E9rer une cl\u00E9 SSH isisfish.setOfVessels.comments=Commentaires isisfish.setOfVessels.fixedCosts=Co\u00FBts fixes