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
January 2013
- 4 participants
- 143 discussions
r209 - in trunk: . tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service tutti-persistence-adagio/src/main/resources tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service
by blavenier@users.forge.codelutin.com 15 Jan '13
by blavenier@users.forge.codelutin.com 15 Jan '13
15 Jan '13
Author: blavenier
Date: 2013-01-15 17:11:50 +0100 (Tue, 15 Jan 2013)
New Revision: 209
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/209
Log:
ref refs #1920: [Persistence] Adagio Donn?\195?\169es th?\195?\169matiques
- Add implementation of CruisePersistenceServiceImpl.saveCruise()
Modified:
trunk/
trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java
trunk/tutti-persistence-adagio/src/main/resources/queries-override.hbm.xml
trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceTest.java
Property changes on: trunk
___________________________________________________________________
Modified: svn:ignore
- target
.idea
*.ipr
*.iws
*.iml
*.log
+ target
.idea
*.ipr
*.iws
*.iml
*.log
*.bat
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-15 11:55:11 UTC (rev 208)
+++ trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-01-15 16:11:50 UTC (rev 209)
@@ -52,6 +52,7 @@
import javax.annotation.Resource;
import java.sql.Timestamp;
+import java.text.MessageFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
@@ -219,16 +220,13 @@
// get secondary gears from fishingOperation (first load from Allegro DB only)
if (result.getGear() == null) {
Iterator<Object[]> list = queryList(
- "cruiseGears",
- "cruiseId", StringType.INSTANCE, id);
+ "allCruiseGears",
+ "cruiseId", IntegerType.INSTANCE, Integer.valueOf(id));
List<Gear> gears = Lists.newArrayList();
while (list.hasNext()) {
- Object[] zoneSource = list.next();
- Gear target = new Gear();
- target.setId(String.valueOf(zoneSource[0]));
- target.setLabel((String) zoneSource[1]);
- target.setName((String) zoneSource[2]);
+ Object[] gearRow = list.next();
+ Gear target = referentielService.getGear((Integer)gearRow[0]);
gears.add(target);
}
result.setGear(gears);
@@ -250,7 +248,16 @@
@Transactional(readOnly = false)
@Override
public Cruise saveCruise(Cruise bean) {
- throw new UnsupportedOperationException();
+ if (bean.getId() == null || bean.getId().isEmpty()) {
+ throw new IllegalArgumentException("Cruise 'id' must not be null or empty to be saved.");
+ }
+ ScientificCruise scientificCruise = scientificCruiseDao.load(Integer.valueOf(bean.getId()));
+ if (scientificCruise == null) {
+ throw new DataRetrievalFailureException("Could not retrieve cruise with id=" + bean.getId());
+ }
+
+ cruiseToEntity(bean, scientificCruise, true);
+ return bean;
}
protected void cruiseToEntity(Cruise source, ScientificCruise target, boolean copyIfNull) {
@@ -362,6 +369,9 @@
fishingTrip.setScientificCruise(target);
}
}
+ else {
+ fishingTrip = target.getFishingTrips().iterator().next();
+ }
// Fill fishing trip with scientificCruise info:
fishingTrip.setDepartureDateTime(target.getDepartureDateTime());
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-15 11:55:11 UTC (rev 208)
+++ trunk/tutti-persistence-adagio/src/main/resources/queries-override.hbm.xml 2013-01-15 16:11:50 UTC (rev 209)
@@ -129,7 +129,8 @@
<query cacheable="true" name="allCruiseGears">
<![CDATA[
SELECT
- gpf.gear.id AS gearId
+ gpf.gear.id AS gearId,
+ count(o.id) as operationCount
FROM
ScientificCruiseImpl sc
JOIN sc.fishingTrips ft
@@ -137,6 +138,9 @@
LEFT OUTER JOIN gpf.operations o
WHERE
sc.id = :cruiseId
+ GROUP BY
+ gpf.gear.id
+ ORDER BY count(o.id) DESC
]]>
<query-param name="cruiseId" type="java.lang.Integer"/>
</query>
Modified: trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceTest.java
===================================================================
--- trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceTest.java 2013-01-15 11:55:11 UTC (rev 208)
+++ trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceTest.java 2013-01-15 16:11:50 UTC (rev 209)
@@ -89,7 +89,6 @@
Assert.assertNotNull(result);
}
- @Ignore
@Test
public void createCruise(/*Cruise bean*/) {
String programCode = dbResource.getFixtures().programCode();
@@ -159,7 +158,6 @@
Cruise reloadedCruise = service.getCruise(createdCruise.getId());
- //TODO-TC This is not working, reloadedCruise is not null,...
assertEquals(createdCruise.getBeginDate(), reloadedCruise.getBeginDate());
assertEquals(createdCruise.getEndDate(), reloadedCruise.getEndDate());
assertEquals(createdCruise.getComment(), reloadedCruise.getComment());
@@ -176,6 +174,19 @@
@Test
public void saveCruise(/*Cruise bean*/) {
+ Cruise cruise = service.getCruise(dbResource.getFixtures().cruiseId());
+
+ cruise.setId(null);
+ cruise = service.createCruise(cruise);
+
+ cruise.setName("unit-TEST");
+ Cruise savedCruise = service.saveCruise(cruise);
+ assertNotNull(savedCruise);
+ assertEquals(cruise.getId(), savedCruise.getId());
+ assertEquals(cruise.getName(), savedCruise.getName());
+ assertEquals(cruise.getComment(), savedCruise.getComment());
+ assertNotNull(cruise.getGear());
+ assertEquals(cruise.getGear().size(), savedCruise.getGear().size());
}
}
1
0
r208 - in trunk: . tutti-persistence tutti-persistence-adagio tutti-persistence-dev tutti-service tutti-ui-swing
by maven-release@users.forge.codelutin.com 15 Jan '13
by maven-release@users.forge.codelutin.com 15 Jan '13
15 Jan '13
Author: maven-release
Date: 2013-01-15 12:55:11 +0100 (Tue, 15 Jan 2013)
New Revision: 208
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/208
Log:
[maven-release-plugin] prepare for next development iteration
Modified:
trunk/pom.xml
trunk/tutti-persistence-adagio/pom.xml
trunk/tutti-persistence-dev/pom.xml
trunk/tutti-persistence/pom.xml
trunk/tutti-service/pom.xml
trunk/tutti-ui-swing/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-01-15 11:55:03 UTC (rev 207)
+++ trunk/pom.xml 2013-01-15 11:55:11 UTC (rev 208)
@@ -33,7 +33,7 @@
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>0.3</version>
+ <version>0.4-SNAPSHOT</version>
<modules>
<module>tutti-persistence</module>
@@ -91,12 +91,12 @@
</developers>
<scm>
- <url>http://svn.forge.codelutin.com/svn/tutti/tags/tutti-0.3</url>
+ <url>http://svn.forge.codelutin.com/svn/tutti/trunk</url>
<connection>
- scm:svn:http://svn.forge.codelutin.com/svn/tutti/tags/tutti-0.3
+ scm:svn:http://svn.forge.codelutin.com/svn/tutti/trunk
</connection>
<developerConnection>
- scm:svn:http://svn.forge.codelutin.com/svn/tutti/tags/tutti-0.3
+ scm:svn:http://svn.forge.codelutin.com/svn/tutti/trunk
</developerConnection>
</scm>
Modified: trunk/tutti-persistence/pom.xml
===================================================================
--- trunk/tutti-persistence/pom.xml 2013-01-15 11:55:03 UTC (rev 207)
+++ trunk/tutti-persistence/pom.xml 2013-01-15 11:55:11 UTC (rev 208)
@@ -28,7 +28,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>0.3</version>
+ <version>0.4-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
Modified: trunk/tutti-persistence-adagio/pom.xml
===================================================================
--- trunk/tutti-persistence-adagio/pom.xml 2013-01-15 11:55:03 UTC (rev 207)
+++ trunk/tutti-persistence-adagio/pom.xml 2013-01-15 11:55:11 UTC (rev 208)
@@ -28,7 +28,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>0.3</version>
+ <version>0.4-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
Modified: trunk/tutti-persistence-dev/pom.xml
===================================================================
--- trunk/tutti-persistence-dev/pom.xml 2013-01-15 11:55:03 UTC (rev 207)
+++ trunk/tutti-persistence-dev/pom.xml 2013-01-15 11:55:11 UTC (rev 208)
@@ -28,7 +28,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>0.3</version>
+ <version>0.4-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
Modified: trunk/tutti-service/pom.xml
===================================================================
--- trunk/tutti-service/pom.xml 2013-01-15 11:55:03 UTC (rev 207)
+++ trunk/tutti-service/pom.xml 2013-01-15 11:55:11 UTC (rev 208)
@@ -28,7 +28,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>0.3</version>
+ <version>0.4-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
Modified: trunk/tutti-ui-swing/pom.xml
===================================================================
--- trunk/tutti-ui-swing/pom.xml 2013-01-15 11:55:03 UTC (rev 207)
+++ trunk/tutti-ui-swing/pom.xml 2013-01-15 11:55:11 UTC (rev 208)
@@ -28,7 +28,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>0.3</version>
+ <version>0.4-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
1
0
Author: maven-release
Date: 2013-01-15 12:55:03 +0100 (Tue, 15 Jan 2013)
New Revision: 207
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/207
Log:
[maven-release-plugin] copy for tag tutti-0.3
Added:
tags/tutti-0.3/
1
0
r206 - in trunk: . tutti-persistence tutti-persistence-adagio tutti-persistence-dev tutti-service tutti-ui-swing
by maven-release@users.forge.codelutin.com 15 Jan '13
by maven-release@users.forge.codelutin.com 15 Jan '13
15 Jan '13
Author: maven-release
Date: 2013-01-15 12:54:55 +0100 (Tue, 15 Jan 2013)
New Revision: 206
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/206
Log:
[maven-release-plugin] prepare release tutti-0.3
Modified:
trunk/pom.xml
trunk/tutti-persistence-adagio/pom.xml
trunk/tutti-persistence-dev/pom.xml
trunk/tutti-persistence/pom.xml
trunk/tutti-service/pom.xml
trunk/tutti-ui-swing/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-01-15 11:46:51 UTC (rev 205)
+++ trunk/pom.xml 2013-01-15 11:54:55 UTC (rev 206)
@@ -33,7 +33,7 @@
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>0.3-SNAPSHOT</version>
+ <version>0.3</version>
<modules>
<module>tutti-persistence</module>
@@ -91,12 +91,12 @@
</developers>
<scm>
- <url>http://svn.forge.codelutin.com/svn/tutti/trunk</url>
+ <url>http://svn.forge.codelutin.com/svn/tutti/tags/tutti-0.3</url>
<connection>
- scm:svn:http://svn.forge.codelutin.com/svn/tutti/trunk
+ scm:svn:http://svn.forge.codelutin.com/svn/tutti/tags/tutti-0.3
</connection>
<developerConnection>
- scm:svn:http://svn.forge.codelutin.com/svn/tutti/trunk
+ scm:svn:http://svn.forge.codelutin.com/svn/tutti/tags/tutti-0.3
</developerConnection>
</scm>
Modified: trunk/tutti-persistence/pom.xml
===================================================================
--- trunk/tutti-persistence/pom.xml 2013-01-15 11:46:51 UTC (rev 205)
+++ trunk/tutti-persistence/pom.xml 2013-01-15 11:54:55 UTC (rev 206)
@@ -28,7 +28,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>0.3-SNAPSHOT</version>
+ <version>0.3</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
Modified: trunk/tutti-persistence-adagio/pom.xml
===================================================================
--- trunk/tutti-persistence-adagio/pom.xml 2013-01-15 11:46:51 UTC (rev 205)
+++ trunk/tutti-persistence-adagio/pom.xml 2013-01-15 11:54:55 UTC (rev 206)
@@ -28,7 +28,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>0.3-SNAPSHOT</version>
+ <version>0.3</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
Modified: trunk/tutti-persistence-dev/pom.xml
===================================================================
--- trunk/tutti-persistence-dev/pom.xml 2013-01-15 11:46:51 UTC (rev 205)
+++ trunk/tutti-persistence-dev/pom.xml 2013-01-15 11:54:55 UTC (rev 206)
@@ -28,7 +28,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>0.3-SNAPSHOT</version>
+ <version>0.3</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
Modified: trunk/tutti-service/pom.xml
===================================================================
--- trunk/tutti-service/pom.xml 2013-01-15 11:46:51 UTC (rev 205)
+++ trunk/tutti-service/pom.xml 2013-01-15 11:54:55 UTC (rev 206)
@@ -28,7 +28,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>0.3-SNAPSHOT</version>
+ <version>0.3</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
Modified: trunk/tutti-ui-swing/pom.xml
===================================================================
--- trunk/tutti-ui-swing/pom.xml 2013-01-15 11:46:51 UTC (rev 205)
+++ trunk/tutti-ui-swing/pom.xml 2013-01-15 11:54:55 UTC (rev 206)
@@ -28,7 +28,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>0.3-SNAPSHOT</version>
+ <version>0.3</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
1
0
r203 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species
by tchemit@users.forge.codelutin.com 15 Jan '13
by tchemit@users.forge.codelutin.com 15 Jan '13
15 Jan '13
Author: tchemit
Date: 2013-01-15 12:33:29 +0100 (Tue, 15 Jan 2013)
New Revision: 203
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/203
Log:
change log level
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-01-15 11:21:48 UTC (rev 202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-01-15 11:33:29 UTC (rev 203)
@@ -602,8 +602,8 @@
tableViewMode = TableViewMode.ALL;
}
- if (log.isInfoEnabled()) {
- log.info("Will use rowfilter for viewMode: " + tableViewMode);
+ if (log.isDebugEnabled()) {
+ log.debug("Will use rowfilter for viewMode: " + tableViewMode);
}
RowFilter<SpeciesBatchTableModel, Integer> filter = tableFilters.get(tableViewMode);
getTable().setRowFilter(filter);
1
0
r202 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing java/fr/ifremer/tutti/ui/swing/content/operation/catches java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos java/fr/ifremer/tutti/ui/swing/content/operation/catches/species java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split resources/i18n
by tchemit@users.forge.codelutin.com 15 Jan '13
by tchemit@users.forge.codelutin.com 15 Jan '13
15 Jan '13
Author: tchemit
Date: 2013-01-15 12:21:48 +0100 (Tue, 15 Jan 2013)
New Revision: 202
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/202
Log:
fixes #1806: [Onglet Poisson] Pr?\195?\169filtrage du tableau
refs #1804: [CAPTURE] - Mise en place de l'onglet Captures
improve how to decorate a label (using clientProperties strongstyle or italicStyle)
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUI.css
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/AbstractTuttiUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java 2013-01-15 11:07:25 UTC (rev 201)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java 2013-01-15 11:21:48 UTC (rev 202)
@@ -34,6 +34,32 @@
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.UIMessageNotifier;
import fr.ifremer.tutti.ui.swing.util.editor.SimpleTimeEditor;
+import jaxx.runtime.JAXXUtil;
+import jaxx.runtime.SwingUtil;
+import jaxx.runtime.swing.editor.NumberEditor;
+import jaxx.runtime.swing.editor.bean.BeanComboBox;
+import jaxx.runtime.swing.editor.bean.BeanDoubleList;
+import jaxx.runtime.swing.renderer.DecoratorListCellRenderer;
+import jaxx.runtime.validator.swing.SwingValidator;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jdesktop.swingx.JXDatePicker;
+import org.nuiton.util.decorator.Decorator;
+import org.nuiton.util.decorator.JXPathDecorator;
+import org.nuiton.validator.bean.simple.SimpleBeanValidator;
+
+import javax.swing.AbstractAction;
+import javax.swing.JComponent;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JRootPane;
+import javax.swing.KeyStroke;
+import javax.swing.ListCellRenderer;
+import javax.swing.ListSelectionModel;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.text.JTextComponent;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Frame;
@@ -49,30 +75,6 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
-import javax.swing.AbstractAction;
-import javax.swing.JComponent;
-import javax.swing.JDialog;
-import javax.swing.JList;
-import javax.swing.JRootPane;
-import javax.swing.KeyStroke;
-import javax.swing.ListCellRenderer;
-import javax.swing.ListSelectionModel;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.text.JTextComponent;
-import jaxx.runtime.JAXXUtil;
-import jaxx.runtime.SwingUtil;
-import jaxx.runtime.swing.editor.NumberEditor;
-import jaxx.runtime.swing.editor.bean.BeanComboBox;
-import jaxx.runtime.swing.editor.bean.BeanDoubleList;
-import jaxx.runtime.swing.renderer.DecoratorListCellRenderer;
-import jaxx.runtime.validator.swing.SwingValidator;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.jdesktop.swingx.JXDatePicker;
-import org.nuiton.util.decorator.Decorator;
-import org.nuiton.util.decorator.JXPathDecorator;
-import org.nuiton.validator.bean.simple.SimpleBeanValidator;
/**
* Contract of any UI handler.
@@ -91,7 +93,7 @@
public abstract void afterInitUI();
public abstract void onCloseUI();
-
+
protected abstract M getModel();
protected final TuttiUIContext context;
@@ -220,6 +222,23 @@
initDatePicker((JXDatePicker) component);
} else if (component instanceof SimpleTimeEditor) {
initTimeEditor((SimpleTimeEditor) component);
+ } else if (component instanceof JLabel) {
+ JLabel jLabel = (JLabel) component;
+ Boolean strongStyle = (Boolean) jLabel.getClientProperty("strongStyle");
+ Boolean italicStyle = (Boolean) jLabel.getClientProperty("italicStyle");
+ boolean addHtml = strongStyle != null && strongStyle || italicStyle != null && italicStyle;
+ if (addHtml) {
+ String text = jLabel.getText();
+ if (strongStyle != null && strongStyle) {
+ text = "<strong>" + text + "</strong>";
+ }
+ if (italicStyle != null && italicStyle) {
+ text = "<em>" + text + "</em>";
+ }
+ jLabel.setText("<html>" + text + "</strong>");
+ }
+
+
}
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-01-15 11:07:25 UTC (rev 201)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-01-15 11:21:48 UTC (rev 202)
@@ -34,8 +34,9 @@
}
#catchTotalWeightLabel {
- text: { "<html><strong>" + _("tutti.label.catches.catchTotalWeight") + "</strong></html>" };
+ text: "tutti.label.catches.catchTotalWeight";
labelFor: {catchTotalWeightField};
+ _strongStyle: true;
}
#catchTotalWeightField {
@@ -50,7 +51,7 @@
}
#catchTotalSortedTremisWeightLabel {
- text: { _("tutti.label.catches.catchTotalSortedTremisWeight") + "*" };
+ text: "tutti.label.catches.catchTotalSortedTremisWeight";
labelFor: {catchTotalSortedTremisWeightField};
}
@@ -62,7 +63,7 @@
}
#catchTotalSortedCarousselWeightLabel {
- text: { _("tutti.label.catches.catchTotalSortedCarousselWeight") + "*" };
+ text: "tutti.label.catches.catchTotalSortedCarousselWeight";
labelFor: {catchTotalSortedCarousselWeightField};
}
@@ -92,11 +93,13 @@
#catchTotalUnsortedWeightField {
editable: false;
+ enabled: false;
text: {getStringValue(model.getCatchTotalUnsortedWeight())};
}
#catchThalassaLabel {
- text: { "* " + _("tutti.label.catches.catchThalassa")};
+ actionIcon: information;
+ text: "tutti.label.catches.catchThalassa";
}
#speciesTable {
@@ -104,8 +107,9 @@
}
#speciesTotalWeightLabel {
- text: { "<html><strong>" + _("tutti.label.catches.speciesTotalWeight") + "</strong></html>" };
+ text: "tutti.label.catches.speciesTotalWeight";
labelFor: {speciesTotalWeightField};
+ _strongStyle: true;
}
#speciesTotalWeightField {
@@ -128,8 +132,9 @@
}
#speciesTotalSampleSortedWeightLabel {
- text: { "<html><em>" + _("tutti.label.catches.speciesTotalSampleSortedWeight") + "</em></html>" };
+ text: "tutti.label.catches.speciesTotalSampleSortedWeight";
labelFor: {speciesTotalSampleSortedWeightField};
+ _italicStyle: true;
}
#speciesTotalSampleSortedWeightField {
@@ -147,6 +152,7 @@
#speciesTotalUnsortedWeightField {
text: {getStringValue(model.getSpeciesTotalUnsortedWeight())};
editable: false;
+ enabled: false;
}
#benthosTable {
@@ -154,8 +160,9 @@
}
#benthosTotalWeightLabel {
- text: { "<html><strong>" + _("tutti.label.catches.benthosTotalWeight") + "</strong></html>" };
+ text: "tutti.label.catches.benthosTotalWeight";
labelFor: {benthosTotalWeightField};
+ _strongStyle: true;
}
#benthosTotalWeightField {
@@ -178,8 +185,9 @@
}
#benthosTotalSampleSortedWeightLabel {
- text: { "<html><em>" + _("tutti.label.catches.benthosTotalSampleSortedWeight") + "</em></html>" };
+ text: "tutti.label.catches.benthosTotalSampleSortedWeight";
labelFor: {benthosTotalSampleSortedWeightField};
+ _italicStyle: true;
}
#benthosTotalSampleSortedWeightField {
@@ -197,6 +205,7 @@
#benthosTotalUnsortedWeightField {
text: {getStringValue(model.getBenthosTotalUnsortedWeight())};
editable: false;
+ enabled: false;
}
#macroWasteTable {
@@ -204,8 +213,9 @@
}
#macroWasteTotalWeightLabel {
- text: { "<html><strong>" + _("tutti.label.catches.macroWasteTotalWeight") + "</strong></html>" };
+ text: "tutti.label.catches.macroWasteTotalWeight";
labelFor: {macroWasteTotalWeightField};
+ _strongStyle: true;
}
#macroWasteTotalWeightField {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-01-15 11:07:25 UTC (rev 201)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-01-15 11:21:48 UTC (rev 202)
@@ -152,15 +152,15 @@
constructorParams='this'/>
</cell>
</row>
+ <row>
+ <cell columns='4'>
+ <JLabel id='catchThalassaLabel'/>
+ </cell>
+ </row>
</Table>
</cell>
</row>
<row>
- <cell anchor='west' insets='0, 20, 3, 0'>
- <JLabel id='catchThalassaLabel'/>
- </cell>
- </row>
- <row>
<cell>
<Table id='speciesTable' fill='both'>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css 2013-01-15 11:07:25 UTC (rev 201)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css 2013-01-15 11:21:48 UTC (rev 202)
@@ -73,6 +73,7 @@
#benthosTotalUnsortedWeightField {
text: {getStringValue(model.getBenthosTotalUnsortedWeight())};
editable: false;
+ enabled: false;
}
#table {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-01-15 11:07:25 UTC (rev 201)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-01-15 11:21:48 UTC (rev 202)
@@ -73,6 +73,7 @@
#speciesTotalUnsortedWeightField {
text: {getStringValue(model.getSpeciesTotalUnsortedWeight())};
editable: false;
+ enabled: false;
}
#tablePopup {
@@ -118,32 +119,35 @@
}
#filterTablePane {
- border: {new TitledBorder(null, _("tutti.legend.filterSpeciesBatchMode"))};
+ border: {new TitledBorder(null, "")};
}
+#filterSpeciesBatchLabel {
+ text: "tutti.label.filterSpeciesBatchMode.label";
+ toolTipText: "tutti.label.filterSpeciesBatchMode.label.tip";
+ _strongStyle: true;
+}
+
#filterSpeciesBatchAllButton {
text: "tutti.label.filterSpeciesBatchMode.mode.all";
- toolTipText: "tutti.label.filterSpeciesBatchMode.mode.all";
+ toolTipText: "tutti.label.filterSpeciesBatchMode.mode.all.tip";
value: "all";
selected: {model.isTableViewModeAll()};
buttonGroup: "filterSpeciesBatchMode";
- enabled: false;
}
#filterSpeciesBatchLeafButton {
text: "tutti.label.filterSpeciesBatchMode.mode.leaf";
- toolTipText: "tutti.label.filterSpeciesBatchMode.mode.leaf";
+ toolTipText: "tutti.label.filterSpeciesBatchMode.mode.leaf.tip";
value: "leaf";
selected: {model.isTableViewModeLeaf()};
buttonGroup: "filterSpeciesBatchMode";
- enabled: false;
}
#filterSpeciesBatchRootButton {
text: "tutti.label.filterSpeciesBatchMode.mode.root";
- toolTipText: "tutti.label.filterSpeciesBatchMode.mode.root";
+ toolTipText: "tutti.label.filterSpeciesBatchMode.mode.root.tip";
value: "root";
selected: {model.isTableViewModeRoot()};
buttonGroup: "filterSpeciesBatchMode";
- enabled: false;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2013-01-15 11:07:25 UTC (rev 201)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2013-01-15 11:21:48 UTC (rev 202)
@@ -132,6 +132,7 @@
<JButton id='createSpeciesBatchButton' constraints='BorderLayout.WEST'
onActionPerformed='handler.createSpeciesBatch()'/>
<JPanel id='filterTablePane' constraints='BorderLayout.CENTER'>
+ <JLabel id='filterSpeciesBatchLabel'/>
<JRadioButton id='filterSpeciesBatchAllButton'
onActionPerformed='model.setTableViewMode(TableViewMode.ALL)'/>
<JRadioButton id='filterSpeciesBatchLeafButton'
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-01-15 11:07:25 UTC (rev 201)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-01-15 11:21:48 UTC (rev 202)
@@ -67,9 +67,13 @@
import org.jdesktop.swingx.table.DefaultTableColumnModelExt;
import org.nuiton.util.decorator.Decorator;
+import javax.swing.RowFilter;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumnModel;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
import java.io.Serializable;
+import java.util.EnumMap;
import java.util.List;
import java.util.Set;
@@ -116,6 +120,8 @@
private SpeciesFrequencyUI speciesFrequencyEditor;
+ private final EnumMap<TableViewMode, RowFilter<SpeciesBatchTableModel, Integer>> tableFilters;
+
public SpeciesBatchUIHandler(TuttiUI<?, ?> parentUi,
SpeciesBatchUI ui) {
super(parentUi,
@@ -137,6 +143,42 @@
SpeciesBatchRowModel.PROPERTY_ATTACHMENTS,
SpeciesBatchRowModel.PROPERTY_FREQUENCY);
this.ui = ui;
+ tableFilters = new EnumMap<TableViewMode, RowFilter<SpeciesBatchTableModel, Integer>>(TableViewMode.class);
+
+ tableFilters.put(TableViewMode.ALL, new RowFilter<SpeciesBatchTableModel, Integer>() {
+ @Override
+ public boolean include(Entry<? extends SpeciesBatchTableModel, ? extends Integer> entry) {
+ return true;
+ }
+ });
+
+ tableFilters.put(TableViewMode.ROOT, new RowFilter<SpeciesBatchTableModel, Integer>() {
+ @Override
+ public boolean include(Entry<? extends SpeciesBatchTableModel, ? extends Integer> entry) {
+ boolean result = false;
+ Integer rowIndex = entry.getIdentifier();
+ if (rowIndex != null) {
+ SpeciesBatchTableModel model = entry.getModel();
+ SpeciesBatchRowModel row = model.getEntry(rowIndex);
+ result = row != null && row.isBatchRoot();
+ }
+ return result;
+ }
+ });
+
+ tableFilters.put(TableViewMode.LEAF, new RowFilter<SpeciesBatchTableModel, Integer>() {
+ @Override
+ public boolean include(Entry<? extends SpeciesBatchTableModel, ? extends Integer> entry) {
+ boolean result = false;
+ Integer rowIndex = entry.getIdentifier();
+ if (rowIndex != null) {
+ SpeciesBatchTableModel model = entry.getModel();
+ SpeciesBatchRowModel row = model.getEntry(rowIndex);
+ result = row != null && row.isBatchLeaf();
+ }
+ return result;
+ }
+ });
}
//------------------------------------------------------------------------//
@@ -550,8 +592,26 @@
table.setColumnModel(columnModel);
initBatchTable(table, columnModel, tableModel);
+
+ getModel().addPropertyChangeListener(SpeciesBatchUIModel.PROPERTY_TABLE_VIEW_MODE, new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ TableViewMode tableViewMode = (TableViewMode) evt.getNewValue();
+
+ if (tableViewMode == null) {
+ tableViewMode = TableViewMode.ALL;
+ }
+
+ if (log.isInfoEnabled()) {
+ log.info("Will use rowfilter for viewMode: " + tableViewMode);
+ }
+ RowFilter<SpeciesBatchTableModel, Integer> filter = tableFilters.get(tableViewMode);
+ getTable().setRowFilter(filter);
+ }
+ });
}
+
@Override
public void onCloseUI() {
if (log.isInfoEnabled()) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUI.css 2013-01-15 11:07:25 UTC (rev 201)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUI.css 2013-01-15 11:21:48 UTC (rev 202)
@@ -61,6 +61,7 @@
#speciesField {
editable: false;
+ enabled: false;
text: {handler.decorateSpecies(model.getSpecies())};
}
@@ -71,6 +72,7 @@
#batchWeightField {
editable: false;
+ enabled: false;
text: {getStringValue(model.getBatchWeight())};
}
@@ -81,6 +83,7 @@
#sampleWeightField {
editable: false;
+ enabled: false;
text: {getStringValue(model.getSampleWeight())};
}
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-15 11:07:25 UTC (rev 201)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-15 11:21:48 UTC (rev 202)
@@ -65,10 +65,10 @@
tutti.label.catches.benthosTotalSortedWeight=Poids total VRAC (kg)
tutti.label.catches.benthosTotalUnsortedWeight=Poids total HORS VRAC (kg)
tutti.label.catches.benthosTotalWeight=Poids TOTAL (kg)
-tutti.label.catches.catchThalassa=sur Thalassa
+tutti.label.catches.catchThalassa=(*) uniquement sur Thalassa
tutti.label.catches.catchTotalRejectedWeight=Poids total REJETÉ (kg)
-tutti.label.catches.catchTotalSortedCarousselWeight=Caroussel Observé
-tutti.label.catches.catchTotalSortedTremisWeight=Tremis
+tutti.label.catches.catchTotalSortedCarousselWeight=Caroussel Observé (*)
+tutti.label.catches.catchTotalSortedTremisWeight=Tremis (*)
tutti.label.catches.catchTotalSortedWeight=Poids total VRAC (kg)
tutti.label.catches.catchTotalUnsortedWeight=Poids total HORS VRAC (kg)
tutti.label.catches.catchTotalWeight=Poids TOTAL (kg)
@@ -92,9 +92,14 @@
tutti.label.cruise.program=Série
tutti.label.cruise.surveyPart=Série partielle
tutti.label.cruise.year=Année
-tutti.label.filterSpeciesBatchMode.mode.all=Tout voir
-tutti.label.filterSpeciesBatchMode.mode.leaf=Voir les feuilles
-tutti.label.filterSpeciesBatchMode.mode.root=Voir les parents
+tutti.label.filterSpeciesBatchMode.label=Filtre
+tutti.label.filterSpeciesBatchMode.label.tip=Pour filtrer les lots
+tutti.label.filterSpeciesBatchMode.mode.all=Aucun
+tutti.label.filterSpeciesBatchMode.mode.all.tip=Pas de filtre (tous les lots sont visibles)
+tutti.label.filterSpeciesBatchMode.mode.leaf=Feuilles
+tutti.label.filterSpeciesBatchMode.mode.leaf.tip=Voir uniquement les lots *feuilles*
+tutti.label.filterSpeciesBatchMode.mode.root=Parents
+tutti.label.filterSpeciesBatchMode.mode.root.tip=Voir uniquement les lots *parents*
tutti.label.filterVesselType=Filtre \:
tutti.label.filterVesselType.all=Tout
tutti.label.filterVesselType.all.tip=Tout les navires
1
0
r201 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content/home java/fr/ifremer/tutti/ui/swing/content/operation java/fr/ifremer/tutti/ui/swing/content/operation/catches java/fr/ifremer/tutti/ui/swing/content/protocol java/fr/ifremer/tutti/ui/swing/util resources/i18n
by kmorin@users.forge.codelutin.com 15 Jan '13
by kmorin@users.forge.codelutin.com 15 Jan '13
15 Jan '13
Author: kmorin
Date: 2013-01-15 12:07:25 +0100 (Tue, 15 Jan 2013)
New Revision: 201
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/201
Log:
debug reset in fishing operation + start replacing the new protocol button by a combo box
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.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/EditFishingOperationUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java
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/catches/EditCatchesUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
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/protocol/EditProtocolUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiTabContainerUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/SwingValidatorMessageWidget.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TabHandler.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/SelectCruiseUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx 2013-01-15 09:39:18 UTC (rev 200)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx 2013-01-15 11:07:25 UTC (rev 201)
@@ -105,8 +105,10 @@
<JPanel layout='{new GridLayout(1,0)}'>
<JButton id='editProtocolButton'
onActionPerformed='handler.showSelectedProtocol()'/>
- <JButton id='newProtocolButton'
- onActionPerformed='handler.showNewProtocol()'/>
+<!-- <JButton id='newProtocolButton'
+ onActionPerformed='handler.showNewProtocol()'/>-->
+ <JComboBox id='newProtocolCombo' onActionPerformed='handler.showNewProtocol(event)'/>
+
</JPanel>
</cell>
</row>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2013-01-15 09:39:18 UTC (rev 200)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2013-01-15 11:07:25 UTC (rev 201)
@@ -33,6 +33,7 @@
import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import java.awt.event.ActionEvent;
import jaxx.runtime.swing.editor.bean.BeanComboBox;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.logging.Log;
@@ -41,7 +42,13 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.List;
+import javax.swing.ComboBoxModel;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JComboBox;
+import javax.swing.event.ListDataEvent;
+import javax.swing.event.ListDataListener;
+import static org.nuiton.i18n.I18n._;
/**
* Main ui content to select cruise.
*
@@ -53,6 +60,12 @@
/** Logger. */
private static final Log log =
LogFactory.getLog(SelectCruiseUIHandler.class);
+
+ protected final static String PROTOCOL_ACTION_NEW = "tutti.action.new";
+
+ protected final static String PROTOCOL_ACTION_CLONE = "tutti.action.clone";
+
+ protected final static String PROTOCOL_ACTION_IMPORT = "tutti.action.import";
protected final PersistenceService persistenceService;
@@ -173,6 +186,11 @@
initBeanComboBox(ui.getProtocolCombobox(),
model.getProtocols(),
model.getProtocol());
+
+ ComboBoxModel<String> protocolActions = new DefaultComboBoxModel<String>(
+ new String[]{ _(PROTOCOL_ACTION_NEW), _(PROTOCOL_ACTION_CLONE), _(PROTOCOL_ACTION_IMPORT) });
+ JComboBox newProtocolCombo = ui.getNewProtocolCombo();
+ newProtocolCombo.setModel(protocolActions);
model.addPropertyChangeListener(SelectCruiseUIModel.PROPERTY_PROGRAM, new PropertyChangeListener() {
@Override
@@ -271,7 +289,8 @@
context.setScreen(TuttiScreen.EDIT_PROTOCOL);
}
- public void showNewProtocol() {
+ public void showNewProtocol(ActionEvent event) {
+ log.info(event.getSource());
context.setProtocolId(null);
context.setScreen(TuttiScreen.EDIT_PROTOCOL);
}
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-15 09:39:18 UTC (rev 200)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-01-15 11:07:25 UTC (rev 201)
@@ -400,18 +400,3 @@
actionIcon: casino-import;
text: "tutti.action.casino-import";
}
-
-#messagePanel {
- border: {BorderFactory.createTitledBorder("Messages")};
- height: 200;
- width: 500;
-}
-
-#errorTable {
- rowSelectionAllowed: true;
- autoCreateRowSorter: true;
- autoResizeMode: {JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS};
- cellSelectionEnabled: false;
- selectionMode: {ListSelectionModel.SINGLE_SELECTION};
- model: {errorTableModel};
-}
\ No newline at end of file
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-15 09:39:18 UTC (rev 200)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-01-15 11:07:25 UTC (rev 201)
@@ -233,26 +233,25 @@
changeValidatorContext(model.getValidationContext(), ui.getValidator());
listenValidatorValid(ui.getValidator(), model);
- final JTabbedPane tabPanel = ui.getFishingOperationTabPane();
- tabPanel.setTabComponentAt(0, new CustomTab(model));
+ setCustomTab(0, model);
listModelIsModify(model);
//init gear shooting
GearShootingTabUIModel gearShootingModel =
ui.getGearShootingTabContent().getModel();
gearShootingModel.setAvailableCaracteristics(persistenceService.getAllFishingOperationGearCaracteristic());
- tabPanel.setTabComponentAt(1, new CustomTab(gearShootingModel));
+ setCustomTab(1, gearShootingModel);
//init environment
EnvironmentTabUIModel environmentModel =
ui.getEnvironmentTabContent().getModel();
environmentModel.setAvailableCaracteristics(persistenceService.getAllFishingOperationEnvironmentCaracteristic());
- tabPanel.setTabComponentAt(2, new CustomTab(environmentModel));
+ setCustomTab(2, environmentModel);
//init hydrology
HydrologyTabUIModel hydrologyModel = ui.getHydrologyTabContent().getModel();
hydrologyModel.setAvailableCaracteristics(persistenceService.getAllFishingOperationHydrologicCaracteristic());
- tabPanel.setTabComponentAt(3, new CustomTab(hydrologyModel));
+ setCustomTab(3, hydrologyModel);
MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
main.clearValidators();
@@ -286,8 +285,7 @@
if (result && currentIndex != newIndex && currentIndex >= 0) {
CustomTab currentTab = (CustomTab) getTabPanel().getTabComponentAt(currentIndex);
AbstractTuttiBeanUIModel model = currentTab.getModel();
- result = TuttiUIContext.VALIDATION_CONTEXT_EDIT.equals(getModel().getValidationContext())
- || model.isValid();
+ result = model.isValid();
if (result && !model.isCreate() && model.isModify()) {
save();
@@ -299,8 +297,7 @@
@Override
public boolean onHideTab() {
AbstractTuttiBeanUIModel model = getModel();
- boolean result = TuttiUIContext.VALIDATION_CONTEXT_EDIT.equals(getModel().getValidationContext())
- || model.isValid();
+ boolean result = model.isValid();
if (result && !model.isCreate() && model.isModify()) {
save();
}
@@ -321,6 +318,21 @@
//-- Public methods --//
//------------------------------------------------------------------------//
+ public void clearFishingOperation() {
+ if (fishingOperationMonitor.wasModified()) {
+ save();
+ }
+
+ EditFishingOperationUIModel model = getModel();
+ model.fromBean(new FishingOperation());
+
+ model.setModify(false);
+ fishingOperationMonitor.clearModified();
+
+ model.setEmpty(true);
+
+ }
+
public void selectFishingOperation(FishingOperation bean) {
if (fishingOperationMonitor.wasModified()) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-01-15 09:39:18 UTC (rev 200)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-01-15 11:07:25 UTC (rev 201)
@@ -380,10 +380,15 @@
public void setGearShootingStartDate(Date gearShootingStartDate) {
Object oldValue = getGearShootingStartDate();
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(gearShootingStartDate);
- calendar.set(Calendar.SECOND, 0);
- this.gearShootingStartDate = calendar.getTime();
+ if (gearShootingStartDate != null) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(gearShootingStartDate);
+ calendar.set(Calendar.SECOND, 0);
+ this.gearShootingStartDate = calendar.getTime();
+
+ } else {
+ this.gearShootingStartDate = null;
+ }
firePropertyChange(PROPERTY_GEAR_SHOOTING_START_DATE, oldValue, this.gearShootingStartDate);
}
@@ -493,10 +498,15 @@
public void setGearShootingEndDate(Date gearShootingEndDate) {
Object oldValue = getGearShootingEndDate();
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(gearShootingEndDate);
- calendar.set(Calendar.SECOND, 0);
- this.gearShootingEndDate = calendar.getTime();
+ if (gearShootingEndDate != null) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(gearShootingEndDate);
+ calendar.set(Calendar.SECOND, 0);
+ this.gearShootingEndDate = calendar.getTime();
+
+ } else {
+ this.gearShootingEndDate = null;
+ }
firePropertyChange(PROPERTY_GEAR_SHOOTING_END_DATE, oldValue, this.gearShootingEndDate);
}
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-15 09:39:18 UTC (rev 200)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-01-15 11:07:25 UTC (rev 201)
@@ -210,13 +210,11 @@
// back to general tab of fishingOperation tabs
ui.getFishingOperationTabContent().getFishingOperationTabPane().setSelectedIndex(0);
- String fishingOperationText;
-
if (fishingOperation != null) {
Decorator<FishingOperation> decorator =
getDecorator(FishingOperation.class, null);
- fishingOperationText =
+ String fishingOperationText =
_("tutti.label.traitReminder",
decorator.toString(fishingOperation));
@@ -228,6 +226,9 @@
// repaint tabs
ui.getTabPane().repaint();
+
+ } else {
+ ui.getFishingOperationTabContent().getHandler().clearFishingOperation();
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-01-15 09:39:18 UTC (rev 200)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-01-15 11:07:25 UTC (rev 201)
@@ -93,8 +93,7 @@
</BeanValidator>
<JTabbedPane id='tabPane' constraints='BorderLayout.CENTER'>
- <tab id='catchesCaracteristicsTab'
- title='tutti.label.tab.catchesCaracteristics'>
+ <tab id='catchesCaracteristicsTab'>
<JXTitledPanel id='catchesCaracteristicsTabPane'>
<JScrollPane id='catchesCaracteristicsTabScrollPane'>
<JPanel layout='{new BorderLayout()}'>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-01-15 09:39:18 UTC (rev 200)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-01-15 11:07:25 UTC (rev 201)
@@ -26,9 +26,14 @@
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.service.PersistenceService;
+import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiTabContainerUIHandler;
+import fr.ifremer.tutti.ui.swing.util.TabHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import javax.swing.JTabbedPane;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -36,7 +41,8 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.3
*/
-public class EditCatchesUIHandler extends AbstractTuttiUIHandler<EditCatchesUIModel> {
+public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<EditCatchesUIModel>
+ implements TabHandler {
/** Logger. */
private static final Log log =
@@ -95,8 +101,14 @@
@Override
public void afterInitUI() {
-
+
initUI(ui);
+
+ EditCatchesUIModel model = getModel();
+
+ listenValidatorValid(ui.getValidator(), model);
+
+ setCustomTab(0, model);
}
@Override
@@ -118,7 +130,27 @@
protected EditCatchesUIModel getModel() {
return ui.getModel();
}
+
+ @Override
+ protected JTabbedPane getTabPanel() {
+ return ui.getTabPane();
+ }
+ @Override
+ public boolean onHideTab() {
+ AbstractTuttiBeanUIModel model = getModel();
+ boolean result = model.isValid();
+ if (result && model.isModify()) {
+ save();
+ }
+ return result;
+ }
+
+ @Override
+ public void onShowTab() {
+
+ }
+
//------------------------------------------------------------------------//
//-- Public methods --//
//------------------------------------------------------------------------//
@@ -129,23 +161,7 @@
// 1) Save any modification of the current fishingOperation
if (fishingOperationMonitor.wasModified()) {
-
- // previous fishingOperation was modified, let's save it
- EditCatchesUIModel beanToSave = fishingOperationMonitor.getBean();
-
- FishingOperation fishingOperation = beanToSave.toBean();
-
- if (log.isInfoEnabled()) {
- log.info("FishingOperation " + fishingOperation.getId() +
- " was modified, will save it.");
- }
-
- showInformationMessage(
- "[ Captures - Caractéristiques générales ] " +
- "Sauvegarde des modifications de " + decorate(fishingOperation) +
- ".");
-
- persistenceService.saveFishingOperation(fishingOperation);
+ save();
}
ui.getSpeciesTabContent().getHandler().clearTableSelection();
@@ -174,7 +190,8 @@
}
model.fromBean(bean);
-
+
+ model.setModify(false);
fishingOperationMonitor.clearModified();
// 3) Propagate title to others tabs
@@ -197,6 +214,25 @@
ui.getTabPane().repaint();
}
+ protected void save() {
+ // previous fishingOperation was modified, let's save it
+ EditCatchesUIModel beanToSave = fishingOperationMonitor.getBean();
+
+ FishingOperation fishingOperation = beanToSave.toBean();
+
+ if (log.isInfoEnabled()) {
+ log.info("FishingOperation " + fishingOperation.getId() +
+ " was modified, will save it.");
+ }
+
+ showInformationMessage(
+ "[ Captures - Caractéristiques générales ] " +
+ "Sauvegarde des modifications de " + decorate(fishingOperation) +
+ ".");
+
+ persistenceService.saveFishingOperation(fishingOperation);
+ }
+
public void importPupitri() {
//TODO
}
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-15 09:39:18 UTC (rev 200)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-01-15 11:07:25 UTC (rev 201)
@@ -139,6 +139,11 @@
super(FishingOperation.class, fromBeanBinder, toBeanBinder);
}
+ @Override
+ public String getTitle() {
+ return "tutti.label.tab.catchesCaracteristics";
+ }
+
public FishingOperation getFishingOperation() {
return fishingOperation;
}
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-15 09:39:18 UTC (rev 200)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-01-15 11:07:25 UTC (rev 201)
@@ -433,12 +433,20 @@
}
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/util/AbstractTuttiTabContainerUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiTabContainerUIHandler.java 2013-01-15 09:39:18 UTC (rev 200)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiTabContainerUIHandler.java 2013-01-15 11:07:25 UTC (rev 201)
@@ -1,6 +1,7 @@
package fr.ifremer.tutti.ui.swing.util;
+import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.TuttiUI;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
@@ -9,7 +10,9 @@
import javax.swing.JTabbedPane;
/**
- *
+ * UI containing a tab panel.
+ *
+ * @param <M> type of the ui model
* @author kmorin <kmorin(a)codelutin.com>
* @since 0.3
*/
@@ -19,8 +22,17 @@
super(context);
}
+ /** @return the tab panel of the UI */
protected abstract JTabbedPane getTabPanel();
+ /**
+ * Method called when the user selects a tab
+ *
+ * @param currentIndex
+ * @param newIndex
+ * @return <code>false</code> if you want to prevent the tab change,
+ * <code>true</code> otherwise
+ */
protected boolean onTabChanged(int currentIndex, int newIndex) {
boolean result = true;
if (currentIndex != newIndex) {
@@ -37,6 +49,14 @@
return result;
}
+ /**
+ * Returns the tab handler of the tab i.
+ *
+ * @param index the index of the tab
+ * @return the tab handler of the index i if the handler implements
+ * the {@link TabHandler} interface,
+ * <code>null</code> otherwise
+ */
protected TabHandler getTabHandler(int index) {
TabHandler tabHandler = null;
JTabbedPane tabPanel = getTabPanel();
@@ -53,6 +73,7 @@
return tabHandler;
}
+ @Override
protected void initUI(TuttiUI ui) {
super.initUI(ui);
@@ -71,4 +92,14 @@
});
}
+
+ /**
+ * Sets a {@link CustomTab} as tab component.
+ *
+ * @param index
+ * @param model
+ */
+ protected void setCustomTab(int index, AbstractTuttiBeanUIModel model) {
+ getTabPanel().setTabComponentAt(index, new CustomTab(model));
+ }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java 2013-01-15 09:39:18 UTC (rev 200)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java 2013-01-15 11:07:25 UTC (rev 201)
@@ -36,9 +36,13 @@
import org.apache.commons.logging.LogFactory;
import static org.nuiton.i18n.I18n._;
+
/**
- *
+ * Custom tab component which adds a * in the end of the title
+ * when the content is modified.
+ *
* @author kmorin <kmorin(a)codelutin.com>
+ * @since 0.3
*/
public class CustomTab extends JPanel {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/SwingValidatorMessageWidget.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/SwingValidatorMessageWidget.java 2013-01-15 09:39:18 UTC (rev 200)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/SwingValidatorMessageWidget.java 2013-01-15 11:07:25 UTC (rev 201)
@@ -121,11 +121,17 @@
});
}
+ /**
+ * Registers a validator.
+ *
+ * @param validator
+ */
public void registerValidator(SwingValidator validator) {
errorTableModel.registerValidator(validator);
validator.reloadBean();
}
+ /** Clears all the validators. */
public void clearValidators() {
errorTableModel.clearValidators();
errorTableModel.clear();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TabHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TabHandler.java 2013-01-15 09:39:18 UTC (rev 200)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TabHandler.java 2013-01-15 11:07:25 UTC (rev 201)
@@ -2,13 +2,21 @@
package fr.ifremer.tutti.ui.swing.util;
/**
+ * Interface describing UI contained in a tab.
*
* @author kmorin <kmorin(a)codelutin.com>
* @since 0.3
*/
public interface TabHandler {
+ /**
+ * Method called when the tab is hidden
+ *
+ * @return <code>false</code> to prevent the tab to be hidden,
+ * <code>true</code> otherwise.
+ */
boolean onHideTab();
+ /** Method called when the tab is shown */
void onShowTab();
}
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-15 09:39:18 UTC (rev 200)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-15 11:07:25 UTC (rev 201)
@@ -4,6 +4,7 @@
tutti.action.about.tip=À Propos
tutti.action.cancel=Annuler
tutti.action.casino-import=Import Casino
+tutti.action.clone=Cloner
tutti.action.close=Fermer
tutti.action.configuration=Configuration
tutti.action.configuration.tip=Configurer Tutti
@@ -15,6 +16,7 @@
tutti.action.fillCatches.tip=Saisir des captures
tutti.action.generate=Générer
tutti.action.generateCampaignName=Générer le nom
+tutti.action.import=Importer
tutti.action.manageProtocol=Protocole
tutti.action.manageProtocol.tip=Gérer les protocoles
tutti.action.new=Nouveau
1
0
r200 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species: . frequency split
by tchemit@users.forge.codelutin.com 15 Jan '13
by tchemit@users.forge.codelutin.com 15 Jan '13
15 Jan '13
Author: tchemit
Date: 2013-01-15 10:39:18 +0100 (Tue, 15 Jan 2013)
New Revision: 200
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/200
Log:
refs #1805: [Onglet Poisson] Assistance ?\195?\160 la saisie des lots de poissons
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/FrequencyCellComponent.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUI.css
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-01-15 07:18:44 UTC (rev 199)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-01-15 09:39:18 UTC (rev 200)
@@ -25,7 +25,6 @@
*/
import com.google.common.base.Preconditions;
-import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
@@ -58,6 +57,9 @@
import fr.ifremer.tutti.ui.swing.util.editor.LongTextCellComponent;
import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction;
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
+import jaxx.runtime.JAXXUtil;
+import jaxx.runtime.context.JAXXContextEntryDef;
+import jaxx.runtime.swing.ErrorDialogUI;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -84,6 +86,9 @@
private static final Log log =
LogFactory.getLog(SpeciesBatchUIHandler.class);
+ public static JAXXContextEntryDef<List<Caracteristic>> FREQUENCY_LENGTH_CONTEXT_ENTRY =
+ JAXXUtil.newListContextEntryDef("frequencyLength");
+
public static final Set<String> SAMPLING_PROPERTIES = Sets.newHashSet(
SpeciesBatchRowModel.PROPERTY_SAMPLE_CATEGORY,
SpeciesBatchRowModel.PROPERTY_SPECIES,
@@ -145,9 +150,6 @@
SpeciesBatchUIModel model = getModel();
- Multimap<CaracteristicQualitativeValue, Species> speciesUsed =
- ArrayListMultimap.create();
-
List<SpeciesBatchRowModel> rows;
if (empty) {
@@ -176,12 +178,16 @@
SpeciesBatchRowModel rootRow =
loadSpeciesBatch(aBatch, null, rows);
- speciesUsed.put(rootRow.getSortedUnsortedCategoryValue(), rootRow.getSpecies());
+
+ if (log.isInfoEnabled()) {
+ log.info("Loaded root batch " +
+ decorate(rootRow.getSpecies()) + " - " +
+ decorate(rootRow.getSortedUnsortedCategoryValue()));
+ }
}
}
}
- model.setSpeciesUsed(speciesUsed);
model.setRows(rows);
recomputeBatchActionEnable();
}
@@ -283,8 +289,18 @@
@Override
protected void onModelRowsChanged(List<SpeciesBatchRowModel> rows) {
super.onModelRowsChanged(rows);
- // build the new sampling tree from the new rows to edit
-// getModel().getSamplingTreeModel().populate(rows);
+
+ // clear speciesUsed
+ getModel().getSpeciesUsed().clear();
+
+ for (SpeciesBatchRowModel row : rows) {
+ updateTotalFromFrequencies(row);
+ if (row.isBatchRoot()) {
+
+ // update speciesUsed
+ addToSpeciesUsed(row);
+ }
+ }
}
@Override
@@ -313,9 +329,6 @@
//-- AbstractTuttiUIHandler methods --//
//------------------------------------------------------------------------//
- public static final String SPECIES_FREQUENCY_LENGHTS =
- "SPECIES_FREQUENCY_LENGHTS";
-
@Override
protected SpeciesBatchUIModel getModel() {
return ui.getModel();
@@ -339,7 +352,7 @@
context.getService(PersistenceService.class);
List<Caracteristic> lengthCaracterics =
service.getAllSpeciesLengthStepCaracteristic();
- ui.setContextValue(lengthCaracterics, SPECIES_FREQUENCY_LENGHTS);
+ FREQUENCY_LENGTH_CONTEXT_ENTRY.setContextValue(ui, lengthCaracterics);
}
@Override
@@ -599,8 +612,8 @@
saveRow(newRow);
- // update species used map
- getModel().getSpeciesUsed().put(sortedUnsortedCategory, species);
+ // update speciesUsed
+ addToSpeciesUsed(newRow);
}
// reset create ui
@@ -706,7 +719,6 @@
if (!selectedBatch.isBatchRoot()) {
// remove all sub batches of his parent
-
SpeciesBatchRowModel parentBatch = selectedBatch.getBatchParent();
// get parent row index
@@ -722,37 +734,43 @@
// remove selected batch and all his children
- // collect of rows to remove from model
- Set<SpeciesBatchRowModel> rowToRemove =
- Sets.newHashSet(selectedBatch);
+ try {
- collectChilds(selectedBatch, rowToRemove);
+ // remove parent batch (will destroy all his childs from db)
+ persistenceService.deleteSpeciesBatch(selectedBatch.getId());
- // remove all rows from the model
- getModel().getRows().removeAll(rowToRemove);
+ // update speciesUsed
+ removeFromSpeciesUsed(selectedBatch);
- // remove childs from parent batch
- selectedBatch.setBatchChilds(null);
+ // collect of rows to remove from model
+ Set<SpeciesBatchRowModel> rowToRemove =
+ Sets.newHashSet(selectedBatch);
- // save parent batch (will destroy all his childs from db)
- persistenceService.deleteSpeciesBatch(selectedBatch.getId());
+ collectChilds(selectedBatch, rowToRemove);
- // refresh table from parent batch row index to the end
- tableModel.fireTableDataChanged();
+ // remove all rows from the model
+ getModel().getRows().removeAll(rowToRemove);
- if (tableModel.getRowCount() > 0) {
+ // refresh table from parent batch row index to the end
+ tableModel.fireTableDataChanged();
- // select first row
- AbstractSelectTableAction.doSelectCell(table, 0, 0);
- } else {
+ if (tableModel.getRowCount() > 0) {
- table.clearSelection();
- }
+ // select first row
+ AbstractSelectTableAction.doSelectCell(table, 0, 0);
+ } else {
- if (table.isEditing()) {
+ table.clearSelection();
+ }
- // but no edit it
- table.getCellEditor().stopCellEditing();
+ if (table.isEditing()) {
+
+ // but no edit it
+ table.getCellEditor().stopCellEditing();
+ }
+ } catch (Exception e) {
+
+ ErrorDialogUI.showError(e);
}
}
}
@@ -771,31 +789,44 @@
Preconditions.checkState(!TuttiEntities.isNew(parentBatch),
"Can't remove sub batch if batch is not persisted");
- // collect of rows to remove from model
- Set<SpeciesBatchRowModel> rowToRemove = Sets.newHashSet();
+ try {
- collectChilds(parentBatch, rowToRemove);
+ // save parent batch (will destroy all his childs from db)
+ persistenceService.deleteSpeciesSubBatch(parentBatch.getId());
- // remove all rows from the model
- getModel().getRows().removeAll(rowToRemove);
+ if (parentBatch.isBatchRoot()) {
- // remove childs from parent batch
- parentBatch.setBatchChilds(null);
+ // update speciesUsed
+ removeFromSpeciesUsed(parentBatch);
+ }
- // save parent batch (will destroy all his childs from db)
- persistenceService.deleteSpeciesSubBatch(parentBatch.getId());
+ // collect of rows to remove from model
+ Set<SpeciesBatchRowModel> rowToRemove = Sets.newHashSet();
- // refresh table from parent batch row index to the end
- getTableModel().fireTableDataChanged();
+ collectChilds(parentBatch, rowToRemove);
- // select parent batch row
- AbstractSelectTableAction.doSelectCell(table, rowIndex, 0);
+ // remove all rows from the model
+ getModel().getRows().removeAll(rowToRemove);
- if (table.isEditing()) {
+ // remove childs from parent batch
+ parentBatch.setBatchChilds(null);
- // but no edit it
- table.getCellEditor().stopCellEditing();
+ // refresh table from parent batch row index to the end
+ getTableModel().fireTableDataChanged();
+
+ // select parent batch row
+ AbstractSelectTableAction.doSelectCell(table, rowIndex, 0);
+
+ if (table.isEditing()) {
+
+ // but no edit it
+ table.getCellEditor().stopCellEditing();
+ }
+ } catch (Exception e) {
+
+ ErrorDialogUI.showError(e);
}
+
}
public SplitSpeciesBatchUI getSplitSpeciesBatchEditor() {
@@ -952,7 +983,6 @@
// getModel().setTotalVracWeight(totalVrac);
}
-
protected void recomputeBatchActionEnable() {
int rowIndex = getTable().getSelectedRow();
@@ -1118,4 +1148,26 @@
columnIdentifier);
}
+ protected void removeFromSpeciesUsed(SpeciesBatchRowModel row) {
+ Preconditions.checkNotNull(row);
+ Preconditions.checkNotNull(row.getSpecies());
+ Preconditions.checkNotNull(row.getSortedUnsortedCategoryValue());
+ if (log.isInfoEnabled()) {
+ log.info("Remove from speciesUsed: " + decorate(row.getSortedUnsortedCategoryValue()) + " - " + decorate(row.getSpecies()));
+ }
+ getModel().getSpeciesUsed().remove(row.getSortedUnsortedCategoryValue(),
+ row.getSpecies());
+ }
+
+ protected void addToSpeciesUsed(SpeciesBatchRowModel row) {
+ Preconditions.checkNotNull(row);
+ Preconditions.checkNotNull(row.getSpecies());
+ Preconditions.checkNotNull(row.getSortedUnsortedCategoryValue());
+ if (log.isInfoEnabled()) {
+ log.info("Add to speciesUsed: " + decorate(row.getSortedUnsortedCategoryValue()) + " - " + decorate(row.getSpecies()));
+ }
+ getModel().getSpeciesUsed().put(row.getSortedUnsortedCategoryValue(),
+ row.getSpecies());
+ }
+
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java 2013-01-15 07:18:44 UTC (rev 199)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java 2013-01-15 09:39:18 UTC (rev 200)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
@@ -40,11 +41,8 @@
private static final long serialVersionUID = 1L;
-
public static final String PROPERTY_TABLE_VIEW_MODE = "tableViewMode";
- public static final String PROPERTY_SPECIES_USED = "speciesUsed";
-
public static final String PROPERTY_ALL_SPECIES = "allSpecies";
public static final String PROPERTY_CREATE_SPECIES_BATCH_ENABLED = "createSpeciesBatchEnabled";
@@ -80,7 +78,8 @@
*
* @since 0.3
*/
- protected Multimap<CaracteristicQualitativeValue, Species> speciesUsed;
+ protected final Multimap<CaracteristicQualitativeValue, Species>
+ speciesUsed = ArrayListMultimap.create();
/**
* What to show in the table.
@@ -204,12 +203,6 @@
return speciesUsed;
}
- public void setSpeciesUsed(Multimap<CaracteristicQualitativeValue, Species> speciesUsed) {
- this.speciesUsed = speciesUsed;
- firePropertyChange(PROPERTY_SPECIES_USED, null, speciesUsed);
- }
-
-
public boolean isCreateSpeciesBatchEnabled() {
return createSpeciesBatchEnabled;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/FrequencyCellComponent.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/FrequencyCellComponent.java 2013-01-15 07:18:44 UTC (rev 199)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/FrequencyCellComponent.java 2013-01-15 09:39:18 UTC (rev 200)
@@ -235,16 +235,16 @@
return result;
}
- @Override
- public boolean stopCellEditing() {
- boolean b = super.stopCellEditing();
- if (b) {
- rowIndex = null;
- editRow = null;
- columnIndex = null;
- }
- return b;
- }
+// @Override
+// public boolean stopCellEditing() {
+// boolean b = super.stopCellEditing();
+// if (b) {
+// rowIndex = null;
+// editRow = null;
+// columnIndex = null;
+// }
+// return b;
+// }
@Override
public void cancelCellEditing() {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-01-15 07:18:44 UTC (rev 199)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-01-15 09:39:18 UTC (rev 200)
@@ -151,9 +151,7 @@
initUI(ui);
List<Caracteristic> lengthStepCaracterics =
- ui.getContextValue(
- List.class,
- SpeciesBatchUIHandler.SPECIES_FREQUENCY_LENGHTS);
+ SpeciesBatchUIHandler.FREQUENCY_LENGTH_CONTEXT_ENTRY.getContextValue(ui);
Preconditions.checkNotNull(lengthStepCaracterics);
SpeciesFrequencyUIModel model = getModel();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.css 2013-01-15 07:18:44 UTC (rev 199)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.css 2013-01-15 09:39:18 UTC (rev 200)
@@ -77,12 +77,14 @@
#saveButton {
actionIcon: save;
+ mnemonic: E;
text: "tutti.action.save";
enabled: {model.isValid()};
}
#cancelButton {
actionIcon: cancel;
+ mnemonic: A;
text: "tutti.action.cancel";
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-01-15 07:18:44 UTC (rev 199)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-01-15 09:39:18 UTC (rev 200)
@@ -24,7 +24,6 @@
* #L%
*/
-import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
import fr.ifremer.tutti.persistence.TuttiPersistence;
@@ -124,7 +123,7 @@
Species newValue = (Species) evt.getNewValue();
if (log.isInfoEnabled()) {
- log.info("New Selected species "+(newValue==null?null:newValue.getCodeMemo()));
+ log.info("New Selected species " + (newValue == null ? null : newValue.getCodeMemo()));
}
if (newValue == null || source.getSpeciesUsed() == null) {
@@ -212,17 +211,13 @@
List<Species> speciesToUse = Lists.newArrayList();
- Multimap<CaracteristicQualitativeValue, Species> speciesUsed;
- boolean reset = batchModel == null;
- if (reset) {
- speciesUsed = ArrayListMultimap.create();
- } else {
- speciesUsed = batchModel.getSpeciesUsed();
- }
+ Multimap<CaracteristicQualitativeValue, Species> speciesUsed =
+ model.getSpeciesUsed();
+ speciesUsed.clear();
- model.setSpeciesUsed(speciesUsed);
+ if (batchModel != null) {
- if (!reset) {
+ speciesUsed.putAll(batchModel.getSpeciesUsed());
// compute which species can still be used
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIModel.java 2013-01-15 07:18:44 UTC (rev 199)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIModel.java 2013-01-15 09:39:18 UTC (rev 200)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
@@ -82,7 +83,7 @@
*
* @since 0.3
*/
- protected Multimap<CaracteristicQualitativeValue, Species> speciesUsed;
+ protected final Multimap<CaracteristicQualitativeValue, Species> speciesUsed = ArrayListMultimap.create();
public CreateSpeciesBatchUIModel() {
super(CreateSpeciesBatchUIModel.class, null, null);
@@ -128,10 +129,6 @@
firePropertyChange(PROPERTY_BATCH_WEIGHT, oldValue, batchWeight);
}
- public void setSpeciesUsed(Multimap<CaracteristicQualitativeValue, Species> speciesUsed) {
- this.speciesUsed = speciesUsed;
- }
-
public Multimap<CaracteristicQualitativeValue, Species> getSpeciesUsed() {
return speciesUsed;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUI.css 2013-01-15 07:18:44 UTC (rev 199)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUI.css 2013-01-15 09:39:18 UTC (rev 200)
@@ -94,13 +94,13 @@
#cancelButton {
actionIcon: cancel;
- mnemonic: C;
+ mnemonic: A;
text: "tutti.action.cancel";
}
#saveButton {
actionIcon: save;
- mnemonic: S;
+ mnemonic: E;
text: "tutti.action.save";
enabled: {model.isValid()};
}
1
0
r199 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content/protocol resources/i18n
by tchemit@users.forge.codelutin.com 15 Jan '13
by tchemit@users.forge.codelutin.com 15 Jan '13
15 Jan '13
Author: tchemit
Date: 2013-01-15 08:18:44 +0100 (Tue, 15 Jan 2013)
New Revision: 199
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/199
Log:
add new tabs to protocol
Modified:
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/protocol/EditProtocolUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-01-14 22:19:32 UTC (rev 198)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-01-15 07:18:44 UTC (rev 199)
@@ -80,7 +80,7 @@
<JMenuItem id='removeSpeciesMenu'
onActionPerformed='handler.removeSpecies()'/>
</JPopupMenu>
-
+
<JTabbedPane constraints='BorderLayout.CENTER'>
<tab title='tutti.label.tab.protocol.info'>
<Table id='protocolInfoForm' fill='both'>
@@ -92,7 +92,7 @@
</cell>
<cell weightx='1.0'>
<JTextField id='nameField'
- onKeyReleased='handler.setText(event, "name")'/>
+ onKeyReleased='handler.setText(event, "name")'/>
</cell>
</row>
@@ -100,21 +100,41 @@
<row weighty='0.8'>
<cell columns='2'>
<JScrollPane id='commentPane'
- onFocusGained='commentField.requestFocus()'>
+ onFocusGained='commentField.requestFocus()'>
<JTextArea id='commentField'
- onKeyReleased='handler.setText(event, "comment")'/>
+ onKeyReleased='handler.setText(event, "comment")'/>
</JScrollPane>
</cell>
</row>
</Table>
</tab>
+ <tab title='tutti.label.tab.protocol.fishingOperation'>
+ <Table fill='both' weightx='1'>
+ <row fill='both' weighty='1'>
+ <cell fill='both'>
+ <BeanDoubleList id='gearList' genericType='Caracteristic'/>
+ </cell>
+ </row>
+ <row fill='both' weighty='1'>
+ <cell fill='both'>
+ <BeanDoubleList id='environmentList' genericType='Caracteristic'/>
+ </cell>
+ </row>
+ <row fill='both' weighty='1'>
+ <cell fill='both'>
+ <BeanDoubleList id='hydrologyList' genericType='Caracteristic'/>
+ </cell>
+ </row>
+ </Table>
+ </tab>
+
<tab title='tutti.label.tab.protocol.species'>
<Table fill='both'>
<row fill='both'>
<cell fill='both' weightx='1'>
<BeanComboBox id='speciesComboBox' constructorParams='this'
- genericType='Species'/>
+ genericType='Species'/>
</cell>
<cell fill='both'>
<JButton id='addRow' onActionPerformed='handler.addRow()'/>
@@ -123,33 +143,27 @@
<row fill='both' weighty='1'>
<cell fill='both' columns='2'>
<JScrollPane>
- <JXTable id='speciesTable' onMouseClicked='handler.autoSelectRowInTable(event, tablePopup)'/>
+ <JXTable id='speciesTable'
+ onMouseClicked='handler.autoSelectRowInTable(event, tablePopup)'/>
</JScrollPane>
</cell>
</row>
</Table>
</tab>
+ <tab title='tutti.label.tab.protocol.benthos'>
+ <JLabel text='tutti.to.be.done' enabled='false'
+ horizontalAlignment="{JLabel.CENTER}"/>
+ </tab>
+ <tab title='tutti.label.tab.protocol.plankton'>
+ <JLabel text='tutti.to.be.done' enabled='false'
+ horizontalAlignment="{JLabel.CENTER}"/>
+ </tab>
+ <tab title='tutti.label.tab.protocol.accidental'>
+ <JLabel text='tutti.to.be.done' enabled='false'
+ horizontalAlignment="{JLabel.CENTER}"/>
+ </tab>
- <tab title='tutti.label.tab.protocol.pmfm'>
- <Table fill='both' weightx='1'>
- <row fill='both' weighty='1'>
- <cell fill='both'>
- <BeanDoubleList id='gearList' genericType='Caracteristic'/>
- </cell>
- </row>
- <row fill='both' weighty='1'>
- <cell fill='both'>
- <BeanDoubleList id='environmentList'
- genericType='Caracteristic'/>
- </cell>
- </row>
- <row fill='both' weighty='1'>
- <cell fill='both'>
- <BeanDoubleList id='hydrologyList' genericType='Caracteristic'/>
- </cell>
- </row>
- </Table>
- </tab>
+
</JTabbedPane>
<JPanel layout='{new GridLayout(1, 0)}' constraints='BorderLayout.SOUTH'>
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-14 22:19:32 UTC (rev 198)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-15 07:18:44 UTC (rev 199)
@@ -158,8 +158,11 @@
tutti.label.tab.macroDechet=Macro déchets
tutti.label.tab.observationIndividuel=Observations individuelles
tutti.label.tab.plancton=Plancton
+tutti.label.tab.protocol.accidental=Accidental
+tutti.label.tab.protocol.benthos=Benthos
+tutti.label.tab.protocol.fishingOperation=Trait
tutti.label.tab.protocol.info=Informations générales
-tutti.label.tab.protocol.pmfm=PMFM
+tutti.label.tab.protocol.plankton=Plancton
tutti.label.tab.protocol.species=Espèces
tutti.label.tab.species=Espèces
tutti.label.traitReminder=Trait \: %s
1
0
r198 - in trunk: tutti-persistence/src/main/xmi tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split
by tchemit@users.forge.codelutin.com 14 Jan '13
by tchemit@users.forge.codelutin.com 14 Jan '13
14 Jan '13
Author: tchemit
Date: 2013-01-14 23:19:32 +0100 (Mon, 14 Jan 2013)
New Revision: 198
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/198
Log:
refs #1805: [Onglet Poisson] Assistance ?\195?\160 la saisie des lots de poissons
Modified:
trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIModel.java
Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
===================================================================
(Binary files differ)
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-01-14 21:43:11 UTC (rev 197)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-01-14 22:19:32 UTC (rev 198)
@@ -145,7 +145,7 @@
SpeciesBatchUIModel model = getModel();
- Multimap<CaracteristicQualitativeValue, Species> availableSpecies =
+ Multimap<CaracteristicQualitativeValue, Species> speciesUsed =
ArrayListMultimap.create();
List<SpeciesBatchRowModel> rows;
@@ -162,8 +162,6 @@
if (!TuttiEntities.isNew(bean)) {
- Set<Species> speciesUsed = Sets.newHashSet();
-
// get all batch species root (says the one with only a species sample category)
List<SpeciesBatch> catches =
persistenceService.getAllRootSpeciesBatch(bean.getId());
@@ -173,18 +171,17 @@
// root batch sample categroy is species
Preconditions.checkState(
aBatch.getSampleCategoryType() == SampleCategoryEnum.sortedUnsorted,
- "Root species batch must be a species sample " +
+ "Root species batch must be a sortedUnsorted sample " +
"category but was:" + aBatch.getSampleCategoryType());
SpeciesBatchRowModel rootRow =
loadSpeciesBatch(aBatch, null, rows);
- speciesUsed.add(rootRow.getSpecies());
+ speciesUsed.put(rootRow.getSortedUnsortedCategoryValue(), rootRow.getSpecies());
}
- availableSpecies.removeAll(speciesUsed);
}
}
- model.setSpeciesUsed(availableSpecies);
+ model.setSpeciesUsed(speciesUsed);
model.setRows(rows);
recomputeBatchActionEnable();
}
@@ -604,7 +601,6 @@
// update species used map
getModel().getSpeciesUsed().put(sortedUnsortedCategory, species);
-
}
// reset create ui
@@ -759,8 +755,6 @@
table.getCellEditor().stopCellEditing();
}
}
-
-
}
public void removeSpeciesSubBatch() {
@@ -867,6 +861,7 @@
FishingOperation fishingOperation = getModel().getFishingOperation();
Preconditions.checkNotNull(fishingOperation);
+ Preconditions.checkNotNull(row.getSpecies());
SampleCategory<?> sampleCategory = row.getSampleCategory();
Preconditions.checkNotNull(sampleCategory);
Preconditions.checkNotNull(sampleCategory.getCategoryType());
@@ -1090,6 +1085,7 @@
// copy back parent data (mainly other sample categories)
+ newRow.setSpecies(parentRow.getSpecies());
newRow.setSpeciesToConfirm(parentRow.getSpeciesToConfirm());
newRow.setBatchParent(parentRow);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIModel.java 2013-01-14 21:43:11 UTC (rev 197)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIModel.java 2013-01-14 22:19:32 UTC (rev 198)
@@ -30,7 +30,6 @@
import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
import java.util.List;
-import java.util.Set;
/**
* Model of {@link CreateSpeciesBatchUI}.
@@ -146,24 +145,6 @@
public boolean isSpeciesAndCategoryAvailable(Species species,
CaracteristicQualitativeValue sortedUnsortedCategory) {
boolean result = !speciesUsed.containsEntry(sortedUnsortedCategory, species);
-
- if (result) {
-
- // species - category still no used
-
- Set<CaracteristicQualitativeValue> categories = speciesUsed.keySet();
- result = categories.isEmpty();
- for (CaracteristicQualitativeValue category : categories) {
-
- if (!speciesUsed.containsEntry(category, species)) {
-
- // ok found a category available
- result = true;
- break;
- }
- }
-
- }
return result;
}
}
\ No newline at end of file
1
0