Author: chatellier Date: 2011-06-09 13:26:27 +0000 (Thu, 09 Jun 2011) New Revision: 3378 Log: Modification dans la gestion des parametres des populations de d?\195?\169part, et parameter de regles, leur noms. Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java isis-fish/branches/3.3.1/src/main/resources/i18n/isis-fish_en_GB.properties isis-fish/branches/3.3.1/src/main/resources/i18n/isis-fish_fr_FR.properties isis-fish/branches/3.3.1/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTest.java Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2011-06-09 12:40:59 UTC (rev 3377) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2011-06-09 13:26:27 UTC (rev 3378) @@ -48,6 +48,7 @@ import java.util.concurrent.Executors; import org.apache.commons.beanutils.BeanUtils; +import org.apache.commons.beanutils.ConvertUtils; import org.apache.commons.beanutils.ConvertUtilsBean; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.mutable.MutableInt; @@ -608,9 +609,8 @@ buffer.append("/* factor : ").append(factor.getName()).append(" */\n"); // cas special 1 : population de départ - if (factor.getPath().startsWith("parameters.population.")) { + if (factor.getPath().matches("parameters.population\\.\\w+\\.number")) { String paramName = StringUtils.removeStart(factor.getPath(), "parameters."); - paramName += ".number"; // pas de convert, c'est fait comme ca dans // SimulationParameters.toProperties(); MatrixND matrix = (MatrixND)factor.getValue(); @@ -632,7 +632,13 @@ } buffer.append("params.setProperty(\"rules\",\"").append(StringUtils.join(rulesNames, ",")).append("\");\n"); } - // cas special 3 : equation + // cas special 3 : facteur sur les parametres des regles + else if (factor.getPath().startsWith("parameters.rule.")) { + String paramName = StringUtils.removeStart(factor.getPath(), "parameters."); + String stringValue = ConvertUtils.convert(factor.getValue()); + buffer.append("params.setProperty(\"").append(paramName).append("\",\"").append(stringValue).append("\");\n"); + } + // cas special 4 : equation else if (factor.getDomain() instanceof EquationContinuousDomain) { buffer.append("context.setComputeValue(\"").append(factor.getName()); buffer.append("\",").append(factor.getValue()).append(");\n"); Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2011-06-09 12:40:59 UTC (rev 3377) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2011-06-09 13:26:27 UTC (rev 3378) @@ -321,7 +321,7 @@ * in rule list : * for example : * <pre> - * parameters.rule.2.tacPoids + * parameters.rule.2.parameter.tacPoids * </pre> * * Must also rename all next indices. @@ -1286,11 +1286,11 @@ // new factor with rule domain if (source instanceof RuleChooser) { - String factorName = "parameters.rules"; - selectedFactor = getFactor(factorName); + String factorPath = "parameters.rules"; + selectedFactor = getFactor(factorPath); if (selectedFactor == null) { - selectedFactor = new Factor(factorName); - selectedFactor.setPath(factorName); + selectedFactor = new Factor(_("isisfish.sensitivity.rulesfactorname")); + selectedFactor.setPath(factorPath); selectedFactor.setDomain(new RuleDiscreteDomain()); } } @@ -1298,11 +1298,11 @@ // new factor with matrix continous domain else if (source instanceof MatrixPanelEditor) { Population population = (Population)source.getClientProperty("sensitivityPopulation"); - String factorName = "parameters.population." + population.getName(); - selectedFactor = getFactor(factorName); + String factorPath = "parameters.population." + population.getName() + ".number"; + selectedFactor = getFactor(factorPath); if (selectedFactor == null) { - selectedFactor = new Factor(factorName); - selectedFactor.setPath(factorName); + selectedFactor = new Factor(_("isisfish.sensitivity.populationfactorname", population.getName())); + selectedFactor.setPath(factorPath); MatrixContinuousDomain factorDomain = new MatrixContinuousDomain(); MatrixND populationEffectives = getSimulationParameter().getNumberOf(population); factorDomain.setReferenceValue(populationEffectives.copy()); @@ -1341,15 +1341,16 @@ // with rule list, if a rule is deleted, factor on it must // be deleted too, et next factor must be renamed int index = ruleChooser.getRulesList().indexOf(rule); - String factorName = "parameters.rule." + index + "." + paramName; + String factorPath = "parameters.rule." + index + ".parameter." + paramName; try { // arrivé ici, on doit pouvoir la mettre en facteur Object object = RuleStorage.getParameterValue(rule, paramName); // init new factor wizard ui FactorWizardUI factorWizardUI = new FactorWizardUI(ruleChooser); - factorWizardUI.getFactorNameField().setText(factorName); - factorWizardUI.setFactorPath(factorName); + factorWizardUI.getFactorNameField().setText(_("isisfish.sensitivity.ruleparameterfactorname", + rule.getClass().getSimpleName(), paramName)); + factorWizardUI.setFactorPath(factorPath); handler.initNewFactorWithValue(factorWizardUI, object); factorWizardUI.pack(); factorWizardUI.setLocationRelativeTo(ruleChooser); Modified: isis-fish/branches/3.3.1/src/main/resources/i18n/isis-fish_en_GB.properties =================================================================== --- isis-fish/branches/3.3.1/src/main/resources/i18n/isis-fish_en_GB.properties 2011-06-09 12:40:59 UTC (rev 3377) +++ isis-fish/branches/3.3.1/src/main/resources/i18n/isis-fish_en_GB.properties 2011-06-09 13:26:27 UTC (rev 3378) @@ -867,7 +867,10 @@ isisfish.sensitivity.name=Factor name isisfish.sensitivity.newfactorgroup.tip=Add new factor group isisfish.sensitivity.newfactorname=Factor group name +isisfish.sensitivity.populationfactorname=Population %s isisfish.sensitivity.referencevalue=Reference value +isisfish.sensitivity.ruleparameterfactorname=Param rule \: %s.%s +isisfish.sensitivity.rulesfactorname=Rule set isisfish.sensitivity.secondpass=Analyze results isisfish.sensitivity.secondpass.title=Analyze results isisfish.sensitivity.select=Method Modified: isis-fish/branches/3.3.1/src/main/resources/i18n/isis-fish_fr_FR.properties =================================================================== --- isis-fish/branches/3.3.1/src/main/resources/i18n/isis-fish_fr_FR.properties 2011-06-09 12:40:59 UTC (rev 3377) +++ isis-fish/branches/3.3.1/src/main/resources/i18n/isis-fish_fr_FR.properties 2011-06-09 13:26:27 UTC (rev 3378) @@ -867,7 +867,10 @@ isisfish.sensitivity.name=Nom du facteur isisfish.sensitivity.newfactorgroup.tip=Ajouter un groupe de facteur isisfish.sensitivity.newfactorname=Nom du groupe de facteurs +isisfish.sensitivity.populationfactorname=Population %s isisfish.sensitivity.referencevalue=Valeur de référence +isisfish.sensitivity.ruleparameterfactorname=Param règle \: %d.%d +isisfish.sensitivity.rulesfactorname=Ensemble de règles isisfish.sensitivity.secondpass=Analyse des résultats isisfish.sensitivity.secondpass.title=Analyse des résultats isisfish.sensitivity.select=Méthode Modified: isis-fish/branches/3.3.1/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTest.java =================================================================== --- isis-fish/branches/3.3.1/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTest.java 2011-06-09 12:40:59 UTC (rev 3377) +++ isis-fish/branches/3.3.1/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTest.java 2011-06-09 13:26:27 UTC (rev 3378) @@ -373,7 +373,7 @@ // factor pop Factor factorPop = new Factor("myPopulationParams"); factorPop.setDomain(new MatrixContinuousDomain()); - factorPop.setPath("parameters.population.xxx"); + factorPop.setPath("parameters.population.xxx.number"); MatrixND mat = MatrixFactory.getInstance().create(new int[]{2, 3}); MatrixHelper.convertToId(mat); factorPop.setValue(mat); @@ -413,6 +413,37 @@ } /** + * Test que la generation du prescript avec l'ajout des facteurs sur + * les parametres de regles. + * + * @since 3.4.0.0 + * @throws IsisFishException + */ + @Test + public void testPrescriptGenerationRulesParameters() throws IsisFishException { + + // build test scenario + Scenario scenario1 = new Scenario(); + + // factor pop + Factor factorPop = new Factor("parameters of rule TACpoids"); + factorPop.setDomain(new MatrixContinuousDomain()); + factorPop.setPath("parameters.rule.0.parameter.tacInTons"); + factorPop.setValue(42.0); + + List<Factor> factors = new ArrayList<Factor>(); + factors.add(factorPop); + scenario1.setFactors(factors); + + // generate prescript for that wonderfull scenario + SimulationService service = SimulationService.getService(); + String preScriptContent = service.generatePreScript(scenario1); + log.info("Script = " + preScriptContent); + + Assert.assertTrue(preScriptContent.contains("params.setProperty(\"rule.0.parameter.tacInTons\",\"42.0\");")); + } + + /** * Test que la generation du prescript avec l'ajout des groupes des facteurs * depuis IsisFish 3.4.0.0 fonctionne correctement. *
participants (1)
-
chatellier@users.labs.libre-entreprise.org