Isis-fish-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- 3175 discussions
r1979 - in isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui: sensitivity simulator
by chatellier@users.labs.libre-entreprise.org 16 Mar '09
by chatellier@users.labs.libre-entreprise.org 16 Mar '09
16 Mar '09
Author: chatellier
Date: 2009-03-16 18:42:18 +0000 (Mon, 16 Mar 2009)
New Revision: 1979
Added:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivitySecondPassUI.jaxx
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorAction.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java
Log:
Ajout de l'interface SPOD : "second pass on demand"
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java 2009-03-16 18:10:01 UTC (rev 1978)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java 2009-03-16 18:42:18 UTC (rev 1979)
@@ -45,7 +45,6 @@
import org.codelutin.math.matrix.gui.MatrixPanelEditor;
import org.codelutin.topia.persistence.TopiaEntity;
import fr.ifremer.isisfish.ui.input.RangeOfValuesUI;
-import javax.swing.JPanel;
/**
*
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorAction.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorAction.java 2009-03-16 18:10:01 UTC (rev 1978)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorAction.java 2009-03-16 18:42:18 UTC (rev 1979)
@@ -23,7 +23,6 @@
import java.util.ArrayList;
import java.util.List;
import javax.swing.JComponent;
-import javax.swing.text.JTextComponent;
import org.codelutin.math.matrix.MatrixND;
/**
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivitySecondPassUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivitySecondPassUI.jaxx (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivitySecondPassUI.jaxx 2009-03-16 18:42:18 UTC (rev 1979)
@@ -0,0 +1,111 @@
+<!--
+/* *##%
+ * Copyright (C) 2009 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 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.
+ *##%*/
+
+/* *
+ * SensitivitySecondPassUI.
+ *
+ * @author chatellier
+ * @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 java.util.List;
+ import java.util.ArrayList;
+ import java.io.File;
+ import org.codelutin.util.FileUtil;
+ 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;
+ import fr.ifremer.isisfish.datastore.SimulationStorage;
+
+ /**
+ * Model de contenu de la liste des nom de simulations
+ */
+ public ComboBoxModel getSensitivitySimulationModel() {
+ List<String> asNames = new ArrayList<String>();
+ for (String simulationName : SimulationStorage.getSimulationNames()) {
+ if (simulationName.startsWith("as_")) {
+ String masterSensitivityName = simulationName.substring(0, simulationName.lastIndexOf("_"));
+ if (!asNames.contains(masterSensitivityName)) {
+ asNames.add(masterSensitivityName);
+ }
+ }
+ }
+
+ List<Item> items = new ArrayList<Item>();
+ items.add(new Item("null", " ", null, true));
+ for (String asName : asNames) {
+ items.add(new Item(asName, asName, asName, true));
+ }
+
+ fieldSensitivitySimulationSelect.setItems(items);
+ return fieldSensitivitySimulationSelect.getModel();
+ }
+
+ protected SimulAction getSimulAction() {
+ return getContextValue(SimulAction.class);
+ }
+
+ protected void launchSecondPass(ActionEvent event) {
+ if (fieldSensitivitySimulationSelect.getSelectedIndex() != -1) {
+
+ try {
+ List<File> files = getSimulAction().runSensitivitySecondPass((String)fieldSensitivitySimulationSelect.getSelectedItem());
+
+ String content = "";
+ for(File file : files) {
+ content += "Fichier " + file.getName() + "\n";
+ content += "------------------------------\n";
+ content += FileUtil.readAsString(file) + "\n";
+ content += "\n";
+ }
+ textAreaSensitivitySecondpassResult.setText(content);
+ }
+ catch(IOException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Can't run second pass", e);
+ }
+ }
+ }
+ }
+
+ ]]>
+ </script>
+ <row>
+ <cell fill="horizontal" weightx="1.0">
+ <JComboBox id="fieldSensitivitySimulationSelect" model='{getSensitivitySimulationModel()}' />
+ </cell>
+ <cell fill="horizontal">
+ <JButton text='isisfish.sensitivity.secondpass' onActionPerformed='launchSecondPass(event)' />
+ </cell>
+ </row>
+ <row>
+ <cell columns="2" fill="both" weightx="1.0" weighty="1.0">
+ <JTextArea id='textAreaSensitivitySecondpassResult' text=''/>
+ </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-16 18:10:01 UTC (rev 1978)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx 2009-03-16 18:42:18 UTC (rev 1979)
@@ -65,7 +65,10 @@
<ResultChoiceUI id="resultChoiceUI" constructorParams='getContextValue(SimulAction.class)'/>
</tab>
<tab id="advancedParamsUITab" title='isisfish.advancedParameters.title'>
- <AdvancedParamsUI id="advencedParamsUI" constructorParams='getContextValue(SimulAction.class)'/>
+ <AdvancedParamsUI id="advancedParamsUI" constructorParams='getContextValue(SimulAction.class)'/>
</tab>
+ <tab id="secondPassUITab" title='isisfish.sensitivity.secondpass.title'>
+ <SensitivitySecondPassUI id="sensitivitySecondPassUI" constructorParams='new JAXXInitialContext().add(this)'/>
+ </tab>
</JTabbedPane>
</JPanel>
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-16 18:10:01 UTC (rev 1978)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-03-16 18:42:18 UTC (rev 1979)
@@ -52,7 +52,6 @@
import fr.ifremer.isisfish.datastore.SensitivityStorage;
import fr.ifremer.isisfish.datastore.SimulationStorage;
import fr.ifremer.isisfish.datastore.SimulatorStorage;
-import fr.ifremer.isisfish.entities.Equation;
import fr.ifremer.isisfish.entities.Population;
import fr.ifremer.isisfish.entities.Species;
import fr.ifremer.isisfish.entities.Strategy;
@@ -65,9 +64,9 @@
import fr.ifremer.isisfish.simulator.launcher.SimulationService;
import fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher;
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.SensitivityCalculator;
+import fr.ifremer.isisfish.simulator.sensitivity.SensitivityException;
import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain;
import fr.ifremer.isisfish.simulator.sensitivity.domain.DiscreteDomain;
import fr.ifremer.isisfish.simulator.sensitivity.domain.EquationContinuousDomain;
@@ -76,7 +75,6 @@
import fr.ifremer.isisfish.ui.widget.ErrorDialogUI;
import fr.ifremer.isisfish.ui.widget.filter.FilterModel;
import java.io.Serializable;
-import java.util.Iterator;
import javax.swing.JComponent;
import org.codelutin.math.matrix.MatrixND;
@@ -841,8 +839,69 @@
}
}
-
public void launchSimulationWhithSensibility(String simulationId, SimulatorLauncher launcher) {
launchSimulation(simulationId, launcher, sensitivityCalculator, designPlan);
}
+
+ /**
+ * Lance la second passe d'une analyse de sensibilité.
+ *
+ * @param masterSensitivitySimulationName nom du prefix de toutes les simulations (without _)
+ *
+ * @return les fichiers genere lors de la seconde passe
+ */
+ public List<File> runSensitivitySecondPass(String masterSensitivitySimulationName) {
+
+ List<File> result = new ArrayList<File>();
+
+ // following code may be factorizable with :
+ // fr.ifremer.isisfish.simulator.launcher.SimulationMonitor.analyzeSensitivityResult(SimulationJob, SimulationStorage)
+
+ // calculator found
+ SensitivityCalculator sensitivityCalculator = null;
+ List<SimulationStorage> simulationStorageForAnalyze = new ArrayList<SimulationStorage>();
+ File simuationDirectory = SimulationStorage.getSimulationDirectory();
+ for (File simuation : simuationDirectory.listFiles()) {
+ if (simuation.isDirectory() && simuation.getName().startsWith(masterSensitivitySimulationName + "_")) {
+ SimulationStorage storage = SimulationStorage.getSimulation(simuation.getName());
+ simulationStorageForAnalyze.add(storage);
+
+ if (sensitivityCalculator == null) {
+ // try to find find calculator name in one storage
+ SimulationParameter params = storage.getParameter();
+ sensitivityCalculator = params.getSensitivityCalculator();
+ }
+ }
+ }
+
+ if (sensitivityCalculator != null) {
+ try {
+ // build master sensitivity export directory
+ File masterExportDirectory = new File(IsisFish.config.getDefaultExportDirectory(), masterSensitivitySimulationName);
+ if( !masterExportDirectory.isDirectory()) {
+ masterExportDirectory.mkdirs();
+ }
+ sensitivityCalculator.analyzeResult(simulationStorageForAnalyze, masterExportDirectory);
+
+ // FIXME take all files ?
+ for(File exportFile : masterExportDirectory.listFiles()) {
+ if (exportFile.isFile()) {
+ result.add(exportFile);
+ }
+ }
+ }
+ catch(SensitivityException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Can't call analyse result", e);
+ }
+ }
+ }
+ else {
+ if (log.isWarnEnabled()) {
+ log.warn("Can't run sensitivity second pass");
+ }
+ }
+
+ return result;
+ }
}
1
0
r1978 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain
by jcouteau@users.labs.libre-entreprise.org 16 Mar '09
by jcouteau@users.labs.libre-entreprise.org 16 Mar '09
16 Mar '09
Author: jcouteau
Date: 2009-03-16 18:10:01 +0000 (Mon, 16 Mar 2009)
New Revision: 1978
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/MatrixContinuousDomain.java
Log:
Enable setValueForIdentifier for MatrixContinuousDomain
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/MatrixContinuousDomain.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/MatrixContinuousDomain.java 2009-03-16 16:50:30 UTC (rev 1977)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/MatrixContinuousDomain.java 2009-03-16 18:10:01 UTC (rev 1978)
@@ -97,4 +97,16 @@
public E getValueForIdentifier(Serializable identifier) {
return (E)identifier;
}
+
+ public void setValueForIdentifier(Serializable identifier) {
+ if (operator.equals("+")){
+ this.matrix.adds((Double)identifier);
+ }else if (operator.equals("-")){
+ this.matrix.minuss((Double)identifier);
+ }else if (operator.equals("*")){
+ this.matrix.mults((Double)identifier);
+ }else if (operator.equals("/")){
+ this.matrix.divs((Double)identifier);
+ }
+ }
}
1
0
r1977 - in isis-fish/trunk/src: main/java/fr/ifremer/isisfish/simulator/sensitivity main/resources/templates/script test/java/fr/ifremer/isisfish/simulator/sensitivity
by chatellier@users.labs.libre-entreprise.org 16 Mar '09
by chatellier@users.labs.libre-entreprise.org 16 Mar '09
16 Mar '09
Author: chatellier
Date: 2009-03-16 16:50:30 +0000 (Mon, 16 Mar 2009)
New Revision: 1977
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculator.java
isis-fish/trunk/src/main/resources/templates/script/sensitivity.ftl
isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculatorRandomMock.java
Log:
Ajout d'une methode sur les calculateurs permettant de savoir s'il savent gerer la cardinalit?\195?\169 ou pas.
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculator.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculator.java 2009-03-16 16:12:33 UTC (rev 1976)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculator.java 2009-03-16 16:50:30 UTC (rev 1977)
@@ -44,17 +44,24 @@
String getDescription();
/**
+ * Retourne vrai si le calculateur sait gerer la cardinalité
+ * des facteurs continue.
+ *
+ * @return <tt>true</tt> s'il sait la gerer
+ */
+ boolean canManageCardinality();
+
+ /**
* Envoi un plan a faire analyser par l'outils d'analyse de sensibilité.
*
* Retourne un {@link SensitivityScenarios} qui représente l'ensemble des
* scenarios à prendre en compte pour les simulations.
*
- * @param plan
- * plan a analyser
+ * @param plan plan a analyser
+ * @param outputdirectory master sensitivity export directory
*
* @return un {@link SensitivityScenarios}
- * @throws SensitivityException
- * if calculator impl fail to execute
+ * @throws SensitivityException if calculator impl fail to execute
*
* @see DesignPlan
* @see Scenario
@@ -67,11 +74,10 @@
* Permet de renvoyer les resultats de simulations à l'outils de d'analyse
* de sensibilité.
*
- * @param sensitivityScenarios
- * résultats de scenarios
* @param simulationStorages
* ensemble des {@link SimulationStorage} qui ont résultés des
* simulations
+ * @param outputdirectory master sensitivity export directory
* @throws SensitivityException
* if calculator impl fail to execute
*
Modified: isis-fish/trunk/src/main/resources/templates/script/sensitivity.ftl
===================================================================
--- isis-fish/trunk/src/main/resources/templates/script/sensitivity.ftl 2009-03-16 16:12:33 UTC (rev 1976)
+++ isis-fish/trunk/src/main/resources/templates/script/sensitivity.ftl 2009-03-16 16:50:30 UTC (rev 1977)
@@ -44,14 +44,23 @@
}
/**
- * Envoi un plan a faire analyser par l'outils
- * d'analyse de sensibilité.
+ * Retourne vrai si le calculateur sait gerer la cardinalité
+ * des facteurs continue.
*
- * Retourne un {@link SensitivityScenarios} qui
- * représente l'ensemble des scenarios à prendre
- * en compte pour les simulations.
+ * @return <tt>true</tt> s'il sait la gerer
+ */
+ public boolean canManageCardinality() {
+ return false;
+ }
+
+ /**
+ * Envoi un plan a faire analyser par l'outils d'analyse de sensibilité.
*
+ * Retourne un {@link SensitivityScenarios} qui représente l'ensemble des
+ * scenarios à prendre en compte pour les simulations.
+ *
* @param plan plan a analyser
+ * @param outputdirectory master sensitivity export directory
*
* @return un {@link SensitivityScenarios}
* @throws SensitivityException if calculator impl fail to execute
@@ -71,19 +80,20 @@
}
/**
- * Permet de renvoyer les resultats de simulations
- * à l'outils de d'analyse de sensibilité.
+ * Permet de renvoyer les resultats de simulations à l'outils de d'analyse
+ * de sensibilité.
*
- * @param sensitivityScenarios résultats de scenarios
- * @param simulationStorages ensemble des {@link SimulationStorage}
- * qui ont résultés des simulations
- * @throws SensitivityException if calculator impl fail to execute
+ * @param simulationStorages
+ * ensemble des {@link SimulationStorage} qui ont résultés des
+ * simulations
+ * @param outputdirectory master sensitivity export directory
+ * @throws SensitivityException
+ * if calculator impl fail to execute
*
* @see SensitivityScenarios
*/
public void analyzeResult(List<SimulationStorage> simulationStorages,
- File outputdirectory)
- throws SensitivityException {
+ File outputdirectory) throws SensitivityException {
}
}
\ No newline at end of file
Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculatorRandomMock.java
===================================================================
--- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculatorRandomMock.java 2009-03-16 16:12:33 UTC (rev 1976)
+++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculatorRandomMock.java 2009-03-16 16:50:30 UTC (rev 1977)
@@ -48,7 +48,34 @@
return "Implementation of random sensibility calculator";
}
- public SensitivityScenarios compute(DesignPlan plan, File outputdirectory) {
+ /**
+ * Retourne vrai si le calculateur sait gerer la cardinalité
+ * des facteurs continue.
+ *
+ * @return <tt>true</tt> s'il sait la gerer
+ */
+ public boolean canManageCardinality() {
+ return false;
+ }
+
+ /**
+ * Envoi un plan a faire analyser par l'outils d'analyse de sensibilité.
+ *
+ * Retourne un {@link SensitivityScenarios} qui représente l'ensemble des
+ * scenarios à prendre en compte pour les simulations.
+ *
+ * @param plan plan a analyser
+ * @param outputdirectory master sensitivity export directory
+ *
+ * @return un {@link SensitivityScenarios}
+ * @throws SensitivityException if calculator impl fail to execute
+ *
+ * @see DesignPlan
+ * @see Scenario
+ * @see SensitivityScenarios
+ */
+ public SensitivityScenarios compute(DesignPlan plan, File outputdirectory)
+ throws SensitivityException {
if (log.isDebugEnabled()) {
log.info("Call random mock compute()");
@@ -90,8 +117,21 @@
}
+ /**
+ * Permet de renvoyer les resultats de simulations à l'outils de d'analyse
+ * de sensibilité.
+ *
+ * @param simulationStorages
+ * ensemble des {@link SimulationStorage} qui ont résultés des
+ * simulations
+ * @param outputdirectory master sensitivity export directory
+ * @throws SensitivityException
+ * if calculator impl fail to execute
+ *
+ * @see SensitivityScenarios
+ */
public void analyzeResult(List<SimulationStorage> simulationStorages,
- File outputdirectory) {
+ File outputdirectory) throws SensitivityException {
}
1
0
r1976 - in isis-fish/trunk/src/main: java/fr/ifremer/isisfish/ui/sensitivity java/fr/ifremer/isisfish/ui/simulator resources/i18n
by sletellier@users.labs.libre-entreprise.org 16 Mar '09
by sletellier@users.labs.libre-entreprise.org 16 Mar '09
16 Mar '09
Author: sletellier
Date: 2009-03-16 16:12:33 +0000 (Mon, 16 Mar 2009)
New Revision: 1976
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanel.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorAction.java
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:
Some bugs fixed
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanel.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanel.jaxx 2009-03-16 15:51:48 UTC (rev 1975)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanel.jaxx 2009-03-16 16:12:33 UTC (rev 1976)
@@ -64,7 +64,6 @@
continueMax.setVisible(isContinuePossible());
continueMin.setVisible(isContinuePossible());
- increment.setText(String.valueOf(inc));
continueMaxPanel.add(continueMax, BorderLayout.CENTER);
continueMinPanel.add(continueMin, BorderLayout.CENTER);
}
@@ -74,9 +73,6 @@
public String getMax(){
return continueMax.getText();
}
-public String getInc(){
- return increment.getText();
-}
]]>
</script>
<Table id='content' constraints='BorderLayout.CENTER'>
@@ -94,13 +90,5 @@
<JPanel id='continueMaxPanel' layout='{new BorderLayout()}'/>
</cell>
</row>
- <row>
- <cell fill='horizontal'>
- <JLabel text='isisfish.factor.increment' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
- </cell>
- <cell fill='horizontal' weightx='1' columns='3'>
- <JTextField id='increment' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
- </cell>
- </row>
</Table>
</ContinuousPanelContainer>
\ No newline at end of file
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java 2009-03-16 15:51:48 UTC (rev 1975)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java 2009-03-16 16:12:33 UTC (rev 1976)
@@ -362,10 +362,8 @@
}
public static boolean canBeContinue(JComponent c, Object o){
if (c instanceof JTextComponent) {
- if (Integer.class.isInstance(o)){
+ if (Double.class.isInstance(o)){
return true;
- } else if (Double.class.isInstance(o)){
- return true;
} else if (Long.class.isInstance(o)){
return true;
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorAction.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorAction.java 2009-03-16 15:51:48 UTC (rev 1975)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorAction.java 2009-03-16 16:12:33 UTC (rev 1976)
@@ -38,11 +38,11 @@
defaultPanel = matrixPanel.getDefaultContinuousPanel();
MatrixND matrix = matrixPanel.getMatrix();
String operateur = (String)matrixPanel.getOperator().getSelectedItem();
- action.addContinuousMatrixFactor(name, path, getMin(defaultPanel), getMax(defaultPanel), getInc(defaultPanel), matrix, operateur, cOrigine, exist);
+ action.addContinuousMatrixFactor(name, path, getMin(defaultPanel), getMax(defaultPanel), matrix, operateur, cOrigine, exist);
}else if (DefaultContinuousPanel.class.isInstance(panel)){
defaultPanel = (DefaultContinuousPanel)panel;
- action.addContinuousFactor(name, path, getMin(defaultPanel), getMax(defaultPanel), getInc(defaultPanel), cOrigine, exist);
+ action.addContinuousFactor(name, path, getMin(defaultPanel), getMax(defaultPanel), cOrigine, exist);
}
}
protected static Serializable getMin(DefaultContinuousPanel defaultPanel){
@@ -51,9 +51,6 @@
protected static Serializable getMax(DefaultContinuousPanel defaultPanel){
return (Serializable)Double.parseDouble(defaultPanel.getMax());
}
- protected static int getInc(DefaultContinuousPanel defaultPanel){
- return Integer.parseInt(defaultPanel.getInc());
- }
public static void saveDiscret(JComponent cOrigine, String name, String path, List<JComponent> components, SimulAction action, boolean exist){
List<Serializable> values = new ArrayList<Serializable>();
for(JComponent c: components){
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-16 15:51:48 UTC (rev 1975)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-03-16 16:12:33 UTC (rev 1976)
@@ -675,12 +675,11 @@
public Factor<? extends Serializable> getFactor(String name){
return factors.get(name);
}
- public void addContinuousFactor(String name, String path, Serializable min, Serializable max, int inc, JComponent c, boolean exist){
+ public void addContinuousFactor(String name, String path, Serializable min, Serializable max, JComponent c, boolean exist){
Factor f = new Factor(name);
ContinuousDomain<Serializable> domain = new ContinuousDomain<Serializable>();
domain.setMinBound(min);
domain.setMaxBound(max);
- domain.setCardinality(inc);
f.setDomain(domain);
f.setPath(path);
if (exist)
@@ -704,12 +703,11 @@
removeFactor(path);
addFactor(path, f, c);
}
- public void addContinuousMatrixFactor(String name, String path, Serializable min, Serializable max, int inc, MatrixND matrix, String operateur, JComponent c, boolean exist){
+ public void addContinuousMatrixFactor(String name, String path, Serializable min, Serializable max, MatrixND matrix, String operateur, JComponent c, boolean exist){
Factor f = new Factor(name);
MatrixContinuousDomain<Serializable> domain = new MatrixContinuousDomain<Serializable>();
domain.setMatrix(matrix);
domain.setOperator(operateur);
- domain.setCardinality(inc);
domain.setMaxBound(max);
domain.setMinBound(min);
f.setDomain(domain);
@@ -718,12 +716,11 @@
removeFactor(path);
addFactor(path, f, c);
}
- public void addContinuousEquationFactor(String name, String path, String varName, Serializable min, Serializable max, int inc, MatrixND matrix, String operateur, JComponent c, boolean exist){
+ public void addContinuousEquationFactor(String name, String path, String varName, Serializable min, Serializable max, MatrixND matrix, String operateur, JComponent c, boolean exist){
Factor f = new Factor(name);
EquationContinuousDomain<Serializable> domain = new EquationContinuousDomain<Serializable>();
domain.setVariableName(varName);
domain.setOperator(operateur);
- domain.setCardinality(inc);
domain.setMaxBound(max);
domain.setMinBound(min);
f.setDomain(domain);
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-16 15:51:48 UTC (rev 1975)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-03-16 16:12:33 UTC (rev 1976)
@@ -356,9 +356,9 @@
isisfish.factor.discret=Discret factor
isisfish.factor.firstValue=First value
isisfish.factor.increment=Cardinality
-isisfish.factor.operateur=Operator
isisfish.factor.lastValue=Last value
isisfish.factor.name=Factor name
+isisfish.factor.operateur=Operator
isisfish.factor.selectDiscretNumber=Number of factors
isisfish.factor.title=Factor input
isisfish.factor.validDiscretNumber=Ok
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-16 15:51:48 UTC (rev 1975)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-03-16 16:12:33 UTC (rev 1976)
@@ -352,13 +352,13 @@
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.continue=Facteur continu
isisfish.factor.discret=Facteur discret
isisfish.factor.firstValue=Premi\u00E8re valeur
-isisfish.factor.increment=Cardinalit\u00E9e
+isisfish.factor.increment=Cardinalit\u00E9
+isisfish.factor.lastValue=Derni\u00E8re valeur
+isisfish.factor.name=Nom du facteur
isisfish.factor.operateur=Op\u00E9rateur
-isisfish.factor.lastValue=Derin\u00E8re valeur
-isisfish.factor.name=Nom du facteur
isisfish.factor.selectDiscretNumber=Nombre de facteurs
isisfish.factor.title=Saisie d'un facteur
isisfish.factor.validDiscretNumber=Valider
@@ -859,7 +859,7 @@
isisfish.sensWizardPanels.values=Valeurs
isisfish.sensibilityWizard.title=Sensibility Wizard
isisfish.sensitivity.title=S\u00E9lection des facteurs
-isisfish.sensitivityChooser.title=Param\u00E8tres de la sensibilit\u00E9
+isisfish.sensitivityChooser.title=M\u00E9thode de la sensibilit\u00E9
isisfish.server.ssh.generateKey.title=G\u00E9n\u00E9rer une cl\u00E9 SSH
isisfish.setOfVessels.comments=Commentaires
isisfish.setOfVessels.fixedCosts=Co\u00FBts fixes
1
0
r1975 - in isis-fish/trunk/src/main: java/fr/ifremer/isisfish/ui/sensitivity java/fr/ifremer/isisfish/ui/simulator resources/i18n
by sletellier@users.labs.libre-entreprise.org 16 Mar '09
by sletellier@users.labs.libre-entreprise.org 16 Mar '09
16 Mar '09
Author: sletellier
Date: 2009-03-16 15:51:48 +0000 (Mon, 16 Mar 2009)
New Revision: 1975
Added:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/ContinuousPanelContainer.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanel.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanel.jaxx
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorAction.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizard.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.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:
Matrix continue enabled
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/ContinuousPanelContainer.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/ContinuousPanelContainer.jaxx (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/ContinuousPanelContainer.jaxx 2009-03-16 15:51:48 UTC (rev 1975)
@@ -0,0 +1,41 @@
+<!--
+/* *##%
+ * 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 $
+ */
+ -->
+<JPanel id='continuousPanelContainer' layout='{new BorderLayout()}'>
+
+ <Boolean id='continuePossible' javaBean='true'/>
+
+ <Boolean id='continueSelected' javaBean='false'/>
+
+ <JPanel id='content' constraints='BorderLayout.CENTER'/>
+
+</JPanel>
\ No newline at end of file
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanel.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanel.jaxx (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanel.jaxx 2009-03-16 15:51:48 UTC (rev 1975)
@@ -0,0 +1,106 @@
+<!--
+/* *##%
+ * 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 $
+ */
+ -->
+<ContinuousPanelContainer>
+ <script><![CDATA[
+
+protected JTextField continueMax = null;
+protected JTextField continueMin = null;
+
+addPropertyChangeListener("continuePossible", new PropertyChangeListener(){
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ continueMax.setVisible((Boolean)evt.getNewValue());
+ continueMin.setVisible((Boolean)evt.getNewValue());
+ }
+
+});
+
+addPropertyChangeListener("continueSelected", new PropertyChangeListener(){
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ continueMax.setEnabled((Boolean)evt.getNewValue());
+ continueMin.setEnabled((Boolean)evt.getNewValue());
+ }
+
+});
+
+public void init(JTextField cMax, JTextField cMin, int inc){
+ continueMax = cMax;
+ continueMin = cMin;
+ continueMax.setEnabled(isContinueSelected());
+ continueMin.setEnabled(isContinueSelected());
+ continueMax.setVisible(isContinuePossible());
+ continueMin.setVisible(isContinuePossible());
+
+ increment.setText(String.valueOf(inc));
+ continueMaxPanel.add(continueMax, BorderLayout.CENTER);
+ continueMinPanel.add(continueMin, BorderLayout.CENTER);
+}
+public String getMin(){
+ return continueMin.getText();
+}
+public String getMax(){
+ return continueMax.getText();
+}
+public String getInc(){
+ return increment.getText();
+}
+ ]]>
+ </script>
+ <Table id='content' constraints='BorderLayout.CENTER'>
+ <row>
+ <cell fill='horizontal'>
+ <JLabel text='isisfish.factor.firstValue' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
+ </cell>
+ <cell fill='horizontal' weightx='0.5'>
+ <JPanel id='continueMinPanel' layout='{new BorderLayout()}'/>
+ </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()}'/>
+ </cell>
+ </row>
+ <row>
+ <cell fill='horizontal'>
+ <JLabel text='isisfish.factor.increment' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
+ </cell>
+ <cell fill='horizontal' weightx='1' columns='3'>
+ <JTextField id='increment' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
+ </cell>
+ </row>
+ </Table>
+</ContinuousPanelContainer>
\ No newline at end of file
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java 2009-03-16 14:42:04 UTC (rev 1974)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java 2009-03-16 15:51:48 UTC (rev 1975)
@@ -19,6 +19,8 @@
package fr.ifremer.isisfish.ui.sensitivity;
import fr.ifremer.isisfish.entities.Formule;
+import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain;
+import fr.ifremer.isisfish.simulator.sensitivity.domain.MatrixContinuousDomain;
import fr.ifremer.isisfish.types.Month;
import fr.ifremer.isisfish.ui.input.InputAction;
import fr.ifremer.isisfish.ui.input.InputOneEquationUI;
@@ -43,6 +45,7 @@
import org.codelutin.math.matrix.gui.MatrixPanelEditor;
import org.codelutin.topia.persistence.TopiaEntity;
import fr.ifremer.isisfish.ui.input.RangeOfValuesUI;
+import javax.swing.JPanel;
/**
*
@@ -62,12 +65,17 @@
if (result instanceof JTextField) {
((JTextComponent) result).setText(String.valueOf(callMethod(e, fieldName)));
+ } else if (result instanceof MatrixPanelEditor){
+ MatrixPanelEditor ui = (MatrixPanelEditor) c;
+ MatrixPanelEditor matrix = new MatrixPanelEditor();
+ matrix.setMatrix((MatrixND)callMethod(e, fieldName));
+ matrix.setLinearModel(ui.isLinearModel());
+ matrix.setLinearModelShowDefault(ui.isLinearModelShowDefault());
+ result = matrix;
+
} else if (result instanceof JTable){
((JTable) result).setModel(((JTable)c).getModel());
- } else if (result instanceof MatrixPanelEditor){
- ((MatrixPanelEditor) result).setMatrix((MatrixND)callMethod(e, fieldName));
-
} else if (result instanceof JComboBox){
JComboBox combo = (JComboBox)c;
JComboBox comboResult = new JComboBox();
@@ -142,7 +150,79 @@
}
return result;
}
-
+ public static ContinuousPanelContainer getContinuousPanel(JComponent c, TopiaEntity e){
+ ContinuousPanelContainer result = null;
+ try {
+ String fieldName = getMethod(c);
+ DefaultContinuousPanel continuousPanel = null;
+ if (c instanceof InputOneEquationUI){
+ InputOneEquationUI origine = (InputOneEquationUI) c;
+ InputOneEquationUI ui = new InputOneEquationUI(new JAXXInitialContext().add(new InputAction()));
+ ui.setLblText(origine.getLblText());
+ ui.setNameEquation(origine.getNameEquation());
+ ui.setClazz(origine.getClazz());
+ ui.setMethodGet(origine.getMethodGet());
+ ui.setMethodSet(origine.getMethodSet());
+ ui.setBean(e);
+ ui.setActif(true);
+ ui.refresh();
+// result = ui;
+ } else if (c instanceof MatrixPanelEditor){
+ MatrixContinuousPanel matrixPanel = new MatrixContinuousPanel();
+ matrixPanel.setMatrix((MatrixND)callMethod(e, fieldName));
+ continuousPanel = matrixPanel.getDefaultContinuousPanel();
+ result = matrixPanel;
+ } else {
+ continuousPanel = new DefaultContinuousPanel();
+ result = continuousPanel;
+ }
+ continuousPanel.init(getNewBoundEditor(c, e), getNewBoundEditor(c, e), 0);
+ } catch (Exception ex) {
+ Logger.getLogger(EditorHelper.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ return result;
+ }
+ public static JTextField getNewBoundEditor(JComponent c, TopiaEntity e) {
+ String fieldName = getMethod(c);
+ Object value = callMethod(e, fieldName);
+ if (JTextComponent.class.isInstance(c)){
+ return new JTextField(String.valueOf(value));
+ }
+ return new JTextField();
+ }
+ public static ContinuousPanelContainer getContinuousPanelWithValue(JComponent c, ContinuousDomain domain) {
+ ContinuousPanelContainer result = null;
+ try {
+ DefaultContinuousPanel continuousPanel = null;
+ if (c instanceof InputOneEquationUI){
+ InputOneEquationUI origine = (InputOneEquationUI) c;
+ InputOneEquationUI ui = new InputOneEquationUI(new JAXXInitialContext().add(new InputAction()));
+ ui.setLblText(origine.getLblText());
+ ui.setNameEquation(origine.getNameEquation());
+ ui.setClazz(origine.getClazz());
+ ui.setMethodGet(origine.getMethodGet());
+ ui.setMethodSet(origine.getMethodSet());
+// ui.setBean(e);
+ ui.setActif(true);
+ ui.refresh();
+// result = ui;
+ } else if (c instanceof MatrixPanelEditor){
+ MatrixContinuousPanel panel = new MatrixContinuousPanel();
+ MatrixContinuousDomain matrixDomain = (MatrixContinuousDomain)domain;
+ panel.setMatrix(matrixDomain.getMatrix());
+ continuousPanel = panel.getDefaultContinuousPanel();
+ panel.getOperator().setSelectedItem(matrixDomain.getOperator());
+ result = panel;
+ } else {
+ continuousPanel = new DefaultContinuousPanel();
+ result = continuousPanel;
+ }
+ continuousPanel.init(new JTextField(String.valueOf(domain.getMinBound())), new JTextField(String.valueOf(domain.getMaxBound())), domain.getCardinality());
+ } catch (Exception ex) {
+ Logger.getLogger(EditorHelper.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ return result;
+ }
public static JComponent getEditorWithValue(JComponent c, Object value) {
JComponent result = null;
try {
@@ -155,8 +235,12 @@
// ((JTable) result).setModel(((JTable)c).getModel());
} else if (result instanceof MatrixPanelEditor){
- ((MatrixPanelEditor) result).setMatrix((MatrixND)value);
-
+ MatrixPanelEditor ui = (MatrixPanelEditor) c;
+ MatrixPanelEditor matrix = new MatrixPanelEditor();
+ matrix.setMatrix((MatrixND)value);
+ matrix.setLinearModel(ui.isLinearModel());
+ matrix.setLinearModelShowDefault(ui.isLinearModelShowDefault());
+ result = ui;
} else if (result instanceof JComboBox){
JComboBox combo = (JComboBox)c;
JComboBox comboResult = new JComboBox();
@@ -269,7 +353,11 @@
if (c instanceof JTextComponent) {
Object o = callMethod(e, fieldName);
return canBeContinue(c, o);
- }
+ } else if (c instanceof InputOneEquationUI){
+ return true;
+ } else if (c instanceof MatrixPanelEditor){
+ return true;
+ }
return false;
}
public static boolean canBeContinue(JComponent c, Object o){
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorAction.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorAction.java 2009-03-16 14:42:04 UTC (rev 1974)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorAction.java 2009-03-16 15:51:48 UTC (rev 1975)
@@ -23,22 +23,43 @@
import java.util.ArrayList;
import java.util.List;
import javax.swing.JComponent;
+import javax.swing.text.JTextComponent;
+import org.codelutin.math.matrix.MatrixND;
/**
*
* @author letellier
*/
public class FactorAction {
- public static void saveContinue(JComponent cOrigine, String name, String path, JComponent min, JComponent max, String increment, SimulAction action, boolean exist){
- Serializable oMin = (Serializable)EditorHelper.getValue(min);
- Serializable oMax = (Serializable)EditorHelper.getValue(max);
- action.addContinueFactors(name, path, oMin, oMax, Integer.parseInt(increment), cOrigine, exist);
+ public static void saveContinue(JComponent cOrigine, String name, String path, ContinuousPanelContainer panel, SimulAction action, boolean exist){
+ DefaultContinuousPanel defaultPanel = null;
+ if (MatrixContinuousPanel.class.isInstance(panel)){
+ MatrixContinuousPanel matrixPanel = (MatrixContinuousPanel)panel;
+ defaultPanel = matrixPanel.getDefaultContinuousPanel();
+ MatrixND matrix = matrixPanel.getMatrix();
+ String operateur = (String)matrixPanel.getOperator().getSelectedItem();
+ action.addContinuousMatrixFactor(name, path, getMin(defaultPanel), getMax(defaultPanel), getInc(defaultPanel), matrix, operateur, cOrigine, exist);
+
+ }else if (DefaultContinuousPanel.class.isInstance(panel)){
+ defaultPanel = (DefaultContinuousPanel)panel;
+ action.addContinuousFactor(name, path, getMin(defaultPanel), getMax(defaultPanel), getInc(defaultPanel), cOrigine, exist);
+ }
}
+ protected static Serializable getMin(DefaultContinuousPanel defaultPanel){
+ return (Serializable)Double.parseDouble(defaultPanel.getMin());
+ }
+ protected static Serializable getMax(DefaultContinuousPanel defaultPanel){
+ return (Serializable)Double.parseDouble(defaultPanel.getMax());
+ }
+ protected static int getInc(DefaultContinuousPanel defaultPanel){
+ return Integer.parseInt(defaultPanel.getInc());
+ }
public static void saveDiscret(JComponent cOrigine, String name, String path, List<JComponent> components, SimulAction action, boolean exist){
List<Serializable> values = new ArrayList<Serializable>();
for(JComponent c: components){
values.add((Serializable)EditorHelper.getValue(c));
}
- action.addDiscreteFactors(name, path, values, cOrigine, exist);
+ action.addDiscreteFactor(name, path, values, cOrigine, exist);
}
}
+;
\ No newline at end of file
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-16 14:42:04 UTC (rev 1974)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizard.jaxx 2009-03-16 15:51:48 UTC (rev 1975)
@@ -53,18 +53,17 @@
import fr.ifremer.isisfish.simulator.sensitivity.domain.DiscreteDomain;
protected JComponent cOrigine = null;
-protected JComponent continueMax = null;
-protected JComponent continueMin = null;
protected TopiaEntity bean = null;
protected java.util.List<JComponent> discretComponents = new ArrayList<JComponent>();
protected String path = null;
-
+protected ContinuousPanelContainer continuousPanel = null;
addPropertyChangeListener("continuePossible", new PropertyChangeListener(){
@Override
public void propertyChange(PropertyChangeEvent evt) {
- continueMax.setVisible((Boolean)evt.getNewValue());
- continueMin.setVisible((Boolean)evt.getNewValue());
+ if (continuousPanel != null){
+ continuousPanel.setContinuePossible((Boolean)evt.getNewValue());
+ }
}
});
@@ -73,19 +72,17 @@
@Override
public void propertyChange(PropertyChangeEvent evt) {
- continueMax.setEnabled((Boolean)evt.getNewValue());
- continueMin.setEnabled((Boolean)evt.getNewValue());
+ if (continuousPanel != null){
+ continuousPanel.setContinueSelected((Boolean)evt.getNewValue());
+ }
}
});
-public void initNew(JComponent c, TopiaEntity bean, Boolean b){
- this.bean = bean;
+public void initNew(JComponent c, TopiaEntity be, Boolean b){
+ this.bean = be;
this.cOrigine = c;
- continueMax = getNewComponent();
- continueMin = getNewComponent();
-
// path is topiaId#property
// ex : fwn#fsd#0.3425345#name
// for JAXX : cOrigine start with upper case
@@ -93,9 +90,13 @@
String methodName = StringUtils.uncapitalize(EditorHelper.getMethod(cOrigine));
this.path = bean.getTopiaId() + "#" + methodName;
- factorName.setText(bean.toString() + "." + EditorHelper.getMethod(cOrigine));
+ factorName.setText(bean.toString() + "." + methodName);
setContinuePossible(b);
- init();
+ if (isContinuePossible()){
+ continuousPanel = EditorHelper.getContinuousPanel(cOrigine, bean);
+ init();
+ }
+ setSaveEnabled(!factorName.getText().equals(""));
}
public void initExisting(JComponent cOrigine, Factor f){
@@ -107,16 +108,15 @@
if (ContinuousDomain.class.isInstance(domain)){
ContinuousDomain cDomain = (ContinuousDomain) domain;
- continueMax = EditorHelper.getEditorWithValue(cOrigine, cDomain.getMaxBound());
- continueMin = EditorHelper.getEditorWithValue(cOrigine, cDomain.getMinBound());
- increment.setText(String.valueOf(cDomain.getCardinality()));
+
+ continuousPanel = EditorHelper.getContinuousPanelWithValue(cOrigine, cDomain);
+ init();
+
continueRadion.setSelected(true);
setContinueSelected(true);
setContinuePossible(true);
}else{
DiscreteDomain dDomain = (DiscreteDomain)domain;
- continueMax = EditorHelper.getEditorWithValue(cOrigine, null);
- continueMin = EditorHelper.getEditorWithValue(cOrigine, null);
int nb = dDomain.getValues().size();
discretNumber.setText(nb + "");
@@ -135,21 +135,16 @@
tabPane.add(c, "Factor " + (i+1));
}
setContinuePossible(EditorHelper.canBeContinue(cOrigine, cache));
+
setTabVisible(true);
this.pack();
}
- init();
+ setSaveEnabled(!factorName.getText().equals(""));
}
protected void init(){
- continueMax.setEnabled(isContinueSelected());
- continueMin.setEnabled(isContinueSelected());
- continueMax.setVisible(isContinuePossible());
- continueMin.setVisible(isContinuePossible());
-
- continueMaxPanel.add(continueMax, BorderLayout.CENTER);
- continueMinPanel.add(continueMin, BorderLayout.CENTER);
-
- setSaveEnabled(!factorName.getText().equals(""));
+ continuousPanelContainer.add(continuousPanel, BorderLayout.CENTER);
+ setTabVisible(true);
+ this.pack();
}
protected JComponent getNewComponent(){
return EditorHelper.getEditor(cOrigine, bean);
@@ -174,7 +169,7 @@
}
protected void save(){
if (continueRadion.isSelected()){
- getFactorAction().saveContinue(cOrigine, factorName.getText(), path, continueMin, continueMax, increment.getText(), getSimulAction(), isExistingValue());
+ getFactorAction().saveContinue(cOrigine, factorName.getText(), path, continuousPanel, getSimulAction(), isExistingValue());
} else {
getFactorAction().saveDiscret(cOrigine, factorName.getText(), path, discretComponents, getSimulAction(), isExistingValue());
}
@@ -203,28 +198,11 @@
</cell>
</row>
<row>
- <cell fill='horizontal'>
- <JLabel text='isisfish.factor.firstValue' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
+ <cell fill='both' columns='4' weightx='1' weighty='0.5'>
+ <JPanel id='continuousPanelContainer' layout='{new BorderLayout()}'/>
</cell>
- <cell fill='horizontal' weightx='0.5'>
- <JPanel id='continueMinPanel' layout='{new BorderLayout()}'/>
- </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()}'/>
- </cell>
</row>
<row>
- <cell fill='horizontal'>
- <JLabel text='isisfish.factor.increment' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
- </cell>
- <cell fill='horizontal' weightx='1' columns='3'>
- <JTextField id='increment' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
- </cell>
- </row>
- <row>
<cell columns='4' fill='horizontal' weightx='1'>
<JRadioButton id='discret' text='isisfish.factor.discret' selected='true' buttonGroup='factorType' onActionPerformed='setContinueSelected(continueRadion.isSelected())'/>
</cell>
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanel.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanel.jaxx (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanel.jaxx 2009-03-16 15:51:48 UTC (rev 1975)
@@ -0,0 +1,74 @@
+<!--
+/* *##%
+ * 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 $
+ */
+ -->
+<ContinuousPanelContainer>
+
+ <org.codelutin.math.matrix.MatrixND id='matrix' javaBean='null'/>
+
+ <script><![CDATA[
+import org.codelutin.math.matrix.MatrixND;
+import org.codelutin.math.matrix.gui.MatrixPanelEditor;
+
+
+ ]]>
+ </script>
+ <Table id='content' constraints='BorderLayout.CENTER'>
+ <row>
+ <cell fill='both' columns='2' weightx='1' weighty='1'>
+ <DefaultContinuousPanel id='defaultContinuousPanel' continuePossible='{isContinuePossible()}' continueSelected='{isContinueSelected()}'/>
+ </cell>
+ </row>
+ <row>
+ <cell fill='horizontal'>
+ <JLabel text='isisfish.factor.value' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
+ </cell>
+ <cell fill='both' weightx='1' weighty='1'>
+ <JScrollPane>
+ <MatrixPanelEditor id='componentPanel' matrix='{getMatrix()}'/>
+ </JScrollPane>
+ </cell>
+ </row>
+ <row>
+ <cell fill='horizontal'>
+ <JLabel text='isisfish.factor.operateur' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
+ </cell>
+ <cell fill='horizontal' weightx='1' columns='3'>
+ <JComboBox id='operator' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'>
+ <item id='plus' value="+"/>
+ <item id='moins' value="-"/>
+ <item id='mult' value="*"/>
+ <item id='div' value="/"/>
+ </JComboBox>
+ </cell>
+ </row>
+ </Table>
+</ContinuousPanelContainer>
\ No newline at end of file
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx 2009-03-16 14:42:04 UTC (rev 1974)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx 2009-03-16 15:51:48 UTC (rev 1975)
@@ -100,13 +100,15 @@
}
protected void factorSelected(){
DefaultMutableTreeNode node = (DefaultMutableTreeNode)factors.getSelectionValue();
- Object o = node.getUserObject();
- if (Factor.class.isInstance(o)){
- Factor f = (Factor)o;
- FactorWizard wizard = new FactorWizard(this);
- wizard.initExisting(getSimulAction().getFactorComponent(f.getPath()), f);
- wizard.pack();
- wizard.setVisible(true);
+ if (node != null){
+ Object o = node.getUserObject();
+ if (Factor.class.isInstance(o)){
+ Factor f = (Factor)o;
+ FactorWizard wizard = new FactorWizard(this);
+ wizard.initExisting(getSimulAction().getFactorComponent(f.getPath()), f);
+ wizard.pack();
+ wizard.setVisible(true);
+ }
}
}
public void setTreeModel(){
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-16 14:42:04 UTC (rev 1974)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-03-16 15:51:48 UTC (rev 1975)
@@ -70,6 +70,8 @@
import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator;
import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain;
import fr.ifremer.isisfish.simulator.sensitivity.domain.DiscreteDomain;
+import fr.ifremer.isisfish.simulator.sensitivity.domain.EquationContinuousDomain;
+import fr.ifremer.isisfish.simulator.sensitivity.domain.MatrixContinuousDomain;
import fr.ifremer.isisfish.ui.simulator.filter.SimulationFilterUtil;
import fr.ifremer.isisfish.ui.widget.ErrorDialogUI;
import fr.ifremer.isisfish.ui.widget.filter.FilterModel;
@@ -673,7 +675,7 @@
public Factor<? extends Serializable> getFactor(String name){
return factors.get(name);
}
- public void addContinueFactors(String name, String path, Serializable min, Serializable max, int inc, JComponent c, boolean exist){
+ public void addContinuousFactor(String name, String path, Serializable min, Serializable max, int inc, JComponent c, boolean exist){
Factor f = new Factor(name);
ContinuousDomain<Serializable> domain = new ContinuousDomain<Serializable>();
domain.setMinBound(min);
@@ -685,7 +687,7 @@
removeFactor(path);
addFactor(path, f, c);
}
- public void addDiscreteFactors(String name, String path, List<Serializable> values, JComponent c, boolean exist){
+ public void addDiscreteFactor(String name, String path, List<Serializable> values, JComponent c, boolean exist){
Factor f = new Factor(name);
DiscreteDomain<Serializable> domain = new DiscreteDomain<Serializable>();
int i = 0;
@@ -702,6 +704,34 @@
removeFactor(path);
addFactor(path, f, c);
}
+ public void addContinuousMatrixFactor(String name, String path, Serializable min, Serializable max, int inc, MatrixND matrix, String operateur, JComponent c, boolean exist){
+ Factor f = new Factor(name);
+ MatrixContinuousDomain<Serializable> domain = new MatrixContinuousDomain<Serializable>();
+ domain.setMatrix(matrix);
+ domain.setOperator(operateur);
+ domain.setCardinality(inc);
+ domain.setMaxBound(max);
+ domain.setMinBound(min);
+ f.setDomain(domain);
+ f.setPath(path);
+ if (exist)
+ removeFactor(path);
+ addFactor(path, f, c);
+ }
+ public void addContinuousEquationFactor(String name, String path, String varName, Serializable min, Serializable max, int inc, MatrixND matrix, String operateur, JComponent c, boolean exist){
+ Factor f = new Factor(name);
+ EquationContinuousDomain<Serializable> domain = new EquationContinuousDomain<Serializable>();
+ domain.setVariableName(varName);
+ domain.setOperator(operateur);
+ domain.setCardinality(inc);
+ domain.setMaxBound(max);
+ domain.setMinBound(min);
+ f.setDomain(domain);
+ f.setPath(path);
+ if (exist)
+ removeFactor(path);
+ addFactor(path, f, c);
+ }
public JComponent getFactorComponent(String path){
return factorComponent.get(path);
}
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-16 14:42:04 UTC (rev 1974)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-03-16 15:51:48 UTC (rev 1975)
@@ -356,11 +356,13 @@
isisfish.factor.discret=Discret factor
isisfish.factor.firstValue=First value
isisfish.factor.increment=Cardinality
+isisfish.factor.operateur=Operator
isisfish.factor.lastValue=Last value
isisfish.factor.name=Factor name
isisfish.factor.selectDiscretNumber=Number of factors
isisfish.factor.title=Factor input
isisfish.factor.validDiscretNumber=Ok
+isisfish.factor.value=Value
isisfish.filter=Filter
isisfish.filter.apply=Apply filter
isisfish.filter.cancel=Cancel
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-16 14:42:04 UTC (rev 1974)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-03-16 15:51:48 UTC (rev 1975)
@@ -356,11 +356,13 @@
isisfish.factor.discret=Facteur discret
isisfish.factor.firstValue=Premi\u00E8re valeur
isisfish.factor.increment=Cardinalit\u00E9e
+isisfish.factor.operateur=Op\u00E9rateur
isisfish.factor.lastValue=Derin\u00E8re valeur
isisfish.factor.name=Nom du facteur
isisfish.factor.selectDiscretNumber=Nombre de facteurs
isisfish.factor.title=Saisie d'un facteur
isisfish.factor.validDiscretNumber=Valider
+isisfish.factor.value=Valeur
isisfish.filter=Filtrer
isisfish.filter.apply=Appliquer le filtre
isisfish.filter.cancel=Annuler
1
0
r1974 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher
by chatellier@users.labs.libre-entreprise.org 16 Mar '09
by chatellier@users.labs.libre-entreprise.org 16 Mar '09
16 Mar '09
Author: chatellier
Date: 2009-03-16 14:42:04 +0000 (Mon, 16 Mar 2009)
New Revision: 1974
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java
Log:
Use correct export dir
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-03-16 11:35:08 UTC (rev 1973)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-03-16 14:42:04 UTC (rev 1974)
@@ -624,7 +624,7 @@
}
try {
// build master sensitivity export directory
- File masterExportDirectory = new File(ExportStorage.getExportDirectory(), simulationCommonPrefix);
+ File masterExportDirectory = new File(IsisFish.config.getDefaultExportDirectory(), simulationCommonPrefix);
// directory must already exists !!!
sensitivityCalculator.analyzeResult(simulationStorageForAnalyze, masterExportDirectory);
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2009-03-16 11:35:08 UTC (rev 1973)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2009-03-16 14:42:04 UTC (rev 1974)
@@ -402,7 +402,7 @@
try {
// build master sensitivity export directory
- File masterExportDirectory = new File(ExportStorage.getExportDirectory(), id);
+ File masterExportDirectory = new File(IsisFish.config.getDefaultExportDirectory(), id);
if (!masterExportDirectory.isDirectory()) {
masterExportDirectory.mkdirs();
}
1
0
Author: chatellier
Date: 2009-03-16 11:35:08 +0000 (Mon, 16 Mar 2009)
New Revision: 1973
Modified:
isis-fish/trunk/pom.xml
Log:
Update H2
Modified: isis-fish/trunk/pom.xml
===================================================================
--- isis-fish/trunk/pom.xml 2009-03-16 11:29:26 UTC (rev 1972)
+++ isis-fish/trunk/pom.xml 2009-03-16 11:35:08 UTC (rev 1973)
@@ -220,7 +220,7 @@
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
- <version>1.1.108</version>
+ <version>1.1.109</version>
<scope>compile</scope>
</dependency>
1
0
r1972 - isis-fish/trunk/src/test/java/fr/ifremer/isisfish/mexico
by jcouteau@users.labs.libre-entreprise.org 16 Mar '09
by jcouteau@users.labs.libre-entreprise.org 16 Mar '09
16 Mar '09
Author: jcouteau
Date: 2009-03-16 11:29:26 +0000 (Mon, 16 Mar 2009)
New Revision: 1972
Modified:
isis-fish/trunk/src/test/java/fr/ifremer/isisfish/mexico/MexicoHelperTest.java
Log:
Fixing test
Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/mexico/MexicoHelperTest.java
===================================================================
--- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/mexico/MexicoHelperTest.java 2009-03-16 11:27:28 UTC (rev 1971)
+++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/mexico/MexicoHelperTest.java 2009-03-16 11:29:26 UTC (rev 1972)
@@ -44,12 +44,12 @@
/**
* Test for MexicoHelper class.
- *
+ *
* @author chatellier
* @version $Revision: 1526 $
- *
- * Last update: $Date: 2008-10-07 18:46:13 +0200 (mar 07 oct 2008) $
- * by : $Author: tchemit $
+ *
+ * Last update: $Date: 2008-10-07 18:46:13 +0200 (mar 07 oct 2008) $ by :
+ * $Author: tchemit $
*/
public class MexicoHelperTest {
@@ -58,7 +58,7 @@
protected DesignPlan getTestDesignPlan() {
DesignPlan designPlan = new DesignPlan();
-
+
// matrix 1
MatrixND matrix1 = MatrixFactory.getInstance().create("test1",
new int[] { 3, 2 }, new String[] { "col1", "col2" });
@@ -70,12 +70,14 @@
matrix1.setValue(new int[] { 2, 1 }, -1);
// factor 1
- Factor<Double> factorContinuous = new Factor<Double>("factor 1 (double)");
+ Factor<Double> factorContinuous = new Factor<Double>(
+ "factor 1 (double)");
ContinuousDomain<Double> domain1 = new ContinuousDomain<Double>();
domain1.setMinBound(0.0);
domain1.setMaxBound(50.0);
factorContinuous.setDomain(domain1);
- factorContinuous.setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521013#0.1715620681984218#maxLength");
+ factorContinuous
+ .setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521013#0.1715620681984218#maxLength");
// factor 2
Factor<Double> factorDiscrete = new Factor<Double>("factor 2 (double)");
@@ -86,128 +88,149 @@
domain2.getValues().put(3.0, -12.1);
domain2.getValues().put(4.0, -8.45);
factorDiscrete.setDomain(domain2);
- factorDiscrete.setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521064#0.022976136053553198#minLength");
+ factorDiscrete
+ .setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521064#0.022976136053553198#minLength");
factorDiscrete.setValue(3.0);
// factor 3
- Factor<MatrixND> factorContinuous2 = new Factor<MatrixND>("factor 3 (discrete matrix)");
+ Factor<MatrixND> factorContinuous2 = new Factor<MatrixND>(
+ "factor 3 (discrete matrix)");
DiscreteDomain<MatrixND> domain3 = new DiscreteDomain<MatrixND>();
domain3.getValues().put(0.0, matrix1);
factorContinuous2.setDomain(domain3);
- factorContinuous2.setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength");
-
+ factorContinuous2
+ .setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength");
+
// factor 4
- Factor<Double> factorMatrixContinuous = new Factor<Double>("factor 4 (MatrixContinuous)");
+ Factor<Double> factorMatrixContinuous = new Factor<Double>(
+ "factor 4 (MatrixContinuous)");
MatrixContinuousDomain<Double> domain4 = new MatrixContinuousDomain<Double>();
domain4.setMinBound(1.0);
domain4.setMaxBound(2.0);
domain4.setMatrix(matrix1);
domain4.setOperator("-");
factorMatrixContinuous.setDomain(domain4);
- factorMatrixContinuous.setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength");
-
+ factorMatrixContinuous
+ .setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength");
+
// factor 5
- Factor<Double> factorEquationContinuous = new Factor<Double>("factor 5 (EquationContinuous)");
+ Factor<Double> factorEquationContinuous = new Factor<Double>(
+ "factor 5 (EquationContinuous)");
EquationContinuousDomain<Double> domain5 = new EquationContinuousDomain<Double>();
domain5.setMinBound(1.0);
domain5.setMaxBound(2.0);
domain5.setVariableName("L1");
domain5.setOperator("-");
factorEquationContinuous.setDomain(domain5);
- factorEquationContinuous.setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#maxLength");
+ factorEquationContinuous
+ .setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#maxLength");
designPlan.getFactors().add(factorContinuous);
designPlan.getFactors().add(factorDiscrete);
designPlan.getFactors().add(factorContinuous2);
designPlan.getFactors().add(factorMatrixContinuous);
designPlan.getFactors().add(factorEquationContinuous);
-
+
return designPlan;
}
-
+
/**
* Test method {@link MexicoHelper#getDesignPlanAsXML(DesignPlan)}.
*
- * @throws IOException
+ * @throws IOException
*/
@Test
public void testGetDesignPlanAsXML() throws IOException {
DesignPlan testDesignPlan = getTestDesignPlan();
-
+
// test xml export
String xml = MexicoHelper.getDesignPlanAsXML(testDesignPlan);
- Assert.assertTrue(xml.indexOf("<factor name=\"factor 2 (double)\"") != -1);
+ Assert
+ .assertTrue(xml.indexOf("<factor name=\"factor 2 (double)\"") != -1);
//Assert.assertTrue(xml.indexOf("<range min=\"12.0\" max=\"99.0\" />") != -1);
Assert.assertTrue(xml.indexOf("<value>70.9</value>") != -1);
-
+
if (log.isDebugEnabled()) {
xml = xml.replaceAll(">", ">\n");
- FileUtil.writeString(new File(TestUtils.getTargetdir(),"mexicohelper_designplan.xml"), xml);
+ FileUtil.writeString(new File(TestUtils.getTargetdir(),
+ "mexicohelper_designplan.xml"), xml);
log.info("Designplan xml = " + xml);
}
}
-
+
/**
- * Test method {@link MexicoHelper#getSensitivityScenarionsAsXML(SensitivityScenarios)}.
+ * Test method
+ * {@link MexicoHelper#getSensitivityScenarionsAsXML(SensitivityScenarios)}.
*
- * @throws IOException
- * @throws SensitivityException
+ * @throws IOException
+ * @throws SensitivityException
*/
@Test
- public void testGetSensitivityScenariosAsXML() throws IOException, SensitivityException {
+ public void testGetSensitivityScenariosAsXML() throws IOException,
+ SensitivityException {
DesignPlan testDesignPlan = getTestDesignPlan();
SensitivityCalculator testCalculator = new SensitivityCalculatorRandomMock();
- SensitivityScenarios testScenario = testCalculator.compute(testDesignPlan);
-
+ SensitivityScenarios testScenario = testCalculator.compute(
+ testDesignPlan, null);
+
// test xml export
String xml = MexicoHelper.getSensitivityScenarionsAsXML(testScenario);
//Assert.assertTrue(xml.indexOf("<factor name=\"factor 2 (double)\"") != -1);
//Assert.assertTrue(xml.indexOf("<range min=\"12.0\" max=\"99.0\" />") != -1);
//Assert.assertTrue(xml.indexOf("<value>70.9</value>") != -1);
-
+
if (log.isDebugEnabled()) {
xml = xml.replaceAll(">", ">\n");
- FileUtil.writeString(new File(TestUtils.getTargetdir(),"mexicohelper_scenarios.xml"), xml);
+ FileUtil.writeString(new File(TestUtils.getTargetdir(),
+ "mexicohelper_scenarios.xml"), xml);
log.info("SensitivityScenarios xml = " + xml);
}
}
-
+
/**
* Test method {@link MexicoHelper#getDesignPlanFromXML(String)}.
- * @throws IOException
+ *
+ * @throws IOException
*/
@Test
public void getDesignPlanFromXML() throws IOException {
- DesignPlan plan = MexicoHelper.getDesignPlanFromXML("src/test/resources/mexico/mexicohelper_designplan.xml");
+ DesignPlan plan = MexicoHelper
+ .getDesignPlanFromXML("src/test/resources/mexico/mexicohelper_designplan.xml");
Assert.assertEquals(4, plan.getFactors().size());
// FIXME should be : Assert.assertEquals(5, plan.getFactors().size());
-
+
String xml = MexicoHelper.getDesignPlanAsXML(plan);
xml = xml.replaceAll(">", ">\n");
log.info("getDesignPlanFromXML xml = " + xml);
}
-
+
/**
* Test method {@link MexicoHelper#getSensitivityScenariosFromXML(String)}.
- * @throws IOException
+ *
+ * @throws IOException
*/
@Test
public void getSensitivityScenariosFromXML() throws IOException {
- SensitivityScenarios scenario = MexicoHelper.getSensitivityScenariosFromXML("src/test/resources/mexico/mexicohelper_scenarios.xml");
+ SensitivityScenarios scenario = MexicoHelper
+ .getSensitivityScenariosFromXML("src/test/resources/mexico/mexicohelper_scenarios.xml");
Assert.assertEquals(10, scenario.getScenarios().size());
- Assert.assertEquals(5, scenario.getScenarios().get(0).getFactors().size());
- Assert.assertEquals(2, scenario.getScenarios().get(1).getFactors().size());
- Assert.assertEquals(2, scenario.getScenarios().get(2).getFactors().size());
- Assert.assertEquals(2, scenario.getScenarios().get(3).getFactors().size());
-
+ Assert.assertEquals(5, scenario.getScenarios().get(0).getFactors()
+ .size());
+ Assert.assertEquals(2, scenario.getScenarios().get(1).getFactors()
+ .size());
+ Assert.assertEquals(2, scenario.getScenarios().get(2).getFactors()
+ .size());
+ Assert.assertEquals(2, scenario.getScenarios().get(3).getFactors()
+ .size());
+
String xml = MexicoHelper.getSensitivityScenarionsAsXML(scenario);
xml = xml.replaceAll(">", ">\n");
log.info("getSensitivityScenariosFromXML xml = " + xml);
1
0
r1971 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher
by chatellier@users.labs.libre-entreprise.org 16 Mar '09
by chatellier@users.labs.libre-entreprise.org 16 Mar '09
16 Mar '09
Author: chatellier
Date: 2009-03-16 11:27:28 +0000 (Mon, 16 Mar 2009)
New Revision: 1971
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java
Log:
Give master sensitivity export directory
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-03-16 11:10:06 UTC (rev 1970)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-03-16 11:27:28 UTC (rev 1971)
@@ -43,6 +43,7 @@
import fr.ifremer.isisfish.IsisFish;
import fr.ifremer.isisfish.IsisFishException;
import fr.ifremer.isisfish.datastore.AnalysePlanStorage;
+import fr.ifremer.isisfish.datastore.ExportStorage;
import fr.ifremer.isisfish.datastore.SimulationStorage;
import fr.ifremer.isisfish.simulator.AnalysePlan;
import fr.ifremer.isisfish.simulator.SimulationControl;
@@ -622,8 +623,10 @@
log.debug("Call analyzeResult on sensitivity script " + sensitivityCalculator.getClass().getSimpleName());
}
try {
- // FIXME sensitivityScenarios are not available here :(
- sensitivityCalculator.analyzeResult(simulationStorageForAnalyze,null);
+ // build master sensitivity export directory
+ File masterExportDirectory = new File(ExportStorage.getExportDirectory(), simulationCommonPrefix);
+ // directory must already exists !!!
+ sensitivityCalculator.analyzeResult(simulationStorageForAnalyze, masterExportDirectory);
}
catch(SensitivityException e) {
if (log.isErrorEnabled()) {
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2009-03-16 11:10:06 UTC (rev 1970)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2009-03-16 11:27:28 UTC (rev 1971)
@@ -400,15 +400,22 @@
SensitivityCalculator sensitivitycalculator, DesignPlan designPlan) {
try {
+
+ // build master sensitivity export directory
+ File masterExportDirectory = new File(ExportStorage.getExportDirectory(), id);
+ if (!masterExportDirectory.isDirectory()) {
+ masterExportDirectory.mkdirs();
+ }
+
SensitivityScenarios sensitivityScenarios = sensitivitycalculator
- .compute(designPlan,null);
+ .compute(designPlan, masterExportDirectory);
// ajout des parametres de simulation
param.setSensitivityCalculator(sensitivitycalculator);
param.setNumberOfSensitivitySimulation(sensitivityScenarios.getScenarios().size());
// FIXME to remove when available in UI
- List<String> names = ExportStorage.getExportNames();
+ /*List<String> names = ExportStorage.getExportNames();
List<String> ASName = new ArrayList<String>();
for (String name : names) {
Export export = ExportStorage.getExport(name).getNewExportInstance();
@@ -416,7 +423,7 @@
ASName.add(name);
}
}
- param.setSensitivityExportNames(ASName);
+ param.setSensitivityExportNames(ASName);*/
// on l'ajoute tout de suite a la liste des simulations demandee
// init with default "id" must been changed for designPlan
1
0
r1970 - in isis-fish/trunk/src: main/resources/templates/script test/java/fr/ifremer/isisfish/simulator/launcher test/java/fr/ifremer/isisfish/simulator/sensitivity
by jcouteau@users.labs.libre-entreprise.org 16 Mar '09
by jcouteau@users.labs.libre-entreprise.org 16 Mar '09
16 Mar '09
Author: jcouteau
Date: 2009-03-16 11:10:06 +0000 (Mon, 16 Mar 2009)
New Revision: 1970
Modified:
isis-fish/trunk/src/main/resources/templates/script/sensitivity.ftl
isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTest.java
isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculatorRandomMock.java
Log:
Correct test to comply with new sensitivity calculator interface
Modified: isis-fish/trunk/src/main/resources/templates/script/sensitivity.ftl
===================================================================
--- isis-fish/trunk/src/main/resources/templates/script/sensitivity.ftl 2009-03-16 11:06:21 UTC (rev 1969)
+++ isis-fish/trunk/src/main/resources/templates/script/sensitivity.ftl 2009-03-16 11:10:06 UTC (rev 1970)
@@ -9,6 +9,8 @@
import org.codelutin.math.matrix.*;
+import java.io.File;
+
import fr.ifremer.isisfish.datastore.SimulationStorage;
import fr.ifremer.isisfish.entities.*;
import fr.ifremer.isisfish.simulator.sensitivity.*;
@@ -58,7 +60,8 @@
* @see Scenario
* @see SensitivityScenarios
*/
- public SensitivityScenarios compute(DesignPlan plan) throws SensitivityException {
+ public SensitivityScenarios compute(DesignPlan plan, File outputdirectory)
+ throws SensitivityException {
SensitivityScenarios sensitivityScenarios = new SensitivityScenarios();
@@ -78,8 +81,8 @@
*
* @see SensitivityScenarios
*/
- public void analyzeResult(SensitivityScenarios sensitivityScenarios,
- List<SimulationStorage> simulationStorages)
+ public void analyzeResult(List<SimulationStorage> simulationStorages,
+ File outputdirectory)
throws SensitivityException {
}
Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTest.java
===================================================================
--- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTest.java 2009-03-16 11:06:21 UTC (rev 1969)
+++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTest.java 2009-03-16 11:10:06 UTC (rev 1970)
@@ -50,21 +50,20 @@
* @author chatellier
* @version $Revision: 1.0 $
*
- * Last update : $Date: 24 févr. 2009 $
- * By : $Author: chatellier $
+ * Last update : $Date: 24 févr. 2009 $ By : $Author: chatellier $
*/
public class SimulationServiceTest {
-
+
/** Commons logging log. */
private static Log log = LogFactory.getLog(SimulationServiceTest.class);
-
+
@Before
public void setUp() throws Exception {
// not do it in @BeforeClass
- // test wil fail !
+ // test will fail !
TestUtils.init();
}
-
+
/**
* Build a test {@link DesignPlan}.
*
@@ -72,17 +71,19 @@
*/
protected DesignPlan getTestDesignPlan() {
DesignPlan designPlan = new DesignPlan();
-
+
// factor 1
Factor<Double> factor1 = new Factor<Double>("factor 1 (double)");
ContinuousDomain<Double> domain1 = new ContinuousDomain<Double>();
domain1.setMinBound(0.0);
domain1.setMaxBound(50.0);
+ domain1.setCardinality(4);
factor1.setDomain(domain1);
- factor1.setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521013#0.1715620681984218#maxLength");
-
+ factor1
+ .setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521013#0.1715620681984218#maxLength");
+
// factor 2
- Factor<Double> factor2 = new Factor<Double>("factor 2 (double)");
+ /*Factor<Double> factor2 = new Factor<Double>("factor 2 (double)");
DiscreteDomain<Double> domain2 = new DiscreteDomain<Double>();
domain2.getValues().put(0.0, 12.3);
domain2.getValues().put(1.0, 70.9);
@@ -90,23 +91,25 @@
domain2.getValues().put(3.0, -12.1);
domain2.getValues().put(4.0, -8.45);
factor2.setDomain(domain2);
- factor2.setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521064#0.022976136053553198#minLength");
-
+ factor2.setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521064#0.022976136053553198#minLength");*/
+
// factor 3
Factor<Double> factor3 = new Factor<Double>("factor 3 (double)");
ContinuousDomain<Double> domain3 = new ContinuousDomain<Double>();
domain3.setMinBound(12.0);
domain3.setMaxBound(99.0);
+ domain3.setCardinality(4);
factor3.setDomain(domain3);
- factor3.setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength");
-
+ factor3
+ .setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength");
+
designPlan.getFactors().add(factor1);
- designPlan.getFactors().add(factor2);
+ //designPlan.getFactors().add(factor2);
designPlan.getFactors().add(factor3);
-
+
return designPlan;
}
-
+
/**
* Build a test {@link DesignPlan} filled with matrix.
*
@@ -114,7 +117,7 @@
*/
protected DesignPlan getTestMatrixDesignPlan() {
DesignPlan designPlan = new DesignPlan();
-
+
// matrix 1
MatrixND matrix1 = MatrixFactory.getInstance().create("test1",
new int[] { 3, 2 }, new String[] { "col1", "col2" });
@@ -124,7 +127,7 @@
matrix1.setValue(new int[] { 1, 1 }, 2);
matrix1.setValue(new int[] { 2, 0 }, 12);
matrix1.setValue(new int[] { 2, 1 }, -1);
-
+
// matrix 2
MatrixND matrix2 = MatrixFactory.getInstance().create("test1",
new int[] { 3, 2 }, new String[] { "col1", "col2" });
@@ -134,20 +137,21 @@
matrix2.setValue(new int[] { 1, 1 }, 2);
matrix2.setValue(new int[] { 2, 0 }, 12);
matrix2.setValue(new int[] { 2, 1 }, -1);
-
+
// factor 1
Factor<MatrixND> factor1 = new Factor<MatrixND>("factor 1 (matrixND)");
DiscreteDomain<MatrixND> domain1 = new DiscreteDomain<MatrixND>();
domain1.getValues().put(0.0, matrix1);
domain1.getValues().put(1.0, matrix2);
factor1.setDomain(domain1);
- factor1.setPath("fr.ifremer.isisfish.entities.StrategyMonthInfo#1156808754768#0.7282750856395208#proportionMetier");
+ factor1
+ .setPath("fr.ifremer.isisfish.entities.StrategyMonthInfo#1156808754768#0.7282750856395208#proportionMetier");
designPlan.getFactors().add(factor1);
-
+
return designPlan;
}
-
+
/**
* Lance une simulation avec des facteurs de sensibilité.
*/
@@ -179,24 +183,24 @@
service.addSimulationLauncher(launcher);
SensitivityCalculator sensitivityCalculator = new SensitivityCalculatorRandomMock();
-
+
DesignPlan designPlan = getTestDesignPlan();
-
- service.submit("sensitivity test number 1", params, launcher, 0, sensitivityCalculator, designPlan);
+ service.submit("sensitivity test number 1", params, launcher, 0,
+ sensitivityCalculator, designPlan);
+
// temporise la fin de test , sinon junit tue tous les process
try {
do {
Thread.sleep(2000);
- } while(!service.jobs.isEmpty());
- }
- catch(InterruptedException e) {
- if(log.isErrorEnabled()) {
+ } while (!service.jobs.isEmpty());
+ } catch (InterruptedException e) {
+ if (log.isErrorEnabled()) {
log.error("Can't wait wimulation to end", e);
}
}
}
-
+
/**
* Lance une simulation avec des facteurs de sensibilité.
*
@@ -230,19 +234,19 @@
service.addSimulationLauncher(launcher);
SensitivityCalculator sensitivityCalculator = new SensitivityCalculatorRandomMock();
-
+
DesignPlan designPlan = getTestMatrixDesignPlan();
-
- service.submit("sensitivity test number 1", params, launcher, 0, sensitivityCalculator, designPlan);
+ service.submit("sensitivity test number 1", params, launcher, 0,
+ sensitivityCalculator, designPlan);
+
// temporise la fin de test , sinon junit tue tous les process
try {
do {
Thread.sleep(2000);
- } while(!service.jobs.isEmpty());
- }
- catch(InterruptedException e) {
- if(log.isErrorEnabled()) {
+ } while (!service.jobs.isEmpty());
+ } catch (InterruptedException e) {
+ if (log.isErrorEnabled()) {
log.error("Can't wait wimulation to end", e);
}
}
Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculatorRandomMock.java
===================================================================
--- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculatorRandomMock.java 2009-03-16 11:06:21 UTC (rev 1969)
+++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculatorRandomMock.java 2009-03-16 11:10:06 UTC (rev 1970)
@@ -18,6 +18,7 @@
package fr.ifremer.isisfish.simulator.sensitivity;
+import java.io.File;
import java.io.Serializable;
import java.util.List;
@@ -26,79 +27,72 @@
import fr.ifremer.isisfish.datastore.SimulationStorage;
import fr.ifremer.isisfish.simulator.launcher.SimulationServiceTest;
-import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator;
-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.SensitivityScenarios;
-import fr.ifremer.isisfish.simulator.sensitivity.Scenario;
import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain;
import fr.ifremer.isisfish.simulator.sensitivity.domain.DiscreteDomain;
/**
- * Implementation of SensitivityCalculator that take
- * random value in available factors.
- *
+ * Implementation of SensitivityCalculator that take random value in available
+ * factors.
+ *
* @author chatellier
* @version $Revision: 1.0 $
*
- * Last update : $Date: 26 févr. 2009 $
- * By : $Author: chatellier $
+ * Last update : $Date: 26 févr. 2009 $ By : $Author: chatellier $
*/
public class SensitivityCalculatorRandomMock implements SensitivityCalculator {
- private static final Log log = LogFactory.getLog(SimulationServiceTest.class);
-
- public String getDescription(){
+ private static final Log log = LogFactory
+ .getLog(SimulationServiceTest.class);
+
+ public String getDescription() {
return "Implementation of random sensibility calculator";
}
-
- public SensitivityScenarios compute(DesignPlan plan) {
-
- if (log.isDebugEnabled()) {
- log.info("Call random mock compute()");
- }
-
- // return result
- SensitivityScenarios sensitivityScenarios = new SensitivityScenarios();
-
- List<Factor<? extends Serializable>> factors = plan.getFactors();
- for(int i = 0 ; i < factors.size() * 2 ; ++i) {
-
- Scenario scenario = new Scenario();
- // choose a 0 < number < factors.size()
- int pickedFactor = (int) (Math.random() * factors.size());
- Factor<? extends Serializable> factor = factors.get(pickedFactor);
-
- Domain<? extends Serializable> domain = factor.getDomain();
- if( domain instanceof ContinuousDomain) {
- ContinuousDomain<? extends Serializable> cDomain = (ContinuousDomain<? extends Serializable>)domain;
- Double minValue = (Double)cDomain.getMinBound();
- Double maxValue = (Double)cDomain.getMaxBound();
- factor.setValueForIdentifier(minValue);
- scenario.addFactor(factor);
- factor.setValueForIdentifier(maxValue);
+ public SensitivityScenarios compute(DesignPlan plan, File outputdirectory) {
+
+ if (log.isDebugEnabled()) {
+ log.info("Call random mock compute()");
+ }
+
+ // return result
+ SensitivityScenarios sensitivityScenarios = new SensitivityScenarios();
+
+ List<Factor<? extends Serializable>> factors = plan.getFactors();
+ for (int i = 0; i < factors.size() * 2; ++i) {
+
+ Scenario scenario = new Scenario();
+ // choose a 0 < number < factors.size()
+ int pickedFactor = (int) (Math.random() * factors.size());
+ Factor<? extends Serializable> factor = factors.get(pickedFactor);
+
+ Domain<? extends Serializable> domain = factor.getDomain();
+ if (domain instanceof ContinuousDomain) {
+ ContinuousDomain<? extends Serializable> cDomain = (ContinuousDomain<? extends Serializable>) domain;
+ Double minValue = (Double) cDomain.getMinBound();
+ Double maxValue = (Double) cDomain.getMaxBound();
+
+ factor.setValueForIdentifier(minValue);
scenario.addFactor(factor);
- }
- else {
- DiscreteDomain<? extends Serializable> dDomain = (DiscreteDomain<? extends Serializable>)domain;
- for(Serializable sValue : dDomain.getValues().keySet()) {
- factor.setValueForIdentifier(sValue);
- scenario.addFactor(factor);
- }
- }
-
- sensitivityScenarios.getScenarios().add(scenario);
- }
-
- return sensitivityScenarios;
+ factor.setValueForIdentifier(maxValue);
+ scenario.addFactor(factor);
+ } else {
+ DiscreteDomain<? extends Serializable> dDomain = (DiscreteDomain<? extends Serializable>) domain;
+ for (Serializable sValue : dDomain.getValues().keySet()) {
+ factor.setValueForIdentifier(sValue);
+ scenario.addFactor(factor);
+ }
+ }
- }
+ sensitivityScenarios.getScenarios().add(scenario);
+ }
- public void analyzeResult(SensitivityScenarios sensitivityScenarios,
- List<SimulationStorage> simulationStorages) {
+ return sensitivityScenarios;
- }
+ }
+ public void analyzeResult(List<SimulationStorage> simulationStorages,
+ File outputdirectory) {
+
+ }
+
}
1
0