Tutti-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
- 4130 discussions
r233 - in trunk: . tutti-persistence/src/license tutti-persistence-adagio/src/license tutti-persistence-dev/src/license tutti-service/src/license tutti-ui-swing tutti-ui-swing/src/license
by tchemit@users.forge.codelutin.com 19 Jan '13
by tchemit@users.forge.codelutin.com 19 Jan '13
19 Jan '13
Author: tchemit
Date: 2013-01-19 08:26:53 +0100 (Sat, 19 Jan 2013)
New Revision: 233
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/233
Log:
optimize third parties
Modified:
trunk/pom.xml
trunk/tutti-persistence-adagio/src/license/THIRD-PARTY.properties
trunk/tutti-persistence-dev/src/license/THIRD-PARTY.properties
trunk/tutti-persistence/src/license/THIRD-PARTY.properties
trunk/tutti-service/src/license/THIRD-PARTY.properties
trunk/tutti-ui-swing/pom.xml
trunk/tutti-ui-swing/src/license/THIRD-PARTY.properties
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-01-19 07:13:30 UTC (rev 232)
+++ trunk/pom.xml 2013-01-19 07:26:53 UTC (rev 233)
@@ -472,29 +472,6 @@
</configuration>
</plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>license-maven-plugin</artifactId>
- <configuration>
- <licenseMerges>
- <licenseMerge>The Apache Software License, Version 2.0|
- Apache License, Version 2.0
- </licenseMerge>
- <licenseMerge>General Public License (GPL)|
- GNU LESSER GENERAL PUBLIC LICENSE
- </licenseMerge>
- <licenseMerge>General Public License (GPL)|
- GNU Lesser General Public License
- </licenseMerge>
- <licenseMerge>
- Common Development and Distribution License (CDDL) v1.0|
- COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
- </licenseMerge>
- <licenseMerge>BSD License|BSD</licenseMerge>
- </licenseMerges>
- </configuration>
- </plugin>
-
</plugins>
</pluginManagement>
Modified: trunk/tutti-persistence/src/license/THIRD-PARTY.properties
===================================================================
--- trunk/tutti-persistence/src/license/THIRD-PARTY.properties 2013-01-19 07:13:30 UTC (rev 232)
+++ trunk/tutti-persistence/src/license/THIRD-PARTY.properties 2013-01-19 07:26:53 UTC (rev 233)
@@ -8,11 +8,12 @@
# - Lesser General Public License (LPGL)
# - Lesser General Public License (LPGL) v 2.1
# - MIT License
+# - Public Domain
# - The Apache Software License, Version 2.0
#-------------------------------------------------------------------------------
# Please fill the missing licenses for dependencies :
#
#
-#Tue Jan 15 12:44:38 CET 2013
+#Sat Jan 19 08:25:52 CET 2013
commons-primitives--commons-primitives--1.0=The Apache Software License, Version 2.0
regexp--regexp--1.3=The Apache Software License, Version 2.0
Modified: trunk/tutti-persistence-adagio/src/license/THIRD-PARTY.properties
===================================================================
--- trunk/tutti-persistence-adagio/src/license/THIRD-PARTY.properties 2013-01-19 07:13:30 UTC (rev 232)
+++ trunk/tutti-persistence-adagio/src/license/THIRD-PARTY.properties 2013-01-19 07:26:53 UTC (rev 233)
@@ -22,7 +22,7 @@
# Please fill the missing licenses for dependencies :
#
#
-#Tue Jan 15 12:44:39 CET 2013
+#Sat Jan 19 08:25:57 CET 2013
antlr--antlr--2.7.6=BSD License
commons-primitives--commons-primitives--1.0=The Apache Software License, Version 2.0
dom4j--dom4j--1.6.1=BSD License
Modified: trunk/tutti-persistence-dev/src/license/THIRD-PARTY.properties
===================================================================
--- trunk/tutti-persistence-dev/src/license/THIRD-PARTY.properties 2013-01-19 07:13:30 UTC (rev 232)
+++ trunk/tutti-persistence-dev/src/license/THIRD-PARTY.properties 2013-01-19 07:26:53 UTC (rev 233)
@@ -11,11 +11,12 @@
# - Lesser General Public License (LPGL) v 2.1
# - MIT License
# - New BSD License
+# - Public Domain
# - The Apache Software License, Version 2.0
#-------------------------------------------------------------------------------
# Please fill the missing licenses for dependencies :
#
#
-#Tue Jan 15 12:44:38 CET 2013
+#Sat Jan 19 08:25:56 CET 2013
commons-primitives--commons-primitives--1.0=The Apache Software License, Version 2.0
regexp--regexp--1.3=The Apache Software License, Version 2.0
Modified: trunk/tutti-service/src/license/THIRD-PARTY.properties
===================================================================
--- trunk/tutti-service/src/license/THIRD-PARTY.properties 2013-01-19 07:13:30 UTC (rev 232)
+++ trunk/tutti-service/src/license/THIRD-PARTY.properties 2013-01-19 07:26:53 UTC (rev 233)
@@ -4,6 +4,7 @@
# - Affero General Public License (AGPL)
# - BSD License
# - COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+# - Common Public License Version 1.0
# - Eclipse Public License - v 1.0
# - General Public License (GPL)
# - HSQLDB License
@@ -13,6 +14,7 @@
# - Lesser General Public License (LPGL) v 2.1
# - MIT License
# - MPL 1.1
+# - New BSD License
# - Public Domain
# - The Apache Software License, Version 2.0
# - license.txt
@@ -20,7 +22,7 @@
# Please fill the missing licenses for dependencies :
#
#
-#Tue Jan 15 12:44:40 CET 2013
+#Sat Jan 19 08:25:57 CET 2013
antlr--antlr--2.7.6=BSD License
commons-primitives--commons-primitives--1.0=The Apache Software License, Version 2.0
dom4j--dom4j--1.6.1=BSD License
Modified: trunk/tutti-ui-swing/pom.xml
===================================================================
--- trunk/tutti-ui-swing/pom.xml 2013-01-19 07:13:30 UTC (rev 232)
+++ trunk/tutti-ui-swing/pom.xml 2013-01-19 07:26:53 UTC (rev 233)
@@ -150,6 +150,24 @@
<goal>update-project-license</goal>
<goal>add-third-party</goal>
</goals>
+ <configuration>
+ <licenseMerges>
+ <licenseMerge>The Apache Software License, Version 2.0|
+ Apache License, Version 2.0
+ </licenseMerge>
+ <licenseMerge>General Public License (GPL)|
+ GNU LESSER GENERAL PUBLIC LICENSE
+ </licenseMerge>
+ <licenseMerge>General Public License (GPL)|
+ GNU Lesser General Public License
+ </licenseMerge>
+ <licenseMerge>
+ Common Development and Distribution License (CDDL) v1.0|
+ COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+ </licenseMerge>
+ <licenseMerge>BSD License|BSD</licenseMerge>
+ </licenseMerges>
+ </configuration>
</execution>
</executions>
</plugin>
Modified: trunk/tutti-ui-swing/src/license/THIRD-PARTY.properties
===================================================================
--- trunk/tutti-ui-swing/src/license/THIRD-PARTY.properties 2013-01-19 07:13:30 UTC (rev 232)
+++ trunk/tutti-ui-swing/src/license/THIRD-PARTY.properties 2013-01-19 07:26:53 UTC (rev 233)
@@ -23,7 +23,7 @@
# Please fill the missing licenses for dependencies :
#
#
-#Sat Jan 19 08:03:03 CET 2013
+#Sat Jan 19 08:26:02 CET 2013
antlr--antlr--2.7.6=BSD License
commons-primitives--commons-primitives--1.0=The Apache Software License, Version 2.0
dom4j--dom4j--1.6.1=BSD License
1
0
19 Jan '13
Author: tchemit
Date: 2013-01-19 08:13:30 +0100 (Sat, 19 Jan 2013)
New Revision: 232
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/232
Log:
- use license-m-p 1.4 and improve third-parties configuration
- add getAllProtocolNames method in persistence
- fix protocol name validation for editing existing protocol
Modified:
trunk/pom.xml
trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceAdagioImpl.java
trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java
trunk/tutti-persistence-dev/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
trunk/tutti-ui-swing/pom.xml
trunk/tutti-ui-swing/src/license/THIRD-PARTY.properties
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel-error-validation.xml
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-01-19 03:03:04 UTC (rev 231)
+++ trunk/pom.xml 2013-01-19 07:13:30 UTC (rev 232)
@@ -120,6 +120,8 @@
<platform>forge.codelutin.com</platform>
<projectId>tutti</projectId>
+ <licensePluginVersion>1.4</licensePluginVersion>
+
<!-- libraries version -->
<nuitonUtilsVersion>2.6.6</nuitonUtilsVersion>
@@ -470,6 +472,29 @@
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>license-maven-plugin</artifactId>
+ <configuration>
+ <licenseMerges>
+ <licenseMerge>The Apache Software License, Version 2.0|
+ Apache License, Version 2.0
+ </licenseMerge>
+ <licenseMerge>General Public License (GPL)|
+ GNU LESSER GENERAL PUBLIC LICENSE
+ </licenseMerge>
+ <licenseMerge>General Public License (GPL)|
+ GNU Lesser General Public License
+ </licenseMerge>
+ <licenseMerge>
+ Common Development and Distribution License (CDDL) v1.0|
+ COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+ </licenseMerge>
+ <licenseMerge>BSD License|BSD</licenseMerge>
+ </licenseMerges>
+ </configuration>
+ </plugin>
+
</plugins>
</pluginManagement>
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-01-19 03:03:04 UTC (rev 231)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-01-19 07:13:30 UTC (rev 232)
@@ -180,6 +180,8 @@
//-- Protocol methods --//
//------------------------------------------------------------------------//
+ List<String> getAllProtocolNames();
+
List<TuttiProtocol> getAllProtocol();
TuttiProtocol getProtocol(String id);
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceService.java 2013-01-19 03:03:04 UTC (rev 231)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceService.java 2013-01-19 07:13:30 UTC (rev 232)
@@ -38,6 +38,8 @@
@Transactional(readOnly = true)
public interface ProtocolPersistenceService {
+ List<String> getAllProtocolId();
+
List<TuttiProtocol> getAllProtocol();
TuttiProtocol getProtocol(String id);
Modified: trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceAdagioImpl.java
===================================================================
--- trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceAdagioImpl.java 2013-01-19 03:03:04 UTC (rev 231)
+++ trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceAdagioImpl.java 2013-01-19 07:13:30 UTC (rev 232)
@@ -314,6 +314,11 @@
//------------------------------------------------------------------------//
@Override
+ public List<String> getAllProtocolNames() {
+ return protocolService.getAllProtocolId();
+ }
+
+ @Override
public List<TuttiProtocol> getAllProtocol() {
return protocolService.getAllProtocol();
}
Modified: trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java 2013-01-19 03:03:04 UTC (rev 231)
+++ trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java 2013-01-19 07:13:30 UTC (rev 232)
@@ -43,6 +43,11 @@
LogFactory.getLog(ProtocolPersistenceServiceImpl.class);
@Override
+ public List<String> getAllProtocolId() {
+ return null;
+ }
+
+ @Override
public List<TuttiProtocol> getAllProtocol() {
return null;
}
Modified: trunk/tutti-persistence-dev/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java
===================================================================
--- trunk/tutti-persistence-dev/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java 2013-01-19 03:03:04 UTC (rev 231)
+++ trunk/tutti-persistence-dev/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java 2013-01-19 07:13:30 UTC (rev 232)
@@ -25,6 +25,7 @@
*/
+import com.google.common.base.Function;
import com.google.common.base.Preconditions;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
@@ -123,7 +124,6 @@
FILE_KEYS.add(getKey(Caracteristic.class, caracteristicEnum.name()));
}
-
if (log.isInfoEnabled()) {
log.info("Found " + FILE_KEYS.size() + " files.");
}
@@ -131,6 +131,14 @@
public static final String SKIP_FIXTURES_OPTION = "LoadFixtures";
+ public static final Function<TuttiProtocol, String> GET_PROTOCOL_NAME = new Function<TuttiProtocol, String>() {
+
+ @Override
+ public String apply(TuttiProtocol input) {
+ return input.getName();
+ }
+ };
+
/**
* Persistence config.
*
@@ -389,13 +397,12 @@
@Override
public List<Cruise> getAllCruise(final String programId) {
- List<Cruise> data = getData(Cruise.class.getName());
- List<Cruise> result = Lists.newArrayList(Iterables.filter(data, new Predicate<Cruise>() {
+ List<Cruise> result = getFilteredDataList(Cruise.class.getName(), new Predicate<Cruise>() {
@Override
public boolean apply(Cruise input) {
return programId.equals(input.getProgram().getId());
}
- }));
+ });
return result;
}
@@ -422,6 +429,12 @@
//------------------------------------------------------------------------//
@Override
+ public List<String> getAllProtocolNames() {
+ List<String> result = getTransformedDataList(TuttiProtocol.class.getName(), GET_PROTOCOL_NAME);
+ return result;
+ }
+
+ @Override
public List<TuttiProtocol> getAllProtocol() {
List<TuttiProtocol> result = getDataInNewList(TuttiProtocol.class.getName());
return result;
@@ -451,13 +464,12 @@
@Override
public List<FishingOperation> getAllFishingOperation(final String cruiseId) {
- List<FishingOperation> data = getData(FishingOperation.class.getName());
- List<FishingOperation> result = Lists.newArrayList(Iterables.filter(data, new Predicate<FishingOperation>() {
+ List<FishingOperation> result = getFilteredDataList(FishingOperation.class.getName(), new Predicate<FishingOperation>() {
@Override
public boolean apply(FishingOperation input) {
return cruiseId.equals(input.getCruise().getId());
}
- }));
+ });
return result;
}
@@ -576,13 +588,12 @@
@Override
public List<SpeciesBatchFrequency> getAllSpeciesBatchFrequency(final String speciesBatchId) {
- List<SpeciesBatchFrequency> data = getData(SpeciesBatchFrequency.class.getName());
- List<SpeciesBatchFrequency> result = Lists.newArrayList(Iterables.filter(data, new Predicate<SpeciesBatchFrequency>() {
+ List<SpeciesBatchFrequency> result = getFilteredDataList(SpeciesBatchFrequency.class.getName(), new Predicate<SpeciesBatchFrequency>() {
@Override
public boolean apply(SpeciesBatchFrequency input) {
return speciesBatchId.equals(input.getBatch().getId());
}
- }));
+ });
return result;
}
@@ -962,6 +973,16 @@
return Lists.newArrayList(result);
}
+ protected <B extends IdAware, E> List<E> getTransformedDataList(String entityType, Function<B, E> function) {
+ List<B> result = getData(entityType);
+ return Lists.newArrayList(Iterables.transform(result, function));
+ }
+
+ protected <B extends IdAware> List<B> getFilteredDataList(String entityType, Predicate<B> predicate) {
+ List<B> result = getData(entityType);
+ return Lists.newArrayList(Iterables.filter(result, predicate));
+ }
+
protected <B extends FishingOperationAware> List<B> getAllTraitFilterBatches(
String beanType,
String traitId,
@@ -970,8 +991,7 @@
if (extraPredicate != null) {
predicate = Predicates.and(predicate, extraPredicate);
}
- List<B> data = getData(beanType);
- List<B> result = Lists.newArrayList(Iterables.filter(data, predicate));
+ List<B> result = getFilteredDataList(beanType, predicate);
return result;
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-01-19 03:03:04 UTC (rev 231)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-01-19 07:13:30 UTC (rev 232)
@@ -343,6 +343,11 @@
//------------------------------------------------------------------------//
@Override
+ public List<String> getAllProtocolNames() {
+ return devDriver.getAllProtocolNames();
+ }
+
+ @Override
public List<TuttiProtocol> getAllProtocol() {
return devDriver.getAllProtocol();
}
@@ -362,7 +367,6 @@
return devDriver.saveProtocol(bean);
}
-
//------------------------------------------------------------------------//
//-- FishingOperation methods --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-ui-swing/pom.xml
===================================================================
--- trunk/tutti-ui-swing/pom.xml 2013-01-19 03:03:04 UTC (rev 231)
+++ trunk/tutti-ui-swing/pom.xml 2013-01-19 07:13:30 UTC (rev 232)
@@ -21,7 +21,9 @@
#L%
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -148,14 +150,6 @@
<goal>update-project-license</goal>
<goal>add-third-party</goal>
</goals>
- <configuration>
- <licenseMerges>
- <licenseMerge>
- The Apache Software License, Version 2.0|Apache License, Version 2.0
- </licenseMerge>
- <licenseMerge>BSD License|BSD</licenseMerge>
- </licenseMerges>
- </configuration>
</execution>
</executions>
</plugin>
Modified: trunk/tutti-ui-swing/src/license/THIRD-PARTY.properties
===================================================================
--- trunk/tutti-ui-swing/src/license/THIRD-PARTY.properties 2013-01-19 03:03:04 UTC (rev 231)
+++ trunk/tutti-ui-swing/src/license/THIRD-PARTY.properties 2013-01-19 07:13:30 UTC (rev 232)
@@ -4,13 +4,10 @@
# - Affero General Public License (AGPL)
# - BSD License
# - BSD-3 Clause License
-# - COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
# - Common Development and Distribution License (CDDL) v1.0
# - Common Public License Version 1.0
# - Eclipse Public License - v 1.0
# - GNU General Public License - Version 2 with the class path exception
-# - GNU LESSER GENERAL PUBLIC LICENSE
-# - GNU Lesser General Public License
# - General Public License (GPL)
# - HSQLDB License
# - LGPL 2.1
@@ -26,9 +23,9 @@
# Please fill the missing licenses for dependencies :
#
#
-#Sun Jan 13 15:29:41 CET 2013
+#Sat Jan 19 08:03:03 CET 2013
antlr--antlr--2.7.6=BSD License
commons-primitives--commons-primitives--1.0=The Apache Software License, Version 2.0
dom4j--dom4j--1.6.1=BSD License
-javax.transaction--jta--1.1=COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+javax.transaction--jta--1.1=Common Development and Distribution License (CDDL) v1.0
regexp--regexp--1.3=The Apache Software License, Version 2.0
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-01-19 03:03:04 UTC (rev 231)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-01-19 07:13:30 UTC (rev 232)
@@ -24,12 +24,10 @@
* #L%
*/
-import com.google.common.base.Function;
import com.google.common.base.Preconditions;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
-import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
@@ -182,15 +180,7 @@
allSpecies = TuttiEntities.splitById(
persistenceService.getAllSpecies());
- List<TuttiProtocol> allProtocol = persistenceService.getAllProtocol();
-
- List<String> protocolNames = Lists.newArrayList(Iterables.transform(allProtocol, new Function<TuttiProtocol, String>() {
- @Override
- public String apply(TuttiProtocol input) {
- return input.getName();
- }
- }));
-
+ List<String> protocolNames = persistenceService.getAllProtocolNames();
model.setProtocolNames(protocolNames);
allLengthStepPmfm = TuttiEntities.splitById(
@@ -246,6 +236,13 @@
}
}
+ String existingProtocolName = model.getName();
+ if (existingProtocolName != null) {
+
+ // remove existing protocol name from the already used list
+ model.getProtocolNames().remove(existingProtocolName);
+ }
+
SwingValidator validator = ui.getValidator();
listenValidatorValid(validator, model);
Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel-error-validation.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel-error-validation.xml 2013-01-19 03:03:04 UTC (rev 231)
+++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel-error-validation.xml 2013-01-19 07:13:30 UTC (rev 232)
@@ -33,7 +33,7 @@
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
- <![CDATA[ id != null || !nameAlreadyUsed ]]>
+ <![CDATA[ !nameAlreadyUsed ]]>
</param>
<message>tutti.validator.error.protocol.name.alreadyUsed</message>
</field-validator>
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-19 03:03:04 UTC (rev 231)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-19 07:13:30 UTC (rev 232)
@@ -193,13 +193,13 @@
tutti.label.tab.accidentel=Captures accidentelles
tutti.label.tab.benthos=Benthos
tutti.label.tab.catches=Captures
+tutti.label.tab.catchesCaracteristics=Résumé
tutti.label.tab.fishingOperation=Trait
tutti.label.tab.fishingOperation.environment=Environnement
tutti.label.tab.fishingOperation.gearShooting=Mise en oeuvre de l'engin
tutti.label.tab.fishingOperation.general=Trait
tutti.label.tab.fishingOperation.hydrology=Paramètres hydrologiques
tutti.label.tab.macroDechet=Macro déchets
-tutti.label.tab.catchesCaracteristics=Résumé
tutti.label.tab.observationIndividuel=Observations individuelles
tutti.label.tab.plancton=Plancton
tutti.label.tab.protocol.accidental=Accidental
1
0
r231 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content/operation/catches resources/i18n
by tchemit@users.forge.codelutin.com 19 Jan '13
by tchemit@users.forge.codelutin.com 19 Jan '13
19 Jan '13
Author: tchemit
Date: 2013-01-19 04:03:04 +0100 (Sat, 19 Jan 2013)
New Revision: 231
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/231
Log:
fix i18n
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-01-19 02:51:30 UTC (rev 230)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-01-19 03:03:04 UTC (rev 231)
@@ -29,6 +29,8 @@
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderModelBuilder;
+import static org.nuiton.i18n.I18n._;
+
/**
* @author tchemit <chemit(a)codelutin.com>
* @since 0.3
@@ -141,7 +143,7 @@
@Override
public String getTitle() {
- return "tutti.label.tab.catchesCaracteristics";
+ return _("tutti.label.tab.catchesCaracteristics");
}
public FishingOperation getFishingOperation() {
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-19 02:51:30 UTC (rev 230)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-19 03:03:04 UTC (rev 231)
@@ -199,6 +199,7 @@
tutti.label.tab.fishingOperation.general=Trait
tutti.label.tab.fishingOperation.hydrology=Paramètres hydrologiques
tutti.label.tab.macroDechet=Macro déchets
+tutti.label.tab.catchesCaracteristics=Résumé
tutti.label.tab.observationIndividuel=Observations individuelles
tutti.label.tab.plancton=Plancton
tutti.label.tab.protocol.accidental=Accidental
1
0
19 Jan '13
Author: tchemit
Date: 2013-01-19 03:51:30 +0100 (Sat, 19 Jan 2013)
New Revision: 230
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/230
Log:
- can not save a protocol with same name
- fix protocol usage
- remove blockLayer color option
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfig.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigOption.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigUI.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java
trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel-error-validation.xml
trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel-error-validation.xml
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx 2013-01-19 02:23:42 UTC (rev 229)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx 2013-01-19 02:51:30 UTC (rev 230)
@@ -39,7 +39,6 @@
<MainUIHandler id='handler'
initializer='getContextValue(MainUIHandler.class)'/>
- <BlockingLayerUI2 id='actionBlockerLayer'/>
<SelectCruiseAction id='selectCruiseAction' constructorParams='handler'/>
<EditSelectedProtocolAction id='editProtocolAction' constructorParams='handler'/>
<EditSelectedProgramAction id='editProgramAction' constructorParams='handler'/>
@@ -111,7 +110,7 @@
<SwingValidatorMessageWidget id='validatorMessageWidget'/>
</JToolBar>
- <JXTitledPanel id='body' constraints='BorderLayout.CENTER' decorator='boxed'/>
+ <JXTitledPanel id='body' constraints='BorderLayout.CENTER'/>
<!-- status message bar -->
<StatusMessagePanel id='status' constraints="BorderLayout.SOUTH"/>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfig.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfig.java 2013-01-19 02:23:42 UTC (rev 229)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfig.java 2013-01-19 02:51:30 UTC (rev 230)
@@ -156,10 +156,6 @@
return applicationConfig.getOptionAsColor(TuttiConfigOption.COLOR_ROW_READ_ONLY.getKey());
}
- public Color getColorBlockingLayer() {
- return applicationConfig.getOptionAsColor(TuttiConfigOption.COLOR_BLOCKING_LAYER.getKey());
- }
-
public KeyStroke getShortcutClosePopup() {
return applicationConfig.getOptionAsKeyStroke(TuttiConfigOption.SHORTCUT_CLOSE_POPUP.getKey());
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigOption.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigOption.java 2013-01-19 02:23:42 UTC (rev 229)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigOption.java 2013-01-19 02:51:30 UTC (rev 230)
@@ -82,13 +82,6 @@
Boolean.class
),
- COLOR_BLOCKING_LAYER(
- "tutti.ui.color.blockingLayer",
- n_("tutti.config.ui.color.blockingLayer"),
- new Color(50, 50, 50).toString(),
- Color.class
- ),
-
COLOR_ROW_READ_ONLY(
"tutti.ui.color.rowReadOnly",
n_("tutti.config.ui.color.rowReadOnly"),
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigUI.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigUI.java 2013-01-19 02:23:42 UTC (rev 229)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigUI.java 2013-01-19 02:51:30 UTC (rev 230)
@@ -106,7 +106,6 @@
helper.addCategory(n_("tutti.config.category.ui"),
n_("tutti.config.category.ui.description"),
CALLBACK_UI)
- .addOption(TuttiConfigOption.COLOR_BLOCKING_LAYER)
.addOption(TuttiConfigOption.COLOR_ROW_INVALID)
.addOption(TuttiConfigOption.COLOR_ROW_READ_ONLY)
.addOption(TuttiConfigOption.USE_SEXAGECIMAL_EDITOR);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java 2013-01-19 02:23:42 UTC (rev 229)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java 2013-01-19 02:51:30 UTC (rev 230)
@@ -21,7 +21,7 @@
super(handler,
"cancelEditCruise",
"cancel",
- _("tutti.action.cancel.editcruise"),
+ _("tutti.action.cancel.editCruise"),
_("tutti.action.cancel.editCruise.tip"),
true
);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java 2013-01-19 02:23:42 UTC (rev 229)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java 2013-01-19 02:51:30 UTC (rev 230)
@@ -34,16 +34,18 @@
import fr.ifremer.tutti.service.DecoratorService;
import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueEditor;
import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueRenderer;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
-import java.util.List;
import jaxx.runtime.swing.editor.bean.BeanComboBox;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
import org.jdesktop.swingx.table.DefaultTableColumnModelExt;
+import java.util.List;
+
/**
* @author kmorin
* @since 0.3
@@ -174,17 +176,17 @@
log.info("closing: " + ui);
}
}
-
+
@Override
protected void onAfterSelectedRowChanged(int oldRowIndex,
EnvironmentRowModel oldRow,
int newRowIndex,
EnvironmentRowModel newRow) {
-
+
super.onAfterSelectedRowChanged(oldRowIndex, oldRow, newRowIndex, newRow);
getModel().setRemoveCaracteristicEnabled(newRow != null);
}
-
+
//------------------------------------------------------------------------//
//-- Public methods --//
//------------------------------------------------------------------------//
@@ -193,18 +195,18 @@
public void addRow() {
BeanComboBox<Caracteristic> keyCombo = ui.getNewRowKey();
Caracteristic selectedItem = (Caracteristic) keyCombo.getSelectedItem();
-
+
EnvironmentRowModel row = getTableModel().createNewRow();
row.setKey(selectedItem);
getTableModel().addNewRow(row);
-
+
EnvironmentTableModel tableModel = getTableModel();
int rowIndex = tableModel.getRowCount() - 1;
tableModel.fireTableRowsInserted(rowIndex, rowIndex);
keyCombo.removeItem(selectedItem);
selectFirstInCombo(keyCombo);
-
+
EnvironmentTabUIModel model = getModel();
model.setModify(true);
recomputeRowValidState(row);
@@ -221,7 +223,7 @@
environmentCaracteristics = new CaracteristicMap();
}
- TuttiProtocol protocol = ui.getContextValue(TuttiProtocol.class);
+ TuttiProtocol protocol = TuttiUIUtil.getProtocol(ui);
List<String> environmentPmfmIds = Lists.newArrayList();
if (protocol != null) {
List<String> protocolEnvironmentPmfmId = protocol.getEnvironmentPmfmId();
@@ -229,10 +231,10 @@
environmentPmfmIds.addAll(protocolEnvironmentPmfmId);
}
}
-
+
List<EnvironmentRowModel> rows = Lists.newArrayList();
List<Caracteristic> caracteristics = Lists.newArrayList(environmentCaracteristics.keySet());
-
+
List<Caracteristic> availableCaracteristics = model.getAvailableCaracteristics();
for (String id : environmentPmfmIds) {
Caracteristic caracteristic = TuttiEntities.findById(availableCaracteristics, id);
@@ -240,14 +242,14 @@
caracteristics.add(caracteristic);
}
}
-
+
for (Caracteristic key : caracteristics) {
EnvironmentRowModel newRow = tableModel.createNewRow();
newRow.setKey(key);
newRow.setValue(environmentCaracteristics.get(key));
rows.add(newRow);
}
-
+
model.setRows(rows);
List<Caracteristic> caracteristicList = Lists.newArrayList();
@@ -262,15 +264,15 @@
selectFirstInCombo(ui.getNewRowKey());
model.setModify(false);
}
-
+
public void removeCaracteristic() {
int rowIndex = getTable().getSelectedRow();
Preconditions.checkState(rowIndex != -1,
"Cant remove caracteristic if no caracteristic selected");
-
+
EnvironmentRowModel row = getTableModel().getEntry(rowIndex);
-
+
FishingOperation fishingOperation = getModel().getFishingOperation();
Preconditions.checkNotNull(fishingOperation);
@@ -278,27 +280,27 @@
if (caracteristicMap != null) {
caracteristicMap.remove(row.getKey());
}
-
-
+
+
//add the row in the combo
BeanComboBox keyCombo = ui.getNewRowKey();
keyCombo.addItem(row.getKey());
selectFirstInCombo(keyCombo);
-
+
// remove the row from the model
getModel().getRows().remove(rowIndex);
// refresh all the table
getTableModel().fireTableRowsDeleted(rowIndex, rowIndex);
-
+
getModel().removeRowInError(row);
-
+
}
-
+
//------------------------------------------------------------------------//
//-- Protected methods --//
//------------------------------------------------------------------------//
-
+
protected void saveRow(EnvironmentRowModel row) {
if (row.isValid()) {
@@ -309,7 +311,7 @@
fishingOperation.setEnvironmentCaracteristics(new CaracteristicMap());
}
- fishingOperation.getEnvironmentCaracteristics().put(row.getKey(), row.getValue());
+ fishingOperation.getEnvironmentCaracteristics().put(row.getKey(), row.getValue());
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java 2013-01-19 02:23:42 UTC (rev 229)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java 2013-01-19 02:51:30 UTC (rev 230)
@@ -32,20 +32,20 @@
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.service.DecoratorService;
-import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI;
-import fr.ifremer.tutti.ui.swing.util.TabHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueEditor;
import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueRenderer;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
-import java.util.List;
import jaxx.runtime.swing.editor.bean.BeanComboBox;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
import org.jdesktop.swingx.table.DefaultTableColumnModelExt;
+import java.util.List;
+
/**
* @author kmorin
* @since 0.3
@@ -179,17 +179,17 @@
log.info("closing: " + ui);
}
}
-
+
@Override
protected void onAfterSelectedRowChanged(int oldRowIndex,
GearShootingRowModel oldRow,
int newRowIndex,
GearShootingRowModel newRow) {
-
+
super.onAfterSelectedRowChanged(oldRowIndex, oldRow, newRowIndex, newRow);
getModel().setRemoveCaracteristicEnabled(newRow != null);
}
-
+
//------------------------------------------------------------------------//
//-- Public methods --//
//------------------------------------------------------------------------//
@@ -198,18 +198,18 @@
public void addRow() {
BeanComboBox<Caracteristic> keyCombo = ui.getNewRowKey();
Caracteristic selectedItem = (Caracteristic) keyCombo.getSelectedItem();
-
+
GearShootingRowModel row = getTableModel().createNewRow();
row.setKey(selectedItem);
getModel().getRows().add(row);
-
+
GearShootingTableModel tableModel = getTableModel();
int rowIndex = tableModel.getRowCount() - 1;
tableModel.fireTableRowsInserted(rowIndex, rowIndex);
keyCombo.removeItem(selectedItem);
selectFirstInCombo(keyCombo);
-
+
GearShootingTabUIModel model = getModel();
model.setModify(true);
recomputeRowValidState(row);
@@ -225,8 +225,8 @@
if (gearShootingCaracteristics == null) {
gearShootingCaracteristics = new CaracteristicMap();
}
-
- TuttiProtocol protocol = ui.getContextValue(TuttiProtocol.class);
+
+ TuttiProtocol protocol = TuttiUIUtil.getProtocol(ui);
List<String> gearPmfmIds = Lists.newArrayList();
if (protocol != null) {
List<String> protocolGearPmfmId = protocol.getGearPmfmId();
@@ -234,10 +234,10 @@
gearPmfmIds.addAll(protocolGearPmfmId);
}
}
-
+
List<GearShootingRowModel> rows = Lists.newArrayList();
List<Caracteristic> caracteristics = Lists.newArrayList(gearShootingCaracteristics.keySet());
-
+
List<Caracteristic> availableCaracteristics = model.getAvailableCaracteristics();
for (String id : gearPmfmIds) {
Caracteristic caracteristic = TuttiEntities.findById(availableCaracteristics, id);
@@ -245,7 +245,7 @@
caracteristics.add(caracteristic);
}
}
-
+
for (Caracteristic key : caracteristics) {
GearShootingRowModel newRow = tableModel.createNewRow();
newRow.setKey(key);
@@ -266,15 +266,15 @@
selectFirstInCombo(ui.getNewRowKey());
model.setModify(false);
}
-
+
public void removeCaracteristic() {
int rowIndex = getTable().getSelectedRow();
Preconditions.checkState(rowIndex != -1,
"Cant remove caracteristic if no caracteristic selected");
-
+
GearShootingRowModel row = getTableModel().getEntry(rowIndex);
-
+
FishingOperation fishingOperation = getModel().getFishingOperation();
Preconditions.checkNotNull(fishingOperation);
@@ -282,26 +282,26 @@
if (caracteristicMap != null) {
caracteristicMap.remove(row.getKey());
}
-
+
//add the row in the combo
BeanComboBox keyCombo = ui.getNewRowKey();
keyCombo.addItem(row.getKey());
selectFirstInCombo(keyCombo);
-
+
// remove the row from the model
getModel().getRows().remove(rowIndex);
// refresh all the table
getTableModel().fireTableRowsDeleted(rowIndex, rowIndex);
-
+
getModel().removeRowInError(row);
-
+
}
-
+
//------------------------------------------------------------------------//
//-- Protected methods --//
//------------------------------------------------------------------------//
-
+
protected void saveRow(GearShootingRowModel row) {
if (row.isValid()) {
FishingOperation fishingOperation = getModel().getFishingOperation();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java 2013-01-19 02:23:42 UTC (rev 229)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java 2013-01-19 02:51:30 UTC (rev 230)
@@ -33,26 +33,26 @@
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.service.DecoratorService;
-import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI;
import fr.ifremer.tutti.ui.swing.util.HydrologicCaracteristicUtil;
import fr.ifremer.tutti.ui.swing.util.HydrologicCaracteristicUtil.Type;
-import fr.ifremer.tutti.ui.swing.util.TabHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueEditor;
import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueRenderer;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
+import jaxx.runtime.swing.editor.bean.BeanComboBox;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jdesktop.swingx.JXTable;
+import org.jdesktop.swingx.table.DefaultTableColumnModelExt;
+
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import jaxx.runtime.swing.editor.bean.BeanComboBox;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.jdesktop.swingx.JXTable;
-import org.jdesktop.swingx.table.DefaultTableColumnModelExt;
/**
* @author kmorin
@@ -237,11 +237,11 @@
HydrologyRowModel oldRow,
int newRowIndex,
HydrologyRowModel newRow) {
-
+
super.onAfterSelectedRowChanged(oldRowIndex, oldRow, newRowIndex, newRow);
getModel().setRemoveCaracteristicEnabled(newRow != null);
}
-
+
//------------------------------------------------------------------------//
//-- Public methods --//
//------------------------------------------------------------------------//
@@ -250,18 +250,18 @@
public void addRow() {
BeanComboBox<Caracteristic> keyCombo = ui.getNewRowKey();
Caracteristic selectedItem = (Caracteristic) keyCombo.getSelectedItem();
-
+
HydrologyRowModel row = getTableModel().createNewRow();
row.setKey(selectedItem);
getModel().getRows().add(row);
-
+
HydrologyTableModel tableModel = getTableModel();
int rowIndex = tableModel.getRowCount() - 1;
tableModel.fireTableRowsInserted(rowIndex, rowIndex);
keyCombo.removeItem(selectedItem);
selectFirstInCombo(keyCombo);
-
+
HydrologyTabUIModel model = getModel();
model.setModify(true);
recomputeRowValidState(row);
@@ -272,13 +272,13 @@
HydrologyTableModel tableModel = getTableModel();
HydrologyTabUIModel model = getModel();
model.setFishingOperation(fishingOperation);
-
+
CaracteristicMap hydrologyCaracteristics = fishingOperation.getHydrologyCaracteristics();
if (hydrologyCaracteristics == null) {
hydrologyCaracteristics = new CaracteristicMap();
}
-
- TuttiProtocol protocol = ui.getContextValue(TuttiProtocol.class);
+
+ TuttiProtocol protocol = TuttiUIUtil.getProtocol(ui);
List<String> gearPmfmIds = Lists.newArrayList();
if (protocol != null) {
List<String> protocolHydrologyPmfmId = protocol.getHydrologyPmfmId();
@@ -286,11 +286,11 @@
gearPmfmIds.addAll(protocolHydrologyPmfmId);
}
}
-
+
List<HydrologyRowModel> rows = Lists.newArrayList();
List<Caracteristic> caracteristicList = Lists.newArrayList();
List<Caracteristic> selectedCaracteristics = Lists.newArrayList(hydrologyCaracteristics.keySet());
-
+
List<Caracteristic> availableCaracteristics = model.getAvailableCaracteristics();
for (String id : gearPmfmIds) {
Caracteristic caracteristic = TuttiEntities.findById(availableCaracteristics, id);
@@ -298,7 +298,7 @@
selectedCaracteristics.add(caracteristic);
}
}
-
+
Set<Caracteristic> globalCaracteristics = availableGlobalCaracteristics.keySet();
for (Caracteristic availableCaracteristic : globalCaracteristics) {
@@ -329,46 +329,46 @@
selectFirstInCombo(ui.getNewRowKey());
model.setModify(false);
}
-
+
public void removeCaracteristic() {
int rowIndex = getTable().getSelectedRow();
Preconditions.checkState(rowIndex != -1,
"Cant remove caracteristic if no caracteristic selected");
-
+
HydrologyRowModel row = getTableModel().getEntry(rowIndex);
-
+
FishingOperation fishingOperation = getModel().getFishingOperation();
Preconditions.checkNotNull(fishingOperation);
Map<Type, Caracteristic> caracteristics = availableGlobalCaracteristics.get(row.getKey());
for (Type type : caracteristics.keySet()) {
Caracteristic caracteristic = caracteristics.get(type);
-
+
CaracteristicMap caracteristicMap = fishingOperation.getHydrologyCaracteristics();
if (caracteristicMap != null) {
caracteristicMap.remove(caracteristic);
}
}
-
+
//add the row in the combo
BeanComboBox keyCombo = ui.getNewRowKey();
keyCombo.addItem(row.getKey());
selectFirstInCombo(keyCombo);
-
+
// remove the row from the model
getModel().getRows().remove(rowIndex);
// refresh all the table
getTableModel().fireTableRowsDeleted(rowIndex, rowIndex);
-
+
getModel().removeRowInError(row);
}
-
+
//------------------------------------------------------------------------//
//-- Protected methods --//
//------------------------------------------------------------------------//
-
+
protected void saveRow(HydrologyRowModel row) {
if (row.isValid()) {
FishingOperation fishingOperation = getModel().getFishingOperation();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-01-19 02:23:42 UTC (rev 229)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-01-19 02:51:30 UTC (rev 230)
@@ -24,10 +24,12 @@
* #L%
*/
+import com.google.common.base.Function;
import com.google.common.base.Preconditions;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
+import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
@@ -180,6 +182,17 @@
allSpecies = TuttiEntities.splitById(
persistenceService.getAllSpecies());
+ List<TuttiProtocol> allProtocol = persistenceService.getAllProtocol();
+
+ List<String> protocolNames = Lists.newArrayList(Iterables.transform(allProtocol, new Function<TuttiProtocol, String>() {
+ @Override
+ public String apply(TuttiProtocol input) {
+ return input.getName();
+ }
+ }));
+
+ model.setProtocolNames(protocolNames);
+
allLengthStepPmfm = TuttiEntities.splitById(
persistenceService.getAllSpeciesLengthStepCaracteristic());
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java 2013-01-19 02:23:42 UTC (rev 229)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java 2013-01-19 02:51:30 UTC (rev 230)
@@ -87,6 +87,8 @@
protected static Binder<TuttiProtocol, EditProtocolUIModel> fromBeanBinder =
BinderFactory.newBinder(TuttiProtocol.class, EditProtocolUIModel.class);
+ private List<String> protocolNames;
+
public EditProtocolUIModel() {
super(TuttiProtocol.class, fromBeanBinder, toBeanBinder);
}
@@ -184,4 +186,16 @@
this.removeSpeciesEnabled = removeSpeciesEnabled;
firePropertyChange(PROPERTY_REMOVE_SPECIES_ENABLED, oldValue, removeSpeciesEnabled);
}
+
+ public void setProtocolNames(List<String> protocolNames) {
+ this.protocolNames = protocolNames;
+ }
+
+ public List<String> getProtocolNames() {
+ return protocolNames;
+ }
+
+ public boolean isNameAlreadyUsed() {
+ return protocolNames.contains(getName());
+ }
}
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel-error-validation.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel-error-validation.xml 2013-01-19 02:23:42 UTC (rev 229)
+++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel-error-validation.xml 2013-01-19 02:51:30 UTC (rev 230)
@@ -40,7 +40,8 @@
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
- <![CDATA[ oneRowValid ]]></param>
+ <![CDATA[ oneRowValid ]]>
+ </param>
<message>
tutti.validator.error.speciesFrequency.oneRowRequired
</message>
Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel-error-validation.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel-error-validation.xml 2013-01-19 02:23:42 UTC (rev 229)
+++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel-error-validation.xml 2013-01-19 02:51:30 UTC (rev 230)
@@ -30,6 +30,14 @@
<field-validator type="requiredstring" short-circuit="true">
<message>tutti.validator.error.protocol.name.required</message>
</field-validator>
+
+ <field-validator type="fieldexpression" short-circuit="true">
+ <param name="expression">
+ <![CDATA[ id != null || !nameAlreadyUsed ]]>
+ </param>
+ <message>tutti.validator.error.protocol.name.alreadyUsed</message>
+ </field-validator>
+
</field>
<field name="comment">
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-19 02:23:42 UTC (rev 229)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-19 02:51:30 UTC (rev 230)
@@ -3,6 +3,7 @@
tutti.action.about=À propos
tutti.action.about.tip=À Propos
tutti.action.cancel=Annuler
+tutti.action.cancel.editCruise=Annuler
tutti.action.cancel.editCruise.tip=Annuler l'édition (ou la création) de la campagne
tutti.action.cancel.editProgram=Annuler
tutti.action.cancel.editProgram.tip=Annuler l'édition (ou la création) de la série de campagne
@@ -86,7 +87,6 @@
tutti.config.programId=Identifiant de la dernière série de campagne utilisée
tutti.config.protocolId=Identifiant du dernier protocole utilisé
tutti.config.ui.autoPopupNumberEditor=Toujours afficher le pavé numérique lors de l'édition d'un nombre
-tutti.config.ui.color.blockingLayer=
tutti.config.ui.color.rowInvalid=Ligne invalide
tutti.config.ui.color.rowReadOnly=Cellule non éditable
tutti.config.ui.config=Chemin du fichier de configuration des interfaces graphiques
@@ -347,6 +347,7 @@
tutti.validator.error.fishingOperation.trawlNetNumber.required=Le numéro de poche est obligatoire
tutti.validator.error.program.name.required=Le nom de la série est obligatoire
tutti.validator.error.program.zone.required=La zone de la série est obligatoire
+tutti.validator.error.protocol.name.alreadyUsed=Le nom du protocol est déjà utilisé
tutti.validator.error.protocol.name.required=Le nom du protocol est obligatoire
tutti.validator.error.speciesFrequency.lengthStepCaracteristic.required=La classe de taille est obligatoire
tutti.validator.error.speciesFrequency.oneRowRequired=Au moins une classe de taille doit être observée
1
0
r229 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content/home java/fr/ifremer/tutti/ui/swing/content/protocol resources/i18n
by tchemit@users.forge.codelutin.com 19 Jan '13
by tchemit@users.forge.codelutin.com 19 Jan '13
19 Jan '13
Author: tchemit
Date: 2013-01-19 03:23:42 +0100 (Sat, 19 Jan 2013)
New Revision: 229
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/229
Log:
do not persist imported protocol
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java 2013-01-19 01:59:45 UTC (rev 228)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java 2013-01-19 02:23:42 UTC (rev 229)
@@ -102,7 +102,7 @@
" to file: " + file);
}
- if (file.getName().endsWith(".tuttiProtocol")) {
+ if (!file.getName().endsWith(".tuttiProtocol")) {
file = new File(file.getParentFile(), file.getName() + ".tuttiProtocol");
}
// export protocol
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java 2013-01-19 01:59:45 UTC (rev 228)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java 2013-01-19 02:23:42 UTC (rev 229)
@@ -25,11 +25,11 @@
*/
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
-import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.service.TuttiProtocolImportExportService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import jaxx.runtime.context.JAXXContextEntryDef;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -52,6 +52,8 @@
private static final Log log =
LogFactory.getLog(ImportProtocolAction.class);
+ public static final JAXXContextEntryDef<TuttiProtocol> IMPORT_PROTOCOL_ENTRY = new JAXXContextEntryDef<TuttiProtocol>("importProtocol", TuttiProtocol.class);
+
private File file;
public ImportProtocolAction(SelectCruiseUIHandler handler) {
@@ -105,20 +107,12 @@
sendMessage("Protocole [" + protocol.getName() + "] lu depuis le fichier.");
+ IMPORT_PROTOCOL_ENTRY.setContextValue(getContext().getMainUI(), protocol);
+
// remove id
protocol.setId(null);
- // persist protocol
- PersistenceService persistenceService =
- getContext().getService(PersistenceService.class);
-
- TuttiProtocol savedProtocol =
- persistenceService.createProtocol(protocol);
-
- if (log.isInfoEnabled()) {
- log.info("Edit saved protocol: " + savedProtocol.getId());
- }
- getContext().setProtocolId(savedProtocol.getId());
+ getContext().setProtocolId(null);
getContext().setScreen(TuttiScreen.EDIT_PROTOCOL);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-01-19 01:59:45 UTC (rev 228)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-01-19 02:23:42 UTC (rev 229)
@@ -39,6 +39,7 @@
import fr.ifremer.tutti.ui.swing.MainUI;
import fr.ifremer.tutti.ui.swing.MainUIHandler;
import fr.ifremer.tutti.ui.swing.TuttiUI;
+import fr.ifremer.tutti.ui.swing.content.home.ImportProtocolAction;
import fr.ifremer.tutti.ui.swing.util.HydrologicCaracteristicUtil;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
@@ -197,27 +198,38 @@
EditProtocolUIModel model = getModel();
- // load protocol if existing
+ TuttiProtocol protocol = ImportProtocolAction.IMPORT_PROTOCOL_ENTRY.getContextValue(ui);
- String protocolId = context.getProtocolId();
- TuttiProtocol protocol = null;
- if (protocolId == null) {
+ if (protocol != null) {
- // create new protocol
+ // import a protocol
- if (log.isDebugEnabled()) {
- log.debug("Will create a new protocol");
- }
+ ImportProtocolAction.IMPORT_PROTOCOL_ENTRY.removeContextValue(ui);
+
+ model.fromBean(protocol);
+
} else {
- // load existing protocol
- protocol = persistenceService.getProtocol(protocolId);
- Boolean mustClone = ui.getContextValue(Boolean.class, MainUIHandler.CLONE_PROTOCOL);
+ // load protocol if existing
- model.fromBean(protocol);
- if (mustClone != null && mustClone) {
- ui.setContextValue(false, MainUIHandler.CLONE_PROTOCOL);
- model.setId(null);
+ if (context.isProtocolFilled()) {
+
+ // load existing protocol
+ protocol = persistenceService.getProtocol(context.getProtocolId());
+ Boolean mustClone = ui.getContextValue(Boolean.class, MainUIHandler.CLONE_PROTOCOL);
+
+ model.fromBean(protocol);
+ if (mustClone != null && mustClone) {
+ ui.setContextValue(false, MainUIHandler.CLONE_PROTOCOL);
+ model.setId(null);
+ }
+ } else {
+
+ // create new protocol
+
+ if (log.isDebugEnabled()) {
+ log.debug("Will create a new protocol");
+ }
}
}
@@ -309,7 +321,7 @@
}
}
if (log.isDebugEnabled()) {
- log.debug("Will edit protocol: " + protocolId + " with " +
+ log.debug("Will edit protocol with " +
rows.size() + " species declared.");
}
}
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-19 01:59:45 UTC (rev 228)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-19 02:23:42 UTC (rev 229)
@@ -21,9 +21,9 @@
tutti.action.editCatches.tip=Saisir des captures
tutti.action.editCruise=Éditer
tutti.action.editCruise.tip=Éditer la campagne sélectionnée
-tutti.action.editProgram=Programme
+tutti.action.editProgram=Éditer
tutti.action.editProgram.tip=Éditer le programme sélectionné
-tutti.action.editProtocol=Protocole
+tutti.action.editProtocol=Éditer
tutti.action.editProtocol.tip=Éditer le protocol sélectionné
tutti.action.editSelectedCruise=Campagne
tutti.action.editSelectedCruise.tip=Éditer la campagne sélectionnée
1
0
19 Jan '13
Author: tchemit
Date: 2013-01-19 02:59:45 +0100 (Sat, 19 Jan 2013)
New Revision: 228
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/228
Log:
- improve action api
- import/ export protocol
- normalize i18n + add missing stuff (license headers, svn properties, serialVersionUID,...)
- add some cancel actions
Added:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiProtocolImportExportService.java
trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/
trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/TuttiProtocolImportExportServiceTest.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/CancelEditProgramAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CancelEditProtocolAction.java
Modified:
trunk/pom.xml
trunk/tutti-service/pom.xml
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/CloneProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProgramAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProgramAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/pom.xml 2013-01-19 01:59:45 UTC (rev 228)
@@ -393,6 +393,12 @@
<version>${jdbc.hsqldb.version}</version>
</dependency>
+ <dependency>
+ <groupId>com.esotericsoftware.yamlbeans</groupId>
+ <artifactId>yamlbeans</artifactId>
+ <version>1.06</version>
+ </dependency>
+
</dependencies>
</dependencyManagement>
Modified: trunk/tutti-service/pom.xml
===================================================================
--- trunk/tutti-service/pom.xml 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-service/pom.xml 2013-01-19 01:59:45 UTC (rev 228)
@@ -86,6 +86,11 @@
<artifactId>commons-logging</artifactId>
</dependency>
+ <dependency>
+ <groupId>com.esotericsoftware.yamlbeans</groupId>
+ <artifactId>yamlbeans</artifactId>
+ </dependency>
+
<!-- Logging -->
<dependency>
@@ -94,6 +99,11 @@
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+
</dependencies>
<build>
Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiProtocolImportExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiProtocolImportExportService.java (rev 0)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiProtocolImportExportService.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -0,0 +1,111 @@
+package fr.ifremer.tutti.service;
+
+/*
+ * #%L
+ * Tutti :: Service
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * 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 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.esotericsoftware.yamlbeans.YamlConfig;
+import com.esotericsoftware.yamlbeans.YamlException;
+import com.esotericsoftware.yamlbeans.YamlReader;
+import com.esotericsoftware.yamlbeans.YamlWriter;
+import com.google.common.base.Charsets;
+import com.google.common.io.Closeables;
+import com.google.common.io.Files;
+import fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum;
+import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
+import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.IOException;
+import java.io.Reader;
+
+/**
+ * To import / export {@link TuttiProtocol} to {@code Yaml} file formats.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class TuttiProtocolImportExportService extends AbstractTuttiService {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(TuttiProtocolImportExportService.class);
+
+ public void exportProtocol(TuttiProtocol protocol, File file) throws IOException {
+
+ YamlConfig config = createConfig();
+
+ String id = protocol.getId();
+
+ if (log.isInfoEnabled()) {
+ log.info("Will export protocol: " + id + " to file: " + file);
+ }
+
+ BufferedWriter fileWriter = Files.newWriter(file, Charsets.UTF_8);
+ try {
+ YamlWriter writer = new YamlWriter(fileWriter, config);
+ writer.write(protocol);
+ writer.close();
+ fileWriter.close();
+ } catch (YamlException e) {
+ throw new IOException("Could not export protocol " + id, e);
+ } finally {
+ Closeables.closeQuietly(fileWriter);
+ }
+ }
+
+ protected YamlConfig createConfig() {
+ YamlConfig config = new YamlConfig();
+ config.setPropertyElementType(TuttiProtocol.class,
+ "sampleCategoryOrder",
+ SampleCategoryEnum.class);
+ config.setClassTag(SpeciesProtocol.class.getSimpleName(),
+ SpeciesProtocol.class);
+ config.writeConfig.setAlwaysWriteClassname(false);
+ config.writeConfig.setWriteRootTags(false);
+ return config;
+ }
+
+ public TuttiProtocol importProtocol(File file) throws IOException {
+ if (log.isInfoEnabled()) {
+ log.info("Will import protocol from file: " + file);
+ }
+
+ YamlConfig config = createConfig();
+
+ Reader fileReader = Files.newReader(file, Charsets.UTF_8);
+ try {
+ YamlReader reader = new YamlReader(fileReader, config);
+ TuttiProtocol result = reader.read(TuttiProtocol.class);
+ fileReader.close();
+ return result;
+ } catch (YamlException e) {
+ throw new IOException("Could not import protocol from file " + file, e);
+ } finally {
+ Closeables.closeQuietly(fileReader);
+ }
+ }
+}
Property changes on: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiProtocolImportExportService.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/TuttiProtocolImportExportServiceTest.java
===================================================================
--- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/TuttiProtocolImportExportServiceTest.java (rev 0)
+++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/TuttiProtocolImportExportServiceTest.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -0,0 +1,229 @@
+package fr.ifremer.tutti.service;
+
+/*
+ * #%L
+ * Tutti :: Service
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * 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 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.base.Charsets;
+import com.google.common.collect.Lists;
+import com.google.common.io.Files;
+import fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum;
+import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
+import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.SystemUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TestName;
+
+import java.io.File;
+
+/**
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class TuttiProtocolImportExportServiceTest {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(TuttiProtocolImportExportServiceTest.class);
+
+ public static final long TIMESTAMP = System.nanoTime();
+
+ @Rule
+ public final TestName name = new TestName();
+
+ protected File datadirectory;
+
+ protected TuttiProtocolImportExportService service;
+
+ public static final String PROTOCOL_FILE_CONTENT =
+ "id: 1\n" +
+ "name: protocolName\n" +
+ "comment: Commentaire\n" +
+ "environmentPmfmId: \n" +
+ "- 114\n" +
+ "- 228\n" +
+ "- 821\n" +
+ "gearPmfmId: \n" +
+ "- 21\n" +
+ "- 22\n" +
+ "hydrologyPmfmId: []\n" +
+ "sampleCategoryOrder: \n" +
+ "- age\n" +
+ "species: \n" +
+ "- !SpeciesProtocol\n" +
+ " calcifySampleEnabled: true\n" +
+ " lengthStepPmfmId: 1394\n" +
+ " maturityEnabled: true\n" +
+ " sexEnabled: true\n" +
+ " speciesId: 11242\n" +
+ " weightEnabled: true\n" +
+ "- !SpeciesProtocol\n" +
+ " ageEnabled: true\n" +
+ " calcifySampleEnabled: true\n" +
+ " countIfNoFrequencyEnabled: true\n" +
+ " lengthStepPmfmId: 323\n" +
+ " maturityEnabled: true\n" +
+ " sexEnabled: true\n" +
+ " sizeEnabled: true\n" +
+ " speciesId: 3835\n" +
+ " weightEnabled: true";
+
+ @Before
+ public void setUp() throws Exception {
+ datadirectory = getTestSpecificDirectory(getClass(),
+ name.getMethodName(),
+ null);
+
+ service = new TuttiProtocolImportExportService();
+ }
+
+ @Test
+ public void testExportProtocol() throws Exception {
+
+ File exportFile = new File(datadirectory, "exportProtocol.yaml");
+
+ Files.createParentDirs(exportFile);
+
+ Assert.assertFalse(exportFile.exists());
+ TuttiProtocol protocol = new TuttiProtocol();
+ protocol.setId("1");
+ protocol.setName("protocolName");
+ protocol.setComment("Commentaire");
+ protocol.setSampleCategoryOrder(Lists.newArrayList(SampleCategoryEnum.age));
+ protocol.setEnvironmentPmfmId(Lists.newArrayList("114", "228", "821"));
+ protocol.setGearPmfmId(Lists.newArrayList("21", "22"));
+ protocol.setHydrologyPmfmId(Lists.<String>newArrayList());
+
+ protocol.setSpecies(Lists.<SpeciesProtocol>newArrayList());
+ SpeciesProtocol sp1 = new SpeciesProtocol();
+ sp1.setSpeciesId("11242");
+ sp1.setLengthStepPmfmId("1394");
+ sp1.setCalcifySampleEnabled(true);
+ sp1.setMaturityEnabled(true);
+ sp1.setSexEnabled(true);
+ sp1.setWeightEnabled(true);
+ protocol.addSpecies(sp1);
+
+ SpeciesProtocol sp2 = new SpeciesProtocol();
+ sp2.setSpeciesId("3835");
+ sp2.setLengthStepPmfmId("323");
+ sp2.setAgeEnabled(true);
+ sp2.setCalcifySampleEnabled(true);
+ sp2.setCountIfNoFrequencyEnabled(true);
+ sp2.setMaturityEnabled(true);
+ sp2.setSexEnabled(true);
+ sp2.setSizeEnabled(true);
+ sp2.setWeightEnabled(true);
+ protocol.addSpecies(sp2);
+
+ service.exportProtocol(protocol, exportFile);
+ Assert.assertTrue(exportFile.exists());
+
+ String exportFileToString = Files.toString(exportFile, Charsets.UTF_8).trim();
+ Assert.assertEquals(PROTOCOL_FILE_CONTENT, exportFileToString);
+ }
+
+ @Test
+ public void testImportProtocol() throws Exception {
+
+ File importfile = new File(datadirectory, "importProtocol.yaml");
+
+ Files.createParentDirs(importfile);
+
+ Files.write(PROTOCOL_FILE_CONTENT, importfile, Charsets.UTF_8);
+
+ TuttiProtocol protocol = service.importProtocol(importfile);
+
+ Assert.assertNotNull(protocol);
+ Assert.assertEquals("1", protocol.getId());
+ Assert.assertEquals("protocolName", protocol.getName());
+ Assert.assertEquals("Commentaire", protocol.getComment());
+ Assert.assertNotNull(protocol.getSampleCategoryOrder());
+ Assert.assertEquals(1, protocol.getSampleCategoryOrder().size());
+ Assert.assertEquals(SampleCategoryEnum.age, protocol.getSampleCategoryOrder().get(0));
+ Assert.assertEquals(Lists.newArrayList("114", "228", "821"), protocol.getEnvironmentPmfmId());
+ Assert.assertEquals(Lists.newArrayList("21", "22"), protocol.getGearPmfmId());
+ Assert.assertEquals(Lists.<String>newArrayList(), protocol.getHydrologyPmfmId());
+ Assert.assertNotNull(protocol.getSpecies());
+ Assert.assertEquals(2, protocol.getSpecies().size());
+ SpeciesProtocol sp1 = protocol.getSpecies().get(0);
+ Assert.assertNotNull(sp1);
+ Assert.assertEquals("11242", sp1.getSpeciesId());
+ Assert.assertEquals("1394", sp1.getLengthStepPmfmId());
+ Assert.assertFalse(sp1.isAgeEnabled());
+ Assert.assertTrue(sp1.isCalcifySampleEnabled());
+ Assert.assertFalse(sp1.isCountIfNoFrequencyEnabled());
+ Assert.assertTrue(sp1.isMaturityEnabled());
+ Assert.assertTrue(sp1.isSexEnabled());
+ Assert.assertFalse(sp1.isSizeEnabled());
+ Assert.assertTrue(sp1.isWeightEnabled());
+
+ SpeciesProtocol sp2 = protocol.getSpecies().get(1);
+ Assert.assertNotNull(sp2);
+ Assert.assertEquals("3835", sp2.getSpeciesId());
+ Assert.assertEquals("323", sp2.getLengthStepPmfmId());
+ Assert.assertTrue(sp2.isAgeEnabled());
+ Assert.assertTrue(sp2.isCalcifySampleEnabled());
+ Assert.assertTrue(sp2.isCountIfNoFrequencyEnabled());
+ Assert.assertTrue(sp2.isMaturityEnabled());
+ Assert.assertTrue(sp2.isSexEnabled());
+ Assert.assertTrue(sp2.isSizeEnabled());
+ Assert.assertTrue(sp2.isWeightEnabled());
+
+
+ }
+
+ public static File getTestSpecificDirectory(Class<?> testClassName,
+ String methodName,
+ String classifier) {
+ // Trying to look for the temporary folder to store data for the test
+ String tempDirPath = System.getProperty("java.io.tmpdir");
+ if (tempDirPath == null) {
+ // can this really occur ?
+ tempDirPath = "";
+ if (log.isWarnEnabled()) {
+ log.warn("'\"java.io.tmpdir\" not defined");
+ }
+ }
+ File tempDirFile = SystemUtils.getJavaIoTmpDir();
+
+ // create the directory to store database data
+ String dataBasePath = testClassName.getName()
+ + File.separator // a directory with the test class name
+ + methodName; // a sub-directory with the method name
+
+ if (StringUtils.isNotBlank(classifier)) {
+ dataBasePath += classifier;
+ }
+ dataBasePath += '_'
+ + TIMESTAMP; // and a timestamp
+ File databaseFile = new File(tempDirFile, dataBasePath);
+ return databaseFile;
+ }
+}
Property changes on: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/TuttiProtocolImportExportServiceTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -31,6 +31,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.beans.AbstractBean;
+import org.nuiton.util.decorator.Decorator;
import javax.swing.AbstractAction;
import javax.swing.JDialog;
@@ -47,7 +48,6 @@
import java.util.concurrent.Executors;
import static org.nuiton.i18n.I18n._;
-import org.nuiton.util.decorator.Decorator;
/**
* TODO
@@ -71,7 +71,7 @@
private final boolean hideBody;
- protected abstract void doAction(ActionEvent event);
+ protected abstract void doAction(ActionEvent event) throws Exception;
protected AbstractTuttiAction(H handler,
String name,
@@ -89,9 +89,24 @@
}
protected String getActionName() {
- return (String) getValue(NAME);
+ return (String) getValue("actionName");
}
+ protected String getActionDescription() {
+ return (String) getValue("actionDescription");
+ }
+
+ protected boolean prepareAction(ActionEvent event) {
+ putValue("actionName", getValue(NAME));
+ putValue("actionDescription", getValue(SHORT_DESCRIPTION));
+ return true;
+ }
+
+ protected void releaseAction(ActionEvent event) {
+ putValue("actionName", null);
+ putValue("actionDescription", null);
+ }
+
@Override
public final void actionPerformed(final ActionEvent event) {
@@ -99,27 +114,33 @@
log.info("Will starts action: " + this);
}
- executorService.submit(new Runnable() {
- @Override
- public void run() {
+ boolean doAction = prepareAction(event);
- TimerTask timer = new ActionTimerTask();
+ if (doAction) {
+ executorService.submit(new Runnable() {
+ @Override
+ public void run() {
- t.schedule(timer, 500);
- try {
+ TimerTask timer = new ActionTimerTask(getActionName(), getActionDescription());
- doAction(event);
- } catch (Exception e) {
- ErrorDialogUI.showError(e);
- timer.cancel();
- } finally {
- if (log.isInfoEnabled()) {
- log.info("After action: " + this);
+ t.schedule(timer, 500);
+ try {
+
+ doAction(event);
+ } catch (Exception e) {
+ ErrorDialogUI.showError(e);
+ timer.cancel();
+ } finally {
+ if (log.isInfoEnabled()) {
+ log.info("After action: " + this);
+ }
+ timer.cancel();
+
+ releaseAction(event);
}
- timer.cancel();
}
- }
- });
+ });
+ }
}
public TuttiUIContext getContext() {
@@ -139,8 +160,18 @@
}
protected class ActionTimerTask extends TimerTask {
- JDialog d;
+ private final String actionName;
+
+ private final String actionDescription;
+
+ private JDialog d;
+
+ public ActionTimerTask(String actionName, String actionDescription) {
+ this.actionName = actionName;
+ this.actionDescription = actionDescription;
+ }
+
@Override
public void run() {
@@ -158,7 +189,7 @@
JLabel label = new JLabel();
EmptyBorder border = new EmptyBorder(5, 5, 5, 5);
label.setBorder(border);
- label.setText(_("tutti.message.action.running", getActionName()));
+ label.setText(_("tutti.message.action.running", actionName));
panel.add(label, BorderLayout.CENTER);
JProgressBar progressBar = new JProgressBar();
progressBar.setBorder(border);
@@ -203,7 +234,11 @@
}
}
}
-
+
+ protected void sendMessage(String message) {
+ getContext().showInformationMessage(message);
+ }
+
protected <O> Decorator<O> getDecorator(Class<O> type, String name) {
DecoratorService decoratorService =
getContext().getService(DecoratorService.class);
@@ -222,6 +257,6 @@
}
protected String decorate(Object object) {
- return getDecorator(object.getClass(), null).toString(object);
+ return handler.getDecorator(object.getClass(), null).toString(object);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -49,8 +49,8 @@
super(handler,
"editCruise",
"edit",
- _("tutti.action.editCruise"),
- _("tutti.action.editCruise.tip"),
+ _("tutti.action.editSelectedCruise"),
+ _("tutti.action.editSelectedCruise.tip"),
true
);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -49,8 +49,8 @@
super(handler,
"editProgram",
"edit",
- _("tutti.action.editProgram"),
- _("tutti.action.editProgram.tip"),
+ _("tutti.action.editSelectedProgram"),
+ _("tutti.action.editSelectedProgram.tip"),
true
);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProtocolAction.java 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProtocolAction.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -49,8 +49,8 @@
super(handler,
"editProtocol",
"edit",
- _("tutti.action.editProtocol"),
- _("tutti.action.editProtocol.tip"),
+ _("tutti.action.editSelectedProtocol"),
+ _("tutti.action.editSelectedProtocol.tip"),
true
);
setMnemonic('P');
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -369,6 +369,11 @@
}
} catch (Exception e) {
+ ErrorDialogUI.showError(e);
+ if (log.isErrorEnabled()) {
+ log.error("Could not change to screen " + screen, e);
+ }
+
// go back to home
context.setScreen(TuttiScreen.SELECT_CRUISE);
}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -0,0 +1,36 @@
+package fr.ifremer.tutti.ui.swing.content.cruise;
+
+import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.TuttiScreen;
+
+import java.awt.event.ActionEvent;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * TODO
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class CancelEditCruiseAction extends AbstractTuttiAction<EditCruiseUIModel, EditCruiseUIHandler> {
+
+ private static final long serialVersionUID = 1L;
+
+ public CancelEditCruiseAction(EditCruiseUIHandler handler) {
+ super(handler,
+ "cancelEditCruise",
+ "cancel",
+ _("tutti.action.cancel.editcruise"),
+ _("tutti.action.cancel.editCruise.tip"),
+ true
+ );
+ }
+
+ @Override
+ protected void doAction(ActionEvent event) {
+
+ getContext().setScreen(TuttiScreen.SELECT_CRUISE);
+ }
+
+}
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-01-19 01:59:45 UTC (rev 228)
@@ -137,7 +137,6 @@
text: "tutti.label.filterVesselType";
}
-
#filterVesselAllButton {
text: "tutti.label.filterVesselType.all";
toolTipText: "tutti.label.filterVesselType.all.tip";
@@ -191,8 +190,7 @@
}
#cancelButton {
- actionIcon: cancel;
- text: "tutti.action.cancel";
+ action: {cancelEditCruiseAction};
}
#generateNameButton {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-01-19 01:59:45 UTC (rev 228)
@@ -73,6 +73,7 @@
initializer='getContextValue(EditCruiseUIModel.class)'/>
<SaveCruiseAction id='saveCruiseAction' constructorParams='handler'/>
+ <CancelEditCruiseAction id='cancelEditCruiseAction' constructorParams='handler'/>
<SwingValidatorMessageTableModel id='errorTableModel'/>
@@ -212,7 +213,7 @@
<row>
<cell columns='6'>
<JPanel layout='{new GridLayout(1, 0)}'>
- <JButton id='cancelButton' onActionPerformed='handler.cancel()'/>
+ <JButton id='cancelButton'/>
<JButton id='saveButton'/>
</JPanel>
</cell>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -25,7 +25,6 @@
*/
import com.google.common.collect.Lists;
-import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
@@ -34,7 +33,6 @@
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.MainUI;
-import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUI;
import jaxx.runtime.JAXXUtil;
import jaxx.runtime.context.JAXXContextEntryDef;
@@ -271,11 +269,6 @@
return ui.getModel();
}
- public void cancel() {
-
- context.setScreen(TuttiScreen.SELECT_CRUISE);
- }
-
public static final String cruiseNameFormat = "%1$s_%2$s";
public void generateCampaignName() {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -1,28 +1,54 @@
-
package fr.ifremer.tutti.ui.swing.content.cruise;
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * 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 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+
import java.awt.event.ActionEvent;
import static org.nuiton.i18n.I18n._;
/**
- *
* @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.0
*/
public class SaveCruiseAction extends AbstractTuttiAction<EditCruiseUIModel, EditCruiseUIHandler> {
+ private static final long serialVersionUID = 1L;
+
public SaveCruiseAction(EditCruiseUIHandler handler) {
super(handler,
- "saveCruise",
- "save",
- _("tutti.action.save.cruise"),
- _("tutti.action.save.cruise.tip"),
+ "saveCruise",
+ "save",
+ _("tutti.action.saveCruise"),
+ _("tutti.action.saveCruise.tip"),
true
);
}
@@ -31,7 +57,8 @@
protected void doAction(ActionEvent event) {
TuttiUIContext context = getContext();
EditCruiseUIModel model = getModel();
- PersistenceService persistenceService = context.getService(PersistenceService.class);
+ PersistenceService persistenceService =
+ context.getService(PersistenceService.class);
Cruise bean = model.toBean();
@@ -48,5 +75,5 @@
context.setScreen(TuttiScreen.SELECT_CRUISE);
}
-
+
}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/CloneProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/CloneProtocolAction.java 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/CloneProtocolAction.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -52,8 +52,8 @@
super(handler,
"cloneProtocol",
"copy",
- _("tutti.action.clone"),
- _("tutti.action.clone.protocol.tip"),
+ _("tutti.action.cloneProtocol"),
+ _("tutti.action.cloneProtocol.tip"),
true
);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCruiseAction.java 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCruiseAction.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -24,7 +24,7 @@
* #L%
*/
-import com.ezware.oxbow.swingbits.util.Preconditions;
+import com.google.common.base.Preconditions;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
@@ -47,7 +47,7 @@
super(handler,
"editCruise",
"edit",
- _("tutti.action.edit"),
+ _("tutti.action.editCruise"),
_("tutti.action.editCruise.tip"),
true
);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProgramAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProgramAction.java 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProgramAction.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -24,7 +24,7 @@
* #L%
*/
-import com.ezware.oxbow.swingbits.util.Preconditions;
+import com.google.common.base.Preconditions;
import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
@@ -47,7 +47,7 @@
super(handler,
"editProgram",
"edit",
- _("tutti.action.edit"),
+ _("tutti.action.editProgram"),
_("tutti.action.editProgram.tip"),
true
);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProtocolAction.java 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProtocolAction.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -24,7 +24,7 @@
* #L%
*/
-import com.ezware.oxbow.swingbits.util.Preconditions;
+import com.google.common.base.Preconditions;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
@@ -52,8 +52,8 @@
super(handler,
"editProtocol",
"edit",
- _("tutti.action.edit"),
- _("tutti.action.edit.protocol.tip"),
+ _("tutti.action.editProtocol"),
+ _("tutti.action.editProtocol.tip"),
true
);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -26,11 +26,14 @@
import com.ezware.oxbow.swingbits.util.Preconditions;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
+import fr.ifremer.tutti.service.TuttiProtocolImportExportService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.awt.event.ActionEvent;
+import java.io.File;
import static org.nuiton.i18n.I18n._;
@@ -48,23 +51,66 @@
private static final Log log =
LogFactory.getLog(ExportProtocolAction.class);
+ protected File file;
+
public ExportProtocolAction(SelectCruiseUIHandler handler) {
super(handler,
"exportProtocol",
"export",
- _("tutti.action.export"),
- _("tutti.action.export.protocol.tip"),
+ _("tutti.action.exportProtocol"),
+ _("tutti.action.exportProtocol.tip"),
true
);
}
@Override
- protected void doAction(ActionEvent e) {
+ protected boolean prepareAction(ActionEvent event) {
+ // choose file to import
+
+ file = TuttiUIUtil.chooseFile(
+ getContext().getMainUI(),
+ _("tutti.title.choose.protocolExportFile"),
+ _("tutti.action.chooseProtocolFile"),
+ null,
+ "^.*\\*.tuttiProtocol$", _("tutti.file.protocol")
+ );
+
+ boolean doAction = file != null;
+ if (doAction) {
+ super.prepareAction(event);
+ }
+ return doAction;
+ }
+
+ @Override
+ protected void releaseAction(ActionEvent event) {
+ super.releaseAction(event);
+ file = null;
+ }
+
+ @Override
+ protected void doAction(ActionEvent e) throws Exception {
TuttiProtocol protocol = getModel().getProtocol();
Preconditions.checkNotNull(protocol);
if (log.isInfoEnabled()) {
log.info("Export protocol: " + protocol.getId());
}
+
+ if (log.isInfoEnabled()) {
+ log.info("Will save protocol " + protocol.getId() +
+ " to file: " + file);
+ }
+
+ if (file.getName().endsWith(".tuttiProtocol")) {
+ file = new File(file.getParentFile(), file.getName() + ".tuttiProtocol");
+ }
+ // export protocol
+ TuttiProtocolImportExportService service =
+ getContext().getService(TuttiProtocolImportExportService.class);
+ service.exportProtocol(protocol, file);
+
+ sendMessage("Protocole [" + protocol.getName() +
+ "] exporté dans le fichier " + file.getName() + ".");
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -24,11 +24,17 @@
* #L%
*/
+import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
+import fr.ifremer.tutti.service.PersistenceService;
+import fr.ifremer.tutti.service.TuttiProtocolImportExportService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.awt.event.ActionEvent;
+import java.io.File;
import static org.nuiton.i18n.I18n._;
@@ -46,20 +52,73 @@
private static final Log log =
LogFactory.getLog(ImportProtocolAction.class);
+ private File file;
+
public ImportProtocolAction(SelectCruiseUIHandler handler) {
super(handler,
"importProtocol",
"import",
- _("tutti.action.import"),
- _("tutti.action.import.protocol.tip"),
+ _("tutti.action.importProtocol"),
+ _("tutti.action.importProtocol.tip"),
true
);
}
@Override
- protected void doAction(ActionEvent e) {
+ protected boolean prepareAction(ActionEvent event) {
+
+ // choose file to import
+ file = TuttiUIUtil.chooseFile(
+ getContext().getMainUI(),
+ _("tutti.title.choose.protocolImportFile"),
+ _("tutti.action.chooseProtocolFile"),
+ null,
+ "^.*\\.tuttiProtocol$", _("tutti.file.protocol")
+ );
+ boolean doAction = file != null;
+ if (doAction) {
+ super.prepareAction(event);
+ }
+ return doAction;
+ }
+
+ @Override
+ protected void releaseAction(ActionEvent event) {
+ super.releaseAction(event);
+ file = null;
+ }
+
+ @Override
+ protected void doAction(ActionEvent e) throws Exception {
if (log.isInfoEnabled()) {
log.info("TODO Import protocol!");
}
+
+ if (log.isInfoEnabled()) {
+ log.info("Will import protocol file: " + file);
+ }
+
+ // import protocol
+ TuttiProtocolImportExportService service =
+ getContext().getService(TuttiProtocolImportExportService.class);
+ TuttiProtocol protocol = service.importProtocol(file);
+
+ sendMessage("Protocole [" + protocol.getName() + "] lu depuis le fichier.");
+
+ // remove id
+ protocol.setId(null);
+
+ // persist protocol
+ PersistenceService persistenceService =
+ getContext().getService(PersistenceService.class);
+
+ TuttiProtocol savedProtocol =
+ persistenceService.createProtocol(protocol);
+
+ if (log.isInfoEnabled()) {
+ log.info("Edit saved protocol: " + savedProtocol.getId());
+ }
+ getContext().setProtocolId(savedProtocol.getId());
+ getContext().setScreen(TuttiScreen.EDIT_PROTOCOL);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewCruiseAction.java 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewCruiseAction.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -45,7 +45,7 @@
super(handler,
"newCruise",
"add",
- _("tutti.action.new"),
+ _("tutti.action.newCruise"),
_("tutti.action.newCruise.tip"),
true
);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProgramAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProgramAction.java 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProgramAction.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -45,7 +45,7 @@
super(handler,
"newProgram",
"add",
- _("tutti.action.new"),
+ _("tutti.action.newProgram"),
_("tutti.action.newProgram.tip"),
true
);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProtocolAction.java 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProtocolAction.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -50,8 +50,8 @@
super(handler,
"newProtocol",
"add",
- _("tutti.action.new"),
- _("tutti.action.new.protocol.tip"),
+ _("tutti.action.newProtocol"),
+ _("tutti.action.newProtocol.tip"),
true
);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css 2013-01-19 01:59:45 UTC (rev 228)
@@ -42,14 +42,10 @@
#editProgramButton {
enabled: {model.isProgramFound()};
action: {editProgramAction};
- /*text: "tutti.action.edit";
- actionIcon: edit;*/
}
#newProgramButton {
action: {newProgramAction};
- /*text: "tutti.action.new";
- actionIcon: add;*/
}
#cruiseLabel {
@@ -66,15 +62,11 @@
#editCruiseButton {
enabled: {model.isProgramFound() && model.isCruiseFound()};
action: {editCruiseAction}
- /*text: "tutti.action.edit";
- actionIcon: edit;*/
}
#newCruiseButton {
enabled: {model.isProgramFound()};
action: {newCruiseAction};
- /*actionIcon: add;
- text: "tutti.action.new";*/
}
#protocolLabel {
@@ -101,13 +93,9 @@
#editCatchesButton {
action: {editCatchesAction};
enabled: {uiContext.isCruiseFilled()};
- /*text: "tutti.action.fillCatches";*/
- actionIcon: edit;
}
#validateCatchesButton {
action: {validateCatchesAction};
enabled: {uiContext.isCruiseFilled()};
- /*text: "tutti.action.validateCatches";*/
- actionIcon: validate;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -1,18 +1,41 @@
package fr.ifremer.tutti.ui.swing.content.operation;
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * 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 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
-import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUIHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
-import java.awt.event.ActionEvent;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import java.awt.event.ActionEvent;
+
import static org.nuiton.i18n.I18n._;
/**
- *
* @author kmorin <kmorin(a)codelutin.com>
* @since 1.0
*/
@@ -27,19 +50,19 @@
super(handler,
"saveFishingOperation",
"save",
- _("tutti.action.save.fishingOperation"),
- _("tutti.action.save.fishingOperation.tip"),
+ _("tutti.action.saveFishingOperation"),
+ _("tutti.action.saveFishingOperation.tip"),
false
);
}
-
+
@Override
protected void doAction(ActionEvent event) {
-
+
EditFishingOperationUIHandler handler = getHandler();
-
+
TuttiBeanMonitor<EditFishingOperationUIModel> monitor = handler.getFishingOperationMonitor();
-
+
// previous fishingOperation was modified, let's save it
EditFishingOperationUIModel beanToSave = monitor.getBean();
@@ -56,7 +79,7 @@
// save modified fishing operation
FishingOperation toSave = beanToSave.toBean();
-
+
handler.showInformationMessage(
"[ Trait - Caractéristiques générales ] " +
"Sauvegarde des modifications de " + decorate(toSave) +
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/CancelEditProgramAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/CancelEditProgramAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/CancelEditProgramAction.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -0,0 +1,36 @@
+package fr.ifremer.tutti.ui.swing.content.program;
+
+import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.TuttiScreen;
+
+import java.awt.event.ActionEvent;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * TODO
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class CancelEditProgramAction extends AbstractTuttiAction<EditProgramUIModel, EditProgramUIHandler> {
+
+ private static final long serialVersionUID = 1L;
+
+ public CancelEditProgramAction(EditProgramUIHandler handler) {
+ super(handler,
+ "cancelEditProgram",
+ "cancel",
+ _("tutti.action.cancel.editProgram"),
+ _("tutti.action.cancel.editProgram.tip"),
+ true
+ );
+ }
+
+ @Override
+ protected void doAction(ActionEvent event) {
+
+ getContext().setScreen(TuttiScreen.SELECT_CRUISE);
+ }
+
+}
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/CancelEditProgramAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css 2013-01-19 01:59:45 UTC (rev 228)
@@ -65,6 +65,5 @@
}
#cancelButton {
- text: "tutti.action.cancel";
- actionIcon: cancel;
+ action: {cancelEditProgramAction};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx 2013-01-19 01:59:45 UTC (rev 228)
@@ -62,7 +62,9 @@
initializer='getContextValue(EditProgramUIModel.class)'/>
<SaveProgramAction id='saveProgramAction' constructorParams='handler'/>
-
+ <CancelEditProgramAction id='cancelEditProgramAction'
+ constructorParams='handler'/>
+
<SwingValidatorMessageTableModel id='errorTableModel'/>
<BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
@@ -111,7 +113,7 @@
<row anchor='south'>
<cell columns='2'>
<JPanel layout='{new GridLayout(1, 0)}'>
- <JButton id='cancelButton' onActionPerformed='handler.cancel()'/>
+ <JButton id='cancelButton'/>
<JButton id='saveButton'/>
</JPanel>
</cell>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -24,17 +24,12 @@
* #L%
*/
-import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.MainUI;
-import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUI;
-import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import jaxx.runtime.validator.swing.SwingValidator;
-import jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer;
-import jaxx.runtime.validator.swing.SwingValidatorUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -107,7 +102,7 @@
SwingValidator validator = ui.getValidator();
listenValidatorValid(validator, model);
-
+
MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
main.clearValidators();
main.registerValidator(validator);
@@ -130,8 +125,4 @@
return ui.getModel();
}
- public void cancel() {
- context.setScreen(TuttiScreen.SELECT_CRUISE);
- }
-
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -1,6 +1,30 @@
package fr.ifremer.tutti.ui.swing.content.program;
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * 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 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.service.PersistenceService;
@@ -29,8 +53,8 @@
super(handler,
"saveProgram",
"save",
- _("tutti.action.save.program"),
- _("tutti.action.save.program.tip"),
+ _("tutti.action.saveProgram"),
+ _("tutti.action.saveProgram.tip"),
true
);
}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CancelEditProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CancelEditProtocolAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CancelEditProtocolAction.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -0,0 +1,36 @@
+package fr.ifremer.tutti.ui.swing.content.protocol;
+
+import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.TuttiScreen;
+
+import java.awt.event.ActionEvent;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * TODO
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class CancelEditProtocolAction extends AbstractTuttiAction<EditProtocolUIModel, EditProtocolUIHandler> {
+
+ private static final long serialVersionUID = 1L;
+
+ public CancelEditProtocolAction(EditProtocolUIHandler handler) {
+ super(handler,
+ "cancelEditProtocol",
+ "cancel",
+ _("tutti.action.cancel.editProtocol"),
+ _("tutti.action.cancel.editProtocol.tip"),
+ true
+ );
+ }
+
+ @Override
+ protected void doAction(ActionEvent event) {
+
+ getContext().setScreen(TuttiScreen.SELECT_CRUISE);
+ }
+
+}
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CancelEditProtocolAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 2013-01-19 01:59:45 UTC (rev 228)
@@ -57,8 +57,7 @@
}
#cancelButton {
- text: "tutti.action.cancel";
- actionIcon: cancel;
+ action: {cancelEditProtocolAction};
}
#speciesComboBox {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-01-19 01:59:45 UTC (rev 228)
@@ -68,6 +68,7 @@
<EditProtocolUIModel id='model'
initializer='getContextValue(EditProtocolUIModel.class)'/>
+ <CancelEditProtocolAction id='cancelEditProtocolAction' constructorParams='handler'/>
<SaveProtocolAction id='saveProtocolAction' constructorParams='handler'/>
<SwingValidatorMessageTableModel id='errorTableModel'/>
@@ -169,7 +170,7 @@
</JTabbedPane>
<JPanel layout='{new GridLayout(1, 0)}' constraints='BorderLayout.SOUTH'>
- <JButton id='cancelButton' onActionPerformed='handler.cancel()'/>
+ <JButton id='cancelButton'/>
<JButton id='saveButton'/>
</JPanel>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -29,7 +29,6 @@
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
import com.google.common.collect.Multimap;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum;
@@ -39,7 +38,6 @@
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.MainUI;
import fr.ifremer.tutti.ui.swing.MainUIHandler;
-import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.HydrologicCaracteristicUtil;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
@@ -57,8 +55,6 @@
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.TableColumnModelEvent;
import javax.swing.event.TableColumnModelListener;
-import javax.swing.table.TableColumn;
-import javax.swing.table.TableColumnModel;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -387,25 +383,13 @@
//-- Public methods --//
//------------------------------------------------------------------------//
- public void cancel() {
-
- context.setScreen(TuttiScreen.SELECT_CRUISE);
- }
-
public void addRow() {
- log.info("addRow 1");
Species species = (Species) ui.getSpeciesComboBox().getSelectedItem();
- log.info("addRow 2");
EditProtocolSpeciesRowModel protocol = getTableModel().createNewRow();
- log.info("addRow 3");
protocol.setSpecies(species);
- log.info("addRow 4");
getTableModel().addNewRow(protocol);
- log.info("addRow 5");
ui.getSpeciesComboBox().removeItem(species);
- log.info("addRow 6");
selectFirstInCombo(ui.getSpeciesComboBox());
- log.info("addRow 7");
// getModel().setModify(true);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java 2013-01-19 01:59:45 UTC (rev 228)
@@ -1,6 +1,30 @@
package fr.ifremer.tutti.ui.swing.content.protocol;
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * 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 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
import com.google.common.collect.BiMap;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
@@ -33,13 +57,15 @@
/** Logger. */
private static final Log log = LogFactory.getLog(SaveProtocolAction.class);
-
+
+ private static final long serialVersionUID = 1L;
+
public SaveProtocolAction(EditProtocolUIHandler handler) {
super(handler,
"saveProtocol",
"save",
- _("tutti.action.save.protocol"),
- _("tutti.action.save.protocol.tip"),
+ _("tutti.action.saveProtocol"),
+ _("tutti.action.saveProtocol.tip"),
true
);
}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-18 18:07:24 UTC (rev 227)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-19 01:59:45 UTC (rev 228)
@@ -3,37 +3,49 @@
tutti.action.about=À propos
tutti.action.about.tip=À Propos
tutti.action.cancel=Annuler
+tutti.action.cancel.editCruise.tip=Annuler l'édition (ou la création) de la campagne
+tutti.action.cancel.editProgram=Annuler
+tutti.action.cancel.editProgram.tip=Annuler l'édition (ou la création) de la série de campagne
+tutti.action.cancel.editProtocol=Annuler
+tutti.action.cancel.editProtocol.tip=Annuler l'édition (ou la création) du protocole
+tutti.action.cancel.editcruise=
tutti.action.casino-import=Import Casino
-tutti.action.clone=Cloner
-tutti.action.clone.protocol.tip=Dupliquer le protocole sélectionné
+tutti.action.chooseProtocolFile=Choisir le fichier de protocole
+tutti.action.cloneProtocol=Cloner
+tutti.action.cloneProtocol.tip=Dupliquer le protocole sélectionné
tutti.action.close=Fermer
tutti.action.configuration=Configuration
tutti.action.configuration.tip=Configurer Tutti
tutti.action.createSpeciesBatch=Créer un lot pour une espèce
-tutti.action.edit=Editer
-tutti.action.edit.protocol.tip=Éditer le protocole sélectionné
tutti.action.editCatches=Saisir les captures
tutti.action.editCatches.tip=Saisir des captures
-tutti.action.editCruise=Éditer la campagne
+tutti.action.editCruise=Éditer
tutti.action.editCruise.tip=Éditer la campagne sélectionnée
tutti.action.editProgram=Programme
tutti.action.editProgram.tip=Éditer le programme sélectionné
tutti.action.editProtocol=Protocole
-tutti.action.editProtocol.tip=
+tutti.action.editProtocol.tip=Éditer le protocol sélectionné
+tutti.action.editSelectedCruise=Campagne
+tutti.action.editSelectedCruise.tip=Éditer la campagne sélectionnée
+tutti.action.editSelectedProgram=Série de campagne
+tutti.action.editSelectedProgram.tip=Éditer la série de campagne sélectionnée
+tutti.action.editSelectedProtocol=Protocole
+tutti.action.editSelectedProtocol.tip=Éditer le protocole sélectionnée
tutti.action.exit=Quitter
tutti.action.exit.tip=Quitter l'application
-tutti.action.export=Exporter
-tutti.action.export.protocol.tip=Exporter le protocole sélectionné
+tutti.action.exportProtocol=Exporter
+tutti.action.exportProtocol.tip=Exporter le protocole sélectionné
tutti.action.generate=Générer
tutti.action.generateCampaignName=Générer le nom
-tutti.action.import=Importer
-tutti.action.import.protocol.tip=Importer un protocole
-tutti.action.manageProtocol=Protocole
-tutti.action.manageProtocol.tip=Gérer les protocoles
+tutti.action.importProtocol=Importer
+tutti.action.importProtocol.tip=Importer un protocole
tutti.action.new=Nouveau
-tutti.action.new.protocol.tip=Créer un nouve protocole
+tutti.action.newCruise=Nouveau
tutti.action.newCruise.tip=Créer une nouvelle campagne
+tutti.action.newProgram=Nouveau
tutti.action.newProgram.tip=Créer une nouvelle série de campagne
+tutti.action.newProtocol=Nouveau
+tutti.action.newProtocol.tip=Créer un nouveau protocole
tutti.action.pupitri-import=Import PUPITRI
tutti.action.reload.actions=Recharger les actions
tutti.action.reload.application=Recharger l'application
@@ -46,14 +58,14 @@
tutti.action.removeSpeciesSubBatch.tip=Supprimer tous les lots fils du lot sélectionné
tutti.action.reset.fishingOperationValidState=Réinitialiser
tutti.action.save=Enregistrer
-tutti.action.save.cruise=Enregistrer
-tutti.action.save.cruise.tip=Enregistrer la campagne
-tutti.action.save.fishingOperation=Enregistrer
-tutti.action.save.fishingOperation.tip=Enregistrer le trait
-tutti.action.save.program=Enregistrer
-tutti.action.save.program.tip=Enregistrer la série de campagne
-tutti.action.save.protocol=Enregistrer
-tutti.action.save.protocol.tip=Enregistrer le protocol
+tutti.action.saveCruise=Enregistrer
+tutti.action.saveCruise.tip=Enregistrer la campagne
+tutti.action.saveFishingOperation=Enregistrer
+tutti.action.saveFishingOperation.tip=Enregistrer le trait
+tutti.action.saveProgram=Enregistrer
+tutti.action.saveProgram.tip=Enregistrer la série de campagne
+tutti.action.saveProtocol=Enregistrer
+tutti.action.saveProtocol.tip=Enregistrer le protocol
tutti.action.selectCruise=Sélectionner une campagne
tutti.action.selectCruise.tip=Sélectionner la campagne à utiliser
tutti.action.site=Site
@@ -81,8 +93,8 @@
tutti.config.ui.shortcut.closePopup=Fermer une popup
tutti.config.ui.showNumberEditorButton=Afficher le pavé numérique de saisie
tutti.config.ui.useSexagecimalEditor=Utiliser l'éditeur sexagécimal pour entrer des coordonnées
-tutti.duration.format=dj Hh m'm'
tutti.errorTable.title=Table d'erreurs
+tutti.file.protocol=Extension d'un fichier de protocole Tutti
tutti.label.attachmentEditor.file=Fichier
tutti.label.attachmentEditor.fileComment=Commentaire
tutti.label.attachmentEditor.fileName=Nom
@@ -132,8 +144,6 @@
tutti.label.filterVesselType.fishing.tip=Uniquement les navires pro
tutti.label.filterVesselType.scientific=Scientifique
tutti.label.filterVesselType.scientific.tip=Uniquement les navires scientifiques
-tutti.label.fishingOperation.date=Date
-tutti.label.fishingOperation.distanceChalutee=Distance chalutée
tutti.label.fishingOperation.duration=Durée
tutti.label.fishingOperation.fishingOperationInvalid=Trait invalide
tutti.label.fishingOperation.fishingOperationNumber=Numéro de Trait
@@ -143,8 +153,6 @@
tutti.label.fishingOperation.gearDate=Date
tutti.label.fishingOperation.gearLatitude=Latitude
tutti.label.fishingOperation.gearLongitude=Longitude
-tutti.label.fishingOperation.gearShootingCoordinatesDD=DD
-tutti.label.fishingOperation.gearShootingCoordinatesDMS=DMS
tutti.label.fishingOperation.gearShootingEnd=Fin de traine
tutti.label.fishingOperation.gearShootingStart=Début de traine
tutti.label.fishingOperation.gearTime=Heure
@@ -185,7 +193,6 @@
tutti.label.tab.accidentel=Captures accidentelles
tutti.label.tab.benthos=Benthos
tutti.label.tab.catches=Captures
-tutti.label.tab.catchesCaracteristics=Caractéristiques générales
tutti.label.tab.fishingOperation=Trait
tutti.label.tab.fishingOperation.environment=Environnement
tutti.label.tab.fishingOperation.gearShooting=Mise en oeuvre de l'engin
@@ -206,7 +213,6 @@
tutti.legend.catch.macroWaste=Macro déchets
tutti.legend.catch.species=Espèces
tutti.legend.catch.total=Capture
-tutti.legend.filterSpeciesBatchMode=Filtrer les lots
tutti.legend.frequencyConfiguration=Configuration
tutti.legend.splitSpeciesBatchConfiguration=Configuration
tutti.menu.actions=Actions
@@ -223,13 +229,12 @@
tutti.menu.synchronisationImport.tip=Effectuer des imports
tutti.menu.synchronisations=Synchronisation
tutti.menu.synchronisations.tip=Import/Export
-tutti.message.action.running=<html>Action <strong>%s</strong> en cours d'execution...<br/><hr/>Merci de bien vouloir patienter.</html>
+tutti.message.action.running=<html>Action <strong>%s</strong> en cours d'execution...<hr/></html>
tutti.sampleCategoryType.age=Age
tutti.sampleCategoryType.maturity=Maturité
tutti.sampleCategoryType.sex=Sexe
tutti.sampleCategoryType.size=Class Tri.
tutti.sampleCategoryType.sortedUnsorted=V/HV
-tutti.sampleCategoryType.species=Espèce
tutti.table.accidental.batch.header.comment=Commentaire
tutti.table.accidental.batch.header.file=Pièces-jointes
tutti.table.accidental.batch.header.speciesByCode=Espèce
@@ -294,6 +299,8 @@
tutti.table.species.sampleCategory.header.weight=Poids
tutti.timeeditor.H=H
tutti.title.about=À propos de Tutti
+tutti.title.choose.protocolExportFile=Choisir le fichier où exporter le protocole
+tutti.title.choose.protocolImportFile=Choisir le fichier du protocole à importer
tutti.title.create.cruise=Créer une nouvelle campagne
tutti.title.create.program=Créer une nouvelle série de campagne
tutti.title.create.protocol=Créer un nouveau protocol de saisie
@@ -313,7 +320,6 @@
tutti.title.selectedProtocol=Protocol %s
tutti.title.splitBatch=Catégoriser un lot
tutti.title.validate.operations=Validation des opérations de pêches (%s)
-tutti.title.waitingBar=Action en cours...
tutti.to.be.done=< A FAIRE >
tutti.tooltip.attachment.none=Pas de pièce-jointes
tutti.tooltip.comment.none=Pas de commentaire
1
0
r227 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content/cruise java/fr/ifremer/tutti/ui/swing/content/operation java/fr/ifremer/tutti/ui/swing/content/program java/fr/ifremer/tutti/ui/swing/content/protocol resources/i18n
by kmorin@users.forge.codelutin.com 18 Jan '13
by kmorin@users.forge.codelutin.com 18 Jan '13
18 Jan '13
Author: kmorin
Date: 2013-01-18 19:07:24 +0100 (Fri, 18 Jan 2013)
New Revision: 227
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/227
Log:
use actions to save protocols, cruises and programs
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-01-18 17:22:41 UTC (rev 226)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-01-18 18:07:24 UTC (rev 227)
@@ -186,8 +186,7 @@
}
#saveButton {
- actionIcon: save;
- text: "tutti.action.save";
+ action: {saveCruiseAction};
enabled: {model.isModify() && model.isValid()};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-01-18 17:22:41 UTC (rev 226)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-01-18 18:07:24 UTC (rev 227)
@@ -72,6 +72,8 @@
<EditCruiseUIModel id='model'
initializer='getContextValue(EditCruiseUIModel.class)'/>
+ <SaveCruiseAction id='saveCruiseAction' constructorParams='handler'/>
+
<SwingValidatorMessageTableModel id='errorTableModel'/>
<BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
@@ -211,7 +213,7 @@
<cell columns='6'>
<JPanel layout='{new GridLayout(1, 0)}'>
<JButton id='cancelButton' onActionPerformed='handler.cancel()'/>
- <JButton id='saveButton' onActionPerformed='handler.save()'/>
+ <JButton id='saveButton'/>
</JPanel>
</cell>
</row>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-01-18 17:22:41 UTC (rev 226)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-01-18 18:07:24 UTC (rev 227)
@@ -276,26 +276,6 @@
context.setScreen(TuttiScreen.SELECT_CRUISE);
}
- public void save() {
-
- EditCruiseUIModel model = getModel();
-
- Cruise bean = model.toBean();
-
- Cruise saved;
- if (TuttiEntities.isNew(bean)) {
-
- saved = persistenceService.createCruise(bean);
- } else {
- saved = persistenceService.saveCruise(bean);
- }
-
- context.setProgramId(saved.getProgram().getId());
- context.setCruiseId(saved.getId());
-
- context.setScreen(TuttiScreen.SELECT_CRUISE);
- }
-
public static final String cruiseNameFormat = "%1$s_%2$s";
public void generateCampaignName() {
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java 2013-01-18 18:07:24 UTC (rev 227)
@@ -0,0 +1,52 @@
+
+package fr.ifremer.tutti.ui.swing.content.cruise;
+
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
+import fr.ifremer.tutti.persistence.entities.data.Cruise;
+import fr.ifremer.tutti.service.PersistenceService;
+import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import java.awt.event.ActionEvent;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ *
+ * @author kmorin <kmorin(a)codelutin.com>
+ */
+public class SaveCruiseAction extends AbstractTuttiAction<EditCruiseUIModel, EditCruiseUIHandler> {
+
+ public SaveCruiseAction(EditCruiseUIHandler handler) {
+ super(handler,
+ "saveCruise",
+ "save",
+ _("tutti.action.save.cruise"),
+ _("tutti.action.save.cruise.tip"),
+ true
+ );
+ }
+
+ @Override
+ protected void doAction(ActionEvent event) {
+ TuttiUIContext context = getContext();
+ EditCruiseUIModel model = getModel();
+ PersistenceService persistenceService = context.getService(PersistenceService.class);
+
+ Cruise bean = model.toBean();
+
+ Cruise saved;
+ if (TuttiEntities.isNew(bean)) {
+
+ saved = persistenceService.createCruise(bean);
+ } else {
+ saved = persistenceService.saveCruise(bean);
+ }
+
+ context.setProgramId(saved.getProgram().getId());
+ context.setCruiseId(saved.getId());
+
+ context.setScreen(TuttiScreen.SELECT_CRUISE);
+ }
+
+}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-01-18 17:22:41 UTC (rev 226)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-01-18 18:07:24 UTC (rev 227)
@@ -408,7 +408,6 @@
#saveButton {
action: {saveFishingOperationAction};
- text: "tutti.action.save";
}
#cancelButton {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css 2013-01-18 17:22:41 UTC (rev 226)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css 2013-01-18 18:07:24 UTC (rev 227)
@@ -60,9 +60,8 @@
}
#saveButton {
- text: "tutti.action.save";
+ action: {saveProgramAction};
enabled: {model.isModify() && model.isValid()};
- actionIcon: save;
}
#cancelButton {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx 2013-01-18 17:22:41 UTC (rev 226)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx 2013-01-18 18:07:24 UTC (rev 227)
@@ -61,6 +61,8 @@
<EditProgramUIModel id='model'
initializer='getContextValue(EditProgramUIModel.class)'/>
+ <SaveProgramAction id='saveProgramAction' constructorParams='handler'/>
+
<SwingValidatorMessageTableModel id='errorTableModel'/>
<BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
@@ -110,7 +112,7 @@
<cell columns='2'>
<JPanel layout='{new GridLayout(1, 0)}'>
<JButton id='cancelButton' onActionPerformed='handler.cancel()'/>
- <JButton id='saveButton' onActionPerformed='handler.save()'/>
+ <JButton id='saveButton'/>
</JPanel>
</cell>
</row>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java 2013-01-18 17:22:41 UTC (rev 226)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java 2013-01-18 18:07:24 UTC (rev 227)
@@ -134,21 +134,4 @@
context.setScreen(TuttiScreen.SELECT_CRUISE);
}
- public void save() {
-
- EditProgramUIModel model = getModel();
-
- Program bean = model.toBean();
-
- Program saved;
- if (TuttiEntities.isNew(bean)) {
-
- saved = persistenceService.createProgram(bean);
- } else {
- saved = persistenceService.saveProgram(bean);
- }
-
- context.setProgramId(saved.getId());
- context.setScreen(TuttiScreen.SELECT_CRUISE);
- }
}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java (from rev 226, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java 2013-01-18 18:07:24 UTC (rev 227)
@@ -0,0 +1,58 @@
+
+package fr.ifremer.tutti.ui.swing.content.program;
+
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
+import fr.ifremer.tutti.persistence.entities.data.Program;
+import fr.ifremer.tutti.service.PersistenceService;
+import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import java.awt.event.ActionEvent;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ *
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.0
+ */
+public class SaveProgramAction extends AbstractTuttiAction<EditProgramUIModel, EditProgramUIHandler> {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(SaveProgramAction.class);
+
+ public SaveProgramAction(EditProgramUIHandler handler) {
+ super(handler,
+ "saveProgram",
+ "save",
+ _("tutti.action.save.program"),
+ _("tutti.action.save.program.tip"),
+ true
+ );
+ }
+
+ @Override
+ protected void doAction(ActionEvent event) {
+ TuttiUIContext context = getContext();
+ PersistenceService persistenceService = context.getService(PersistenceService.class);
+ EditProgramUIModel model = getModel();
+
+ Program bean = model.toBean();
+
+ Program saved;
+ if (TuttiEntities.isNew(bean)) {
+
+ saved = persistenceService.createProgram(bean);
+ } else {
+ saved = persistenceService.saveProgram(bean);
+ }
+
+ context.setProgramId(saved.getId());
+ context.setScreen(TuttiScreen.SELECT_CRUISE);
+ }
+
+}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 2013-01-18 17:22:41 UTC (rev 226)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 2013-01-18 18:07:24 UTC (rev 227)
@@ -52,9 +52,8 @@
}
#saveButton {
- text: "tutti.action.save";
enabled: {model.isModify() && model.isValid()};
- actionIcon: save;
+ action: {saveProtocolAction};
}
#cancelButton {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-01-18 17:22:41 UTC (rev 226)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-01-18 18:07:24 UTC (rev 227)
@@ -68,6 +68,8 @@
<EditProtocolUIModel id='model'
initializer='getContextValue(EditProtocolUIModel.class)'/>
+ <SaveProtocolAction id='saveProtocolAction' constructorParams='handler'/>
+
<SwingValidatorMessageTableModel id='errorTableModel'/>
<BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
@@ -168,7 +170,7 @@
<JPanel layout='{new GridLayout(1, 0)}' constraints='BorderLayout.SOUTH'>
<JButton id='cancelButton' onActionPerformed='handler.cancel()'/>
- <JButton id='saveButton' onActionPerformed='handler.save()'/>
+ <JButton id='saveButton'/>
</JPanel>
</JPanel>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-01-18 17:22:41 UTC (rev 226)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-01-18 18:07:24 UTC (rev 227)
@@ -392,70 +392,6 @@
context.setScreen(TuttiScreen.SELECT_CRUISE);
}
- public void save() {
-
- EditProtocolUIModel model = getModel();
-
- TuttiProtocol bean = model.toBean();
-
- // get the species protocols from the table
- List<SpeciesProtocol> protocols = Lists.newArrayList();
-
- for (EditProtocolSpeciesRowModel row : getTableModel().getRows()) {
- if (row.isValid()) {
- SpeciesProtocol protocol = row.toBean();
- protocols.add(protocol);
- }
- }
- bean.setSpecies(protocols);
-
- // split the hydro grouped pmfm
- List<String> hydroPmfm = bean.getHydrologyPmfmId();
- List<String> allIds = Lists.newArrayList();
- if (hydroPmfm != null) {
- for (String id : hydroPmfm) {
- allIds.addAll(hydroCaracteristics.get(id));
- }
- }
- bean.setHydrologyPmfmId(allIds);
-
- // find out sampling order
-
- TableColumnModel columnModel = getTable().getColumnModel();
- int columnCount = columnModel.getColumnCount();
- Map<Integer, SampleCategoryEnum> sampleCategoryOrders = Maps.newTreeMap();
-
- for (int i = 0; i < columnCount; i++) {
-
- TableColumn column = columnModel.getColumn(i);
- ColumnIdentifier<EditProtocolSpeciesRowModel> identifier = (ColumnIdentifier<EditProtocolSpeciesRowModel>) column.getIdentifier();
- SampleCategoryEnum sampleCategory = columToSampleCategory.get(identifier);
- if (sampleCategory != null) {
-
- // found a sample category, keep it
- sampleCategoryOrders.put(i, sampleCategory);
- }
- }
-
- List<SampleCategoryEnum> sampleOrder =
- Lists.newArrayList(sampleCategoryOrders.values());
-
- bean.setSampleCategoryOrder(sampleOrder);
-
- TuttiProtocol saved;
- log.info("bean id : " + bean.getId());
- if (TuttiEntities.isNew(bean)) {
-
- saved = persistenceService.createProtocol(bean);
- } else {
- saved = persistenceService.saveProtocol(bean);
- }
-
- context.setProtocolId(saved.getId());
-
- context.setScreen(TuttiScreen.SELECT_CRUISE);
- }
-
public void addRow() {
log.info("addRow 1");
Species species = (Species) ui.getSpeciesComboBox().getSelectedItem();
@@ -488,6 +424,14 @@
getTableModel().fireTableRowsDeleted(rowIndex, rowIndex);
}
+ public Multimap<String, String> getHydroCaracteristics() {
+ return hydroCaracteristics;
+ }
+
+ public BiMap<ColumnIdentifier<EditProtocolSpeciesRowModel>, SampleCategoryEnum> getColumToSampleCategory() {
+ return columToSampleCategory;
+ }
+
//------------------------------------------------------------------------//
//-- Internal methods --//
//------------------------------------------------------------------------//
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java 2013-01-18 18:07:24 UTC (rev 227)
@@ -0,0 +1,117 @@
+
+package fr.ifremer.tutti.ui.swing.content.protocol;
+
+import com.google.common.collect.BiMap;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Multimap;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
+import fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum;
+import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
+import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
+import fr.ifremer.tutti.service.PersistenceService;
+import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
+import java.awt.event.ActionEvent;
+import java.util.List;
+import java.util.Map;
+import javax.swing.table.TableColumn;
+import javax.swing.table.TableColumnModel;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ *
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.0
+ */
+public class SaveProtocolAction extends AbstractTuttiAction<EditProtocolUIModel, EditProtocolUIHandler> {
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(SaveProtocolAction.class);
+
+ public SaveProtocolAction(EditProtocolUIHandler handler) {
+ super(handler,
+ "saveProtocol",
+ "save",
+ _("tutti.action.save.protocol"),
+ _("tutti.action.save.protocol.tip"),
+ true
+ );
+ }
+
+ @Override
+ protected void doAction(ActionEvent event) {
+ EditProtocolUIModel model = getModel();
+ TuttiUIContext context = getContext();
+ EditProtocolUIHandler handler = getHandler();
+ PersistenceService persistenceService = context.getService(PersistenceService.class);
+
+ TuttiProtocol bean = model.toBean();
+
+ // get the species protocols from the table
+ List<SpeciesProtocol> protocols = Lists.newArrayList();
+
+ for (EditProtocolSpeciesRowModel row : handler.getTableModel().getRows()) {
+ if (row.isValid()) {
+ SpeciesProtocol protocol = row.toBean();
+ protocols.add(protocol);
+ }
+ }
+ bean.setSpecies(protocols);
+
+ // split the hydro grouped pmfm
+ List<String> hydroPmfm = bean.getHydrologyPmfmId();
+ List<String> allIds = Lists.newArrayList();
+ Multimap<String, String> hydroCaracteristics = handler.getHydroCaracteristics();
+ if (hydroPmfm != null) {
+ for (String id : hydroPmfm) {
+ allIds.addAll(hydroCaracteristics.get(id));
+ }
+ }
+ bean.setHydrologyPmfmId(allIds);
+
+ // find out sampling order
+
+ TableColumnModel columnModel = handler.getTable().getColumnModel();
+ int columnCount = columnModel.getColumnCount();
+ Map<Integer, SampleCategoryEnum> sampleCategoryOrders = Maps.newTreeMap();
+
+ BiMap<ColumnIdentifier<EditProtocolSpeciesRowModel>,SampleCategoryEnum> columToSampleCategory = handler.getColumToSampleCategory();
+ for (int i = 0; i < columnCount; i++) {
+
+ TableColumn column = columnModel.getColumn(i);
+ ColumnIdentifier<EditProtocolSpeciesRowModel> identifier = (ColumnIdentifier<EditProtocolSpeciesRowModel>) column.getIdentifier();
+ SampleCategoryEnum sampleCategory = columToSampleCategory.get(identifier);
+ if (sampleCategory != null) {
+
+ // found a sample category, keep it
+ sampleCategoryOrders.put(i, sampleCategory);
+ }
+ }
+
+ List<SampleCategoryEnum> sampleOrder =
+ Lists.newArrayList(sampleCategoryOrders.values());
+
+ bean.setSampleCategoryOrder(sampleOrder);
+
+ TuttiProtocol saved;
+ log.info("bean id : " + bean.getId());
+ if (TuttiEntities.isNew(bean)) {
+
+ saved = persistenceService.createProtocol(bean);
+ } else {
+ saved = persistenceService.saveProtocol(bean);
+ }
+
+ context.setProtocolId(saved.getId());
+
+ context.setScreen(TuttiScreen.SELECT_CRUISE);
+ }
+
+
+}
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-18 17:22:41 UTC (rev 226)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-18 18:07:24 UTC (rev 227)
@@ -46,8 +46,14 @@
tutti.action.removeSpeciesSubBatch.tip=Supprimer tous les lots fils du lot sélectionné
tutti.action.reset.fishingOperationValidState=Réinitialiser
tutti.action.save=Enregistrer
+tutti.action.save.cruise=Enregistrer
+tutti.action.save.cruise.tip=Enregistrer la campagne
tutti.action.save.fishingOperation=Enregistrer
tutti.action.save.fishingOperation.tip=Enregistrer le trait
+tutti.action.save.program=Enregistrer
+tutti.action.save.program.tip=Enregistrer la série de campagne
+tutti.action.save.protocol=Enregistrer
+tutti.action.save.protocol.tip=Enregistrer le protocol
tutti.action.selectCruise=Sélectionner une campagne
tutti.action.selectCruise.tip=Sélectionner la campagne à utiliser
tutti.action.site=Site
1
0
r226 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing java/fr/ifremer/tutti/ui/swing/content/operation resources/i18n
by kmorin@users.forge.codelutin.com 18 Jan '13
by kmorin@users.forge.codelutin.com 18 Jan '13
18 Jan '13
Author: kmorin
Date: 2013-01-18 18:22:41 +0100 (Fri, 18 Jan 2013)
New Revision: 226
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/226
Log:
- put the fishing operation saving in an action
- reload the existing fishing operation when clicks on Cancel
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-01-18 16:49:08 UTC (rev 225)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-01-18 17:22:41 UTC (rev 226)
@@ -24,6 +24,8 @@
* #L%
*/
+import com.google.common.base.Preconditions;
+import fr.ifremer.tutti.service.DecoratorService;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.swing.ErrorDialogUI;
import org.apache.commons.logging.Log;
@@ -45,6 +47,7 @@
import java.util.concurrent.Executors;
import static org.nuiton.i18n.I18n._;
+import org.nuiton.util.decorator.Decorator;
/**
* TODO
@@ -200,4 +203,25 @@
}
}
}
+
+ protected <O> Decorator<O> getDecorator(Class<O> type, String name) {
+ DecoratorService decoratorService =
+ getContext().getService(DecoratorService.class);
+
+ Preconditions.checkNotNull(type);
+
+ Decorator decorator = decoratorService.getDecoratorByType(type, name);
+ if (decorator == null) {
+
+ if (DecoratorService.LabelAware.class.isAssignableFrom(type)) {
+ decorator = getDecorator(DecoratorService.LabelAware.class, null);
+ }
+ }
+ Preconditions.checkNotNull(decorator);
+ return decorator;
+ }
+
+ protected String decorate(Object object) {
+ return getDecorator(object.getClass(), null).toString(object);
+ }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-01-18 16:49:08 UTC (rev 225)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-01-18 17:22:41 UTC (rev 226)
@@ -407,7 +407,7 @@
}
#saveButton {
- actionIcon: save;
+ action: {saveFishingOperationAction};
text: "tutti.action.save";
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-01-18 16:49:08 UTC (rev 225)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-01-18 17:22:41 UTC (rev 226)
@@ -75,6 +75,8 @@
<EditFishingOperationUIModel id='model'
initializer='getContextValue(EditFishingOperationUIModel.class)'/>
+
+ <SaveFishingOperationAction id='saveFishingOperationAction' constructorParams='handler'/>
<SwingValidatorMessageTableModel id='errorTableModel'/>
@@ -463,7 +465,7 @@
<JPanel id='createFishingOperationActions' layout='{new GridLayout(1,0)}'
constraints='BorderLayout.CENTER'>
<JButton id='cancelButton' onActionPerformed='handler.cancel()'/>
- <JButton id='saveButton' onActionPerformed='handler.save()'/>
+ <JButton id='saveButton'/>
</JPanel>
</JPanel>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-01-18 16:49:08 UTC (rev 225)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-01-18 17:22:41 UTC (rev 226)
@@ -404,49 +404,16 @@
}
public void cancel() {
-
- if (log.isInfoEnabled()) {
- log.info("Cancel edition for fishingOperation ");
- }
- // cancel to create a new fishingOperation
- parentUi.getHandler().closeCurrentFishingOperation();
- }
-
- public void save() {
- // previous fishingOperation was modified, let's save it
- EditFishingOperationUIModel beanToSave = fishingOperationMonitor.getBean();
-
- if (beanToSave.isEmpty()) {
-
- // user must use save button
- if (log.isWarnEnabled()) {
- log.warn("Won't save new fishing operation, use explicit save button instead...");
- }
- } else if (beanToSave.isValid()) {
- if (getConfig().isUseSexagecimalEditor()) {
- beanToSave.convertGearShootingCoordinatesDMSToDD();
- }
-
- // save modified fishing operation
- FishingOperation toSave = beanToSave.toBean();
-
- showInformationMessage(
- "[ Trait - Caractéristiques générales ] " +
- "Sauvegarde des modifications de " + decorate(toSave) +
- ".");
-
+ if (getModel().isCreate()) {
if (log.isInfoEnabled()) {
- log.info("FishingOperation " + toSave.getId() +
- " was modified, will save it.");
+ log.info("Cancel edition for fishingOperation ");
}
-
- fishingOperationMonitor.clearModified();
- getModel().setModify(false);
-
- // persist current fishingOperation
- parentUi.getHandler().saveFishingOperation(toSave);
+ // cancel to create a new fishingOperation
+ parentUi.getHandler().closeCurrentFishingOperation();
+
+ } else {
+ parentUi.getHandler().reloadFishingOperation();
}
-
}
public void importCasino() {
@@ -481,6 +448,14 @@
getModel().setGearShootingEndLongitude(Float.valueOf(text));
}
+ public FishingOperationsUI getParentUi() {
+ return parentUi;
+ }
+
+ public TuttiBeanMonitor<EditFishingOperationUIModel> getFishingOperationMonitor() {
+ return fishingOperationMonitor;
+ }
+
//------------------------------------------------------------------------//
//-- Protected methods --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-01-18 16:49:08 UTC (rev 225)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-01-18 17:22:41 UTC (rev 226)
@@ -279,4 +279,9 @@
model.updateFishingOperation(existingFishingOperation, savedFishingOperation);
}
}
+
+ public void reloadFishingOperation() {
+ FishingOperation operation = getModel().getSelectedFishingOperation();
+ selectFishingOperation(operation);
+ }
}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-01-18 17:22:41 UTC (rev 226)
@@ -0,0 +1,78 @@
+
+package fr.ifremer.tutti.ui.swing.content.operation;
+
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUIHandler;
+import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import java.awt.event.ActionEvent;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ *
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.0
+ */
+public class SaveFishingOperationAction extends AbstractTuttiAction<EditFishingOperationUIModel, EditFishingOperationUIHandler> {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(SaveFishingOperationAction.class);
+
+ public SaveFishingOperationAction(EditFishingOperationUIHandler handler) {
+ super(handler,
+ "saveFishingOperation",
+ "save",
+ _("tutti.action.save.fishingOperation"),
+ _("tutti.action.save.fishingOperation.tip"),
+ false
+ );
+ }
+
+ @Override
+ protected void doAction(ActionEvent event) {
+
+ EditFishingOperationUIHandler handler = getHandler();
+
+ TuttiBeanMonitor<EditFishingOperationUIModel> monitor = handler.getFishingOperationMonitor();
+
+ // previous fishingOperation was modified, let's save it
+ EditFishingOperationUIModel beanToSave = monitor.getBean();
+
+ if (beanToSave.isEmpty()) {
+
+ // user must use save button
+ if (log.isWarnEnabled()) {
+ log.warn("Won't save new fishing operation, use explicit save button instead...");
+ }
+ } else if (beanToSave.isValid()) {
+ if (handler.getConfig().isUseSexagecimalEditor()) {
+ beanToSave.convertGearShootingCoordinatesDMSToDD();
+ }
+
+ // save modified fishing operation
+ FishingOperation toSave = beanToSave.toBean();
+
+ handler.showInformationMessage(
+ "[ Trait - Caractéristiques générales ] " +
+ "Sauvegarde des modifications de " + decorate(toSave) +
+ ".");
+
+ if (log.isInfoEnabled()) {
+ log.info("FishingOperation " + toSave.getId() +
+ " was modified, will save it.");
+ }
+
+ monitor.clearModified();
+ getModel().setModify(false);
+
+ // persist current fishingOperation
+ handler.getParentUi().getHandler().saveFishingOperation(toSave);
+ }
+ }
+
+}
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-18 16:49:08 UTC (rev 225)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-18 17:22:41 UTC (rev 226)
@@ -46,6 +46,8 @@
tutti.action.removeSpeciesSubBatch.tip=Supprimer tous les lots fils du lot sélectionné
tutti.action.reset.fishingOperationValidState=Réinitialiser
tutti.action.save=Enregistrer
+tutti.action.save.fishingOperation=Enregistrer
+tutti.action.save.fishingOperation.tip=Enregistrer le trait
tutti.action.selectCruise=Sélectionner une campagne
tutti.action.selectCruise.tip=Sélectionner la campagne à utiliser
tutti.action.site=Site
1
0
r225 - in trunk/tutti-persistence-adagio/src: main/java/fr/ifremer/tutti/persistence main/java/fr/ifremer/tutti/persistence/service main/resources test/java/fr/ifremer/tutti/persistence/service
by blavenier@users.forge.codelutin.com 18 Jan '13
by blavenier@users.forge.codelutin.com 18 Jan '13
18 Jan '13
Author: blavenier
Date: 2013-01-18 17:49:08 +0100 (Fri, 18 Jan 2013)
New Revision: 225
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/225
Log:
ref refs #1920: [Persistence] Adagio Donnees thematiques
- Continue implementation of FishingOperation.create() : lat/long, trawl distance, etc.
Modified:
trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/TuttiEnumerationFile.java
trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java
trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java
trunk/tutti-persistence-adagio/src/main/resources/queries-override.hbm.xml
trunk/tutti-persistence-adagio/src/main/resources/tutti-db-enumerations.properties
trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceTest.java
Modified: trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/TuttiEnumerationFile.java
===================================================================
--- trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/TuttiEnumerationFile.java 2013-01-18 15:05:20 UTC (rev 224)
+++ trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/TuttiEnumerationFile.java 2013-01-18 16:49:08 UTC (rev 225)
@@ -131,6 +131,31 @@
@Value("${QualityFlagCode.NOTQUALIFIED}")
public final String QUALITY_FLAG_CODE_NOT_QUALIFIED = null;
+ @Value("${PmfmId.STATION_NUMBER}")
+ public final Integer PMFM_ID_STATION_NUMBER = null;
+
+ @Value("${PmfmId.TRAWL_DISTANCE}")
+ public final Integer PMFM_ID_TRAWL_DISTANCE = null;
+
+ @Value("${PmfmId.RECTILINEAR_OPERATION}")
+ public final Integer PMFM_ID_RECTILINEAR_OPERATION = null;
+
+ @Value("${QualitativeValueId.RECTILINEAR_OPERATION_YES}")
+ public final Integer QUALITATIVE_RECTILINEAR_OPERATION_YES = null;
+
+ @Value("${QualitativeValueId.RECTILINEAR_OPERATION_NO}")
+ public final Integer QUALITATIVE_RECTILINEAR_OPERATION_NO = null;
+
+ @Value("${PmfmId.HAUL_VALID}")
+ public final Integer PMFM_ID_HAUL_VALID = null;
+
+ @Value("${QualitativeValueId.HAUL_VALID_YES}")
+ public final Integer QUALITATIVE_HAUL_VALID_YES = null;
+
+ @Value("${QualitativeValueId.HAUL_VALID_NO}")
+ public final Integer QUALITATIVE_HAUL_VALID_NO = null;
+
+
public void init() {
Preconditions.checkNotNull(GEAR_CLASSIFICIATION_ID_SCIENTIFIC, "GEAR_CLASSIFICIATION_ID_SCIENTIFIC constant not found");
Preconditions.checkNotNull(GEAR_CLASSIFICIATION_ID_FISHING, "GEAR_CLASSIFICIATION_ID_FISHING constant not found");
@@ -153,6 +178,10 @@
Preconditions.checkNotNull(PMFM_ID_MATURITY, "PMFM_ID_MATURITY constant not found");
Preconditions.checkNotNull(PMFM_ID_MACRO_WASTE_CATEGORY, "PMFM_ID_MACRO_WASTE_CATEGORY constant not found");
Preconditions.checkNotNull(PMFM_ID_MACRO_WASTE_SIZE_CATEGORY, "PMFM_ID_MACRO_WASTE_SIZE_CATEGORY constant not found");
+ Preconditions.checkNotNull(PMFM_ID_STATION_NUMBER, "PMFM_ID_STATION_NUMBER constant not found");
+ Preconditions.checkNotNull(PMFM_ID_TRAWL_DISTANCE, "PMFM_ID_TRAWL_DISTANCE constant not found");
+ Preconditions.checkNotNull(PMFM_ID_RECTILINEAR_OPERATION, "PMFM_ID_RECTILINEAR_OPERATION constant not found");
+ Preconditions.checkNotNull(PMFM_ID_HAUL_VALID, "PMFM_ID_HAUL_VALID constant not found");
Preconditions.checkNotNull(QUALITY_FLAG_CODE_NOT_QUALIFIED, "QUALITY_FLAG_CODE_NOT_QUALIFIED constant not found");
Preconditions.checkNotNull(UNIT_ID_NONE, "UNIT_ID_NONE constant not found");
Preconditions.checkNotNull(USER_PROFIL_ID_OBSERVER, "USER_PROFIL_ID_OBSERVER constant not found");
@@ -164,5 +193,10 @@
Preconditions.checkNotNull(STATUS_VALID_CODE, "StatusCode.ENABLE constant not found");
Preconditions.checkNotNull(STATUS_TEMPORARY_CODE, "StatusCode.TEMPORARY constant not found");
Preconditions.checkNotNull(QUALITATIVE_VRAC_ID, "QualitativeValueId.VRAC constant not found");
+ Preconditions.checkNotNull(QUALITATIVE_RECTILINEAR_OPERATION_YES, "QualitativeValueId.RECTILINEAR_OPERATION_YES constant not found");
+ Preconditions.checkNotNull(QUALITATIVE_RECTILINEAR_OPERATION_NO, "QualitativeValueId.RECTILINEAR_OPERATION_NO constant not found");
+ Preconditions.checkNotNull(QUALITATIVE_HAUL_VALID_YES, "QualitativeValueId.HAUL_VALID_YES constant not found");
+ Preconditions.checkNotNull(QUALITATIVE_HAUL_VALID_NO, "QualitativeValueId.HAUL_VALID_NO constant not found");
+
}
}
Modified: trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-01-18 15:05:20 UTC (rev 224)
+++ trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-01-18 16:49:08 UTC (rev 225)
@@ -33,6 +33,7 @@
import fr.ifremer.adagio.core.dao.referential.QualityFlagDao;
import fr.ifremer.adagio.core.dao.referential.location.Location;
import fr.ifremer.adagio.core.dao.referential.location.LocationDao;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmDao;
import fr.ifremer.adagio.core.dao.referential.vessel.VesselDao;
import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
Modified: trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2013-01-18 15:05:20 UTC (rev 224)
+++ trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2013-01-18 16:49:08 UTC (rev 225)
@@ -24,43 +24,42 @@
* #L%
*/
+import java.sql.Timestamp;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.hibernate.type.IntegerType;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DataRetrievalFailureException;
+import org.springframework.stereotype.Service;
+
+import com.google.common.collect.Lists;
+
+import fr.ifremer.adagio.core.dao.data.measure.VesselUseMeasurement;
import fr.ifremer.adagio.core.dao.data.operation.FishingOperationDao;
import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.FishingTrip;
import fr.ifremer.adagio.core.dao.data.survey.scientificCruise.ScientificCruise;
import fr.ifremer.adagio.core.dao.data.survey.scientificCruise.ScientificCruiseDao;
import fr.ifremer.adagio.core.dao.data.vessel.feature.use.GearUseFeatures;
+import fr.ifremer.adagio.core.dao.data.vessel.feature.use.VesselUseFeatures;
+import fr.ifremer.adagio.core.dao.data.vessel.feature.use.isActive;
import fr.ifremer.adagio.core.dao.data.vessel.position.VesselPosition;
import fr.ifremer.adagio.core.dao.referential.QualityFlagDao;
import fr.ifremer.adagio.core.dao.referential.gear.Gear;
import fr.ifremer.adagio.core.dao.referential.gear.GearDao;
-import fr.ifremer.adagio.core.dao.referential.location.Location;
import fr.ifremer.adagio.core.dao.referential.location.LocationDao;
-import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus;
-import fr.ifremer.tutti.persistence.entities.data.Cruise;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmDao;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId;
+import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueDao;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
-import fr.ifremer.tutti.persistence.entities.data.Program;
-import fr.ifremer.tutti.persistence.entities.referential.Country;
-import fr.ifremer.tutti.persistence.entities.referential.Person;
-import fr.ifremer.tutti.persistence.entities.referential.Vessel;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.hibernate.type.IntegerType;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.dao.DataRetrievalFailureException;
-import org.springframework.stereotype.Service;
-
-import com.google.common.collect.Lists;
-
-import java.sql.Timestamp;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.annotation.Resource;
-
/**
* @author tchemit <chemit(a)codelutin.com>
* @since 0.3
@@ -89,7 +88,19 @@
@Resource(name = "qualityFlagDao")
protected QualityFlagDao qualityFlagDao;
+
+ @Resource(name = "pmfmDao")
+ protected PmfmDao pmfmDao;
+ @Resource(name = "qualitativeValueDao")
+ protected QualitativeValueDao qualitativeValueDao;
+
+ protected static Float DEFAULT_EMPTY_LATITUDE = 0.0001f;
+
+ protected static Float DEFAULT_EMPTY_LONGITUDE = 0.0001f;
+
+ protected static String FISHING_OPERATION_NAME_SEPARATOR = " - ";
+
protected Calendar calendar = new GregorianCalendar();
@Override
@@ -101,7 +112,11 @@
public FishingOperation getFishingOperation(String id) {
Object[] source = queryUnique(
"fishingOperation",
- "fishingOperationId", IntegerType.INSTANCE, Integer.valueOf(id));
+ "fishingOperationId", IntegerType.INSTANCE, Integer.valueOf(id),
+ "pmfmIdTrawlDistance", IntegerType.INSTANCE, enumeration.PMFM_ID_TRAWL_DISTANCE,
+ "pmfmIdRectilinearOperation", IntegerType.INSTANCE, enumeration.PMFM_ID_RECTILINEAR_OPERATION,
+ "pmfmIdHaulValid", IntegerType.INSTANCE, enumeration.PMFM_ID_HAUL_VALID
+ );
if (source == null) {
throw new DataRetrievalFailureException("Could not retrieve fishingOperation with id=" + id);
@@ -114,19 +129,36 @@
int colIndex=0;
- // Start date
- calendar.setTimeInMillis(((Timestamp) source[colIndex++]).getTime());
- int millisecond = calendar.get(Calendar.MILLISECOND);
- if (millisecond > 0) {
- // Recognize a fake date : see method beanToEntity()
- result.setGearShootingStartDate(null);
+ // Name = StationNumber - FishingOperationNumber - TrawlNetNumber
+ String name = (String)source[colIndex++];
+ if (name != null) {
+ String[] nameInfos = name.split(FISHING_OPERATION_NAME_SEPARATOR);
+ if (nameInfos.length == 3) {
+ // Station number
+ result.setStationNumber(nameInfos[0]);
+
+ // Fishing operation number
+ if (nameInfos[1].length() == 0) {
+ result.setFishingOperationNumber(null);
+ }
+ else {
+ result.setFishingOperationNumber(Integer.valueOf(nameInfos[1]));
+ }
+ // Trawl net number
+ if (nameInfos[2].length() == 0) {
+ result.setTrawlNetNumber(null);
+ }
+ else {
+ result.setTrawlNetNumber(Integer.valueOf(nameInfos[2]));
+ }
+ }
}
- else {
- result.setGearShootingStartDate(calendar.getTime());
- }
+ // Start date
+ result.setGearShootingStartDate(convertDatabase2UI((Timestamp) source[colIndex++]));
+
// End date
- result.setGearShootingEndDate((Date) source[colIndex++]);
+ result.setGearShootingEndDate(convertDatabase2UI((Timestamp) source[colIndex++]));
// Comment :
result.setComment((String) source[colIndex++]);
@@ -139,6 +171,40 @@
result.setGear(gear);
}
+ // Start position
+ VesselPosition startVesselPosition = (VesselPosition)source[colIndex++];
+ if (startVesselPosition == null) {
+ result.setGearShootingStartLatitude(null);
+ result.setGearShootingStartLongitude(null);
+ }
+ else {
+ result.setGearShootingStartLatitude(convertLatitude2UI(startVesselPosition.getLatitude()));
+ result.setGearShootingStartLongitude(convertLongitude2UI(startVesselPosition.getLongitude()));
+ }
+
+ // End position
+ VesselPosition endVesselPosition = (VesselPosition)source[colIndex++];
+ if (endVesselPosition == null) {
+ result.setGearShootingEndLatitude(null);
+ result.setGearShootingEndLongitude(null);
+ }
+ else {
+ result.setGearShootingEndLatitude(DEFAULT_EMPTY_LATITUDE.equals(endVesselPosition.getLatitude())?null:endVesselPosition.getLatitude());
+ result.setGearShootingEndLongitude(DEFAULT_EMPTY_LONGITUDE.equals(endVesselPosition.getLongitude())?null:endVesselPosition.getLongitude());
+ }
+
+ // Trawl distance
+ result.setTrawlDistance((Float)source[colIndex++]);
+
+ // Rectilinear operation ?
+ result.setFishingOperationRectiligne(enumeration.QUALITATIVE_RECTILINEAR_OPERATION_YES.equals((Integer)source[colIndex++]));
+
+ // Haul valid ?
+ Integer haulValidQualitativeId = (Integer)source[colIndex++];
+ if (haulValidQualitativeId != null) {
+ result.setFishingOperationValid((enumeration.QUALITATIVE_HAUL_VALID_YES.equals(haulValidQualitativeId)));
+ }
+
return result;
}
@@ -159,7 +225,8 @@
}
protected void beanToEntity(FishingOperation source, fr.ifremer.adagio.core.dao.data.operation.FishingOperation target, boolean copyIfNull) {
- //StringBuffer miscDataBuffer = new StringBuffer();
+
+ // Retrieve entities : FishingTrip and ScientificCruise
ScientificCruise scientificCruise = null;
FishingTrip fishingtrip = target.getFishingTrip();
if (fishingtrip == null) {
@@ -174,7 +241,7 @@
// Link to parent fishing trip
target.setFishingTrip(fishingtrip);
- // Store previous start/stop position
+ // Retrieve entities : VesselPosition (start and end)
VesselPosition startPosition = null;
VesselPosition endPosition = null;
if (target.getVesselPositions() != null) {
@@ -188,23 +255,74 @@
}
}
}
+
+ // Retrieve entities : Gear Use Features
+ GearUseFeatures gearUseFeature = null;
+ if (target.getGearUseFeatures() == null || target.getGearUseFeatures().size() == 0) {
+ gearUseFeature = GearUseFeatures.Factory.newInstance();
+ if (target.getGearUseFeatures() == null) {
+ target.setGearUseFeatures(Lists.newArrayList(gearUseFeature));
+ gearUseFeature.setOperation(target);
+ } else {
+ target.getGearUseFeatures().add(gearUseFeature);
+ gearUseFeature.setOperation(target);
+ }
+ } else {
+ gearUseFeature = target.getGearUseFeatures().iterator().next();
+ }
+ // Retrieve entities : Vessel Use Features
+ VesselUseFeatures vesselUseFeature = null;
+ if (target.getVesselUseFeatures() == null || target.getVesselUseFeatures().size() == 0) {
+ vesselUseFeature = VesselUseFeatures.Factory.newInstance();
+ if (target.getVesselUseFeatures() == null) {
+ target.setVesselUseFeatures(Lists.newArrayList(vesselUseFeature));
+ vesselUseFeature.setOperation(target);
+ } else {
+ target.getVesselUseFeatures().add(vesselUseFeature);
+ vesselUseFeature.setOperation(target);
+ }
+ } else {
+ vesselUseFeature = target.getVesselUseFeatures().iterator().next();
+ }
+
+ StringBuffer nameBuffer = new StringBuffer();
+
// StationNumber
if (copyIfNull && source.getStationNumber() == null) {
- // TODO BL : where to store station number
+ setVesselUseMeasurement(scientificCruise, vesselUseFeature, enumeration.PMFM_ID_STATION_NUMBER, null, "", null);
} else if (source.getStationNumber() != null) {
- //source.getStationNumber();
- // TODO BL : where to store station number
+ setVesselUseMeasurement(scientificCruise, vesselUseFeature, enumeration.PMFM_ID_STATION_NUMBER, null, source.getStationNumber(), null);
+ nameBuffer.append(source.getStationNumber());
}
// OP N°
if (copyIfNull && source.getFishingOperationNumber() == null) {
- // TODO BL : where to store OP N°
+ // Leave empty in the name buffer
+ if (nameBuffer.length() > 0) {
+ nameBuffer.append(FISHING_OPERATION_NAME_SEPARATOR);
+ }
} else if (source.getFishingOperationNumber() != null) {
- //source.getStationNumber();
+ if (nameBuffer.length() > 0) {
+ nameBuffer.append(FISHING_OPERATION_NAME_SEPARATOR);
+ }
+ // TODO BL : store OP N° ? or compute it ?
+ nameBuffer.append(source.getFishingOperationNumber());
+ }
+
+ // Trawl net number
+ if (copyIfNull && source.getTrawlNetNumber() == null) {
// TODO BL : where to store OP N°
+ } else if (source.getTrawlNetNumber() != null) {
+ if (nameBuffer.length() > 0) {
+ nameBuffer.append(FISHING_OPERATION_NAME_SEPARATOR);
+ }
+ // TODO BL : store in Gear Use Measurement ?
+ nameBuffer.append(source.getTrawlNetNumber());
}
+ target.setName(nameBuffer.toString());
+
// Start date :
if (copyIfNull && source.getGearShootingStartDate() == null) {
target.setStartDateTime(null);
@@ -228,7 +346,24 @@
target.setEndDateTime(calendar.getTime());
target.setFishingEndDateTime(calendar.getTime());
}
+
+ // Trawl distance
+ if (copyIfNull && source.getTrawlDistance() == null) {
+ removeVesselUseMeasurement(vesselUseFeature, enumeration.PMFM_ID_TRAWL_DISTANCE);
+ } else if (source.getTrawlDistance() != null) {
+ setVesselUseMeasurement(scientificCruise, vesselUseFeature, enumeration.PMFM_ID_TRAWL_DISTANCE, source.getTrawlDistance(), null, null);
+ }
+
+ // Rectilinear operation
+ setVesselUseMeasurement(scientificCruise, vesselUseFeature, enumeration.PMFM_ID_RECTILINEAR_OPERATION, null, null, source.isFishingOperationRectiligne()?enumeration.QUALITATIVE_RECTILINEAR_OPERATION_YES:enumeration.QUALITATIVE_RECTILINEAR_OPERATION_NO);
+ // Operation is valid ?
+ if (copyIfNull && source.getFishingOperationValid() == null) {
+ removeVesselUseMeasurement(vesselUseFeature, enumeration.PMFM_ID_HAUL_VALID);
+ } else if (source.getFishingOperationValid() != null) {
+ setVesselUseMeasurement(scientificCruise, vesselUseFeature, enumeration.PMFM_ID_HAUL_VALID, null, null, source.getFishingOperationValid().booleanValue()?enumeration.QUALITATIVE_HAUL_VALID_YES:enumeration.QUALITATIVE_HAUL_VALID_NO);
+ }
+
// Comment
if (copyIfNull && source.getComment() == null) {
target.setComments(null);
@@ -252,24 +387,30 @@
calendar.set(Calendar.MILLISECOND, 1);
target.setStartDateTime(calendar.getTime());
target.setFishingStartDateTime(calendar.getTime());
- }
+ }
- // Gear Use Features
- GearUseFeatures gearUseFeature = null;
- if (target.getGearUseFeatures() == null || target.getGearUseFeatures().size() == 0) {
- gearUseFeature = GearUseFeatures.Factory.newInstance();
- if (target.getGearUseFeatures() == null) {
- target.setGearUseFeatures(Lists.newArrayList(gearUseFeature));
- gearUseFeature.setOperation(target);
- } else {
- target.getGearUseFeatures().add(gearUseFeature);
- gearUseFeature.setOperation(target);
- }
- } else {
- gearUseFeature = target.getGearUseFeatures().iterator().next();
+ // VesselUseFeatures :
+ vesselUseFeature.setStartDate(target.getStartDateTime());
+ if (vesselUseFeature.getStartDate() == null) {
+ vesselUseFeature.setStartDate(scientificCruise.getDepartureDateTime());
}
+ vesselUseFeature.setEndDate(target.getEndDateTime());
+ vesselUseFeature.setVessel(target.getVessel());
+ vesselUseFeature.setProgram(scientificCruise.getProgram());
+ vesselUseFeature.setIsActive(isActive.ACTIVE.getValue());
+ if (vesselUseFeature.getCreationDate() == null) {
+ calendar.setTime(new Date());
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
+ calendar.set(Calendar.MINUTE, 0);
+ calendar.set(Calendar.SECOND, 0);
+ calendar.set(Calendar.MILLISECOND, 0);
+ vesselUseFeature.setCreationDate(calendar.getTime());
+ }
+ if (vesselUseFeature.getQualityFlag() == null) {
+ vesselUseFeature.setQualityFlag(qualityFlagDao.load(enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ }
- // Fill fishing trip with scientificCruise info:
+ // GearUseFeatures :
gearUseFeature.setStartDate(target.getStartDateTime());
if (gearUseFeature.getStartDate() == null) {
gearUseFeature.setStartDate(scientificCruise.getDepartureDateTime());
@@ -289,7 +430,7 @@
gearUseFeature.setQualityFlag(qualityFlagDao.load(enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
}
- // Gear
+ // GearUseFeatures.Gear
if (copyIfNull && source.getGear() == null) {
gearUseFeature.setGear(null);
} else if (source.getGear() != null && source.getGear().getId() != null) {
@@ -298,45 +439,212 @@
}
// Start position :
- if (startPosition == null) {
- startPosition = VesselPosition.Factory.newInstance();
- startPosition.setOperation(target);
- if (target.getVesselPositions() == null) {
- target.setVesselPositions(Lists.newArrayList(startPosition));
+ // If need to be store
+ if (source.getGearShootingEndLatitude() != null
+ || source.getGearShootingEndDate() != null
+ || source.getGearShootingEndLongitude() != null) {
+
+ if (startPosition == null) {
+ startPosition = VesselPosition.Factory.newInstance();
+ startPosition.setOperation(target);
+ if (target.getVesselPositions() == null) {
+ target.setVesselPositions(Lists.newArrayList(startPosition));
+ }
+ target.getVesselPositions().add(startPosition);
}
+ startPosition.setDateTime(target.getStartDateTime());
+ startPosition.setLatitude(source.getGearShootingStartLatitude()!=null?source.getGearShootingStartLatitude():DEFAULT_EMPTY_LATITUDE);
+ startPosition.setLongitude(source.getGearShootingStartLongitude()!=null?source.getGearShootingStartLongitude():DEFAULT_EMPTY_LONGITUDE);
+ startPosition.setVessel(target.getVessel());
+ startPosition.setProgram(scientificCruise.getProgram());
+ startPosition.setRecorderDepartment(scientificCruise.getRecorderDepartment());
+ startPosition.setQualityFlag(target.getQualityFlag());
}
- startPosition.setDateTime(target.getStartDateTime());
- startPosition.setLatitude(source.getGearShootingStartLatitude());
- startPosition.setLongitude(source.getGearShootingStartLongitude());
- startPosition.setVessel(target.getVessel());
- startPosition.setProgram(scientificCruise.getProgram());
- startPosition.setRecorderDepartment(scientificCruise.getRecorderDepartment());
- startPosition.setQualityFlag(target.getQualityFlag());
+
+ // If not need to be store, delete start position from list
+ else if (startPosition != null && target.getVesselPositions() != null) {
+ target.getVesselPositions().remove(startPosition);
+ }
- if (endPosition == null) {
- endPosition = VesselPosition.Factory.newInstance();
- endPosition.setOperation(target);
- target.getVesselPositions().add(endPosition);
+ // End position :
+ // If need to be store
+ if (source.getGearShootingEndLatitude() != null
+ || source.getGearShootingEndDate() != null
+ || source.getGearShootingEndLongitude() != null) {
+
+ if (endPosition == null) {
+ endPosition = VesselPosition.Factory.newInstance();
+ endPosition.setOperation(target);
+ target.getVesselPositions().add(endPosition);
+ }
+ Date endDateTime = convertUI2DatabaseMandatoryDate(target.getEndDateTime(), startPosition.getDateTime(), true);
+ endPosition.setDateTime(endDateTime);
+ if (endDateTime.equals(target.getEndDateTime()) == false) {
+ // To link position with the operation end, Allegro need to have exactly the same dates
+ target.setEndDateTime(endDateTime);
+ target.setFishingEndDateTime(endDateTime);
+ }
+ endPosition.setLatitude(convertUI2DatabaseMandatoryLatitude(source.getGearShootingEndLatitude()));
+ endPosition.setLongitude(convertUI2DatabaseMandatoryLatitude(source.getGearShootingEndLongitude()));
+ endPosition.setVessel(target.getVessel());
+ endPosition.setProgram(scientificCruise.getProgram());
+ endPosition.setRecorderDepartment(scientificCruise.getRecorderDepartment());
+ endPosition.setQualityFlag(target.getQualityFlag());
}
- endPosition.setDateTime(target.getEndDateTime());
- if (endPosition.getDateTime() == null) {
- calendar.setTime(startPosition.getDateTime());
- calendar.set(Calendar.MILLISECOND, 1);
- endPosition.setDateTime(calendar.getTime());
+
+ // If not need to be store, delete end position from list
+ else if (endPosition != null && target.getVesselPositions() != null) {
+ target.getVesselPositions().remove(endPosition);
}
- endPosition.setLatitude(source.getGearShootingEndLatitude());
- endPosition.setLongitude(source.getGearShootingEndLongitude());
- endPosition.setVessel(target.getVessel());
- endPosition.setProgram(scientificCruise.getProgram());
- endPosition.setRecorderDepartment(scientificCruise.getRecorderDepartment());
- endPosition.setQualityFlag(target.getQualityFlag());
- // Save miscDataBuffer into comments
- //gearUseFeature.setComments(miscDataBuffer.toString());
}
@Override
public FishingOperation saveFishingOperation(FishingOperation bean) {
return null;
}
+
+ /**
+ * Test if the date has millisecond set. This yes, return null, then return the date itself.
+ * @param databaseValue the date stored in the database (could be fake date, not null only because of database constraints)
+ * @return null if the date is a fake date
+ */
+ protected Date convertDatabase2UI(Timestamp databaseValue) {
+ if (databaseValue == null) {
+ return null;
+ }
+ calendar.setTimeInMillis(databaseValue.getTime());
+ if (calendar.get(Calendar.MILLISECOND) != 0) {
+ return null;
+ }
+ return calendar.getTime();
+ }
+
+ /**
+ * Convert a UI date, when the database value is mandatory.
+ * If the given value is null, use the default date, then set millisecond to '1', to be able to retrieve the null value later.
+ * @param uiValue the date used in the UI
+ * @return null if the date is a fake date
+ */
+ protected Date convertUI2DatabaseMandatoryDate(Date uiValue, Date defaultNotEmptyDate, boolean addOneSecondToDefaultDate) {
+ // if ui date is not empty, then use it (but reset millisecond)
+ if (uiValue != null) {
+ calendar.setTime(uiValue);
+ calendar.set(Calendar.MILLISECOND, 0);
+ return calendar.getTime();
+ }
+ if (defaultNotEmptyDate == null) {
+ throw new IllegalArgumentException("'defaultNotEmptyDate' could not be null.");
+ }
+
+ calendar.setTime(defaultNotEmptyDate);
+ if (addOneSecondToDefaultDate) {
+ calendar.add(Calendar.SECOND, 1);
+ }
+ calendar.set(Calendar.MILLISECOND, 1);
+ return calendar.getTime();
+ }
+
+ /**
+ * Test if the latitude is null, and return a default value if yes
+ * @param databaseValue the latitude used in UI (could be null)
+ * @return null the latitude to store in database (could not be null)
+ */
+ protected Float convertUI2DatabaseMandatoryLatitude(Float databaseValue) {
+ return (databaseValue != null)?databaseValue:DEFAULT_EMPTY_LATITUDE;
+ }
+
+ /**
+ * Test if the latitude is a fake value. This yes, return null, then return the given value.
+ * @param databaseValue the latitude stored in the database (could be fake date, not null only because of database constraints)
+ * @return null if the latitude is fake
+ */
+ protected Float convertLatitude2UI(Float databaseValue) {
+ return DEFAULT_EMPTY_LATITUDE.equals(databaseValue)?null:databaseValue;
+ }
+
+ /**
+ * Test if the latitude is null, and return a default value if yes
+ * @param databaseValue the latitude used in UI (could be null)
+ * @return null the latitude to store in database (could not be null)
+ */
+ protected Float convertUI2DatabaseMandatoryLongitude(Float databaseValue) {
+ return (databaseValue != null)?databaseValue:DEFAULT_EMPTY_LONGITUDE;
+ }
+
+ /**
+ * Test if the longitude is a fake value. This yes, return null, then return the given value.
+ * @param databaseValue the longitude stored in the database (could be fake date, not null only because of database constraints)
+ * @return null if the longitude is fake
+ */
+ protected Float convertLongitude2UI(Float databaseValue) {
+ return DEFAULT_EMPTY_LONGITUDE.equals(databaseValue)?null:databaseValue;
+ }
+
+ protected Integer getPmfmId() {
+ // TODO BLA
+ return null;
+ }
+
+ protected VesselUseMeasurement getVesselUseMeasurement(ScientificCruise scientificCruise, VesselUseFeatures vesselUseFeatures,
+ Integer pmfmId, boolean createIfNotExists) {
+ VesselUseMeasurement vesselUseMeasurement = null;
+ if (vesselUseFeatures.getVesselUseMeasurements() != null) {
+ for (Iterator iterator = vesselUseFeatures.getVesselUseMeasurements().iterator(); iterator.hasNext();) {
+ VesselUseMeasurement vum = (VesselUseMeasurement) iterator.next();
+ if (pmfmId.equals(vum.getPmfm().getId())) {
+ vesselUseMeasurement = vum;
+ break;
+ }
+ }
+ }
+ if (vesselUseMeasurement == null) {
+ if (!createIfNotExists) {
+ return null;
+ }
+ vesselUseMeasurement = VesselUseMeasurement.Factory.newInstance();
+ vesselUseMeasurement.setVesselUseFeatures(vesselUseFeatures);
+ if (vesselUseFeatures.getVesselUseMeasurements() == null) {
+ vesselUseFeatures.setVesselUseMeasurements(Lists.newArrayList(vesselUseMeasurement));
+ }
+ else {
+ vesselUseFeatures.getVesselUseMeasurements().add(vesselUseMeasurement);
+ }
+ vesselUseMeasurement.setQualityFlag(qualityFlagDao.load(enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ vesselUseMeasurement.setDepartment(scientificCruise.getRecorderDepartment());
+ vesselUseMeasurement.setPmfm(pmfmDao.load(pmfmId));
+ }
+
+ return vesselUseMeasurement;
+ }
+
+ protected void removeVesselUseMeasurement(VesselUseFeatures vesselUseFeatures,
+ Integer pmfmId) {
+ VesselUseMeasurement vesselUseMeasurement = getVesselUseMeasurement(null, vesselUseFeatures, pmfmId, false);
+ if (vesselUseMeasurement == null) {
+ return;
+ }
+ vesselUseFeatures.getVesselUseMeasurements().remove(vesselUseMeasurement);
+ // TOBO BLa : vérifier qu'il ne faut pas dao.delete() en plus
+ }
+
+ protected VesselUseMeasurement setVesselUseMeasurement(ScientificCruise scientificCruise, VesselUseFeatures vesselUseFeatures,
+ Integer pmfmId,
+ Float numericalValue,
+ String alphanumericalValue,
+ Integer qualitativevalueId) {
+ VesselUseMeasurement vesselUseMeasurement = getVesselUseMeasurement(scientificCruise, vesselUseFeatures, pmfmId, true);
+
+ if (alphanumericalValue != null) {
+ vesselUseMeasurement.setAlphanumericalValue(alphanumericalValue);
+ }
+ else if (numericalValue != null) {
+ vesselUseMeasurement.setNumericalValue(numericalValue);
+ }
+ else if (qualitativevalueId != null) {
+ vesselUseMeasurement.setQualitativeValue(qualitativeValueDao.load(qualitativevalueId));
+ }
+
+ return vesselUseMeasurement;
+ }
}
Modified: trunk/tutti-persistence-adagio/src/main/resources/queries-override.hbm.xml
===================================================================
--- trunk/tutti-persistence-adagio/src/main/resources/queries-override.hbm.xml 2013-01-18 15:05:20 UTC (rev 224)
+++ trunk/tutti-persistence-adagio/src/main/resources/queries-override.hbm.xml 2013-01-18 16:49:08 UTC (rev 225)
@@ -165,17 +165,27 @@
<query cacheable="true" name="fishingOperation">
<![CDATA[
SELECT
+ o.name as name,
o.startDateTime as startDateTime,
o.endDateTime as endDateTime,
o.comments as comments,
- guf.gear.id as gearId
+ guf.gear.id as gearId,
+ (select vp_start from VesselPositionImpl vp_start where vp_start.operation.id = o.id and vp_start.dateTime = o.startDateTime) as startVesselPosition,
+ (select vp_end from VesselPositionImpl vp_end where vp_end.operation.id = o.id and vp_end.dateTime = o.endDateTime) as endVesselPosition,
+ (select vum.numericalValue from VesselUseMeasurementImpl vum where vum.vesselUseFeatures.id=vuf.id and vum.pmfm.id=:pmfmIdTrawlDistance) as trawlDistance,
+ (select vum2.qualitativeValue.id from VesselUseMeasurementImpl vum2 where vum2.vesselUseFeatures.id=vuf.id and vum2.pmfm.id=:pmfmIdRectilinearOperation) as rectilinearQualitativeId,
+ (select vum3.qualitativeValue.id from VesselUseMeasurementImpl vum3 where vum3.vesselUseFeatures.id=vuf.id and vum3.pmfm.id=:pmfmIdHaulValid) as haulValidQualitativeId
FROM
FishingOperationImpl o
INNER JOIN o.gearUseFeatures guf
+ INNER JOIN o.vesselUseFeatures vuf
WHERE
o.id=:fishingOperationId
]]>
<query-param name="fishingOperationId" type="java.lang.Integer"/>
+ <query-param name="pmfmIdTrawlDistance" type="java.lang.Integer"/>
+ <query-param name="pmfmIdRectilinearOperation" type="java.lang.Integer"/>
+ <query-param name="pmfmIdHaulValid" type="java.lang.Integer"/>
</query>
Modified: trunk/tutti-persistence-adagio/src/main/resources/tutti-db-enumerations.properties
===================================================================
--- trunk/tutti-persistence-adagio/src/main/resources/tutti-db-enumerations.properties 2013-01-18 15:05:20 UTC (rev 224)
+++ trunk/tutti-persistence-adagio/src/main/resources/tutti-db-enumerations.properties 2013-01-18 16:49:08 UTC (rev 225)
@@ -326,9 +326,20 @@
PmfmId.MACRO_WASTE_CATEGORY=1181
#TODO A créér
PmfmId.MACRO_WASTE_SIZE_CATEGORY=1181
+# TODO A creer (dans les enumerations Allegro)
+PmfmId.STATION_NUMBER=1243
+# TODO A creer (dans les enumerations Allegro)
+PmfmId.TRAWL_DISTANCE=113
+# TODO A creer (dans les enumerations Allegro)
+PmfmId.HAUL_VALID=1163
+QualitativeValueId.HAUL_VALID_YES=1575
+QualitativeValueId.HAUL_VALID_NO=1576
+# TODO A creer (dans les enumerations Allegro)
+PmfmId.RECTILINEAR_OPERATION=192
+QualitativeValueId.RECTILINEAR_OPERATION_YES=277
+# TODO A creer (dans les enumerations Allegro)
+QualitativeValueId.RECTILINEAR_OPERATION_NO=278
-#TODO A creer (20=observateur volant, 95=Administrateur SIH)
-# L'avantage du 20 est qu'il est inactif (=20), donc plus facilement detectable
+#TODO A creer (dans les enumerations Allegro)
+# (20=observateur volant, 95=Administrateur SIH) -> L'avantage du 20 est qu'il est inactif (=20), donc plus facilement detectable
PersonId.UNKNOWN_RECORDER_PERSON=20
-
-
Modified: trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceTest.java
===================================================================
--- trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceTest.java 2013-01-18 15:05:20 UTC (rev 224)
+++ trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceTest.java 2013-01-18 16:49:08 UTC (rev 225)
@@ -85,7 +85,9 @@
@Test
public void createFishingOperation(/*FishingOperation bean*/) {
Calendar calendar = new GregorianCalendar();
-
+ FishingOperation reloadedFishingOperation = null;
+ FishingOperation createdFishingOperation = null;
+
// Duplicate an existing cruise, to attach new fishing operations
cruise = cruiseService.getCruise(dbResource.getFixtures().cruiseId());
cruise.setId(null);
@@ -98,41 +100,60 @@
// Create new fishing operation :
FishingOperation fishingOperation = new FishingOperation();
+ // -----------------------------------------------------------------------------
+ // 1. Test with only mandatory properties
+ // -----------------------------------------------------------------------------
+
// Set properties (with optional value to null)
fishingOperation.setCruise(cruise);
- fishingOperation.setStationNumber("1");
+ fishingOperation.setStationNumber("STA1");
fishingOperation.setFishingOperationNumber(new Integer(1));
+ fishingOperation.setTrawlNetNumber(new Integer(1));
fishingOperation.setGearShootingStartDate(null);
fishingOperation.setGearShootingEndDate(null);
fishingOperation.setGear(null);
+ fishingOperation.setGearShootingStartLatitude(33.2541f);
+ fishingOperation.setComment(null);
// Store fishing operation into database :
- FishingOperation createdFishingOperation = service.createFishingOperation(fishingOperation);
+ /*createdFishingOperation = service.createFishingOperation(fishingOperation);
assertNotNull("Fishing operation ID must not be null after creation in database", createdFishingOperation);
assertNotNull(createdFishingOperation.getId());
- // TODO BLA : add asserts on other properties
// Trying to relaod this fishing operation
- FishingOperation reloadedFishingOperation = service.getFishingOperation(createdFishingOperation.getId());
+ reloadedFishingOperation = service.getFishingOperation(createdFishingOperation.getId());
assertNotNull(reloadedFishingOperation);
assertNull(reloadedFishingOperation.getGearShootingStartDate());
-
+ */
+
+ // -----------------------------------------------------------------------------
+ // 2. Test with all properties set
+ // -----------------------------------------------------------------------------
// Set properties
fishingOperation.setId(null);
- fishingOperation.setStationNumber("2");
+ fishingOperation.setStationNumber("STA2");
fishingOperation.setFishingOperationNumber(new Integer(2));
+ fishingOperation.setTrawlNetNumber(new Integer(2));
calendar.setTime(new Date());
calendar.set(Calendar.HOUR_OF_DAY, 1);
+ calendar.set(Calendar.MILLISECOND, 99);
fishingOperation.setGearShootingStartDate(calendar.getTime());
calendar.setTime(new Date());
calendar.set(Calendar.HOUR_OF_DAY, 10);
+ calendar.set(Calendar.MILLISECOND, 99);
fishingOperation.setGearShootingEndDate(calendar.getTime());
-
+
fishingOperation.setGearShootingStartLatitude(33.2541f);
fishingOperation.setGearShootingStartLongitude(-5.514f);
fishingOperation.setGearShootingEndLatitude(33.7441f);
fishingOperation.setGearShootingEndLongitude(-5.597f);
+
+ fishingOperation.setTrawlDistance(100.12345f);
+ fishingOperation.setFishingOperationRectiligne(true);
+ fishingOperation.setFishingOperationValid(Boolean.TRUE);
+ fishingOperation.setComment("Unit test createFishingOperation() - Part n°2 : All properties set");
+
List<Gear> gears = referentialService.getAllFishingGear();
assertNotNull(gears);
assertTrue(gears.size() > 0);
@@ -142,12 +163,68 @@
createdFishingOperation = service.createFishingOperation(fishingOperation);
assertNotNull("Fishing operation ID must not be null after creation in database", createdFishingOperation);
assertNotNull(createdFishingOperation.getId());
- assertNotNull(createdFishingOperation.getGear());
- //assertEquals(fishingOperation.getGearShootingStartLatitude(), createdFishingOperation.getGearShootingStartLatitude());
- //assertEquals(fishingOperation.getGearShootingStartLongitude(), createdFishingOperation.getGearShootingStartLongitude());
- //assertEquals(fishingOperation.getGearShootingEndLatitude(), createdFishingOperation.getGearShootingEndLatitude());
- //assertEquals(fishingOperation.getGearShootingEndLongitude(), createdFishingOperation.getGearShootingEndLongitude());
+ reloadedFishingOperation = service.getFishingOperation(createdFishingOperation.getId());
+ assertNotNull(reloadedFishingOperation.getGear());
+ assertEquals(fishingOperation.getStationNumber(), reloadedFishingOperation.getStationNumber());
+ assertEquals(fishingOperation.getFishingOperationNumber(), reloadedFishingOperation.getFishingOperationNumber());
+ assertEquals(fishingOperation.getTrawlNetNumber(), reloadedFishingOperation.getTrawlNetNumber());
+ assertNotNull(reloadedFishingOperation.getGearShootingStartDate());
+ calendar.setTime(fishingOperation.getGearShootingStartDate());
+ calendar.set(Calendar.MILLISECOND, 0);
+ assertEquals(calendar.getTime(), reloadedFishingOperation.getGearShootingStartDate());
+ assertEquals(fishingOperation.getGearShootingStartLatitude(), reloadedFishingOperation.getGearShootingStartLatitude());
+ assertEquals(fishingOperation.getGearShootingStartLongitude(), reloadedFishingOperation.getGearShootingStartLongitude());
+ assertNotNull(reloadedFishingOperation.getGearShootingEndDate());
+ calendar.setTime(fishingOperation.getGearShootingEndDate());
+ calendar.set(Calendar.MILLISECOND, 0);
+ assertEquals(calendar.getTime(), reloadedFishingOperation.getGearShootingEndDate());
+ assertEquals(fishingOperation.getGearShootingEndLatitude(), reloadedFishingOperation.getGearShootingEndLatitude());
+ assertEquals(fishingOperation.getGearShootingEndLongitude(), reloadedFishingOperation.getGearShootingEndLongitude());
+ assertEquals(fishingOperation.getTrawlDistance(), reloadedFishingOperation.getTrawlDistance());
+ assertEquals(fishingOperation.isFishingOperationRectiligne(), reloadedFishingOperation.isFishingOperationRectiligne());
+ assertEquals(fishingOperation.getFishingOperationValid(), reloadedFishingOperation.getFishingOperationValid());
+ assertEquals(fishingOperation.getComment(), reloadedFishingOperation.getComment());
+
+ // -----------------------------------------------------------------------------
+ // 3. Test :
+ // - startDate and startLat filled, but empty endLong
+ // - endLat and endLong filled but empty endDate
+ // - isFishingOperationRectiligne = false
+ // - trawlDistance empty
+ // - fishingOperationValid = false
+ // -----------------------------------------------------------------------------
+ fishingOperation.setId(null);
+ fishingOperation.setStationNumber("STA3");
+ fishingOperation.setFishingOperationNumber(new Integer(3));
+ fishingOperation.setTrawlNetNumber(new Integer(3));
+ fishingOperation.setGearShootingStartLongitude(null);
+ fishingOperation.setGearShootingEndDate(null);
+ fishingOperation.setTrawlDistance(null);
+ fishingOperation.setFishingOperationRectiligne(false);
+ fishingOperation.setFishingOperationValid(false);
+ fishingOperation.setComment("Unit test createFishingOperation() - Part n°3 :\n-startDate and startLat filled, but empty endLong\n- endLat and endLong filled but empty endDate");
+ createdFishingOperation = service.createFishingOperation(fishingOperation);
+ reloadedFishingOperation = service.getFishingOperation(createdFishingOperation.getId());
+ assertEquals(fishingOperation.getGearShootingStartLatitude(), reloadedFishingOperation.getGearShootingStartLatitude());
+ assertEquals(fishingOperation.getGearShootingStartLongitude(), reloadedFishingOperation.getGearShootingStartLongitude());
+ assertNull(reloadedFishingOperation.getGearShootingEndDate());
+ assertEquals(fishingOperation.getGearShootingEndLatitude(), reloadedFishingOperation.getGearShootingEndLatitude());
+ assertEquals(fishingOperation.getGearShootingEndLongitude(), reloadedFishingOperation.getGearShootingEndLongitude());
+ assertEquals(fishingOperation.getTrawlDistance(), reloadedFishingOperation.getTrawlDistance());
+ assertEquals(fishingOperation.isFishingOperationRectiligne(), reloadedFishingOperation.isFishingOperationRectiligne());
+ assertEquals(fishingOperation.getFishingOperationValid(), reloadedFishingOperation.getFishingOperationValid());
+
+ // -----------------------------------------------------------------------------
+ // 4. Test :
+ // -
+ // -----------------------------------------------------------------------------
+ fishingOperation.setId(null);
+ //createdFishingOperation = service.createFishingOperation(fishingOperation);
+ //reloadedFishingOperation = service.getFishingOperation(createdFishingOperation.getId());
+ //assertEquals(fishingOperation.getGearShootingStartLatitude(), reloadedFishingOperation.getGearShootingStartLatitude());
+ //assertEquals(fishingOperation.getGearShootingStartLongitude(), reloadedFishingOperation.getGearShootingStartLongitude());
+
}
@Test
1
0
r224 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content/cruise java/fr/ifremer/tutti/ui/swing/content/operation java/fr/ifremer/tutti/ui/swing/content/program java/fr/ifremer/tutti/ui/swing/content/protocol resources/i18n
by kmorin@users.forge.codelutin.com 18 Jan '13
by kmorin@users.forge.codelutin.com 18 Jan '13
18 Jan '13
Author: kmorin
Date: 2013-01-18 16:05:20 +0100 (Fri, 18 Jan 2013)
New Revision: 224
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/224
Log:
- debug comment field layout
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-01-18 14:55:04 UTC (rev 223)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-01-18 15:05:20 UTC (rev 224)
@@ -178,8 +178,7 @@
}
#commentPane {
- columnHeaderView: {new JLabel(_("tutti.label.comment"))};
- minimumSize: {new Dimension(10,50)};
+ border: {BorderFactory.createTitledBorder(_("tutti.label.comment"))};
}
#commentField {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-01-18 14:55:04 UTC (rev 223)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-01-18 15:05:20 UTC (rev 224)
@@ -394,8 +394,7 @@
}
#commentPane {
- columnHeaderView: {new JLabel(_("tutti.label.comment"))};
- /*minimumSize: {new Dimension(10,50)};*/
+ border: {BorderFactory.createTitledBorder(_("tutti.label.comment"))};
}
#commentField {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-01-18 14:55:04 UTC (rev 223)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-01-18 15:05:20 UTC (rev 224)
@@ -85,7 +85,7 @@
<field name='fishingOperationNumber'
component='fishingOperationNumberField'/>
<field name='gearShootingStartDate' component='gearShootingStartDateField'/>
- <field name='comment' component='commentField'/>
+ <field name='comment' component='commentPane'/>
<field name='saisisseur' component='saisisseurList'/>
<field name='vessel' component='vesselComboBox'/>
<field name='gear' component='gearComboBox'/>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-01-18 14:55:04 UTC (rev 223)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-01-18 15:05:20 UTC (rev 224)
@@ -158,21 +158,14 @@
}
});
-// context.getConfig().
-// model.addPropertyChangeListener(EditFishingOperationUIModel.PROPERTY_USE_SEXAGECIMAL_FORMAT, new PropertyChangeListener() {
-// @Override
-// public void propertyChange(PropertyChangeEvent evt) {
-// boolean useSexagecimalFormat = (Boolean) evt.getNewValue();
-// log.info("property PROPERTY_USE_SEXAGECIMAL_FORMAT changed " + useSexagecimalFormat);
-//
-// if (useSexagecimalFormat) {
-// getModel().convertGearShootingCoordinatesDDToDMS();
-// } else {
-// getModel().convertGearShootingCoordinatesDMSToDD();
-// }
-// }
-// });
+ getContext().addPropertyChangeListener(TuttiUIContext.PROPERTY_VALIDATION_CONTEXT, new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ getModel().setValidationContext((String) evt.getNewValue());
+ }
+ });
+
ui.setContextValue(model);
fishingOperationMonitor.setBean(model);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css 2013-01-18 14:55:04 UTC (rev 223)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css 2013-01-18 15:05:20 UTC (rev 224)
@@ -42,8 +42,7 @@
}
#commentPane {
- columnHeaderView: {new JLabel(_("tutti.label.comment"))};
- minimumSize: {new Dimension(10,50)};
+ border: {BorderFactory.createTitledBorder(_("tutti.label.comment"))};
}
#commentField {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx 2013-01-18 14:55:04 UTC (rev 223)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx 2013-01-18 15:05:20 UTC (rev 224)
@@ -67,7 +67,7 @@
uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>
<field name='name' component='nameField'/>
<field name='zone' component='zoneComboBox'/>
- <field name='comment' component='commentField'/>
+ <field name='comment' component='commentPane'/>
</BeanValidator>
<Table id='form' fill='both'>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 2013-01-18 14:55:04 UTC (rev 223)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 2013-01-18 15:05:20 UTC (rev 224)
@@ -44,8 +44,7 @@
}
#commentPane {
- columnHeaderView: {new JLabel(_("tutti.label.comment"))};
- minimumSize: {new Dimension(10,50)};
+ border: {BorderFactory.createTitledBorder(_("tutti.label.comment"))};
}
#commentField {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-01-18 14:55:04 UTC (rev 223)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-01-18 15:05:20 UTC (rev 224)
@@ -73,7 +73,7 @@
<BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>
<field name='name' component='nameField'/>
- <field name='comment' component='commentField'/>
+ <field name='comment' component='commentPane'/>
</BeanValidator>
<JPopupMenu id='tablePopup'>
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-18 14:55:04 UTC (rev 223)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-18 15:05:20 UTC (rev 224)
@@ -14,7 +14,7 @@
tutti.action.edit.protocol.tip=Éditer le protocole sélectionné
tutti.action.editCatches=Saisir les captures
tutti.action.editCatches.tip=Saisir des captures
-tutti.action.editCruise=Campagne
+tutti.action.editCruise=Éditer la campagne
tutti.action.editCruise.tip=Éditer la campagne sélectionnée
tutti.action.editProgram=Programme
tutti.action.editProgram.tip=Éditer le programme sélectionné
@@ -46,7 +46,7 @@
tutti.action.removeSpeciesSubBatch.tip=Supprimer tous les lots fils du lot sélectionné
tutti.action.reset.fishingOperationValidState=Réinitialiser
tutti.action.save=Enregistrer
-tutti.action.selectCruise=Campagne
+tutti.action.selectCruise=Sélectionner une campagne
tutti.action.selectCruise.tip=Sélectionner la campagne à utiliser
tutti.action.site=Site
tutti.action.site.tip=Accéder au site du projet Tutti
1
0