r3436 - in isis-fish/trunk: . src/main/java/fr/ifremer/isisfish src/main/java/fr/ifremer/isisfish/actions src/main/java/fr/ifremer/isisfish/datastore src/main/java/fr/ifremer/isisfish/simulator src/main/java/fr/ifremer/isisfish/simulator/launcher src/main/java/fr/ifremer/isisfish/simulator/sensitivity src/main/java/fr/ifremer/isisfish/ui/models src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis src/main/java/fr/ifremer/isisfish/ui/models/simulationplan src/main/java/fr/ifrem
Author: chatellier Date: 2011-07-07 14:33:45 +0000 (Thu, 07 Jul 2011) New Revision: 3436 Log: Refactoring : - analyseplan > simulationplan - sensitivity > sensitivityanalysis Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorage.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationPlanStorage.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationPlan.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationPlanContext.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationPlanIndependent.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityAnalysis.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityAnalysis.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisComboModel.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisComboRenderer.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisListModel.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisListRenderer.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableCellEditor.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableCellRenderer.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableModel.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanComboModel.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanComboRenderer.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanListModel.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanListRenderer.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableCellEditor.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableCellRenderer.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableModel.java isis-fish/trunk/src/main/resources/templates/script/sensitivityanalysis.ftl isis-fish/trunk/src/main/resources/templates/script/simulationplan.ftl isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorageTest.java isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SimulationPlanStorageTest.java isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityAnalysisRandomMock.java Removed: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/AnalysePlanStorage.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityStorage.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityCalculator.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityCalculatorComboModel.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityCalculatorComboRenderer.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityCalculatorListModel.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityCalculatorListRenderer.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityCalculatorParametersTableCellEditor.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityCalculatorParametersTableCellRenderer.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityCalculatorParametersTableModel.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/AnalyzePlanComboModel.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/AnalyzePlanComboRenderer.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/AnalyzePlanListModel.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/AnalyzePlanListRenderer.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/AnalyzePlanParametersTableCellEditor.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/AnalyzePlanParametersTableCellRenderer.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/AnalyzePlanParametersTableModel.java isis-fish/trunk/src/main/resources/templates/script/analyseplan.ftl isis-fish/trunk/src/main/resources/templates/script/sensitivity.ftl isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/AnalysePlanStorageTest.java isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SensitivityStorageTest.java isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculatorRandomMock.java Modified: isis-fish/trunk/pom.xml isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/ExportAction.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/ImportAction.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/CodeSourceStorage.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/ResultStorage.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/AnalysePlan.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/AnalysePlanContext.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/AnalysePlanIndependent.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/ResultManager.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterCache.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterImpl.java 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 isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculator.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/model/ScriptTreeModel.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.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/SensUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationParameterTest.java isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTest.java Modified: isis-fish/trunk/pom.xml =================================================================== --- isis-fish/trunk/pom.xml 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/pom.xml 2011-07-07 14:33:45 UTC (rev 3436) @@ -63,7 +63,7 @@ <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> - <version>3.6.5.Final</version> + <version>${hibernateVersion}</version> <scope>compile</scope> </dependency> @@ -521,6 +521,7 @@ <jaxxVersion>2.4.2</jaxxVersion> <eugeneVersion>2.3.5</eugeneVersion> <topiaVersion>2.6</topiaVersion> + <hibernateVersion>3.6.5.Final</hibernateVersion> <nuitonUtilsVersion>2.2</nuitonUtilsVersion> <nuitonI18nVersion>2.4</nuitonI18nVersion> <nuitonWidgetsVersion>1.1.1</nuitonWidgetsVersion> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -57,14 +57,14 @@ import org.nuiton.widget.SwingSession; import fr.ifremer.isisfish.cron.CronService; -import fr.ifremer.isisfish.datastore.AnalysePlanStorage; +import fr.ifremer.isisfish.datastore.SimulationPlanStorage; import fr.ifremer.isisfish.datastore.ExportStorage; import fr.ifremer.isisfish.datastore.FormuleStorage; import fr.ifremer.isisfish.datastore.RegionStorage; import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.datastore.ScriptStorage; import fr.ifremer.isisfish.datastore.SensitivityExportStorage; -import fr.ifremer.isisfish.datastore.SensitivityStorage; +import fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.datastore.SimulatorStorage; import fr.ifremer.isisfish.simulator.launcher.SimulationService; @@ -362,13 +362,13 @@ vcs.checkout(tag, false); // ajoute les repertoires qu'il faut - AnalysePlanStorage.checkout(); + SimulationPlanStorage.checkout(); ExportStorage.checkout(); FormuleStorage.checkout(); RuleStorage.checkout(); ScriptStorage.checkout(); SimulatorStorage.checkout(); - SensitivityStorage.checkout(); + SensitivityAnalysisStorage.checkout(); SensitivityExportStorage.checkout(); // on ne prend pas toutes les simu ni toutes les regions Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/ExportAction.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/ExportAction.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/ExportAction.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -39,7 +39,7 @@ import org.nuiton.util.ApplicationConfig.Action.Step; import fr.ifremer.isisfish.IsisConfig; -import fr.ifremer.isisfish.datastore.AnalysePlanStorage; +import fr.ifremer.isisfish.datastore.SimulationPlanStorage; import fr.ifremer.isisfish.datastore.DataStorage; import fr.ifremer.isisfish.datastore.ExportStorage; import fr.ifremer.isisfish.datastore.FormuleStorage; @@ -93,8 +93,8 @@ System.out.println(sb.toString()); } - public void listAnalysePlan(String filter) throws Exception { - List<String> names = AnalysePlanStorage.getAnalysePlanNames(); + public void listSimulationPlan(String filter) throws Exception { + List<String> names = SimulationPlanStorage.getSimulationPlanNames(); applyFilter(filter, names); display(filter, names); } @@ -183,11 +183,11 @@ } } - public void exportAnalysePlan(File file, String name, boolean force) throws Exception { + public void exportSimulationPlan(File file, String name, boolean force) throws Exception { if (!force && file.exists()) { throw new IllegalArgumentException(_("destination already exists %s use 'force' argument to force overwrite", file)); } - AnalysePlanStorage storage = AnalysePlanStorage.getAnalysePlan(name); + SimulationPlanStorage storage = SimulationPlanStorage.getSimulationPlan(name); if (!storage.exists()) { throw new IllegalArgumentException(_("could not found %s", name)); } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/ImportAction.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/ImportAction.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/ImportAction.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -32,7 +32,7 @@ import org.nuiton.util.FileUtil; import fr.ifremer.isisfish.IsisConfig; -import fr.ifremer.isisfish.datastore.AnalysePlanStorage; +import fr.ifremer.isisfish.datastore.SimulationPlanStorage; import fr.ifremer.isisfish.datastore.ExportStorage; import fr.ifremer.isisfish.datastore.FormuleStorage; import fr.ifremer.isisfish.datastore.RegionStorage; @@ -60,7 +60,7 @@ public void importAnalysePlan(boolean force, File file) throws Exception { String name = file.getName(); - AnalysePlanStorage storage = AnalysePlanStorage.getAnalysePlan(name); + SimulationPlanStorage storage = SimulationPlanStorage.getSimulationPlan(name); if(!force && storage.exists()) { throw new IllegalArgumentException(_("destination already exists %s use \'force\' argument to force overwrite", storage.getFile())); } Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/AnalysePlanStorage.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/AnalysePlanStorage.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/AnalysePlanStorage.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,224 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2005 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.datastore; - -import static org.nuiton.i18n.I18n._; - -import java.io.File; -import java.util.List; -import java.util.Map; - -import org.apache.commons.collections.map.ReferenceMap; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import fr.ifremer.isisfish.IsisFish; -import fr.ifremer.isisfish.IsisFishException; -import fr.ifremer.isisfish.simulator.AnalysePlan; -import fr.ifremer.isisfish.util.Doc; -import fr.ifremer.isisfish.util.Docable; -import fr.ifremer.isisfish.vcs.VCSException; - -/** - * Class permettant de representer un plan d'analyse. - * Un plan d'analyse est un fichier Java que l'on compile si besoin. - * <p/> - * Gere les fichiers VCS de type {@link AnalysePlan} (package analyseplans) - * - * Created: 17 août 2005 11:11:51 CEST - * - * @author Benjamin POUSSIN <poussin at codelutin.com> - * - * @version $Revision$ - * - * Last update: $Date$ by : $Author$ - */ -public class AnalysePlanStorage extends JavaSourceStorage { // AnalysePlanStorage - - /** to use log facility, just put in your code: log.info(\"...\"); */ - private static Log log = LogFactory.getLog(AnalysePlanStorage.class); - - public final static String ANALYSE_PLAN_PATH = "analyseplans"; - - /** Template freemarker pour les plans d'analyse . */ - public static final String ANALYSE_PLAN_TEMPLATE = "templates/script/analyseplan.ftl"; - - @SuppressWarnings("unchecked") - static private Map<String, AnalysePlanStorage> plansCache = - (Map<String, AnalysePlanStorage>) new ReferenceMap(); - - /** - * Construit un nouveau AnalysePlan storage. - * - * @param rootSrc repertoire root de stockage des plans - * @param directory le repertoire ou devrait se trouver le plan - * @param name le nom du plan - */ - protected AnalysePlanStorage(File rootSrc, File directory, String name) { - super(rootSrc, directory, name); - } - - /** - * Get context (official VCS) analyse plan directory. - * - * @return context analyse plan directory - */ - static public File getAnalysePlanDirectory() { - File result = new File(getContextDatabaseDirectory(), ANALYSE_PLAN_PATH); - result.mkdirs(); - return result; - } - - /** - * Get community VCS analyse plan directory. - * - * @return community analyse plan directory - */ - public static File getCommunityAnalysePlanDirectory() { - File result = new File(getCommunityDatabaseDirectory(), ANALYSE_PLAN_PATH); - result.mkdirs(); - return result; - } - - /** - * Retourne le nom de toutes les plans existantes - * - * @return les noms de tous les plans existant en local - */ - static public List<String> getAnalysePlanNames() { - List<String> result = getStorageNames(getAnalysePlanDirectory()); - result.addAll(getStorageNames(getCommunityAnalysePlanDirectory())); - return result; - } - - /** - * Retourne le storage pour le plan demandé. - * - * @param name le nom du plan souhaité - * @return Le storage pour le plan - */ - static public AnalysePlanStorage getAnalysePlan(String name) { - String cacheName = getContextDatabaseCacheKey(name); - AnalysePlanStorage result = plansCache.get(cacheName); - if (result == null) { - result = new AnalysePlanStorage(getContextDatabaseDirectory(), - getAnalysePlanDirectory(), name); - plansCache.put(cacheName, result); - } - return result; - } - - /** - * Retourne le storage pour le plan demandé. - * - * @param name le nom du plan souhaité - * @return Le storage pour le plan - */ - static public AnalysePlanStorage getCommunityAnalysePlan(String name) { - String cacheName = getCommunityDatabaseCacheKey(name); - AnalysePlanStorage result = plansCache.get(cacheName); - if (result == null) { - result = new AnalysePlanStorage(getCommunityDatabaseDirectory(), - getCommunityAnalysePlanDirectory(), name); - plansCache.put(cacheName, result); - } - return result; - } - - /** - * Retourne une nouvelle instance du plan. Compile le fichier si besoin - * - * @return retourne une nouvelle instance du plan - * @throws IsisFishException s'il y a un probleme d'instanciation - */ - public AnalysePlan getNewAnalysePlanInstance() throws IsisFishException { - Object result = getNewInstance(); - return (AnalysePlan) result; - } - - static public void checkout() throws VCSException { - checkout(IsisFish.config.getDatabaseDirectory(), ANALYSE_PLAN_PATH); - } - - /** - * Retourne la liste des noms de tous les plans disponibles en local qui - * ne sont pas encore sur le serveur VCS. - * - * @return liste de noms de plans - */ - public static List<String> getNewAnalysePlanNames() { - List<String> result = getAnalysePlanNames(); - result.removeAll(getRemoteAnalysePlanNames()); - return result; - } - - /** - * Retourne la liste des noms de tous les plans disponibles sur le - * serveur VCS. - * - * @return la liste des noms de tous les plans disponibles sur le serveur - * VCS. Si le serveur n'est pas disponible la liste retournée est - * vide. - */ - public static List<String> getRemoteAnalysePlanNames() { - File dir = getAnalysePlanDirectory(); - return getRemoteStorageNames(dir); - } - - /** - * Retourne la liste des noms de tous les plans disponibles sur le - * serveur VCS qui ne sont pas encore en local - * - * @return liste de noms de regions - * @throws VCSException - */ - public static List<String> getNewRemoteAnalysePlanNames() throws VCSException { - List<String> result = getRemoteAnalysePlanNames(); - result.removeAll(getAnalysePlanNames()); - return result; - } - - /** - * <b>Be ware this method require to instanciate a AnalysePlan, so - * it would be better to call as often as possible.</b> - * - * @return the descript of the instanciate AnalysePlan - * @see Doc - * @see Docable - */ - public String getDescription() { - String result = null; - try { - AnalysePlan analysePlan = getNewAnalysePlanInstance(); - result = analysePlan == null ? null : analysePlan.getDescription(); - } catch (Exception e) { - log.warn(_("isisfish.error.not.found.description", this)); - } - return result; - } - -} // AnalysePlanStorage - Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/CodeSourceStorage.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/CodeSourceStorage.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/CodeSourceStorage.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -40,8 +40,8 @@ * {@link fr.ifremer.isisfish.datastore.ScriptStorage}, * {@link fr.ifremer.isisfish.datastore.RuleStorage}, * {@link fr.ifremer.isisfish.datastore.ExportStorage}, - * {@link fr.ifremer.isisfish.datastore.AnalysePlanStorage}, - * {@link fr.ifremer.isisfish.datastore.SensitivityStorage} + * {@link fr.ifremer.isisfish.datastore.SimulationPlanStorage}, + * {@link fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage} * * Created: 21 janv. 2006 15:20:24 * Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -49,11 +49,11 @@ * Classes abstraite permettant la gestion des fichiers de code source. * * Exemple : - * {@link fr.ifremer.isisfish.datastore.AnalysePlanStorage} + * {@link fr.ifremer.isisfish.datastore.SimulationPlanStorage} * {@link fr.ifremer.isisfish.datastore.ExportStorage}, * {@link fr.ifremer.isisfish.datastore.RuleStorage}, * {@link fr.ifremer.isisfish.datastore.ScriptStorage}, - * {@link fr.ifremer.isisfish.datastore.SensitivityStorage}, + * {@link fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage}, * {@link fr.ifremer.isisfish.datastore.SimulatorStorage} * * @author poussin Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -435,20 +435,25 @@ RegionStorage result = RegionStorage.getRegion(name); if (result != null) { File data = result.getDataBackupFile(); - if (file.exists()) { + if (data.exists()) { TopiaContext tx = result.getStorage().beginTransaction(); + log.info("Restoring from file"); tx.restore(data); + log.info("Restored from file"); if (newName != null) { FisheryRegion region = getFisheryRegion(tx); region.setName(newName); } - + // delete results in new region database // this can occure when create region from simulation tx.execute("DELETE " + Result.class.getName()); - + + log.info("before commit"); tx.commitTransaction(); + log.info("after commit"); tx.closeContext(); + log.info("closed"); } } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/ResultStorage.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/ResultStorage.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/ResultStorage.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -55,9 +55,9 @@ import fr.ifremer.isisfish.export.Export; import fr.ifremer.isisfish.export.SensitivityExport; import fr.ifremer.isisfish.rule.Rule; -import fr.ifremer.isisfish.simulator.AnalysePlan; import fr.ifremer.isisfish.simulator.SimulationContext; import fr.ifremer.isisfish.simulator.SimulationException; +import fr.ifremer.isisfish.simulator.SimulationPlan; import fr.ifremer.isisfish.simulator.SimulationResultGetter; import fr.ifremer.isisfish.simulator.SimulationResultListener; import fr.ifremer.isisfish.types.Date; @@ -96,6 +96,8 @@ * Les ResultStorage ne doivent pas etre instancier directement, mais * recuperer a partir d'un * {@link fr.ifremer.isisfish.datastore.SimulationStorage#getResultStorage()} + * + * @param simulation storage to get result */ public ResultStorage(SimulationStorage simulation) { this.simulation = simulation; @@ -199,7 +201,7 @@ * <li>{@link Export#getNecessaryResult()}</li> * <li>{@link SensitivityExport#getNecessaryResult()}</li> * <li>{@link Rule#getNecessaryResult()}</li> - * <li>{@link AnalysePlan#getNecessaryResult()}</li> + * <li>{@link SimulationPlan#getNecessaryResult()}</li> * </ul> * * @param name result name @@ -252,9 +254,9 @@ } // test on plans - List<AnalysePlan> plans = simulation.getParameter().getAnalysePlans(); + List<SimulationPlan> plans = simulation.getParameter().getSimulationPlans(); if (plans != null) { - for (AnalysePlan plan : plans) { + for (SimulationPlan plan : plans) { for (String resultName : plan.getNecessaryResult()) { enabledResult.add(resultName); } Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorage.java (from rev 3420, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityStorage.java) =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorage.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorage.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,231 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2011 Ifremer, CodeLutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.datastore; + +import static org.nuiton.i18n.I18n._; + +import java.io.File; +import java.util.List; +import java.util.Map; + +import org.apache.commons.collections.map.ReferenceMap; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import fr.ifremer.isisfish.IsisFish; +import fr.ifremer.isisfish.IsisFishException; +import fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysis; +import fr.ifremer.isisfish.util.Doc; +import fr.ifremer.isisfish.util.Docable; +import fr.ifremer.isisfish.vcs.VCSException; + +/** + * Cette class permet de stocker les fichiers de calculateur de sensibilité. + * <p/> + * Gere les fichiers VCS de type {@link SensitivityAnalysis} (package sensitivityanalysis). + * + * Created: 17 août 2005 11:11:51 CEST + * + * @author chatellier <chatellier at codelutin.com> + * @version $Revision$ + * Last update: $Date$ by : $Author$ + */ +public class SensitivityAnalysisStorage extends JavaSourceStorage { // SensitivityStorage + + /** to use log facility, just put in your code: log.info(\"...\"); */ + private static Log log = LogFactory.getLog(SensitivityAnalysisStorage.class); + + /** Emplacement de stockage des fichiers de sensibilité */ + public final static String SENSITIVITY_ANALYSIS_PATH = "sensitivityanalysis"; + + /** Template freemarker pour les scripts de sensibilité. */ + public static final String SENSITIVITY_ANALYSIS_TEMPLATE = "templates/script/sensitivityanalysis.ftl"; + + /** Cache. */ + protected static Map<String, SensitivityAnalysisStorage> sensitivityCache = new ReferenceMap(); + + /** + * Build new {@link SensitivityAnalysisStorage}. + * + * @param rootSrc repertoire root de stockage des calculateurs de sensibilité. + * @param directory le repertoire ou devrait se trouver le calculateur de sensibilité + * @param name le nom du calculateur de sensibilité + */ + protected SensitivityAnalysisStorage(File rootSrc, File directory, String name) { + super(rootSrc, directory, name); + } + + /** + * Get sensitivity storage directory. + * + * Create directory if not exists. + * + * @return sensitivity storage directory + */ + public static File getSensitivityAnalysisDirectory() { + File result = new File(getContextDatabaseDirectory(), SENSITIVITY_ANALYSIS_PATH); + result.mkdirs(); + return result; + } + + /** + * Get community VCS sensitivity directory. + * + * @return community sensitivity directory + */ + public static File getCommunitySensitivityAnalysisDirectory() { + File result = new File(getCommunityDatabaseDirectory(), SENSITIVITY_ANALYSIS_PATH); + result.mkdirs(); + return result; + } + + /** + * Retourne le nom de tous les calculateurs de sensibilité existant. + * + * @return le nom de tous les calculateurs de sensibilité existans en local + */ + public static List<String> getSensitivityAnalysisNames() { + List<String> result = getStorageNames(getSensitivityAnalysisDirectory()); + result.addAll(getStorageNames(getCommunitySensitivityAnalysisDirectory())); + return result; + } + + /** + * Retourne le storage pour le calculateur demandé. + * + * @param name le nom du calculateur souhaité + * @return Le {@link SensitivityAnalysisStorage} pour le calculateur + */ + public static SensitivityAnalysisStorage getSensitivityAnalysis(String name) { + String cacheName = getContextDatabaseCacheKey(name); + SensitivityAnalysisStorage result = sensitivityCache.get(cacheName); + if (result == null) { + result = new SensitivityAnalysisStorage(getContextDatabaseDirectory(), getSensitivityAnalysisDirectory(), name); + sensitivityCache.put(cacheName, result); + } + return result; + } + + /** + * Retourne le storage pour le calculateur demandé. + * + * @param name le nom du calculateur souhaité + * @return Le {@link SensitivityAnalysisStorage} pour le calculateur + */ + public static SensitivityAnalysisStorage getCommunitySensitivityAnalysis(String name) { + String cacheName = getCommunityDatabaseCacheKey(name); + SensitivityAnalysisStorage result = sensitivityCache.get(cacheName); + if (result == null) { + result = new SensitivityAnalysisStorage(getCommunityDatabaseDirectory(), getCommunitySensitivityAnalysisDirectory(), name); + sensitivityCache.put(cacheName, result); + } + return result; + } + + /** + * Retourne une nouvelle instance du calculateur. Compile le fichier si besoin + * + * @return retourne une nouvelle instance du calculateur + * @throws IsisFishException s'il y a un problème d'instanciation + */ + public SensitivityAnalysis getNewSensitivityAnalysisInstance() throws IsisFishException { + Object result = getNewInstance(); + return (SensitivityAnalysis) result; + } + + /** + * Effectue un chekout VCS sur le répertoire des calculateurs. + * + * @see VersionStorage#checkout(File, String) + * @see #SENSITIVITY_ANALYSIS_PATH + * + * @throws VCSException if an error occurs during checkout + */ + public static void checkout() throws VCSException { + checkout(IsisFish.config.getDatabaseDirectory(), SENSITIVITY_ANALYSIS_PATH); + } + + /** + * Retourne la liste des noms de tous les calculateurs disponibles en local qui + * ne sont pas encore sur le serveur VCS. + * + * @return liste de noms de calculateurs + */ + static public List<String> getNewSensitivityAnalysisNames() { + List<String> result = getSensitivityAnalysisNames(); + result.removeAll(getRemoteSensitivityAnalysisNames()); + return result; + } + + /** + * Retourne la liste des noms de tous les calculateurs disponibles sur le + * serveur VCS + * + * @return la liste des noms de tous les calculateurs disponibles sur le serveur + * VCS. Si le serveur n'est pas disponible la liste retournée est + * vide. + */ + static public List<String> getRemoteSensitivityAnalysisNames() { + File dir = getSensitivityAnalysisDirectory(); + return getRemoteStorageNames(dir); + + } + + /** + * Retourne la liste des noms de tous les calculateurs disponibles sur le + * serveur VCS qui ne sont pas encore en local. + * + * @return liste de noms de regions + * @throws VCSException + */ + static public List<String> getNewRemoteSensitivityAnalysisNames() + throws VCSException { + List<String> result = getRemoteSensitivityAnalysisNames(); + result.removeAll(getSensitivityAnalysisNames()); + return result; + } + + /** + * <b>Be ware this method require to instanciate a AnalysePlan, so + * it would be better to call as often as possible.</b> + * + * @return the descript of the instanciate AnalysePlan + * @see Doc + * @see Docable + */ + @Override + public String getDescription() { + String result = null; + try { + SensitivityAnalysis sensitivityAnalysis = getNewSensitivityAnalysisInstance(); + result = sensitivityAnalysis == null ? null : sensitivityAnalysis.getDescription(); + } catch (Exception e) { + log.warn(_("isisfish.error.not.found.description", this)); + } + return result; + } + +} // SensitivityStorage Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityStorage.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityStorage.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityStorage.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,231 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2011 Ifremer, CodeLutin, Chatellier Eric - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.datastore; - -import static org.nuiton.i18n.I18n._; - -import java.io.File; -import java.util.List; -import java.util.Map; - -import org.apache.commons.collections.map.ReferenceMap; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import fr.ifremer.isisfish.IsisFish; -import fr.ifremer.isisfish.IsisFishException; -import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator; -import fr.ifremer.isisfish.util.Doc; -import fr.ifremer.isisfish.util.Docable; -import fr.ifremer.isisfish.vcs.VCSException; - -/** - * Cette class permet de stocker les fichiers de calculateur de sensibilité. - * <p/> - * Gere les fichiers VCS de type {@link SensitivityCalculator} (package sensitivity). - * - * Created: 17 août 2005 11:11:51 CEST - * - * @author chatellier <chatellier at codelutin.com> - * @version $Revision$ - * Last update: $Date$ by : $Author$ - */ -public class SensitivityStorage extends JavaSourceStorage { // SensitivityStorage - - /** to use log facility, just put in your code: log.info(\"...\"); */ - private static Log log = LogFactory.getLog(SensitivityStorage.class); - - /** Emplacement de stockage des fichiers de sensibilité */ - public final static String SENSITIVITY_PATH = "sensitivity"; - - /** Template freemarker pour les scripts de sensibilité. */ - public static final String SENSIVITY_TEMPLATE = "templates/script/sensitivity.ftl"; - - /** Cache. */ - protected static Map<String, SensitivityStorage> sensitivityCache = new ReferenceMap(); - - /** - * Build new {@link SensitivityStorage}. - * - * @param rootSrc repertoire root de stockage des calculateurs de sensibilité. - * @param directory le repertoire ou devrait se trouver le calculateur de sensibilité - * @param name le nom du calculateur de sensibilité - */ - protected SensitivityStorage(File rootSrc, File directory, String name) { - super(rootSrc, directory, name); - } - - /** - * Get sensitivity storage directory. - * - * Create directory if not exists. - * - * @return sensitivity storage directory - */ - public static File getSensitivityDirectory() { - File result = new File(getContextDatabaseDirectory(), SENSITIVITY_PATH); - result.mkdirs(); - return result; - } - - /** - * Get community VCS sensitivity directory. - * - * @return community sensitivity directory - */ - public static File getCommunitySensitivityDirectory() { - File result = new File(getCommunityDatabaseDirectory(), SENSITIVITY_PATH); - result.mkdirs(); - return result; - } - - /** - * Retourne le nom de tous les calculateurs de sensibilité existant. - * - * @return le nom de tous les calculateurs de sensibilité existans en local - */ - public static List<String> getSensitivityNames() { - List<String> result = getStorageNames(getSensitivityDirectory()); - result.addAll(getStorageNames(getCommunitySensitivityDirectory())); - return result; - } - - /** - * Retourne le storage pour le calculateur demandé. - * - * @param name le nom du calculateur souhaité - * @return Le {@link SensitivityStorage} pour le calculateur - */ - public static SensitivityStorage getSensitivity(String name) { - String cacheName = getContextDatabaseCacheKey(name); - SensitivityStorage result = sensitivityCache.get(cacheName); - if (result == null) { - result = new SensitivityStorage(getContextDatabaseDirectory(), getSensitivityDirectory(), name); - sensitivityCache.put(cacheName, result); - } - return result; - } - - /** - * Retourne le storage pour le calculateur demandé. - * - * @param name le nom du calculateur souhaité - * @return Le {@link SensitivityStorage} pour le calculateur - */ - public static SensitivityStorage getCommunitySensitivity(String name) { - String cacheName = getCommunityDatabaseCacheKey(name); - SensitivityStorage result = sensitivityCache.get(cacheName); - if (result == null) { - result = new SensitivityStorage(getCommunityDatabaseDirectory(), getCommunitySensitivityDirectory(), name); - sensitivityCache.put(cacheName, result); - } - return result; - } - - /** - * Retourne une nouvelle instance du calculateur. Compile le fichier si besoin - * - * @return retourne une nouvelle instance du calculateur - * @throws IsisFishException s'il y a un problème d'instanciation - */ - public SensitivityCalculator getNewSensitivityInstance() throws IsisFishException { - Object result = getNewInstance(); - return (SensitivityCalculator) result; - } - - /** - * Effectue un chekout VCS sur le répertoire des calculateurs. - * - * @see VersionStorage#checkout(File, String) - * @see #SENSITIVITY_PATH - * - * @throws VCSException if an error occurs during checkout - */ - public static void checkout() throws VCSException { - checkout(IsisFish.config.getDatabaseDirectory(), SENSITIVITY_PATH); - } - - /** - * Retourne la liste des noms de tous les calculateurs disponibles en local qui - * ne sont pas encore sur le serveur VCS. - * - * @return liste de noms de calculateurs - */ - static public List<String> getNewSensitivityNames() { - List<String> result = getSensitivityNames(); - result.removeAll(getRemoteSensitivityNames()); - return result; - } - - /** - * Retourne la liste des noms de tous les calculateurs disponibles sur le - * serveur VCS - * - * @return la liste des noms de tous les calculateurs disponibles sur le serveur - * VCS. Si le serveur n'est pas disponible la liste retournée est - * vide. - */ - static public List<String> getRemoteSensitivityNames() { - File dir = getSensitivityDirectory(); - return getRemoteStorageNames(dir); - - } - - /** - * Retourne la liste des noms de tous les calculateurs disponibles sur le - * serveur VCS qui ne sont pas encore en local. - * - * @return liste de noms de regions - * @throws VCSException - */ - static public List<String> getNewRemoteSensitivityNames() - throws VCSException { - List<String> result = getRemoteSensitivityNames(); - result.removeAll(getSensitivityNames()); - return result; - } - - /** - * <b>Be ware this method require to instanciate a AnalysePlan, so - * it would be better to call as often as possible.</b> - * - * @return the descript of the instanciate AnalysePlan - * @see Doc - * @see Docable - */ - @Override - public String getDescription() { - String result = null; - try { - SensitivityCalculator calculator = getNewSensitivityInstance(); - result = calculator == null ? null : calculator.getDescription(); - } catch (Exception e) { - log.warn(_("isisfish.error.not.found.description", this)); - } - return result; - } - -} // SensitivityStorage Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationPlanStorage.java (from rev 3420, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/AnalysePlanStorage.java) =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationPlanStorage.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationPlanStorage.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,224 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2005 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.datastore; + +import static org.nuiton.i18n.I18n._; + +import java.io.File; +import java.util.List; +import java.util.Map; + +import org.apache.commons.collections.map.ReferenceMap; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import fr.ifremer.isisfish.IsisFish; +import fr.ifremer.isisfish.IsisFishException; +import fr.ifremer.isisfish.simulator.SimulationPlan; +import fr.ifremer.isisfish.util.Doc; +import fr.ifremer.isisfish.util.Docable; +import fr.ifremer.isisfish.vcs.VCSException; + +/** + * Class permettant de representer un plan d'analyse. + * Un plan d'analyse est un fichier Java que l'on compile si besoin. + * <p/> + * Gere les fichiers VCS de type {@link SimulationPlan} (package simulationplans) + * + * Created: 17 août 2005 11:11:51 CEST + * + * @author Benjamin POUSSIN <poussin at codelutin.com> + * + * @version $Revision$ + * + * Last update: $Date$ by : $Author$ + */ +public class SimulationPlanStorage extends JavaSourceStorage { // AnalysePlanStorage + + /** to use log facility, just put in your code: log.info(\"...\"); */ + private static Log log = LogFactory.getLog(SimulationPlanStorage.class); + + public final static String SIMULATION_PLAN_PATH = "simulationplans"; + + /** Template freemarker pour les plans d'analyse . */ + public static final String SIMULATION_PLAN_TEMPLATE = "templates/script/simulationplan.ftl"; + + @SuppressWarnings("unchecked") + static private Map<String, SimulationPlanStorage> plansCache = + (Map<String, SimulationPlanStorage>) new ReferenceMap(); + + /** + * Construit un nouveau SimulationPlan storage. + * + * @param rootSrc repertoire root de stockage des plans + * @param directory le repertoire ou devrait se trouver le plan + * @param name le nom du plan + */ + protected SimulationPlanStorage(File rootSrc, File directory, String name) { + super(rootSrc, directory, name); + } + + /** + * Get context (official VCS) simulation plan directory. + * + * @return context simulation plan directory + */ + static public File getSimulationPlanDirectory() { + File result = new File(getContextDatabaseDirectory(), SIMULATION_PLAN_PATH); + result.mkdirs(); + return result; + } + + /** + * Get community VCS simulation plan directory. + * + * @return community simulation plan directory + */ + public static File getCommunitySimulationPlanDirectory() { + File result = new File(getCommunityDatabaseDirectory(), SIMULATION_PLAN_PATH); + result.mkdirs(); + return result; + } + + /** + * Retourne le nom de toutes les plans existantes + * + * @return les noms de tous les plans existant en local + */ + static public List<String> getSimulationPlanNames() { + List<String> result = getStorageNames(getSimulationPlanDirectory()); + result.addAll(getStorageNames(getCommunitySimulationPlanDirectory())); + return result; + } + + /** + * Retourne le storage pour le plan demandé. + * + * @param name le nom du plan souhaité + * @return Le storage pour le plan + */ + static public SimulationPlanStorage getSimulationPlan(String name) { + String cacheName = getContextDatabaseCacheKey(name); + SimulationPlanStorage result = plansCache.get(cacheName); + if (result == null) { + result = new SimulationPlanStorage(getContextDatabaseDirectory(), + getSimulationPlanDirectory(), name); + plansCache.put(cacheName, result); + } + return result; + } + + /** + * Retourne le storage pour le plan demandé. + * + * @param name le nom du plan souhaité + * @return Le storage pour le plan + */ + static public SimulationPlanStorage getCommunitySimulationPlan(String name) { + String cacheName = getCommunityDatabaseCacheKey(name); + SimulationPlanStorage result = plansCache.get(cacheName); + if (result == null) { + result = new SimulationPlanStorage(getCommunityDatabaseDirectory(), + getCommunitySimulationPlanDirectory(), name); + plansCache.put(cacheName, result); + } + return result; + } + + /** + * Retourne une nouvelle instance du plan. Compile le fichier si besoin + * + * @return retourne une nouvelle instance du plan + * @throws IsisFishException s'il y a un probleme d'instanciation + */ + public SimulationPlan getNewSimulationPlanInstance() throws IsisFishException { + Object result = getNewInstance(); + return (SimulationPlan) result; + } + + static public void checkout() throws VCSException { + checkout(IsisFish.config.getDatabaseDirectory(), SIMULATION_PLAN_PATH); + } + + /** + * Retourne la liste des noms de tous les plans disponibles en local qui + * ne sont pas encore sur le serveur VCS. + * + * @return liste de noms de plans + */ + public static List<String> getNewSimulationPlanNames() { + List<String> result = getSimulationPlanNames(); + result.removeAll(getRemoteSimulationPlanNames()); + return result; + } + + /** + * Retourne la liste des noms de tous les plans disponibles sur le + * serveur VCS. + * + * @return la liste des noms de tous les plans disponibles sur le serveur + * VCS. Si le serveur n'est pas disponible la liste retournée est + * vide. + */ + public static List<String> getRemoteSimulationPlanNames() { + File dir = getSimulationPlanDirectory(); + return getRemoteStorageNames(dir); + } + + /** + * Retourne la liste des noms de tous les plans disponibles sur le + * serveur VCS qui ne sont pas encore en local + * + * @return liste de noms de regions + * @throws VCSException + */ + public static List<String> getNewRemoteSimulationPlanNames() throws VCSException { + List<String> result = getRemoteSimulationPlanNames(); + result.removeAll(getSimulationPlanNames()); + return result; + } + + /** + * <b>Be ware this method require to instanciate a AnalysePlan, so + * it would be better to call as often as possible.</b> + * + * @return the descript of the instanciate AnalysePlan + * @see Doc + * @see Docable + */ + public String getDescription() { + String result = null; + try { + SimulationPlan simulationPlan = getNewSimulationPlanInstance(); + result = simulationPlan == null ? null : simulationPlan.getDescription(); + } catch (Exception e) { + log.warn(_("isisfish.error.not.found.description", this)); + } + return result; + } + +} // AnalysePlanStorage + Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/AnalysePlan.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/AnalysePlan.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/AnalysePlan.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2007 - 2010 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin + * Copyright (C) 2007 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -25,8 +25,6 @@ package fr.ifremer.isisfish.simulator; -import fr.ifremer.isisfish.datastore.SimulationStorage; - /** * AnalysePlan.java * @@ -38,55 +36,9 @@ * Last update: $Date$ * by : $Author$ * - * TODO will be renamed to SimulationPlan soon + * @deprecated since 4.0.0.0, use {@link SimulationPlan} instead */ -public interface AnalysePlan { + at Deprecated +public interface AnalysePlan extends SimulationPlan { - /** - * Return plan necessary Results. - * - * @return the necessaryResult name - */ - public String[] getNecessaryResult(); - - /** - * Return plan description. - * - * @return plan description - * @throws Exception - */ - public String getDescription() throws Exception; - - /** - * Use only once before first simulation. - * - * You can modified Param for all simulation or put value in context.values. - * - * @param context plan context - * @throws Exception - */ - public void init(AnalysePlanContext context) throws Exception; - - /** - * Call before each simulation. - * - * @param context plan context - * @param nextSimulation storage used for next simulation - * @return true if we must do next simulation, false to stop plan - * @throws Exception - */ - public boolean beforeSimulation(AnalysePlanContext context, - SimulationStorage nextSimulation) throws Exception; - - /** - * Call after each simulation. - * - * @param context plan context - * @param lastSimulation storage used for simulation - * @return true if we must do next simulation, false to stop plan - * @throws Exception - */ - public boolean afterSimulation(AnalysePlanContext context, - SimulationStorage lastSimulation) throws Exception; - } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/AnalysePlanContext.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/AnalysePlanContext.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/AnalysePlanContext.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2007 - 2010 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin + * Copyright (C) 2007 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -25,11 +25,7 @@ package fr.ifremer.isisfish.simulator; -import java.util.HashMap; -import java.util.Map; -import fr.ifremer.isisfish.datastore.SimulationStorage; - /** * AnalysePlanContext.java * @@ -40,114 +36,18 @@ * * Last update: $Date$ * by : $Author$ + * + * @deprecated since 4.0.0.0, use {@link SimulationPlanContext} instead */ -public class AnalysePlanContext { + at Deprecated +public class AnalysePlanContext extends SimulationPlanContext { - /** Simulation id. */ - protected String id; - - /** Analyse plan number. */ - protected int number = 0; - - /** Simulation parameters. */ - protected SimulationParameter param; - - /** Additionnal context values. */ - protected Map<String, Object> values = new HashMap<String, Object>(); - - public AnalysePlanContext(String id, SimulationParameter param) { - this.id = id; - this.param = param; - } - /** - * Get id. - * - * @return the id + * @param id + * @param param */ - public String getId() { - return id; + public AnalysePlanContext(String id, SimulationParameter param) { + super(id, param); } - /** - * Get current analyze plan simulation count. - * - * Warning, in after simulation, refer to generated simulation count, - * not ended simulation number. - * Depreciated, but no remove this method, it's just to not be used - * by user script. - * - * @return the number - * - * @deprecated use {@code nextSimulation.getParameter().getAnalysePlanNumber()} - */ - public int getNumber() { - return number; - } - - /** - * Must be call when new simulation is generated from plan. - */ - public void incNumber() { - number++; - } - - /** - * Get simulation parameters. - * - * @return simulation parameters - */ - public SimulationParameter getParam() { - return param; - } - - /** - * Get plan context value. - * - * Used in script. - * - * @param key key - * @return value for key. - */ - public Object getValue(String key) { - return this.values.get(key); - } - - /** - * Set plan context value. - * - * Used in script. - * - * @param key key - * @param value value - */ - public void setValue(String key, Object value) { - this.values.put(key, value); - } - - /** - * Get last simulation storage. - * - * Used in script. - * - * @return last simulation storage - */ - public SimulationStorage getLastSimulation() { - SimulationStorage result = getSimulation(getNumber() - 1); - return result; - } - - /** - * Get {@link SimulationStorage} for specified analyse plan number. - * - * @param number number - * @return {@link SimulationStorage} - */ - public SimulationStorage getSimulation(int number) { - SimulationStorage result = null; - if (0 <= number && number <= getNumber()) { - result = SimulationStorage.getSimulation(id + "_" + number); - } - return result; - } } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/AnalysePlanIndependent.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/AnalysePlanIndependent.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/AnalysePlanIndependent.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2007 - 2010 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin + * Copyright (C) 2007 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -37,7 +37,9 @@ * * Last update: $Date: 2007-03-09 15:10:40 +0100 (ven, 09 mar 2007) $ * by : $Author: bpoussin $ + * + * @deprecated since 4.0.0.0, */ -public interface AnalysePlanIndependent extends AnalysePlan { +public interface AnalysePlanIndependent extends SimulationPlanIndependent { } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/ResultManager.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/ResultManager.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/ResultManager.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -142,9 +142,9 @@ } } } - List<AnalysePlan> plans = param.getAnalysePlans(); + List<SimulationPlan> plans = param.getSimulationPlans(); if (plans != null) { - for (AnalysePlan plan : plans) { + for (SimulationPlan plan : plans) { for (String resultName : plan.getNecessaryResult()) { enabledResult.add(resultName); } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2010 Ifremer, Code Lutin, Chatellier Eric + * Copyright (C) 2010 - 2011 Ifremer, Code Lutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -39,7 +39,7 @@ import fr.ifremer.isisfish.entities.Strategy; import fr.ifremer.isisfish.export.SensitivityExport; import fr.ifremer.isisfish.rule.Rule; -import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator; +import fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysis; /** * Contains all parameters for one simulation. @@ -160,11 +160,11 @@ public abstract void setStrategies(List<Strategy> strategies); /** - * Add new analyse plan. + * Add new simulation plan. * - * @param plan analyse plan to add + * @param plan simulation plan to add */ - public abstract void addAnalysePlan(AnalysePlan plan); + public abstract void addSimulationPlan(SimulationPlan plan); /** * Remove a plan. @@ -172,28 +172,28 @@ * @param plan * @return {@code true} if this list contained the specified element */ - public abstract boolean removeAnalysePlan(AnalysePlan plan); + public abstract boolean removeSimulationPlan(SimulationPlan plan); /** - * Get instantiated analyse plan list. + * Get instantiated simulation plan list. * * Default to empty list. * - * @return Returns the plans. + * @return the plans. */ - public abstract List<AnalysePlan> getAnalysePlans(); + public abstract List<SimulationPlan> getSimulationPlans(); /** * Set plans list. * * @param plans plans to set */ - public abstract void setAnalysePlans(List<AnalysePlan> plans); + public abstract void setSimulationPlans(List<SimulationPlan> plans); /** - * Retrun {@code true} if simulation is composed of independant plan only. + * Return {@code true} if simulation is composed of independent plan only. * - * @return {@code true} if all {@link AnalysePlan} are {@link AnalysePlanIndependent} + * @return {@code true} if all {@link SimulationPlan} are {@link SimulationPlanIndependent} */ public abstract boolean isIndependentPlan(); @@ -299,19 +299,19 @@ int numberOfSensitivitySimulation); /** - * Get instanciated sensitivity calculator. + * Get instantiated sensitivity calculator. * * Default to : null. * - * @return the sensitivityCalculator + * @return the sensitivityAnalysis */ - public abstract SensitivityCalculator getSensitivityCalculator(); + public abstract SensitivityAnalysis getSensitivityAnalysis(); /** - * @param sensitivityCalculator the sensitivityCalculator to set + * @param sensitivityAnalysis the sensitivityAnalysis to set */ - public abstract void setSensitivityCalculator( - SensitivityCalculator sensitivityCalculator); + public abstract void setSensitivityAnalysis( + SensitivityAnalysis sensitivityAnalysis); /** * Return loaded sensitivity export. Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterCache.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterCache.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterCache.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -49,7 +49,7 @@ import fr.ifremer.isisfish.entities.Strategy; import fr.ifremer.isisfish.export.SensitivityExport; import fr.ifremer.isisfish.rule.Rule; -import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator; +import fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysis; /** * SimulationParameter soft reference implementation. @@ -261,43 +261,43 @@ } /* - * @see fr.ifremer.isisfish.simulator.SimulationParameter#addAnalysePlan(fr.ifremer.isisfish.simulator.AnalysePlan) + * @see fr.ifremer.isisfish.simulator.SimulationParameter#addSimulationPlan(fr.ifremer.isisfish.simulator.SimulationPlan) */ @Override - public void addAnalysePlan(AnalysePlan plan) { + public void addSimulationPlan(SimulationPlan plan) { SimulationParameter param = getParam(); - param.addAnalysePlan(plan); + param.addSimulationPlan(plan); store(param); } /* - * @see fr.ifremer.isisfish.simulator.SimulationParameter#removeAnalysePlan(fr.ifremer.isisfish.simulator.AnalysePlan) + * @see fr.ifremer.isisfish.simulator.SimulationParameter#removeSimulationPlan(fr.ifremer.isisfish.simulator.SimulationPlan) */ @Override - public boolean removeAnalysePlan(AnalysePlan plan) { + public boolean removeSimulationPlan(SimulationPlan plan) { SimulationParameter param = getParam(); - boolean result = param.removeAnalysePlan(plan); + boolean result = param.removeSimulationPlan(plan); store(param); return result; } /* - * @see fr.ifremer.isisfish.simulator.SimulationParameter#getAnalysePlans() + * @see fr.ifremer.isisfish.simulator.SimulationParameter#getSimulationPlans() */ @Override - public List<AnalysePlan> getAnalysePlans() { + public List<SimulationPlan> getSimulationPlans() { SimulationParameter param = getParam(); - return param.getAnalysePlans(); + return param.getSimulationPlans(); } /* - * @see fr.ifremer.isisfish.simulator.SimulationParameter#setAnalysePlans(java.util.List) + * @see fr.ifremer.isisfish.simulator.SimulationParameter#setSimulationPlans(java.util.List) */ @Override - public void setAnalysePlans(List<AnalysePlan> plans) { + public void setSimulationPlans(List<SimulationPlan> plans) { SimulationParameter param = getParam(); - param.setAnalysePlans(plans); + param.setSimulationPlans(plans); store(param); } @@ -457,22 +457,21 @@ } /* - * @see fr.ifremer.isisfish.simulator.SimulationParameter#getSensitivityCalculator() + * @see fr.ifremer.isisfish.simulator.SimulationParameter#getSensitivityAnalysis() */ @Override - public SensitivityCalculator getSensitivityCalculator() { + public SensitivityAnalysis getSensitivityAnalysis() { SimulationParameter param = getParam(); - return param.getSensitivityCalculator(); + return param.getSensitivityAnalysis(); } /* - * @see fr.ifremer.isisfish.simulator.SimulationParameter#setSensitivityCalculator(fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator) + * @see fr.ifremer.isisfish.simulator.SimulationParameter#setSensitivityAnalysis(fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysis) */ @Override - public void setSensitivityCalculator( - SensitivityCalculator sensitivityCalculator) { + public void setSensitivityAnalysis(SensitivityAnalysis sensitivityAnalysis) { SimulationParameter param = getParam(); - param.setSensitivityCalculator(sensitivityCalculator); + param.setSensitivityAnalysis(sensitivityAnalysis); store(param); } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterImpl.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterImpl.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterImpl.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -54,11 +54,11 @@ import fr.ifremer.isisfish.IsisConfig; import fr.ifremer.isisfish.IsisFishDAOHelper; import fr.ifremer.isisfish.IsisFishException; -import fr.ifremer.isisfish.datastore.AnalysePlanStorage; import fr.ifremer.isisfish.datastore.RegionStorage; import fr.ifremer.isisfish.datastore.RuleStorage; +import fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage; import fr.ifremer.isisfish.datastore.SensitivityExportStorage; -import fr.ifremer.isisfish.datastore.SensitivityStorage; +import fr.ifremer.isisfish.datastore.SimulationPlanStorage; import fr.ifremer.isisfish.datastore.StorageHelper; import fr.ifremer.isisfish.entities.Population; import fr.ifremer.isisfish.entities.PopulationDAO; @@ -68,7 +68,7 @@ import fr.ifremer.isisfish.export.SensitivityExport; import fr.ifremer.isisfish.rule.Rule; import fr.ifremer.isisfish.rule.RuleHelper; -import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator; +import fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysis; /** * Real {@link SimulationParameter} implementation. @@ -127,7 +127,7 @@ protected List<String> extraRules; /** La liste des plans a utiliser pour la simulation. */ - protected List<AnalysePlan> analysePlans; + protected List<SimulationPlan> simulationPlans; /** Ma liste des exports automatique a faire en fin de simulation. */ protected List<String> exportNames; @@ -160,8 +160,8 @@ */ protected Integer numberOfSensitivitySimulation; - /** Export utilisés pour les analyses de sensibilités. */ - protected SensitivityCalculator sensitivityCalculator; + /** Script utilisé pour les analyses de sensibilités. */ + protected SensitivityAnalysis sensitivityAnalysis; /** La liste des resultats qui nous interesse. */ protected Collection<String> resultEnabled; @@ -456,29 +456,29 @@ } /* - * @see fr.ifremer.isisfish.simulator.SimulationParameter#addAnalysePlan(fr.ifremer.isisfish.simulator.AnalysePlan) + * @see fr.ifremer.isisfish.simulator.SimulationParameter#addSimulationPlan(fr.ifremer.isisfish.simulator.SimulationPlan) */ @Override - public void addAnalysePlan(AnalysePlan plan) { - getAnalysePlans().add(plan); + public void addSimulationPlan(SimulationPlan plan) { + getSimulationPlans().add(plan); } /* - * @see fr.ifremer.isisfish.simulator.SimulationParameter#removeAnalysePlan(fr.ifremer.isisfish.simulator.AnalysePlan) + * @see fr.ifremer.isisfish.simulator.SimulationParameter#removeAnalysePlan(fr.ifremer.isisfish.simulator.SimulationPlan) */ @Override - public boolean removeAnalysePlan(AnalysePlan plan) { - return getAnalysePlans().remove(plan); + public boolean removeSimulationPlan(SimulationPlan plan) { + return getSimulationPlans().remove(plan); } /* * @see fr.ifremer.isisfish.simulator.SimulationParameter#getAnalysePlans() */ @Override - public List<AnalysePlan> getAnalysePlans() { - if (analysePlans == null) { + public List<SimulationPlan> getSimulationPlans() { + if (simulationPlans == null) { - analysePlans = new ArrayList<AnalysePlan>(); + simulationPlans = new ArrayList<SimulationPlan>(); if (propertiesParameters != null) { // analyse plan @@ -488,12 +488,12 @@ for (String name : planList) { if (name != null && !"".equals(name)) { try { - AnalysePlan plan = AnalysePlanStorage - .getAnalysePlan(name) - .getNewAnalysePlanInstance(); + SimulationPlan plan = SimulationPlanStorage + .getSimulationPlan(name) + .getNewSimulationPlanInstance(); StorageHelper.populateStorageParams(planIndex++, getRegion().getStorage(), plan, propertiesParameters, "plan"); - analysePlans.add(plan); + simulationPlans.add(plan); } catch (IsisFishException eee) { if (log.isWarnEnabled()) { log.warn("Can't find plan: " + name, eee); @@ -507,15 +507,15 @@ } } } - return this.analysePlans; + return this.simulationPlans; } /* - * @see fr.ifremer.isisfish.simulator.SimulationParameter#setAnalysePlans(java.util.List) + * @see fr.ifremer.isisfish.simulator.SimulationParameter#setSimulationPlans(java.util.List) */ @Override - public void setAnalysePlans(List<AnalysePlan> plans) { - this.analysePlans = plans; + public void setSimulationPlans(List<SimulationPlan> plans) { + this.simulationPlans = plans; } /* @@ -524,8 +524,8 @@ @Override public boolean isIndependentPlan() { boolean result = true; - for (AnalysePlan plan : getAnalysePlans()) { - if (!(plan instanceof AnalysePlanIndependent)) { + for (SimulationPlan plan : getSimulationPlans()) { + if (!(plan instanceof SimulationPlanIndependent)) { result = false; break; } @@ -538,8 +538,8 @@ */ @Override public void clearPlans() { - if (analysePlans != null) { - analysePlans.clear(); + if (simulationPlans != null) { + simulationPlans.clear(); } } @@ -741,42 +741,42 @@ } /* - * @see fr.ifremer.isisfish.simulator.SimulationParameter#getSensitivityCalculator() + * @see fr.ifremer.isisfish.simulator.SimulationParameter#getSensitivityAnalysis() */ @Override - public SensitivityCalculator getSensitivityCalculator() { + public SensitivityAnalysis getSensitivityAnalysis() { - if (sensitivityCalculator == null) { + if (sensitivityAnalysis == null) { if (propertiesParameters != null) { - String calculatorName = propertiesParameters - .getProperty("sensitivitycalculator"); - if (!StringUtils.isEmpty(calculatorName)) { + String analysisName = propertiesParameters + .getProperty("sensitivityanalysis"); + if (!StringUtils.isEmpty(analysisName)) { try { - SensitivityStorage sensitivityStorage = SensitivityStorage.getSensitivity(calculatorName); - sensitivityCalculator = sensitivityStorage.getNewSensitivityInstance(); + SensitivityAnalysisStorage sensitivityStorage = SensitivityAnalysisStorage.getSensitivityAnalysis(analysisName); + sensitivityAnalysis = sensitivityStorage.getNewSensitivityAnalysisInstance(); // 0 = only single sensitivity - StorageHelper.populateStorageParams(0, getRegion().getStorage(), sensitivityCalculator, + StorageHelper.populateStorageParams(0, getRegion().getStorage(), sensitivityAnalysis, propertiesParameters, "sensitivity"); } catch (IsisFishException eee) { - sensitivityCalculator = null; + sensitivityAnalysis = null; if (log.isWarnEnabled()) { - log.warn("Can't find sensitivity: " + sensitivityCalculator, eee); + log.warn("Can't find sensitivity: " + sensitivityAnalysis, eee); } } } } } - return sensitivityCalculator; + return sensitivityAnalysis; } /* - * @see fr.ifremer.isisfish.simulator.SimulationParameter#setSensitivityCalculator(fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator) + * @see fr.ifremer.isisfish.simulator.SimulationParameter#setSensitivityAnalysis(fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysis) */ @Override - public void setSensitivityCalculator( - SensitivityCalculator sensitivityCalculator) { - this.sensitivityCalculator = sensitivityCalculator; + public void setSensitivityAnalysis( + SensitivityAnalysis sensitivityAnalysis) { + this.sensitivityAnalysis = sensitivityAnalysis; } /* @@ -1327,8 +1327,8 @@ if (rules != null) { result.rules = new LinkedList<Rule>(rules); } - if (analysePlans != null) { - result.analysePlans = new LinkedList<AnalysePlan>(analysePlans); + if (simulationPlans != null) { + result.simulationPlans = new LinkedList<SimulationPlan>(simulationPlans); } if (resultEnabled != null) { result.resultEnabled = new LinkedList<String>(resultEnabled); @@ -1346,7 +1346,7 @@ if (sensitivityExports != null) { result.sensitivityExports = new LinkedList<SensitivityExport>(sensitivityExports); } - result.sensitivityCalculator = sensitivityCalculator; + result.sensitivityAnalysis = sensitivityAnalysis; return result; } @@ -1425,11 +1425,11 @@ result.append("\n\n"); // analyse plans - for (AnalysePlan plan : getAnalysePlans()) { + for (SimulationPlan plan : getSimulationPlans()) { String name = RuleStorage.getName(plan); String param = ""; try { - param = AnalysePlanStorage.getParamAsString(plan); + param = SimulationPlanStorage.getParamAsString(plan); } catch (IsisFishException eee) { if (log.isWarnEnabled()) { log.warn("Can't convert plan parameter to string for " @@ -1536,11 +1536,11 @@ } // anaylyse plans - if (analysePlans != null) { + if (simulationPlans != null) { String planList = ""; int planIndex = 0; - for (AnalysePlan plan : getAnalysePlans()) { - planList += AnalysePlanStorage.getName(plan) + ","; + for (SimulationPlan plan : getSimulationPlans()) { + planList += SimulationPlanStorage.getName(plan) + ","; Properties planProp = StorageHelper.getParamsAsProperties(planIndex++, getRegion().getStorage(), plan, "plan"); result.putAll(planProp); @@ -1572,14 +1572,14 @@ .valueOf(getNumberOfSensitivitySimulation())); // calculator name - if (sensitivityCalculator != null) { - String calculatorName = SensitivityStorage - .getName(getSensitivityCalculator()); + if (sensitivityAnalysis != null) { + String calculatorName = SensitivityAnalysisStorage + .getName(getSensitivityAnalysis()); result.setProperty("sensitivitycalculator", calculatorName); // calculator parameter Properties calculatorParams = StorageHelper.getParamsAsProperties(0, - getRegion().getStorage(), getSensitivityCalculator(), "sensitivity"); + getRegion().getStorage(), getSensitivityAnalysis(), "sensitivity"); result.putAll(calculatorParams); } else { if (propertiesParameters != null Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationPlan.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationPlan.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationPlan.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,90 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 Ifremer, Code Lutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.simulator; + +import fr.ifremer.isisfish.datastore.SimulationStorage; + +/** + * Simulation plan. + * + * Replace old {@code AnalysePlan}. + * + * @author poussin + * @version $Revision$ + * + * Last update: $Date$ + * by : $Author$ + */ +public interface SimulationPlan { + + /** + * Return plan necessary Results. + * + * @return the necessaryResult name + */ + public String[] getNecessaryResult(); + + /** + * Return plan description. + * + * @return plan description + * @throws Exception + */ + public String getDescription() throws Exception; + + /** + * Use only once before first simulation. + * + * You can modified Param for all simulation or put value in context.values. + * + * @param context plan context + * @throws Exception + */ + public void init(SimulationPlanContext context) throws Exception; + + /** + * Call before each simulation. + * + * @param context plan context + * @param nextSimulation storage used for next simulation + * @return true if we must do next simulation, false to stop plan + * @throws Exception + */ + public boolean beforeSimulation(SimulationPlanContext context, + SimulationStorage nextSimulation) throws Exception; + + /** + * Call after each simulation. + * + * @param context plan context + * @param lastSimulation storage used for simulation + * @return true if we must do next simulation, false to stop plan + * @throws Exception + */ + public boolean afterSimulation(SimulationPlanContext context, + SimulationStorage lastSimulation) throws Exception; + +} Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationPlan.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationPlanContext.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationPlanContext.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationPlanContext.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,153 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 Ifremer, Code Lutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.simulator; + +import java.util.HashMap; +import java.util.Map; + +import fr.ifremer.isisfish.datastore.SimulationStorage; + +/** + * Simulation plan context.java + * + * Replace old {@code AnalysePlanContext}. + * + * @author poussin + * @version $Revision$ + * + * Last update: $Date$ + * by : $Author$ + */ +public class SimulationPlanContext { + + /** Simulation id. */ + protected String id; + + /** Analyse plan number. */ + protected int number = 0; + + /** Simulation parameters. */ + protected SimulationParameter param; + + /** Additionnal context values. */ + protected Map<String, Object> values = new HashMap<String, Object>(); + + public SimulationPlanContext(String id, SimulationParameter param) { + this.id = id; + this.param = param; + } + + /** + * Get id. + * + * @return the id + */ + public String getId() { + return id; + } + + /** + * Get current analyze plan simulation count. + * + * Warning, in after simulation, refer to generated simulation count, + * not ended simulation number. + * Depreciated, but no remove this method, it's just to not be used + * by user script. + * + * @return the number + * + * @deprecated use {@code nextSimulation.getParameter().getAnalysePlanNumber()} + */ + public int getNumber() { + return number; + } + + /** + * Must be call when new simulation is generated from plan. + */ + public void incNumber() { + number++; + } + + /** + * Get simulation parameters. + * + * @return simulation parameters + */ + public SimulationParameter getParam() { + return param; + } + + /** + * Get plan context value. + * + * Used in script. + * + * @param key key + * @return value for key. + */ + public Object getValue(String key) { + return this.values.get(key); + } + + /** + * Set plan context value. + * + * Used in script. + * + * @param key key + * @param value value + */ + public void setValue(String key, Object value) { + this.values.put(key, value); + } + + /** + * Get last simulation storage. + * + * Used in script. + * + * @return last simulation storage + */ + public SimulationStorage getLastSimulation() { + SimulationStorage result = getSimulation(getNumber() - 1); + return result; + } + + /** + * Get {@link SimulationStorage} for specified analyse plan number. + * + * @param number number + * @return {@link SimulationStorage} + */ + public SimulationStorage getSimulation(int number) { + SimulationStorage result = null; + if (0 <= number && number <= getNumber()) { + result = SimulationStorage.getSimulation(id + "_" + number); + } + return result; + } +} Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationPlanContext.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationPlanIndependent.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationPlanIndependent.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationPlanIndependent.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,41 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 Ifremer, Code Lutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.simulator; + +/** + * Use for SimulationPlan that don't need previous simulation to do next + * simulation. When Simulation use this plan type, Isis can do more than one + * simulation in same time. + * + * @author poussin + * @version $Revision$ + * + * Last update: $Date$ + * by : $Author$ + */ +public interface SimulationPlanIndependent extends SimulationPlan { + +} Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationPlanIndependent.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL 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 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -61,7 +61,7 @@ import fr.ifremer.isisfish.simulator.SimulationParameter; import fr.ifremer.isisfish.simulator.SimulationParameterImpl; import fr.ifremer.isisfish.simulator.launcher.SimulationJob.PostAction; -import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator; +import fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysis; import fr.ifremer.isisfish.simulator.sensitivity.SensitivityException; /** @@ -679,12 +679,11 @@ // et on l'envoie au script d'analyse de sensibilite if (numberFinished == numberOfSimulation) { - SensitivityCalculator sensitivityCalculator = params - .getSensitivityCalculator(); - if (sensitivityCalculator != null) { + SensitivityAnalysis sensitivityAnalysis = params.getSensitivityAnalysis(); + if (sensitivityAnalysis != null) { if (log.isDebugEnabled()) { log.debug("Call analyzeResult on sensitivity script " - + sensitivityCalculator.getClass() + + sensitivityAnalysis.getClass() .getSimpleName()); } try { @@ -696,7 +695,7 @@ .getSensitivityResultsDirectory(), simulationCommonPrefix); // directory must already exists !!! - sensitivityCalculator.analyzeResult( + sensitivityAnalysis.analyzeResult( simulationStorageForAnalyze, masterExportDirectory); } catch (SensitivityException e) { 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 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -68,29 +68,29 @@ import fr.ifremer.isisfish.IsisFish; import fr.ifremer.isisfish.IsisFishRuntimeException; -import fr.ifremer.isisfish.datastore.AnalysePlanStorage; import fr.ifremer.isisfish.datastore.ExportStorage; import fr.ifremer.isisfish.datastore.RegionStorage; import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.datastore.ScriptStorage; +import fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage; import fr.ifremer.isisfish.datastore.SensitivityExportStorage; -import fr.ifremer.isisfish.datastore.SensitivityStorage; +import fr.ifremer.isisfish.datastore.SimulationPlanStorage; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.datastore.SimulatorStorage; import fr.ifremer.isisfish.export.SensitivityExport; import fr.ifremer.isisfish.mexico.MexicoHelper; import fr.ifremer.isisfish.rule.Rule; import fr.ifremer.isisfish.rule.RuleHelper; -import fr.ifremer.isisfish.simulator.AnalysePlan; -import fr.ifremer.isisfish.simulator.AnalysePlanContext; import fr.ifremer.isisfish.simulator.SimulationControl; import fr.ifremer.isisfish.simulator.SimulationException; import fr.ifremer.isisfish.simulator.SimulationParameter; +import fr.ifremer.isisfish.simulator.SimulationPlan; +import fr.ifremer.isisfish.simulator.SimulationPlanContext; import fr.ifremer.isisfish.simulator.sensitivity.DesignPlan; import fr.ifremer.isisfish.simulator.sensitivity.Factor; import fr.ifremer.isisfish.simulator.sensitivity.FactorGroup; import fr.ifremer.isisfish.simulator.sensitivity.Scenario; -import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator; +import fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysis; import fr.ifremer.isisfish.simulator.sensitivity.SensitivityScenarios; import fr.ifremer.isisfish.simulator.sensitivity.domain.EquationContinuousDomain; import fr.ifremer.isisfish.util.CompileHelper; @@ -415,12 +415,12 @@ * @param param les parametres de la simulation * @param launcher le launcher a utiliser pour lancer la simulation * @param priority la priorite de la simulation - * @param sensitivitycalculator l'implementation du calculateur de sensibilite + * @param sensitivityAnalysis l'implementation du calculateur de sensibilite * @param designPlan le design plan qui contient les facteurs */ public void submit(String id, SimulationParameter param, SimulatorLauncher launcher, int priority, - SensitivityCalculator sensitivitycalculator, DesignPlan designPlan) { + SensitivityAnalysis sensitivityAnalysis, DesignPlan designPlan) { // make deep copy, ui, still work with // copy need to be deep for analyse plan to reload @@ -454,11 +454,11 @@ // Sensitivity scenario returned contains same factor references // as input design plan. Factor group are still present - SensitivityScenarios sensitivityScenarios = sensitivitycalculator + SensitivityScenarios sensitivityScenarios = sensitivityAnalysis .compute(designPlan, masterExportDirectory); // ajout des parametres de simulation - localParameters.setSensitivityCalculator(sensitivitycalculator); + localParameters.setSensitivityAnalysis(sensitivityAnalysis); localParameters.setNumberOfSensitivitySimulation(sensitivityScenarios.getScenarios().size()); // on l'ajoute tout de suite a la liste des simulations demandee @@ -806,7 +806,7 @@ Iterator<SimulationJob>, SimulationJob.PostAction { protected SimulationService simulationService; - protected AnalysePlanContext planContext; + protected SimulationPlanContext planContext; protected SimulationJob job; protected SimulationJob nextJob; protected boolean doNext = true; @@ -822,11 +822,11 @@ id = job.getItem().getControl().getId(); control = job.getItem().getControl(); param = job.getItem().getParameter(); - this.planContext = new AnalysePlanContext(control.getId(), param); + this.planContext = new SimulationPlanContext(control.getId(), param); try { // appel de init sur chaque plan - for (AnalysePlan plan : param.getAnalysePlans()) { + for (SimulationPlan plan : param.getSimulationPlans()) { plan.init(planContext); } } catch (Exception eee) { @@ -952,7 +952,7 @@ sim.getParameter().setAnalysePlanNumber(planNumber); // appel de tous les plans pour modifier la simulation - for (AnalysePlan plan : param.getAnalysePlans()) { + for (SimulationPlan plan : param.getSimulationPlans()) { result = result && plan.beforeSimulation(planContext, sim); if (!result) { @@ -1025,9 +1025,9 @@ // doNext = true; // appel de tous les plans pour modifier la simulation - // EC20090716 : use param.getAnalysePlans() instances, - // not sim.getParameters().getAnalysePlans() not sames !!! - for (AnalysePlan plan : param.getAnalysePlans()) { + // EC20090716 : use param.getSimulationPlans() instances, + // not sim.getParameters().getSimulationPlans() not sames !!! + for (SimulationPlan plan : param.getSimulationPlans()) { try { boolean result = plan.afterSimulation(planContext, sim); doNext = doNext && result; @@ -1135,14 +1135,14 @@ } // copie de toutes regles a utiliser - List<AnalysePlan> plans = param.getAnalysePlans(); - for (AnalysePlan plan : plans) { - String name = AnalysePlanStorage.getName(plan); - File planFile = new File(AnalysePlanStorage.getAnalysePlanDirectory(), name + ".java"); + List<SimulationPlan> plans = param.getSimulationPlans(); + for (SimulationPlan plan : plans) { + String name = SimulationPlanStorage.getName(plan); + File planFile = new File(SimulationPlanStorage.getSimulationPlanDirectory(), name + ".java"); if (!planFile.isFile()) { - planFile = new File(AnalysePlanStorage.getCommunityAnalysePlanDirectory(), name + ".java"); + planFile = new File(SimulationPlanStorage.getCommunitySimulationPlanDirectory(), name + ".java"); } - FileUtil.copy(planFile, new File(tmpDirectory, AnalysePlanStorage.ANALYSE_PLAN_PATH + FileUtil.copy(planFile, new File(tmpDirectory, SimulationPlanStorage.SIMULATION_PLAN_PATH + File.separator + name + ".java")); } @@ -1288,12 +1288,12 @@ List<File> fileToCompile = new ArrayList<File>(); String[] modules = { - AnalysePlanStorage.ANALYSE_PLAN_PATH, ExportStorage.EXPORT_PATH, RuleStorage.RULE_PATH, SensitivityExportStorage.SENSITIVITY_EXPORT_PATH, - SensitivityStorage.SENSITIVITY_PATH, + SensitivityAnalysisStorage.SENSITIVITY_ANALYSIS_PATH, ScriptStorage.SCRIPT_PATH, + SimulationPlanStorage.SIMULATION_PLAN_PATH, SimulatorStorage.SIMULATOR_PATH }; Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityAnalysis.java (from rev 3393, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityCalculator.java) =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityAnalysis.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityAnalysis.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,287 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2010 Ifremer, CodeLutin + * %% + * 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.simulator.sensitivity; + +import java.io.File; +import java.io.IOException; +import java.util.Collection; +import java.util.List; + +import javax.swing.Box; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JScrollPane; +import javax.swing.JTextPane; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.j2r.REngine; +import org.nuiton.j2r.RException; +import org.nuiton.j2r.RProxy; +import org.nuiton.util.FileUtil; + +import fr.ifremer.isisfish.datastore.SimulationStorage; +import fr.ifremer.isisfish.export.SensitivityExport; +import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain; +import fr.ifremer.isisfish.simulator.sensitivity.domain.DiscreteDomain; + +public abstract class AbstractSensitivityAnalysis implements + SensitivityAnalysis { + + /** to use log facility, just put in your code: log.info("..."); */ + private static Log log = LogFactory + .getLog(AbstractSensitivityAnalysis.class); + + /** + * Method to create the isis.factors dataframe in R. + * + * @param plan Design plan of the sensitivity analysis + * @param outputdirectory the directory on which we will calculate the + * destination RData file. The RData file will be named directory.RData and + * saved in the directory parent. + * + * @throws SensitivityException if an error occur while talking to R + */ + public void setIsisFactorsR(DesignPlan plan, File outputdirectory) + throws SensitivityException { + + String nomFacteur = "nomFacteur<-c(%s)"; + String factorNames = ""; + String nominal = "Nominal<-c(%s)"; + String nominalValues = ""; + String continu = "Continu<-c(%s)"; + String continuValues = ""; + String binf = "Binf<-c(%s)"; + String binfValues = ""; + String bsup = "Bsup<-c(%s)"; + String bsupValues = ""; + String attribute = "attr(isis.factors,\"%s\")<-\"%s\""; + String isisfactors = "isis.factors<-data.frame(" + + "\"nomFacteur\"=nomFacteur," + + "\"Nominal\"=Nominal," + + "\"Continu\"=Continu," + + "\"Binf\"=Binf," + + "\"Bsup\"=Bsup)"; + + //Create the vectors + List<Factor> factors = plan.getFactors(); + for (int i = 0; i < factors.size(); i++) { + Factor factor = factors.get(i); + if (i != 0) { + factorNames += ","; + nominalValues += ","; + continuValues += ","; + binfValues += ","; + bsupValues += ","; + } + + //Factor names + factorNames += "\"" + factor.getName() + "\""; + + if (factor.getDomain() instanceof ContinuousDomain) { + //Continu values, binf values, bsup values and discrete factors attributes + + nominalValues += "\"" + factor.getNominalValue() + "\""; + + //Continu values + continuValues += "TRUE"; + + //Binf values + + binfValues += ((ContinuousDomain) factor.getDomain()) + .getCalculatorMinBound(); + + //Bsup values + bsupValues += ((ContinuousDomain) factor.getDomain()) + .getCalculatorMaxBound(); + + } else { + nominalValues += factor.getNominalValue(); + + //Continu values + continuValues += "FALSE"; + + //Binf values + binfValues += "0.0"; + + //Bsup values + bsupValues += ((DiscreteDomain) factor.getDomain()).getValues() + .size(); + } + } + + String Rcall; + + + try { + REngine engine = new RProxy(); + + //clear the engine (to be sure it's empty) + engine.clearSession(); + + Rcall = String.format(nomFacteur, factorNames); + engine.voidEval(Rcall); + + Rcall = String.format(nominal, nominalValues); + engine.voidEval(Rcall); + + Rcall = String.format(continu, continuValues); + engine.voidEval(Rcall); + + Rcall = String.format(binf, binfValues); + engine.voidEval(Rcall); + + Rcall = String.format(bsup, bsupValues); + engine.voidEval(Rcall); + + engine.voidEval(isisfactors); + + Rcall = String.format(attribute, "nomModel", "isis-fish-externeR"); + engine.voidEval(Rcall); + + for (Factor factor:factors) { + if (factor.getDomain() instanceof DiscreteDomain) { + String attributeValues = "list("; + Collection<Object> values = ((DiscreteDomain) factor.getDomain()) + .getValues().values(); + for (Object j:values) { + attributeValues += j + ","; + } + attributeValues = attributeValues.substring(0, + attributeValues.length() - 1); + attributeValues += ")"; + + Rcall = String.format(attribute, factor.getName(), + attributeValues); + engine.voidEval(Rcall); + } + } + + //Save the Isis R session + engine.saveRData(outputdirectory.getParentFile(), + outputdirectory.getName()); + + } catch (RException eee) { + if (log.isErrorEnabled()) { + log.error("R evaluation failed", eee); + } + throw new SensitivityException("R evaluation failed", eee); + // Error while retrieving scenario + } + + } + + protected String editRInstruction(String rCall){ + JLabel label = new JLabel( + "Modifier le code R envoyé si vous le souhaitez"); + JTextPane text = new JTextPane(); + text.setText(rCall); + text.setSize(400, 400); + text.setPreferredSize(text.getSize()); + + Box box = Box.createVerticalBox(); + box.add(label); + box.add(new JScrollPane(text)); + + JOptionPane.showMessageDialog(null, box, "R modif", + JOptionPane.QUESTION_MESSAGE); + return text.getText(); + } + + protected void testNoDiscrete(List<Factor> factors) throws SensitivityException{ + for (Factor factor:factors) { + if (factor.getDomain() instanceof DiscreteDomain) { + throw new SensitivityException(factor.getName() + + " has a discrete domain, this is not acceptable for " + + "this method."); + } + } + } + + protected String createImportInstruction( + SensitivityExport export, + List<SimulationStorage> simulationStorages) { + + //the filename to read + String name = export.getExportFilename(); + //the extension to read + String extension = export.getExtensionFilename(); + //the rInstruction + String rInstruction = name + "<-c("; + + //iterate on all the simulations and read the value for each one + for (int l = 0; l < simulationStorages.size(); l++) { + + SimulationStorage simulationStorage = simulationStorages.get(l); + File directory = simulationStorage.getDirectory(); + + String directoryPath = directory.toString() + File.separator + + SimulationStorage.RESULT_EXPORT_DIRECTORY; + + File importFile = new File(directoryPath, name + extension); + + String simulResult=""; + try{ + simulResult = FileUtil.readAsString(importFile); + } catch (IOException ioe) { + log.error ("An error occured trying to read a result file : " + + ioe.getMessage()); + } + + + double simulationResult = Double.valueOf(simulResult); + + if (l < simulationStorages.size() - 1) { + rInstruction += simulationResult + ","; + } else { + rInstruction += simulationResult; + } + } + rInstruction += ")"; + + return rInstruction; + } + + protected void renameObjects(REngine engine, String simulationName) + throws RException { + + String renameIsisSimule = "%s.isis.simule<-isis.simule"; + String renameIsisFactorDistribution = "%s.isis.factor.distribution" + + "<-isis.factor.distribution"; + String renameIsisFactor = "%s.isis.factor<-isis.factors"; + String renameIsisMethodExp = "%s.isis.methodExp<-isis.MethodExp"; + + engine.voidEval(String.format(renameIsisSimule, simulationName)); + + engine.voidEval(String.format(renameIsisFactorDistribution, + simulationName)); + + engine.voidEval(String.format(renameIsisFactor, simulationName)); + + engine.voidEval(String.format(renameIsisMethodExp, simulationName)); + } + +} Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityCalculator.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityCalculator.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityCalculator.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,287 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, CodeLutin - * %% - * 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.simulator.sensitivity; - -import java.io.File; -import java.io.IOException; -import java.util.Collection; -import java.util.List; - -import javax.swing.Box; -import javax.swing.JLabel; -import javax.swing.JOptionPane; -import javax.swing.JScrollPane; -import javax.swing.JTextPane; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.j2r.REngine; -import org.nuiton.j2r.RException; -import org.nuiton.j2r.RProxy; -import org.nuiton.util.FileUtil; - -import fr.ifremer.isisfish.datastore.SimulationStorage; -import fr.ifremer.isisfish.export.SensitivityExport; -import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain; -import fr.ifremer.isisfish.simulator.sensitivity.domain.DiscreteDomain; - -public abstract class AbstractSensitivityCalculator implements - SensitivityCalculator { - - /** to use log facility, just put in your code: log.info("..."); */ - private static Log log = LogFactory - .getLog(AbstractSensitivityCalculator.class); - - /** - * Method to create the isis.factors dataframe in R. - * - * @param plan Design plan of the sensitivity analysis - * @param outputdirectory the directory on which we will calculate the - * destination RData file. The RData file will be named directory.RData and - * saved in the directory parent. - * - * @throws SensitivityException if an error occur while talking to R - */ - public void setIsisFactorsR(DesignPlan plan, File outputdirectory) - throws SensitivityException { - - String nomFacteur = "nomFacteur<-c(%s)"; - String factorNames = ""; - String nominal = "Nominal<-c(%s)"; - String nominalValues = ""; - String continu = "Continu<-c(%s)"; - String continuValues = ""; - String binf = "Binf<-c(%s)"; - String binfValues = ""; - String bsup = "Bsup<-c(%s)"; - String bsupValues = ""; - String attribute = "attr(isis.factors,\"%s\")<-\"%s\""; - String isisfactors = "isis.factors<-data.frame(" + - "\"nomFacteur\"=nomFacteur," + - "\"Nominal\"=Nominal," + - "\"Continu\"=Continu," + - "\"Binf\"=Binf," + - "\"Bsup\"=Bsup)"; - - //Create the vectors - List<Factor> factors = plan.getFactors(); - for (int i = 0; i < factors.size(); i++) { - Factor factor = factors.get(i); - if (i != 0) { - factorNames += ","; - nominalValues += ","; - continuValues += ","; - binfValues += ","; - bsupValues += ","; - } - - //Factor names - factorNames += "\"" + factor.getName() + "\""; - - if (factor.getDomain() instanceof ContinuousDomain) { - //Continu values, binf values, bsup values and discrete factors attributes - - nominalValues += "\"" + factor.getNominalValue() + "\""; - - //Continu values - continuValues += "TRUE"; - - //Binf values - - binfValues += ((ContinuousDomain) factor.getDomain()) - .getCalculatorMinBound(); - - //Bsup values - bsupValues += ((ContinuousDomain) factor.getDomain()) - .getCalculatorMaxBound(); - - } else { - nominalValues += factor.getNominalValue(); - - //Continu values - continuValues += "FALSE"; - - //Binf values - binfValues += "0.0"; - - //Bsup values - bsupValues += ((DiscreteDomain) factor.getDomain()).getValues() - .size(); - } - } - - String Rcall; - - - try { - REngine engine = new RProxy(); - - //clear the engine (to be sure it's empty) - engine.clearSession(); - - Rcall = String.format(nomFacteur, factorNames); - engine.voidEval(Rcall); - - Rcall = String.format(nominal, nominalValues); - engine.voidEval(Rcall); - - Rcall = String.format(continu, continuValues); - engine.voidEval(Rcall); - - Rcall = String.format(binf, binfValues); - engine.voidEval(Rcall); - - Rcall = String.format(bsup, bsupValues); - engine.voidEval(Rcall); - - engine.voidEval(isisfactors); - - Rcall = String.format(attribute, "nomModel", "isis-fish-externeR"); - engine.voidEval(Rcall); - - for (Factor factor:factors) { - if (factor.getDomain() instanceof DiscreteDomain) { - String attributeValues = "list("; - Collection<Object> values = ((DiscreteDomain) factor.getDomain()) - .getValues().values(); - for (Object j:values) { - attributeValues += j + ","; - } - attributeValues = attributeValues.substring(0, - attributeValues.length() - 1); - attributeValues += ")"; - - Rcall = String.format(attribute, factor.getName(), - attributeValues); - engine.voidEval(Rcall); - } - } - - //Save the Isis R session - engine.saveRData(outputdirectory.getParentFile(), - outputdirectory.getName()); - - } catch (RException eee) { - if (log.isErrorEnabled()) { - log.error("R evaluation failed", eee); - } - throw new SensitivityException("R evaluation failed", eee); - // Error while retrieving scenario - } - - } - - protected String editRInstruction(String rCall){ - JLabel label = new JLabel( - "Modifier le code R envoyé si vous le souhaitez"); - JTextPane text = new JTextPane(); - text.setText(rCall); - text.setSize(400, 400); - text.setPreferredSize(text.getSize()); - - Box box = Box.createVerticalBox(); - box.add(label); - box.add(new JScrollPane(text)); - - JOptionPane.showMessageDialog(null, box, "R modif", - JOptionPane.QUESTION_MESSAGE); - return text.getText(); - } - - protected void testNoDiscrete(List<Factor> factors) throws SensitivityException{ - for (Factor factor:factors) { - if (factor.getDomain() instanceof DiscreteDomain) { - throw new SensitivityException(factor.getName() + - " has a discrete domain, this is not acceptable for " + - "this method."); - } - } - } - - protected String createImportInstruction( - SensitivityExport export, - List<SimulationStorage> simulationStorages) { - - //the filename to read - String name = export.getExportFilename(); - //the extension to read - String extension = export.getExtensionFilename(); - //the rInstruction - String rInstruction = name + "<-c("; - - //iterate on all the simulations and read the value for each one - for (int l = 0; l < simulationStorages.size(); l++) { - - SimulationStorage simulationStorage = simulationStorages.get(l); - File directory = simulationStorage.getDirectory(); - - String directoryPath = directory.toString() + File.separator - + SimulationStorage.RESULT_EXPORT_DIRECTORY; - - File importFile = new File(directoryPath, name + extension); - - String simulResult=""; - try{ - simulResult = FileUtil.readAsString(importFile); - } catch (IOException ioe) { - log.error ("An error occured trying to read a result file : " + - ioe.getMessage()); - } - - - double simulationResult = Double.valueOf(simulResult); - - if (l < simulationStorages.size() - 1) { - rInstruction += simulationResult + ","; - } else { - rInstruction += simulationResult; - } - } - rInstruction += ")"; - - return rInstruction; - } - - protected void renameObjects(REngine engine, String simulationName) - throws RException { - - String renameIsisSimule = "%s.isis.simule<-isis.simule"; - String renameIsisFactorDistribution = "%s.isis.factor.distribution" + - "<-isis.factor.distribution"; - String renameIsisFactor = "%s.isis.factor<-isis.factors"; - String renameIsisMethodExp = "%s.isis.methodExp<-isis.MethodExp"; - - engine.voidEval(String.format(renameIsisSimule, simulationName)); - - engine.voidEval(String.format(renameIsisFactorDistribution, - simulationName)); - - engine.voidEval(String.format(renameIsisFactor, simulationName)); - - engine.voidEval(String.format(renameIsisMethodExp, simulationName)); - } - -} Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityAnalysis.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityAnalysis.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityAnalysis.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,95 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2010 Ifremer, CodeLutin + * %% + * 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.simulator.sensitivity; + +import java.io.File; +import java.util.List; + +import fr.ifremer.isisfish.datastore.SimulationStorage; + +/** + * Interface commune à toutes implémentation de calcul de sensibilité. + * + * Les implémentations peuvent contenir des paramètres nommé "param_xx" (pour le + * paramètre xx) qui seront injecté par Isis. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ By : $Author$ + */ +public interface SensitivityAnalysis { + + /** + * Return calculator description. + * + * @return calculator description + */ + 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 outputdirectory master sensitivity export directory + * + * @return un {@link SensitivityScenarios} + * @throws SensitivityException if calculator impl fail to execute + * + * @see DesignPlan + * @see Scenario + * @see SensitivityScenarios + */ + SensitivityScenarios compute(DesignPlan plan, File outputdirectory) + throws SensitivityException; + + /** + * 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 + */ + void analyzeResult(List<SimulationStorage> simulationStorages, + File outputdirectory) throws SensitivityException; +} Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityAnalysis.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL 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 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculator.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2009 - 2010 Ifremer, CodeLutin + * Copyright (C) 2009 - 2011 Ifremer, CodeLutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -25,11 +25,7 @@ package fr.ifremer.isisfish.simulator.sensitivity; -import java.io.File; -import java.util.List; -import fr.ifremer.isisfish.datastore.SimulationStorage; - /** * Interface commune à toutes implémentation de calcul de sensibilité. * @@ -40,56 +36,10 @@ * @version $Revision: 1.0 $ * * Last update : $Date: 19 févr. 2009 $ By : $Author: chatellier $ + * + * @deprecated since 4.0.0.0, use {@link SensitivityCalculator} instead */ -public interface SensitivityCalculator { + at Deprecated +public interface SensitivityCalculator extends SensitivityAnalysis { - /** - * Return calculator description. - * - * @return calculator description - */ - 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 outputdirectory master sensitivity export directory - * - * @return un {@link SensitivityScenarios} - * @throws SensitivityException if calculator impl fail to execute - * - * @see DesignPlan - * @see Scenario - * @see SensitivityScenarios - */ - SensitivityScenarios compute(DesignPlan plan, File outputdirectory) - throws SensitivityException; - - /** - * 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 - */ - void analyzeResult(List<SimulationStorage> simulationStorages, - File outputdirectory) throws SensitivityException; } Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisComboModel.java (from rev 3392, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorComboModel.java) =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisComboModel.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisComboModel.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,109 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.models.sensitivityanalysis; + +import java.util.List; + +import javax.swing.DefaultComboBoxModel; + +/** + * Model pour la liste des calculateurs de sensibilite. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class SensitivityAnalysisComboModel extends DefaultComboBoxModel { + + /** serialVersionUID. */ + private static final long serialVersionUID = -4070846632975105788L; + + /** SensitivityAnalysis names. */ + protected List<String> sensitivityAnalysisNames; + + /** + * Empty constructor. + */ + public SensitivityAnalysisComboModel() { + this(null); + } + + /** + * Constructor with calculator list. + * + * @param sensitivityAnalysisNames sensitivity analysis Names + */ + public SensitivityAnalysisComboModel(List<String> sensitivityAnalysisNames) { + setSensitivityCalculatorNames(sensitivityAnalysisNames); + } + + /** + * Get sensitivity analysis plan names. + * + * @return the sensitivity analysis plan names + */ + public List<String> getSensitivityAnalysisNames() { + return sensitivityAnalysisNames; + } + + /** + * Set sensitivity analysis names. + * + * @param sensitivityAnalysisNames the names to set + */ + public void setSensitivityCalculatorNames(List<String> sensitivityAnalysisNames) { + this.sensitivityAnalysisNames = sensitivityAnalysisNames; + + // default first selected + /* disable default selection + if (!sensitivityAnalysisNames.isEmpty()) { + setSelectedItem(sensitivityAnalysisNames.get(0)); + }*/ + } + + /* + * @see javax.swing.ListModel#getElementAt(int) + */ + @Override + public Object getElementAt(int index) { + return sensitivityAnalysisNames.get(index); + } + + /* + * @see javax.swing.ListModel#getSize() + */ + @Override + public int getSize() { + int size = 0; + + if (sensitivityAnalysisNames != null) { + size = sensitivityAnalysisNames.size(); + } + return size; + } +} Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisComboRenderer.java (from rev 3392, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorComboRenderer.java) =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisComboRenderer.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisComboRenderer.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,100 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2010 Ifremer, Code Lutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.models.sensitivityanalysis; + +import static org.nuiton.i18n.I18n._; + +import java.awt.Component; +import java.util.HashMap; +import java.util.Map; + +import javax.swing.DefaultListCellRenderer; +import javax.swing.JLabel; +import javax.swing.JList; + +import fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage; +import fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysis; +import fr.ifremer.isisfish.ui.util.TooltipHelper; + +/** + * Renderer pour la combo des calculateurs de sensibilités. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class SensitivityAnalysisComboRenderer extends DefaultListCellRenderer { + + /** serialVersionUID. */ + private static final long serialVersionUID = -4070846632975105788L; + + /** Sensitivity cache. */ + protected Map<String, SensitivityAnalysis> sensitivityAnalysisCache; + + /** + * Empty constructor. + */ + public SensitivityAnalysisComboRenderer() { + sensitivityAnalysisCache = new HashMap<String, SensitivityAnalysis>(); + } + + /* + * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean) + */ + @Override + public Component getListCellRendererComponent(JList list, Object value, + int index, boolean isSelected, boolean cellHasFocus) { + + // this must be used to have alterned highlight rows and default + // selection color + JLabel c = (JLabel) super.getListCellRendererComponent(list, value, + index, isSelected, cellHasFocus); + + String sensitivityName = (String) value; + c.setText(sensitivityName); + + // c'est tres couteux d'avoir une instance + // on les met en cache + try { + SensitivityAnalysis plan = sensitivityAnalysisCache.get(sensitivityName); + if (plan == null) { + SensitivityAnalysisStorage storage = SensitivityAnalysisStorage + .getSensitivityAnalysis(sensitivityName); + plan = storage.getNewSensitivityAnalysisInstance(); + sensitivityAnalysisCache.put(sensitivityName, plan); + } + + c.setToolTipText(plan.getDescription()); + } catch (Exception e) { + String errorTooltip = TooltipHelper.getErrorTooltip(_("isisfish.error.compile.fileerror", sensitivityName)); + c.setToolTipText(errorTooltip); + } + + return c; + } +} Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisListModel.java (from rev 3392, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorListModel.java) =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisListModel.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisListModel.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,104 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2010 Ifremer, Code Lutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.models.sensitivityanalysis; + +import java.util.List; + +import javax.swing.AbstractListModel; + +import fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysis; + +/** + * Model pour la liste des instances de calculateurs. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class SensitivityAnalysisListModel extends AbstractListModel { + + /** serialVersionUID. */ + private static final long serialVersionUID = -4070846632975105788L; + + protected List<SensitivityAnalysis> sensitivityAnalysis; + + /** + * Empty constructor. + */ + public SensitivityAnalysisListModel() { + this(null); + } + + /** + * Constructor with list. + * + * @param sensitivityAnalysis analysis list + */ + public SensitivityAnalysisListModel(List<SensitivityAnalysis> sensitivityAnalysis) { + setSensitivityAnalysis(sensitivityAnalysis); + } + + /** + * Get analysis list. + * + * @return the analysis + */ + public List<SensitivityAnalysis> getSensitivityAnalysis() { + return sensitivityAnalysis; + } + + /** + * Set analysis list. + * + * @param sensitivityAnalysis the analysis to set + */ + public void setSensitivityAnalysis(List<SensitivityAnalysis> sensitivityAnalysis) { + this.sensitivityAnalysis = sensitivityAnalysis; + } + + /* + * @see javax.swing.ListModel#getElementAt(int) + */ + @Override + public Object getElementAt(int index) { + return sensitivityAnalysis.get(index); + } + + /* + * @see javax.swing.ListModel#getSize() + */ + @Override + public int getSize() { + int size = 0; + + if (sensitivityAnalysis != null) { + size = sensitivityAnalysis.size(); + } + return size; + } +} Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisListRenderer.java (from rev 3392, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorListRenderer.java) =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisListRenderer.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisListRenderer.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,74 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2010 Ifremer, Code Lutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.models.sensitivityanalysis; + +import java.awt.Component; + +import javax.swing.DefaultListCellRenderer; +import javax.swing.JLabel; +import javax.swing.JList; + +import fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage; +import fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysis; + +/** + * Renderer pour la liste des plans d'analyse. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class SensitivityAnalysisListRenderer extends DefaultListCellRenderer { + + /** serialVersionUID. */ + private static final long serialVersionUID = -4070846632975105788L; + + /* + * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean) + */ + @Override + public Component getListCellRendererComponent(JList list, Object value, + int index, boolean isSelected, boolean cellHasFocus) { + + // this must be used to have alterned highlight rows and default + // selection color + JLabel c = (JLabel) super.getListCellRendererComponent(list, value, + index, isSelected, cellHasFocus); + + SensitivityAnalysis sensitivity = (SensitivityAnalysis) value; + c.setText(SensitivityAnalysisStorage.getName(sensitivity)); + + try { + c.setToolTipText(sensitivity.getDescription()); + } catch (Exception e) { + // can't get exception + } + + return this; + } +} Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableCellEditor.java (from rev 3392, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableCellEditor.java) =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableCellEditor.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableCellEditor.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,78 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.models.sensitivityanalysis; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage; +import fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysis; +import fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor; + +/** + * Specific editor for rule parameters. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class SensitivityAnalysisParametersTableCellEditor extends + ParameterTableCellEditor { + + /** serialVersionUID. */ + private static final long serialVersionUID = 8211639776194497615L; + + protected SensitivityAnalysis sensitivityAnalysis; + + protected List<Class<?>> sensitivityCalculatorParametersTypes; + + /** + * Constructor with calculator parameter. + * + * @param sensitivityAnalysis plan + */ + public SensitivityAnalysisParametersTableCellEditor(SensitivityAnalysis sensitivityAnalysis) { + this.sensitivityAnalysis = sensitivityAnalysis; + sensitivityCalculatorParametersTypes = new ArrayList<Class<?>>(); + //TODO map may be sorted + Map<String, Class<?>> planParametersNamesAndTypes = SensitivityAnalysisStorage + .getParameterNames(sensitivityAnalysis); + for (Class<?> type : planParametersNamesAndTypes.values()) { + sensitivityCalculatorParametersTypes.add(type); + } + } + + /* + * @see fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor#getType(java.lang.Object, int, int) + */ + @Override + protected Class<?> getType(Object value, int row, int column) { + return sensitivityCalculatorParametersTypes.get(row); + } +} Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableCellRenderer.java (from rev 3392, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableCellRenderer.java) =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableCellRenderer.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableCellRenderer.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,83 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2010 Ifremer, Code Lutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.models.sensitivityanalysis; + +import java.awt.Component; + +import javax.swing.JLabel; +import javax.swing.JTable; +import javax.swing.table.DefaultTableCellRenderer; +import javax.swing.table.TableCellRenderer; + +import fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage; +import fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysis; +import fr.ifremer.isisfish.ui.util.TooltipHelper; +import fr.ifremer.isisfish.util.Doc; + +/** + * Specific renderer for calculator parameters. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class SensitivityAnalysisParametersTableCellRenderer extends + DefaultTableCellRenderer implements TableCellRenderer { + + /** serialVersionUID. */ + private static final long serialVersionUID = -1655744662816030649L; + + protected SensitivityAnalysis sensitivityAnalysis; + + public SensitivityAnalysisParametersTableCellRenderer(SensitivityAnalysis sensitivityAnalysis) { + this.sensitivityAnalysis = sensitivityAnalysis; + } + + /* + * @see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int) + */ + @Override + public Component getTableCellRendererComponent(JTable table, Object value, + boolean isSelected, boolean hasFocus, int row, int column) { + + // this must be used to have alterned highlight rows and default + // selection color + JLabel c = (JLabel) super.getTableCellRendererComponent(table, value, + isSelected, hasFocus, row, column); + + String parameterName = (String) value; + c.setText(parameterName); + + Doc doc = SensitivityAnalysisStorage.getParameterDoc(sensitivityAnalysis, parameterName); + String documentation = TooltipHelper.docToString(doc); + c.setToolTipText(documentation); + + return c; + } + +} Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableModel.java (from rev 3392, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableModel.java) =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableModel.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableModel.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,200 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2010 Ifremer, Code Lutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.models.sensitivityanalysis; + +import static org.nuiton.i18n.I18n._; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import javax.swing.table.AbstractTableModel; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import fr.ifremer.isisfish.IsisFishException; +import fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage; +import fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysis; + +/** + * Model de la table de definition de parametre d'un plan d'analyse. + * + * Columns : + * <li>Parameter name</li> + * <li>Parameter value</li> + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class SensitivityAnalysisParametersTableModel extends AbstractTableModel { + + /** Log. */ + private static Log log = LogFactory + .getLog(SensitivityAnalysisParametersTableModel.class); + + /** serialVersionUID. */ + private static final long serialVersionUID = 3169786638868209920L; + + /** Columns names. */ + public final static String[] COLUMN_NAMES = { _("isisfish.common.name"), + _("isisfish.common.value") }; + + protected SensitivityAnalysis sensitivityAnalysis; + + protected List<String> planParametersNames; + + /** + * Constructor with data. + * + * @param sensitivityAnalysis plan to edit parameters + */ + public SensitivityAnalysisParametersTableModel(SensitivityAnalysis sensitivityAnalysis) { + this.sensitivityAnalysis = sensitivityAnalysis; + + //TODO map may be sorted + planParametersNames = new ArrayList<String>(); + Map<String, Class<?>> planParametersNamesAndTypes = SensitivityAnalysisStorage + .getParameterNames(sensitivityAnalysis); + for (String names : planParametersNamesAndTypes.keySet()) { + planParametersNames.add(names); + } + } + + /* + * @see javax.swing.table.TableModel#getColumnCount() + */ + @Override + public int getColumnCount() { + return COLUMN_NAMES.length; + } + + /* + * @see javax.swing.table.TableModel#getRowCount() + */ + @Override + public int getRowCount() { + return planParametersNames.size(); + } + + /* + * @see javax.swing.table.TableModel#getValueAt(int, int) + */ + @Override + public Object getValueAt(int rowIndex, int columnIndex) { + + Object result = null; + + String name = planParametersNames.get(rowIndex); + switch (columnIndex) { + case 0: + result = name; + break; + case 1: + try { + result = SensitivityAnalysisStorage.getParameterValue(sensitivityAnalysis, name); + } catch (IsisFishException e) { + if (log.isErrorEnabled()) { + log.debug("Can't get parameters value", e); + } + } + break; + default: + throw new IndexOutOfBoundsException("No such column " + columnIndex); + } + + return result; + } + + /* + * @see javax.swing.table.TableModel#getColumnClass(int) + */ + @Override + public Class<?> getColumnClass(int columnIndex) { + + Class<?> result = null; + + switch (columnIndex) { + case 0: + result = String.class; + break; + case 1: + result = Object.class; + break; + default: + throw new IndexOutOfBoundsException("No such column " + columnIndex); + } + + return result; + } + + /* + * @see javax.swing.table.TableModel#getColumnName(int) + */ + @Override + public String getColumnName(int columnIndex) { + return COLUMN_NAMES[columnIndex]; + } + + /* + * @see javax.swing.table.TableModel#isCellEditable(int, int) + */ + @Override + public boolean isCellEditable(int rowIndex, int columnIndex) { + return columnIndex > 0; + } + + /* + * @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int) + */ + @Override + public void setValueAt(Object value, int rowIndex, int columnIndex) { + + if (log.isDebugEnabled()) { + log.debug("Cell edition (column " + columnIndex + ") = " + value); + } + + String name = planParametersNames.get(rowIndex); + switch (columnIndex) { + case 1: + try { + SensitivityAnalysisStorage.setParameterValue(sensitivityAnalysis, name, value); + } catch (IsisFishException e) { + if (log.isErrorEnabled()) { + log.error("Can't set parameter value", e); + } + } + break; + default: + throw new IndexOutOfBoundsException("Can't edit column " + + columnIndex); + } + + } +} Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityCalculatorComboModel.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorComboModel.java 2011-06-14 13:21:14 UTC (rev 3392) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityCalculatorComboModel.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,110 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.sensitivity; - -import java.util.List; - -import javax.swing.DefaultComboBoxModel; - -/** - * Model pour la liste des calculateurs de sensibilite. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class SensitivityCalculatorComboModel extends DefaultComboBoxModel { - - /** serialVersionUID. */ - private static final long serialVersionUID = -4070846632975105788L; - - /** SensitivityCalculator names. */ - protected List<String> sensitivityCalculatorNames; - - /** - * Empty constructor. - */ - public SensitivityCalculatorComboModel() { - this(null); - } - - /** - * Constructor with calculator list. - * - * @param sensitivityCalculatorNames sensitivity calculator Names - */ - public SensitivityCalculatorComboModel(List<String> sensitivityCalculatorNames) { - super(); - setSensitivityCalculatorNames(sensitivityCalculatorNames); - } - - /** - * Get analyze plan names. - * - * @return the analyze plan names - */ - public List<String> getSensitivityCalculatorNames() { - return sensitivityCalculatorNames; - } - - /** - * Set sensitivity names. - * - * @param sensitivityCalculatorNames the names to set - */ - public void setSensitivityCalculatorNames(List<String> sensitivityCalculatorNames) { - this.sensitivityCalculatorNames = sensitivityCalculatorNames; - - // default first selected - /* disable default selection - if (!sensitivityCalculatorNames.isEmpty()) { - setSelectedItem(sensitivityCalculatorNames.get(0)); - }*/ - } - - /* - * @see javax.swing.ListModel#getElementAt(int) - */ - @Override - public Object getElementAt(int index) { - return sensitivityCalculatorNames.get(index); - } - - /* - * @see javax.swing.ListModel#getSize() - */ - @Override - public int getSize() { - int size = 0; - - if (sensitivityCalculatorNames != null) { - size = sensitivityCalculatorNames.size(); - } - return size; - } -} Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityCalculatorComboRenderer.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorComboRenderer.java 2011-06-14 13:21:14 UTC (rev 3392) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityCalculatorComboRenderer.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,102 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.sensitivity; - -import static org.nuiton.i18n.I18n._; - -import java.awt.Component; -import java.util.HashMap; -import java.util.Map; - -import javax.swing.DefaultListCellRenderer; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.ListCellRenderer; - -import fr.ifremer.isisfish.datastore.SensitivityStorage; -import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator; -import fr.ifremer.isisfish.ui.util.TooltipHelper; - -/** - * Renderer pour la combo des calculateurs de sensibilités. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class SensitivityCalculatorComboRenderer extends DefaultListCellRenderer implements - ListCellRenderer { - - /** serialVersionUID. */ - private static final long serialVersionUID = -4070846632975105788L; - - /** Sensitivity cache. */ - protected Map<String, SensitivityCalculator> sensitivityCalculatorCache; - - /** - * Empty constructor. - */ - public SensitivityCalculatorComboRenderer() { - sensitivityCalculatorCache = new HashMap<String, SensitivityCalculator>(); - } - - /* - * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean) - */ - @Override - public Component getListCellRendererComponent(JList list, Object value, - int index, boolean isSelected, boolean cellHasFocus) { - - // this must be used to have alterned highlight rows and default - // selection color - JLabel c = (JLabel) super.getListCellRendererComponent(list, value, - index, isSelected, cellHasFocus); - - String sensitivityName = (String) value; - c.setText(sensitivityName); - - // c'est tres couteux d'avoir une instance - // on les met en cache - try { - SensitivityCalculator plan = sensitivityCalculatorCache.get(sensitivityName); - if (plan == null) { - SensitivityStorage storage = SensitivityStorage - .getSensitivity(sensitivityName); - plan = storage.getNewSensitivityInstance(); - sensitivityCalculatorCache.put(sensitivityName, plan); - } - - c.setToolTipText(plan.getDescription()); - } catch (Exception e) { - String errorTooltip = TooltipHelper.getErrorTooltip(_("isisfish.error.compile.fileerror", sensitivityName)); - c.setToolTipText(errorTooltip); - } - - return c; - } -} Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityCalculatorListModel.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorListModel.java 2011-06-14 13:21:14 UTC (rev 3392) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityCalculatorListModel.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,105 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.sensitivity; - -import java.util.List; - -import javax.swing.AbstractListModel; - -import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator; - -/** - * Model pour la liste des instances de calculateurs. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class SensitivityCalculatorListModel extends AbstractListModel { - - /** serialVersionUID. */ - private static final long serialVersionUID = -4070846632975105788L; - - protected List<SensitivityCalculator> sensitivityCalculators; - - /** - * Empty constructor. - */ - public SensitivityCalculatorListModel() { - this(null); - } - - /** - * Constructor with list. - * - * @param sensitivityCalculators calculators - */ - public SensitivityCalculatorListModel(List<SensitivityCalculator> sensitivityCalculators) { - super(); - setSensitivityCalculators(sensitivityCalculators); - } - - /** - * Get calculators list. - * - * @return the calculators - */ - public List<SensitivityCalculator> getSensitivityCalculators() { - return sensitivityCalculators; - } - - /** - * Set calculators list. - * - * @param sensitivityCalculators the calculators to set - */ - public void setSensitivityCalculators(List<SensitivityCalculator> sensitivityCalculators) { - this.sensitivityCalculators = sensitivityCalculators; - } - - /* - * @see javax.swing.ListModel#getElementAt(int) - */ - @Override - public Object getElementAt(int index) { - return sensitivityCalculators.get(index); - } - - /* - * @see javax.swing.ListModel#getSize() - */ - @Override - public int getSize() { - int size = 0; - - if (sensitivityCalculators != null) { - size = sensitivityCalculators.size(); - } - return size; - } -} Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityCalculatorListRenderer.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorListRenderer.java 2011-06-14 13:21:14 UTC (rev 3392) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityCalculatorListRenderer.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,76 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.sensitivity; - -import java.awt.Component; - -import javax.swing.DefaultListCellRenderer; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.ListCellRenderer; - -import fr.ifremer.isisfish.datastore.SensitivityStorage; -import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator; - -/** - * Renderer pour la liste des plans d'analyse. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class SensitivityCalculatorListRenderer extends DefaultListCellRenderer implements - ListCellRenderer { - - /** serialVersionUID. */ - private static final long serialVersionUID = -4070846632975105788L; - - /* - * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean) - */ - @Override - public Component getListCellRendererComponent(JList list, Object value, - int index, boolean isSelected, boolean cellHasFocus) { - - // this must be used to have alterned highlight rows and default - // selection color - JLabel c = (JLabel) super.getListCellRendererComponent(list, value, - index, isSelected, cellHasFocus); - - SensitivityCalculator sensitivity = (SensitivityCalculator) value; - c.setText(SensitivityStorage.getName(sensitivity)); - - try { - c.setToolTipText(sensitivity.getDescription()); - } catch (Exception e) { - // can't get exception - } - - return this; - } -} Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityCalculatorParametersTableCellEditor.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableCellEditor.java 2011-06-14 13:21:14 UTC (rev 3392) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityCalculatorParametersTableCellEditor.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,80 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.sensitivity; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import fr.ifremer.isisfish.datastore.SensitivityStorage; -import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator; -import fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor; - -/** - * Specific editor for rule parameters. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class SensitivityCalculatorParametersTableCellEditor extends - ParameterTableCellEditor { - - /** serialVersionUID. */ - private static final long serialVersionUID = 8211639776194497615L; - - protected SensitivityCalculator sensitivityCalculator; - - protected List<Class<?>> sensitivityCalculatorParametersTypes; - - /** - * Constructor with calculator parameter. - * - * @param sensitivityCalculator plan - */ - public SensitivityCalculatorParametersTableCellEditor(SensitivityCalculator sensitivityCalculator) { - super(); - - this.sensitivityCalculator = sensitivityCalculator; - sensitivityCalculatorParametersTypes = new ArrayList<Class<?>>(); - //TODO map may be sorted - Map<String, Class<?>> planParametersNamesAndTypes = SensitivityStorage - .getParameterNames(sensitivityCalculator); - for (Class<?> type : planParametersNamesAndTypes.values()) { - sensitivityCalculatorParametersTypes.add(type); - } - } - - /* - * @see fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor#getType(java.lang.Object, int, int) - */ - @Override - protected Class<?> getType(Object value, int row, int column) { - return sensitivityCalculatorParametersTypes.get(row); - } -} Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityCalculatorParametersTableCellRenderer.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableCellRenderer.java 2011-06-14 13:21:14 UTC (rev 3392) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityCalculatorParametersTableCellRenderer.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,83 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.sensitivity; - -import java.awt.Component; - -import javax.swing.JLabel; -import javax.swing.JTable; -import javax.swing.table.DefaultTableCellRenderer; -import javax.swing.table.TableCellRenderer; - -import fr.ifremer.isisfish.datastore.SensitivityStorage; -import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator; -import fr.ifremer.isisfish.ui.util.TooltipHelper; -import fr.ifremer.isisfish.util.Doc; - -/** - * Specific renderer for calculator parameters. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class SensitivityCalculatorParametersTableCellRenderer extends - DefaultTableCellRenderer implements TableCellRenderer { - - /** serialVersionUID. */ - private static final long serialVersionUID = -1655744662816030649L; - - protected SensitivityCalculator sensitivityCalculator; - - public SensitivityCalculatorParametersTableCellRenderer(SensitivityCalculator sensitivityCalculator) { - this.sensitivityCalculator = sensitivityCalculator; - } - - /* - * @see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int) - */ - @Override - public Component getTableCellRendererComponent(JTable table, Object value, - boolean isSelected, boolean hasFocus, int row, int column) { - - // this must be used to have alterned highlight rows and default - // selection color - JLabel c = (JLabel) super.getTableCellRendererComponent(table, value, - isSelected, hasFocus, row, column); - - String parameterName = (String) value; - c.setText(parameterName); - - Doc doc = SensitivityStorage.getParameterDoc(sensitivityCalculator, parameterName); - String documentation = TooltipHelper.docToString(doc); - c.setToolTipText(documentation); - - return c; - } - -} Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityCalculatorParametersTableModel.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableModel.java 2011-06-14 13:21:14 UTC (rev 3392) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityCalculatorParametersTableModel.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,201 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.sensitivity; - -import static org.nuiton.i18n.I18n._; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import javax.swing.table.AbstractTableModel; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import fr.ifremer.isisfish.IsisFishException; -import fr.ifremer.isisfish.datastore.SensitivityStorage; -import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator; - -/** - * Model de la table de definition de parametre d'un plan d'analyse. - * - * Columns : - * <li>Parameter name</li> - * <li>Parameter value</li> - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class SensitivityCalculatorParametersTableModel extends AbstractTableModel { - - /** Log. */ - private static Log log = LogFactory - .getLog(SensitivityCalculatorParametersTableModel.class); - - /** serialVersionUID. */ - private static final long serialVersionUID = 3169786638868209920L; - - /** Columns names. */ - public final static String[] COLUMN_NAMES = { _("isisfish.common.name"), - _("isisfish.common.value") }; - - protected SensitivityCalculator sensitivityCalculator; - - protected List<String> planParametersNames; - - /** - * Constructor with data. - * - * @param sensitivityCalculator plan to edit parameters - */ - public SensitivityCalculatorParametersTableModel(SensitivityCalculator sensitivityCalculator) { - super(); - this.sensitivityCalculator = sensitivityCalculator; - - //TODO map may be sorted - planParametersNames = new ArrayList<String>(); - Map<String, Class<?>> planParametersNamesAndTypes = SensitivityStorage - .getParameterNames(sensitivityCalculator); - for (String names : planParametersNamesAndTypes.keySet()) { - planParametersNames.add(names); - } - } - - /* - * @see javax.swing.table.TableModel#getColumnCount() - */ - @Override - public int getColumnCount() { - return COLUMN_NAMES.length; - } - - /* - * @see javax.swing.table.TableModel#getRowCount() - */ - @Override - public int getRowCount() { - return planParametersNames.size(); - } - - /* - * @see javax.swing.table.TableModel#getValueAt(int, int) - */ - @Override - public Object getValueAt(int rowIndex, int columnIndex) { - - Object result = null; - - String name = planParametersNames.get(rowIndex); - switch (columnIndex) { - case 0: - result = name; - break; - case 1: - try { - result = SensitivityStorage.getParameterValue(sensitivityCalculator, name); - } catch (IsisFishException e) { - if (log.isErrorEnabled()) { - log.debug("Can't get parameters value", e); - } - } - break; - default: - throw new IndexOutOfBoundsException("No such column " + columnIndex); - } - - return result; - } - - /* - * @see javax.swing.table.TableModel#getColumnClass(int) - */ - @Override - public Class<?> getColumnClass(int columnIndex) { - - Class<?> result = null; - - switch (columnIndex) { - case 0: - result = String.class; - break; - case 1: - result = Object.class; - break; - default: - throw new IndexOutOfBoundsException("No such column " + columnIndex); - } - - return result; - } - - /* - * @see javax.swing.table.TableModel#getColumnName(int) - */ - @Override - public String getColumnName(int columnIndex) { - return COLUMN_NAMES[columnIndex]; - } - - /* - * @see javax.swing.table.TableModel#isCellEditable(int, int) - */ - @Override - public boolean isCellEditable(int rowIndex, int columnIndex) { - return columnIndex > 0; - } - - /* - * @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int) - */ - @Override - public void setValueAt(Object value, int rowIndex, int columnIndex) { - - if (log.isDebugEnabled()) { - log.debug("Cell edition (column " + columnIndex + ") = " + value); - } - - String name = planParametersNames.get(rowIndex); - switch (columnIndex) { - case 1: - try { - SensitivityStorage.setParameterValue(sensitivityCalculator, name, value); - } catch (IsisFishException e) { - if (log.isErrorEnabled()) { - log.error("Can't set parameter value", e); - } - } - break; - default: - throw new IndexOutOfBoundsException("Can't edit column " - + columnIndex); - } - - } -} Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/AnalyzePlanComboModel.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanComboModel.java 2011-06-14 13:21:14 UTC (rev 3392) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/AnalyzePlanComboModel.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,109 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.analyzeplan; - -import java.util.List; - -import javax.swing.DefaultComboBoxModel; - -/** - * Model pour la liste des plans d'analyse. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class AnalyzePlanComboModel extends DefaultComboBoxModel { - - /** serialVersionUID. */ - private static final long serialVersionUID = -4070846632975105788L; - - /** Analyze plan names. */ - protected List<String> analyzePlanNames; - - /** - * Empty constructor. - */ - public AnalyzePlanComboModel() { - this(null); - } - - /** - * Constructor with rule list. - * - * @param analyzePlanNames analysePlan Names - */ - public AnalyzePlanComboModel(List<String> analyzePlanNames) { - super(); - setAnalyzePlanNames(analyzePlanNames); - } - - /** - * Get analyze plan names. - * - * @return the analyze plan names - */ - public List<String> getAnalyzePlanNames() { - return analyzePlanNames; - } - - /** - * Set analyze plan names. - * - * @param analyzePlanNames the analyze plan names to set - */ - public void setAnalyzePlanNames(List<String> analyzePlanNames) { - this.analyzePlanNames = analyzePlanNames; - - // default first selected - if (!analyzePlanNames.isEmpty()) { - setSelectedItem(analyzePlanNames.get(0)); - } - } - - /* - * @see javax.swing.ListModel#getElementAt(int) - */ - @Override - public Object getElementAt(int index) { - return analyzePlanNames.get(index); - } - - /* - * @see javax.swing.ListModel#getSize() - */ - @Override - public int getSize() { - int size = 0; - - if (analyzePlanNames != null) { - size = analyzePlanNames.size(); - } - return size; - } -} Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/AnalyzePlanComboRenderer.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanComboRenderer.java 2011-06-14 13:21:14 UTC (rev 3392) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/AnalyzePlanComboRenderer.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,102 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.analyzeplan; - -import static org.nuiton.i18n.I18n._; - -import java.awt.Component; -import java.util.HashMap; -import java.util.Map; - -import javax.swing.DefaultListCellRenderer; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.ListCellRenderer; - -import fr.ifremer.isisfish.datastore.AnalysePlanStorage; -import fr.ifremer.isisfish.simulator.AnalysePlan; -import fr.ifremer.isisfish.ui.util.TooltipHelper; - -/** - * Renderer pour la combo des plans d'analyse. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class AnalyzePlanComboRenderer extends DefaultListCellRenderer implements - ListCellRenderer { - - /** serialVersionUID. */ - private static final long serialVersionUID = -4070846632975105788L; - - /** Analyse plan cache. */ - protected Map<String, AnalysePlan> analysePlanCache; - - /** - * Empty constructor. - */ - public AnalyzePlanComboRenderer() { - analysePlanCache = new HashMap<String, AnalysePlan>(); - } - - /* - * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean) - */ - @Override - public Component getListCellRendererComponent(JList list, Object value, - int index, boolean isSelected, boolean cellHasFocus) { - - // this must be used to have alterned highlight rows and default - // selection color - JLabel c = (JLabel) super.getListCellRendererComponent(list, value, - index, isSelected, cellHasFocus); - - String analysePlanName = (String) value; - c.setText(analysePlanName); - - // c'est tres couteux d'avoir une instance - // on les met en cache - try { - AnalysePlan plan = analysePlanCache.get(analysePlanName); - if (plan == null) { - AnalysePlanStorage storage = AnalysePlanStorage - .getAnalysePlan(analysePlanName); - plan = storage.getNewAnalysePlanInstance(); - analysePlanCache.put(analysePlanName, plan); - } - - c.setToolTipText(plan.getDescription()); - } catch (Exception e) { - String errorTooltip = TooltipHelper.getErrorTooltip(_("isisfish.error.compile.fileerror", analysePlanName)); - c.setToolTipText(errorTooltip); - } - - return c; - } -} Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/AnalyzePlanListModel.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanListModel.java 2011-06-14 13:21:14 UTC (rev 3392) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/AnalyzePlanListModel.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,105 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.analyzeplan; - -import java.util.List; - -import javax.swing.AbstractListModel; - -import fr.ifremer.isisfish.simulator.AnalysePlan; - -/** - * Model pour la liste des instances de plans d'analyse. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class AnalyzePlanListModel extends AbstractListModel { - - /** serialVersionUID. */ - private static final long serialVersionUID = -4070846632975105788L; - - protected List<AnalysePlan> plans; - - /** - * Empty constructor. - */ - public AnalyzePlanListModel() { - this(null); - } - - /** - * Constructor with plan list. - * - * @param plans plans - */ - public AnalyzePlanListModel(List<AnalysePlan> plans) { - super(); - setAnalyzePlan(plans); - } - - /** - * Get plans list. - * - * @return the plans - */ - public List<AnalysePlan> getAnalyzePlans() { - return plans; - } - - /** - * Set plans list. - * - * @param plans the plans to set - */ - public void setAnalyzePlan(List<AnalysePlan> plans) { - this.plans = plans; - } - - /* - * @see javax.swing.ListModel#getElementAt(int) - */ - @Override - public Object getElementAt(int index) { - return plans.get(index); - } - - /* - * @see javax.swing.ListModel#getSize() - */ - @Override - public int getSize() { - int size = 0; - - if (plans != null) { - size = plans.size(); - } - return size; - } -} Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/AnalyzePlanListRenderer.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanListRenderer.java 2011-06-14 13:21:14 UTC (rev 3392) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/AnalyzePlanListRenderer.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,76 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.analyzeplan; - -import java.awt.Component; - -import javax.swing.DefaultListCellRenderer; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.ListCellRenderer; - -import fr.ifremer.isisfish.datastore.AnalysePlanStorage; -import fr.ifremer.isisfish.simulator.AnalysePlan; - -/** - * Renderer pour la liste des plans d'analyse. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class AnalyzePlanListRenderer extends DefaultListCellRenderer implements - ListCellRenderer { - - /** serialVersionUID. */ - private static final long serialVersionUID = -4070846632975105788L; - - /* - * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean) - */ - @Override - public Component getListCellRendererComponent(JList list, Object value, - int index, boolean isSelected, boolean cellHasFocus) { - - // this must be used to have alterned highlight rows and default - // selection color - JLabel c = (JLabel) super.getListCellRendererComponent(list, value, - index, isSelected, cellHasFocus); - - AnalysePlan plan = (AnalysePlan) value; - c.setText(AnalysePlanStorage.getName(plan)); - - try { - c.setToolTipText(plan.getDescription()); - } catch (Exception e) { - // can't get exception - } - - return this; - } -} Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/AnalyzePlanParametersTableCellEditor.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanParametersTableCellEditor.java 2011-06-14 13:21:14 UTC (rev 3392) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/AnalyzePlanParametersTableCellEditor.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,80 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.analyzeplan; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import fr.ifremer.isisfish.datastore.AnalysePlanStorage; -import fr.ifremer.isisfish.simulator.AnalysePlan; -import fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor; - -/** - * Specific editor for rule parameters. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class AnalyzePlanParametersTableCellEditor extends - ParameterTableCellEditor { - - /** serialVersionUID. */ - private static final long serialVersionUID = 8211639776194497615L; - - protected AnalysePlan plan; - - protected List<Class<?>> planParametersTypes; - - /** - * Constructor with rule parameter. - * - * @param plan plan - */ - public AnalyzePlanParametersTableCellEditor(AnalysePlan plan) { - super(); - - this.plan = plan; - planParametersTypes = new ArrayList<Class<?>>(); - //TODO map may be sorted - Map<String, Class<?>> planParametersNamesAndTypes = AnalysePlanStorage - .getParameterNames(plan); - for (Class<?> type : planParametersNamesAndTypes.values()) { - planParametersTypes.add(type); - } - } - - /* - * @see fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor#getType(java.lang.Object, int, int) - */ - @Override - protected Class<?> getType(Object value, int row, int column) { - return planParametersTypes.get(row); - } -} Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/AnalyzePlanParametersTableCellRenderer.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanParametersTableCellRenderer.java 2011-06-14 13:21:14 UTC (rev 3392) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/AnalyzePlanParametersTableCellRenderer.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,83 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.analyzeplan; - -import java.awt.Component; - -import javax.swing.JLabel; -import javax.swing.JTable; -import javax.swing.table.DefaultTableCellRenderer; -import javax.swing.table.TableCellRenderer; - -import fr.ifremer.isisfish.datastore.AnalysePlanStorage; -import fr.ifremer.isisfish.simulator.AnalysePlan; -import fr.ifremer.isisfish.ui.util.TooltipHelper; -import fr.ifremer.isisfish.util.Doc; - -/** - * Specific renderer for plan parameters. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class AnalyzePlanParametersTableCellRenderer extends - DefaultTableCellRenderer implements TableCellRenderer { - - /** serialVersionUID. */ - private static final long serialVersionUID = -1655744662816030649L; - - protected AnalysePlan plan; - - public AnalyzePlanParametersTableCellRenderer(AnalysePlan plan) { - this.plan = plan; - } - - /* - * @see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int) - */ - @Override - public Component getTableCellRendererComponent(JTable table, Object value, - boolean isSelected, boolean hasFocus, int row, int column) { - - // this must be used to have alterned highlight rows and default - // selection color - JLabel c = (JLabel) super.getTableCellRendererComponent(table, value, - isSelected, hasFocus, row, column); - - String parameterName = (String) value; - c.setText(parameterName); - - Doc doc = AnalysePlanStorage.getParameterDoc(plan, parameterName); - String documentation = TooltipHelper.docToString(doc); - c.setToolTipText(documentation); - - return c; - } - -} Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/AnalyzePlanParametersTableModel.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanParametersTableModel.java 2011-06-14 13:21:14 UTC (rev 3392) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/AnalyzePlanParametersTableModel.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,201 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.analyzeplan; - -import static org.nuiton.i18n.I18n._; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import javax.swing.table.AbstractTableModel; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import fr.ifremer.isisfish.IsisFishException; -import fr.ifremer.isisfish.datastore.AnalysePlanStorage; -import fr.ifremer.isisfish.simulator.AnalysePlan; - -/** - * Model de la table de definition de parametre d'un plan d'analyse. - * - * Columns : - * <li>Parameter name</li> - * <li>Parameter value</li> - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class AnalyzePlanParametersTableModel extends AbstractTableModel { - - /** Log. */ - private static Log log = LogFactory - .getLog(AnalyzePlanParametersTableModel.class); - - /** serialVersionUID. */ - private static final long serialVersionUID = 3169786638868209920L; - - /** Columns names. */ - public final static String[] COLUMN_NAMES = { _("isisfish.common.name"), - _("isisfish.common.value") }; - - protected AnalysePlan plan; - - protected List<String> planParametersNames; - - /** - * Constructor with data. - * - * @param plan plan to edit parameters - */ - public AnalyzePlanParametersTableModel(AnalysePlan plan) { - super(); - this.plan = plan; - - //TODO map may be sorted - planParametersNames = new ArrayList<String>(); - Map<String, Class<?>> planParametersNamesAndTypes = AnalysePlanStorage - .getParameterNames(plan); - for (String names : planParametersNamesAndTypes.keySet()) { - planParametersNames.add(names); - } - } - - /* - * @see javax.swing.table.TableModel#getColumnCount() - */ - @Override - public int getColumnCount() { - return COLUMN_NAMES.length; - } - - /* - * @see javax.swing.table.TableModel#getRowCount() - */ - @Override - public int getRowCount() { - return planParametersNames.size(); - } - - /* - * @see javax.swing.table.TableModel#getValueAt(int, int) - */ - @Override - public Object getValueAt(int rowIndex, int columnIndex) { - - Object result = null; - - String name = planParametersNames.get(rowIndex); - switch (columnIndex) { - case 0: - result = name; - break; - case 1: - try { - result = AnalysePlanStorage.getParameterValue(plan, name); - } catch (IsisFishException e) { - if (log.isErrorEnabled()) { - log.debug("Can't get parameters value", e); - } - } - break; - default: - throw new IndexOutOfBoundsException("No such column " + columnIndex); - } - - return result; - } - - /* - * @see javax.swing.table.TableModel#getColumnClass(int) - */ - @Override - public Class<?> getColumnClass(int columnIndex) { - - Class<?> result = null; - - switch (columnIndex) { - case 0: - result = String.class; - break; - case 1: - result = Object.class; - break; - default: - throw new IndexOutOfBoundsException("No such column " + columnIndex); - } - - return result; - } - - /* - * @see javax.swing.table.TableModel#getColumnName(int) - */ - @Override - public String getColumnName(int columnIndex) { - return COLUMN_NAMES[columnIndex]; - } - - /* - * @see javax.swing.table.TableModel#isCellEditable(int, int) - */ - @Override - public boolean isCellEditable(int rowIndex, int columnIndex) { - return columnIndex > 0; - } - - /* - * @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int) - */ - @Override - public void setValueAt(Object value, int rowIndex, int columnIndex) { - - if (log.isDebugEnabled()) { - log.debug("Cell edition (column " + columnIndex + ") = " + value); - } - - String name = planParametersNames.get(rowIndex); - switch (columnIndex) { - case 1: - try { - AnalysePlanStorage.setParameterValue(plan, name, value); - } catch (IsisFishException e) { - if (log.isErrorEnabled()) { - log.error("Can't set parameter value", e); - } - } - break; - default: - throw new IndexOutOfBoundsException("Can't edit column " - + columnIndex); - } - - } -} Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanComboModel.java (from rev 3392, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanComboModel.java) =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanComboModel.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanComboModel.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,108 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.models.simulationplan; + +import java.util.List; + +import javax.swing.DefaultComboBoxModel; + +/** + * Model pour la liste des plans d'analyse. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class SimulationPlanComboModel extends DefaultComboBoxModel { + + /** serialVersionUID. */ + private static final long serialVersionUID = -4070846632975105788L; + + /** Analyze plan names. */ + protected List<String> simulationPlanNames; + + /** + * Empty constructor. + */ + public SimulationPlanComboModel() { + this(null); + } + + /** + * Constructor with simulation plans list. + * + * @param simulationPlanNames simulation names + */ + public SimulationPlanComboModel(List<String> simulationPlanNames) { + setSimulationPlanNames(simulationPlanNames); + } + + /** + * Get simulation plan names. + * + * @return the simulation plan names + */ + public List<String> getSimulationPlanNames() { + return simulationPlanNames; + } + + /** + * Set simulation plan names. + * + * @param simulationPlanNames the simulation plan names to set + */ + public void setSimulationPlanNames(List<String> simulationPlanNames) { + this.simulationPlanNames = simulationPlanNames; + + // default first selected + if (!simulationPlanNames.isEmpty()) { + setSelectedItem(simulationPlanNames.get(0)); + } + } + + /* + * @see javax.swing.ListModel#getElementAt(int) + */ + @Override + public Object getElementAt(int index) { + return simulationPlanNames.get(index); + } + + /* + * @see javax.swing.ListModel#getSize() + */ + @Override + public int getSize() { + int size = 0; + + if (simulationPlanNames != null) { + size = simulationPlanNames.size(); + } + return size; + } +} Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanComboRenderer.java (from rev 3393, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanComboRenderer.java) =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanComboRenderer.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanComboRenderer.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,100 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.models.simulationplan; + +import static org.nuiton.i18n.I18n._; + +import java.awt.Component; +import java.util.HashMap; +import java.util.Map; + +import javax.swing.DefaultListCellRenderer; +import javax.swing.JLabel; +import javax.swing.JList; + +import fr.ifremer.isisfish.datastore.SimulationPlanStorage; +import fr.ifremer.isisfish.simulator.SimulationPlan; +import fr.ifremer.isisfish.ui.util.TooltipHelper; + +/** + * Renderer pour la combo des plans d'analyse. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class SimulationPlanComboRenderer extends DefaultListCellRenderer { + + /** serialVersionUID. */ + private static final long serialVersionUID = -4070846632975105788L; + + /** Simulation plan cache. */ + protected Map<String, SimulationPlan> simulationPlanCache; + + /** + * Empty constructor. + */ + public SimulationPlanComboRenderer() { + simulationPlanCache = new HashMap<String, SimulationPlan>(); + } + + /* + * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean) + */ + @Override + public Component getListCellRendererComponent(JList list, Object value, + int index, boolean isSelected, boolean cellHasFocus) { + + // this must be used to have alterned highlight rows and default + // selection color + JLabel c = (JLabel) super.getListCellRendererComponent(list, value, + index, isSelected, cellHasFocus); + + String simulationPlanName = (String) value; + c.setText(simulationPlanName); + + // c'est tres couteux d'avoir une instance + // on les met en cache + try { + SimulationPlan plan = simulationPlanCache.get(simulationPlanName); + if (plan == null) { + SimulationPlanStorage storage = SimulationPlanStorage + .getSimulationPlan(simulationPlanName); + plan = storage.getNewSimulationPlanInstance(); + simulationPlanCache.put(simulationPlanName, plan); + } + + c.setToolTipText(plan.getDescription()); + } catch (Exception e) { + String errorTooltip = TooltipHelper.getErrorTooltip(_("isisfish.error.compile.fileerror", simulationPlanName)); + c.setToolTipText(errorTooltip); + } + + return c; + } +} Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanListModel.java (from rev 3392, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanListModel.java) =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanListModel.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanListModel.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,104 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.models.simulationplan; + +import java.util.List; + +import javax.swing.AbstractListModel; + +import fr.ifremer.isisfish.simulator.SimulationPlan; + +/** + * Model pour la liste des instances de plans d'analyse. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class SimulationPlanListModel extends AbstractListModel { + + /** serialVersionUID. */ + private static final long serialVersionUID = -4070846632975105788L; + + protected List<SimulationPlan> plans; + + /** + * Empty constructor. + */ + public SimulationPlanListModel() { + this(null); + } + + /** + * Constructor with plan list. + * + * @param plans plans + */ + public SimulationPlanListModel(List<SimulationPlan> plans) { + setSimulationPlan(plans); + } + + /** + * Get plans list. + * + * @return the plans + */ + public List<SimulationPlan> getSimulationPlans() { + return plans; + } + + /** + * Set plans list. + * + * @param plans the plans to set + */ + public void setSimulationPlan(List<SimulationPlan> plans) { + this.plans = plans; + } + + /* + * @see javax.swing.ListModel#getElementAt(int) + */ + @Override + public Object getElementAt(int index) { + return plans.get(index); + } + + /* + * @see javax.swing.ListModel#getSize() + */ + @Override + public int getSize() { + int size = 0; + + if (plans != null) { + size = plans.size(); + } + return size; + } +} Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanListRenderer.java (from rev 3392, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanListRenderer.java) =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanListRenderer.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanListRenderer.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,74 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.models.simulationplan; + +import java.awt.Component; + +import javax.swing.DefaultListCellRenderer; +import javax.swing.JLabel; +import javax.swing.JList; + +import fr.ifremer.isisfish.datastore.SimulationPlanStorage; +import fr.ifremer.isisfish.simulator.SimulationPlan; + +/** + * Renderer pour la liste des plans d'analyse. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class SimulationPlanListRenderer extends DefaultListCellRenderer { + + /** serialVersionUID. */ + private static final long serialVersionUID = -4070846632975105788L; + + /* + * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean) + */ + @Override + public Component getListCellRendererComponent(JList list, Object value, + int index, boolean isSelected, boolean cellHasFocus) { + + // this must be used to have alterned highlight rows and default + // selection color + JLabel c = (JLabel) super.getListCellRendererComponent(list, value, + index, isSelected, cellHasFocus); + + SimulationPlan plan = (SimulationPlan) value; + c.setText(SimulationPlanStorage.getName(plan)); + + try { + c.setToolTipText(plan.getDescription()); + } catch (Exception e) { + // can't get exception + } + + return this; + } +} Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableCellEditor.java (from rev 3392, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanParametersTableCellEditor.java) =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableCellEditor.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableCellEditor.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,78 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.models.simulationplan; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import fr.ifremer.isisfish.datastore.SimulationPlanStorage; +import fr.ifremer.isisfish.simulator.SimulationPlan; +import fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor; + +/** + * Specific editor for rule parameters. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class SimulationPlanParametersTableCellEditor extends + ParameterTableCellEditor { + + /** serialVersionUID. */ + private static final long serialVersionUID = 8211639776194497615L; + + protected SimulationPlan plan; + + protected List<Class<?>> planParametersTypes; + + /** + * Constructor with rule parameter. + * + * @param plan plan + */ + public SimulationPlanParametersTableCellEditor(SimulationPlan plan) { + this.plan = plan; + planParametersTypes = new ArrayList<Class<?>>(); + //TODO map may be sorted + Map<String, Class<?>> planParametersNamesAndTypes = SimulationPlanStorage + .getParameterNames(plan); + for (Class<?> type : planParametersNamesAndTypes.values()) { + planParametersTypes.add(type); + } + } + + /* + * @see fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor#getType(java.lang.Object, int, int) + */ + @Override + protected Class<?> getType(Object value, int row, int column) { + return planParametersTypes.get(row); + } +} Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableCellRenderer.java (from rev 3392, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanParametersTableCellRenderer.java) =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableCellRenderer.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableCellRenderer.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,83 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.models.simulationplan; + +import java.awt.Component; + +import javax.swing.JLabel; +import javax.swing.JTable; +import javax.swing.table.DefaultTableCellRenderer; +import javax.swing.table.TableCellRenderer; + +import fr.ifremer.isisfish.datastore.SimulationPlanStorage; +import fr.ifremer.isisfish.simulator.SimulationPlan; +import fr.ifremer.isisfish.ui.util.TooltipHelper; +import fr.ifremer.isisfish.util.Doc; + +/** + * Specific renderer for plan parameters. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class SimulationPlanParametersTableCellRenderer extends + DefaultTableCellRenderer implements TableCellRenderer { + + /** serialVersionUID. */ + private static final long serialVersionUID = -1655744662816030649L; + + protected SimulationPlan plan; + + public SimulationPlanParametersTableCellRenderer(SimulationPlan plan) { + this.plan = plan; + } + + /* + * @see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int) + */ + @Override + public Component getTableCellRendererComponent(JTable table, Object value, + boolean isSelected, boolean hasFocus, int row, int column) { + + // this must be used to have alterned highlight rows and default + // selection color + JLabel c = (JLabel) super.getTableCellRendererComponent(table, value, + isSelected, hasFocus, row, column); + + String parameterName = (String) value; + c.setText(parameterName); + + Doc doc = SimulationPlanStorage.getParameterDoc(plan, parameterName); + String documentation = TooltipHelper.docToString(doc); + c.setToolTipText(documentation); + + return c; + } + +} Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableModel.java (from rev 3392, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanParametersTableModel.java) =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableModel.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableModel.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,200 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.models.simulationplan; + +import static org.nuiton.i18n.I18n._; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import javax.swing.table.AbstractTableModel; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import fr.ifremer.isisfish.IsisFishException; +import fr.ifremer.isisfish.datastore.SimulationPlanStorage; +import fr.ifremer.isisfish.simulator.SimulationPlan; + +/** + * Model de la table de definition de parametre d'un plan de simulation. + * + * Columns : + * <li>Parameter name</li> + * <li>Parameter value</li> + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class SimulationPlanParametersTableModel extends AbstractTableModel { + + /** Log. */ + private static Log log = LogFactory + .getLog(SimulationPlanParametersTableModel.class); + + /** serialVersionUID. */ + private static final long serialVersionUID = 3169786638868209920L; + + /** Columns names. */ + public final static String[] COLUMN_NAMES = { _("isisfish.common.name"), + _("isisfish.common.value") }; + + protected SimulationPlan plan; + + protected List<String> planParametersNames; + + /** + * Constructor with data. + * + * @param plan plan to edit parameters + */ + public SimulationPlanParametersTableModel(SimulationPlan plan) { + this.plan = plan; + + //TODO map may be sorted + planParametersNames = new ArrayList<String>(); + Map<String, Class<?>> planParametersNamesAndTypes = SimulationPlanStorage + .getParameterNames(plan); + for (String names : planParametersNamesAndTypes.keySet()) { + planParametersNames.add(names); + } + } + + /* + * @see javax.swing.table.TableModel#getColumnCount() + */ + @Override + public int getColumnCount() { + return COLUMN_NAMES.length; + } + + /* + * @see javax.swing.table.TableModel#getRowCount() + */ + @Override + public int getRowCount() { + return planParametersNames.size(); + } + + /* + * @see javax.swing.table.TableModel#getValueAt(int, int) + */ + @Override + public Object getValueAt(int rowIndex, int columnIndex) { + + Object result = null; + + String name = planParametersNames.get(rowIndex); + switch (columnIndex) { + case 0: + result = name; + break; + case 1: + try { + result = SimulationPlanStorage.getParameterValue(plan, name); + } catch (IsisFishException e) { + if (log.isErrorEnabled()) { + log.debug("Can't get parameters value", e); + } + } + break; + default: + throw new IndexOutOfBoundsException("No such column " + columnIndex); + } + + return result; + } + + /* + * @see javax.swing.table.TableModel#getColumnClass(int) + */ + @Override + public Class<?> getColumnClass(int columnIndex) { + + Class<?> result = null; + + switch (columnIndex) { + case 0: + result = String.class; + break; + case 1: + result = Object.class; + break; + default: + throw new IndexOutOfBoundsException("No such column " + columnIndex); + } + + return result; + } + + /* + * @see javax.swing.table.TableModel#getColumnName(int) + */ + @Override + public String getColumnName(int columnIndex) { + return COLUMN_NAMES[columnIndex]; + } + + /* + * @see javax.swing.table.TableModel#isCellEditable(int, int) + */ + @Override + public boolean isCellEditable(int rowIndex, int columnIndex) { + return columnIndex > 0; + } + + /* + * @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int) + */ + @Override + public void setValueAt(Object value, int rowIndex, int columnIndex) { + + if (log.isDebugEnabled()) { + log.debug("Cell edition (column " + columnIndex + ") = " + value); + } + + String name = planParametersNames.get(rowIndex); + switch (columnIndex) { + case 1: + try { + SimulationPlanStorage.setParameterValue(plan, name, value); + } catch (IsisFishException e) { + if (log.isErrorEnabled()) { + log.error("Can't set parameter value", e); + } + } + break; + default: + throw new IndexOutOfBoundsException("Can't edit column " + + columnIndex); + } + + } +} Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -65,7 +65,7 @@ import fr.ifremer.isisfish.IsisFish; import fr.ifremer.isisfish.IsisFishRuntimeException; -import fr.ifremer.isisfish.datastore.AnalysePlanStorage; +import fr.ifremer.isisfish.datastore.SimulationPlanStorage; import fr.ifremer.isisfish.datastore.CodeSourceStorage; import fr.ifremer.isisfish.datastore.ExportStorage; import fr.ifremer.isisfish.datastore.FormuleStorage; @@ -73,7 +73,7 @@ import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.datastore.ScriptStorage; import fr.ifremer.isisfish.datastore.SensitivityExportStorage; -import fr.ifremer.isisfish.datastore.SensitivityStorage; +import fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage; import fr.ifremer.isisfish.datastore.SimulatorStorage; import fr.ifremer.isisfish.equation.Language; import fr.ifremer.isisfish.ui.WelcomePanelUI; @@ -291,8 +291,8 @@ script = FormuleStorage.createFormule(category, realFilename, Language.JAVA); break; - case AnalysePlan: - script = AnalysePlanStorage.getAnalysePlan(fileName); + case SimulationPlan: + script = SimulationPlanStorage.getSimulationPlan(fileName); break; case Export: script = ExportStorage.getExport(fileName); @@ -307,7 +307,7 @@ script = SimulatorStorage.getSimulator(fileName); break; case Sensitivity: - script = SensitivityStorage.getSensitivity(fileName); + script = SensitivityAnalysisStorage.getSensitivityAnalysis(fileName); break; case SensitivityExport: script = SensitivityExportStorage @@ -439,8 +439,8 @@ case Rule: script = RuleStorage.getRule(file.getName()); break; - case AnalysePlan: - script = AnalysePlanStorage.getAnalysePlan(file.getName()); + case SimulationPlan: + script = SimulationPlanStorage.getSimulationPlan(file.getName()); break; case Export: script = ExportStorage.getExport(file.getName()); @@ -452,7 +452,7 @@ script = SimulatorStorage.getSimulator(file.getName()); break; case Sensitivity: - script = SensitivityStorage.getSensitivity(file.getName()); + script = SensitivityAnalysisStorage.getSensitivityAnalysis(file.getName()); break; case SensitivityExport: script = SensitivityExportStorage.getSensitivityExport(file.getName()); @@ -461,7 +461,7 @@ script = RuleStorage.getCommunityRule(file.getName()); break; case CommunityAnalysePlan: - script = AnalysePlanStorage.getCommunityAnalysePlan(file.getName()); + script = SimulationPlanStorage.getCommunitySimulationPlan(file.getName()); break; case CommunityExport: script = ExportStorage.getCommunityExport(file.getName()); @@ -473,7 +473,7 @@ script = SimulatorStorage.getCommunitySimulator(file.getName()); break; case CommunitySensitivity: - script = SensitivityStorage.getCommunitySensitivity(file.getName()); + script = SensitivityAnalysisStorage.getCommunitySensitivityAnalysis(file.getName()); break; case CommunitySensitivityExport: script = SensitivityExportStorage.getCommunitySensitivityExport(file.getName()); @@ -1088,9 +1088,9 @@ /** enum to encapsulate a script module */ protected enum ScriptMapping { - AnalysePlan( - AnalysePlanStorage.getAnalysePlanDirectory(), - AnalysePlanStorage.ANALYSE_PLAN_TEMPLATE, true), + SimulationPlan( + SimulationPlanStorage.getSimulationPlanDirectory(), + SimulationPlanStorage.SIMULATION_PLAN_TEMPLATE, true), Export( ExportStorage.getExportDirectory(), ExportStorage.EXPORT_TEMPLATE, true), @@ -1101,8 +1101,8 @@ ScriptStorage.getScriptDirectory(), ScriptStorage.SCRIPT_TEMPLATE, true), Sensitivity( - SensitivityStorage.getSensitivityDirectory(), - SensitivityStorage.SENSIVITY_TEMPLATE, true), + SensitivityAnalysisStorage.getSensitivityAnalysisDirectory(), + SensitivityAnalysisStorage.SENSITIVITY_ANALYSIS_TEMPLATE, true), SensitivityExport( SensitivityExportStorage.getSensitivityExportDirectory(), SensitivityExportStorage.SENSITIVITY_EXPORT_TEMPLATE, true), @@ -1114,8 +1114,8 @@ FormuleStorage.FORMULE_TEMPLATE, true), CommunityAnalysePlan( - AnalysePlanStorage.getCommunityAnalysePlanDirectory(), - AnalysePlanStorage.ANALYSE_PLAN_TEMPLATE), + SimulationPlanStorage.getCommunitySimulationPlanDirectory(), + SimulationPlanStorage.SIMULATION_PLAN_TEMPLATE), CommunityExport( ExportStorage.getCommunityExportDirectory(), ExportStorage.EXPORT_TEMPLATE), @@ -1126,8 +1126,8 @@ ScriptStorage.getCommunityScriptDirectory(), ScriptStorage.SCRIPT_TEMPLATE), CommunitySensitivity( - SensitivityStorage.getCommunitySensitivityDirectory(), - SensitivityStorage.SENSIVITY_TEMPLATE), + SensitivityAnalysisStorage.getCommunitySensitivityAnalysisDirectory(), + SensitivityAnalysisStorage.SENSITIVITY_ANALYSIS_TEMPLATE), CommunitySensitivityExport( SensitivityExportStorage.getCommunitySensitivityExportDirectory(), SensitivityExportStorage.SENSITIVITY_EXPORT_TEMPLATE), Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptUI.jaxx 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptUI.jaxx 2011-07-07 14:33:45 UTC (rev 3436) @@ -54,7 +54,7 @@ <JMenuItem id="miNewRule" text="isisfish.script.menu.txtNewRule" onActionPerformed='getScriptAction().newScript(ScriptAction.ScriptMapping.Rule)' icon="script.png" /> <JMenuItem id="miNewAnalysePlan" text="isisfish.script.menu.txtNewAnalysePlan" - onActionPerformed='getScriptAction().newScript(ScriptAction.ScriptMapping.AnalysePlan)' icon="script.png" /> + onActionPerformed='getScriptAction().newScript(ScriptAction.ScriptMapping.SimulationPlan)' icon="script.png" /> <JMenuItem id="miNewSensitivity" text="isisfish.script.menu.txtNewSensitivity" onActionPerformed='getScriptAction().newScript(ScriptAction.ScriptMapping.Sensitivity)' icon="script.png" /> <JMenuItem id="miNewSensitivityExport" text="isisfish.script.menu.txtNewSensitivityExport" Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/model/ScriptTreeModel.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/model/ScriptTreeModel.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/model/ScriptTreeModel.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -41,13 +41,13 @@ import org.jdesktop.swingx.tree.TreeModelSupport; import fr.ifremer.isisfish.IsisFish; -import fr.ifremer.isisfish.datastore.AnalysePlanStorage; +import fr.ifremer.isisfish.datastore.SimulationPlanStorage; import fr.ifremer.isisfish.datastore.ExportStorage; import fr.ifremer.isisfish.datastore.FormuleStorage; import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.datastore.ScriptStorage; import fr.ifremer.isisfish.datastore.SensitivityExportStorage; -import fr.ifremer.isisfish.datastore.SensitivityStorage; +import fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage; import fr.ifremer.isisfish.datastore.SimulatorStorage; import fr.ifremer.isisfish.vcs.VCS; @@ -93,23 +93,23 @@ rootFiles = new HashMap<VCS, List<File>>(); List<File> offFiles = new ArrayList<File>(); - offFiles.add(AnalysePlanStorage.getAnalysePlanDirectory()); + offFiles.add(SimulationPlanStorage.getSimulationPlanDirectory()); offFiles.add(ExportStorage.getExportDirectory()); offFiles.add(FormuleStorage.getFormuleDirectory()); offFiles.add(RuleStorage.getRuleDirectory()); offFiles.add(ScriptStorage.getScriptDirectory()); offFiles.add(SensitivityExportStorage.getSensitivityExportDirectory()); - offFiles.add(SensitivityStorage.getSensitivityDirectory()); + offFiles.add(SensitivityAnalysisStorage.getSensitivityAnalysisDirectory()); offFiles.add(SimulatorStorage.getSimulatorDirectory()); List<File> comFiles = new ArrayList<File>(); - comFiles.add(AnalysePlanStorage.getCommunityAnalysePlanDirectory()); + comFiles.add(SimulationPlanStorage.getCommunitySimulationPlanDirectory()); comFiles.add(ExportStorage.getCommunityExportDirectory()); comFiles.add(FormuleStorage.getCommunityFormuleDirectory()); comFiles.add(RuleStorage.getCommunityRuleDirectory()); comFiles.add(ScriptStorage.getCommunityScriptDirectory()); comFiles.add(SensitivityExportStorage.getCommunitySensitivityExportDirectory()); - comFiles.add(SensitivityStorage.getCommunitySensitivityDirectory()); + comFiles.add(SensitivityAnalysisStorage.getCommunitySensitivityAnalysisDirectory()); comFiles.add(SimulatorStorage.getCommunitySimulatorDirectory()); rootFiles.put(IsisFish.vcs, offFiles); Modified: 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 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx 2011-07-07 14:33:45 UTC (rev 3436) @@ -31,7 +31,7 @@ fr.ifremer.isisfish.export.SensitivityExport fr.ifremer.isisfish.simulator.sensitivity.Domain fr.ifremer.isisfish.simulator.sensitivity.Factor - fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator + fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysis fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain fr.ifremer.isisfish.ui.models.common.StringListModel fr.ifremer.isisfish.ui.models.sensitivityexport.SensitivityExportListModel @@ -40,85 +40,82 @@ fr.ifremer.isisfish.ui.models.sensitivityexport.SensitivityExportParametersTableCellEditor fr.ifremer.isisfish.ui.models.sensitivityexport.SensitivityExportParametersTableCellRenderer fr.ifremer.isisfish.ui.models.sensitivityexport.SensitivityExportParametersTableModel - fr.ifremer.isisfish.ui.models.sensitivity.SensitivityCalculatorComboModel - fr.ifremer.isisfish.ui.models.sensitivity.SensitivityCalculatorComboRenderer - fr.ifremer.isisfish.ui.models.sensitivity.SensitivityCalculatorListModel - fr.ifremer.isisfish.ui.models.sensitivity.SensitivityCalculatorListRenderer - fr.ifremer.isisfish.ui.models.sensitivity.SensitivityCalculatorParametersTableCellEditor - fr.ifremer.isisfish.ui.models.sensitivity.SensitivityCalculatorParametersTableCellRenderer - fr.ifremer.isisfish.ui.models.sensitivity.SensitivityCalculatorParametersTableModel + fr.ifremer.isisfish.ui.models.sensitivityanalysis.SensitivityAnalysisComboModel + fr.ifremer.isisfish.ui.models.sensitivityanalysis.SensitivityAnalysisComboRenderer + fr.ifremer.isisfish.ui.models.sensitivityanalysis.SensitivityAnalysisListModel + fr.ifremer.isisfish.ui.models.sensitivityanalysis.SensitivityAnalysisListRenderer + fr.ifremer.isisfish.ui.models.sensitivityanalysis.SensitivityAnalysisParametersTableCellEditor + fr.ifremer.isisfish.ui.models.sensitivityanalysis.SensitivityAnalysisParametersTableCellRenderer + fr.ifremer.isisfish.ui.models.sensitivityanalysis.SensitivityAnalysisParametersTableModel + fr.ifremer.isisfish.ui.sensitivity.model.FactorCardinalityTableModel fr.ifremer.isisfish.ui.simulator.SimulAction - </import> + <script><![CDATA[ - - - import fr.ifremer.isisfish.ui.sensitivity.model.FactorCardinalityTableModel; - protected SimulAction getSimulAction() { return getContextValue(SimulAction.class); } - public ComboBoxModel getSensitivityCalculatorModel() { - java.util.List<String> sensitivityNames = getSimulAction().getSensitivityNames(); - SensitivityCalculatorComboModel model = new SensitivityCalculatorComboModel(sensitivityNames); + public ComboBoxModel getSensitivityAnalysisModel() { + java.util.List<String> sensitivityNames = getSimulAction().getSensitivityAnalysisNames(); + SensitivityAnalysisComboModel model = new SensitivityAnalysisComboModel(sensitivityNames); return model; } /** - * Auto select calculator in JComboBox - * with calculator selected in SimulAction. + * Auto select analysis in JComboBox + * with analysis selected in SimulAction. * * Used by "reloadOldSimulation" operation. */ - public void refreshSelectedSensitivityCalculator() { - SensitivityCalculator calculator = getSimulAction().getSensitivityCalculator(); - if (calculator != null) { + public void refreshSelectedSensitivityAnalysis() { + SensitivityAnalysis sensitivityAnalysis = getSimulAction().getSensitivityAnalysis(); + if (sensitivityAnalysis != null) { if (log.isDebugEnabled()) { - log.debug("Refreshing calculator list"); + log.debug("Refreshing sensitivity analysis list"); } // TODO it's not getSimpleName() here ! - fieldSensitivityCalculatorSelect.setSelectedItem(calculator.getClass().getSimpleName()); + fieldSensitivityAnalysisSelect.setSelectedItem(sensitivityAnalysis.getClass().getSimpleName()); } } - protected void sensCalculatorChanged() { + protected void sensitivityAnalysisChanged() { - String sensitivityName = (String)fieldSensitivityCalculatorSelect.getSelectedItem(); + String sensitivityName = (String)fieldSensitivityAnalysisSelect.getSelectedItem(); - // when calculator is changed by refreshSelectedSensitivityCalculator - // this event is thrown by build a new Calculator instance + // when analysis is changed by refreshSelectedSensitivityAnalysis + // this event is thrown by build a new Analysis instance // and parameter are lost // fix it with a small class name test - SensitivityCalculator sensivitityCalculator = getSimulAction().getSensitivityCalculator(); - if (sensivitityCalculator != null && sensivitityCalculator.getClass().getSimpleName().equals(sensitivityName)) { - sensivitityCalculator = getSimulAction().getSensitivityCalculator(); + SensitivityAnalysis sensitivityAnalysis = getSimulAction().getSensitivityAnalysis(); + if (sensitivityAnalysis != null && sensitivityAnalysis.getClass().getSimpleName().equals(sensitivityName)) { + sensitivityAnalysis = getSimulAction().getSensitivityAnalysis(); } else { - sensivitityCalculator = getSimulAction().getSensivitityCalculatorInstance(sensitivityName); + sensitivityAnalysis = getSimulAction().getSensitivityAnalysisInstance(sensitivityName); } - // can be null for example if calculator can't be compiled - if (sensivitityCalculator != null) { - getSimulAction().setSensitivityCalculator(sensivitityCalculator); + // can be null for example if analysis can't be compiled + if (sensitivityAnalysis != null) { + getSimulAction().setSensitivityAnalysis(sensitivityAnalysis); CardLayout factorPanelLayout = (CardLayout)factorCardinalityPanel.getLayout(); - if (sensivitityCalculator.canManageCardinality()) { + if (sensitivityAnalysis.canManageCardinality()) { factorPanelLayout.show(factorCardinalityPanel, "factorCardinalitySupported"); } else { factorPanelLayout.show(factorCardinalityPanel, "factorCardinalityNotSupported"); } // update model - SensitivityCalculatorParametersTableModel parametersTableModel = new SensitivityCalculatorParametersTableModel(sensivitityCalculator); - simulSensitivityCalculatorParam.setModel(parametersTableModel); - simulSensitivityCalculatorParam.getColumnModel().getColumn(0).setCellRenderer(new SensitivityCalculatorParametersTableCellRenderer(sensivitityCalculator)); - simulSensitivityCalculatorParam.getColumnModel().getColumn(1).setCellEditor(new SensitivityCalculatorParametersTableCellEditor(sensivitityCalculator)); + SensitivityAnalysisParametersTableModel parametersTableModel = new SensitivityAnalysisParametersTableModel(sensitivityAnalysis); + simulSensitivityAnalysisParam.setModel(parametersTableModel); + simulSensitivityAnalysisParam.getColumnModel().getColumn(0).setCellRenderer(new SensitivityAnalysisParametersTableCellRenderer(sensitivityAnalysis)); + simulSensitivityAnalysisParam.getColumnModel().getColumn(1).setCellEditor(new SensitivityAnalysisParametersTableCellEditor(sensitivityAnalysis)); } } public void setFactorCardinalityTableModel() { - java.util.List<Factor> factors = getSimulAction().getFactorGroup().getFactors(); - java.util.List<Factor> factorsContinue = new ArrayList<Factor>(); + List<Factor> factors = getSimulAction().getFactorGroup().getFactors(); + List<Factor> factorsContinue = new ArrayList<Factor>(); /* get sublist with only Continous factor */ for (Factor f : factors) { Domain domain = f.getDomain(); @@ -224,14 +221,14 @@ <JLabel text="isisfish.sensitivity.select"/> </cell> <cell fill="horizontal" weightx="1.0"> - <JComboBox id="fieldSensitivityCalculatorSelect" model='{getSensitivityCalculatorModel()}' - renderer='{new SensitivityCalculatorComboRenderer()}' onActionPerformed='sensCalculatorChanged()'/> + <JComboBox id="fieldSensitivityAnalysisSelect" model='{getSensitivityAnalysisModel()}' + renderer='{new SensitivityAnalysisComboRenderer()}' onActionPerformed='sensitivityAnalysisChanged()'/> </cell> </row> <row> <cell columns="2" fill="both" weightx="1.0" weighty="1.0"> <JScrollPane> - <JTable id="simulSensitivityCalculatorParam" rowHeight='24'/> + <JTable id="simulSensitivityAnalysisParam" rowHeight='24'/> </JScrollPane> </cell> </row> 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 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2011-07-07 14:33:45 UTC (rev 3436) @@ -178,9 +178,9 @@ getParentContainer(SensitivityUI.class).getSensitivityChooserUI().setSensitivityExportListModel(); } } -protected void setSensitivityCalculator() { +protected void setSensitivityAnalysis() { if (isSensitivity()){ - getParentContainer(SensitivityUI.class).getSensitivityChooserUI().refreshSelectedSensitivityCalculator(); + getParentContainer(SensitivityUI.class).getSensitivityChooserUI().refreshSelectedSensitivityAnalysis(); } } public void setSimulationParameter(SimulAction simulAction){ @@ -202,7 +202,7 @@ setPreScript(); setAnalysePlan(); setExportSens(); - setSensitivityCalculator(); + setSensitivityAnalysis(); setFactor(); // regles Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx 2011-07-07 14:33:45 UTC (rev 3436) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2005 - 2010 Ifremer, CodeLutin + Copyright (C) 2005 - 2011 Ifremer, CodeLutin, Chatellier Eric %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -26,149 +26,147 @@ <import> java.awt.Dimension javax.swing.table.DefaultTableModel; - fr.ifremer.isisfish.datastore.AnalysePlanStorage; + fr.ifremer.isisfish.datastore.SimulationPlanStorage; fr.ifremer.isisfish.datastore.StorageChangeEvent; fr.ifremer.isisfish.datastore.StorageChangeListener; - fr.ifremer.isisfish.simulator.AnalysePlan; - fr.ifremer.isisfish.ui.models.analyzeplan.AnalyzePlanComboModel; - fr.ifremer.isisfish.ui.models.analyzeplan.AnalyzePlanComboRenderer; - fr.ifremer.isisfish.ui.models.analyzeplan.AnalyzePlanListModel; - fr.ifremer.isisfish.ui.models.analyzeplan.AnalyzePlanListRenderer; - fr.ifremer.isisfish.ui.models.analyzeplan.AnalyzePlanParametersTableModel; - fr.ifremer.isisfish.ui.models.analyzeplan.AnalyzePlanParametersTableCellEditor; - fr.ifremer.isisfish.ui.models.analyzeplan.AnalyzePlanParametersTableCellRenderer; + fr.ifremer.isisfish.simulator.SimulationPlan; + fr.ifremer.isisfish.ui.models.simulationplan.SimulationPlanComboModel; + fr.ifremer.isisfish.ui.models.simulationplan.SimulationPlanComboRenderer; + fr.ifremer.isisfish.ui.models.simulationplan.SimulationPlanListModel; + fr.ifremer.isisfish.ui.models.simulationplan.SimulationPlanListRenderer; + fr.ifremer.isisfish.ui.models.simulationplan.SimulationPlanParametersTableModel; + fr.ifremer.isisfish.ui.models.simulationplan.SimulationPlanParametersTableCellEditor; + fr.ifremer.isisfish.ui.models.simulationplan.SimulationPlanParametersTableCellRenderer; fr.ifremer.isisfish.datastore.RegionStorage; </import> <SimulAction id='simulAction' javaBean='getContextValue(SimulAction.class)' /> <script><![CDATA[ - // to be notified of storage change event - StorageChangeListener analyzePlanStorageListener; + StorageChangeListener simulationPlanStorageListener; protected void $afterCompleteSetup() { - analyzePlanStorageListener = new StorageChangeListener() { + simulationPlanStorageListener = new StorageChangeListener() { @Override public void versionDataChanged(StorageChangeEvent e) { refresh(); } }; - AnalysePlanStorage.addStorageChangeListener(analyzePlanStorageListener); + SimulationPlanStorage.addStorageChangeListener(simulationPlanStorageListener); } public void refresh() { - // analyse plans names list - fieldSimulParamsAnalysePlansSelect.setModel(getAnalyzePlansComboModel()); - // simulation analyse plans instance - listSimulParamsAnalysePlansList.setModel(getSimulationAnalyzePlansListModel()); + // simulation plans names list + fieldSimulParamsSimulationPlansSelect.setModel(getSimulationPlansComboModel()); + // simulation simulation plans instance + listSimulParamsSimulationPlansList.setModel(getSimulationSimulationPlansListModel()); } /** - * Refresh analyze plan names list. + * Refresh simulation plan names list. */ - protected AnalyzePlanComboModel getAnalyzePlansComboModel() { - java.util.List<String> analyzePlanNames = simulAction.getAnalysePlanNames(); - AnalyzePlanComboModel model = new AnalyzePlanComboModel(analyzePlanNames); + protected SimulationPlanComboModel getSimulationPlansComboModel() { + List<String> simulationPlanNames = simulAction.getSimulationPlanNames(); + SimulationPlanComboModel model = new SimulationPlanComboModel(simulationPlanNames); return model; } /** - * Refresh simulation analyze plan list. + * Refresh simulation simulation plan list. */ - protected AnalyzePlanListModel getSimulationAnalyzePlansListModel() { - java.util.List<AnalysePlan> analyzePlans = simulAction.getParamAnalysePlans(); - AnalyzePlanListModel model = new AnalyzePlanListModel(analyzePlans); + protected SimulationPlanListModel getSimulationSimulationPlansListModel() { + List<SimulationPlan> simulationPlans = simulAction.getParamSimulationPlans(); + SimulationPlanListModel model = new SimulationPlanListModel(simulationPlans); return model; } - protected void addAnalysePlan() { - String selectedAnalyzePlanName = (String)fieldSimulParamsAnalysePlansSelect.getSelectedItem(); - simulAction.addAnalysePlan(selectedAnalyzePlanName); - listSimulParamsAnalysePlansList.setModel(getSimulationAnalyzePlansListModel()); - setAnalysePlanButtons(); + protected void addSimulationPlan() { + String selectedSimulationPlanName = (String)fieldSimulParamsSimulationPlansSelect.getSelectedItem(); + simulAction.addSimulationPlan(selectedSimulationPlanName); + listSimulParamsSimulationPlansList.setModel(getSimulationSimulationPlansListModel()); + setSimulationPlanButtons(); } - protected void removeAnalysePlan() { - AnalysePlan selectedAnalyzePlan = (AnalysePlan)listSimulParamsAnalysePlansList.getSelectedValue(); - simulAction.removeAnalysePlan(selectedAnalyzePlan); - listSimulParamsAnalysePlansList.setModel(getSimulationAnalyzePlansListModel()); - setAnalysePlanButtons(); + protected void removeSimulationPlan() { + SimulationPlan selectedSimulationPlan = (SimulationPlan)listSimulParamsSimulationPlansList.getSelectedValue(); + simulAction.removeSimulationPlan(selectedSimulationPlan); + listSimulParamsSimulationPlansList.setModel(getSimulationSimulationPlansListModel()); + setSimulationPlanButtons(); } - protected void clearAnalysePlan() { - simulAction.clearAnalysePlans(); - listSimulParamsAnalysePlansList.setModel(getSimulationAnalyzePlansListModel()); - setAnalysePlanButtons(); + protected void clearSimulationPlan() { + simulAction.clearSimulationPlans(); + listSimulParamsSimulationPlansList.setModel(getSimulationSimulationPlansListModel()); + setSimulationPlanButtons(); } - protected void setAnalysePlanButtons() { - if (getContextValue(SimulAction.class).getParamAnalysePlans().isEmpty()) { - buttonSimulParamsAnalysePlansClear.setEnabled(false); - buttonSimulParamsAnalysePlansRemove.setEnabled(false); + protected void setSimulationPlanButtons() { + if (getContextValue(SimulAction.class).getParamSimulationPlans().isEmpty()) { + buttonSimulParamsSimulationPlansClear.setEnabled(false); + buttonSimulParamsSimulationPlansRemove.setEnabled(false); } else { - if (listSimulParamsAnalysePlansList.getSelectedIndex() != -1) { - buttonSimulParamsAnalysePlansRemove.setEnabled(true); + if (listSimulParamsSimulationPlansList.getSelectedIndex() != -1) { + buttonSimulParamsSimulationPlansRemove.setEnabled(true); } else { - buttonSimulParamsAnalysePlansRemove.setEnabled(false); + buttonSimulParamsSimulationPlansRemove.setEnabled(false); } - buttonSimulParamsAnalysePlansClear.setEnabled(true); + buttonSimulParamsSimulationPlansClear.setEnabled(true); } - setSimulParamsAnalysePlans(); + setSimulParamsSimulationPlans(); } - protected void setSimulParamsAnalysePlans() { - AnalysePlan selectedAnalyzePlan = (AnalysePlan)listSimulParamsAnalysePlansList.getSelectedValue(); - if (selectedAnalyzePlan != null) { - AnalyzePlanParametersTableModel model = new AnalyzePlanParametersTableModel(selectedAnalyzePlan); - simulParamsAnalysePlans.setModel(model); - AnalyzePlanParametersTableCellEditor cellEditor = new AnalyzePlanParametersTableCellEditor(selectedAnalyzePlan); + protected void setSimulParamsSimulationPlans() { + SimulationPlan selectedSimulationPlan = (SimulationPlan)listSimulParamsSimulationPlansList.getSelectedValue(); + if (selectedSimulationPlan != null) { + SimulationPlanParametersTableModel model = new SimulationPlanParametersTableModel(selectedSimulationPlan); + simulParamsSimulationPlans.setModel(model); + SimulationPlanParametersTableCellEditor cellEditor = new SimulationPlanParametersTableCellEditor(selectedSimulationPlan); cellEditor.setRegionStorage(getContextValue(RegionStorage.class)); - simulParamsAnalysePlans.getColumnModel().getColumn(0).setCellRenderer(new AnalyzePlanParametersTableCellRenderer(selectedAnalyzePlan)); - simulParamsAnalysePlans.getColumnModel().getColumn(1).setCellEditor(cellEditor); + simulParamsSimulationPlans.getColumnModel().getColumn(0).setCellRenderer(new SimulationPlanParametersTableCellRenderer(selectedSimulationPlan)); + simulParamsSimulationPlans.getColumnModel().getColumn(1).setCellEditor(cellEditor); } else { // clear table - simulParamsAnalysePlans.setModel(new DefaultTableModel()); + simulParamsSimulationPlans.setModel(new DefaultTableModel()); } } - - /*protected void backParameter() { - // TODO remove getParentContainer() use - SimulUI simul = getParentContainer(SimulUI.class); - simul.selTab(0); - }*/ ]]> </script> <row> <cell columns="2" fill="horizontal" weightx="1.0"> - <JComboBox id="fieldSimulParamsAnalysePlansSelect" model='{getAnalyzePlansComboModel()}' renderer='{new AnalyzePlanComboRenderer()}' /> + <JComboBox id="fieldSimulParamsSimulationPlansSelect" model='{getSimulationPlansComboModel()}' + renderer='{new SimulationPlanComboRenderer()}' /> </cell> </row> <row> <cell fill="both" weightx="0.5"> <JScrollPane minimumSize='{new Dimension(0,0)}' preferredSize='{new Dimension(0,0)}'> - <JList id="listSimulParamsAnalysePlansList" selectionMode="{javax.swing.ListSelectionModel.SINGLE_SELECTION}" - onValueChanged='setAnalysePlanButtons()' model='{getSimulationAnalyzePlansListModel()}' cellRenderer='{new AnalyzePlanListRenderer()}'/> + <JList id="listSimulParamsSimulationPlansList" selectionMode="{javax.swing.ListSelectionModel.SINGLE_SELECTION}" + onValueChanged='setSimulationPlanButtons()' model='{getSimulationSimulationPlansListModel()}' + cellRenderer='{new SimulationPlanListRenderer()}'/> </JScrollPane> </cell> <cell fill="both" weightx="0.5"> <Table name="isisfish.sens.title"> <row> <cell fill="both" weightx="1.0"> - <JButton id="buttonSimulParamsAnalysePlansAdd" text="isisfish.common.add" onActionPerformed='addAnalysePlan()'/> + <JButton id="buttonSimulParamsSimulationPlansAdd" text="isisfish.common.add" + onActionPerformed='addSimulationPlan()'/> </cell> </row> <row> <cell fill="both" weightx="1.0"> - <JButton id="buttonSimulParamsAnalysePlansRemove" text="isisfish.common.remove" onActionPerformed='removeAnalysePlan()' enabled='false'/> + <JButton id="buttonSimulParamsSimulationPlansRemove" text="isisfish.common.remove" + onActionPerformed='removeSimulationPlan()' enabled='false'/> </cell> </row> <row> <cell fill="both" weightx="1.0"> - <JButton id="buttonSimulParamsAnalysePlansClear" text="isisfish.common.clear" onActionPerformed='clearAnalysePlan()' enabled='false'/> + <JButton id="buttonSimulParamsSimulationPlansClear" text="isisfish.common.clear" + onActionPerformed='clearSimulationPlan()' enabled='false'/> </cell> </row> </Table> @@ -177,7 +175,7 @@ <row> <cell columns="2" fill="both" weightx="1.0" weighty="1.0"> <JScrollPane> - <JTable id="simulParamsAnalysePlans" rowHeight='24' name="isisfish.sens.planParameters"/> + <JTable id="simulParamsSimulationPlans" rowHeight='24' name="isisfish.sens.planParameters"/> </JScrollPane> </cell> </row> 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 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -63,13 +63,13 @@ import fr.ifremer.isisfish.IsisFish; import fr.ifremer.isisfish.IsisFishException; import fr.ifremer.isisfish.IsisFishRuntimeException; -import fr.ifremer.isisfish.datastore.AnalysePlanStorage; import fr.ifremer.isisfish.datastore.ExportStorage; import fr.ifremer.isisfish.datastore.RegionStorage; import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.datastore.ScriptStorage; +import fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage; import fr.ifremer.isisfish.datastore.SensitivityExportStorage; -import fr.ifremer.isisfish.datastore.SensitivityStorage; +import fr.ifremer.isisfish.datastore.SimulationPlanStorage; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.datastore.SimulatorStorage; import fr.ifremer.isisfish.entities.Population; @@ -79,14 +79,15 @@ import fr.ifremer.isisfish.export.SensitivityExport; import fr.ifremer.isisfish.mexico.MexicoHelper; import fr.ifremer.isisfish.rule.Rule; -import fr.ifremer.isisfish.simulator.AnalysePlan; import fr.ifremer.isisfish.simulator.SimulationParameter; import fr.ifremer.isisfish.simulator.SimulationParameterImpl; +import fr.ifremer.isisfish.simulator.SimulationPlan; 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.Factor; import fr.ifremer.isisfish.simulator.sensitivity.FactorGroup; +import fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysis; import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator; import fr.ifremer.isisfish.simulator.sensitivity.SensitivityException; import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain; @@ -125,7 +126,7 @@ protected SimulationStorage simulStorage = null; protected List<String> oldSimulNames = null; protected String simulName = null; - protected SensitivityStorage sensitivityStorage = null; + protected SensitivityAnalysisStorage sensitivityStorage = null; /** * List de facteur sous forme d'arbre (factor group). @@ -619,23 +620,23 @@ } /** - * Return Analyse plan names list. + * Return simulation plan names list. * - * @return Analyse plan names + * @return simulation plan names */ - public List<String> getAnalysePlanNames() { - return AnalysePlanStorage.getAnalysePlanNames(); + public List<String> getSimulationPlanNames() { + return SimulationPlanStorage.getSimulationPlanNames(); } - public List<AnalysePlan> getParamAnalysePlans() { - return param.getAnalysePlans(); + public List<SimulationPlan> getParamSimulationPlans() { + return param.getSimulationPlans(); } - public void addAnalysePlan(String name) { + public void addSimulationPlan(String name) { try { - AnalysePlan ap = AnalysePlanStorage.getAnalysePlan(name) - .getNewAnalysePlanInstance(); - getSimulationParameter().addAnalysePlan(ap); + SimulationPlan sp = SimulationPlanStorage.getSimulationPlan(name) + .getNewSimulationPlanInstance(); + getSimulationParameter().addSimulationPlan(sp); } catch (IsisFishException e) { if (log.isErrorEnabled()) { log.error("Can't add analyse plan", e); @@ -644,27 +645,27 @@ } } - public void removeAnalysePlan(AnalysePlan ap) { - getSimulationParameter().removeAnalysePlan(ap); + public void removeSimulationPlan(SimulationPlan sp) { + getSimulationParameter().removeSimulationPlan(sp); } - public void clearAnalysePlans() { + public void clearSimulationPlans() { getSimulationParameter().clearPlans(); } - public Map<String, Class<?>> getAnalysePlanParameterName(AnalysePlan ap) { + public Map<String, Class<?>> getSimulationPlanParameterName(SimulationPlan sp) { Map<String, Class<?>> result = null; - if (ap != null) { - result = AnalysePlanStorage.getParameterNames(ap); + if (sp != null) { + result = SimulationPlanStorage.getParameterNames(sp); } return result; } - public Object getAnalysePlanParameterValue(String paramName, AnalysePlan ap) { + public Object getSimulationPlanParameterValue(String paramName, SimulationPlan sp) { Object result = null; - if (ap != null) { + if (sp != null) { try { - result = AnalysePlanStorage.getParameterValue(ap, paramName); + result = SimulationPlanStorage.getParameterValue(sp, paramName); } catch (IsisFishException e) { if (log.isErrorEnabled()) { log.error("Can't get analyse plan param value", e); @@ -675,14 +676,14 @@ return result; } - public void setAnalysePlanParameterValue(String paramName, AnalysePlan ap, + public void setSimulationPlanParameterValue(String paramName, SimulationPlan sp, Object value) { if (log.isDebugEnabled()) { - log.debug("paramName : " + paramName + " analysePlanName : " + ap + log.debug("paramName : " + paramName + " analysePlanName : " + sp + " value : " + value); } try { - AnalysePlanStorage.setParameterValue(ap, paramName, value); + SimulationPlanStorage.setParameterValue(sp, paramName, value); } catch (IsisFishException e) { if (log.isErrorEnabled()) { log.error("Can't set analyse plan param value", e); @@ -764,13 +765,13 @@ } /** - * Return sensitivity calculator name without .java extension. + * Return sensitivity analysis name without .java extension. * - * @return sensitivity calculator names list + * @return sensitivity analysis names list */ - public List<String> getSensitivityNames() { + public List<String> getSensitivityAnalysisNames() { List<String> result = new ArrayList<String>(); - for (String r : SensitivityStorage.getSensitivityNames()) { + for (String r : SensitivityAnalysisStorage.getSensitivityAnalysisNames()) { // there is some non java files in sensitivity directory if (r.endsWith(".java")) { // Remove .java extention @@ -785,8 +786,8 @@ * Get current sensitivity calculator instance. * @return sensitivity calculator */ - public SensitivityCalculator getSensitivityCalculator() { - return param.getSensitivityCalculator(); + public SensitivityAnalysis getSensitivityAnalysis() { + return param.getSensitivityAnalysis(); } /** @@ -795,27 +796,27 @@ * @param name calculator name * @return instance */ - public SensitivityCalculator getSensivitityCalculatorInstance(String name) { - SensitivityCalculator sensitivityCalculator = null; + public SensitivityAnalysis getSensitivityAnalysisInstance(String name) { + SensitivityAnalysis sensitivityAnalysis = null; try { - sensitivityStorage = SensitivityStorage.getSensitivity(name); - sensitivityCalculator = sensitivityStorage - .getNewSensitivityInstance(); + sensitivityStorage = SensitivityAnalysisStorage.getSensitivityAnalysis(name); + sensitivityAnalysis = sensitivityStorage + .getNewSensitivityAnalysisInstance(); } catch (IsisFishException e) { if (log.isErrorEnabled()) { - log.error("Can't set sensitivity", e); + log.error("Can't set sensitivity analysis", e); } } - return sensitivityCalculator; + return sensitivityAnalysis; } /** * Set calculator instance to use. * - * @param sensitivityCalculator new instance + * @param sensitivityAnalysis new instance */ - public void setSensitivityCalculator(SensitivityCalculator sensitivityCalculator) { - param.setSensitivityCalculator(sensitivityCalculator); + public void setSensitivityAnalysis(SensitivityAnalysis sensitivityAnalysis) { + param.setSensitivityAnalysis(sensitivityAnalysis); } /** @@ -1092,14 +1093,14 @@ * * @param simulationId id of the simulation to simulate * @param launcher launcher to use - * @param sensitivityCalculator sensitivity calculator to use + * @param sensitivityAnalysis sensitivity analysis to use * * @see SimulatorLauncher - * @see SensitivityCalculator + * @see SensitivityAnalysis * @see DesignPlan */ public void launchSimulation(String simulationId, - SimulatorLauncher launcher, SensitivityCalculator sensitivityCalculator) { + SimulatorLauncher launcher, SensitivityAnalysis sensitivityAnalysis) { String fullSimulationId = "as_" + simulationId + "_" + DATEFORMAT.format(new java.util.Date()); @@ -1109,7 +1110,7 @@ log.debug("Launch factor simulation with custom launcher " + launcher.toString()); log.debug("Using sensitivityCalculator : " - + sensitivityCalculator.getDescription()); + + sensitivityAnalysis.getDescription()); } try { @@ -1122,7 +1123,7 @@ DesignPlan designPlan = new DesignPlan(); designPlan.setFactorGroup(factorGroup); SimulationService.getService().submit(fullSimulationId, param, - launcher, 0, sensitivityCalculator, designPlan); + launcher, 0, sensitivityAnalysis, designPlan); } } catch (Exception eee) { if (log.isErrorEnabled()) { @@ -1134,7 +1135,7 @@ public void launchSimulationWithSensibility(String simulationId, SimulatorLauncher launcher) { - launchSimulation(simulationId, launcher, getSensitivityCalculator()); + launchSimulation(simulationId, launcher, getSensitivityAnalysis()); } /** @@ -1144,8 +1145,8 @@ */ public void runSensitivitySecondPass(String masterSensitivitySimulationName) { - // calculator found - SensitivityCalculator sensitivityCalculator = null; + // sensitivity analysis found + SensitivityAnalysis sensitivityAnalysis = null; //List<SimulationStorage> simulationStorageForAnalyze = new ArrayList<SimulationStorage>(); SortedMap<Integer, SimulationStorage> simulationStorageForAnalyze = new TreeMap<Integer, SimulationStorage>(); File simuationDirectory = SimulationStorage.getSimulationDirectory(); @@ -1160,15 +1161,15 @@ simulationStorageForAnalyze.put(Integer.valueOf(suffix), storage); - if (sensitivityCalculator == null) { + if (sensitivityAnalysis == null) { // try to find find calculator name in one storage SimulationParameter params = storage.getParameter(); - sensitivityCalculator = params.getSensitivityCalculator(); + sensitivityAnalysis = params.getSensitivityAnalysis(); } } } - if (sensitivityCalculator != null) { + if (sensitivityAnalysis != null) { try { // build master sensitivity export directory File masterExportDirectory = new File(SimulationStorage.getSensitivityResultsDirectory(), @@ -1178,7 +1179,7 @@ } List<SimulationStorage> simulationStorageForAnalyzeList = new ArrayList<SimulationStorage>( simulationStorageForAnalyze.values()); - sensitivityCalculator.analyzeResult( + sensitivityAnalysis.analyzeResult( simulationStorageForAnalyzeList, masterExportDirectory); } catch (SensitivityException e) { if (log.isErrorEnabled()) { Deleted: isis-fish/trunk/src/main/resources/templates/script/analyseplan.ftl =================================================================== --- isis-fish/trunk/src/main/resources/templates/script/analyseplan.ftl 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/resources/templates/script/analyseplan.ftl 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,120 +0,0 @@ -/* - * Copyright (C) ${date?date?string("yyyy")} ${author} - * - * 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. - */ - -package analyseplans; - -import static org.nuiton.i18n.I18n._; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import scripts.ResultName; - -import java.io.Writer; -import org.nuiton.math.matrix.*; -import org.nuiton.util.*; -import org.nuiton.topia.*; - -import fr.ifremer.isisfish.util.Doc; -import fr.ifremer.isisfish.*; -import fr.ifremer.isisfish.simulator.SimulationContext; -import fr.ifremer.isisfish.types.Date; -import fr.ifremer.isisfish.entities.*; -import fr.ifremer.isisfish.simulator.AnalysePlan; -import fr.ifremer.isisfish.simulator.AnalysePlanContext; -import fr.ifremer.isisfish.simulator.SimulationParameter; -import fr.ifremer.isisfish.datastore.SimulationStorage; -import fr.ifremer.isisfish.datastore.ResultStorage; - -/** - * ${name}.java - * - * Created: ${date?date?string.long} - * - * @author ${author} <${email}> - * @version $Revision: 1545 $ - * Last update: $Date: ${date?date?string.long} $ - * by : $Author: ${author} $ - */ -public class ${name} implements AnalysePlan { - - /** to use log facility, just put in your code: log.info("..."); */ - private static Log log = LogFactory.getLog(${name}.class); - - public String [] necessaryResult = { - // put here all necessary result for this rule - // example: - // ResultName.MATRIX_BIOMASS, - // ResultName.MATRIX_NET_VALUE_OF_LANDINGS_PER_STRATEGY_MET, - }; - - @Override - public String[] getNecessaryResult() { - return this.necessaryResult; - } - - /** - * Permet d'afficher a l'utilisateur une aide sur le plan. - * @return L''aide ou la description du plan - */ - @Override - public String getDescription() throws Exception { - // TODO change descrition - return _("TODO ${name} description plan"); - } - - /** - * Called once before {@code beforeSimulation} call. - * - * @param context plan context - */ - @Override - public void init(AnalysePlanContext context) throws Exception { - // TODO - } - - /** - * Call before each simulation. - * - * @param context plan context - * @param nextSimulation storage used for next simulation - * @return true if we must do next simulation, false to stop plan - * @throws Exception - */ - @Override - public boolean beforeSimulation(AnalysePlanContext context, - SimulationStorage nextSimulation) throws Exception { - - return true; - } - - /** - * Call after each simulation. - * - * @param context plan context - * @param lastSimulation storage used for simulation - * @return true if we must do next simulation, false to stop plan - * @throws Exception - */ - @Override - public boolean afterSimulation(AnalysePlanContext context, - SimulationStorage lastSimulation) throws Exception { - - return true; - } -} \ No newline at end of file Deleted: isis-fish/trunk/src/main/resources/templates/script/sensitivity.ftl =================================================================== --- isis-fish/trunk/src/main/resources/templates/script/sensitivity.ftl 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/main/resources/templates/script/sensitivity.ftl 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,117 +0,0 @@ -/* - * Copyright (C) ${date?date?string("yyyy")} ${author} - * - * 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. - */ - -package sensitivity; - -import static org.nuiton.i18n.I18n._; - -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.nuiton.math.matrix.*; - -import java.io.File; - -import fr.ifremer.isisfish.datastore.SimulationStorage; -import fr.ifremer.isisfish.entities.*; -import fr.ifremer.isisfish.simulator.sensitivity.*; -import fr.ifremer.isisfish.util.Doc; - -/** - * ${name}.java - * - * Created: ${date?date?string.long} - * - * @author ${author} <${email}> - * @version $Revision: 0 $ - * - * Last update: $Date: ${date?date?string.long} $ - * by : $Author: ${author} $ - */ -public class ${name} extends AbstractSensitivityCalculator { - - /** to use log facility, just put in your code: log.info("..."); */ - private static Log log = LogFactory.getLog(${name}.class); - - /** - * Return calculator description. - * - * @return calculator description - * @throws Exception - */ - public String getDescription() { - // TODO change descrition - return _("TODO ${name} description plan"); - } - - /** - * 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 { - - SensitivityScenarios sensitivityScenarios = new SensitivityScenarios(); - - // FIXME add implemantation - - return null; - } - - /** - * 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) throws SensitivityException { - - } -} \ No newline at end of file Copied: isis-fish/trunk/src/main/resources/templates/script/sensitivityanalysis.ftl (from rev 3392, isis-fish/trunk/src/main/resources/templates/script/sensitivity.ftl) =================================================================== --- isis-fish/trunk/src/main/resources/templates/script/sensitivityanalysis.ftl (rev 0) +++ isis-fish/trunk/src/main/resources/templates/script/sensitivityanalysis.ftl 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,117 @@ +/* + * Copyright (C) ${date?date?string("yyyy")} ${author} + * + * 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. + */ + +package sensitivity; + +import static org.nuiton.i18n.I18n._; + +import java.util.List; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import org.nuiton.math.matrix.*; + +import java.io.File; + +import fr.ifremer.isisfish.datastore.SimulationStorage; +import fr.ifremer.isisfish.entities.*; +import fr.ifremer.isisfish.simulator.sensitivity.*; +import fr.ifremer.isisfish.util.Doc; + +/** + * ${name}.java + * + * Created: ${date?date?string.long} + * + * @author ${author} <${email}> + * @version $Revision: 0 $ + * + * Last update: $Date: ${date?date?string.long} $ + * by : $Author: ${author} $ + */ +public class ${name} extends AbstractSensitivityAnalysis { + + /** to use log facility, just put in your code: log.info("..."); */ + private static Log log = LogFactory.getLog(${name}.class); + + /** + * Return calculator description. + * + * @return calculator description + * @throws Exception + */ + public String getDescription() { + // TODO change descrition + return _("TODO ${name} description plan"); + } + + /** + * 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 { + + SensitivityScenarios sensitivityScenarios = new SensitivityScenarios(); + + // FIXME add implemantation + + return null; + } + + /** + * 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) throws SensitivityException { + + } +} \ No newline at end of file Copied: isis-fish/trunk/src/main/resources/templates/script/simulationplan.ftl (from rev 3394, isis-fish/trunk/src/main/resources/templates/script/analyseplan.ftl) =================================================================== --- isis-fish/trunk/src/main/resources/templates/script/simulationplan.ftl (rev 0) +++ isis-fish/trunk/src/main/resources/templates/script/simulationplan.ftl 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,120 @@ +/* + * Copyright (C) ${date?date?string("yyyy")} ${author} + * + * 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. + */ + +package simulationplans; + +import static org.nuiton.i18n.I18n._; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import scripts.ResultName; + +import java.io.Writer; +import org.nuiton.math.matrix.*; +import org.nuiton.util.*; +import org.nuiton.topia.*; + +import fr.ifremer.isisfish.util.Doc; +import fr.ifremer.isisfish.*; +import fr.ifremer.isisfish.simulator.SimulationContext; +import fr.ifremer.isisfish.types.Date; +import fr.ifremer.isisfish.entities.*; +import fr.ifremer.isisfish.simulator.SimulationPlan; +import fr.ifremer.isisfish.simulator.SimulationPlanContext; +import fr.ifremer.isisfish.simulator.SimulationParameter; +import fr.ifremer.isisfish.datastore.SimulationStorage; +import fr.ifremer.isisfish.datastore.ResultStorage; + +/** + * ${name}.java + * + * Created: ${date?date?string.long} + * + * @author ${author} <${email}> + * @version $Revision: 1545 $ + * Last update: $Date: ${date?date?string.long} $ + * by : $Author: ${author} $ + */ +public class ${name} implements SimulationPlan { + + /** to use log facility, just put in your code: log.info("..."); */ + private static Log log = LogFactory.getLog(${name}.class); + + public String [] necessaryResult = { + // put here all necessary result for this rule + // example: + // ResultName.MATRIX_BIOMASS, + // ResultName.MATRIX_NET_VALUE_OF_LANDINGS_PER_STRATEGY_MET, + }; + + @Override + public String[] getNecessaryResult() { + return this.necessaryResult; + } + + /** + * Permet d'afficher a l'utilisateur une aide sur le plan. + * @return L''aide ou la description du plan + */ + @Override + public String getDescription() throws Exception { + // TODO change description + return _("TODO ${name} description plan"); + } + + /** + * Called once before {@code beforeSimulation} call. + * + * @param context plan context + */ + @Override + public void init(SimulationPlanContext context) throws Exception { + // TODO + } + + /** + * Call before each simulation. + * + * @param context plan context + * @param nextSimulation storage used for next simulation + * @return true if we must do next simulation, false to stop plan + * @throws Exception + */ + @Override + public boolean beforeSimulation(SimulationPlanContext context, + SimulationStorage nextSimulation) throws Exception { + + return true; + } + + /** + * Call after each simulation. + * + * @param context plan context + * @param lastSimulation storage used for simulation + * @return true if we must do next simulation, false to stop plan + * @throws Exception + */ + @Override + public boolean afterSimulation(SimulationPlanContext context, + SimulationStorage lastSimulation) throws Exception { + + return true; + } +} \ No newline at end of file Deleted: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/AnalysePlanStorageTest.java =================================================================== --- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/AnalysePlanStorageTest.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/AnalysePlanStorageTest.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,101 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, CodeLutin - * %% - * 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.datastore; - -import java.io.StringWriter; -import java.io.Writer; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -import fr.ifremer.isisfish.AbstractIsisFishTest; -import fr.ifremer.isisfish.IsisFish; -import freemarker.template.Configuration; -import freemarker.template.Template; - -/** - * AnalysePlanStorageTest. - * - * Created: 7 août 2006 11:07:57 - * - * @author poussin - * @version $Revision: 1526 $ - * - * Last update: $Date: 2008-10-07 18:46:13 +0200 (mar 07 oct 2008) $ - * by : $Author: tchemit $ - */ -public class AnalysePlanStorageTest extends AbstractIsisFishTest { - - protected Configuration freemarkerConfiguration; - - @Before - public void setUp() throws Exception { - freemarkerConfiguration = getFreemarkerConfiguration(); - } - - @Test - public void testNewAnalysePlanWithCompilation() throws Exception { - - String fileName = "TestAnalysePlan1"; - - AnalysePlanStorage analysePlanStorage = AnalysePlanStorage - .getAnalysePlan(fileName); - - // get template - Template template = freemarkerConfiguration - .getTemplate(AnalysePlanStorage.ANALYSE_PLAN_TEMPLATE); - - // context values - Map<String, Object> root = new HashMap<String, Object>(); - // FIXME what is category ? - root.put("category", ""); - root.put("name", fileName); - root.put("date", new Date()); - root.put("author", IsisFish.config.getUserName()); - root.put("email", IsisFish.config.getUserMail()); - - // process template - Writer out = new StringWriter(); - template.process(root, out); - out.flush(); - String content = out.toString(); - - // remove it to compile, it's in isis fish data project - Assert.assertTrue(content.indexOf("import scripts.ResultName;") > 0); - content = content.replaceFirst("import scripts.ResultName;", ""); - - analysePlanStorage.setContent(content); - - // 0 = compile success - int compileResult = analysePlanStorage.compile(false, null); - Assert.assertEquals(0, compileResult); - } - -} Copied: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorageTest.java (from rev 3392, isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SensitivityStorageTest.java) =================================================================== --- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorageTest.java (rev 0) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorageTest.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,95 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2010 Ifremer, CodeLutin + * %% + * 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.datastore; + +import java.io.StringWriter; +import java.io.Writer; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import fr.ifremer.isisfish.AbstractIsisFishTest; +import fr.ifremer.isisfish.IsisFish; +import freemarker.template.Configuration; +import freemarker.template.Template; + +/** + * SensitivityStorageTest. + * + * Created: 7 août 2006 11:07:57 + * + * @author poussin + * @version $Revision: 1526 $ + * + * Last update: $Date: 2008-10-07 18:46:13 +0200 (mar 07 oct 2008) $ + * by : $Author: tchemit $ + */ +public class SensitivityAnalysisStorageTest extends AbstractIsisFishTest { + + protected Configuration freemarkerConfiguration; + + @Before + public void setUp() throws Exception { + freemarkerConfiguration = getFreemarkerConfiguration(); + } + + @Test + public void testNewSensitivityAnalysisWithCompilation() throws Exception { + + String fileName = "TestSensitivityAnalysis1"; + + SensitivityAnalysisStorage sensitivityStorage = SensitivityAnalysisStorage + .getSensitivityAnalysis(fileName); + + // get template + Template template = freemarkerConfiguration + .getTemplate(SensitivityAnalysisStorage.SENSITIVITY_ANALYSIS_TEMPLATE); + + // context values + Map<String, Object> root = new HashMap<String, Object>(); + // FIXME what is category ? + root.put("category", ""); + root.put("name", fileName); + root.put("date", new Date()); + root.put("author", IsisFish.config.getUserName()); + root.put("email", IsisFish.config.getUserMail()); + + // process template + Writer out = new StringWriter(); + template.process(root, out); + out.flush(); + sensitivityStorage.setContent(out.toString()); + + // 0 = compile success + int compileResult = sensitivityStorage.compile(false, null); + Assert.assertEquals(0, compileResult); + } + +} Deleted: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SensitivityStorageTest.java =================================================================== --- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SensitivityStorageTest.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SensitivityStorageTest.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,95 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, CodeLutin - * %% - * 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.datastore; - -import java.io.StringWriter; -import java.io.Writer; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -import fr.ifremer.isisfish.AbstractIsisFishTest; -import fr.ifremer.isisfish.IsisFish; -import freemarker.template.Configuration; -import freemarker.template.Template; - -/** - * SensitivityStorageTest. - * - * Created: 7 août 2006 11:07:57 - * - * @author poussin - * @version $Revision: 1526 $ - * - * Last update: $Date: 2008-10-07 18:46:13 +0200 (mar 07 oct 2008) $ - * by : $Author: tchemit $ - */ -public class SensitivityStorageTest extends AbstractIsisFishTest { - - protected Configuration freemarkerConfiguration; - - @Before - public void setUp() throws Exception { - freemarkerConfiguration = getFreemarkerConfiguration(); - } - - @Test - public void testNewSensitivityWithCompilation() throws Exception { - - String fileName = "TestSensitivity1"; - - SensitivityStorage sensitivityStorage = SensitivityStorage - .getSensitivity(fileName); - - // get template - Template template = freemarkerConfiguration - .getTemplate(SensitivityStorage.SENSIVITY_TEMPLATE); - - // context values - Map<String, Object> root = new HashMap<String, Object>(); - // FIXME what is category ? - root.put("category", ""); - root.put("name", fileName); - root.put("date", new Date()); - root.put("author", IsisFish.config.getUserName()); - root.put("email", IsisFish.config.getUserMail()); - - // process template - Writer out = new StringWriter(); - template.process(root, out); - out.flush(); - sensitivityStorage.setContent(out.toString()); - - // 0 = compile success - int compileResult = sensitivityStorage.compile(false, null); - Assert.assertEquals(0, compileResult); - } - -} Copied: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SimulationPlanStorageTest.java (from rev 3392, isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/AnalysePlanStorageTest.java) =================================================================== --- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SimulationPlanStorageTest.java (rev 0) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SimulationPlanStorageTest.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,101 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2011 Ifremer, CodeLutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.datastore; + +import java.io.StringWriter; +import java.io.Writer; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import fr.ifremer.isisfish.AbstractIsisFishTest; +import fr.ifremer.isisfish.IsisFish; +import freemarker.template.Configuration; +import freemarker.template.Template; + +/** + * AnalysePlanStorageTest. + * + * Created: 7 août 2006 11:07:57 + * + * @author poussin + * @version $Revision: 1526 $ + * + * Last update: $Date: 2008-10-07 18:46:13 +0200 (mar 07 oct 2008) $ + * by : $Author: tchemit $ + */ +public class SimulationPlanStorageTest extends AbstractIsisFishTest { + + protected Configuration freemarkerConfiguration; + + @Before + public void setUp() throws Exception { + freemarkerConfiguration = getFreemarkerConfiguration(); + } + + @Test + public void testNewSimulationPlanWithCompilation() throws Exception { + + String fileName = "TestSimulationPlan1"; + + SimulationPlanStorage simulationPlanStorage = SimulationPlanStorage + .getSimulationPlan(fileName); + + // get template + Template template = freemarkerConfiguration + .getTemplate(SimulationPlanStorage.SIMULATION_PLAN_TEMPLATE); + + // context values + Map<String, Object> root = new HashMap<String, Object>(); + // FIXME what is category ? + root.put("category", ""); + root.put("name", fileName); + root.put("date", new Date()); + root.put("author", IsisFish.config.getUserName()); + root.put("email", IsisFish.config.getUserMail()); + + // process template + Writer out = new StringWriter(); + template.process(root, out); + out.flush(); + String content = out.toString(); + + // remove it to compile, it's in isis fish data project + Assert.assertTrue(content.indexOf("import scripts.ResultName;") > 0); + content = content.replaceFirst("import scripts.ResultName;", ""); + + simulationPlanStorage.setContent(content); + + // 0 = compile success + int compileResult = simulationPlanStorage.compile(false, null); + Assert.assertEquals(0, compileResult); + } + +} Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationParameterTest.java =================================================================== --- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationParameterTest.java 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationParameterTest.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -73,7 +73,7 @@ //Assert.assertNotNull(params.getNumberOf(new PopulationImpl())); Assert.assertTrue(params.getRules().isEmpty()); Assert.assertTrue(params.getExtraRules().isEmpty()); - Assert.assertTrue(params.getAnalysePlans().isEmpty()); + Assert.assertTrue(params.getSimulationPlans().isEmpty()); Assert.assertTrue(params.getExportNames().isEmpty()); Assert.assertFalse(params.getUsePreScript()); Assert.assertEquals("", params.getPreScript()); @@ -81,7 +81,7 @@ Assert.assertEquals(-1, params.getAnalysePlanNumber()); Assert.assertTrue(params.getSensitivityExport().isEmpty()); Assert.assertEquals(-1, params.getNumberOfSensitivitySimulation()); - Assert.assertNull(params.getSensitivityCalculator()); + Assert.assertNull(params.getSensitivityAnalysis()); Assert.assertTrue(params.getResultEnabled().isEmpty()); Assert.assertTrue(params.getTagValue().isEmpty()); Assert.assertEquals("info", params.getSimulLogLevel()); @@ -173,8 +173,8 @@ Assert.assertEquals(2, param2.getRules().size()); // test analyse plans - Assert.assertNull(param.analysePlans); - Assert.assertEquals(0, param2.getAnalysePlans().size()); + Assert.assertNull(param.simulationPlans); + Assert.assertEquals(0, param2.getSimulationPlans().size()); // test sur les populations Assert.assertNull(param.populations); @@ -202,10 +202,10 @@ param2.fromProperties(props2); // test analyse plans - Assert.assertNull(param.analysePlans); + Assert.assertNull(param.simulationPlans); Assert.assertTrue(param2.propertiesParameters.containsKey("plans")); // ca rend zero parce que l'instanciation doit echouer - Assert.assertEquals(0, param2.getAnalysePlans().size()); + Assert.assertEquals(0, param2.getSimulationPlans().size()); } /** @@ -223,7 +223,7 @@ param.fromProperties(props); // force some properties instantiation - param.getAnalysePlans(); + param.getSimulationPlans(); param.getStrategies(); // not populations @@ -232,7 +232,7 @@ Assert.assertEquals("3.2.0.6", param2.getIsisFishVersion()); Assert.assertEquals("Done for unit testing", param2.getDescription()); // test some collections - Assert.assertEquals(0, param2.getAnalysePlans().size()); + Assert.assertEquals(0, param2.getSimulationPlans().size()); Assert.assertEquals(1, param2.getPopulations().size()); Assert.assertEquals(3, param2.getStrategies().size()); } 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 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTest.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -60,8 +60,8 @@ import fr.ifremer.isisfish.simulator.sensitivity.Factor; import fr.ifremer.isisfish.simulator.sensitivity.FactorGroup; import fr.ifremer.isisfish.simulator.sensitivity.Scenario; -import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator; -import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculatorRandomMock; +import fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysis; +import fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysisRandomMock; import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain; import fr.ifremer.isisfish.simulator.sensitivity.domain.DiscreteDomain; import fr.ifremer.isisfish.simulator.sensitivity.domain.EquationContinuousDomain; @@ -205,12 +205,12 @@ SimulatorLauncher launcher = new InProcessSimulatorLauncher(); service.addSimulationLauncher(launcher); - SensitivityCalculator sensitivityCalculator = new SensitivityCalculatorRandomMock(); + SensitivityAnalysis sensitivityAnalysis = new SensitivityAnalysisRandomMock(); DesignPlan designPlan = getTestDesignPlan(); service.submit("sensitivity test number 1", params, launcher, 0, - sensitivityCalculator, designPlan); + sensitivityAnalysis, designPlan); // temporise la fin de test , sinon junit tue tous les process try { Copied: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityAnalysisRandomMock.java (from rev 3393, isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculatorRandomMock.java) =================================================================== --- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityAnalysisRandomMock.java (rev 0) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityAnalysisRandomMock.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -0,0 +1,164 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.simulator.sensitivity; + +import java.io.File; +import java.util.List; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import fr.ifremer.isisfish.datastore.SimulationStorage; +import fr.ifremer.isisfish.simulator.launcher.SimulationServiceTest; +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; + +/** + * Implementation of SensitivityAnalysis that take random value in available + * factors. + * + * @author chatellier + * @version $Revision: 1.0 $ + * + * Last update : $Date: 26 févr. 2009 $ By : $Author: chatellier $ + */ +public class SensitivityAnalysisRandomMock extends AbstractSensitivityAnalysis { + + private static final Log log = LogFactory.getLog(SimulationServiceTest.class); + + public String getDescription() { + return "Implementation of random sensibility analysis"; + } + + /** + * 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()"); + } + + // return result + SensitivityScenarios sensitivityScenarios = new SensitivityScenarios(); + + List<Factor> 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 factor = factors.get(pickedFactor); + + Domain domain = factor.getDomain(); + if (domain instanceof MatrixContinuousDomain) { + MatrixContinuousDomain cDomain = (MatrixContinuousDomain) domain; + Object minValue = cDomain.getMinBound(); + Object maxValue = cDomain.getMaxBound(); + + factor.setValueForIdentifier(minValue.toString()); + scenario.addFactor(factor); + factor.setValueForIdentifier(maxValue.toString()); + scenario.addFactor(factor); + } else if (domain instanceof EquationContinuousDomain) { + EquationContinuousDomain cDomain = (EquationContinuousDomain) domain; + Object minValue = cDomain.getMinBound(); + Object maxValue = cDomain.getMaxBound(); + + factor.setValueForIdentifier(minValue.toString()); + scenario.addFactor(factor); + factor.setValueForIdentifier(maxValue.toString()); + scenario.addFactor(factor); + } else if (domain instanceof ContinuousDomain) { + ContinuousDomain cDomain = (ContinuousDomain) domain; + Object minValue = cDomain.getMinBound(); + Object maxValue = cDomain.getMaxBound(); + + factor.setValueForIdentifier(minValue); + scenario.addFactor(factor); + factor.setValueForIdentifier(maxValue); + scenario.addFactor(factor); + } else { + DiscreteDomain dDomain = (DiscreteDomain) domain; + for (Object sValue : dDomain.getValues().keySet()) { + factor.setValueForIdentifier(sValue); + scenario.addFactor(factor); + } + } + + sensitivityScenarios.getScenarios().add(scenario); + } + + return sensitivityScenarios; + + } + + /** + * 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) throws SensitivityException { + + } + +} Deleted: 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 2011-07-07 12:23:33 UTC (rev 3435) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculatorRandomMock.java 2011-07-07 14:33:45 UTC (rev 3436) @@ -1,164 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.simulator.sensitivity; - -import java.io.File; -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import fr.ifremer.isisfish.datastore.SimulationStorage; -import fr.ifremer.isisfish.simulator.launcher.SimulationServiceTest; -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; - -/** - * 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 $ - */ -public class SensitivityCalculatorRandomMock extends AbstractSensitivityCalculator { - - private static final Log log = LogFactory.getLog(SimulationServiceTest.class); - - public String getDescription() { - return "Implementation of random sensibility calculator"; - } - - /** - * 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()"); - } - - // return result - SensitivityScenarios sensitivityScenarios = new SensitivityScenarios(); - - List<Factor> 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 factor = factors.get(pickedFactor); - - Domain domain = factor.getDomain(); - if (domain instanceof MatrixContinuousDomain) { - MatrixContinuousDomain cDomain = (MatrixContinuousDomain) domain; - Object minValue = cDomain.getMinBound(); - Object maxValue = cDomain.getMaxBound(); - - factor.setValueForIdentifier(minValue.toString()); - scenario.addFactor(factor); - factor.setValueForIdentifier(maxValue.toString()); - scenario.addFactor(factor); - } else if (domain instanceof EquationContinuousDomain) { - EquationContinuousDomain cDomain = (EquationContinuousDomain) domain; - Object minValue = cDomain.getMinBound(); - Object maxValue = cDomain.getMaxBound(); - - factor.setValueForIdentifier(minValue.toString()); - scenario.addFactor(factor); - factor.setValueForIdentifier(maxValue.toString()); - scenario.addFactor(factor); - } else if (domain instanceof ContinuousDomain) { - ContinuousDomain cDomain = (ContinuousDomain) domain; - Object minValue = cDomain.getMinBound(); - Object maxValue = cDomain.getMaxBound(); - - factor.setValueForIdentifier(minValue); - scenario.addFactor(factor); - factor.setValueForIdentifier(maxValue); - scenario.addFactor(factor); - } else { - DiscreteDomain dDomain = (DiscreteDomain) domain; - for (Object sValue : dDomain.getValues().keySet()) { - factor.setValueForIdentifier(sValue); - scenario.addFactor(factor); - } - } - - sensitivityScenarios.getScenarios().add(scenario); - } - - return sensitivityScenarios; - - } - - /** - * 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) throws SensitivityException { - - } - -}
participants (1)
-
chatellier@users.labs.libre-entreprise.org