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
January 2010
- 3 participants
- 105 discussions
Author: chatellier
Date: 2010-01-26 09:16:27 +0000 (Tue, 26 Jan 2010)
New Revision: 2946
Added:
isis-fish/branches/3.3.1/
Log:
Init next isis-fish branche
1
0
r2945 - in isis-fish/trunk/src/site: en/rst/v3/user en/rst/v3/user/images rst/v3/user rst/v3/user/images
by chatellier@users.labs.libre-entreprise.org 25 Jan '10
by chatellier@users.labs.libre-entreprise.org 25 Jan '10
25 Jan '10
Author: chatellier
Date: 2010-01-25 17:25:48 +0000 (Mon, 25 Jan 2010)
New Revision: 2945
Removed:
isis-fish/trunk/src/site/en/rst/v3/user/.cvsignore
isis-fish/trunk/src/site/en/rst/v3/user/images/.cvsignore
isis-fish/trunk/src/site/rst/v3/user/.cvsignore
isis-fish/trunk/src/site/rst/v3/user/images/.cvsignore
Log:
Remove cvsignore files
Deleted: isis-fish/trunk/src/site/en/rst/v3/user/.cvsignore
===================================================================
--- isis-fish/trunk/src/site/en/rst/v3/user/.cvsignore 2010-01-25 17:21:13 UTC (rev 2944)
+++ isis-fish/trunk/src/site/en/rst/v3/user/.cvsignore 2010-01-25 17:25:48 UTC (rev 2945)
@@ -1 +0,0 @@
-IsisUsage.rst
Deleted: isis-fish/trunk/src/site/en/rst/v3/user/images/.cvsignore
===================================================================
--- isis-fish/trunk/src/site/en/rst/v3/user/images/.cvsignore 2010-01-25 17:21:13 UTC (rev 2944)
+++ isis-fish/trunk/src/site/en/rst/v3/user/images/.cvsignore 2010-01-25 17:25:48 UTC (rev 2945)
@@ -1,9 +0,0 @@
-input_00.png
-main_00.png
-script_00.png
-simulation_00.png
-input_*_*.png
-main_*_*.png
-script_*_*.png
-simulation_*_*.png
-
Deleted: isis-fish/trunk/src/site/rst/v3/user/.cvsignore
===================================================================
--- isis-fish/trunk/src/site/rst/v3/user/.cvsignore 2010-01-25 17:21:13 UTC (rev 2944)
+++ isis-fish/trunk/src/site/rst/v3/user/.cvsignore 2010-01-25 17:25:48 UTC (rev 2945)
@@ -1 +0,0 @@
-IsisUsage.rst
Deleted: isis-fish/trunk/src/site/rst/v3/user/images/.cvsignore
===================================================================
--- isis-fish/trunk/src/site/rst/v3/user/images/.cvsignore 2010-01-25 17:21:13 UTC (rev 2944)
+++ isis-fish/trunk/src/site/rst/v3/user/images/.cvsignore 2010-01-25 17:25:48 UTC (rev 2945)
@@ -1,11 +0,0 @@
-input_00.png
-main_00.png
-script_00.png
-simulation_00.png
-input_*_*.png
-main_*_*.png
-script_*_*.png
-simulation_*_*.png
-result_*.png
-add_ssh_key_**.png
-isisFishData_**.png
1
0
r2944 - in isis-fish/trunk: . src/site src/site/fr src/site/rst/v2/user
by chatellier@users.labs.libre-entreprise.org 25 Jan '10
by chatellier@users.labs.libre-entreprise.org 25 Jan '10
25 Jan '10
Author: chatellier
Date: 2010-01-25 17:21:13 +0000 (Mon, 25 Jan 2010)
New Revision: 2944
Added:
isis-fish/trunk/src/site/rst/
Removed:
isis-fish/trunk/.cvsignore
isis-fish/trunk/src/site/fr/rst/
Modified:
isis-fish/trunk/pom.xml
isis-fish/trunk/src/site/rst/v2/user/ECMAScriptEdit.rst
isis-fish/trunk/src/site/site_en.xml
isis-fish/trunk/src/site/site_fr.xml
Log:
#2004 : Utilisation de mavenpom4labs 2.0.3
Deleted: isis-fish/trunk/.cvsignore
===================================================================
--- isis-fish/trunk/.cvsignore 2010-01-25 13:45:47 UTC (rev 2943)
+++ isis-fish/trunk/.cvsignore 2010-01-25 17:21:13 UTC (rev 2944)
@@ -1,10 +0,0 @@
-maven.log
-target
-velocity.log
-.classpath
-.project
-isis-fish.ipr
-isis-fish.iws
-isis-fish.iml
-.settings
-__poubelle__
Modified: isis-fish/trunk/pom.xml
===================================================================
--- isis-fish/trunk/pom.xml 2010-01-25 13:45:47 UTC (rev 2943)
+++ isis-fish/trunk/pom.xml 2010-01-25 17:21:13 UTC (rev 2944)
@@ -3,6 +3,12 @@
<modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.nuiton</groupId>
+ <artifactId>mavenpom4labs</artifactId>
+ <version>2.0.3</version>
+ </parent>
+
<groupId>ifremer</groupId>
<artifactId>isis-fish</artifactId>
<version>3.3.0.0-rc1-SNAPSHOT</version>
@@ -422,6 +428,16 @@
</roles>
<timezone>+2</timezone>
</developer>
+ <developer>
+ <id>jcouteau</id>
+ <name>Jean Couteau</name>
+ <email>couteau at codelutin.com</email>
+ <organization>CodeLutin</organization>
+ <roles>
+ <role>Développeur</role>
+ </roles>
+ <timezone>+2</timezone>
+ </developer>
</developers>
<!-- ************************************************************* -->
@@ -430,14 +446,21 @@
<packaging>jar</packaging>
<properties>
- <!-- Custom version -->
+ <!-- Super pom properties -->
+ <projectId>isis-fish</projectId>
+ <labs.id>8</labs.id>
+ <javadoc.version>2.6.1</javadoc.version>
+ <siteLocales>fr,en</siteLocales>
+ <maven.jar.main.class>fr.ifremer.isisfish.IsisFish</maven.jar.main.class>
+
+ <!-- Dependencies version -->
<jaxx.version>1.7.1</jaxx.version>
<eugene.version>2.0.0-beta-3</eugene.version>
<topia.version>2.3.0-beta-5</topia.version>
- <nuiton-utils.version>1.1.3</nuiton-utils.version>
+ <nuiton-utils.version>1.1.4-SNAPSHOT</nuiton-utils.version>
<nuiton-i18n.version>1.0.1</nuiton-i18n.version>
<nuiton-widgets.version>1.0.1-SNAPSHOT</nuiton-widgets.version>
- <jrst.version>1.0.0</jrst.version>
+ <jrst.version>1.1.0</jrst.version>
<aspectwerkz.version>2.0</aspectwerkz.version>
<xmlrpc.version>3.1.2</xmlrpc.version>
@@ -449,32 +472,25 @@
<jnlpCodebase>${project.url}</jnlpCodebase>
<jnlpCodebase>file://${jnlp.build.directory}</jnlpCodebase> -->
-
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <project.reporting.outputDirectory>UTF-8</project.reporting.outputDirectory>
</properties>
<build>
<pluginManagement>
<plugins>
- <plugin>
+ <!-- <plugin>
<artifactId>maven-compiler-plugin</artifactId>
- <version>2.1</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
- <!-- <showDeprecation>true</showDeprecation>
- <showWarnings>true</showWarnings> -->
+ <showDeprecation>true</showDeprecation>
+ <showWarnings>true</showWarnings>
</configuration>
- </plugin>
+ </plugin> -->
<plugin>
<artifactId>maven-jar-plugin</artifactId>
- <version>2.3</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
- <mainClass>fr.ifremer.isisfish.IsisFish</mainClass>
+ <mainClass>${maven.jar.main.class}</mainClass>
<classpathPrefix>lib/</classpathPrefix>
<useUniqueVersions>false</useUniqueVersions>
</manifest>
@@ -483,7 +499,6 @@
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
- <version>2.4.3</version>
<configuration>
<systemProperties>
<property>
@@ -509,15 +524,11 @@
</plugin>
<plugin>
<artifactId>maven-site-plugin</artifactId>
- <version>2.0.1</version>
- <configuration>
- <locales>fr,en</locales>
- </configuration>
<dependencies>
<dependency>
<groupId>org.nuiton.jrst</groupId>
<artifactId>doxia-module-jrst</artifactId>
- <version>1.0.0</version>
+ <version>${jrst.version}</version>
</dependency>
</dependencies>
</plugin>
@@ -620,7 +631,6 @@
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
- <version>2.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
@@ -637,7 +647,6 @@
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
- <version>2.2-beta-5</version>
<configuration>
<descriptors>
<descriptor>src/main/assembly/bin.xml</descriptor>
@@ -659,9 +668,7 @@
<reporting>
<plugins>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
- <version>2.6.1</version>
<configuration>
<links>
<link>http://java.sun.com/javase/6/docs/api/</link>
@@ -729,7 +736,7 @@
</site>
</distributionManagement>
- <profiles>
+ <!--<profiles>
<profile>
<id>release-profile</id>
<activation>
@@ -740,8 +747,6 @@
</activation>
<build>
<plugins>
-
- <!-- always add license and third-party files to classpath -->
<plugin>
<groupId>org.nuiton</groupId>
<artifactId>maven-license-plugin</artifactId>
@@ -750,14 +755,14 @@
<execution>
<id>attach-licenses</id>
<goals>
- <!--<goal>add-license</goal>-->
+ <goal>add-license</goal>
<goal>add-third-party</goal>
</goals>
</execution>
</executions>
- </plugin>
+ </plugin>
- <!-- (disabled until retested)
+ < - - (disabled until retested)
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
@@ -879,12 +884,12 @@
<gzip>true</gzip>
<verbose>false</verbose>
</configuration>
- </plugin> -->
+ </plugin> - - >
</plugins>
</build>
</profile>
- </profiles>
+ </profiles> -->
</project>
Modified: isis-fish/trunk/src/site/rst/v2/user/ECMAScriptEdit.rst
===================================================================
--- isis-fish/trunk/src/site/fr/rst/v2/user/ECMAScriptEdit.rst 2010-01-22 16:00:18 UTC (rev 2941)
+++ isis-fish/trunk/src/site/rst/v2/user/ECMAScriptEdit.rst 2010-01-25 17:21:13 UTC (rev 2944)
@@ -10,6 +10,8 @@
.. contents::
+ECMAScriptEdit
+--------------
L'editeur d'ECMAScript permet d'influer sur la façon dont isis-fish simule.
Une partie du simulateur est écrit grâce à cette interface, il suffit de
Modified: isis-fish/trunk/src/site/site_en.xml
===================================================================
--- isis-fish/trunk/src/site/site_en.xml 2010-01-25 13:45:47 UTC (rev 2943)
+++ isis-fish/trunk/src/site/site_en.xml 2010-01-25 17:21:13 UTC (rev 2944)
@@ -1,11 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="Isis-fish">
-
- <skin>
- <groupId>org.nuiton</groupId>
- <artifactId>maven-nuiton-skin</artifactId>
- <version>1.0.0</version>
- </skin>
<bannerLeft>
<name>Isis-fish Simulator</name>
@@ -45,13 +39,13 @@
<menu name="Version 3">
<item href="http://isis-fish.labs.libre-entreprise.org/devel/IsisFishModel.png" name="UML Model"></item>
- <item href="/apidocs/index.html" name="Simulateur API"></item>
+ <item href="/isis-fish/apidocs/index.html" name="Simulateur API"></item>
<item href="http://isis-fish.labs.libre-entreprise.org/download/version3" name="Download"></item>
</menu>
<menu name="Development documentations">
- <item href="http://isis-fish.labs.libre-entreprise.org/api/codelutin/index.html" name="Library API"></item>
- <item href="http://lutinmatrix.labs.libre-entreprise.org/apidocs/index.html" name="Matrix API"></item>
+ <!-- <item href="http://isis-fish.labs.libre-entreprise.org/api/codelutin/index.html" name="Library API"></item> -->
+ <item href="http://maven-site.nuiton.org/nuiton-matrix/apidocs/index.html" name="Matrix API"></item>
</menu>
<menu name="Trackers">
@@ -62,7 +56,7 @@
</menu>
<menu name="Liens">
- <item href="http://java.sun.com/j2se" name="Sun Java site"></item>
+ <item href="http://java.sun.com/javase" name="Sun Java site"></item>
</menu>
${reports}
Modified: isis-fish/trunk/src/site/site_fr.xml
===================================================================
--- isis-fish/trunk/src/site/site_fr.xml 2010-01-25 13:45:47 UTC (rev 2943)
+++ isis-fish/trunk/src/site/site_fr.xml 2010-01-25 17:21:13 UTC (rev 2944)
@@ -2,12 +2,6 @@
<project name="Isis-fish">
<publishDate format="dd/MM/yyyy"/>
-
- <skin>
- <groupId>org.nuiton</groupId>
- <artifactId>maven-nuiton-skin</artifactId>
- <version>1.0.0</version>
- </skin>
<bannerLeft>
<name>Isis-fish Simulateur de pêcherie complexe</name>
@@ -18,12 +12,11 @@
<href>http://www.codelutin.com</href>
</bannerRight>
- <poweredBy>
- <logo href="http://argouml.tigris.org/" img="/images/argouml-logo.png" name="ArgoUML"/>
- <logo href="http://docutils.sourceforge.net/rst.html" img="/images/restructuredtext-logo.png" name="reStructuredText"/>
- <logo href="http://www.swixat.org" img="/images/swixat-logo.png" name="SwiXAT"/>
- <logo href="http://topia.labs.libre-entreprise.org/" img="/images/topia-logo.png" name="ToPIA"/>
- </poweredBy>
+ <poweredBy>
+ <logo href="http://argouml.tigris.org/" img="/images/argouml-logo.png" name="ArgoUML"/>
+ <logo href="http://docutils.sourceforge.net/rst.html" img="/images/restructuredtext-logo.png" name="reStructuredText"/>
+ <logo href="http://topia.labs.libre-entreprise.org/" img="/images/topia-logo.png" name="ToPIA"/>
+ </poweredBy>
<body>
<links>
@@ -66,9 +59,9 @@
</menu>
<menu name="Autres documentations">
- <item href="http://java.sun.com/j2se/api/index.html" name="API Java"></item>
- <item href="http://lutinmatrix.labs.libre-entreprise.org/apidocs/index.html" name="API des matrices"></item>
- <item href="http://topia.labs.libre-entreprise.org/apidocs/index.html" name="API ToPIA (DB)"></item>
+ <item href="http://java.sun.com/javase/6/docs/api/index.html" name="API Java" />
+ <item href="http://maven-site.nuiton.org/nuiton-matrix/apidocs/index.html" name="API des matrices" />
+ <item href="http://maven-site.nuiton.org/topia/topia-persistence/apidocs/index.html" name="API ToPIA (DB)" />
</menu>
<menu name="Old version">
@@ -103,7 +96,7 @@
</menu>
<menu name="Liens">
- <item href="http://java.sun.com/j2se" name="Le site Java de Sun"></item>
+ <item href="http://java.sun.com/javase" name="Le site Java de Sun"></item>
</menu>
${reports}
1
0
r2943 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator
by chatellier@users.labs.libre-entreprise.org 25 Jan '10
by chatellier@users.labs.libre-entreprise.org 25 Jan '10
25 Jan '10
Author: chatellier
Date: 2010-01-25 13:45:47 +0000 (Mon, 25 Jan 2010)
New Revision: 2943
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java
Log:
Change method name.
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2010-01-22 16:51:03 UTC (rev 2942)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2010-01-25 13:45:47 UTC (rev 2943)
@@ -199,7 +199,7 @@
simulAction.launchSimulation(fieldSimulParamsName.getText(), (SimulatorLauncher)comboSelLauncher.getSelectedItem());
}
else {
- simulAction.launchSimulationWhithSensibility(fieldSimulParamsName.getText(), (SimulatorLauncher)comboSelLauncher.getSelectedItem());
+ simulAction.launchSimulationWithSensibility(fieldSimulParamsName.getText(), (SimulatorLauncher)comboSelLauncher.getSelectedItem());
}
// dans le cas d'une fenetre independante, il n'y a pas de ParentContainer
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2010-01-22 16:51:03 UTC (rev 2942)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2010-01-25 13:45:47 UTC (rev 2943)
@@ -1034,7 +1034,7 @@
}
}
- public void launchSimulationWhithSensibility(String simulationId,
+ public void launchSimulationWithSensibility(String simulationId,
SimulatorLauncher launcher) {
launchSimulation(simulationId, launcher, getSensitivityCalculator(),
designPlan);
1
0
r2942 - isis-fish/trunk/src/test/resources/fr/ifremer/isisfish/simulator/launcher
by chatellier@users.labs.libre-entreprise.org 22 Jan '10
by chatellier@users.labs.libre-entreprise.org 22 Jan '10
22 Jan '10
Author: chatellier
Date: 2010-01-22 16:51:03 +0000 (Fri, 22 Jan 2010)
New Revision: 2942
Modified:
isis-fish/trunk/src/test/resources/fr/ifremer/isisfish/simulator/launcher/sim_test-gdg-3.2-3.3.zip
isis-fish/trunk/src/test/resources/fr/ifremer/isisfish/simulator/launcher/sim_test-ica-3.2-3.3.zip
Log:
Test was correct, simulations data wasn't :(
Add all necessary files into simulations zip.
Modified: isis-fish/trunk/src/test/resources/fr/ifremer/isisfish/simulator/launcher/sim_test-gdg-3.2-3.3.zip
===================================================================
(Binary files differ)
Modified: isis-fish/trunk/src/test/resources/fr/ifremer/isisfish/simulator/launcher/sim_test-ica-3.2-3.3.zip
===================================================================
(Binary files differ)
1
0
r2941 - in isis-fish/trunk/src/main/java/fr/ifremer/isisfish: datastore simulator
by chatellier@users.labs.libre-entreprise.org 22 Jan '10
by chatellier@users.labs.libre-entreprise.org 22 Jan '10
22 Jan '10
Author: chatellier
Date: 2010-01-22 16:00:18 +0000 (Fri, 22 Jan 2010)
New Revision: 2941
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java
Log:
Fix breaking test with isolated storage (add a hack for now).
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java 2010-01-22 15:46:41 UTC (rev 2940)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java 2010-01-22 16:00:18 UTC (rev 2941)
@@ -24,6 +24,7 @@
import fr.ifremer.isisfish.entities.FisheryRegion;
import fr.ifremer.isisfish.entities.FisheryRegionDAO;
import fr.ifremer.isisfish.entities.Result;
+import fr.ifremer.isisfish.simulator.SimulationContext;
import fr.ifremer.isisfish.vcs.VCSException;
import org.apache.commons.collections.map.ReferenceMap;
import org.apache.commons.lang.time.DateFormatUtils;
@@ -210,27 +211,13 @@
/**
* Recupere le TopiaContext d'une region.
*
- * Call {@code getRegion(String, false)} outside simulation context.
- *
* @param name le nom de la region a recuperer
- * @return Le TopiaContext contenant la region, si la region n'existait null
- * est retourné
- */
- static public RegionStorage getRegion(String name) {
- RegionStorage regionStorage = getRegion(name, false);
- return regionStorage;
- }
-
- /**
- * Recupere le TopiaContext d'une region.
- *
- * @param name le nom de la region a recuperer
* @param inSimulation this is a hack to known if simulation is requested
* from a simulation or not
* @return Le TopiaContext contenant la region, si la region n'existait null
* est retourné
*/
- static public RegionStorage getRegion(String name, boolean inSimulation) {
+ static public RegionStorage getRegion(String name) {
String cacheName = getContextDatabaseCacheKey(name);
RegionStorage result = regions.get(cacheName);
if (result == null) {
@@ -238,7 +225,8 @@
File directory = null;
// in simulation context, region is not located in "regions" directory
- if (inSimulation) {
+ // FIXME remove this, hack, don't known what to used here :(
+ if (SimulationContext.get().getScriptDirectory() != null) {
directory = getContextDatabaseDirectory();
}
else {
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java 2010-01-22 15:46:41 UTC (rev 2940)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java 2010-01-22 16:00:18 UTC (rev 2941)
@@ -276,7 +276,7 @@
// bien faire attention ici que la bonne region est ouverte
// - isis-database-3 dans le cas d'une region normale
// - simulation dans le cas d'une simulation
- region = RegionStorage.getRegion(getRegionName(), true);
+ region = RegionStorage.getRegion(getRegionName());
} else {
if (log.isDebugEnabled()) {
log.debug(_("Region %s already inited", getRegionName()));
1
0
r2940 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/rule
by chatellier@users.labs.libre-entreprise.org 22 Jan '10
by chatellier@users.labs.libre-entreprise.org 22 Jan '10
22 Jan '10
Author: chatellier
Date: 2010-01-22 15:46:41 +0000 (Fri, 22 Jan 2010)
New Revision: 2940
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/rule/Rule.java
Log:
Udpate link on javadoc
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/rule/Rule.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/rule/Rule.java 2010-01-22 15:42:22 UTC (rev 2939)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/rule/Rule.java 2010-01-22 15:46:41 UTC (rev 2940)
@@ -38,8 +38,8 @@
* <li> un objet Month ({@link fr.ifremer.isisfish.types.Month})
* <li> Le type d'une entité (@see fr.ifremer.isisfish.entities)
*
- * <p> Pour supporter d'autre type il faut créer des converters commons-beans
- * //@link fr.ifremer.isisfish.simulator.SimulationParameter#ruleParametertoProperties(Rule)
+ * <p> Pour supporter d'autre type il faut créer des converters commons-beanutils
+ * //{@link fr.ifremer.isisfish.simulator.SimulationParameter#ruleParametertoProperties(int, Rule)}
*
* Created: 12 janv. 2006 17:02:43
*
1
0
Author: chatellier
Date: 2010-01-22 15:42:22 +0000 (Fri, 22 Jan 2010)
New Revision: 2939
Modified:
isis-fish/trunk/changelog.txt
Log:
Udpate changelog
Modified: isis-fish/trunk/changelog.txt
===================================================================
--- isis-fish/trunk/changelog.txt 2010-01-22 15:42:09 UTC (rev 2938)
+++ isis-fish/trunk/changelog.txt 2010-01-22 15:42:22 UTC (rev 2939)
@@ -1,5 +1,8 @@
isis-fish (3.3.0.0) stable; urgency=low
+ * Enable to add factors from tables (target factor equation, selectivity equation)
+ * Restore simulation control auto save features (usefull for remote simulation monitoring)
+ * Make all data storage isolated on simulation directory during a simulation
* Check if result is enabled by getNecessaryResult on SensitivityExport
* Use mexico export format for matrix
* Restore simulation tests at integration-test phase
1
0
r2938 - in isis-fish/trunk/src: main/java/fr/ifremer/isisfish/actions main/java/fr/ifremer/isisfish/datastore main/java/fr/ifremer/isisfish/simulator main/java/fr/ifremer/isisfish/simulator/launcher main/java/fr/ifremer/isisfish/ui/simulator test/java/fr/ifremer/isisfish/simulator
by chatellier@users.labs.libre-entreprise.org 22 Jan '10
by chatellier@users.labs.libre-entreprise.org 22 Jan '10
22 Jan '10
Author: chatellier
Date: 2010-01-22 15:42:09 +0000 (Fri, 22 Jan 2010)
New Revision: 2938
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/SimulationAction.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/AnalysePlanStorage.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/ExportStorage.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RuleStorage.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/ScriptStorage.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityExportStorage.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityStorage.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationStorage.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulatorStorage.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationContext.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java
isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationParameterTest.java
Log:
Make all data storage isolated on simulation directory during a simulation
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/SimulationAction.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/SimulationAction.java 2010-01-22 15:39:11 UTC (rev 2937)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/SimulationAction.java 2010-01-22 15:42:09 UTC (rev 2938)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2002-2009 Ifremer, Code Lutin, Benjamin Poussin
+ * Copyright (C) 2002-2010 Ifremer, Code Lutin, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -81,8 +81,7 @@
}
SimulationParameter params = new SimulationParameter();
- params.fromProperties(SimulationStorage.getSimulationDirectory(),
- props);
+ params.fromProperties(props);
// try to import region if needed
String regionName = params.getRegionName();
@@ -142,6 +141,8 @@
}
SimulationControl control = new SimulationControl(name);
+ control.setAutoSaveState(true); // needed for remote simulation
+
SimulationItem item = new SimulationItem(control, null);
item.setSimulationZip(simulationZip);
item.setSimulationPrescriptContent(simulationPrescriptContent);
@@ -220,6 +221,8 @@
}
SimulationControl control = new SimulationControl(name);
+ control.setAutoSaveState(true); // needed for remote simulation
+
SimulationItem item = new SimulationItem(control, null);
item.setSimulationZip(simulationZip);
item.setSimulationPrescriptContent(simulationPrescriptContent);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/AnalysePlanStorage.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/AnalysePlanStorage.java 2010-01-22 15:39:11 UTC (rev 2937)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/AnalysePlanStorage.java 2010-01-22 15:42:09 UTC (rev 2938)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2005 - 2009 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
+ * Copyright (C) 2005 - 2010 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
@@ -67,9 +67,8 @@
static private Map<String, AnalysePlanStorage> plansCache =
(Map<String, AnalysePlanStorage>) new ReferenceMap();
-
/**
- * Construit un nouveau AnalysePlan storage
+ * Construit un nouveau AnalysePlan storage.
*
* @param rootSrc repertoire root de stockage des plans
* @param directory le repertoire ou devrait se trouver le plan
@@ -80,12 +79,11 @@
}
static public File getAnalysePlanDirectory() {
- File result = IsisFish.config.getDatabaseDirectory();
- result = new File(result, ANALYSE_PLAN_PATH);
+ File result = new File(getContextDatabaseDirectory(), ANALYSE_PLAN_PATH);
result.mkdirs();
return result;
}
-
+
/**
* Retourne le nom de toutes les plans existantes
*
@@ -97,22 +95,22 @@
}
/**
- * Retourne le storage pour le plan demandé
+ * Retourne le storage pour le plan demandé.
*
* @param name le nom du plan souhaité
* @return Le storage pour le plan
*/
static public AnalysePlanStorage getAnalysePlan(String name) {
- AnalysePlanStorage result = plansCache.get(name);
+ String cacheName = getContextDatabaseCacheKey(name);
+ AnalysePlanStorage result = plansCache.get(cacheName);
if (result == null) {
- result = new AnalysePlanStorage(IsisFish.config.getDatabaseDirectory(),
+ result = new AnalysePlanStorage(getContextDatabaseDirectory(),
getAnalysePlanDirectory(), name);
- plansCache.put(name, result);
+ plansCache.put(cacheName, result);
}
return result;
}
-
/**
* Retourne une nouvelle instance du plan. Compile le fichier si besoin
*
@@ -274,7 +272,6 @@
public static List<String> getRemoteAnalysePlanNames() {
File dir = getAnalysePlanDirectory();
return getRemoteStorageNames(dir);
-
}
/**
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/ExportStorage.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/ExportStorage.java 2010-01-22 15:39:11 UTC (rev 2937)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/ExportStorage.java 2010-01-22 15:42:09 UTC (rev 2938)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2005 - 2009
+ * Copyright (C) 2005 - 2010
* Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -77,8 +77,7 @@
}
public static File getExportDirectory() {
- File result = IsisFish.config.getDatabaseDirectory();
- result = new File(result, EXPORT_PATH);
+ File result = new File(getContextDatabaseDirectory(), EXPORT_PATH);
result.mkdirs();
return result;
}
@@ -101,11 +100,12 @@
* @return Le storage pour la regle
*/
public static ExportStorage getExport(String name) {
- ExportStorage result = scriptsCache.get(name);
+ String cacheName = getContextDatabaseCacheKey(name);
+ ExportStorage result = scriptsCache.get(cacheName);
if (result == null) {
- result = new ExportStorage(IsisFish.config.getDatabaseDirectory(),
+ result = new ExportStorage(IsisFish.config.getContextDatabaseDirectory(),
getExportDirectory(), name);
- scriptsCache.put(name, result);
+ scriptsCache.put(cacheName, result);
}
return result;
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java 2010-01-22 15:39:11 UTC (rev 2937)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java 2010-01-22 15:42:09 UTC (rev 2938)
@@ -1,5 +1,5 @@
/*
- * *##% Copyright (C) 2005 - 2009
+ * *##% Copyright (C) 2005 - 2010
* Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or modify it under
@@ -73,18 +73,14 @@
*
* @param directory region directory
* @param name region name
- *
- * FIXME constructor is public for hack in
- * {@link fr.ifremer.isisfish.simulator.SimulationParameter#fromProperties(File, java.util.Properties)}
- * set protected when fix hack
*/
- public RegionStorage(File directory, String name) {
+ protected RegionStorage(File directory, String name) {
super(directory, name);
commentForNextCommitFile = new File(getDirectory(), "commentForNextCommit.txt");
}
public static File getRegionDirectory() {
- File result = IsisFish.config.getDatabaseDirectory();
+ File result = getContextDatabaseDirectory();
result = new File(result, REGION_PATH);
result.mkdirs();
return result;
@@ -160,14 +156,17 @@
@Override
public void rename(String toName) throws StorageException {
try {
- regions.remove(getName());
+ String cacheName = getContextDatabaseCacheKey(getName());
+ regions.remove(cacheName);
super.rename(toName);
TopiaContext tx = getStorage().beginTransaction();
FisheryRegion region = getFisheryRegion(tx);
region.setName(toName);
tx.commitTransaction();
tx.closeContext();
- regions.put(toName, this);
+
+ cacheName = getContextDatabaseCacheKey(toName);
+ regions.put(cacheName, this);
// add storage modification event
fireDataChanged(new StorageChangeEvent(this));
@@ -211,41 +210,48 @@
/**
* Recupere le TopiaContext d'une region.
*
+ * Call {@code getRegion(String, false)} outside simulation context.
+ *
* @param name le nom de la region a recuperer
* @return Le TopiaContext contenant la region, si la region n'existait null
* est retourné
*/
static public RegionStorage getRegion(String name) {
- RegionStorage result = regions.get(name);
- if (result == null) {
- // recherche du repertoire de la region en fonction de la config
- File directory = getRegionDirectory(name);
- log.info("Try to open region " + name + "(" + directory + ")");
- if (directory.exists()) {
- result = new RegionStorage(directory, name);
- regions.put(name, result);
- }
- }
- return result;
+ RegionStorage regionStorage = getRegion(name, false);
+ return regionStorage;
}
/**
* Recupere le TopiaContext d'une region.
*
- * @param directory root form where to load database (hack should be removed)
* @param name le nom de la region a recuperer
+ * @param inSimulation this is a hack to known if simulation is requested
+ * from a simulation or not
* @return Le TopiaContext contenant la region, si la region n'existait null
* est retourné
*/
- static public RegionStorage getRegion(File directory, String name) {
- RegionStorage result = regions.get(name);
+ static public RegionStorage getRegion(String name, boolean inSimulation) {
+ String cacheName = getContextDatabaseCacheKey(name);
+ RegionStorage result = regions.get(cacheName);
if (result == null) {
// recherche du repertoire de la region en fonction de la config
- //File directory = getRegionDirectory(name);
- log.info("Try to open region " + name + " in specific directory (" + directory + ")");
+ File directory = null;
+
+ // in simulation context, region is not located in "regions" directory
+ if (inSimulation) {
+ directory = getContextDatabaseDirectory();
+ }
+ else {
+ directory = getRegionDirectory(name);
+ }
+
+ if (log.isInfoEnabled()) {
+ log.info("Try to open region " + name + "(" + directory + ")");
+ }
+
if (directory.exists()) {
result = new RegionStorage(directory, name);
- regions.put(name, result);
+ regions.put(cacheName, result);
}
}
return result;
@@ -293,7 +299,8 @@
throw new StorageException("Can't create new Region", eee);
}
- regions.put(name, result);
+ String cacheName = getContextDatabaseCacheKey(name);
+ regions.put(cacheName, result);
// add storage modification event
fireDataChanged(new StorageChangeEvent(result));
@@ -311,7 +318,8 @@
// add storage modification event
fireDataChanged(new StorageChangeEvent(this));
- regions.remove(getName());
+ String cacheName = getContextDatabaseCacheKey(getName());
+ regions.remove(cacheName);
}
/**
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RuleStorage.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RuleStorage.java 2010-01-22 15:39:11 UTC (rev 2937)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RuleStorage.java 2010-01-22 15:42:09 UTC (rev 2938)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2005 - 2009
+ * Copyright (C) 2005 - 2010
* Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or modify it under
@@ -83,8 +83,7 @@
}
static public File getRuleDirectory() {
- File result = IsisFish.config.getDatabaseDirectory();
- result = new File(result, RULE_PATH);
+ File result = new File(getContextDatabaseDirectory(), RULE_PATH);
result.mkdirs();
return result;
}
@@ -106,11 +105,12 @@
* @return Le storage pour la regle
*/
static public RuleStorage getRule(String name) {
- RuleStorage result = rulesCache.get(name);
+ String cacheName = getContextDatabaseCacheKey(name);
+ RuleStorage result = rulesCache.get(cacheName);
if (result == null) {
- result = new RuleStorage(IsisFish.config.getDatabaseDirectory(),
+ result = new RuleStorage(getContextDatabaseDirectory(),
getRuleDirectory(), name);
- rulesCache.put(name, result);
+ rulesCache.put(cacheName, result);
}
return result;
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/ScriptStorage.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/ScriptStorage.java 2010-01-22 15:39:11 UTC (rev 2937)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/ScriptStorage.java 2010-01-22 15:42:09 UTC (rev 2938)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2005 - 2009
+ * Copyright (C) 2005 - 2010
* Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -75,8 +75,7 @@
}
static public File getScriptDirectory() {
- File result = IsisFish.config.getDatabaseDirectory();
- result = new File(result, SCRIPT_PATH);
+ File result = new File(getContextDatabaseDirectory(), SCRIPT_PATH);
result.mkdirs();
return result;
}
@@ -98,11 +97,12 @@
* @return Le storage pour la regle
*/
static public ScriptStorage getScript(String name) {
- ScriptStorage result = scriptsCache .get(name);
+ String cacheName = getContextDatabaseCacheKey(name);
+ ScriptStorage result = scriptsCache.get(cacheName);
if (result == null) {
- result = new ScriptStorage(IsisFish.config.getDatabaseDirectory(),
+ result = new ScriptStorage(getContextDatabaseDirectory(),
getScriptDirectory(), name);
- scriptsCache.put(name, result);
+ scriptsCache.put(cacheName, result);
}
return result;
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityExportStorage.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityExportStorage.java 2010-01-22 15:39:11 UTC (rev 2937)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityExportStorage.java 2010-01-22 15:42:09 UTC (rev 2938)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2009 Ifremer, Code Lutin
+ * Copyright (C) 2009-2010 Ifremer, Code Lutin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -69,8 +69,7 @@
}
public static File getSensitivityExportDirectory() {
- File result = IsisFish.config.getDatabaseDirectory();
- result = new File(result, SENSITIVITY_EXPORT_PATH);
+ File result = new File(getContextDatabaseDirectory(), SENSITIVITY_EXPORT_PATH);
result.mkdirs();
return result;
}
@@ -93,11 +92,12 @@
* @return Le storage pour la regle
*/
public static SensitivityExportStorage getSensitivityExport(String name) {
- SensitivityExportStorage result = sensitivityExportsCache.get(name);
+ String cacheName = getContextDatabaseCacheKey(name);
+ SensitivityExportStorage result = sensitivityExportsCache.get(cacheName);
if (result == null) {
- result = new SensitivityExportStorage(IsisFish.config.getDatabaseDirectory(),
+ result = new SensitivityExportStorage(getContextDatabaseDirectory(),
getSensitivityExportDirectory(), name);
- sensitivityExportsCache.put(name, result);
+ sensitivityExportsCache.put(cacheName, result);
}
return result;
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityStorage.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityStorage.java 2010-01-22 15:39:11 UTC (rev 2937)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityStorage.java 2010-01-22 15:42:09 UTC (rev 2938)
@@ -1,4 +1,4 @@
-/* *##% Copyright (C) 2009 Ifremer, Code Lutin
+/* *##% Copyright (C) 2009-2010 Ifremer, Code Lutin
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
@@ -89,8 +89,7 @@
* @return sensitivity storage directory
*/
public static File getSensitivityDirectory() {
- File result = IsisFish.config.getDatabaseDirectory();
- result = new File(result, SENSITIVITY_PATH);
+ File result = new File(getContextDatabaseDirectory(), SENSITIVITY_PATH);
result.mkdirs();
return result;
}
@@ -112,11 +111,11 @@
* @return Le {@link SensitivityStorage} pour le calculateur
*/
public static SensitivityStorage getSensitivity(String name) {
- SensitivityStorage result = sensitivityCache.get(name);
+ String cacheName = getContextDatabaseCacheKey(name);
+ SensitivityStorage result = sensitivityCache.get(cacheName);
if (result == null) {
- result = new SensitivityStorage(IsisFish.config
- .getDatabaseDirectory(), getSensitivityDirectory(), name);
- sensitivityCache.put(name, result);
+ result = new SensitivityStorage(getContextDatabaseDirectory(), getSensitivityDirectory(), name);
+ sensitivityCache.put(cacheName, result);
}
return result;
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationStorage.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationStorage.java 2010-01-22 15:39:11 UTC (rev 2937)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationStorage.java 2010-01-22 15:42:09 UTC (rev 2938)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2005 - 2009
+ * Copyright (C) 2005 - 2010
* Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -107,6 +107,7 @@
* @return simulation directory
*/
public static File getSimulationDirectory() {
+ // warning, here, do not use getContextDatabaseDirectory()
File result = IsisFish.config.getDatabaseDirectory();
result = new File(result, SIMULATION_PATH);
if (!result.exists()) {
@@ -137,6 +138,7 @@
* @return sensitivity result directory
*/
public static File getSensitivityResultsDirectory() {
+ // warning, here, do not use getContextDatabaseDirectory()
File result = IsisFish.config.getDatabaseDirectory();
result = new File(result, SENSITIVITY_RESULTS);
if (!result.exists()) {
@@ -309,7 +311,8 @@
}
/**
- * Modifie les parametres de la simulation
+ * Modifie les parametres de la simulation.
+ *
* @param parameter les nouveaux parametres
*/
public void setParameter(SimulationParameter parameter) {
@@ -331,25 +334,10 @@
/**
* Get parameter property.
- *
- * This method open database.
- *
- * @return Parameter property.
- */
- public SimulationParameter getParameter() {
- return getParameter(null);
- }
-
- /**
- * Get parameter property.
- *
- * This method open database.
*
- * @param directory if not null, region will be forced to this directory
- *
* @return Parameter property.
*/
- public SimulationParameter getParameter(File directory) {
+ public SimulationParameter getParameter() {
if (parameter == null) {
Properties prop = new Properties();
File file = getSimulationParametersFile();
@@ -365,7 +353,7 @@
prop.load(in);
in.close();
parameter = new SimulationParameter();
- parameter.fromProperties(directory, prop);
+ parameter.fromProperties(prop);
} catch (IOException eee) {
throw new IsisFishRuntimeException(_(
"isisfish.error.read.simulation.parameters", file), eee);
@@ -375,31 +363,6 @@
}
/**
- * Get parameter property.
- *
- * @return Parameter property.
- *
- * @deprecated restore getParameter() mecanism
- */
- public Properties getPropertiesParameter() {
-
- Properties prop = new Properties();
- File file = getSimulationParametersFile();
-
- try {
- FileInputStream in = new FileInputStream(file);
- prop.load(in);
- in.close();
-
- } catch (IOException eee) {
- throw new IsisFishRuntimeException(_(
- "isisfish.error.read.simulation.parameters", file), eee);
- }
-
- return prop;
- }
-
- /**
* Permet de force la relecture des parametres et donc que les scripts
* soit charge dans le bon classloader
*
@@ -420,7 +383,7 @@
prop.load(in);
in.close();
parameter = new SimulationParameter();
- parameter.fromProperties(getDirectory(), prop);
+ parameter.fromProperties(prop);
} catch (IOException eee) {
throw new IsisFishRuntimeException(_(
"isisfish.error.read.simulation.parameters", file), eee);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulatorStorage.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulatorStorage.java 2010-01-22 15:39:11 UTC (rev 2937)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulatorStorage.java 2010-01-22 15:42:09 UTC (rev 2938)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2005 - 2009
+ * Copyright (C) 2005 - 2010
* Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -53,7 +53,7 @@
/**
* Constructeur.
- *
+ *
* @param rootSrc
*/
protected SimulatorStorage(File rootSrc, File directory, String name) {
@@ -61,17 +61,16 @@
}
public static File getSimulatorDirectory() {
- File result = IsisFish.config.getDatabaseDirectory();
- result = new File(result, SIMULATOR_PATH);
+ File result = new File(getContextDatabaseDirectory(), SIMULATOR_PATH);
result.mkdirs();
return result;
}
/**
- * Retourne une nouvelle instance de la regle. Compile le fichier si besoin
+ * Retourne une nouvelle instance du simulateur. Compile le fichier si besoin.
*
- * @return new rule instance
+ * @return new simulator instance
* @throws IsisFishException
*/
public Simulator getNewSimulatorInstance() throws IsisFishException {
@@ -80,17 +79,20 @@
}
/**
- * Retourne le storage pour la regle demandée
+ * Retourne le storage pour le simulateur demandée.
*
+ * {@link SimulatorStorage} is cached by name.
+ *
* @param name le nom de la regle souhaitée
* @return Le storage pour la regle
*/
static public SimulatorStorage getSimulator(String name) {
- SimulatorStorage result = simulatorsCache .get(name);
+ String cacheName = getContextDatabaseCacheKey(name);
+ SimulatorStorage result = simulatorsCache.get(cacheName);
if (result == null) {
- result = new SimulatorStorage(IsisFish.config.getDatabaseDirectory(),
+ result = new SimulatorStorage(getContextDatabaseDirectory(),
getSimulatorDirectory(), name);
- simulatorsCache.put(name, result);
+ simulatorsCache.put(cacheName, result);
}
return result;
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java 2010-01-22 15:39:11 UTC (rev 2937)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java 2010-01-22 15:42:09 UTC (rev 2938)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2006 - 2009
+ * Copyright (C) 2006 - 2010
* Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -71,6 +71,33 @@
}
/**
+ * Return context root directory to use for all data files depending on
+ * context (simulation/no simulation).
+ *
+ * In simulation context, must look for files in simulation directory
+ * instead of isis database.
+ *
+ * TODO better place in other storage, but needed for region anad java scrits
+ */
+ protected static File getContextDatabaseDirectory() {
+ return IsisFish.config.getContextDatabaseDirectory();
+ }
+
+ /**
+ * Get cache storage key to use depending on context storage used.
+ *
+ * Two simulation must have their own cache.
+ *
+ * @return context cache key
+ *
+ * TODO better place in other storage, but needed for region anad java scrits
+ */
+ protected static String getContextDatabaseCacheKey(String key) {
+ String result = getContextDatabaseDirectory().getAbsolutePath() + key;
+ return result;
+ }
+
+ /**
* Get {@link VCS}.
*
* @return VCS
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationContext.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationContext.java 2010-01-22 15:39:11 UTC (rev 2937)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationContext.java 2010-01-22 15:42:09 UTC (rev 2938)
@@ -302,6 +302,10 @@
}
/**
+ * Script directory to use.
+ *
+ * Used to chnage isis-database-3 directory in running simulation context.
+ *
* @param scriptDirectory
*/
public void setScriptDirectory(File scriptDirectory) {
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java 2010-01-22 15:39:11 UTC (rev 2937)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java 2010-01-22 15:42:09 UTC (rev 2938)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2006 - 2009 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
+ * Copyright (C) 2006 - 2010 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
@@ -192,8 +192,6 @@
/** La region corespondant au parametre {@link #regionName}. */
protected transient RegionStorage region;
- /** [HACK] Directory form where region have to be loaded. */
- protected transient File directory;
/**
* Permet de verifier que tous les parametres sont bon. Si ce n'est pas le
@@ -270,21 +268,15 @@
/**
* Load region conresponding to {@link #regionName}.
*
- * Contains a hack to load region from a specific directory
- * instead of regions direcory ({@link #directory}).
- *
* @return the region
*/
public RegionStorage getRegion() {
if (region == null || !region.getName().equals(getRegionName())) {
- // hack
- if (directory != null) {
- // ATTENTION: directory pointe sur le repertoire de la simulation et non de la region
- this.region = new RegionStorage(directory, regionName);
- } else {
- region = RegionStorage.getRegion(getRegionName());
- }
+ // bien faire attention ici que la bonne region est ouverte
+ // - isis-database-3 dans le cas d'une region normale
+ // - simulation dans le cas d'une simulation
+ region = RegionStorage.getRegion(getRegionName(), true);
} else {
if (log.isDebugEnabled()) {
log.debug(_("Region %s already inited", getRegionName()));
@@ -1530,9 +1522,6 @@
public SimulationParameter copy() {
SimulationParameter result = new SimulationParameter();
- // just need to copy directory and properties now
- result.directory = directory;
-
if (propertiesParameters != null) {
result.propertiesParameters = new SortedProperties();
// I think that iteration work better than parameters in contructor
@@ -1598,12 +1587,12 @@
public SimulationParameter deepCopy() {
Properties props = toProperties();
SimulationParameter newInstance = new SimulationParameter();
- newInstance.fromProperties(null, props);
+ newInstance.fromProperties(props);
return newInstance;
}
/**
- * The toString() methode call getters.
+ * The toString() method call getters.
*
* So make instances of rules/export/plans...
*/
@@ -1895,16 +1884,14 @@
/**
* Load properties from file.
- *
- * @param directory if not null, region will be forced to this directory
+ *
* @param props property to read
*/
- public void fromProperties(File directory, Properties props) {
+ public void fromProperties(Properties props) {
// save properties (use full to read again parameter)
// for exports, or rules....
this.propertiesParameters = props;
- this.directory = directory;
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2010-01-22 15:39:11 UTC (rev 2937)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2010-01-22 15:42:09 UTC (rev 2938)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2002 - 2009 Ifremer, Code Lutin, Benjamin Poussin
+ * Copyright (C) 2002 - 2010 Ifremer, Code Lutin, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -119,10 +119,9 @@
log.debug("Timing : after import zip : " + new java.util.Date());
}
+ // WARNING: make sure to not open Region before being in simulation context
// add missing control informations
- // TODO again region database directory hack
- // force region reading in simulation directory
- SimulationParameter param = simulation.getParameter(simulation.getFile());
+ SimulationParameter param = simulation.getParameter();
control.setDate(new Date());
control.setProgress(0);
control.setStarted(true);
@@ -330,8 +329,10 @@
// - SimulationContext.get();
// - context.setSimulationControl()
classLoader = changeClassLoader(Thread.currentThread(), rootDirectory);
-
context.setClassLoader(classLoader);
+
+ // this directory is used to change isis-database root directory
+ // is simulation context
context.setScriptDirectory(rootDirectory);
context.setSimulationStorage(simulation);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2010-01-22 15:39:11 UTC (rev 2937)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2010-01-22 15:42:09 UTC (rev 2938)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2005 - 2009
+ * Copyright (C) 2005 - 2010
* Ifremer, Code Lutin, Cedric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -168,7 +168,7 @@
fos = new FileInputStream(f);
Properties proper = new Properties();
proper.load(fos);
- param.fromProperties(null, proper);
+ param.fromProperties(proper);
} catch (Exception e) {
if (log.isErrorEnabled()) {
log.error("Can't import simulation", e);
Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationParameterTest.java
===================================================================
--- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationParameterTest.java 2010-01-22 15:39:11 UTC (rev 2937)
+++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationParameterTest.java 2010-01-22 15:42:09 UTC (rev 2938)
@@ -99,7 +99,7 @@
// make transform
Properties props = params.toProperties();
SimulationParameter params2 = new SimulationParameter();
- params2.fromProperties(null, props);
+ params2.fromProperties(props);
Assert.assertEquals("3.2.0.4", params2.getIsisFishVersion());
Assert.assertEquals("desc", params2.getDescription());
@@ -123,7 +123,7 @@
Properties props = new SortedProperties();
props.load(basicFileStream);
SimulationParameter param = new SimulationParameter();
- param.fromProperties(null, props);
+ param.fromProperties(props);
Assert.assertEquals("3.2.0.6", param.getIsisFishVersion());
@@ -155,11 +155,11 @@
Properties props = new SortedProperties();
props.load(basicFileStream);
SimulationParameter param = new SimulationParameter();
- param.fromProperties(null, props);
+ param.fromProperties(props);
Properties props2 = param.toProperties();
SimulationParameter param2 = new SimulationParameter();
- param2.fromProperties(null, props2);
+ param2.fromProperties(props2);
// test rules
Assert.assertNull(param.rules);
@@ -188,11 +188,11 @@
Properties props = new SortedProperties();
props.load(basicFileStream);
SimulationParameter param = new SimulationParameter();
- param.fromProperties(null, props);
+ param.fromProperties(props);
Properties props2 = param.toProperties();
SimulationParameter param2 = new SimulationParameter();
- param2.fromProperties(null, props2);
+ param2.fromProperties(props2);
// test analyse plans
Assert.assertNull(param.analysePlans);
@@ -213,7 +213,7 @@
Properties props = new SortedProperties();
props.load(basicFileStream);
SimulationParameter param = new SimulationParameter();
- param.fromProperties(null, props);
+ param.fromProperties(props);
// force some properties instantiation
param.getAnalysePlans();
@@ -243,7 +243,7 @@
props.load(basicFileStream);
SimulationParameter param = new SimulationParameter();
- param.fromProperties(null, props);
+ param.fromProperties(props);
String toString = param.toString();
if (log.isInfoEnabled()) {
1
0
r2937 - in isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui: input input/gear input/metier sensitivity
by chatellier@users.labs.libre-entreprise.org 22 Jan '10
by chatellier@users.labs.libre-entreprise.org 22 Jan '10
22 Jan '10
Author: chatellier
Date: 2010-01-22 15:39:11 +0000 (Fri, 22 Jan 2010)
New Revision: 2937
Added:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTableModel.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/TableBlockingLayerUI.java
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/gear/GearPopulationSelectivityModel.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/metier/MetierSeasonInfoTargetSpeciesTableModel.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EquationContinuousPanelUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityAction.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx
Log:
Enable to add factors from tables (target factor equation, selectivity equation)
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx 2010-01-22 15:38:16 UTC (rev 2936)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx 2010-01-22 15:39:11 UTC (rev 2937)
@@ -47,6 +47,8 @@
}
}}' />
+ <fr.ifremer.isisfish.ui.sensitivity.TableBlockingLayerUI id="tableLayerUI" constructorParams='this' />
+
<script><![CDATA[
import javax.swing.JComponent;
import fr.ifremer.isisfish.entities.FisheryRegion;
@@ -134,16 +136,25 @@
String sensitivityFactorName = className + "." + method;
isSensitivityFactorEnabled = SensitivityUtils.isSensitivityFactorEnabled(sensitivityFactorName);
}
-
+
// install correct layer depending if factor enable
if (isSensitivityFactorEnabled) {
jaxx.runtime.swing.BlockingLayerUI2 ui = layerUI2.clone();
SwingUtil.getLayer(boxed).setUI(ui);
} else {
- jaxx.runtime.swing.BlockingLayerUI ui = layerUI.clone();
- ui.setBlock(true);
- ui.setUseIcon(isActif());
- SwingUtil.getLayer(boxed).setUI(ui);
+ if (boxed instanceof JTable) {
+ //fr.ifremer.isisfish.ui.sensitivity.TableBlockingLayerUI layerui =
+ // new fr.ifremer.isisfish.ui.sensitivity.TableBlockingLayerUI();
+ //layerui.parent = this;
+ //layerui.verifier = getVerifier();
+ SwingUtil.getLayer(boxed).setUI(tableLayerUI);
+ }
+ else {
+ jaxx.runtime.swing.BlockingLayerUI ui = layerUI.clone();
+ ui.setBlock(true);
+ ui.setUseIcon(isActif());
+ SwingUtil.getLayer(boxed).setUI(ui);
+ }
}
}
}
@@ -160,9 +171,9 @@
}
JComponent source = (JComponent) e.getSource();
- Class classBean = (Class)source.getClientProperty("bean");
+ Class<? extends TopiaEntity> classBean = (Class<? extends TopiaEntity>)source.getClientProperty("bean");
String beanID = (String)source.getClientProperty("beanID");
- TopiaEntity bean = null;
+ /*TopiaEntity bean = null;
if (beanID == null) {
bean = getVerifier().getEntity(classBean);
}
@@ -174,7 +185,59 @@
wizard.initNew(source, bean, EditorHelper.canBeContinue(source, bean));
wizard.pack();
wizard.setVisible(true);
+ }*/
+
+ String property = (String)source.getClientProperty("method");
+ displayFactorWizard(source, classBean, beanID, property);
+}
+
+/**
+ * Display factor wizard for bean/property in registred in verifier.
+ */
+public void displayFactorWizard(JComponent source, Class<? extends TopiaEntity> classBean, String beanID, String property) {
+
+ if (log.isDebugEnabled()) {
+ log.debug("Event intercepted " + source);
+ log.debug(" client property (bean) : " + classBean);
+ log.debug(" client property (beanID) : " + beanID);
+ log.debug(" client property (method) : " + property);
}
+
+ TopiaEntity bean = null;
+ if (beanID == null) {
+ bean = getVerifier().getEntity(classBean);
+ }
+ else {
+ bean = getVerifier().getEntity(classBean, beanID);
+ }
+
+ if (bean != null) {
+
+ JComponent editor = source;
+
+ // This is a special case for table source component
+ // If current entity is displayed by a JTable component
+ // we need to find a better component than
+ // can display 'property' on 'bean'
+ if (editor instanceof JTable) {
+ editor = EditorHelper.getEditorForValue(bean, property);
+ }
+
+ if (editor != null) {
+ FactorWizardUI wizard = new FactorWizardUI(this);
+ wizard.initNew(editor, bean, EditorHelper.canBeContinue(editor, bean));
+ wizard.pack();
+ wizard.setVisible(true);
+ }
+ else if (log.isWarnEnabled()) {
+ log.warn("Can't find editor for " + classBean.getSimpleName() + "#" + property);
+ }
+ }
+ else {
+ if (log.isErrorEnabled()) {
+ log.error("Can't find bean in current verifier (classBean = " + classBean + ", beanID = " + beanID + ")");
+ }
+ }
}
/**
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/gear/GearPopulationSelectivityModel.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/gear/GearPopulationSelectivityModel.java 2010-01-22 15:38:16 UTC (rev 2936)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/gear/GearPopulationSelectivityModel.java 2010-01-22 15:39:11 UTC (rev 2937)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2009 Code Lutin
+ * Copyright (C) 2009-2010 Ifremer, Code Lutin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -35,6 +35,7 @@
import fr.ifremer.isisfish.entities.Equation;
import fr.ifremer.isisfish.entities.Gear;
import fr.ifremer.isisfish.entities.Selectivity;
+import fr.ifremer.isisfish.ui.sensitivity.SensitivityTableModel;
/**
* Table model for {@link Gear}#{@link Selectivity}.
@@ -49,7 +50,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class GearPopulationSelectivityModel extends AbstractTableModel implements TableCellRenderer {
+public class GearPopulationSelectivityModel extends AbstractTableModel implements TableCellRenderer, SensitivityTableModel {
/** Log. */
private static Log log = LogFactory.getLog(GearPopulationSelectivityModel.class);
@@ -228,4 +229,25 @@
return c;
}
+ /*
+ * @see fr.ifremer.isisfish.ui.sensitivity.SensitivityTableModel#getPropertyAtColumn(int)
+ */
+ @Override
+ public String getPropertyAtColumn(int column) {
+ String result = null;
+ if (column == 1) {
+ result = "equation";
+ }
+ return result;
+ }
+
+ /*
+ * @see fr.ifremer.isisfish.ui.sensitivity.SensitivityTableModel#getBeanAtRow(int)
+ */
+ @Override
+ public Object getBeanAtRow(int rowIndex) {
+ Object result = null;
+ result = selectivities.get(rowIndex);
+ return result;
+ }
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/metier/MetierSeasonInfoTargetSpeciesTableModel.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/metier/MetierSeasonInfoTargetSpeciesTableModel.java 2010-01-22 15:38:16 UTC (rev 2936)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/metier/MetierSeasonInfoTargetSpeciesTableModel.java 2010-01-22 15:39:11 UTC (rev 2937)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2009 Ifremer, Code Lutin
+ * Copyright (C) 2009-2010 Ifremer, Code Lutin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -36,6 +36,7 @@
import fr.ifremer.isisfish.entities.Equation;
import fr.ifremer.isisfish.entities.MetierSeasonInfo;
import fr.ifremer.isisfish.entities.TargetSpecies;
+import fr.ifremer.isisfish.ui.sensitivity.SensitivityTableModel;
/**
* Table model for {@link MetierSeasonInfo}#{@link TargetSpecies}.
@@ -51,7 +52,7 @@
* Last update : $Date$
* By : $Author$
*/
-public class MetierSeasonInfoTargetSpeciesTableModel extends AbstractTableModel implements TableCellRenderer {
+public class MetierSeasonInfoTargetSpeciesTableModel extends AbstractTableModel implements TableCellRenderer, SensitivityTableModel {
/** Log. */
private static Log log = LogFactory.getLog(MetierSeasonInfoTargetSpeciesTableModel.class);
@@ -236,4 +237,25 @@
return c;
}
+ /*
+ * @see fr.ifremer.isisfish.ui.sensitivity.SensitivityTableModel#getPropertyAtColumn(int)
+ */
+ @Override
+ public String getPropertyAtColumn(int column) {
+ String property = null;
+ if (column == 1) {
+ property = "targetFactorEquation";
+ }
+ return property;
+ }
+
+ /*
+ * @see fr.ifremer.isisfish.ui.sensitivity.SensitivityTableModel#getBeanAtRow(int)
+ */
+ @Override
+ public Object getBeanAtRow(int rowIndex) {
+ Object value = null;
+ value = targetSpeciesList.get(rowIndex);
+ return value;
+ }
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java 2010-01-22 15:38:16 UTC (rev 2936)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java 2010-01-22 15:39:11 UTC (rev 2937)
@@ -161,11 +161,12 @@
InputOneEquationUI ui = new InputOneEquationUI(
new JAXXInitialContext().add(new InputAction()));
ui.setSelectedEquation(origine.getSelectedEquation());
- ui.setLblText(origine.getLblText());
- ui.setNameEquation(origine.getNameEquation());
+ ui.setText(origine.getText());
+ ui.setFormuleCategory(origine.getFormuleCategory());
ui.setClazz(origine.getClazz());
- ui.setMethodGet(origine.getMethodGet());
- ui.setMethodSet(origine.getMethodSet());
+ //ui.setMethodGet(origine.getMethodGet());
+ //ui.setMethodSet(origine.getMethodSet());
+ ui.setBeanProperty(origine.getBeanProperty());
ui.setBean(entity);
ui.setActif(true);
ui.refresh();
@@ -264,11 +265,12 @@
EquationContinuousPanelUI ui = new EquationContinuousPanelUI(
new JAXXInitialContext().add(new InputAction()));
ui.setSelectedEquation(origine.getSelectedEquation());
- ui.setLblText(origine.getLblText());
- ui.setNameEquation(origine.getNameEquation());
+ ui.setText(origine.getText());
+ ui.setFormuleCategory(origine.getFormuleCategory());
ui.setClazz(origine.getClazz());
- ui.setMethodGet(origine.getMethodGet());
- ui.setMethodSet(origine.getMethodSet());
+ //ui.setMethodGet(origine.getMethodGet());
+ //ui.setMethodSet(origine.getMethodSet());
+ ui.setBeanProperty(origine.getBeanProperty());
ui.setBean(entity);
result = ui;
} else if (component instanceof MatrixEditor) {
@@ -321,12 +323,13 @@
InputOneEquationUI origine = (InputOneEquationUI) component;
EquationContinuousPanelUI ui = new EquationContinuousPanelUI(
new JAXXInitialContext().add(new InputAction()));
- ui.setLblText(origine.getLblText());
- ui.setNameEquation(origine.getNameEquation());
+ ui.setText(origine.getText());
+ ui.setFormuleCategory(origine.getFormuleCategory());
ui.getEditor().getEditor().setText((String) factor.getValue());
ui.setClazz(origine.getClazz());
- ui.setMethodGet(origine.getMethodGet());
- ui.setMethodSet(origine.getMethodSet());
+ //ui.setMethodGet(origine.getMethodGet());
+ //ui.setMethodSet(origine.getMethodSet());
+ ui.setBeanProperty(origine.getBeanProperty());
ui.setBean(origine.getBean());
EquationContinuousDomain equationDomain = (EquationContinuousDomain) domain;
@@ -437,9 +440,11 @@
InputOneEquationUI origine = (InputOneEquationUI) component;
InputOneEquationUI ui = new InputOneEquationUI(new JAXXInitialContext().add(new InputAction()));
ui.getEditor().setText((String) value);
- ui.setLblText(origine.getLblText());
- ui.setNameEquation(origine.getNameEquation());
+ ui.setText(origine.getText());
+ ui.setFormuleCategory(origine.getFormuleCategory());
ui.setClazz(origine.getClazz());
+ /// ??? was not set before
+ ui.setBeanProperty(origine.getBeanProperty());
ui.setFormule((Formule) value);
ui.setActif(true);
ui.refresh();
@@ -702,14 +707,14 @@
* @param fieldName
* @return method return value
*/
- protected static Object getMethodValue(TopiaEntity entity, String fieldName) {
+ protected static Object getMethodValue(Object entity, String fieldName) {
Object result = null;
try {
// fieldName maybe be sometime lower case
String getMethod = "get" + StringUtils.capitalize(fieldName);
Method m = entity.getClass().getMethod(getMethod);
- result = m.invoke(entity, (Object[]) null);
+ result = m.invoke(entity);
} catch (Exception ex) {
if (log.isErrorEnabled()) {
log.error("Can't get entity value", ex);
@@ -805,7 +810,8 @@
log.debug("Factor " + factor.getName() + " denoted entity " + entity);
}
- Method method = entity.getClass().getMethod("get" + property);
+ String getter = "get" + StringUtils.capitalize(property);
+ Method method = entity.getClass().getMethod(getter);
typeClazz = method.getReturnType();
if (log.isDebugEnabled()) {
@@ -856,4 +862,30 @@
return result;
}
+
+ /**
+ * Get editor for editing value.
+ *
+ * @param bean bean
+ * @param beanProperty bean property
+ * @return component
+ */
+ public static JComponent getEditorForValue(Object bean, String beanProperty) {
+ Object basicType = getMethodValue(bean, beanProperty);
+
+ JComponent component = null;
+
+ if (basicType instanceof Equation) {
+ Equation basicEquation = (Equation)basicType;
+ InputOneEquationUI equationComponent = new InputOneEquationUI(
+ new JAXXInitialContext().add(new InputAction()));
+ equationComponent.setFormuleCategory(basicEquation.getCategory());
+ equationComponent.setBean((TopiaEntity)bean);
+ equationComponent.setBeanProperty(beanProperty);
+ equationComponent.putClientProperty("method", beanProperty);
+ component = equationComponent;
+ }
+
+ return component;
+ }
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EquationContinuousPanelUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EquationContinuousPanelUI.jaxx 2010-01-22 15:38:16 UTC (rev 2936)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EquationContinuousPanelUI.jaxx 2010-01-22 15:39:11 UTC (rev 2937)
@@ -1,6 +1,6 @@
<!--
/* *##%
- * Copyright (C) 2005 - 2009 Ifremer, Code Lutin
+ * Copyright (C) 2005 - 2010 Ifremer, Code Lutin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -19,17 +19,17 @@
-->
<ContinuousPanelContainerUI>
- <!-- bean property -->
- <fr.ifremer.isisfish.entities.Formule id='formule' javaBean='null'/>
- <String id='lblText' javaBean='null'/>
+ <String id='text' javaBean='null'/>
<org.nuiton.topia.persistence.TopiaEntity id='bean' javaBean='null'/>
+ <String id='beanProperty' javaBean='null'/>
+ <!-- For editor doc purpose -->
<Class id='clazz' javaBean='null'/>
- <String id='methodGet' javaBean='null'/>
- <String id='methodSet' javaBean='null'/>
- <String id='nameEquation' javaBean='null'/>
+ <String id='formuleCategory' javaBean='null'/>
<fr.ifremer.isisfish.entities.Equation id='selectedEquation' javaBean='null'/>
+ <!-- bean property -->
+ <fr.ifremer.isisfish.entities.Formule id='formule' javaBean='null'/>
- <script><![CDATA[
+ <script><![CDATA[
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;
import fr.ifremer.isisfish.simulator.sensitivity.domain.EquationContinuousDomain;
@@ -65,7 +65,7 @@
datas.add(domain);
}
-protected AbstractTableModel getTableModel(){
+protected AbstractTableModel getTableModel() {
AbstractTableModel model = new AbstractTableModel() {
@Override
public int getRowCount() {
@@ -168,7 +168,7 @@
Pattern p = Pattern.compile("(^.*\\s+" + variableName + "\\s*\\=\\s*)([\\d\\.]+).*\\;$");
Matcher matcher = p.matcher(line);
if (matcher.find()) {
- String fullVariableName = bean.toString() + "." + StringUtils.uncapitalize(methodGet) + "." + variableName;
+ String fullVariableName = bean.toString() + "." + StringUtils.uncapitalize(beanProperty) + "." + variableName;
line = matcher.group(1) + "context.getValueAndCompute(\"" + fullVariableName + "\", " + matcher.group(2) + ");";
}
result += line + "\n";
@@ -237,8 +237,7 @@
setTable();
}
}
- ]]>
- </script>
+ ]]></script>
<Table id='content' constraints='BorderLayout.CENTER'>
<row>
<cell fill='both' columns='2' weightx='1' weighty='0.5'>
@@ -258,9 +257,9 @@
</row>
<row>
<cell fill='both' columns='2' weightx='1' weighty='0.5'>
- <fr.ifremer.isisfish.ui.input.InputOneEquationUI id='editor' formule='{getFormule()}' lblText='{getLblText()}'
- constructorParams='this' bean='{getBean()}' clazz='{getClazz()}' methodGet='{getMethodGet()}' actif='{isContinueSelected()}'
- methodSet='{getMethodSet()}' nameEquation='{getNameEquation()}' selectedEquation='{getSelectedEquation()}'
+ <fr.ifremer.isisfish.ui.input.InputOneEquationUI id='editor' formule='{getFormule()}' text='{getText()}'
+ constructorParams='this' bean='{getBean()}' clazz='{getClazz()}' beanProperty='{getBeanProperty()}' actif='{isContinueSelected()}'
+ formuleCategory='{getFormuleCategory()}' selectedEquation='{getSelectedEquation()}'
visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
</cell>
</row>
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityAction.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityAction.java 2010-01-22 15:38:16 UTC (rev 2936)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityAction.java 2010-01-22 15:39:11 UTC (rev 2937)
@@ -28,6 +28,8 @@
import java.util.List;
import javax.swing.JComponent;
import javax.swing.JOptionPane;
+
+import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.math.matrix.MatrixND;
@@ -65,9 +67,10 @@
EquationContinuousPanelUI equationPanel = (EquationContinuousPanelUI) panel;
TopiaEntity bean = equationPanel.getBean();
- String methodSet = equationPanel.getMethodSet();
- Method m = bean.getClass().getMethod("set" + methodSet,
- String.class);
+ //String methodSet = equationPanel.getMethodSet();
+ String property = equationPanel.getBeanProperty();
+ property = StringUtils.capitalize(property) + "Content";
+ Method m = bean.getClass().getMethod("set" + property, String.class);
m.invoke(bean, equationPanel.getEditor().getEditor().getText());
// Save equation
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTableModel.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTableModel.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTableModel.java 2010-01-22 15:39:11 UTC (rev 2937)
@@ -0,0 +1,52 @@
+/* *##%
+ * Copyright (C) 2010 Ifremer, Code Lutin, Chatellier Eric
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.sensitivity;
+
+import javax.swing.table.TableModel;
+
+/**
+ * Sensitivity interface for {@link TableModel}.
+ *
+ * Used by {@link TableBlockingLayerUI} to known if event at mouse position
+ * is sensitivity enabled.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public interface SensitivityTableModel {
+
+ /**
+ * Get value at row.
+ *
+ * @param rowIndex row index
+ * @return value at row/column
+ */
+ Object getBeanAtRow(int rowIndex);
+
+ /**
+ * Get property name at column.
+ *
+ * @param column column
+ * @return property name at column (can be {@code null})
+ */
+ String getPropertyAtColumn(int column);
+}
\ No newline at end of file
Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTableModel.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx 2010-01-22 15:38:16 UTC (rev 2936)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx 2010-01-22 15:39:11 UTC (rev 2937)
@@ -1,6 +1,6 @@
<!--
/* *##%
- * Copyright (C) 2005 - 2009 Ifremer, Code Lutin
+ * Copyright (C) 2005 - 2010 Ifremer, Code Lutin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/TableBlockingLayerUI.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/TableBlockingLayerUI.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/TableBlockingLayerUI.java 2010-01-22 15:39:11 UTC (rev 2937)
@@ -0,0 +1,149 @@
+/* *##%
+ * Copyright (C) 2010 Ifremer, Code Lutin, Chatellier Eric
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.sensitivity;
+
+import java.awt.Cursor;
+import java.awt.event.MouseEvent;
+
+import javax.swing.JComponent;
+import javax.swing.JScrollBar;
+import javax.swing.JTable;
+import javax.swing.table.TableModel;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jdesktop.jxlayer.JXLayer;
+import org.jdesktop.jxlayer.plaf.AbstractLayerUI;
+import org.jdesktop.jxlayer.plaf.LayerUI;
+import org.nuiton.topia.persistence.TopiaEntity;
+
+import fr.ifremer.isisfish.ui.input.InputContentUI;
+
+/**
+ * A layer for factorizable entities properties in {@link JTable} component.
+ *
+ * This is a {@link LayerUI} that check if :
+ * <ul>
+ * <li>component is {@link JScrollBar} : clic allowed</li>
+ * <li>component is {@link JTable} and table model is {@link SensitivityTableModel} : do sensitivity stuff</li>
+ * </ul>
+ *
+ * Tree {@link MouseEvent}s are managed:
+ * <ul>
+ * <li>{@link MouseEvent#MOUSE_CLICKED} : display factor interface depending on sensitivity enabled table column</li>
+ * <li>{@link MouseEvent#MOUSE_MOVED} : change cursor depending on sensitivity enabled table column</li>
+ * <li>{@link MouseEvent#MOUSE_EXITED} : back to default cursor</li>
+ * </ul>
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class TableBlockingLayerUI extends AbstractLayerUI<JComponent> {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = 1877010363682882308L;
+
+ /** Class logger. */
+ private static Log log = LogFactory.getLog(TableBlockingLayerUI.class);
+
+ /** Parent UI. */
+ protected InputContentUI parent;
+
+ /**
+ * Init layer with parent.
+ *
+ * @param parent parent
+ */
+ public TableBlockingLayerUI(InputContentUI parent) {
+ this.parent = parent;
+ }
+
+ /*
+ * @see org.jdesktop.jxlayer.plaf.AbstractLayerUI#processMouseEvent(java.awt.event.MouseEvent, org.jdesktop.jxlayer.JXLayer)
+ */
+ @Override
+ protected void processMouseEvent(MouseEvent event, JXLayer</*? extends */JComponent> layer) {
+
+ // scrollbar can be moved
+ if (!(event.getSource() instanceof JScrollBar)) {
+ event.consume();
+ }
+
+ if (event.getSource() instanceof JTable) {
+
+ JTable tableSource = (JTable) event.getSource();
+ TableModel model = tableSource.getModel();
+
+ if (model instanceof SensitivityTableModel) {
+ SensitivityTableModel sensitivityTableModel = (SensitivityTableModel) model;
+
+ // mouse exit table
+ if (event.getID() == MouseEvent.MOUSE_EXITED) {
+ Cursor cursor = new Cursor(Cursor.DEFAULT_CURSOR);
+ tableSource.setCursor(cursor);
+ } else {
+ int rowIndex = tableSource.rowAtPoint(event.getPoint());
+ int columnIndex = tableSource.columnAtPoint(event.getPoint());
+
+ if (rowIndex >= 0 && columnIndex >= 0) {
+
+ // test if sensitivity property is enabled
+ SensitivityTableModel sensitivityModel = (SensitivityTableModel) model;
+ TopiaEntity value = (TopiaEntity) sensitivityTableModel.getBeanAtRow(rowIndex);
+ Class<? extends TopiaEntity> beanClass = value.getClass();
+ String property = sensitivityModel.getPropertyAtColumn(columnIndex);
+ String sensitivityName = beanClass.getSimpleName().replaceFirst("Impl", "") + "." + property;
+
+ if (SensitivityUtils.isSensitivityFactorEnabled(sensitivityName)) {
+
+ // clic sur la table
+ if (event.getID() == MouseEvent.MOUSE_CLICKED) {
+ if (log.isDebugEnabled()) {
+ log.debug("Clic done on an enabled factor : " + sensitivityName);
+ }
+
+ parent.displayFactorWizard(tableSource, beanClass, value.getTopiaId(), property);
+ }
+
+ // mouse moved over table
+ else if (event.getID() == MouseEvent.MOUSE_MOVED) {
+ Cursor cursor = new Cursor(Cursor.CROSSHAIR_CURSOR);
+ tableSource.setCursor(cursor);
+ }
+ } else {
+ Cursor cursor = new Cursor(Cursor.DEFAULT_CURSOR);
+ tableSource.setCursor(cursor);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /*
+ * @see org.jdesktop.jxlayer.plaf.AbstractLayerUI#processMouseMotionEvent(java.awt.event.MouseEvent, org.jdesktop.jxlayer.JXLayer)
+ */
+ @Override
+ protected void processMouseMotionEvent(MouseEvent e, JXLayer<JComponent> l) {
+ processMouseEvent(e, l);
+ }
+}
\ No newline at end of file
Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/TableBlockingLayerUI.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
1
0