Isis-fish-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
March 2012
- 2 participants
- 47 discussions
Author: maven-release
Date: 2012-03-05 18:07:31 +0100 (Mon, 05 Mar 2012)
New Revision: 3639
Url: http://forge.codelutin.com/repositories/revision/isis-fish/3639
Log:
[maven-release-plugin] prepare release isis-fish-4.1.0.0-beta-1
Modified:
branches/4.1/pom.xml
Modified: branches/4.1/pom.xml
===================================================================
--- branches/4.1/pom.xml 2012-03-05 17:00:12 UTC (rev 3638)
+++ branches/4.1/pom.xml 2012-03-05 17:07:31 UTC (rev 3639)
@@ -11,7 +11,7 @@
<groupId>fr.ifremer</groupId>
<artifactId>isis-fish</artifactId>
- <version>4.1.0.0-beta-1-SNAPSHOT</version>
+ <version>4.1.0.0-beta-1</version>
<!-- POM Relationships : Inheritance : Dependencies -->
<dependencies>
@@ -729,9 +729,9 @@
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:http://svn.forge.codelutin.com/svn/isis-fish/trunk</connection>
- <developerConnection>scm:svn:http://svn.forge.codelutin.com/svn/isis-fish/trunk</developerConnection>
- <url>http://svn.forge.codelutin.com/svn/isis-fish/trunk</url>
+ <connection>scm:svn:http://svn.forge.codelutin.com/svn/isis-fish/tags/isis-fish-4.1.0.0…</connection>
+ <developerConnection>scm:svn:http://svn.forge.codelutin.com/svn/isis-fish/tags/isis-fish-4.1.0.0…</developerConnection>
+ <url>http://svn.forge.codelutin.com/svn/isis-fish/tags/isis-fish-4.1.0.0-beta-1</url>
</scm>
<repositories>
1
0
r3638 - in branches/4.1/src/main/java/fr/ifremer/isisfish: entities simulator ui/input/variable
by maven-release@users.forge.codelutin.com 05 Mar '12
by maven-release@users.forge.codelutin.com 05 Mar '12
05 Mar '12
Author: maven-release
Date: 2012-03-05 18:00:12 +0100 (Mon, 05 Mar 2012)
New Revision: 3638
Url: http://forge.codelutin.com/repositories/revision/isis-fish/3638
Log:
Fix headers
Modified:
branches/4.1/src/main/java/fr/ifremer/isisfish/entities/VariableType.java
branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationVariable.java
branches/4.1/src/main/java/fr/ifremer/isisfish/ui/input/variable/EntityVariableHandler.java
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/entities/VariableType.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/entities/VariableType.java 2012-03-05 16:46:25 UTC (rev 3637)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/entities/VariableType.java 2012-03-05 17:00:12 UTC (rev 3638)
@@ -1,25 +1,23 @@
/*
* #%L
- *
- *
* $Id$
* $HeadURL$
* %%
* Copyright (C) 2012 Ifremer, Codelutin, Chatellier Eric
* %%
* This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
+ * 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 Lesser Public License for more details.
+ * GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Lesser Public
+ * You should have received a copy of the GNU General Public
* License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * <http://www.gnu.org/licenses/gpl-2.0.html>.
* #L%
*/
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationVariable.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationVariable.java 2012-03-05 16:46:25 UTC (rev 3637)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationVariable.java 2012-03-05 17:00:12 UTC (rev 3638)
@@ -1,25 +1,23 @@
/*
* #%L
- *
- *
* $Id$
* $HeadURL$
* %%
* Copyright (C) 2012 Ifremer, Codelutin, Chatellier Eric
* %%
* This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
+ * 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 Lesser Public License for more details.
+ * GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Lesser Public
+ * You should have received a copy of the GNU General Public
* License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * <http://www.gnu.org/licenses/gpl-2.0.html>.
* #L%
*/
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/ui/input/variable/EntityVariableHandler.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/ui/input/variable/EntityVariableHandler.java 2012-03-05 16:46:25 UTC (rev 3637)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/ui/input/variable/EntityVariableHandler.java 2012-03-05 17:00:12 UTC (rev 3638)
@@ -1,25 +1,23 @@
/*
* #%L
- *
- *
* $Id$
* $HeadURL$
* %%
* Copyright (C) 2012 Ifremer, Codelutin, Chatellier Eric
* %%
* This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
+ * 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 Lesser Public License for more details.
+ * GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Lesser Public
+ * You should have received a copy of the GNU General Public
* License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * <http://www.gnu.org/licenses/gpl-2.0.html>.
* #L%
*/
1
0
r3637 - branches/4.1/src/test/java/fr/ifremer/isisfish/mexico/export
by echatellier@users.forge.codelutin.com 05 Mar '12
by echatellier@users.forge.codelutin.com 05 Mar '12
05 Mar '12
Author: echatellier
Date: 2012-03-05 17:46:25 +0100 (Mon, 05 Mar 2012)
New Revision: 3637
Url: http://forge.codelutin.com/repositories/revision/isis-fish/3637
Log:
Fix test
Modified:
branches/4.1/src/test/java/fr/ifremer/isisfish/mexico/export/RegionExplorerTest.java
Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/mexico/export/RegionExplorerTest.java
===================================================================
--- branches/4.1/src/test/java/fr/ifremer/isisfish/mexico/export/RegionExplorerTest.java 2012-03-05 16:36:41 UTC (rev 3636)
+++ branches/4.1/src/test/java/fr/ifremer/isisfish/mexico/export/RegionExplorerTest.java 2012-03-05 16:46:25 UTC (rev 3637)
@@ -129,6 +129,12 @@
// entity part and property part must appear in factors names
for (String property : SensitivityUtils.getProperties().stringPropertyNames()) {
String entityPart = property.substring(0, property.indexOf('.'));
+
+ if ("Variable".equals(entityPart)) {
+ // variable added since 4.1 and not yet present in test database
+ continue;
+ }
+
Assert.assertTrue("Entity " + entityPart + " is not present in xml export", xmlExport.indexOf(entityPart) != -1);
String propertyPart = property.substring(property.indexOf('.'));
1
0
r3636 - branches/4.1/src/test/java/fr/ifremer/isisfish/ui/sensitivity
by echatellier@users.forge.codelutin.com 05 Mar '12
by echatellier@users.forge.codelutin.com 05 Mar '12
05 Mar '12
Author: echatellier
Date: 2012-03-05 17:36:41 +0100 (Mon, 05 Mar 2012)
New Revision: 3636
Url: http://forge.codelutin.com/repositories/revision/isis-fish/3636
Log:
Fix test
Modified:
branches/4.1/src/test/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUtilsTest.java
Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUtilsTest.java
===================================================================
--- branches/4.1/src/test/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUtilsTest.java 2012-03-05 16:01:58 UTC (rev 3635)
+++ branches/4.1/src/test/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUtilsTest.java 2012-03-05 16:36:41 UTC (rev 3636)
@@ -44,6 +44,7 @@
import fr.ifremer.isisfish.AbstractIsisFishTest;
import fr.ifremer.isisfish.IsisFishDAOHelper;
import fr.ifremer.isisfish.datastore.IsisH2Config;
+import fr.ifremer.isisfish.entities.VariableDAO;
/**
* Test for {@link SensitivityUtils} class.
@@ -95,6 +96,12 @@
TopiaContext context = testTC.beginTransaction();
for (String factorName : factors.stringPropertyNames()) {
String className = factorName.substring(0, factorName.indexOf("."));
+
+ if ("Variable".equals(className)) {
+ // test fails with Variable because of contraints integrity
+ continue;
+ }
+
String propertyName = StringUtils.capitalize(factorName.substring(factorName.indexOf(".") + 1));
// Simple method
1
0
Author: echatellier
Date: 2012-03-05 17:01:58 +0100 (Mon, 05 Mar 2012)
New Revision: 3635
Url: http://forge.codelutin.com/repositories/revision/isis-fish/3635
Log:
Prepare beta release
Modified:
branches/4.1/pom.xml
Modified: branches/4.1/pom.xml
===================================================================
--- branches/4.1/pom.xml 2012-03-05 16:01:04 UTC (rev 3634)
+++ branches/4.1/pom.xml 2012-03-05 16:01:58 UTC (rev 3635)
@@ -6,12 +6,12 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>3.0.7</version>
+ <version>3.1.1</version>
</parent>
<groupId>fr.ifremer</groupId>
<artifactId>isis-fish</artifactId>
- <version>4.1.0.0-SNAPSHOT</version>
+ <version>4.1.0.0-beta-1-SNAPSHOT</version>
<!-- POM Relationships : Inheritance : Dependencies -->
<dependencies>
1
0
r3634 - branches/4.1/src/main/java/fr/ifremer/isisfish/simulator
by echatellier@users.forge.codelutin.com 05 Mar '12
by echatellier@users.forge.codelutin.com 05 Mar '12
05 Mar '12
Author: echatellier
Date: 2012-03-05 17:01:04 +0100 (Mon, 05 Mar 2012)
New Revision: 3634
Url: http://forge.codelutin.com/repositories/revision/isis-fish/3634
Log:
Remove unnecessary api
Modified:
branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationContext.java
branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationVariable.java
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationContext.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationContext.java 2012-03-05 10:52:26 UTC (rev 3633)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationContext.java 2012-03-05 16:01:04 UTC (rev 3634)
@@ -81,7 +81,6 @@
protected Set<SimulationListener> simulationListeners = new LinkedHashSet<SimulationListener>();
protected ClassLoader classLoader = null;
protected File scriptDirectory;
- protected TimeStep timeStep;
/** TopiaContext must be used by rule action to modify data */
protected TopiaContext db = null;
@@ -321,26 +320,6 @@
}
/**
- * Set simulation current time step.
- *
- * @param timeStep current time step
- * @since 4.1.0.0
- */
- public void setTimeStep(TimeStep timeStep) {
- this.timeStep = timeStep;
- }
-
- /**
- * Get simulation current time step.
- *
- * @return current time step
- * @since 4.1.0.0
- */
- public TimeStep getTimeStep() {
- return timeStep;
- }
-
- /**
* Script directory to use.
*
* Used to chnage isis-database-3 directory in running simulation context.
@@ -423,59 +402,4 @@
}
return v;
}
-
- /**
- * Save all cached context values.
- *
- * @since 4.1.0.0
- */
- public void saveContextValues() {
- File exportFile = new File(getScriptDirectory(), "variables.txt");
-
- Writer out = null;
- try {
- out = new FileWriter(exportFile, true);
-
- out.write("=========== Step : " + timeStep.toString() + " ===========\n");
- for (Map.Entry<TopiaEntity, SimulationVariable> entry : variablesCache.entrySet()) {
- TopiaEntity entity = entry.getKey();
- SimulationVariable simVariable = entry.getValue();
-
- String name = null;
- try {
- name = BeanUtils.getProperty(entity, "name");
- } catch (Exception ex) {
- name = entity.getTopiaId();
- }
-
- for (Entry<String, Variable> variableEntry : simVariable.variablesCache.entrySet()) {
- Variable variable = variableEntry.getValue();
-
- out.write(name + " ");
- out.write(variable.getName());
- out.write(" = ");
-
- switch (variable.getType()) {
- case DOUBLE:
- out.write(String.valueOf(variable.getDoubleValue()));
- break;
- case MATRIX:
- out.write(variable.getMatrixValue().toString());
- break;
- case EQUATION:
- out.write(String.valueOf(simVariable.eval(variable)));
- break;
- }
- out.write("\n");
- }
- }
- out.write("\n\n");
-
- out.close();
- } catch (IOException ex) {
- throw new IsisFishRuntimeException("Can't save ", ex);
- } finally {
- IOUtils.closeQuietly(out);
- }
- }
}
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationVariable.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationVariable.java 2012-03-05 10:52:26 UTC (rev 3633)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationVariable.java 2012-03-05 16:01:04 UTC (rev 3634)
@@ -164,7 +164,7 @@
Map<String, Object> args = new HashMap<String, Object>();
args.put("context", simulationContext);
args.put("entity", topiaEntity);
- args.put("step", simulationContext.getTimeStep());
+ args.put("step", simulationContext.getSimulationControl().getStep());
Object val = EvaluatorHelper.evaluate("fr.ifremer.isisfish.equation",
topiaEntity.getTopiaId() + "#" + v.getName(), VariableEquation.class,
1
0
05 Mar '12
Author: echatellier
Date: 2012-03-05 11:52:26 +0100 (Mon, 05 Mar 2012)
New Revision: 3633
Url: http://forge.codelutin.com/repositories/revision/isis-fish/3633
Log:
Merge trunk into current branche
Modified:
branches/4.1/
branches/4.1/src/main/java/fr/ifremer/isisfish/IsisConfig.java
branches/4.1/src/main/java/fr/ifremer/isisfish/IsisFish.java
branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/CodeSourceStorage.java
branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/ExportStorage.java
branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java
branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java
branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/RuleStorage.java
branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/ScriptStorage.java
branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorage.java
branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SensitivityExportStorage.java
branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulationPlanStorage.java
branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulationStorage.java
branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulatorStorage.java
branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java
branches/4.1/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java
branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterImpl.java
branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java
branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityAnalysis.java
branches/4.1/src/main/java/fr/ifremer/isisfish/ui/input/InputOneEquationUI.jaxx
branches/4.1/src/main/java/fr/ifremer/isisfish/ui/input/PopulationUI.jaxx
branches/4.1/src/main/java/fr/ifremer/isisfish/ui/models/common/StringComboModel.java
branches/4.1/src/main/java/fr/ifremer/isisfish/ui/result/ResultHandler.java
branches/4.1/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java
branches/4.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivitySecondPassUI.jaxx
branches/4.1/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx
branches/4.1/src/main/java/fr/ifremer/isisfish/ui/widget/FilterableComboBox.java
branches/4.1/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java
branches/4.1/src/main/java/fr/ifremer/isisfish/util/ssh/SSHUtils.java
branches/4.1/src/site/resources/images/isis-simulation.png
branches/4.1/src/test/java/fr/ifremer/isisfish/AbstractIsisFishTest.java
branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/ExportStorageTest.java
branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/RuleStorageTest.java
branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/ScriptStorageTest.java
branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorageTest.java
branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SensitivityExportStorageTest.java
branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SimulationPlanStorageTest.java
branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SimulatorStorageTest.java
branches/4.1/src/test/java/fr/ifremer/isisfish/entity/PersistenceTest.java
branches/4.1/src/test/java/fr/ifremer/isisfish/util/CompileHelperTest.java
branches/4.1/src/test/java/fr/ifremer/isisfish/util/JavadocHelperTest.java
Property changes on: branches/4.1
___________________________________________________________________
Modified: svn:mergeinfo
-
+ /trunk:3601-3632
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/IsisConfig.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -918,7 +918,7 @@
/** Serveur accessible par ssh : user home directory */
SIMULATOR_SSH_USER_HOME("simulation.ssh.userhome", n_("isisfish.config.main.simulation.ssh.userhome.description"), ""),
/** Serveur accessible par ssh : remote data path */
- SIMULATOR_SSH_DATAPATH("simulation.ssh.datapath", n_("isisfish.config.main.simulation.ssh.datapath.description"), "isis-fish" + majorVersion.toString() + "/isis-database"),
+ SIMULATOR_SSH_DATAPATH("simulation.ssh.datapath", n_("isisfish.config.main.simulation.ssh.datapath.description"), "isis-fish-" + majorVersion.toString() + "/isis-database"),
/** Serveur accessible par ssh : remote isis home install */
SIMULATOR_SSH_ISIS_HOME("simulation.ssh.isis.home", n_("isisfish.config.main.simulation.ssh.isis.home.description"), "/home3/caparmor/poussin/isis-fish-" + IsisConfig.getApiVersion()),
/** Serveur accessible par ssh : remote tmp path */
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/IsisFish.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/IsisFish.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/IsisFish.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2005 - 2011 Ifremer, CodeLutin, Chatellier Eric
+ * Copyright (C) 2005 - 2012 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
@@ -36,6 +36,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
+import java.util.Collection;
import java.util.List;
import javax.imageio.ImageIO;
@@ -46,6 +47,9 @@
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.filefilter.AbstractFileFilter;
+import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.i18n.I18n;
@@ -59,14 +63,14 @@
import com.bbn.openmap.MapBean;
import fr.ifremer.isisfish.cron.CronService;
-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.SensitivityAnalysisStorage;
import fr.ifremer.isisfish.datastore.SensitivityExportStorage;
-import fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage;
+import fr.ifremer.isisfish.datastore.SimulationPlanStorage;
import fr.ifremer.isisfish.datastore.SimulationStorage;
import fr.ifremer.isisfish.datastore.SimulatorStorage;
import fr.ifremer.isisfish.simulator.launcher.SimulationService;
@@ -142,6 +146,7 @@
try {
initVCS();
initCommunityVCS();
+ checkDuplicatedFiles();
} catch (Exception eee) {
log.warn(_("Error during vcs initialisation"), eee);
}
@@ -532,6 +537,49 @@
}
/**
+ * Look for duplicated file name in official repository and community
+ * repository and rename duplicated in community repository.
+ */
+ protected static void checkDuplicatedFiles() {
+
+ long before = System.currentTimeMillis();
+
+ // get official file list
+ Collection<File> offFiles = FileUtils.listFiles(IsisFish.config.getDatabaseDirectory(),
+ new AbstractFileFilter() {
+ @Override
+ public boolean accept(File dir, String name) {
+ return name.endsWith(".java");
+ }
+ },
+ new AbstractFileFilter() {
+ @Override
+ public boolean accept(File dir, String name) {
+ // exclude simulations directory (can take huge time)
+ return !name.equals(SimulationStorage.SIMULATION_PATH);
+ }
+ });
+
+ // compare it with community repo
+ for (File offFile : offFiles) {
+ File comFile = new File(IsisFish.config.getCommunityDatabaseDirectory()
+ + StringUtils.removeStart(offFile.getAbsolutePath(), IsisFish.config.getDatabaseDirectory().getAbsolutePath()));
+ if (comFile.isFile()) {
+ if (log.isWarnEnabled()) {
+ log.warn("Found file collision for " + comFile.getAbsolutePath());
+ }
+ File newFile = new File(comFile.getParentFile(), "Duplicated_" + comFile.getName());
+ comFile.renameTo(newFile);
+ }
+ }
+
+ if (log.isDebugEnabled()) {
+ long after = System.currentTimeMillis();
+ log.debug("Check corrumpted file in " + (after - before) + " ms");
+ }
+ }
+
+ /**
* Display dialog with files list, and specifique label.
*
* @param dialogTitle dialog title
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/CodeSourceStorage.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/CodeSourceStorage.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/CodeSourceStorage.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2006 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric
+ * Copyright (C) 2006 - 2012 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
@@ -27,11 +27,14 @@
import java.io.File;
import java.io.IOException;
+import java.util.Arrays;
import java.util.Collections;
+import java.util.Iterator;
import java.util.List;
import org.nuiton.util.FileUtil;
+import fr.ifremer.isisfish.IsisFish;
import fr.ifremer.isisfish.IsisFishRuntimeException;
/**
@@ -42,6 +45,7 @@
* {@link fr.ifremer.isisfish.datastore.ExportStorage},
* {@link fr.ifremer.isisfish.datastore.SimulationPlanStorage},
* {@link fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage}
+ * {@link fr.ifremer.isisfish.datastore.SensitivityExportStorage}
*
* Created: 21 janv. 2006 15:20:24
*
@@ -54,6 +58,53 @@
public abstract class CodeSourceStorage extends VersionStorage {
/**
+ * Location enum to look for script in official repository or
+ * community directory.
+ *
+ * Implements iterable to be used in JavaFileManager.
+ */
+ public static enum Location implements Iterable<File> {
+ OFFICIAL(IsisFish.config.getDatabaseDirectory()),
+ COMMUNITY(IsisFish.config.getCommunityDatabaseDirectory()),
+ ALL(IsisFish.config.getDatabaseDirectory(), IsisFish.config.getCommunityDatabaseDirectory());
+
+ protected File[] directory;
+ private Location(File... directory) {
+ this.directory = directory;
+ }
+
+ public File[] getDirectories() {
+ return directory;
+ }
+
+ public void setDirectory(File... directory) {
+ this.directory = directory;
+ }
+
+ /*
+ * @see java.lang.Iterable#iterator()
+ */
+ @Override
+ public Iterator<File> iterator() {
+ List<File> files = Arrays.asList(directory);
+ return files.iterator();
+ }
+ }
+
+ /**
+ * Get non empty location.
+ *
+ * @param location current location (if empty, return {@link Location#All}.
+ */
+ protected static Location[] nonEmptyLocation(Location... location) {
+ Location[] locs = location;
+ if (locs == null || locs.length == 0) {
+ locs = Location.values();
+ }
+ return locs;
+ }
+
+ /**
* Le nom de la classe sans le package.
*/
protected String name = null;
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/ExportStorage.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/ExportStorage.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/ExportStorage.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2005 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric
+ * Copyright (C) 2005 - 2012 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
@@ -65,7 +65,7 @@
public static final String EXPORT_TEMPLATE = "templates/script/export.ftl";
@SuppressWarnings("unchecked")
- private static Map<String, ExportStorage> scriptsCache = (Map<String, ExportStorage>) new ReferenceMap();
+ private static Map<String, ExportStorage> exportCache = (Map<String, ExportStorage>) new ReferenceMap();
/**
* Constructeur.
@@ -115,34 +115,38 @@
* Retourne le storage pour l'export demandée
*
* @param name le nom de l'export souhaitée
+ * @param location location to open storage file
* @return Le storage pour l'export
*/
- public static ExportStorage getExport(String name) {
- String cacheName = getContextDatabaseCacheKey(name);
- ExportStorage result = scriptsCache.get(cacheName);
+ public static ExportStorage getExport(String name, Location... location) {
+ ExportStorage result = exportCache.get(name);
if (result == null) {
- result = new ExportStorage(getContextDatabaseDirectory(),
- getExportDirectory(), name);
- scriptsCache.put(cacheName, result);
+ Location[] locs = nonEmptyLocation(location);
+ for (int i = 0; i < locs.length && result == null; i++) {
+ Location loc = locs[i];
+ for (File dir : loc.getDirectories()) {
+ ExportStorage storage = new ExportStorage(dir, new File(dir, EXPORT_PATH), name);
+ if (storage.getFile().isFile()) {
+ result = storage;
+ exportCache.put(name, result);
+ }
+ }
+ }
}
return result;
}
-
+
/**
- * Retourne le storage pour l'export demandée
- *
- * @param name le nom de l'export souhaitée
- * @return Le storage pour l'export
+ * Create new export.
+ *
+ * @param name new export to create
+ * @param location location to create storage file
+ * @return new export storage
*/
- public static ExportStorage getCommunityExport(String name) {
- String cacheName = getCommunityDatabaseCacheKey(name);
- ExportStorage result = scriptsCache.get(cacheName);
- if (result == null) {
- result = new ExportStorage(getCommunityDatabaseDirectory(),
- getCommunityExportDirectory(), name);
- scriptsCache.put(cacheName, result);
- }
- return result;
+ public static ExportStorage createExport(String name, Location location) {
+ File dir = location.getDirectories()[0];
+ ExportStorage storage = new ExportStorage(dir, new File(dir, EXPORT_PATH), name);
+ return storage;
}
/**
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2006 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric
+ * Copyright (C) 2006 - 2012 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
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2005 - 2010 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
+ * Copyright (C) 2005 - 2012 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
@@ -163,18 +163,16 @@
@Override
public void rename(String toName) throws StorageException {
try {
- String cacheName = getContextDatabaseCacheKey(getName());
- regions.remove(cacheName);
+ regions.remove(getName());
super.rename(toName);
TopiaContext tx = getStorage().beginTransaction();
FisheryRegion region = getFisheryRegion(tx);
region.setName(toName);
tx.commitTransaction();
tx.closeContext();
-
- cacheName = getContextDatabaseCacheKey(toName);
- regions.put(cacheName, this);
+ regions.put(toName, this);
+
// add storage modification event
fireDataChanged(new StorageChangeEvent(this));
@@ -222,8 +220,7 @@
* est retourné
*/
static public RegionStorage getRegion(String name) {
- String cacheName = getContextDatabaseCacheKey(name);
- RegionStorage result = regions.get(cacheName);
+ RegionStorage result = regions.get(name);
if (result == null) {
// recherche du repertoire de la region en fonction de la config
File directory = null;
@@ -243,7 +240,7 @@
if (directory.exists()) {
result = new RegionStorage(directory, name);
- regions.put(cacheName, result);
+ regions.put(name, result);
}
}
return result;
@@ -291,8 +288,7 @@
throw new StorageException("Can't create new Region", eee);
}
- String cacheName = getContextDatabaseCacheKey(name);
- regions.put(cacheName, result);
+ regions.put(name, result);
// add storage modification event
fireDataChanged(new StorageChangeEvent(result));
@@ -310,8 +306,7 @@
// add storage modification event
fireDataChanged(new StorageChangeEvent(this));
- String cacheName = getContextDatabaseCacheKey(getName());
- regions.remove(cacheName);
+ regions.remove(getName());
}
/**
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/RuleStorage.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/RuleStorage.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/RuleStorage.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2005 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric
+ * Copyright (C) 2005 - 2012 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
@@ -121,34 +121,39 @@
* Retourne le storage pour la regle demandée
*
* @param name le nom de la regle souhaitée
+ * @param location location to open storage file
* @return Le storage pour la regle
*/
- static public RuleStorage getRule(String name) {
- String cacheName = getContextDatabaseCacheKey(name);
- RuleStorage result = rulesCache.get(cacheName);
+ static public RuleStorage getRule(String name, Location... location) {
+ RuleStorage result = rulesCache.get(name);
if (result == null) {
- result = new RuleStorage(getContextDatabaseDirectory(),
- getRuleDirectory(), name);
- rulesCache.put(cacheName, result);
+ Location[] locs = nonEmptyLocation(location);
+ for (int i = 0; i < locs.length && result == null; i++) {
+ Location loc = locs[i];
+ for (File dir : loc.getDirectories()) {
+ RuleStorage storage = new RuleStorage(dir, new File(dir, RULE_PATH), name);
+ File sFile = storage.getFile();
+ if (sFile.isFile()) {
+ result = storage;
+ rulesCache.put(name, result);
+ }
+ }
+ }
}
return result;
}
/**
- * Retourne le storage pour la regle demandée
- *
- * @param name le nom de la regle souhaitée
- * @return Le storage pour la regle
+ * Create new rule.
+ *
+ * @param name new rule to create
+ * @param location location to rule storage file
+ * @return new rule storage
*/
- static public RuleStorage getCommunityRule(String name) {
- String cacheName = getCommunityDatabaseCacheKey(name);
- RuleStorage result = rulesCache.get(cacheName);
- if (result == null) {
- result = new RuleStorage(getCommunityDatabaseDirectory(),
- getCommunityRuleDirectory(), name);
- rulesCache.put(cacheName, result);
- }
- return result;
+ public static RuleStorage createRule(String name, Location location) {
+ File dir = location.getDirectories()[0];
+ RuleStorage storage = new RuleStorage(dir, new File(dir, RULE_PATH), name);
+ return storage;
}
/**
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/ScriptStorage.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/ScriptStorage.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/ScriptStorage.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2005 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric
+ * Copyright (C) 2005 - 2012 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
@@ -105,34 +105,38 @@
* Retourne le storage pour la regle demandée
*
* @param name le nom de la regle souhaitée
+ * @param location location to open storage file
* @return Le storage pour la regle
*/
- static public ScriptStorage getScript(String name) {
- String cacheName = getContextDatabaseCacheKey(name);
- ScriptStorage result = scriptsCache.get(cacheName);
+ static public ScriptStorage getScript(String name, Location... location) {
+ ScriptStorage result = scriptsCache.get(name);
if (result == null) {
- result = new ScriptStorage(getContextDatabaseDirectory(),
- getScriptDirectory(), name);
- scriptsCache.put(cacheName, result);
+ Location[] locs = nonEmptyLocation(location);
+ for (int i = 0; i < locs.length && result == null; i++) {
+ Location loc = locs[i];
+ for (File dir : loc.getDirectories()) {
+ ScriptStorage storage = new ScriptStorage(dir, new File(dir, SCRIPT_PATH), name);
+ if (storage.getFile().isFile()) {
+ result = storage;
+ scriptsCache.put(name, result);
+ }
+ }
+ }
}
return result;
}
-
+
/**
- * Retourne le storage pour la regle demandée
+ * Create new script.
*
- * @param name le nom de la regle souhaitée
- * @return Le storage pour la regle
+ * @param name new script to create
+ * @param location location to script storage file
+ * @return new rule script
*/
- static public ScriptStorage getCommunityScript(String name) {
- String cacheName = getCommunityDatabaseCacheKey(name);
- ScriptStorage result = scriptsCache.get(cacheName);
- if (result == null) {
- result = new ScriptStorage(getCommunityDatabaseDirectory(),
- getCommunityScriptDirectory(), name);
- scriptsCache.put(cacheName, result);
- }
- return result;
+ public static ScriptStorage createScript(String name, Location location) {
+ File dir = location.getDirectories()[0];
+ ScriptStorage storage = new ScriptStorage(dir, new File(dir, SCRIPT_PATH), name);
+ return storage;
}
static public void checkout() throws VCSException {
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorage.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorage.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorage.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2011 Ifremer, CodeLutin, Chatellier Eric
+ * Copyright (C) 2009 - 2012 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
@@ -117,32 +117,38 @@
* Retourne le storage pour le calculateur demandé.
*
* @param name le nom du calculateur souhaité
+ * @param location location to open storage file
* @return Le {@link SensitivityAnalysisStorage} pour le calculateur
*/
- public static SensitivityAnalysisStorage getSensitivityAnalysis(String name) {
- String cacheName = getContextDatabaseCacheKey(name);
- SensitivityAnalysisStorage result = sensitivityCache.get(cacheName);
+ static public SensitivityAnalysisStorage getSensitivityAnalysis(String name, Location... location) {
+ SensitivityAnalysisStorage result = sensitivityCache.get(name);
if (result == null) {
- result = new SensitivityAnalysisStorage(getContextDatabaseDirectory(), getSensitivityAnalysisDirectory(), name);
- sensitivityCache.put(cacheName, result);
+ Location[] locs = nonEmptyLocation(location);
+ for (int i = 0; i < locs.length && result == null; i++) {
+ Location loc = locs[i];
+ for (File dir : loc.getDirectories()) {
+ SensitivityAnalysisStorage storage = new SensitivityAnalysisStorage(dir, new File(dir, SENSITIVITY_ANALYSIS_PATH), name);
+ if (storage.getFile().isFile()) {
+ result = storage;
+ sensitivityCache.put(name, result);
+ }
+ }
+ }
}
return result;
}
-
+
/**
- * Retourne le storage pour le calculateur demandé.
- *
- * @param name le nom du calculateur souhaité
- * @return Le {@link SensitivityAnalysisStorage} pour le calculateur
+ * Create new sensitivity analysis.
+ *
+ * @param name new sensitivity analysis to create
+ * @param location location to sensitivity analysis storage file
+ * @return new sensitivity analysis storage
*/
- 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;
+ public static SensitivityAnalysisStorage createSensitivityAnalysis(String name, Location location) {
+ File dir = location.getDirectories()[0];
+ SensitivityAnalysisStorage storage = new SensitivityAnalysisStorage(dir, new File(dir, SENSITIVITY_ANALYSIS_PATH), name);
+ return storage;
}
/**
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SensitivityExportStorage.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SensitivityExportStorage.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SensitivityExportStorage.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -107,34 +107,38 @@
* Retourne le storage pour l'export demandé.
*
* @param name le nom de la export souhaitée
+ * @param location location to open storage file
* @return Le storage pour l'export
*/
- public static SensitivityExportStorage getSensitivityExport(String name) {
- String cacheName = getContextDatabaseCacheKey(name);
- SensitivityExportStorage result = sensitivityExportsCache.get(cacheName);
+ public static SensitivityExportStorage getSensitivityExport(String name, Location... location) {
+ SensitivityExportStorage result = sensitivityExportsCache.get(name);
if (result == null) {
- result = new SensitivityExportStorage(getContextDatabaseDirectory(),
- getSensitivityExportDirectory(), name);
- sensitivityExportsCache.put(cacheName, result);
+ Location[] locs = nonEmptyLocation(location);
+ for (int i = 0; i < locs.length && result == null; i++) {
+ Location loc = locs[i];
+ for (File dir : loc.getDirectories()) {
+ SensitivityExportStorage storage = new SensitivityExportStorage(dir, new File(dir, SENSITIVITY_EXPORT_PATH), name);
+ if (storage.getFile().isFile()) {
+ result = storage;
+ sensitivityExportsCache.put(name, result);
+ }
+ }
+ }
}
return result;
}
/**
- * Retourne le storage pour l'export demandé.
- *
- * @param name le nom de l'export souhaitée
- * @return Le storage pour l'export
+ * Create new sensitivity export.
+ *
+ * @param name new sensitivity export to create
+ * @param location location to sensitivity export storage file
+ * @return new sensitivity export storage
*/
- public static SensitivityExportStorage getCommunitySensitivityExport(String name) {
- String cacheName = getCommunityDatabaseCacheKey(name);
- SensitivityExportStorage result = sensitivityExportsCache.get(cacheName);
- if (result == null) {
- result = new SensitivityExportStorage(getCommunityDatabaseDirectory(),
- getCommunitySensitivityExportDirectory(), name);
- sensitivityExportsCache.put(cacheName, result);
- }
- return result;
+ public static SensitivityExportStorage createSensitivityExport(String name, Location location) {
+ File dir = location.getDirectories()[0];
+ SensitivityExportStorage storage = new SensitivityExportStorage(dir, new File(dir, SENSITIVITY_EXPORT_PATH), name);
+ return storage;
}
/**
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulationPlanStorage.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulationPlanStorage.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulationPlanStorage.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2005 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric
+ * Copyright (C) 2005 - 2012 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
@@ -118,34 +118,38 @@
* Retourne le storage pour le plan demandé.
*
* @param name le nom du plan souhaité
+ * @param location location to open storage file
* @return Le storage pour le plan
*/
- static public SimulationPlanStorage getSimulationPlan(String name) {
- String cacheName = getContextDatabaseCacheKey(name);
- SimulationPlanStorage result = plansCache.get(cacheName);
+ static public SimulationPlanStorage getSimulationPlan(String name, Location... location) {
+ SimulationPlanStorage result = plansCache.get(name);
if (result == null) {
- result = new SimulationPlanStorage(getContextDatabaseDirectory(),
- getSimulationPlanDirectory(), name);
- plansCache.put(cacheName, result);
+ Location[] locs = nonEmptyLocation(location);
+ for (int i = 0; i < locs.length && result == null; i++) {
+ Location loc = locs[i];
+ for (File dir : loc.getDirectories()) {
+ SimulationPlanStorage storage = new SimulationPlanStorage(dir, new File(dir, SIMULATION_PLAN_PATH), name);
+ if (storage.getFile().isFile()) {
+ result = storage;
+ plansCache.put(name, result);
+ }
+ }
+ }
}
return result;
}
-
+
/**
- * Retourne le storage pour le plan demandé.
- *
- * @param name le nom du plan souhaité
- * @return Le storage pour le plan
+ * Create new simulation plan.
+ *
+ * @param name new simulation plan to create
+ * @param location location to simulation plan storage file
+ * @return new simulation plan storage
*/
- 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;
+ public static SimulationPlanStorage createSimulationPlan(String name, Location location) {
+ File dir = location.getDirectories()[0];
+ SimulationPlanStorage storage = new SimulationPlanStorage(dir, new File(dir, SIMULATION_PLAN_PATH), name);
+ return storage;
}
/**
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulationStorage.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulationStorage.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulationStorage.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -246,7 +246,7 @@
*
* @return simulation control file
*/
- protected static File getSimulationControlFile(String id) {
+ public static File getSimulationControlFile(String id) {
File result = new File(getSimulationDirectory(id), CONTROL_FILENAME);
return result;
}
@@ -462,6 +462,9 @@
* @return true si la simulation existe déjà
*/
public static boolean localyExists(String name) {
+
+ // FIXME echatellier 20120229 this method can tak huge time
+ // to replace with Directory existence
return getSimulationNames().contains(name);
}
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulatorStorage.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulatorStorage.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/SimulatorStorage.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2005 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric
+ * Copyright (C) 2005 - 2012 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
@@ -105,36 +105,38 @@
* {@link SimulatorStorage} is cached by name.
*
* @param name le nom de la regle souhaitée
+ * @param location location to open storage file
* @return Le storage pour la regle
*/
- static public SimulatorStorage getSimulator(String name) {
- String cacheName = getContextDatabaseCacheKey(name);
- SimulatorStorage result = simulatorsCache.get(cacheName);
+ static public SimulatorStorage getSimulator(String name, Location... location) {
+ SimulatorStorage result = simulatorsCache.get(name);
if (result == null) {
- result = new SimulatorStorage(getContextDatabaseDirectory(),
- getSimulatorDirectory(), name);
- simulatorsCache.put(cacheName, result);
+ Location[] locs = nonEmptyLocation(location);
+ for (int i = 0; i < locs.length && result == null; i++) {
+ Location loc = locs[i];
+ for (File dir : loc.getDirectories()) {
+ SimulatorStorage storage = new SimulatorStorage(dir, new File(dir, SIMULATOR_PATH), name);
+ if (storage.getFile().isFile()) {
+ result = storage;
+ simulatorsCache.put(name, result);
+ }
+ }
+ }
}
return result;
}
-
+
/**
- * Retourne le storage pour le simulateur demandée.
+ * Create new simulation plan.
*
- * {@link SimulatorStorage} is cached by name.
- *
- * @param name le nom de la regle souhaitée
- * @return Le storage pour la regle
+ * @param name new simulation plan to create
+ * @param location location to simulation plan storage file
+ * @return new simulation plan storage
*/
- static public SimulatorStorage getCommunitySimulator(String name) {
- String cacheName = getContextDatabaseCacheKey(name);
- SimulatorStorage result = simulatorsCache.get(cacheName);
- if (result == null) {
- result = new SimulatorStorage(getCommunityDatabaseDirectory(),
- getCommunitySimulatorDirectory(), name);
- simulatorsCache.put(cacheName, result);
- }
- return result;
+ public static SimulatorStorage createSimulator(String name, Location location) {
+ File dir = location.getDirectories()[0];
+ SimulatorStorage storage = new SimulatorStorage(dir, new File(dir, SIMULATOR_PATH), name);
+ return storage;
}
static public void checkout() throws VCSException {
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2006 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric
+ * Copyright (C) 2006 - 2012 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
@@ -106,30 +106,6 @@
}
/**
- * Get cache storage key to use depending on context storage used.
- *
- * Two simulation must have their own cache.
- *
- * @return context cache key
- */
- protected static String getContextDatabaseCacheKey(String key) {
- String result = getContextDatabaseDirectory().getAbsolutePath() + key;
- return result;
- }
-
- /**
- * Get cache storage key to use depending on context storage used.
- *
- * Two simulation must have their own cache and community scripts too.
- *
- * @return context cache key
- */
- protected static String getCommunityDatabaseCacheKey(String key) {
- String result = getCommunityDatabaseDirectory().getAbsolutePath() + key;
- return result;
- }
-
- /**
* Get VCS instance for storage file.
*
* @return vcs instance
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -155,7 +155,7 @@
Source xmlSource=new SAXSource(new InputSource(new ByteArrayInputStream(unformattedXml.getBytes("UTF-8"))));
StreamResult res = new StreamResult(new ByteArrayOutputStream());
serializer.transform(xmlSource, res);
- return new String(((ByteArrayOutputStream)res.getOutputStream()).toByteArray());
+ return new String(((ByteArrayOutputStream)res.getOutputStream()).toByteArray(), "UTF-8");
} catch (Exception e) {
throw new IsisFishRuntimeException("Can't format xml", e);
}
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterImpl.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterImpl.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameterImpl.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -488,12 +488,13 @@
for (String name : planList) {
if (name != null && !"".equals(name)) {
try {
- SimulationPlan plan = SimulationPlanStorage
- .getSimulationPlan(name)
- .getNewSimulationPlanInstance();
- StorageHelper.populateStorageParams(planIndex++,
- getRegion().getStorage(), plan, propertiesParameters, "plan");
- simulationPlans.add(plan);
+ SimulationPlanStorage planStorage = SimulationPlanStorage.getSimulationPlan(name);
+ if (planStorage != null) { // since 4.0.0.3 can return null
+ SimulationPlan plan = planStorage.getNewSimulationPlanInstance();
+ StorageHelper.populateStorageParams(planIndex++,
+ getRegion().getStorage(), plan, propertiesParameters, "plan");
+ simulationPlans.add(plan);
+ }
} catch (IsisFishException eee) {
if (log.isWarnEnabled()) {
log.warn("Can't find plan: " + name, eee);
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -105,7 +105,7 @@
try {
// remove simulation if already exists
- if (SimulationStorage.exists(id)) {
+ if (SimulationStorage.localyExists(id)) {
if (log.isWarnEnabled()) {
log.warn("Warning , simulation " + id + " aleady exists");
log.warn("Deleting it before doing simulation");
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -712,6 +712,8 @@
}
}
}
+
+ control.setText(_("isisfish.message.simulation.ended"));
}
}
@@ -732,7 +734,7 @@
// en sens inverse, il le fera carrement moins souvent
for (int simulationIndex = numberOfSimulation - 1; simulationIndex >= 0; --simulationIndex) {
String currentId = asPrefixName + "_" + simulationIndex;
- if (SimulationStorage.localyExists(currentId)) {
+ if (SimulationStorage.getSimulationControlFile(currentId).isFile()) {
SimulationControl currentSimulationControl = new SimulationControl(
currentId);
SimulationStorage.readControl(currentId,
Property changes on: branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityAnalysis.java
___________________________________________________________________
Deleted: svn:mergeinfo
-
Property changes on: branches/4.1/src/main/java/fr/ifremer/isisfish/ui/input/InputOneEquationUI.jaxx
___________________________________________________________________
Deleted: svn:mergeinfo
-
Property changes on: branches/4.1/src/main/java/fr/ifremer/isisfish/ui/input/PopulationUI.jaxx
___________________________________________________________________
Deleted: svn:mergeinfo
-
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/ui/models/common/StringComboModel.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/ui/models/common/StringComboModel.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/ui/models/common/StringComboModel.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2011 Ifremer, CodeLutin, Chatellier Eric
+ * Copyright (C) 2011 - 2012 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
@@ -84,6 +84,15 @@
setSelectedItem(null);
}
+ public void addString(String string) {
+ stringList.add(string);
+ fireIntervalAdded(this, stringList.size() - 1, stringList.size());
+ }
+
+ public boolean containsString(String string) {
+ return stringList.contains(string);
+ }
+
/*
* @see javax.swing.ListModel#getElementAt(int)
*/
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/ui/result/ResultHandler.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/ui/result/ResultHandler.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/ui/result/ResultHandler.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -92,7 +92,8 @@
}
@Override
public void simulationStop(SimulationService simService, SimulationJob job) {
- initSimulationList(resultUI);
+ StringComboModel model = (StringComboModel)resultUI.getSimulationComboBox().getModel();
+ model.addString(job.getId());
}
@Override
public void clearJobDone(SimulationService simService) {
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2006 - 2010 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
+ * Copyright (C) 2006 - 2012 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
@@ -66,6 +66,7 @@
import fr.ifremer.isisfish.IsisFish;
import fr.ifremer.isisfish.IsisFishRuntimeException;
import fr.ifremer.isisfish.datastore.CodeSourceStorage;
+import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location;
import fr.ifremer.isisfish.datastore.ExportStorage;
import fr.ifremer.isisfish.datastore.FormuleStorage;
import fr.ifremer.isisfish.datastore.JavaSourceStorage;
@@ -291,26 +292,26 @@
Language.JAVA);
break;
case CommunitySimulationPlan:
- script = SimulationPlanStorage.getCommunitySimulationPlan(fileName);
+ script = SimulationPlanStorage.getSimulationPlan(fileName, Location.COMMUNITY);
break;
case CommunityExport:
- script = ExportStorage.getCommunityExport(fileName);
+ script = ExportStorage.createExport(fileName, Location.COMMUNITY);
break;
case CommunityRule:
- script = RuleStorage.getCommunityRule(fileName);
+ script = RuleStorage.createRule(fileName, Location.COMMUNITY);
break;
case CommunityScript:
- script = ScriptStorage.getCommunityScript(fileName);
+ script = ScriptStorage.createScript(fileName, Location.COMMUNITY);
break;
case CommunitySimulator:
- script = SimulatorStorage.getCommunitySimulator(fileName);
+ script = SimulatorStorage.createSimulator(fileName, Location.COMMUNITY);
break;
case CommunitySensitivity:
- script = SensitivityAnalysisStorage.getCommunitySensitivityAnalysis(fileName);
+ script = SensitivityAnalysisStorage.createSensitivityAnalysis(fileName, Location.COMMUNITY);
break;
case CommunitySensitivityExport:
script = SensitivityExportStorage
- .getCommunitySensitivityExport(fileName);
+ .createSensitivityExport(fileName, Location.COMMUNITY);
break;
default:
if (log.isErrorEnabled()) {
@@ -435,46 +436,46 @@
}
break;
case Rule:
- script = RuleStorage.getRule(file.getName());
+ script = RuleStorage.getRule(file.getName(), Location.OFFICIAL);
break;
case SimulationPlan:
- script = SimulationPlanStorage.getSimulationPlan(file.getName());
+ script = SimulationPlanStorage.getSimulationPlan(file.getName(), Location.OFFICIAL);
break;
case Export:
- script = ExportStorage.getExport(file.getName());
+ script = ExportStorage.getExport(file.getName(), Location.OFFICIAL);
break;
case Script:
- script = ScriptStorage.getScript(file.getName());
+ script = ScriptStorage.getScript(file.getName(), Location.OFFICIAL);
break;
case Simulator:
- script = SimulatorStorage.getSimulator(file.getName());
+ script = SimulatorStorage.getSimulator(file.getName(), Location.OFFICIAL);
break;
case Sensitivity:
- script = SensitivityAnalysisStorage.getSensitivityAnalysis(file.getName());
+ script = SensitivityAnalysisStorage.getSensitivityAnalysis(file.getName(), Location.OFFICIAL);
break;
case SensitivityExport:
- script = SensitivityExportStorage.getSensitivityExport(file.getName());
+ script = SensitivityExportStorage.getSensitivityExport(file.getName(), Location.OFFICIAL);
break;
case CommunityRule:
- script = RuleStorage.getCommunityRule(file.getName());
+ script = RuleStorage.getRule(file.getName(), Location.COMMUNITY);
break;
case CommunitySimulationPlan:
- script = SimulationPlanStorage.getCommunitySimulationPlan(file.getName());
+ script = SimulationPlanStorage.getSimulationPlan(file.getName(), Location.COMMUNITY);
break;
case CommunityExport:
- script = ExportStorage.getCommunityExport(file.getName());
+ script = ExportStorage.getExport(file.getName(), Location.COMMUNITY);
break;
case CommunityScript:
- script = ScriptStorage.getCommunityScript(file.getName());
+ script = ScriptStorage.getScript(file.getName(), Location.COMMUNITY);
break;
case CommunitySimulator:
- script = SimulatorStorage.getCommunitySimulator(file.getName());
+ script = SimulatorStorage.getSimulator(file.getName(), Location.COMMUNITY);
break;
case CommunitySensitivity:
- script = SensitivityAnalysisStorage.getCommunitySensitivityAnalysis(file.getName());
+ script = SensitivityAnalysisStorage.getSensitivityAnalysis(file.getName(), Location.COMMUNITY);
break;
case CommunitySensitivityExport:
- script = SensitivityExportStorage.getCommunitySensitivityExport(file.getName());
+ script = SensitivityExportStorage.getSensitivityExport(file.getName(), Location.COMMUNITY);
break;
default:
log.fatal("ScriptType unknown: " + file.getName());
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivitySecondPassUI.jaxx
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivitySecondPassUI.jaxx 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivitySecondPassUI.jaxx 2012-03-05 10:52:26 UTC (rev 3633)
@@ -54,7 +54,14 @@
if (log.isDebugEnabled()) {
log.debug("Refresh second pass UI simulations list");
}
- fieldSensitivitySimulationSelect.setModel(getSensitivitySimulationModel());
+ StringComboModel model = (StringComboModel)fieldSensitivitySimulationSelect.getModel();
+ String simulationName = job.getId();
+ if (simulationName.startsWith("as_")) {
+ String masterSensitivityName = simulationName.substring(0, simulationName.lastIndexOf("_"));
+ if (!model.containsString(masterSensitivityName)) {
+ model.addString(masterSensitivityName);
+ }
+ }
}
@Override
@@ -68,7 +75,7 @@
* Model de contenu de la liste des nom de simulations
*/
public StringComboModel getSensitivitySimulationModel() {
- java.util.List<String> asNames = new ArrayList<String>();
+ List<String> asNames = new ArrayList<String>();
for (String simulationName : SimulationStorage.getSimulationNames()) {
if (simulationName.startsWith("as_")) {
String masterSensitivityName = simulationName.substring(0, simulationName.lastIndexOf("_"));
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
$Id$
$HeadURL$
%%
- Copyright (C) 2005 - 2011 Ifremer, CodeLutin, Chatellier Eric
+ Copyright (C) 2005 - 2012 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
@@ -93,7 +93,8 @@
@Override
public void simulationStop(SimulationService simService, SimulationJob job) {
- fieldSimulParamsSelect.setModel(getSimulParamsSelectModel(true));
+ StringComboModel model = (StringComboModel)fieldSimulParamsSelect.getModel();
+ model.addString(job.getId());
}
@Override
@@ -306,13 +307,8 @@
}
protected ComboBoxModel getSimulParamsSelectModel(boolean force) {
- java.util.List<String> items = simulAction.getFilteredOldSimulatorNames(force);
- DefaultComboBoxModel result = new DefaultComboBoxModel();
- if (items != null) {
- for (String s : items){
- result.addElement(s);
- }
- }
+ List<String> items = simulAction.getFilteredOldSimulatorNames(force);
+ StringComboModel result = new StringComboModel(items);
return result;
}
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/ui/widget/FilterableComboBox.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/ui/widget/FilterableComboBox.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/ui/widget/FilterableComboBox.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -3,7 +3,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2011 Codelutin, Chatellier Eric
+ * Copyright (C) 2012 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
@@ -32,16 +32,19 @@
import java.util.ArrayList;
import java.util.List;
+import javax.swing.AbstractListModel;
import javax.swing.ComboBoxModel;
-import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
+import javax.swing.event.ListDataEvent;
+import javax.swing.event.ListDataListener;
-import org.jdesktop.swingx.JXComboBox;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTextField;
import org.nuiton.util.Resource;
@@ -54,8 +57,10 @@
* Last update : $Date$
* By : $Author$
*/
-public class FilterableComboBox extends JPanel {
+public class FilterableComboBox extends JPanel implements ListDataListener {
+ private static Log log = LogFactory.getLog(FilterableComboBox.class);
+
/** serialVersionUID. */
private static final long serialVersionUID = -6669320998140538372L;
@@ -69,13 +74,6 @@
protected boolean filtering = false;
- /*
- * Il faut obligatoirement que la liste filtrées soit mise en cache, car
- * l'appeler dans le getElementAt() comme c'était fait avant dégrade énormement
- * les perfs, un truc de dingue.
- */
- protected List<Object> itemCache;
-
public FilterableComboBox() {
actionListeners = new ArrayList<ActionListener>();
buildLayout();
@@ -86,58 +84,71 @@
setModel(model);
}
- class FilterComboBoxModel extends DefaultComboBoxModel {
+ class FilterComboBoxModel extends AbstractListModel implements ComboBoxModel {
/** serialVersionUID. */
private static final long serialVersionUID = 6256289874593024153L;
protected ComboBoxModel model;
+ protected List<Integer> realIndexes = new ArrayList<Integer>();
+
+ protected Object selectedItem;
+
public FilterComboBoxModel(ComboBoxModel model) {
this.model = model;
+ fireDataChanged();
}
+ public ComboBoxModel getModel() {
+ return model;
+ }
+
@Override
public int getSize() {
- int size = 0;
- if (itemCache != null) {
- size = itemCache.size();
- } else {
- size = model.getSize();
- }
+ int size = realIndexes.size();
return size;
}
@Override
public Object getElementAt(int index) {
- Object element = null;
- if (itemCache != null) {
- element = itemCache.get(index);
- } else {
- element = model.getElementAt(index);
- }
+ int realIndex = realIndexes.get(index);
+ Object element = model.getElementAt(realIndex);
return element;
}
public void fireDataChanged() {
filtering = true;
- super.fireContentsChanged(this, 0, model.getSize());
-
+
+ if (log.isDebugEnabled()) {
+ log.debug("Refreshing real indexes list");
+ }
+
// filter list
- int delegateSize = model.getSize();
- itemCache = new ArrayList<Object>(delegateSize);
- for (int i = 0; i < delegateSize; ++i) {
+ realIndexes.clear();
+ for (int i = 0; i < model.getSize(); ++i) {
Object element = model.getElementAt(i);
- if (element.toString().matches(".*" + filterField.getText() + ".*")) {
- itemCache.add(element);
+ if (element.toString().contains(filterField.getText())) {
+ realIndexes.add(i);
}
}
+
+ fireIntervalRemoved(this, 0, model.getSize());
+ fireIntervalAdded(this, 0, realIndexes.size());
filtering = false;
}
-
-
+
+ @Override
+ public void setSelectedItem(Object anItem) {
+ this.selectedItem = anItem;
+ }
+
+ @Override
+ public Object getSelectedItem() {
+ return selectedItem;
+ }
}
-
+
class FilterDocumentListener implements DocumentListener {
@Override
public void insertUpdate(DocumentEvent e) {
@@ -153,9 +164,9 @@
public void changedUpdate(DocumentEvent e) {
updateFilter();
}
-
+
protected void updateFilter() {
- ((FilterComboBoxModel)dataBox.getModel()).fireDataChanged();
+ ((FilterComboBoxModel) dataBox.getModel()).fireDataChanged();
resetButton.setEnabled(!filterField.getText().isEmpty());
}
}
@@ -188,7 +199,7 @@
* Build layout.
*/
private void buildLayout() {
- dataBox = new JXComboBox();
+ dataBox = new JComboBox();
dataBox.addActionListener(new ComboBoxActionListener());
filterField = new JXTextField(_("isisfish.common.filter"));
// fix size
@@ -214,13 +225,18 @@
* @param model model to set
*/
public void setModel(ComboBoxModel model) {
+ model.addListDataListener(this);
dataBox.setModel(new FilterComboBoxModel(model));
}
+ public ComboBoxModel getModel() {
+ return ((FilterComboBoxModel)dataBox.getModel()).getModel();
+ }
+
public Object getSelectedItem() {
return dataBox.getSelectedItem();
}
-
+
public void setSelectedItem(Object object) {
dataBox.setSelectedItem(object);
}
@@ -232,4 +248,43 @@
public boolean removeActionListener(ActionListener o) {
return actionListeners.remove(o);
}
+
+ /*
+ * @see javax.swing.event.ListDataListener#intervalAdded(javax.swing.event.ListDataEvent)
+ */
+ @Override
+ public void intervalAdded(ListDataEvent e) {
+ if (!filtering) {
+ if (log.isDebugEnabled()) {
+ log.debug("intervalAdded : fireDataChanged");
+ }
+ ((FilterComboBoxModel) dataBox.getModel()).fireDataChanged();
+ }
+ }
+
+ /*
+ * @see javax.swing.event.ListDataListener#intervalRemoved(javax.swing.event.ListDataEvent)
+ */
+ @Override
+ public void intervalRemoved(ListDataEvent e) {
+ if (!filtering) {
+ if (log.isDebugEnabled()) {
+ log.debug("intervalRemoved : fireDataChanged");
+ }
+ ((FilterComboBoxModel) dataBox.getModel()).fireDataChanged();
+ }
+ }
+
+ /*
+ * @see javax.swing.event.ListDataListener#contentsChanged(javax.swing.event.ListDataEvent)
+ */
+ @Override
+ public void contentsChanged(ListDataEvent e) {
+ if (!filtering) {
+ if (log.isDebugEnabled()) {
+ log.debug("contentsChanged : fireDataChanged");
+ }
+ ((FilterComboBoxModel) dataBox.getModel()).fireDataChanged();
+ }
+ }
}
Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java
===================================================================
--- branches/4.1/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -51,6 +51,7 @@
import com.sun.tools.javac.api.JavacTool;
import fr.ifremer.isisfish.IsisFish;
+import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location;
import fr.ifremer.isisfish.datastore.JavaSourceStorage;
/**
@@ -189,11 +190,12 @@
List<File> classpath = new ArrayList<File>();
classpath.add(rootSrc.getAbsoluteFile());
- // FIXME echatellier 20110617 : hack depuis qu'il y a un
- // nouveau dossier de sources de script "communauté", mais
- // qui peu dépendre de sources du dossier "officiel"
- if (rootSrc.equals(IsisFish.config.getCommunityDatabaseDirectory())) {
- classpath.add(IsisFish.config.getDatabaseDirectory());
+
+ // works better than
+ // fileManager.setLocation(StandardLocation.SOURCE_PATH, Location.ALL);
+ // for some test
+ for (File dir : Location.ALL.getDirectories()) {
+ classpath.add(dir);
}
result = compile(classpath, src, dest, out);
Property changes on: branches/4.1/src/main/java/fr/ifremer/isisfish/util/ssh/SSHUtils.java
___________________________________________________________________
Deleted: svn:mergeinfo
-
Property changes on: branches/4.1/src/site/resources/images/isis-simulation.png
___________________________________________________________________
Deleted: svn:mergeinfo
-
Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/AbstractIsisFishTest.java
===================================================================
--- branches/4.1/src/test/java/fr/ifremer/isisfish/AbstractIsisFishTest.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/test/java/fr/ifremer/isisfish/AbstractIsisFishTest.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -36,6 +36,7 @@
import org.nuiton.util.FileUtil;
import fr.ifremer.isisfish.datastore.AutoMigrationIsisH2Config;
+import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location;
import freemarker.cache.ClassTemplateLoader;
import freemarker.ext.beans.BeansWrapper;
import freemarker.template.Configuration;
@@ -56,7 +57,7 @@
*/
public abstract class AbstractIsisFishTest {
- protected static File dirDatabase;
+ protected static File dirIsisBase;
/**
* Return specific temp dir.
@@ -86,12 +87,12 @@
public static void init() throws Exception {
File mavenTestDir = getTestDirectory();
- dirDatabase = FileUtil.createTempDirectory("isisdbtest", "", mavenTestDir);
+ dirIsisBase = FileUtil.createTempDirectory("isisdbtest", "", mavenTestDir);
- System.setProperty("user.home", dirDatabase.getAbsolutePath());
+ System.setProperty("user.home", dirIsisBase.getAbsolutePath());
System.setProperty(IsisConfig.Option.LAUNCH_UI.key, "false");
- System.setProperty(IsisConfig.Option.DATABASE_DIRECTORY.key, dirDatabase.getAbsolutePath());
- System.setProperty(IsisConfig.Option.SSH_KEY_FILE.key, dirDatabase.getAbsolutePath() + File.separator + "ssh" + File.separator + "isis_test_dsa");
+ System.setProperty(IsisConfig.Option.ISIS_HOME_DIRECTORY.key, dirIsisBase.getAbsolutePath());
+ System.setProperty(IsisConfig.Option.SSH_KEY_FILE.key, dirIsisBase.getAbsolutePath() + File.separator + "ssh" + File.separator + "isis_test_dsa");
IsisFish.init();
IsisFish.initVCS();
@@ -101,7 +102,7 @@
AutoMigrationIsisH2Config.setTestMigrationCallBack();
FileUtils.copyDirectory(new File("src/test/resources/test-database"),
- dirDatabase, new FileFilter() {
+ IsisFish.config.getDatabaseDirectory(), new FileFilter() {
@Override
public boolean accept(File pathname) {
boolean result = true;
@@ -122,6 +123,11 @@
public void resetConfig() throws ArgumentsParserException {
IsisFish.config = new IsisConfig();
IsisFish.config.parse();
+
+ // fix static cache in enum
+ Location.OFFICIAL.setDirectory(IsisFish.config.getDatabaseDirectory());
+ Location.COMMUNITY.setDirectory(IsisFish.config.getCommunityDatabaseDirectory());
+ Location.ALL.setDirectory(IsisFish.config.getDatabaseDirectory(), IsisFish.config.getCommunityDatabaseDirectory());
}
/**
@@ -130,7 +136,7 @@
* @return current database directory
*/
protected static File getCurrentDatabaseDirectory() {
- return dirDatabase;
+ return dirIsisBase;
}
/**
@@ -139,9 +145,9 @@
@AfterClass
public static void clean() {
System.clearProperty("user.home");
- if (dirDatabase != null) {
- FileUtil.deleteRecursively(dirDatabase);
- dirDatabase = null;
+ if (dirIsisBase != null) {
+ FileUtil.deleteRecursively(dirIsisBase);
+ dirIsisBase = null;
}
}
Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/ExportStorageTest.java
===================================================================
--- branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/ExportStorageTest.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/ExportStorageTest.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2010 Ifremer, CodeLutin
+ * Copyright (C) 2009 - 2012 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
@@ -37,6 +37,7 @@
import fr.ifremer.isisfish.AbstractIsisFishTest;
import fr.ifremer.isisfish.IsisFish;
+import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location;
import freemarker.template.Configuration;
import freemarker.template.Template;
@@ -65,7 +66,7 @@
String fileName = "TestExport1";
- ExportStorage exportStorage = ExportStorage.getExport(fileName);
+ ExportStorage exportStorage = ExportStorage.createExport(fileName, Location.COMMUNITY);
// get template
Template template = freemarkerConfiguration
Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/RuleStorageTest.java
===================================================================
--- branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/RuleStorageTest.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/RuleStorageTest.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2010 Ifremer, CodeLutin
+ * Copyright (C) 2009 - 2012 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
@@ -37,6 +37,7 @@
import fr.ifremer.isisfish.AbstractIsisFishTest;
import fr.ifremer.isisfish.IsisFish;
+import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location;
import freemarker.template.Configuration;
import freemarker.template.Template;
@@ -65,7 +66,7 @@
String fileName = "TestRule1";
- RuleStorage ruleStorage = RuleStorage.getRule(fileName);
+ RuleStorage ruleStorage = RuleStorage.createRule(fileName, Location.OFFICIAL);
// get template
Template template = freemarkerConfiguration
Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/ScriptStorageTest.java
===================================================================
--- branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/ScriptStorageTest.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/ScriptStorageTest.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2010 Ifremer, CodeLutin
+ * Copyright (C) 2009 - 2012 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
@@ -38,6 +38,7 @@
import fr.ifremer.isisfish.AbstractIsisFishTest;
import fr.ifremer.isisfish.IsisFish;
+import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location;
import freemarker.template.Configuration;
import freemarker.template.Template;
@@ -69,10 +70,10 @@
String content1 = "public class test { public static void main(String[]args) {System.out.println(\"The test 1 :)\")} ";
String content2 = "public class test { public static void main(String[]args) {System.out.println(\"The test 2 :) with different length :(\")} ";
- ScriptStorage script = ScriptStorage.getScript("test");
+ ScriptStorage script = ScriptStorage.createScript("test", Location.COMMUNITY);
try {
- System.out.println("File: " + script.getFile());
- System.out.println("Content: '" + script.getContent() + "'");
+ //System.out.println("File: " + script.getFile());
+ //System.out.println("Content: '" + script.getContent() + "'");
Assert.assertFalse(script.exists());
Assert.assertEquals("", script.getContent());
@@ -80,11 +81,11 @@
script.setContent(content1);
Assert.assertTrue(script.exists());
- System.out.println("Content: '" + script.getContent() + "'");
+ //System.out.println("Content: '" + script.getContent() + "'");
Assert.assertEquals(content1, script.getContent());
FileUtil.writeString(script.getFile(), content2);
- System.out.println("Content: '" + script.getContent() + "'");
+ //System.out.println("Content: '" + script.getContent() + "'");
Assert.assertEquals(content2, script.getContent());
} finally {
script.delete(false);
@@ -97,7 +98,7 @@
String fileName = "TestScript1";
- ScriptStorage scriptStorage = ScriptStorage.getScript(fileName);
+ ScriptStorage scriptStorage = ScriptStorage.createScript(fileName, Location.COMMUNITY);
// get template
Template template = freemarkerConfiguration
Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorageTest.java
===================================================================
--- branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorageTest.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SensitivityAnalysisStorageTest.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2010 Ifremer, CodeLutin
+ * Copyright (C) 2009 - 2012 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
@@ -37,6 +37,7 @@
import fr.ifremer.isisfish.AbstractIsisFishTest;
import fr.ifremer.isisfish.IsisFish;
+import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location;
import freemarker.template.Configuration;
import freemarker.template.Template;
@@ -66,7 +67,7 @@
String fileName = "TestSensitivityAnalysis1";
SensitivityAnalysisStorage sensitivityStorage = SensitivityAnalysisStorage
- .getSensitivityAnalysis(fileName);
+ .createSensitivityAnalysis(fileName, Location.OFFICIAL);
// get template
Template template = freemarkerConfiguration
Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SensitivityExportStorageTest.java
===================================================================
--- branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SensitivityExportStorageTest.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SensitivityExportStorageTest.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2010 Ifremer, CodeLutin
+ * Copyright (C) 2009 - 2012 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
@@ -37,6 +37,7 @@
import fr.ifremer.isisfish.AbstractIsisFishTest;
import fr.ifremer.isisfish.IsisFish;
+import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location;
import freemarker.template.Configuration;
import freemarker.template.Template;
@@ -65,7 +66,7 @@
String fileName = "TestSensitivityExport1";
- SensitivityExportStorage sensitivityExportStorage = SensitivityExportStorage.getSensitivityExport(fileName);
+ SensitivityExportStorage sensitivityExportStorage = SensitivityExportStorage.createSensitivityExport(fileName, Location.COMMUNITY);
// get template
Template template = freemarkerConfiguration
Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SimulationPlanStorageTest.java
===================================================================
--- branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SimulationPlanStorageTest.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SimulationPlanStorageTest.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2011 Ifremer, CodeLutin, Chatellier Eric
+ * Copyright (C) 2009 - 2012 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
@@ -37,6 +37,7 @@
import fr.ifremer.isisfish.AbstractIsisFishTest;
import fr.ifremer.isisfish.IsisFish;
+import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location;
import freemarker.template.Configuration;
import freemarker.template.Template;
@@ -66,7 +67,7 @@
String fileName = "TestSimulationPlan1";
SimulationPlanStorage simulationPlanStorage = SimulationPlanStorage
- .getSimulationPlan(fileName);
+ .createSimulationPlan(fileName, Location.OFFICIAL);
// get template
Template template = freemarkerConfiguration
Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SimulatorStorageTest.java
===================================================================
--- branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SimulatorStorageTest.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/test/java/fr/ifremer/isisfish/datastore/SimulatorStorageTest.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2010 Ifremer, CodeLutin
+ * Copyright (C) 2009 - 2012 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
@@ -41,6 +41,7 @@
import fr.ifremer.isisfish.AbstractIsisFishTest;
import fr.ifremer.isisfish.IsisFish;
import fr.ifremer.isisfish.IsisFishException;
+import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location;
import fr.ifremer.isisfish.simulator.Simulator;
import freemarker.template.Configuration;
import freemarker.template.Template;
@@ -73,7 +74,7 @@
String fileName = "TestSimulator1";
SimulatorStorage simulatorStorage = SimulatorStorage
- .getSimulator(fileName);
+ .createSimulator(fileName, Location.COMMUNITY);
// get template
Template template = freemarkerConfiguration
Property changes on: branches/4.1/src/test/java/fr/ifremer/isisfish/entity/PersistenceTest.java
___________________________________________________________________
Deleted: svn:mergeinfo
-
Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/util/CompileHelperTest.java
===================================================================
--- branches/4.1/src/test/java/fr/ifremer/isisfish/util/CompileHelperTest.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/test/java/fr/ifremer/isisfish/util/CompileHelperTest.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -154,8 +154,8 @@
List<File> classpath = new ArrayList<File>();
classpath.add(fB.getParentFile());
- CompileHelper.compile(classpath, Collections.singletonList(fB), dest,
- null);
+ int result = CompileHelper.compile(classpath, Collections.singletonList(fB), dest, null);
+ Assert.assertEquals(0, result);
// essai de chargement de la classe
URL[] cp = new URL[] { dest.toURI().toURL() };
Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/util/JavadocHelperTest.java
===================================================================
--- branches/4.1/src/test/java/fr/ifremer/isisfish/util/JavadocHelperTest.java 2012-03-05 10:26:31 UTC (rev 3632)
+++ branches/4.1/src/test/java/fr/ifremer/isisfish/util/JavadocHelperTest.java 2012-03-05 10:52:26 UTC (rev 3633)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2010 Ifremer, Code Lutin
+ * Copyright (C) 2009 - 2012 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
@@ -29,12 +29,11 @@
import java.io.IOException;
import java.io.PrintWriter;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.junit.Assert;
import org.junit.Test;
import fr.ifremer.isisfish.AbstractIsisFishTest;
+import fr.ifremer.isisfish.IsisFish;
import fr.ifremer.isisfish.datastore.SimulationPlanStorage;
/**
@@ -51,9 +50,6 @@
*/
public class JavadocHelperTest extends AbstractIsisFishTest {
- /** Class logger */
- private static Log log = LogFactory.getLog(JavadocHelperTest.class);
-
/**
* Try to generate javadoc on current isis-fish-data directory.
* (single java file case)
@@ -64,7 +60,7 @@
@Test
public void testIsisFishDataJavadoc() throws IOException, ClassNotFoundException {
- File currentDirectory = getCurrentDatabaseDirectory();
+ File currentDirectory = IsisFish.config.getDatabaseDirectory();
File destinationDirectory = new File(getTestDirectory(), "isis-docs");
File testJavaFile = new File(currentDirectory, SimulationPlanStorage.SIMULATION_PLAN_PATH
+ File.separatorChar + "CalibrationSimplexePasVariable2Capturabilite.java");
1
0
r3632 - in trunk/src/main/java/fr/ifremer/isisfish/ui: models/common widget
by echatellier@users.forge.codelutin.com 05 Mar '12
by echatellier@users.forge.codelutin.com 05 Mar '12
05 Mar '12
Author: echatellier
Date: 2012-03-05 11:26:31 +0100 (Mon, 05 Mar 2012)
New Revision: 3632
Url: http://forge.codelutin.com/repositories/revision/isis-fish/3632
Log:
Remove useless code
Modified:
trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/StringComboModel.java
trunk/src/main/java/fr/ifremer/isisfish/ui/widget/FilterableComboBox.java
Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/StringComboModel.java
===================================================================
--- trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/StringComboModel.java 2012-03-05 10:23:44 UTC (rev 3631)
+++ trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/StringComboModel.java 2012-03-05 10:26:31 UTC (rev 3632)
@@ -25,7 +25,6 @@
package fr.ifremer.isisfish.ui.models.common;
-import java.util.ArrayList;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
@@ -80,7 +79,7 @@
* @param stringList {@link String} list to set
*/
public void setStringList(List<String> stringList) {
- this.stringList = new ArrayList<String>(stringList);
+ this.stringList = stringList;
// reset selected
setSelectedItem(null);
}
Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/widget/FilterableComboBox.java
===================================================================
--- trunk/src/main/java/fr/ifremer/isisfish/ui/widget/FilterableComboBox.java 2012-03-05 10:23:44 UTC (rev 3631)
+++ trunk/src/main/java/fr/ifremer/isisfish/ui/widget/FilterableComboBox.java 2012-03-05 10:26:31 UTC (rev 3632)
@@ -122,8 +122,6 @@
if (log.isDebugEnabled()) {
log.debug("Refreshing real indexes list");
- log.debug("model.getSize() = " + model.getSize());
- log.debug("model.getSize() = " + model.getSize());
}
// filter list
@@ -135,10 +133,6 @@
}
}
- if (log.isDebugEnabled()) {
- log.debug("realIndexes.size() = " + realIndexes.size());
- }
-
fireIntervalRemoved(this, 0, model.getSize());
fireIntervalAdded(this, 0, realIndexes.size());
filtering = false;
1
0
r3631 - in trunk/src/main/java/fr/ifremer/isisfish/ui: models/common result sensitivity simulator widget
by echatellier@users.forge.codelutin.com 05 Mar '12
by echatellier@users.forge.codelutin.com 05 Mar '12
05 Mar '12
Author: echatellier
Date: 2012-03-05 11:23:44 +0100 (Mon, 05 Mar 2012)
New Revision: 3631
Url: http://forge.codelutin.com/repositories/revision/isis-fish/3631
Log:
Fix monitoring performance problems
Modified:
trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/StringComboModel.java
trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResultHandler.java
trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivitySecondPassUI.jaxx
trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx
trunk/src/main/java/fr/ifremer/isisfish/ui/widget/FilterableComboBox.java
Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/StringComboModel.java
===================================================================
--- trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/StringComboModel.java 2012-03-02 15:20:56 UTC (rev 3630)
+++ trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/StringComboModel.java 2012-03-05 10:23:44 UTC (rev 3631)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2011 Ifremer, CodeLutin, Chatellier Eric
+ * Copyright (C) 2011 - 2012 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,6 +25,7 @@
package fr.ifremer.isisfish.ui.models.common;
+import java.util.ArrayList;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
@@ -79,11 +80,20 @@
* @param stringList {@link String} list to set
*/
public void setStringList(List<String> stringList) {
- this.stringList = stringList;
+ this.stringList = new ArrayList<String>(stringList);
// reset selected
setSelectedItem(null);
}
+ public void addString(String string) {
+ stringList.add(string);
+ fireIntervalAdded(this, stringList.size() - 1, stringList.size());
+ }
+
+ public boolean containsString(String string) {
+ return stringList.contains(string);
+ }
+
/*
* @see javax.swing.ListModel#getElementAt(int)
*/
Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResultHandler.java
===================================================================
--- trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResultHandler.java 2012-03-02 15:20:56 UTC (rev 3630)
+++ trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResultHandler.java 2012-03-05 10:23:44 UTC (rev 3631)
@@ -92,7 +92,8 @@
}
@Override
public void simulationStop(SimulationService simService, SimulationJob job) {
- initSimulationList(resultUI);
+ StringComboModel model = (StringComboModel)resultUI.getSimulationComboBox().getModel();
+ model.addString(job.getId());
}
@Override
public void clearJobDone(SimulationService simService) {
Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivitySecondPassUI.jaxx
===================================================================
--- trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivitySecondPassUI.jaxx 2012-03-02 15:20:56 UTC (rev 3630)
+++ trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivitySecondPassUI.jaxx 2012-03-05 10:23:44 UTC (rev 3631)
@@ -54,7 +54,14 @@
if (log.isDebugEnabled()) {
log.debug("Refresh second pass UI simulations list");
}
- fieldSensitivitySimulationSelect.setModel(getSensitivitySimulationModel());
+ StringComboModel model = (StringComboModel)fieldSensitivitySimulationSelect.getModel();
+ String simulationName = job.getId();
+ if (simulationName.startsWith("as_")) {
+ String masterSensitivityName = simulationName.substring(0, simulationName.lastIndexOf("_"));
+ if (!model.containsString(masterSensitivityName)) {
+ model.addString(masterSensitivityName);
+ }
+ }
}
@Override
@@ -68,7 +75,7 @@
* Model de contenu de la liste des nom de simulations
*/
public StringComboModel getSensitivitySimulationModel() {
- java.util.List<String> asNames = new ArrayList<String>();
+ List<String> asNames = new ArrayList<String>();
for (String simulationName : SimulationStorage.getSimulationNames()) {
if (simulationName.startsWith("as_")) {
String masterSensitivityName = simulationName.substring(0, simulationName.lastIndexOf("_"));
Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx
===================================================================
--- trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2012-03-02 15:20:56 UTC (rev 3630)
+++ trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2012-03-05 10:23:44 UTC (rev 3631)
@@ -5,7 +5,7 @@
$Id$
$HeadURL$
%%
- Copyright (C) 2005 - 2011 Ifremer, CodeLutin, Chatellier Eric
+ Copyright (C) 2005 - 2012 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
@@ -93,7 +93,8 @@
@Override
public void simulationStop(SimulationService simService, SimulationJob job) {
- fieldSimulParamsSelect.setModel(getSimulParamsSelectModel(true));
+ StringComboModel model = (StringComboModel)fieldSimulParamsSelect.getModel();
+ model.addString(job.getId());
}
@Override
@@ -306,13 +307,8 @@
}
protected ComboBoxModel getSimulParamsSelectModel(boolean force) {
- java.util.List<String> items = simulAction.getFilteredOldSimulatorNames(force);
- DefaultComboBoxModel result = new DefaultComboBoxModel();
- if (items != null) {
- for (String s : items){
- result.addElement(s);
- }
- }
+ List<String> items = simulAction.getFilteredOldSimulatorNames(force);
+ StringComboModel result = new StringComboModel(items);
return result;
}
Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/widget/FilterableComboBox.java
===================================================================
--- trunk/src/main/java/fr/ifremer/isisfish/ui/widget/FilterableComboBox.java 2012-03-02 15:20:56 UTC (rev 3630)
+++ trunk/src/main/java/fr/ifremer/isisfish/ui/widget/FilterableComboBox.java 2012-03-05 10:23:44 UTC (rev 3631)
@@ -3,7 +3,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2011 Codelutin, Chatellier Eric
+ * Copyright (C) 2012 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
@@ -32,16 +32,19 @@
import java.util.ArrayList;
import java.util.List;
+import javax.swing.AbstractListModel;
import javax.swing.ComboBoxModel;
-import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
+import javax.swing.event.ListDataEvent;
+import javax.swing.event.ListDataListener;
-import org.jdesktop.swingx.JXComboBox;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTextField;
import org.nuiton.util.Resource;
@@ -54,8 +57,10 @@
* Last update : $Date$
* By : $Author$
*/
-public class FilterableComboBox extends JPanel {
+public class FilterableComboBox extends JPanel implements ListDataListener {
+ private static Log log = LogFactory.getLog(FilterableComboBox.class);
+
/** serialVersionUID. */
private static final long serialVersionUID = -6669320998140538372L;
@@ -69,13 +74,6 @@
protected boolean filtering = false;
- /*
- * Il faut obligatoirement que la liste filtrées soit mise en cache, car
- * l'appeler dans le getElementAt() comme c'était fait avant dégrade énormement
- * les perfs, un truc de dingue.
- */
- protected List<Object> itemCache;
-
public FilterableComboBox() {
actionListeners = new ArrayList<ActionListener>();
buildLayout();
@@ -86,58 +84,77 @@
setModel(model);
}
- class FilterComboBoxModel extends DefaultComboBoxModel {
+ class FilterComboBoxModel extends AbstractListModel implements ComboBoxModel {
/** serialVersionUID. */
private static final long serialVersionUID = 6256289874593024153L;
protected ComboBoxModel model;
+ protected List<Integer> realIndexes = new ArrayList<Integer>();
+
+ protected Object selectedItem;
+
public FilterComboBoxModel(ComboBoxModel model) {
this.model = model;
+ fireDataChanged();
}
+ public ComboBoxModel getModel() {
+ return model;
+ }
+
@Override
public int getSize() {
- int size = 0;
- if (itemCache != null) {
- size = itemCache.size();
- } else {
- size = model.getSize();
- }
+ int size = realIndexes.size();
return size;
}
@Override
public Object getElementAt(int index) {
- Object element = null;
- if (itemCache != null) {
- element = itemCache.get(index);
- } else {
- element = model.getElementAt(index);
- }
+ int realIndex = realIndexes.get(index);
+ Object element = model.getElementAt(realIndex);
return element;
}
public void fireDataChanged() {
filtering = true;
- super.fireContentsChanged(this, 0, model.getSize());
-
+
+ if (log.isDebugEnabled()) {
+ log.debug("Refreshing real indexes list");
+ log.debug("model.getSize() = " + model.getSize());
+ log.debug("model.getSize() = " + model.getSize());
+ }
+
// filter list
- int delegateSize = model.getSize();
- itemCache = new ArrayList<Object>(delegateSize);
- for (int i = 0; i < delegateSize; ++i) {
+ realIndexes.clear();
+ for (int i = 0; i < model.getSize(); ++i) {
Object element = model.getElementAt(i);
- if (element.toString().matches(".*" + filterField.getText() + ".*")) {
- itemCache.add(element);
+ if (element.toString().contains(filterField.getText())) {
+ realIndexes.add(i);
}
}
+
+ if (log.isDebugEnabled()) {
+ log.debug("realIndexes.size() = " + realIndexes.size());
+ }
+
+ fireIntervalRemoved(this, 0, model.getSize());
+ fireIntervalAdded(this, 0, realIndexes.size());
filtering = false;
}
-
-
+
+ @Override
+ public void setSelectedItem(Object anItem) {
+ this.selectedItem = anItem;
+ }
+
+ @Override
+ public Object getSelectedItem() {
+ return selectedItem;
+ }
}
-
+
class FilterDocumentListener implements DocumentListener {
@Override
public void insertUpdate(DocumentEvent e) {
@@ -153,9 +170,9 @@
public void changedUpdate(DocumentEvent e) {
updateFilter();
}
-
+
protected void updateFilter() {
- ((FilterComboBoxModel)dataBox.getModel()).fireDataChanged();
+ ((FilterComboBoxModel) dataBox.getModel()).fireDataChanged();
resetButton.setEnabled(!filterField.getText().isEmpty());
}
}
@@ -188,7 +205,7 @@
* Build layout.
*/
private void buildLayout() {
- dataBox = new JXComboBox();
+ dataBox = new JComboBox();
dataBox.addActionListener(new ComboBoxActionListener());
filterField = new JXTextField(_("isisfish.common.filter"));
// fix size
@@ -214,13 +231,18 @@
* @param model model to set
*/
public void setModel(ComboBoxModel model) {
+ model.addListDataListener(this);
dataBox.setModel(new FilterComboBoxModel(model));
}
+ public ComboBoxModel getModel() {
+ return ((FilterComboBoxModel)dataBox.getModel()).getModel();
+ }
+
public Object getSelectedItem() {
return dataBox.getSelectedItem();
}
-
+
public void setSelectedItem(Object object) {
dataBox.setSelectedItem(object);
}
@@ -232,4 +254,43 @@
public boolean removeActionListener(ActionListener o) {
return actionListeners.remove(o);
}
+
+ /*
+ * @see javax.swing.event.ListDataListener#intervalAdded(javax.swing.event.ListDataEvent)
+ */
+ @Override
+ public void intervalAdded(ListDataEvent e) {
+ if (!filtering) {
+ if (log.isDebugEnabled()) {
+ log.debug("intervalAdded : fireDataChanged");
+ }
+ ((FilterComboBoxModel) dataBox.getModel()).fireDataChanged();
+ }
+ }
+
+ /*
+ * @see javax.swing.event.ListDataListener#intervalRemoved(javax.swing.event.ListDataEvent)
+ */
+ @Override
+ public void intervalRemoved(ListDataEvent e) {
+ if (!filtering) {
+ if (log.isDebugEnabled()) {
+ log.debug("intervalRemoved : fireDataChanged");
+ }
+ ((FilterComboBoxModel) dataBox.getModel()).fireDataChanged();
+ }
+ }
+
+ /*
+ * @see javax.swing.event.ListDataListener#contentsChanged(javax.swing.event.ListDataEvent)
+ */
+ @Override
+ public void contentsChanged(ListDataEvent e) {
+ if (!filtering) {
+ if (log.isDebugEnabled()) {
+ log.debug("contentsChanged : fireDataChanged");
+ }
+ ((FilterComboBoxModel) dataBox.getModel()).fireDataChanged();
+ }
+ }
}
1
0
r3630 - trunk/src/test/java/fr/ifremer/isisfish/util
by echatellier@users.forge.codelutin.com 02 Mar '12
by echatellier@users.forge.codelutin.com 02 Mar '12
02 Mar '12
Author: echatellier
Date: 2012-03-02 16:20:56 +0100 (Fri, 02 Mar 2012)
New Revision: 3630
Url: http://forge.codelutin.com/repositories/revision/isis-fish/3630
Log:
Fix tests since official/community lookup refactoring.
Refactor test official/community configuration.
Modified:
trunk/src/test/java/fr/ifremer/isisfish/util/JavadocHelperTest.java
Modified: trunk/src/test/java/fr/ifremer/isisfish/util/JavadocHelperTest.java
===================================================================
--- trunk/src/test/java/fr/ifremer/isisfish/util/JavadocHelperTest.java 2012-03-02 15:20:25 UTC (rev 3629)
+++ trunk/src/test/java/fr/ifremer/isisfish/util/JavadocHelperTest.java 2012-03-02 15:20:56 UTC (rev 3630)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2009 - 2010 Ifremer, Code Lutin
+ * Copyright (C) 2009 - 2012 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
@@ -29,8 +29,6 @@
import java.io.IOException;
import java.io.PrintWriter;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.junit.Assert;
import org.junit.Test;
@@ -52,9 +50,6 @@
*/
public class JavadocHelperTest extends AbstractIsisFishTest {
- /** Class logger */
- private static Log log = LogFactory.getLog(JavadocHelperTest.class);
-
/**
* Try to generate javadoc on current isis-fish-data directory.
* (single java file case)
1
0