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
- 4058 discussions
10 Apr '13
Author: kmorin
Date: 2013-04-10 17:07:59 +0200 (Wed, 10 Apr 2013)
New Revision: 760
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/760
Log:
fixes #2267 [ESPECE] - Cr?\195?\169ation lot (Alt + C), mettre le focus sur le champ ESPECES DU LOT
Added:
trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/
trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/
trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel-error-validation.xml
Removed:
trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/individualObservation/
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/benthos/create/CreateBenthosBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIHandler.java
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-04-10 14:17:43 UTC (rev 759)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-04-10 15:07:59 UTC (rev 760)
@@ -33,14 +33,14 @@
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.action.TuttiActionHelper;
import jaxx.runtime.swing.CardLayout2Ext;
+import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTitledPanel;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JTabbedPane;
+import javax.swing.*;
+import java.awt.*;
import java.util.Set;
import static org.nuiton.i18n.I18n._;
@@ -288,19 +288,25 @@
actionPanel.setVisible(false);
TuttiUI tuttiUi = null;
JXTitledPanel titlePanel = null;
+ Component component2focus = null;
String title = "";
if (CREATE_BATCH_CARD.equals(card)) {
tuttiUi = ui.getSpeciesTabCreateBatch();
titlePanel = ui.getSpeciesTabCreateBatchReminderLabel();
title = n_("tutti.createSpeciesBatch.title");
+ component2focus = ui.getSpeciesTabCreateBatch().getSpeciesComboBox();
+
} else if (SPLIT_BATCH_CARD.equals(card)) {
tuttiUi = ui.getSpeciesTabSplitBatch();
titlePanel = ui.getSpeciesTabSplitBatchReminderLabel();
title = n_("tutti.splitSpeciesBatch.title");
+ component2focus = ui.getSpeciesTabSplitBatch().getCategoryComboBox();
+
} else if (EDIT_FREQUENCY_CARD.equals(card)) {
tuttiUi = ui.getSpeciesTabFrequencyEditor();
titlePanel = ui.getSpeciesTabFrequencyEditorReminderLabel();
title = n_("tutti.editSpeciesFrequencies.title");
+ component2focus = ui.getSpeciesTabFrequencyEditor().getLengthStepCaracteristicComboBox();
}
if (tuttiUi != null) {
@@ -309,6 +315,9 @@
if (titlePanel != null) {
titlePanel.setTitle(ui.getSpeciesTabFishingOperationReminderLabel().getTitle() + " - " + _(title));
}
+ if (component2focus != null) {
+ component2focus.requestFocus();
+ }
}
}
}
@@ -327,19 +336,25 @@
actionPanel.setVisible(false);
TuttiUI tuttiUi = null;
JXTitledPanel titlePanel = null;
+ Component component2focus = null;
String title = "";
if (CREATE_BATCH_CARD.equals(card)) {
tuttiUi = ui.getBenthosTabCreateBatch();
titlePanel = ui.getBenthosTabCreateBatchReminderLabel();
title = n_("tutti.createBenthosBatch.title");
+ component2focus = ui.getBenthosTabCreateBatch().getSpeciesComboBox();
+
} else if (SPLIT_BATCH_CARD.equals(card)) {
tuttiUi = ui.getBenthosTabSplitBatch();
titlePanel = ui.getBenthosTabSplitBatchReminderLabel();
title = n_("tutti.splitBenthosBatch.title");
+ component2focus = ui.getBenthosTabSplitBatch().getCategoryComboBox();
+
} else if (EDIT_FREQUENCY_CARD.equals(card)) {
tuttiUi = ui.getBenthosTabFrequencyEditor();
titlePanel = ui.getBenthosTabFrequencyEditorReminderLabel();
title = n_("tutti.editBenthosFrequencies.title");
+ component2focus = ui.getBenthosTabFrequencyEditor().getLengthStepCaracteristicComboBox();
}
if (tuttiUi != null) {
@@ -348,6 +363,9 @@
if (titlePanel != null) {
titlePanel.setTitle(ui.getBenthosTabFishingOperationReminderLabel().getTitle() + " - " + _(title));
}
+ if (component2focus != null) {
+ component2focus.requestFocus();
+ }
}
}
}
@@ -366,11 +384,13 @@
actionPanel.setVisible(false);
TuttiUI tuttiUi = null;
JXTitledPanel titlePanel = null;
+ Component component2focus = null;
String title = "";
if (CREATE_BATCH_CARD.equals(card)) {
tuttiUi = ui.getMarineLitterTabCreateBatch();
titlePanel = ui.getMarineLitterTabCreateBatchReminderLabel();
title = n_("tutti.createMarineLitterBatch.title");
+ component2focus = ui.getMarineLitterTabCreateBatch().getMarineLitterCategoryComboBox();
}
if (tuttiUi != null) {
@@ -379,6 +399,9 @@
if (titlePanel != null) {
titlePanel.setTitle(ui.getMarineLitterTabCreateBatchReminderLabel().getTitle() + " - " + _(title));
}
+ if (component2focus != null) {
+ component2focus.requestFocus();
+ }
}
}
}
@@ -397,15 +420,18 @@
actionPanel.setVisible(false);
TuttiUI tuttiUi = null;
JXTitledPanel titlePanel = null;
+ Component component2focus = null;
String title = "";
if (CREATE_BATCH_CARD.equals(card)) {
tuttiUi = ui.getIndividualObservationTabCreateBatch();
titlePanel = ui.getIndividualObservationTabCreateBatchReminderLabel();
title = n_("tutti.createIndividualObservationBatch.title");
+ component2focus = ui.getIndividualObservationTabCreateBatch().getIndividualObservationSpeciesComboBox();
} else if (EDIT_CARACTERISTICS_CARD.equals(card)) {
titlePanel = ui.getIndividualObservationTabFishingOperationReminderLabel();
title = n_("tutti.editCaracteristics.title");
+ component2focus = ui.getCaracteristicMapEditor().getNewRowKey();
}
if (tuttiUi != null) {
@@ -414,6 +440,9 @@
if (titlePanel != null) {
titlePanel.setTitle(ui.getIndividualObservationTabCreateBatchReminderLabel().getTitle() + " - " + _(title));
}
+ if (component2focus != null) {
+ component2focus.requestFocus();
+ }
}
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIHandler.java 2013-04-10 14:17:43 UTC (rev 759)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIHandler.java 2013-04-10 15:07:59 UTC (rev 760)
@@ -215,7 +215,6 @@
}
model.setAvailableSpecies(speciesToUse);
- ui.getSpeciesComboBox().requestFocus();
}
public void save() {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java 2013-04-10 14:17:43 UTC (rev 759)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java 2013-04-10 15:07:59 UTC (rev 760)
@@ -111,7 +111,6 @@
model.reset();
- ui.getIndividualObservationSpeciesComboBox().requestFocus();
}
public void save() {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIHandler.java 2013-04-10 14:17:43 UTC (rev 759)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIHandler.java 2013-04-10 15:07:59 UTC (rev 760)
@@ -141,8 +141,6 @@
ui.getValidator().setBean(model);
model.reset();
-
- ui.getMarineLitterCategoryComboBox().requestFocus();
}
public void save() {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIHandler.java 2013-04-10 14:17:43 UTC (rev 759)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIHandler.java 2013-04-10 15:07:59 UTC (rev 760)
@@ -214,7 +214,6 @@
}
model.setAvailableSpecies(speciesToUse);
- ui.getSpeciesComboBox().requestFocus();
}
public void save() {
Copied: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel-error-validation.xml (from rev 758, trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/individualObservation/create/CreateIndividualObservationBatchUIModel-error-validation.xml)
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel-error-validation.xml (rev 0)
+++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel-error-validation.xml 2013-04-10 15:07:59 UTC (rev 760)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE validators PUBLIC
+ "-//Apache Struts//XWork Validator 1.0.3//EN"
+ "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
+<validators>
+
+ <field name="species">
+ <field-validator type="required" short-circuit="true">
+ <message>
+ tutti.validator.error.createIndividualObservationBatch.individualObservationSpecies.required
+ </message>
+ </field-validator>
+ </field>
+
+</validators>
\ No newline at end of file
1
0
r759 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create
by kmorin@users.forge.codelutin.com 10 Apr '13
by kmorin@users.forge.codelutin.com 10 Apr '13
10 Apr '13
Author: kmorin
Date: 2013-04-10 16:17:43 +0200 (Wed, 10 Apr 2013)
New Revision: 759
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/759
Log:
fixes #2258 [MACRO DECHETS] champs non r?\195?\169initialis?\195?\169s
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel.java 2013-04-10 14:16:08 UTC (rev 758)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel.java 2013-04-10 14:17:43 UTC (rev 759)
@@ -87,8 +87,8 @@
}
public void reset() {
- editObject.setMarineLitterCategory(null);
- editObject.setMarineLitterSizeCategory(null);
- editObject.setNumber(null);
+ setMarineLitterCategory(null);
+ setMarineLitterSizeCategory(null);
+ setNumber(null);
}
}
\ No newline at end of file
1
0
10 Apr '13
Author: kmorin
Date: 2013-04-10 16:16:08 +0200 (Wed, 10 Apr 2013)
New Revision: 758
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/758
Log:
refs #1867 [CAPTURE] - Observations individuelles
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/RemoveIndividualObservationBatchAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapCellComponent.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java
trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/individualObservation/
trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/individualObservation/create/
trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/individualObservation/create/CreateIndividualObservationBatchUIModel-error-validation.xml
Modified:
trunk/pom.xml
trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties
trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.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/EditCatchesUIHandler.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-04-08 16:07:19 UTC (rev 757)
+++ trunk/pom.xml 2013-04-10 14:16:08 UTC (rev 758)
@@ -132,7 +132,7 @@
<eugenePluginVersion>2.6.2</eugenePluginVersion>
<hibernateVersion>3.6.10.Final</hibernateVersion>
- <jaxxVersion>2.5.16</jaxxVersion>
+ <jaxxVersion>2.5.17-SNAPSHOT</jaxxVersion>
<swingXVersion>1.6.4</swingXVersion>
<xworkVersion>2.3.7</xworkVersion>
Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
===================================================================
(Binary files differ)
Modified: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-04-08 16:07:19 UTC (rev 757)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-04-10 14:16:08 UTC (rev 758)
@@ -1,28 +1,5 @@
-###
-# #%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%
-###
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Fri Mar 29 10:09:57 CET 2013
+#Tue Apr 09 12:35:56 CEST 2013
tutti.createBenthosBatch.action.addSpecies.help=createBenthosBatch.html\#actions
tutti.createBenthosBatch.action.cancel.help=createBenthosBatch.html\#actions
tutti.createBenthosBatch.action.save.help=createBenthosBatch.html\#actions
@@ -30,6 +7,11 @@
tutti.createBenthosBatch.field.sortedUnsortedCategory.help=createBenthosBatch.html\#fields
tutti.createBenthosBatch.field.species.help=createBenthosBatch.html\#fields
tutti.createBenthosBatch.help=createBenthosBatch.html
+tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic.help=
+tutti.createIndividualObservationBatch.field.individualObservationSize.help=
+tutti.createIndividualObservationBatch.field.individualObservationSpecies.help=
+tutti.createIndividualObservationBatch.field.individualObservationWeight.help=
+tutti.createIndividualObservationBatch.help=
tutti.createMarineLitterBatch.action.cancel.help=
tutti.createMarineLitterBatch.action.save.help=
tutti.createMarineLitterBatch.field.marineLitterCategory.help=
@@ -147,6 +129,8 @@
tutti.editFishingOperation.field.trawlDistance.help=editFishingOperation.html\#fields
tutti.editFishingOperation.field.vessel.help=editFishingOperation.html\#fields
tutti.editFishingOperation.help=editFishingOperation.html
+tutti.editIndividualObservationBatch.action.createBatch.help=
+tutti.editIndividualObservationBatch.action.removeBatch.help=
tutti.editMarineLitterBatch.action.createBatch.help=
tutti.editMarineLitterBatch.action.removeBatch.help=
tutti.editMarineLitterBatch.field.marineLitterTotalWeight.help=
@@ -272,6 +256,7 @@
tutti.splitSpeciesBatch.help=splitSpeciesBatch.html
tuttihelp.config.help=config.help
tuttihelp.editAccidentalBatch.help=editAccidentalBatch.html
+tuttihelp.editIndividualObservationBatch.help=
tuttihelp.editMacroWasteBatch.help=
tuttihelp.editMarineLitterBatch.help=editMarineLitterBatch.html
tuttihelp.editPlanktonBatch.help=editPlanktonBatch.html
Modified: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-04-08 16:07:19 UTC (rev 757)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-04-10 14:16:08 UTC (rev 758)
@@ -1,28 +1,5 @@
-###
-# #%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%
-###
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Fri Mar 29 10:09:57 CET 2013
+#Tue Apr 09 12:35:56 CEST 2013
tutti.createBenthosBatch.action.addSpecies.help=createBenthosBatch.html\#actions
tutti.createBenthosBatch.action.cancel.help=createBenthosBatch.html\#actions
tutti.createBenthosBatch.action.save.help=createBenthosBatch.html\#actions
@@ -30,6 +7,11 @@
tutti.createBenthosBatch.field.sortedUnsortedCategory.help=createBenthosBatch.html\#fields
tutti.createBenthosBatch.field.species.help=createBenthosBatch.html\#fields
tutti.createBenthosBatch.help=createBenthosBatch.html
+tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic.help=
+tutti.createIndividualObservationBatch.field.individualObservationSize.help=
+tutti.createIndividualObservationBatch.field.individualObservationSpecies.help=
+tutti.createIndividualObservationBatch.field.individualObservationWeight.help=
+tutti.createIndividualObservationBatch.help=
tutti.createMarineLitterBatch.action.cancel.help=
tutti.createMarineLitterBatch.action.save.help=
tutti.createMarineLitterBatch.field.marineLitterCategory.help=
@@ -156,6 +138,8 @@
tutti.editFishingOperation.field.trawlDistance.help=editFishingOperation.html\#fields
tutti.editFishingOperation.field.vessel.help=editFishingOperation.html\#fields
tutti.editFishingOperation.help=editFishingOperation.html
+tutti.editIndividualObservationBatch.action.createBatch.help=
+tutti.editIndividualObservationBatch.action.removeBatch.help=
tutti.editMarineLitterBatch.action.createBatch.help=
tutti.editMarineLitterBatch.action.removeBatch.help=
tutti.editMarineLitterBatch.field.marineLitterTotalWeight.help=
@@ -281,6 +265,7 @@
tutti.splitSpeciesBatch.help=splitSpeciesBatch.html
tuttihelp.config.help=config.help
tuttihelp.editAccidentalBatch.help=editAccidentalBatch.html
+tuttihelp.editIndividualObservationBatch.help=
tuttihelp.editMacroWasteBatch.help=
tuttihelp.editMarineLitterBatch.help=editMarineLitterBatch.html
tuttihelp.editPlanktonBatch.help=editPlanktonBatch.html
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-04-08 16:07:19 UTC (rev 757)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-04-10 14:16:08 UTC (rev 758)
@@ -560,6 +560,7 @@
ui.getSpeciesTabFishingOperationReminderLabel().setTitle(fishingOperationText);
ui.getBenthosTabFishingOperationReminderLabel().setTitle(fishingOperationText);
ui.getMarineLitterTabFishingOperationReminderLabel().setTitle(fishingOperationText);
+ ui.getIndividualObservationTabFishingOperationReminderLabel().setTitle(fishingOperationText);
// ui.getPlanktonTabFishingOperationReminderLabel().setTitle(fishingOperationText);
// ui.getAccidentalTabFishingOperationReminderLabel().setTitle(fishingOperationText);
@@ -570,6 +571,7 @@
ui.getSpeciesTabContent().getHandler().selectFishingOperation(batch == null ? null : bean);
ui.getBenthosTabContent().getHandler().selectFishingOperation(batch == null ? null : bean);
ui.getMarineLitterTabContent().getHandler().selectFishingOperation(batch == null ? null : bean);
+ ui.getIndividualObservationTabContent().getHandler().selectFishingOperation(batch == null ? null : bean);
// ui.getPlanktonTabContent().getHandler().selectFishingOperation(bean);
// ui.getAccidentalTabContent().getHandler().selectFishingOperation(bean);
}
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-04-08 16:07:19 UTC (rev 757)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-04-10 14:16:08 UTC (rev 758)
@@ -302,10 +302,14 @@
enabled: {false};
}
-#observationIndividuelTab {
- enabled: {false};
+#individualObservationTabPanel {
+ layout:{individualObservationTabPanelLayout};
}
+#individualObservationTable {
+ border: {BorderFactory.createTitledBorder(_("tutti.editCatchBatch.legend.individualObservation"))};
+}
+
#importPupitriButton {
actionIcon: pupitri-import;
text: "tutti.editCatchBatch.action.importPupitri";
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-04-08 16:07:19 UTC (rev 757)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-04-10 14:16:08 UTC (rev 758)
@@ -36,6 +36,9 @@
fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.create.CreateBenthosBatchUI
fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.split.SplitBenthosBatchUI
fr.ifremer.tutti.ui.swing.content.operation.catches.marinelitter.MarineLitterBatchUI
+ fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchUI
+ fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.create.CreateIndividualObservationBatchUI
+ fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.caracteristics.CaracteristicMapEditorUI
fr.ifremer.tutti.ui.swing.content.operation.catches.plankton.PlanktonBatchUI
fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUI
fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUI
@@ -100,6 +103,9 @@
<CardLayout2Ext id='marineLitterTabPanelLayout'
constructorParams='this, "marineLitterTabPanel"'/>
+ <CardLayout2Ext id='individualObservationTabPanelLayout'
+ constructorParams='this, "individualObservationTabPanel"'/>
+
<TuttiHelpBroker id='broker' constructorParams='"tutti.editCatchBatch.help"'/>
<JToolBar id='catchesCaracteristicsTabToolBar'>
@@ -372,11 +378,25 @@
<AccidentalBatchUI id='accidentalTabContent' constructorParams='this'/>
</JXTitledPanel-->
</tab>
- <tab id='observationIndividuelTab'
- title='tutti.label.tab.observationIndividuel'>
- <!--JXTitledPanel id='observationTabFishingOperationReminderLabel'>
- <JLabel text='tutti.to.be.done' horizontalAlignment='{JLabel.CENTER}'/>
- </JXTitledPanel-->
+ <tab id='individualObservationTab'
+ title='tutti.label.tab.individualObservation'>
+ <JPanel id='individualObservationTabPanel'>
+ <JXTitledPanel id='individualObservationTabFishingOperationReminderLabel'
+ constraints='EditCatchesUIHandler.MAIN_CARD'>
+ <IndividualObservationBatchUI id='individualObservationTabContent'
+ constructorParams='this'/>
+ </JXTitledPanel>
+ <JXTitledPanel id='individualObservationTabCreateBatchReminderLabel'
+ constraints='EditCatchesUIHandler.CREATE_BATCH_CARD'>
+ <CreateIndividualObservationBatchUI id='individualObservationTabCreateBatch'
+ constructorParams='this'/>
+ </JXTitledPanel>
+ <JXTitledPanel id='CaracteristicMapEditorReminderLabel'
+ constraints='EditCatchesUIHandler.EDIT_CARACTERISTICS_CARD'>
+ <CaracteristicMapEditorUI id='caracteristicMapEditor'
+ constructorParams='individualObservationTabContent'/>
+ </JXTitledPanel>
+ </JPanel>
</tab>
</JTabbedPane>
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-04-08 16:07:19 UTC (rev 757)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-04-10 14:16:08 UTC (rev 758)
@@ -61,6 +61,8 @@
public static final String EDIT_FREQUENCY_CARD = "editFrequency";
+ public static final String EDIT_CARACTERISTICS_CARD = "caracteristicsCard";
+
public static final String CAROUSSEL_TREMIE_VESSEL = "carousselTremieVessel";
public static final String CLASSIC_VESSEL = "classicVessel";
@@ -381,4 +383,39 @@
}
}
+ public void setIndividualObservationSelectedCard(String card) {
+ JPanel panel = ui.getIndividualObservationTabPanel();
+ CardLayout2Ext layout = (CardLayout2Ext) panel.getLayout();
+ if (!card.equals(layout.getSelected())) {
+ layout.setSelected(card);
+
+ JPanel actionPanel = getUI().getCreateFishingOperationActions();
+ if (MAIN_CARD.equals(card)) {
+ registerValidators();
+ actionPanel.setVisible(true);
+ } else {
+ actionPanel.setVisible(false);
+ TuttiUI tuttiUi = null;
+ JXTitledPanel titlePanel = null;
+ String title = "";
+ if (CREATE_BATCH_CARD.equals(card)) {
+ tuttiUi = ui.getIndividualObservationTabCreateBatch();
+ titlePanel = ui.getIndividualObservationTabCreateBatchReminderLabel();
+ title = n_("tutti.createIndividualObservationBatch.title");
+
+ } else if (EDIT_CARACTERISTICS_CARD.equals(card)) {
+ titlePanel = ui.getIndividualObservationTabFishingOperationReminderLabel();
+ title = n_("tutti.editCaracteristics.title");
+ }
+
+ if (tuttiUi != null) {
+ registerValidators(tuttiUi.getHandler().getValidator());
+ }
+ if (titlePanel != null) {
+ titlePanel.setTitle(ui.getIndividualObservationTabCreateBatchReminderLabel().getTitle() + " - " + _(title));
+ }
+ }
+ }
+ }
+
}
\ No newline at end of file
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java 2013-04-10 14:16:08 UTC (rev 758)
@@ -0,0 +1,218 @@
+package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation;
+
+import com.google.common.collect.Lists;
+import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
+import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
+import fr.ifremer.tutti.persistence.entities.data.*;
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
+import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
+import org.nuiton.util.beans.Binder;
+import org.nuiton.util.beans.BinderFactory;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.4
+ */
+public class IndividualObservationBatchRowModel extends AbstractTuttiBeanUIModel<IndividualObservationBatch, IndividualObservationBatchRowModel>
+ implements AttachmentModelAware, IndividualObservationBatch {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Delegate edit object.
+ *
+ * @since 1.3
+ */
+ protected final IndividualObservationBatch editObject =
+ TuttiBeanFactory.newIndividualObservationBatch();
+
+ /**
+ * Attachments (should never be null).
+ *
+ * @since 0.2
+ */
+ protected final List<Attachment> attachment = Lists.newArrayList();
+
+ protected static final Binder<IndividualObservationBatch, IndividualObservationBatchRowModel> fromBeanBinder =
+ BinderFactory.newBinder(IndividualObservationBatch.class,
+ IndividualObservationBatchRowModel.class);
+
+ protected static final Binder<IndividualObservationBatchRowModel, IndividualObservationBatch> toBeanBinder =
+ BinderFactory.newBinder(IndividualObservationBatchRowModel.class,
+ IndividualObservationBatch.class);
+
+ public IndividualObservationBatchRowModel() {
+ super(IndividualObservationBatch.class, fromBeanBinder, toBeanBinder);
+ }
+
+ public IndividualObservationBatchRowModel(IndividualObservationBatch aBatch,
+ List<Attachment> attachments) {
+ this();
+ fromBean(aBatch);
+ this.attachment.addAll(attachments);
+ }
+
+ @Override
+ protected IndividualObservationBatch newEntity() {
+ return TuttiBeanFactory.newIndividualObservationBatch();
+ }
+
+ //------------------------------------------------------------------------//
+ //-- MarineLitterBatch --//
+ //------------------------------------------------------------------------//
+
+ @Override
+ public FishingOperation getFishingOperation() {
+ return editObject.getFishingOperation();
+ }
+
+ @Override
+ public void setFishingOperation(FishingOperation fishingOperation) {
+ editObject.setFishingOperation(fishingOperation);
+ }
+
+ @Override
+ public Float getWeight() {
+ return editObject.getWeight();
+ }
+
+ @Override
+ public void setWeight(Float weight) {
+ Object oldValue = getWeight();
+ editObject.setWeight(weight);
+ firePropertyChange(PROPERTY_WEIGHT, oldValue, weight);
+ }
+
+ @Override
+ public Species getSpecies() {
+ return editObject.getSpecies();
+ }
+
+ @Override
+ public void setSpecies(Species species) {
+ Object oldValue = getSpecies();
+ editObject.setSpecies(species);
+ firePropertyChange(PROPERTY_SPECIES, oldValue, species);
+ }
+
+ @Override
+ public Float getSize() {
+ return editObject.getSize();
+ }
+
+ @Override
+ public void setSize(Float size) {
+ Object oldValue = getSize();
+ editObject.setSize(size);
+ firePropertyChange(PROPERTY_SIZE, oldValue, size);
+ }
+
+ @Override
+ public Caracteristic getLengthStepCaracteristic() {
+ return editObject.getLengthStepCaracteristic();
+ }
+
+ @Override
+ public void setLengthStepCaracteristic(Caracteristic lengthStepCaracteristic) {
+ Object oldValue = getLengthStepCaracteristic();
+ editObject.setLengthStepCaracteristic(lengthStepCaracteristic);
+ firePropertyChange(PROPERTY_LENGTH_STEP_CARACTERISTIC, oldValue, lengthStepCaracteristic);
+ }
+
+ @Override
+ public CaracteristicMap getCaracteristics() {
+ return editObject.getCaracteristics();
+ }
+
+ @Override
+ public void setCaracteristics(CaracteristicMap caracteristics) {
+ Object oldValue = getCaracteristics();
+ editObject.setCaracteristics(caracteristics);
+ firePropertyChange(PROPERTY_CARACTERISTICS, oldValue, caracteristics);
+ }
+
+ @Override
+ public String getSamplingCode() {
+ return editObject.getSamplingCode();
+ }
+
+ @Override
+ public void setSamplingCode(String samplingCode) {
+ Object oldValue = getSamplingCode();
+ editObject.setSamplingCode(samplingCode);
+ firePropertyChange(PROPERTY_SAMPLING_CODE, oldValue, samplingCode);
+ }
+
+ @Override
+ public Integer getCalcifiedPieceSamplingCode() {
+ return editObject.getCalcifiedPieceSamplingCode();
+ }
+
+ @Override
+ public void setCalcifiedPieceSamplingCode(Integer calcifiedPieceSamplingCode) {
+ Object oldValue = getCalcifiedPieceSamplingCode();
+ editObject.setCalcifiedPieceSamplingCode(calcifiedPieceSamplingCode);
+ firePropertyChange(PROPERTY_CALCIFIED_PIECE_SAMPLING_CODE, oldValue, calcifiedPieceSamplingCode);
+ }
+
+ @Override
+ public String getComment() {
+ return editObject.getComment();
+ }
+
+ @Override
+ public void setComment(String comment) {
+ Object oldValue = getComment();
+ editObject.setComment(comment);
+ firePropertyChange(PROPERTY_COMMENT, oldValue, comment);
+ }
+
+ //------------------------------------------------------------------------//
+ //-- AttachmentModelAware --//
+ //------------------------------------------------------------------------//
+
+ @Override
+ public AttachementObjectTypeEnum getObjectType() {
+ return AttachementObjectTypeEnum.SAMPLE;
+ }
+
+ @Override
+ public String getObjectId() {
+ return getId();
+ }
+
+ @Override
+ public List<Attachment> getAttachment() {
+ return attachment;
+ }
+
+ @Override
+ public void addAllAttachment(Collection<Attachment> attachments) {
+ this.attachment.addAll(attachments);
+ firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
+ }
+
+ @Override
+ public void addAttachment(Attachment attachment) {
+ this.attachment.add(attachment);
+ firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
+ }
+
+ @Override
+ public void removeAllAttachment(Collection<Attachment> attachments) {
+ this.attachment.removeAll(attachments);
+ firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
+ }
+
+ @Override
+ public void removeAttachment(Attachment attachment) {
+ this.attachment.remove(attachment);
+ firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
+ }
+}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java 2013-04-10 14:16:08 UTC (rev 758)
@@ -0,0 +1,76 @@
+package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation;
+
+import fr.ifremer.tutti.ui.swing.content.operation.catches.marinelitter.MarineLitterBatchRowModel;
+import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
+import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
+import org.jdesktop.swingx.table.TableColumnModelExt;
+
+import static org.nuiton.i18n.I18n.n_;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ */
+public class IndividualObservationBatchTableModel extends AbstractTuttiTableModel<IndividualObservationBatchRowModel> {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final ColumnIdentifier<IndividualObservationBatchRowModel> SPECIES = ColumnIdentifier.newId(
+ IndividualObservationBatchRowModel.PROPERTY_SPECIES,
+ n_("tutti.editIndividualObservationBatch.table.header.species"),
+ n_("tutti.editIndividualObservationBatch.table.header.species.tip"));
+
+ public static final ColumnIdentifier<IndividualObservationBatchRowModel> WEIGHT = ColumnIdentifier.newId(
+ IndividualObservationBatchRowModel.PROPERTY_WEIGHT,
+ n_("tutti.editIndividualObservationBatch.table.header.weight"),
+ n_("tutti.editIndividualObservationBatch.table.header.weight.tip"));
+
+ public static final ColumnIdentifier<IndividualObservationBatchRowModel> SIZE = ColumnIdentifier.newId(
+ IndividualObservationBatchRowModel.PROPERTY_SIZE,
+ n_("tutti.editIndividualObservationBatch.table.header.size"),
+ n_("tutti.editIndividualObservationBatch.table.header.size.tip"));
+
+ public static final ColumnIdentifier<IndividualObservationBatchRowModel> LENGTH_STEP_CARACTERISTIC = ColumnIdentifier.newId(
+ IndividualObservationBatchRowModel.PROPERTY_LENGTH_STEP_CARACTERISTIC,
+ n_("tutti.editIndividualObservationBatch.table.header.lengthStepCaracteristic"),
+ n_("tutti.editIndividualObservationBatch.table.header.lengthStepCaracteristic.tip"));
+
+ public static final ColumnIdentifier<IndividualObservationBatchRowModel> OTHER_CARACTERISTICS = ColumnIdentifier.newId(
+ IndividualObservationBatchRowModel.PROPERTY_CARACTERISTICS,
+ n_("tutti.editIndividualObservationBatch.table.header.otherCaracteristics"),
+ n_("tutti.editIndividualObservationBatch.table.header.otherCaracteristics.tip"));
+
+ public static final ColumnIdentifier<IndividualObservationBatchRowModel> CALCIFIED_PIECE_SAMPLING_CODE = ColumnIdentifier.newId(
+ IndividualObservationBatchRowModel.PROPERTY_CALCIFIED_PIECE_SAMPLING_CODE,
+ n_("tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode"),
+ n_("tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode.tip"));
+
+ public static final ColumnIdentifier<IndividualObservationBatchRowModel> SAMPLING_CODE = ColumnIdentifier.newId(
+ IndividualObservationBatchRowModel.PROPERTY_SAMPLING_CODE,
+ n_("tutti.editIndividualObservationBatch.table.header.samplingCode"),
+ n_("tutti.editIndividualObservationBatch.table.header.samplingCode.tip"));
+
+ public static final ColumnIdentifier<IndividualObservationBatchRowModel> COMMENT = ColumnIdentifier.newId(
+ IndividualObservationBatchRowModel.PROPERTY_COMMENT,
+ n_("tutti.editIndividualObservationBatch.table.header.comment"),
+ n_("tutti.editIndividualObservationBatch.table.header.comment.tip"));
+
+ public static final ColumnIdentifier<IndividualObservationBatchRowModel> ATTACHMENT = ColumnIdentifier.newReadOnlyId(
+ IndividualObservationBatchRowModel.PROPERTY_ATTACHMENT,
+ n_("tutti.editIndividualObservationBatch.table.header.file"),
+ n_("tutti.editIndividualObservationBatch.table.header.file.tip"));
+
+ public IndividualObservationBatchTableModel(TableColumnModelExt columnModel) {
+ super(columnModel, false, false);
+
+ setNoneEditableCols();
+ }
+
+ @Override
+ public IndividualObservationBatchRowModel createNewRow() {
+ IndividualObservationBatchRowModel result = new IndividualObservationBatchRowModel();
+
+ // by default empty row is not valid
+ result.setValid(false);
+ return result;
+ }
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css (from rev 757, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.css)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css 2013-04-10 14:16:08 UTC (rev 758)
@@ -0,0 +1,66 @@
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 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%
+ */
+
+#editIndividualObservationBatchTopPanel {
+ _help: {"tuttihelp.editIndividualObservationBatch.help"};
+}
+
+#individualObservationBatchTabToolBar {
+ floatable: false;
+ opaque: false;
+ borderPainted: false;
+}
+
+#individualObservationBatchAttachmentsButton {
+ enabled: {model.getObjectId() != null};
+}
+
+#tablePopup {
+ label: "tutti.editIndividualObservationBatch.title.batchActions";
+}
+
+#table {
+ selectionMode: {ListSelectionModel.SINGLE_SELECTION};
+ selectionBackground: {null};
+ selectionForeground: {Color.BLACK};
+ sortable: false;
+}
+
+#createIndividualObservationBatchButton {
+ actionIcon: batch-create;
+ text: "tutti.editIndividualObservationBatch.action.createBatch";
+ toolTipText: "tutti.editIndividualObservationBatch.action.createBatch.tip";
+ i18nMnemonic: "tutti.editIndividualObservationBatch.action.createBatch.mnemonic";
+ _help: {"tutti.editIndividualObservationBatch.action.createBatch.help"};
+}
+
+#removeIndividualObservationBatchMenu {
+ actionIcon: batch-delete;
+ text: "tutti.editIndividualObservationBatch.action.removeBatch";
+ toolTipText: "tutti.editIndividualObservationBatch.action.removeBatch.tip";
+ i18nMnemonic: "tutti.editIndividualObservationBatch.action.removeBatch.mnemonic";
+ _tuttiAction: {RemoveIndividualObservationBatchAction.class};
+ enabled: {model.isRemoveBatchEnabled()};
+ _help: {"tutti.editIndividualObservationBatch.action.removeBatch.help"};
+}
\ No newline at end of file
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx 2013-04-10 14:16:08 UTC (rev 758)
@@ -0,0 +1,78 @@
+
+<JPanel id='editIndividualObservationBatchTopPanel' layout='{new BorderLayout()}'
+ decorator='help'
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<IndividualObservationBatchUIModel, IndividualObservationBatchUIHandler>'>
+
+ <import>
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
+ fr.ifremer.tutti.ui.swing.TuttiUIContext
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
+ fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment
+
+ jaxx.runtime.swing.editor.NumberEditor
+
+ org.jdesktop.swingx.JXTable
+
+ javax.swing.ListSelectionModel
+
+ java.awt.Color
+
+ static org.nuiton.i18n.I18n._
+ </import>
+
+ <script><![CDATA[
+
+public IndividualObservationBatchUI(TuttiUI<?,?> parentUI) {
+ JAXXUtil.initContext(this, parentUI);
+ IndividualObservationBatchUIHandler handler = new IndividualObservationBatchUIHandler(parentUI, this);
+ setContextValue(handler);
+ handler.beforeInitUI();
+}
+
+protected void $afterCompleteSetup() { handler.afterInitUI(); }
+ ]]></script>
+
+ <IndividualObservationBatchUIHandler id='handler'
+ initializer='getContextValue(IndividualObservationBatchUIHandler.class)'/>
+
+ <IndividualObservationBatchUIModel id='model'
+ initializer='getContextValue(IndividualObservationBatchUIModel.class)'/>
+
+ <BeanValidator id='validator' bean='model'
+ uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>
+ </BeanValidator>
+
+ <TuttiHelpBroker id='broker'
+ constructorParams='"tuttihelp.editIndividualObservationBatch.help"'/>
+
+ <JToolBar id='individualObservationBatchTabToolBar'>
+ <ButtonAttachment id='individualObservationBatchAttachmentsButton'
+ constructorParams='getHandler().getContext(), getModel()'/>
+ </JToolBar>
+
+ <JPopupMenu id='tablePopup'>
+ <JMenuItem id='removeIndividualObservationBatchMenu'/>
+ </JPopupMenu>
+
+ <Table id='form' fill='both' constraints='BorderLayout.NORTH'>
+
+ <!-- Toolbar / Filter -->
+ <row>
+ <cell columns="2">
+ <JPanel id='tableToolbar' layout='{new BorderLayout()}'>
+ <JPanel layout='{new GridLayout(1,0)}'
+ constraints='BorderLayout.WEST'>
+ <JButton id='createIndividualObservationBatchButton'
+ onActionPerformed='handler.createBatch()'/>
+ </JPanel>
+ </JPanel>
+ </cell>
+ </row>
+ </Table>
+
+ <JScrollPane id='tableScrollPane' constraints='BorderLayout.CENTER'>
+ <JXTable id='table'
+ onMouseClicked='handler.autoSelectRowInTable(event, tablePopup)'/>
+ </JScrollPane>
+
+</JPanel>
\ No newline at end of file
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-04-10 14:16:08 UTC (rev 758)
@@ -0,0 +1,438 @@
+package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation;
+
+import com.google.common.collect.Lists;
+import fr.ifremer.tutti.PropagatePropertyChangeListener;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
+import fr.ifremer.tutti.persistence.entities.data.Attachment;
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.service.DecoratorService;
+import fr.ifremer.tutti.ui.swing.content.operation.AbstractTuttiBatchTableUIHandler;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.caracteristics.CaracteristicMapCellComponent;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.create.CreateIndividualObservationBatchUI;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.create.CreateIndividualObservationBatchUIModel;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchTableModel;
+import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
+import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellEditor;
+import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellRenderer;
+import fr.ifremer.tutti.ui.swing.util.comment.CommentCellEditor;
+import fr.ifremer.tutti.ui.swing.util.comment.CommentCellRenderer;
+import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction;
+import jaxx.runtime.SwingUtil;
+import jaxx.runtime.validator.swing.SwingValidator;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jdesktop.swingx.JXTable;
+import org.jdesktop.swingx.decorator.ComponentAdapter;
+import org.jdesktop.swingx.decorator.HighlightPredicate;
+import org.jdesktop.swingx.decorator.Highlighter;
+import org.jdesktop.swingx.table.DefaultTableColumnModelExt;
+import org.nuiton.util.decorator.Decorator;
+
+import java.awt.*;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.4
+ */
+public class IndividualObservationBatchUIHandler
+ extends AbstractTuttiBatchTableUIHandler<IndividualObservationBatchRowModel, IndividualObservationBatchUIModel, IndividualObservationBatchUI> {
+
+ private static final Log log =
+ LogFactory.getLog(IndividualObservationBatchUIHandler.class);
+
+ public IndividualObservationBatchUIHandler(TuttiUI<?, ?> parentUi, IndividualObservationBatchUI ui) {
+ super(parentUi, ui,
+ IndividualObservationBatchRowModel.PROPERTY_SPECIES,
+ IndividualObservationBatchRowModel.PROPERTY_WEIGHT,
+ IndividualObservationBatchRowModel.PROPERTY_SIZE,
+ IndividualObservationBatchRowModel.PROPERTY_LENGTH_STEP_CARACTERISTIC,
+ IndividualObservationBatchRowModel.PROPERTY_CARACTERISTICS,
+ IndividualObservationBatchRowModel.PROPERTY_CALCIFIED_PIECE_SAMPLING_CODE,
+ IndividualObservationBatchRowModel.PROPERTY_SAMPLING_CODE,
+ IndividualObservationBatchRowModel.PROPERTY_COMMENT,
+ IndividualObservationBatchRowModel.PROPERTY_ATTACHMENT);
+ }
+
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiBatchTableUIHandler methods --//
+ //------------------------------------------------------------------------//
+
+ @Override
+ public void selectFishingOperation(FishingOperation bean) {
+
+ boolean empty = bean == null;
+
+ IndividualObservationBatchUIModel model = getModel();
+
+ List<IndividualObservationBatchRowModel> rows;
+
+ if (empty) {
+ rows = null;
+ } else {
+
+ if (log.isInfoEnabled()) {
+ log.info("Get individualObservation batch for fishingOperation: " +
+ bean.getId());
+ }
+ rows = Lists.newArrayList();
+
+// if (!TuttiEntities.isNew(bean)) {
+//
+// }
+ }
+ model.setRows(rows);
+ recomputeBatchActionEnable();
+ }
+
+ protected IndividualObservationBatchRowModel loadBatch(IndividualObservationBatch aBatch) {
+
+ Integer id = aBatch.getIdAsInt();
+
+ List<Attachment> attachments =
+ persistenceService.getAllAttachments(id);
+
+ IndividualObservationBatchRowModel newRow =
+ new IndividualObservationBatchRowModel(aBatch, attachments);
+
+ return newRow;
+ }
+
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiTableUIHandler methods --//
+ //------------------------------------------------------------------------//
+
+ @Override
+ public IndividualObservationBatchTableModel getTableModel() {
+ return (IndividualObservationBatchTableModel) getTable().getModel();
+ }
+
+ @Override
+ public JXTable getTable() {
+ return ui.getTable();
+ }
+
+ @Override
+ protected boolean isRowValid(IndividualObservationBatchRowModel row) {
+// boolean result = row.getMarineLitterCategory() != null &&
+// row.getMarineLitterSizeCategory() != null &&
+// row.getNumber() != null;
+// return result;
+ return true;
+ }
+
+ @Override
+ protected void onRowModified(int rowIndex,
+ IndividualObservationBatchRowModel row,
+ String propertyName,
+ Object oldValue,
+ Object newValue) {
+ recomputeRowValidState(row);
+
+ saveSelectedRowIfNeeded();
+
+ // when row valid state has changed, recompute action enabled states
+ recomputeBatchActionEnable();
+ }
+
+ @Override
+ protected void saveSelectedRowIfRequired(TuttiBeanMonitor<IndividualObservationBatchRowModel> rowMonitor,
+ IndividualObservationBatchRowModel row) {
+
+ if (row != null && row.isValid() && rowMonitor.wasModified()) {
+
+ // monitored bean was modified, save it
+ if (log.isInfoEnabled()) {
+ log.info("Row " + row + " was modified, will save it");
+ }
+
+ rowMonitor.setBean(null);
+ saveRow(row);
+ rowMonitor.setBean(row);
+
+ // clear modified flag on the monitor
+ rowMonitor.clearModified();
+ }
+ }
+
+ @Override
+ protected void onRowValidStateChanged(int rowIndex,
+ IndividualObservationBatchRowModel row,
+ Boolean oldValue,
+ Boolean newValue) {
+ super.onRowValidStateChanged(rowIndex, row, oldValue, newValue);
+
+ // when row valid state has changed, recompute action enabled states
+ recomputeBatchActionEnable();
+ }
+
+ @Override
+ protected void onAfterSelectedRowChanged(int oldRowIndex,
+ IndividualObservationBatchRowModel oldRow,
+ int newRowIndex,
+ IndividualObservationBatchRowModel newRow) {
+ super.onAfterSelectedRowChanged(oldRowIndex, oldRow, newRowIndex, newRow);
+
+ // when selected row has changed, recompute action enabled states
+ recomputeBatchActionEnable();
+ }
+
+ @Override
+ protected void addHighlighters(JXTable table) {
+ super.addHighlighters(table);
+
+ // paint in a special color for comment cell (with not null value)
+ Color cellWithValueColor = getConfig().getColorCellWithValue();
+
+ Highlighter commentHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
+ new HighlightPredicate.AndHighlightPredicate(
+ new HighlightPredicate.IdentifierHighlightPredicate(IndividualObservationBatchTableModel.COMMENT),
+ // for not null value
+ new HighlightPredicate() {
+ @Override
+ public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
+ String value = (String) adapter.getValue();
+ return StringUtils.isNotBlank(value);
+ }
+ }), cellWithValueColor);
+ table.addHighlighter(commentHighlighter);
+
+ // paint in a special color for attachment cell (when some attachments)
+
+ Highlighter attachmentHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
+ new HighlightPredicate.AndHighlightPredicate(
+ new HighlightPredicate.IdentifierHighlightPredicate(IndividualObservationBatchTableModel.ATTACHMENT),
+ // for not null value
+ new HighlightPredicate() {
+ @Override
+ public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
+ Collection attachments = (Collection) adapter.getValue();
+ return CollectionUtils.isNotEmpty(attachments);
+ }
+ }
+ ), cellWithValueColor);
+ table.addHighlighter(attachmentHighlighter);
+ }
+
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiUIHandler methods --//
+ //------------------------------------------------------------------------//
+
+ @Override
+ public SwingValidator<IndividualObservationBatchUIModel> getValidator() {
+ return ui.getValidator();
+ }
+
+ @Override
+ public void beforeInitUI() {
+
+ if (log.isInfoEnabled()) {
+ log.info("beforeInit: " + ui);
+ }
+
+ EditCatchesUIModel catchesUIModel =
+ ui.getContextValue(EditCatchesUIModel.class);
+
+ IndividualObservationBatchUIModel model = new IndividualObservationBatchUIModel(catchesUIModel);
+ ui.setContextValue(model);
+
+ // propagate when value is changing
+ PropagatePropertyChangeListener.listenAndPropagate(
+ catchesUIModel,
+ model,
+ EditCatchesUIModel.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT,
+ EditCatchesUIModel.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT);
+ }
+
+ @Override
+ public void afterInitUI() {
+
+ if (log.isDebugEnabled()) {
+ log.debug("afterInit: " + ui);
+ }
+
+ initUI(ui);
+
+ JXTable table = getTable();
+
+ // can show / hide some columns in model
+ table.setColumnControlVisible(true);
+
+ // create table column model
+ DefaultTableColumnModelExt columnModel =
+ new DefaultTableColumnModelExt();
+ Decorator<Caracteristic> caracteristicDecorator =
+ getDecorator(Caracteristic.class, null);
+
+ { // Species column
+
+ Decorator<Species> speciesDecorator = getDecorator(
+ Species.class, DecoratorService.FROM_PROTOCOL);
+ addComboDataColumnToModel(columnModel,
+ IndividualObservationBatchTableModel.SPECIES,
+ speciesDecorator, getDataContext().getReferentSpecies());
+ }
+
+ { // Weight column
+
+ addFloatColumnToModel(columnModel,
+ IndividualObservationBatchTableModel.WEIGHT,
+ TuttiUI.DECIMAL3_PATTERN);
+ }
+
+ { // Size column
+
+ addFloatColumnToModel(columnModel,
+ IndividualObservationBatchTableModel.SIZE,
+ TuttiUI.DECIMAL3_PATTERN);
+ }
+
+ { // Length step caracteristic column
+
+ addComboDataColumnToModel(columnModel,
+ IndividualObservationBatchTableModel.LENGTH_STEP_CARACTERISTIC,
+ caracteristicDecorator, getDataContext().getLengthStepCaracteristics());
+
+ }
+
+ { // Other caracteristics column
+
+ Color computedDataColor = getConfig().getColorComputedWeights();
+ addColumnToModel(columnModel,
+ CaracteristicMapCellComponent.newEditor(ui),
+ CaracteristicMapCellComponent.newRender(getContext()),
+ IndividualObservationBatchTableModel.OTHER_CARACTERISTICS);
+
+ }
+
+ { // Calcified piece sampling code column
+
+ addColumnToModel(columnModel,
+ IndividualObservationBatchTableModel.CALCIFIED_PIECE_SAMPLING_CODE);
+ }
+
+ { // Sampling code column
+
+ addColumnToModel(columnModel,
+ IndividualObservationBatchTableModel.SAMPLING_CODE);
+ }
+
+ { // Comment column
+
+ addColumnToModel(columnModel,
+ CommentCellEditor.newEditor(ui),
+ CommentCellRenderer.newRender(),
+ IndividualObservationBatchTableModel.COMMENT);
+ }
+
+ { // File column
+
+ addColumnToModel(columnModel,
+ AttachmentCellEditor.newEditor(ui),
+ AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
+ IndividualObservationBatchTableModel.ATTACHMENT);
+ }
+
+ // create table model
+ IndividualObservationBatchTableModel tableModel =
+ new IndividualObservationBatchTableModel(columnModel);
+
+ table.setModel(tableModel);
+ table.setColumnModel(columnModel);
+
+ initBatchTable(table, columnModel, tableModel);
+ recomputeBatchActionEnable();
+ }
+
+ @Override
+ public void onCloseUI() {
+ if (log.isDebugEnabled()) {
+ log.debug("closing: " + ui);
+ }
+ ui.getIndividualObservationBatchAttachmentsButton().onCloseUI();
+ }
+
+ //------------------------------------------------------------------------//
+ //-- Public methods --//
+ //------------------------------------------------------------------------//
+
+ public void createBatch() {
+
+ EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
+ CreateIndividualObservationBatchUI createBatchEditor = parent.getIndividualObservationTabCreateBatch();
+
+ createBatchEditor.getHandler().openUI();
+ parent.getHandler().setIndividualObservationSelectedCard(EditCatchesUIHandler.CREATE_BATCH_CARD);
+ }
+
+ public void addBatch(CreateIndividualObservationBatchUIModel model) {
+ if (model.isValid()) {
+
+ IndividualObservationBatchTableModel tableModel = getTableModel();
+
+ IndividualObservationBatchRowModel newRow = tableModel.createNewRow();
+ newRow.setSpecies(model.getSpecies());
+ newRow.setWeight(model.getWeight());
+ newRow.setSize(model.getSize());
+ newRow.setLengthStepCaracteristic(model.getLengthStepCaracteristic());
+
+ recomputeRowValidState(newRow);
+
+ saveRow(newRow);
+
+ tableModel.addNewRow(newRow);
+ AbstractSelectTableAction.doSelectCell(getTable(), tableModel.getRowCount() - 1, 0);
+ }
+
+ recomputeBatchActionEnable();
+ }
+
+ //------------------------------------------------------------------------//
+ //-- Internal methods --//
+ //------------------------------------------------------------------------//
+
+ protected void recomputeBatchActionEnable() {
+
+ int rowIndex = getTable().getSelectedRow();
+
+ boolean enableRemove = false;
+
+ if (rowIndex != -1) {
+
+ // there is a selected row
+ enableRemove = true;
+ }
+ IndividualObservationBatchUIModel model = getModel();
+ model.setRemoveBatchEnabled(enableRemove);
+ }
+
+ protected void saveRow(IndividualObservationBatchRowModel row) {
+
+// IndividualObservationBatch catchBean = row.toBean();
+//
+// FishingOperation fishingOperation = getModel().getFishingOperation();
+// catchBean.setFishingOperation(fishingOperation);
+// if (log.isInfoEnabled()) {
+// log.info("Selected fishingOperation: " + fishingOperation.getId());
+// }
+//
+// if (TuttiEntities.isNew(catchBean)) {
+//
+// catchBean = persistenceService.createMarineLitterBatch(catchBean);
+// row.setId(catchBean.getId());
+// } else {
+// persistenceService.saveMarineLitterBatch(catchBean);
+// }
+ }
+}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java 2013-04-10 14:16:08 UTC (rev 758)
@@ -0,0 +1,134 @@
+package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation;
+
+import com.google.common.collect.Lists;
+import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
+import fr.ifremer.tutti.persistence.entities.data.Attachment;
+import fr.ifremer.tutti.ui.swing.content.operation.AbstractTuttiBatchUIModel;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.marinelitter.MarineLitterBatchRowModel;
+import fr.ifremer.tutti.ui.swing.util.TabContentModel;
+import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
+import org.apache.commons.collections.CollectionUtils;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.4
+ */
+public class IndividualObservationBatchUIModel extends AbstractTuttiBatchUIModel<IndividualObservationBatchRowModel, IndividualObservationBatchUIModel>
+ implements AttachmentModelAware, TabContentModel {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final String PROPERTY_REMOVE_BATCH_ENABLED = "removeBatchEnabled";
+
+ protected final List<Attachment> attachment = Lists.newArrayList();
+
+ /**
+ * Can user remove a selected batch?
+ */
+ protected boolean removeBatchEnabled;
+
+ private String rootBatchId;
+
+ public IndividualObservationBatchUIModel(EditCatchesUIModel catchesUIModel) {
+ super(catchesUIModel);
+ }
+
+ public boolean isRemoveBatchEnabled() {
+ return removeBatchEnabled;
+ }
+
+ public void setRemoveBatchEnabled(boolean removeBatchEnabled) {
+ Object oldValue = isRemoveBatchEnabled();
+ this.removeBatchEnabled = removeBatchEnabled;
+ firePropertyChange(PROPERTY_REMOVE_BATCH_ENABLED, oldValue, removeBatchEnabled);
+ }
+
+ public void setRootBatchId(String rootBatchId) {
+ String oldValue = getObjectId();
+ this.rootBatchId = rootBatchId;
+ firePropertyChange(PROPERTY_OBJECT_ID, oldValue, getObjectId());
+ }
+
+ public String getRootBatchId() {
+ return rootBatchId;
+ }
+
+ //------------------------------------------------------------------------//
+ //-- AttachmentModelAware --//
+ //------------------------------------------------------------------------//
+
+ @Override
+ public AttachementObjectTypeEnum getObjectType() {
+ return AttachementObjectTypeEnum.CATCH_BATCH;
+ }
+
+ @Override
+ public String getObjectId() {
+ return rootBatchId;
+ }
+
+ @Override
+ public List<Attachment> getAttachment() {
+ return attachment;
+ }
+
+ @Override
+ public void addAllAttachment(Collection<Attachment> attachments) {
+ this.attachment.addAll(attachments);
+ firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
+ }
+
+ @Override
+ public void addAttachment(Attachment attachment) {
+ this.attachment.add(attachment);
+ firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
+ }
+
+ @Override
+ public void removeAllAttachment(Collection<Attachment> attachments) {
+ this.attachment.removeAll(attachments);
+ firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
+ }
+
+ @Override
+ public void removeAttachment(Attachment attachment) {
+ this.attachment.remove(attachment);
+ firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
+ }
+
+ //------------------------------------------------------------------------//
+ //-- TabContentModel --//
+ //------------------------------------------------------------------------//
+
+ @Override
+ public boolean isEmpty() {
+ boolean result = CollectionUtils.isEmpty(getAttachment());
+ if (result && CollectionUtils.isNotEmpty(getRows())) {
+
+ // check if every line is not valid
+ for (IndividualObservationBatchRowModel row : rows) {
+ if (row.isValid()) {
+
+ // found a valid row so not empty
+ result = false;
+ break;
+ }
+ }
+ }
+ return result;
+ }
+
+ @Override
+ public String getTitle() {
+ return "tutti.label.tab.individualObservations";
+ }
+
+ @Override
+ public String getIcon() {
+ return null;
+ }
+}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/RemoveIndividualObservationBatchAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/RemoveIndividualObservationBatchAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/RemoveIndividualObservationBatchAction.java 2013-04-10 14:16:08 UTC (rev 758)
@@ -0,0 +1,85 @@
+package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation;
+
+import com.google.common.base.Preconditions;
+import fr.ifremer.tutti.persistence.TuttiPersistence;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.marinelitter.RemoveMarineLitterBatchAction;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.species.RemoveSpeciesSubBatchAction;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jdesktop.swingx.JXTable;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ */
+public class RemoveIndividualObservationBatchAction
+ extends AbstractTuttiAction<IndividualObservationBatchUIModel, IndividualObservationBatchUI, IndividualObservationBatchUIHandler> {
+
+ private static final Log log =
+ LogFactory.getLog(RemoveMarineLitterBatchAction.class);
+
+ protected RemoveSpeciesSubBatchAction removeSpeciesSubBatchAction;
+
+ public RemoveIndividualObservationBatchAction(IndividualObservationBatchUIHandler handler) {
+ super(handler, false);
+ }
+
+ int rowIndex;
+
+ @Override
+ protected void doAction() throws Exception {
+
+ JXTable table = handler.getTable();
+
+ rowIndex = table.getSelectedRow();
+
+ Preconditions.checkState(rowIndex != -1,
+ "Cant remove batch if none is selected");
+
+ IndividualObservationBatchTableModel tableModel = handler.getTableModel();
+ IndividualObservationBatchRowModel selectedBatch = tableModel.getEntry(rowIndex);
+
+ boolean persisted = !TuttiEntities.isNew(selectedBatch);
+
+ if (persisted) {
+
+ // remove it from db
+
+ String id = selectedBatch.getId();
+
+ if (log.isInfoEnabled()) {
+ log.info("Remove marineLitter with id: " + id);
+ }
+
+ TuttiPersistence persistenceService =
+ getContext().getPersistenceService();
+
+// persistenceService.deleteMarineLitterBatch(id);
+ }
+ }
+
+ @Override
+ public void postSuccessAction() {
+ super.postSuccessAction();
+
+ JXTable table = handler.getTable();
+
+ IndividualObservationBatchTableModel tableModel = handler.getTableModel();
+
+ tableModel.removeRow(rowIndex);
+
+ if (!tableModel.getRows().isEmpty()) {
+
+ // select first row
+ AbstractSelectTableAction.doSelectCell(table, 0, 0);
+ }
+
+ if (table.isEditing()) {
+
+ // but no edit it
+ table.getCellEditor().stopCellEditing();
+ }
+ }
+}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapCellComponent.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapCellComponent.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapCellComponent.java 2013-04-10 14:16:08 UTC (rev 758)
@@ -0,0 +1,255 @@
+package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.caracteristics;
+
+import com.google.common.base.Preconditions;
+import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchRowModel;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchTableModel;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchUI;
+import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction;
+import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
+import jaxx.runtime.SwingUtil;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.decorator.Decorator;
+
+import javax.swing.*;
+import javax.swing.border.LineBorder;
+import javax.swing.table.DefaultTableCellRenderer;
+import javax.swing.table.TableCellEditor;
+import javax.swing.table.TableCellRenderer;
+import java.awt.*;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ */
+public class CaracteristicMapCellComponent extends DefaultTableCellRenderer {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(CaracteristicMapCellComponent.class);
+
+ protected Decorator<Caracteristic> caracteristicDecorator;
+
+ protected Decorator<CaracteristicQualitativeValue> valueDecorator;
+
+ protected Color computedDataColor;
+
+ public CaracteristicMapCellComponent(TuttiUIContext context) {
+ super();
+ this.caracteristicDecorator =
+ context.getDecoratorService().getDecoratorByType(Caracteristic.class);
+ this.valueDecorator =
+ context.getDecoratorService().getDecoratorByType(CaracteristicQualitativeValue.class);
+ this.computedDataColor = context.getConfig().getColorComputedWeights();
+
+ setHorizontalAlignment(CENTER);
+ setIcon(SwingUtil.createActionIcon("show-frequency"));
+ }
+
+ public void setText(CaracteristicMap map) {
+ String s = "-";
+ if (map != null && map.size() > 0) {
+ s = String.valueOf(map.size());
+ }
+ setText(s);
+ Font f = this.getFont();
+ f = f.deriveFont(Font.ITALIC);
+ setFont(f);
+ setForeground(computedDataColor);
+ }
+
+ public void setToolTipText(CaracteristicMap map) {
+ String tooltipText = null;
+ if (map != null) {
+ tooltipText = "<html><ul>";
+ for (Caracteristic caracteristic : map.keySet()) {
+ tooltipText += "<li>" + caracteristicDecorator.toString(caracteristic) +
+ " : " + valueDecorator.toString(map.get(caracteristic)) + "</li>";
+ }
+ tooltipText += "</ul></html>";
+ }
+ setToolTipText(tooltipText);
+ }
+
+ public static TableCellRenderer newRender(TuttiUIContext context) {
+ return new CaracteristicMapCellRenderer(context);
+ }
+
+ public static TableCellEditor newEditor(IndividualObservationBatchUI ui) {
+ return new CaracteristicMapCellEditor(ui);
+ }
+
+ public static class CaracteristicMapCellEditor extends AbstractCellEditor implements TableCellEditor {
+
+ private static final long serialVersionUID = 1L;
+
+ protected final CaracteristicMapCellComponent component;
+
+ protected final IndividualObservationBatchUI ui;
+
+ protected JTable table;
+
+ protected IndividualObservationBatchTableModel tableModel;
+
+ protected ColumnIdentifier<IndividualObservationBatchRowModel> columnIdentifier;
+
+ protected IndividualObservationBatchRowModel editRow;
+
+ protected Integer rowIndex;
+
+ protected Integer columnIndex;
+
+ public CaracteristicMapCellEditor(IndividualObservationBatchUI ui) {
+ this.ui = ui;
+ component = new CaracteristicMapCellComponent(ui.getHandler().getContext());
+ component.setBorder(new LineBorder(Color.BLACK));
+ component.addKeyListener(new KeyAdapter() {
+ @Override
+ public void keyReleased(KeyEvent e) {
+ if (e.getKeyCode() == KeyEvent.VK_ENTER ||
+ e.getKeyCode() == KeyEvent.VK_SPACE) {
+ e.consume();
+ startEdit();
+ }
+ }
+ });
+
+ component.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ e.consume();
+ startEdit();
+ }
+ });
+ }
+
+ protected void startEdit() {
+
+ Preconditions.checkNotNull(tableModel, "No table model assigned.");
+
+ // open frequency dialog
+
+ Preconditions.checkNotNull(editRow, "No editRow found.");
+
+ if (log.isInfoEnabled()) {
+ log.info("Will edit frequencies for row: " + rowIndex);
+ }
+
+ EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
+ CaracteristicMapEditorUI caracteristicMapEditor = parent.getCaracteristicMapEditor();
+ caracteristicMapEditor.getHandler().editBatch(editRow, this);
+
+ // open frequency editor
+ parent.getHandler().setIndividualObservationSelectedCard(EditCatchesUIHandler.EDIT_CARACTERISTICS_CARD);
+ }
+
+ public void validateEdition(CaracteristicMapEditorUIModel caracteristicMapEditorModel) {
+ if (caracteristicMapEditorModel.isValid()) {
+
+ CaracteristicMap map = caracteristicMapEditorModel.getCaracteristicMap();
+ component.setText(map);
+ component.setToolTipText(map);
+ editRow.setCaracteristics(map);
+ }
+
+ int r = rowIndex;
+ int c = columnIndex;
+
+ // stop edition
+ stopCellEditing();
+
+ // reselect this cell
+ AbstractSelectTableAction.doSelectCell(table, r, c);
+ table.requestFocus();
+ }
+
+ @Override
+ public Component getTableCellEditorComponent(JTable table,
+ Object value,
+ boolean isSelected,
+ int row,
+ int column) {
+ tableModel = (IndividualObservationBatchTableModel) table.getModel();
+ this.table = table;
+ columnIdentifier = IndividualObservationBatchTableModel.OTHER_CARACTERISTICS;
+ if (log.isDebugEnabled()) {
+ log.debug("Set columnIdentifier (" + column + ") :: " + columnIdentifier.getPropertyName());
+ }
+
+ rowIndex = row;
+ columnIndex = column;
+
+ editRow = tableModel.getEntry(row);
+
+ component.setText(editRow.getCaracteristics());
+ component.setToolTipText(editRow.getCaracteristics());
+
+ return component;
+ }
+
+ @Override
+ public Object getCellEditorValue() {
+
+ Preconditions.checkNotNull(editRow, "No editRow found in editor.");
+
+ Object result = null;
+ if (columnIdentifier == IndividualObservationBatchTableModel.OTHER_CARACTERISTICS) {
+ result = editRow.getCaracteristics();
+ }
+ if (log.isDebugEnabled()) {
+ log.debug("editor value (" + columnIdentifier + "): " + result);
+ }
+
+ return result;
+ }
+
+ @Override
+ public void cancelCellEditing() {
+ super.cancelCellEditing();
+ rowIndex = null;
+ columnIndex = null;
+ editRow = null;
+ }
+ }
+
+ public static class CaracteristicMapCellRenderer implements TableCellRenderer {
+
+ protected final CaracteristicMapCellComponent component;
+
+ public CaracteristicMapCellRenderer(TuttiUIContext context) {
+ component = new CaracteristicMapCellComponent(context);
+ }
+
+ @Override
+ public Component getTableCellRendererComponent(JTable table,
+ Object value,
+ boolean isSelected,
+ boolean hasFocus,
+ int row,
+ int column) {
+
+ CaracteristicMapCellComponent result =
+ (CaracteristicMapCellComponent) component.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
+
+ boolean editable = table.isCellEditable(row, column);
+ result.setEnabled(editable);
+
+ CaracteristicMap map = (CaracteristicMap) value;
+ result.setText(map);
+ result.setToolTipText(map);
+
+ return result;
+ }
+ }
+}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorRowModel.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorRowModel.java 2013-04-10 14:16:08 UTC (rev 758)
@@ -0,0 +1,12 @@
+package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.caracteristics;
+
+import fr.ifremer.tutti.ui.swing.content.operation.fishing.AbstractCaracteristicRowModel;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ */
+public class CaracteristicMapEditorRowModel extends AbstractCaracteristicRowModel<CaracteristicMapEditorRowModel> {
+
+ private static final long serialVersionUID = 1L;
+
+}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorTableModel.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorTableModel.java 2013-04-10 14:16:08 UTC (rev 758)
@@ -0,0 +1,37 @@
+package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.caracteristics;
+
+import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
+import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
+import org.jdesktop.swingx.table.TableColumnModelExt;
+
+import static org.nuiton.i18n.I18n.n_;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.4
+ */
+public class CaracteristicMapEditorTableModel extends AbstractTuttiTableModel<CaracteristicMapEditorRowModel> {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final ColumnIdentifier<CaracteristicMapEditorRowModel> KEY = ColumnIdentifier.newId(
+ CaracteristicMapEditorRowModel.PROPERTY_KEY,
+ n_("tutti.caracteristicMapEditorTable.table.header.key"),
+ n_("tutti.caracteristicMapEditorTable.table.header.key"));
+
+ public static final ColumnIdentifier<CaracteristicMapEditorRowModel> VALUE = ColumnIdentifier.newId(
+ CaracteristicMapEditorRowModel.PROPERTY_VALUE,
+ n_("tutti.caracteristicMapEditorTable.table.header.value"),
+ n_("tutti.caracteristicMapEditorTable.table.header.value"));
+
+ public CaracteristicMapEditorTableModel(TableColumnModelExt columnModel) {
+ super(columnModel, false, false);
+ setNoneEditableCols(KEY);
+ }
+
+ @Override
+ public CaracteristicMapEditorRowModel createNewRow() {
+ CaracteristicMapEditorRowModel result = new CaracteristicMapEditorRowModel();
+ return result;
+ }
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUI.css (from rev 757, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureTabUI.css)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUI.css (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUI.css 2013-04-10 14:16:08 UTC (rev 758)
@@ -0,0 +1,38 @@
+BeanFilterableComboBox {
+ i18nPrefix: "tutti.property.";
+ showReset: true;
+}
+
+#newRowKey {
+ property: selectedCaracteristic;
+ enabled: {!newRowKey.isEmpty()};
+}
+
+#addRow {
+ actionIcon: add;
+ enabled: {newRowKey.getSelectedItem() != null};
+}
+
+#caracteristicMapEditorTable {
+ selectionMode: {ListSelectionModel.SINGLE_SELECTION};
+ selectionBackground: {null};
+ selectionForeground: {Color.BLACK};
+ sortable: false;
+}
+
+#cancelButton {
+ actionIcon: cancel;
+ text: "tutti.editSpeciesFrequencies.action.cancel";
+ toolTipText: "tutti.editSpeciesFrequencies.action.cancel.tip";
+ i18nMnemonic: "tutti.editSpeciesFrequencies.action.cancel.mnemonic";
+ _help: {"tutti.editSpeciesFrequencies.action.cancel.help"};
+}
+
+#saveButton {
+ actionIcon: save;
+ text: "tutti.editSpeciesFrequencies.action.save";
+ toolTipText: "tutti.editSpeciesFrequencies.action.save.tip";
+ i18nMnemonic: "tutti.editSpeciesFrequencies.action.save.mnemonic";
+ enabled: {model.isValid()};
+ _help: {"tutti.editSpeciesFrequencies.action.save.help"};
+}
\ No newline at end of file
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUI.jaxx (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUI.jaxx 2013-04-10 14:16:08 UTC (rev 758)
@@ -0,0 +1,66 @@
+<Table implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<CaracteristicMapEditorUIModel, CaracteristicMapEditorUIHandler>'>
+
+ <import>
+ fr.ifremer.tutti.persistence.entities.referential.Caracteristic
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
+
+ jaxx.runtime.swing.editor.bean.BeanFilterableComboBox
+ org.jdesktop.swingx.JXTable
+ javax.swing.ListSelectionModel
+ java.awt.Color
+ </import>
+
+ <CaracteristicMapEditorUIHandler id='handler'
+ initializer='getContextValue(CaracteristicMapEditorUIHandler.class)'/>
+
+ <CaracteristicMapEditorUIModel id='model'
+ initializer='getContextValue(CaracteristicMapEditorUIModel.class)'/>
+
+ <JPopupMenu id='tablePopup'>
+ <JMenuItem id='removeCaracteristicMenu'
+ onActionPerformed='handler.removeCaracteristic()'/>
+ </JPopupMenu>
+
+ <row fill='both'>
+ <cell fill='both' weightx='1'>
+ <BeanFilterableComboBox id='newRowKey' constructorParams='this'
+ genericType='Caracteristic'/>
+ </cell>
+ <cell fill='both'>
+ <JButton id='addRow' onActionPerformed='handler.addRow()'/>
+ </cell>
+ </row>
+ <row fill='both' weighty='1'>
+ <cell fill='both' columns='2'>
+ <JScrollPane>
+ <JXTable id='caracteristicMapEditorTable'
+ onMouseClicked='handler.autoSelectRowInTable(event, tablePopup)'/>
+ </JScrollPane>
+ </cell>
+ </row>
+
+ <!-- Form Actions -->
+ <row fill='both'>
+ <cell fill='both' columns='2'>
+ <JPanel layout='{new GridLayout(1, 0)}'>
+ <JButton id='cancelButton' onActionPerformed='handler.cancel()'/>
+ <JButton id='saveButton' onActionPerformed='handler.save()'/>
+ </JPanel>
+ </cell>
+ </row>
+ <script><![CDATA[
+
+public CaracteristicMapEditorUI(TuttiUI parentUI) {
+ JAXXUtil.initContext(this, parentUI);
+ CaracteristicMapEditorUIHandler handler = new CaracteristicMapEditorUIHandler(parentUI, this);
+ setContextValue(handler);
+ handler.beforeInitUI();
+}
+
+protected void $afterCompleteSetup() {
+ handler.afterInitUI();
+}
+
+ ]]></script>
+
+</Table>
\ No newline at end of file
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUIHandler.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUIHandler.java 2013-04-10 14:16:08 UTC (rev 758)
@@ -0,0 +1,314 @@
+package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.caracteristics;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
+import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
+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.content.operation.catches.EditCatchesUI;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchRowModel;
+import fr.ifremer.tutti.ui.swing.util.Cancelable;
+import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
+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.SwingUtil;
+import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox;
+import jaxx.runtime.validator.swing.SwingValidator;
+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;
+
+import static fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.caracteristics.CaracteristicMapCellComponent.CaracteristicMapCellEditor;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.4
+ */
+public class CaracteristicMapEditorUIHandler
+ extends AbstractTuttiTableUIHandler<CaracteristicMapEditorRowModel, CaracteristicMapEditorUIModel, CaracteristicMapEditorUI>
+ implements Cancelable {
+
+ private final static Log log =
+ LogFactory.getLog(CaracteristicMapEditorUIHandler.class);
+
+ protected CaracteristicMapCellEditor caracteristicMapCellEditor;
+
+ public CaracteristicMapEditorUIHandler(TuttiUI parentUi,
+ CaracteristicMapEditorUI ui) {
+ super(parentUi.getHandler().getContext(), ui, CaracteristicMapEditorRowModel.PROPERTY_VALUE);
+ }
+
+ @Override
+ public CaracteristicMapEditorTableModel getTableModel() {
+ return (CaracteristicMapEditorTableModel) getTable().getModel();
+ }
+
+ @Override
+ public JXTable getTable() {
+ return ui.getCaracteristicMapEditorTable();
+ }
+
+ @Override
+ protected boolean isRowValid(CaracteristicMapEditorRowModel row) {
+ return row.getKey() != null && row.getValue() != null;
+ }
+
+ @Override
+ protected void onRowModified(int rowIndex, CaracteristicMapEditorRowModel row,
+ String propertyName, Object oldValue, Object newValue) {
+ recomputeRowValidState(row);
+ super.onRowModified(rowIndex, row, propertyName, oldValue, newValue);
+ saveSelectedRowIfNeeded();
+ }
+
+ @Override
+ protected void saveSelectedRowIfRequired(TuttiBeanMonitor<CaracteristicMapEditorRowModel> rowMonitor,
+ CaracteristicMapEditorRowModel row) {
+ if (row.isValid()) {
+ // there is a valid bean attached to the monitor
+
+ if (rowMonitor.wasModified()) {
+
+ // monitored bean was modified, save it
+ if (log.isInfoEnabled()) {
+ log.info("Row " + row + " was modified, will save it");
+ }
+
+ saveRow(row);
+
+ }
+ }
+ }
+
+ @Override
+ public void beforeInitUI() {
+ CaracteristicMapEditorUIModel model = createModel();
+ getUI().setContextValue(model);
+ }
+
+ @Override
+ public void afterInitUI() {
+ initUI(getUI());
+
+ initBeanFilterableComboBox(getKeyCombo(), Lists.<Caracteristic>newArrayList(), null);
+ getModel().setAvailableCaracteristics(getDataContext().getCaracteristics());
+
+ JXTable table = getTable();
+
+ // create table column model
+ DefaultTableColumnModelExt columnModel =
+ new DefaultTableColumnModelExt();
+
+ {
+
+ addColumnToModel(columnModel,
+ null,
+ newTableCellRender(Caracteristic.class, DecoratorService.CARACTERISTIC_WITH_UNIT),
+ CaracteristicMapEditorTableModel.KEY);
+ }
+
+ {
+
+ addColumnToModel(columnModel,
+ new CaracteristicValueEditor(context),
+ new CaracteristicValueRenderer(context),
+ CaracteristicMapEditorTableModel.VALUE);
+ }
+
+ // create table model
+ CaracteristicMapEditorTableModel tableModel =
+ new CaracteristicMapEditorTableModel(columnModel);
+
+ table.setModel(tableModel);
+ table.setColumnModel(columnModel);
+
+ initTable(table);
+ }
+
+ @Override
+ public void onCloseUI() {
+ if (log.isDebugEnabled()) {
+ log.debug("closing: " + ui);
+ }
+
+ // when canceling always invalid model (in that way)
+ getModel().setValid(false);
+
+ EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
+ parent.getHandler().setIndividualObservationSelectedCard(EditCatchesUIHandler.MAIN_CARD);
+ }
+
+ @Override
+ public SwingValidator<CaracteristicMapEditorUIModel> getValidator() {
+ return null;
+ }
+
+ @Override
+ public void cancel() {
+
+ if (log.isInfoEnabled()) {
+ log.info("Cancel UI " + ui);
+ }
+
+ // close dialog
+ closeUI(ui);
+ }
+
+ protected BeanFilterableComboBox<Caracteristic> getKeyCombo() {
+ return ui.getNewRowKey();
+ }
+
+ protected CaracteristicMapEditorUIModel createModel() {
+ return new CaracteristicMapEditorUIModel();
+ }
+
+ protected CaracteristicMap getCaracteristics(IndividualObservationBatch individualObservation) {
+ return individualObservation.getCaracteristics();
+ }
+
+ protected List<String> getProtocolPmfmIds(TuttiProtocol protocol) {
+ return protocol.getGearUseFeaturePmfmId();
+ }
+
+ protected void saveRow(CaracteristicMapEditorRowModel row) {
+
+ if (row.isValid()) {
+ CaracteristicMap caracteristics = getModel().getCaracteristicMap();
+ Preconditions.checkNotNull(caracteristics);
+
+ caracteristics.put(row.getKey(), row.getValue());
+ }
+ }
+
+ //------------------------------------------------------------------------//
+ //-- Public methods --//
+ //------------------------------------------------------------------------//
+
+ /** Adds a row with the parameter selected in the combo box */
+ public void addRow() {
+ BeanFilterableComboBox<Caracteristic> keyCombo = getKeyCombo();
+ Caracteristic selectedItem = (Caracteristic) keyCombo.getSelectedItem();
+ CaracteristicMapEditorTableModel tableModel = getTableModel();
+
+ CaracteristicMapEditorRowModel row = tableModel.createNewRow();
+ row.setKey(selectedItem);
+// tableModel.addNewRow(row);
+ getModel().getRows().add(row);
+
+ int rowIndex = tableModel.getRowCount() - 1;
+ tableModel.fireTableRowsInserted(rowIndex, rowIndex);
+
+ keyCombo.getHandler().removeItem(selectedItem);
+
+ CaracteristicMapEditorUIModel model = getModel();
+ model.setModify(true);
+ recomputeRowValidState(row);
+ }
+
+ public void editBatch(IndividualObservationBatchRowModel individualObservation,
+ CaracteristicMapCellEditor caracteristicMapCellEditor) {
+
+ this.caracteristicMapCellEditor = caracteristicMapCellEditor;
+
+ CaracteristicMapEditorTableModel tableModel = getTableModel();
+ CaracteristicMapEditorUIModel model = getModel();
+
+ CaracteristicMap caracteristicMap = getCaracteristics(individualObservation);
+ if (caracteristicMap == null) {
+ caracteristicMap = new CaracteristicMap();
+ }
+ model.setCaracteristicMap(caracteristicMap);
+
+ TuttiProtocol protocol = getDataContext().getProtocol();
+ List<String> pmfmIds = Lists.newArrayList();
+ if (protocol != null) {
+ List<String> protocolPmfmId = getProtocolPmfmIds(protocol);
+ if (protocolPmfmId != null) {
+ pmfmIds.addAll(protocolPmfmId);
+ }
+ }
+
+ List<CaracteristicMapEditorRowModel> rows = Lists.newArrayList();
+ List<Caracteristic> caracteristics = Lists.newArrayList(caracteristicMap.keySet());
+
+ List<Caracteristic> availableCaracteristics = model.getAvailableCaracteristics();
+ for (String id : pmfmIds) {
+ Caracteristic caracteristic = TuttiEntities.findById(availableCaracteristics, id);
+ if (!caracteristics.contains(caracteristic)) {
+ caracteristics.add(caracteristic);
+ }
+ }
+
+ for (Caracteristic key : caracteristics) {
+ CaracteristicMapEditorRowModel newRow = tableModel.createNewRow();
+ newRow.setKey(key);
+ newRow.setValue(caracteristicMap.get(key));
+ rows.add(newRow);
+ }
+
+ model.setRows(rows);
+
+ List<Caracteristic> caracteristicList = Lists.newArrayList();
+
+ for (Caracteristic caracteristic : availableCaracteristics) {
+ if (!caracteristics.contains(caracteristic)) {
+ caracteristicList.add(caracteristic);
+ }
+ }
+
+ BeanFilterableComboBox<Caracteristic> keyCombo = getKeyCombo();
+ keyCombo.setData(caracteristicList);
+// selectFirstInCombo(keyCombo);
+ keyCombo.getHandler().reset();
+ model.setModify(false);
+ }
+
+ public void removeCaracteristic() {
+ int rowIndex = getTable().getSelectedRow();
+
+ Preconditions.checkState(
+ rowIndex != -1,
+ "Cant remove caracteristic if no caracteristic selected");
+
+ CaracteristicMapEditorRowModel row = getTableModel().getEntry(rowIndex);
+
+ CaracteristicMap caracteristicMap = getModel().getCaracteristicMap();
+ if (caracteristicMap != null) {
+ caracteristicMap.remove(row.getKey());
+ }
+
+ //add the row in the combo
+ BeanFilterableComboBox keyCombo = getKeyCombo();
+ keyCombo.addItem(row.getKey());
+// selectFirstInCombo(keyCombo);
+ keyCombo.getHandler().reset();
+
+ // remove the row from the model
+ getModel().getRows().remove(rowIndex);
+
+ // refresh all the table
+ getTableModel().fireTableRowsDeleted(rowIndex, rowIndex);
+
+ getModel().removeRowInError(row);
+ }
+
+ public void save() {
+
+ if (log.isInfoEnabled()) {
+ log.info("Save UI " + ui);
+ }
+
+ caracteristicMapCellEditor.validateEdition(getModel());
+
+ closeUI(ui);
+ }
+}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUIModel.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUIModel.java 2013-04-10 14:16:08 UTC (rev 758)
@@ -0,0 +1,81 @@
+package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.caracteristics;
+
+import com.google.common.base.Predicates;
+import com.google.common.collect.Iterables;
+import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.ui.swing.content.operation.fishing.AbstractCaracteristicRowModel;
+import fr.ifremer.tutti.ui.swing.content.operation.fishing.AbstractCaracteristicTabUIModel;
+import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel;
+
+import java.util.List;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.4
+ */
+public class CaracteristicMapEditorUIModel extends AbstractTuttiTableUIModel<Object, CaracteristicMapEditorRowModel, CaracteristicMapEditorUIModel> {
+
+ public static final String PROPERTY_CARACTERISTIC_MAP = "caracteristicMap";
+
+ public static final String PROPERTY_REMOVE_CARACTERISTIC_ENABLED = "removeCaracteristicEnabled";
+
+ public static final String PROPERTY_AVAILABLE_CARACTERISTICS = "availableCaracteristics";
+
+ private static final long serialVersionUID = 1L;
+
+ protected List<Caracteristic> availableCaracteristics;
+
+ /**
+ * Caracteristics
+ *
+ * @since 1.0
+ */
+ protected CaracteristicMap caracteristicMap;
+
+ /**
+ * Can user remove a selected caracteristic?
+ *
+ * @since 1.0
+ */
+ protected boolean removeCaracteristicEnabled;
+
+ public CaracteristicMapEditorUIModel() {
+ super(Object.class, null, null);
+ }
+
+ public List<Caracteristic> getAvailableCaracteristics() {
+ return availableCaracteristics;
+ }
+
+ public void setAvailableCaracteristics(List<Caracteristic> availableCaracteristics) {
+ Object oldValue = getAvailableCaracteristics();
+ this.availableCaracteristics = availableCaracteristics;
+ firePropertyChange(PROPERTY_AVAILABLE_CARACTERISTICS, oldValue, availableCaracteristics);
+ }
+
+ public CaracteristicMap getCaracteristicMap() {
+ return caracteristicMap;
+ }
+
+ public void setCaracteristicMap(CaracteristicMap caracteristicMap) {
+ Object oldValue = getCaracteristicMap();
+ this.caracteristicMap = caracteristicMap != null ? (CaracteristicMap) caracteristicMap.clone() : null;
+ firePropertyChange(PROPERTY_CARACTERISTIC_MAP, oldValue, this.caracteristicMap);
+ }
+
+ public boolean isRemoveCaracteristicEnabled() {
+ return removeCaracteristicEnabled;
+ }
+
+ public void setRemoveCaracteristicEnabled(boolean removeCaracteristicEnabled) {
+ Object oldValue = isRemoveCaracteristicEnabled();
+ this.removeCaracteristicEnabled = removeCaracteristicEnabled;
+ firePropertyChange(PROPERTY_REMOVE_CARACTERISTIC_ENABLED, oldValue, removeCaracteristicEnabled);
+ }
+
+ @Override
+ protected Object newEntity() {
+ return null;
+ }
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css (from rev 757, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.css)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css 2013-04-10 14:16:08 UTC (rev 758)
@@ -0,0 +1,84 @@
+BeanFilterableComboBox {
+ showReset: true;
+ i18nPrefix: "tutti.property.";
+ bean: {model};
+}
+
+NumberEditor {
+ autoPopup: {handler.getConfig().isAutoPopupNumberEditor()};
+ showPopupButton: {handler.getConfig().isShowNumberEditorButton()};
+ showReset: true;
+}
+
+#createIndividualObservationBatchTopPanel {
+ _help: {"tutti.createIndividualObservationBatch.help"};
+}
+
+#individualObservationSpeciesLabel {
+ text: "tutti.createIndividualObservationBatch.field.individualObservationSpecies";
+ toolTipText: "tutti.createIndividualObservationBatch.field.individualObservationSpecies.tip";
+ labelFor: {individualObservationSpeciesComboBox};
+ _help: {"tutti.createIndividualObservationBatch.field.individualObservationSpecies.help"};
+}
+
+#individualObservationSpeciesComboBox {
+ property: species;
+ selectedItem: {model.getSpecies()};
+}
+
+#individualObservationWeightLabel {
+ text: "tutti.createIndividualObservationBatch.field.individualObservationWeight";
+ toolTipText: "tutti.createIndividualObservationBatch.field.individualObservationWeight.tip";
+ labelFor: {individualObservationWeightField};
+ _help: {"tutti.createIndividualObservationBatch.field.individualObservationWeight.help"};
+}
+
+#individualObservationWeightField {
+ property: weight;
+ useFloat: true;
+ numberPattern: {DECIMAL3_PATTERN};
+ bean: {model};
+}
+
+#individualObservationSizeLabel {
+ text: "tutti.createIndividualObservationBatch.field.individualObservationSize";
+ toolTipText: "tutti.createIndividualObservationBatch.field.individualObservationSize.tip";
+ labelFor: {individualObservationSizeField};
+ _help: {"tutti.createIndividualObservationBatch.field.individualObservationSize.help"};
+}
+
+#individualObservationSizeField {
+ property: size;
+ useFloat: true;
+ numberPattern: {DECIMAL3_PATTERN};
+ bean: {model};
+}
+
+#individualObservationLengthStepCaracteristicLabel {
+ text: "tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic";
+ toolTipText: "tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic.tip";
+ labelFor: {individualObservationLengthStepCaracteristicComboBox};
+ _help: {"tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic.help"};
+}
+
+#individualObservationLengthStepCaracteristicComboBox {
+ property: lengthStepCaracteristic;
+ selectedItem: {model.getLengthStepCaracteristic()};
+}
+
+#saveButton {
+ actionIcon: save;
+ text: "tutti.createMarineLitterBatch.action.save";
+ toolTipText: "tutti.createMarineLitterBatch.action.save.tip";
+ i18nMnemonic: "tutti.createMarineLitterBatch.action.save.mnemonic";
+ enabled: {model.isValid()};
+ _help: {"tutti.createMarineLitterBatch.action.save.help"};
+}
+
+#cancelButton {
+ actionIcon: cancel;
+ text: "tutti.createMarineLitterBatch.action.cancel";
+ toolTipText: "tutti.createMarineLitterBatch.action.cancel.tip";
+ i18nMnemonic: "tutti.createMarineLitterBatch.action.cancel.mnemonic";
+ _help: {"tutti.createMarineLitterBatch.action.cancel.help"};
+}
\ No newline at end of file
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.jaxx (from rev 757, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.jaxx)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.jaxx (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.jaxx 2013-04-10 14:16:08 UTC (rev 758)
@@ -0,0 +1,105 @@
+<JPanel id='createIndividualObservationBatchTopPanel' layout='{new BorderLayout()}'
+ decorator='help'
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<CreateIndividualObservationBatchUIModel, CreateIndividualObservationBatchUIHandler>'>
+ <import>
+
+ fr.ifremer.tutti.persistence.entities.referential.Species
+ fr.ifremer.tutti.persistence.entities.referential.Caracteristic
+
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
+ fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
+
+ jaxx.runtime.swing.editor.bean.BeanFilterableComboBox
+ jaxx.runtime.swing.editor.NumberEditor
+
+ static org.nuiton.i18n.I18n._
+ </import>
+
+ <script><![CDATA[
+
+public CreateIndividualObservationBatchUI(EditCatchesUI parentUI) {
+ JAXXUtil.initContext(this, parentUI);
+ CreateIndividualObservationBatchUIHandler handler = new CreateIndividualObservationBatchUIHandler(parentUI, this);
+ setContextValue(handler);
+ handler.beforeInitUI();
+}
+
+protected void $afterCompleteSetup() { handler.afterInitUI(); }
+ ]]></script>
+
+ <CreateIndividualObservationBatchUIHandler id='handler'
+ initializer='getContextValue(CreateIndividualObservationBatchUIHandler.class)'/>
+
+ <CreateIndividualObservationBatchUIModel id='model'
+ initializer='getContextValue(CreateIndividualObservationBatchUIModel.class)'/>
+
+ <BeanValidator id='validator' bean='model'
+ uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>
+ <field name='species'
+ component='individualObservationSpeciesComboBox'/>
+ <field name='weight'
+ component='individualObservationWeightField'/>
+ <field name='size'
+ component='individualObservationSizeField'/>
+ <field name='lengthStepCaracteristic'
+ component='individualObservationLengthStepCaracteristicComboBox'/>
+ </BeanValidator>
+
+ <TuttiHelpBroker id='broker'
+ constructorParams='"tutti.createMarineLitterBatch.help"'/>
+
+ <Table id='configurationPanel' constraints='BorderLayout.CENTER' fill='both'>
+
+ <!-- IndividualObservation species -->
+ <row>
+ <cell anchor='west'>
+ <JLabel id='individualObservationSpeciesLabel'/>
+ </cell>
+ <cell weightx='1.0'>
+ <BeanFilterableComboBox id='individualObservationSpeciesComboBox'
+ constructorParams='this'
+ genericType='Species'/>
+ </cell>
+ </row>
+
+ <!-- IndividualObservation weight -->
+ <row>
+ <cell anchor='west'>
+ <JLabel id='individualObservationWeightLabel'/>
+ </cell>
+ <cell weightx='1.0' columns='2'>
+ <NumberEditor id='individualObservationWeightField' constructorParams='this'/>
+ </cell>
+ </row>
+
+ <!-- IndividualObservation size -->
+ <row>
+ <cell anchor='west'>
+ <JLabel id='individualObservationSizeLabel'/>
+ </cell>
+ <cell weightx='1.0' columns='2'>
+ <NumberEditor id='individualObservationSizeField' constructorParams='this'/>
+ </cell>
+ </row>
+
+ <!-- IndividualObservation LengthStepCaracteristic -->
+ <row>
+ <cell anchor='west'>
+ <JLabel id='individualObservationLengthStepCaracteristicLabel'/>
+ </cell>
+ <cell weightx='1.0' columns='2'>
+ <BeanFilterableComboBox id='individualObservationLengthStepCaracteristicComboBox'
+ constructorParams='this'
+ genericType='Caracteristic'/>
+ </cell>
+ </row>
+
+ </Table>
+
+ <!-- Form Actions -->
+ <JPanel layout='{new GridLayout(1, 0)}' constraints='BorderLayout.SOUTH'>
+ <JButton id='cancelButton' onActionPerformed='handler.cancel()'/>
+ <JButton id='saveButton' onActionPerformed='handler.save()'/>
+ </JPanel>
+</JPanel>
\ No newline at end of file
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java 2013-04-10 14:16:08 UTC (rev 758)
@@ -0,0 +1,141 @@
+package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.create;
+
+import fr.ifremer.tutti.persistence.TuttiPersistence;
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.marinelitter.create.CreateMarineLitterBatchUI;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.marinelitter.create.CreateMarineLitterBatchUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
+import fr.ifremer.tutti.ui.swing.util.Cancelable;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
+import fr.ifremer.tutti.ui.swing.util.species.SelectSpeciesUI;
+import fr.ifremer.tutti.ui.swing.util.species.SelectSpeciesUIModel;
+import jaxx.runtime.SwingUtil;
+import jaxx.runtime.validator.swing.SwingValidator;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.awt.*;
+import java.util.List;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ */
+public class CreateIndividualObservationBatchUIHandler extends AbstractTuttiUIHandler<CreateIndividualObservationBatchUIModel, CreateIndividualObservationBatchUI>
+ implements Cancelable {
+
+ private static final Log log =
+ LogFactory.getLog(CreateIndividualObservationBatchUIHandler.class);
+
+ private final TuttiPersistence persistenceService;
+
+ public CreateIndividualObservationBatchUIHandler(TuttiUI parentUi,
+ CreateIndividualObservationBatchUI ui) {
+ super(parentUi.getHandler().getContext(), ui);
+ this.persistenceService = context.getPersistenceService();
+ }
+
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiUIHandler methods --//
+ //------------------------------------------------------------------------//
+
+ @Override
+ public void beforeInitUI() {
+ CreateIndividualObservationBatchUIModel model = new CreateIndividualObservationBatchUIModel();
+ ui.setContextValue(model);
+ listModelIsModify(model);
+ }
+
+ @Override
+ public void afterInitUI() {
+
+ initUI(ui);
+
+ initBeanFilterableComboBox(ui.getIndividualObservationSpeciesComboBox(),
+ getDataContext().getReferentSpecies(),
+ null);
+
+ initBeanFilterableComboBox(ui.getIndividualObservationLengthStepCaracteristicComboBox(),
+ getDataContext().getLengthStepCaracteristics(),
+ null);
+
+ listenValidatorValid(ui.getValidator(), getModel());
+ }
+
+ @Override
+ public void onCloseUI() {
+
+ if (log.isDebugEnabled()) {
+ log.debug("closing: " + ui);
+ }
+
+ // evict model from validator
+ ui.getValidator().setBean(null);
+
+ // when canceling always invalid model
+ getModel().setValid(false);
+
+ EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
+ parent.getHandler().setIndividualObservationSelectedCard(EditCatchesUIHandler.MAIN_CARD);
+ }
+
+ @Override
+ public SwingValidator<CreateIndividualObservationBatchUIModel> getValidator() {
+ return ui.getValidator();
+ }
+
+ //------------------------------------------------------------------------//
+ //-- Cancelable methods --//
+ //------------------------------------------------------------------------//
+
+ @Override
+ public void cancel() {
+ if (log.isInfoEnabled()) {
+ log.info("Cancel UI " + ui);
+ }
+ closeUI(ui);
+ }
+
+ //------------------------------------------------------------------------//
+ //-- Public methods --//
+ //------------------------------------------------------------------------//
+
+ public void openUI() {
+
+ CreateIndividualObservationBatchUIModel model = getModel();
+
+ // connect model to validator
+ ui.getValidator().setBean(model);
+
+ model.reset();
+
+ ui.getIndividualObservationSpeciesComboBox().requestFocus();
+ }
+
+ public void save() {
+
+ if (log.isInfoEnabled()) {
+ log.info("Save UI " + ui);
+ }
+
+ EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
+ parent.getIndividualObservationTabContent().getHandler().addBatch(getModel());
+
+ // close dialog
+ closeUI(ui);
+ }
+
+ public Species openAddSpeciesDialog(String title, List<Species> species) {
+ SelectSpeciesUI dialogContent = new SelectSpeciesUI(ui);
+ SelectSpeciesUIModel model = dialogContent.getModel();
+ model.setSelectedSpecies(null);
+ model.setSpecies(species);
+
+ openDialog(dialogContent, title, new Dimension(400, 130));
+
+ Species result = model.getSelectedSpecies();
+ return result;
+ }
+}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java 2013-04-10 14:16:08 UTC (rev 758)
@@ -0,0 +1,81 @@
+package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.create;
+
+import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
+import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.4
+ */
+public class CreateIndividualObservationBatchUIModel extends AbstractTuttiBeanUIModel<CreateIndividualObservationBatchUIModel, CreateIndividualObservationBatchUIModel> {
+
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Delegate edit object.
+ *
+ * @since 1.3
+ */
+ protected final IndividualObservationBatch editObject =
+ TuttiBeanFactory.newIndividualObservationBatch();
+
+ public CreateIndividualObservationBatchUIModel() {
+ super(CreateIndividualObservationBatchUIModel.class, null, null);
+ }
+
+ public Species getSpecies() {
+ return editObject.getSpecies();
+ }
+
+ public void setSpecies(Species individualObservationSpecies) {
+ Object oldValue = getSpecies();
+ editObject.setSpecies(individualObservationSpecies);
+ firePropertyChange(IndividualObservationBatch.PROPERTY_SPECIES, oldValue, individualObservationSpecies);
+ }
+
+ public Float getWeight() {
+ return editObject.getWeight();
+ }
+
+ public void setWeight(Float individualObservationWeight) {
+ Object oldValue = getWeight();
+ editObject.setWeight(individualObservationWeight);
+ firePropertyChange(IndividualObservationBatch.PROPERTY_WEIGHT, oldValue, individualObservationWeight);
+ }
+
+ public Float getSize() {
+ return editObject.getSize();
+ }
+
+ public void setSize(Float individualObservationSize) {
+ Object oldValue = getSize();
+ editObject.setSize(individualObservationSize);
+ firePropertyChange(IndividualObservationBatch.PROPERTY_SIZE, oldValue, individualObservationSize);
+ }
+
+ public Caracteristic getLengthStepCaracteristic() {
+ return editObject.getLengthStepCaracteristic();
+ }
+
+ public void setLengthStepCaracteristic(Caracteristic individualObservationLengthStepCaracteristic) {
+ Object oldValue = getLengthStepCaracteristic();
+ editObject.setLengthStepCaracteristic(individualObservationLengthStepCaracteristic);
+ firePropertyChange(IndividualObservationBatch.PROPERTY_LENGTH_STEP_CARACTERISTIC, oldValue, individualObservationLengthStepCaracteristic);
+ }
+
+ @Override
+ protected CreateIndividualObservationBatchUIModel newEntity() {
+ return new CreateIndividualObservationBatchUIModel();
+ }
+
+ public void reset() {
+ setSpecies(null);
+ setWeight(null);
+ setSize(null);
+ setLengthStepCaracteristic(null);
+ }
+}
Added: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/individualObservation/create/CreateIndividualObservationBatchUIModel-error-validation.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/individualObservation/create/CreateIndividualObservationBatchUIModel-error-validation.xml (rev 0)
+++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/individualObservation/create/CreateIndividualObservationBatchUIModel-error-validation.xml 2013-04-10 14:16:08 UTC (rev 758)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE validators PUBLIC
+ "-//Apache Struts//XWork Validator 1.0.3//EN"
+ "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
+<validators>
+
+ <field name="species">
+ <field-validator type="required" short-circuit="true">
+ <message>
+ tutti.validator.error.createIndividualObservationBatch.individualObservationSpecies.required
+ </message>
+ </field-validator>
+ </field>
+
+</validators>
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-08 16:07:19 UTC (rev 757)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-10 14:16:08 UTC (rev 758)
@@ -42,6 +42,8 @@
tutti.attachmentEditor.saveAttachment.warning.title=
tutti.attachmentEditor.text=
tutti.attachmentEditor.title=
+tutti.caracteristicMapEditorTable.table.header.key=
+tutti.caracteristicMapEditorTable.table.header.value=
tutti.commentEditor.action.close.tip=
tutti.commentEditor.action.tip=
tutti.commentEditor.none.tip=
@@ -119,6 +121,15 @@
tutti.createBenthosBatch.title=
tutti.createBenthosMelag.error.message=
tutti.createBenthosMelag.error.title=
+tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic=
+tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic.tip=
+tutti.createIndividualObservationBatch.field.individualObservationSize=
+tutti.createIndividualObservationBatch.field.individualObservationSize.tip=
+tutti.createIndividualObservationBatch.field.individualObservationSpecies=
+tutti.createIndividualObservationBatch.field.individualObservationSpecies.tip=
+tutti.createIndividualObservationBatch.field.individualObservationWeight=
+tutti.createIndividualObservationBatch.field.individualObservationWeight.tip=
+tutti.createIndividualObservationBatch.title=
tutti.createMarineLitterBatch.action.cancel=
tutti.createMarineLitterBatch.action.cancel.mnemonic=
tutti.createMarineLitterBatch.action.cancel.tip=
@@ -290,6 +301,7 @@
tutti.editBenthosFrequencies.label.no.configuration=
tutti.editBenthosFrequencies.simpleCountingAndFrequencies=
tutti.editBenthosFrequencies.title=
+tutti.editCaracteristics.title=
tutti.editCatchBatch.action.cancelEditCatchBatch=
tutti.editCatchBatch.action.cancelEditCatchBatch.mnemonic=
tutti.editCatchBatch.action.cancelEditCatchBatch.tip=
@@ -494,6 +506,30 @@
tutti.editFishingOperation.label.traitReminder.inCreation=
tutti.editFishingOperation.pane.other=
tutti.editFishingOperation.tab.general=
+tutti.editIndividualObservationBatch.action.createBatch=
+tutti.editIndividualObservationBatch.action.createBatch.mnemonic=
+tutti.editIndividualObservationBatch.action.createBatch.tip=
+tutti.editIndividualObservationBatch.action.removeBatch=
+tutti.editIndividualObservationBatch.action.removeBatch.mnemonic=
+tutti.editIndividualObservationBatch.action.removeBatch.tip=
+tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode=
+tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode.tip=
+tutti.editIndividualObservationBatch.table.header.comment=
+tutti.editIndividualObservationBatch.table.header.comment.tip=
+tutti.editIndividualObservationBatch.table.header.file=
+tutti.editIndividualObservationBatch.table.header.file.tip=
+tutti.editIndividualObservationBatch.table.header.lengthStepCaracteristic=
+tutti.editIndividualObservationBatch.table.header.lengthStepCaracteristic.tip=
+tutti.editIndividualObservationBatch.table.header.otherCaracteristics=
+tutti.editIndividualObservationBatch.table.header.otherCaracteristics.tip=
+tutti.editIndividualObservationBatch.table.header.samplingCode=
+tutti.editIndividualObservationBatch.table.header.samplingCode.tip=
+tutti.editIndividualObservationBatch.table.header.size=
+tutti.editIndividualObservationBatch.table.header.size.tip=
+tutti.editIndividualObservationBatch.table.header.species=
+tutti.editIndividualObservationBatch.table.header.species.tip=
+tutti.editIndividualObservationBatch.table.header.weight=
+tutti.editIndividualObservationBatch.table.header.weight.tip=
tutti.editMarineLitterBatch.action.createBatch=
tutti.editMarineLitterBatch.action.createBatch.mnemonic=
tutti.editMarineLitterBatch.action.createBatch.tip=
@@ -792,6 +828,7 @@
tutti.label.tab.catches=
tutti.label.tab.catchesCaracteristics=
tutti.label.tab.fishingOperation=
+tutti.label.tab.individualObservation=
tutti.label.tab.marineLitter=
tutti.label.tab.observationIndividuel=
tutti.label.tab.plancton=
@@ -1030,6 +1067,7 @@
tutti.update.jre=
tutti.update.tutti=
tutti.validator.error.comment.too.long=
+tutti.validator.error.createIndividualObservationBatch.individualObservationSpecies.required=
tutti.validator.error.createMarineLitterBatch.marineLitterCategory.required=
tutti.validator.error.createMarineLitterBatch.marineLitterSizeCategory.required=
tutti.validator.error.createMarineLitterBatch.number.invalidValue=
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-04-08 16:07:19 UTC (rev 757)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-04-10 14:16:08 UTC (rev 758)
@@ -40,6 +40,8 @@
tutti.attachmentEditor.saveAttachment.warning.title=Fichier existant
tutti.attachmentEditor.text=(%s)
tutti.attachmentEditor.title=Pièces jointes
+tutti.caracteristicMapEditorTable.table.header.key=Caractéristique
+tutti.caracteristicMapEditorTable.table.header.value=Valeur
tutti.commentEditor.action.close.tip=Fermer la fenêtre des commentaires
tutti.commentEditor.action.tip=Commentaire
tutti.commentEditor.none.tip=Pas de commentaire
@@ -54,7 +56,6 @@
tutti.common.cancel=Annuler
tutti.common.cancel.mnemonic=A
tutti.common.file.csv=Extension d'un fichier csv
-tutti.common.file.ibts=
tutti.common.file.protocol=Extension d'un fichier de protocole Tutti
tutti.common.file.zip=Extension d'une archive zip
tutti.common.validate=Valider
@@ -121,6 +122,15 @@
tutti.createBenthosMelag.error.title=Erreur
tutti.createBenthosMelag.message=Combien pesait le MELAG (kg) ?
tutti.createBenthosMelag.title=Poids du MELAG (kg)
+tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic=Classe de taille
+tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic.tip=Classe de taille
+tutti.createIndividualObservationBatch.field.individualObservationSize=Taille
+tutti.createIndividualObservationBatch.field.individualObservationSize.tip=Taille
+tutti.createIndividualObservationBatch.field.individualObservationSpecies=Espèce
+tutti.createIndividualObservationBatch.field.individualObservationSpecies.tip=Espèce
+tutti.createIndividualObservationBatch.field.individualObservationWeight=Poids
+tutti.createIndividualObservationBatch.field.individualObservationWeight.tip=Poids
+tutti.createIndividualObservationBatch.title=Créer une observation
tutti.createMarineLitterBatch.action.cancel=Annuler
tutti.createMarineLitterBatch.action.cancel.mnemonic=A
tutti.createMarineLitterBatch.action.cancel.tip=Annuler la création du lôt macro-déchet
@@ -298,6 +308,7 @@
tutti.editBenthosFrequencies.table.header.number=Nombre
tutti.editBenthosFrequencies.table.header.weight=Poids observé (kg)
tutti.editBenthosFrequencies.title=Mensuration
+tutti.editCaracteristics.title=Autres caractéristiques
tutti.editCatchBatch.action.cancelEditCatchBatch=Réinitialiser
tutti.editCatchBatch.action.cancelEditCatchBatch.mnemonic=R
tutti.editCatchBatch.action.cancelEditCatchBatch.tip=Réinitialiser l'édition de la capture
@@ -361,6 +372,7 @@
tutti.editCatchBatch.field.speciesTotalWeight=Poids TOTAL (kg)
tutti.editCatchBatch.field.speciesTotalWeight.tip=
tutti.editCatchBatch.legend.benthos=Benthos
+tutti.editCatchBatch.legend.individualObservation=Observations individuelles
tutti.editCatchBatch.legend.marineLitter=Macro déchets
tutti.editCatchBatch.legend.species=Espèces
tutti.editCatchBatch.legend.total=Capture
@@ -500,6 +512,30 @@
tutti.editFishingOperation.label.traitReminder.inCreation=en cours de création
tutti.editFishingOperation.pane.other=Autres caractéristiques
tutti.editFishingOperation.tab.general=Trait
+tutti.editIndividualObservationBatch.action.createBatch=Créer une observation
+tutti.editIndividualObservationBatch.action.createBatch.mnemonic=C
+tutti.editIndividualObservationBatch.action.createBatch.tip=Créer une nouvelle observation
+tutti.editIndividualObservationBatch.action.removeBatch=Supprimer la ligne sélectionnée
+tutti.editIndividualObservationBatch.action.removeBatch.mnemonic=S
+tutti.editIndividualObservationBatch.action.removeBatch.tip=Supprimer la ligne sélectionnée
+tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode=Code de prélèvement pièce calcifiée
+tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode.tip=Code de prélèvement pièce calcifiée
+tutti.editIndividualObservationBatch.table.header.comment=Commentaire
+tutti.editIndividualObservationBatch.table.header.comment.tip=Commentaire
+tutti.editIndividualObservationBatch.table.header.file=Pièces jointes
+tutti.editIndividualObservationBatch.table.header.file.tip=Pièces jointes
+tutti.editIndividualObservationBatch.table.header.lengthStepCaracteristic=Classe de taille
+tutti.editIndividualObservationBatch.table.header.lengthStepCaracteristic.tip=Classe de taille
+tutti.editIndividualObservationBatch.table.header.otherCaracteristics=Autres caractéristiques
+tutti.editIndividualObservationBatch.table.header.otherCaracteristics.tip=Autres caractéristiques
+tutti.editIndividualObservationBatch.table.header.samplingCode=Code prélèvement autre
+tutti.editIndividualObservationBatch.table.header.samplingCode.tip=Code prélèvement autre
+tutti.editIndividualObservationBatch.table.header.size=Taille
+tutti.editIndividualObservationBatch.table.header.size.tip=Taille
+tutti.editIndividualObservationBatch.table.header.species=Espèce
+tutti.editIndividualObservationBatch.table.header.species.tip=Espèce
+tutti.editIndividualObservationBatch.table.header.weight=Poids
+tutti.editIndividualObservationBatch.table.header.weight.tip=Poids (Kg)
tutti.editMarineLitterBatch.action.createBatch=Créer un lot de déchet
tutti.editMarineLitterBatch.action.createBatch.mnemonic=C
tutti.editMarineLitterBatch.action.createBatch.tip=Créer un nouveau lot de déchet
@@ -796,8 +832,8 @@
tutti.label.tab.catches=Captures
tutti.label.tab.catchesCaracteristics=Résumé
tutti.label.tab.fishingOperation=Trait
+tutti.label.tab.individualObservation=Observations individuelles
tutti.label.tab.marineLitter=Macro déchets
-tutti.label.tab.observationIndividuel=Observations individuelles
tutti.label.tab.plancton=Plancton
tutti.label.tab.species=Espèces
tutti.legend.frequencyConfiguration=Configuration
@@ -1033,6 +1069,7 @@
tutti.update.jre=Java
tutti.update.tutti=Tutti
tutti.validator.error.comment.too.long=Taille de commentaire trop longue (limitée à %s caractères)
+tutti.validator.error.createIndividualObservationBatch.individualObservationSpecies.required=
tutti.validator.error.createMarineLitterBatch.marineLitterCategory.required=
tutti.validator.error.createMarineLitterBatch.marineLitterSizeCategory.required=
tutti.validator.error.createMarineLitterBatch.number.invalidValue=
1
0
r757 - in trunk: . tutti-persistence tutti-service tutti-ui-swing
by maven-release@users.forge.codelutin.com 08 Apr '13
by maven-release@users.forge.codelutin.com 08 Apr '13
08 Apr '13
Author: maven-release
Date: 2013-04-08 18:07:19 +0200 (Mon, 08 Apr 2013)
New Revision: 757
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/757
Log:
[maven-release-plugin] prepare for next development iteration
Modified:
trunk/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-04-08 16:07:11 UTC (rev 756)
+++ trunk/pom.xml 2013-04-08 16:07:19 UTC (rev 757)
@@ -33,7 +33,7 @@
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>1.3</version>
+ <version>1.4-SNAPSHOT</version>
<modules>
<module>tutti-persistence</module>
@@ -89,12 +89,12 @@
</developers>
<scm>
- <url>http://svn.forge.codelutin.com/svn/tutti/tags/tutti-1.3</url>
+ <url>http://svn.forge.codelutin.com/svn/tutti/trunk</url>
<connection>
- scm:svn:http://svn.forge.codelutin.com/svn/tutti/tags/tutti-1.3
+ scm:svn:http://svn.forge.codelutin.com/svn/tutti/trunk
</connection>
<developerConnection>
- scm:svn:http://svn.forge.codelutin.com/svn/tutti/tags/tutti-1.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-04-08 16:07:11 UTC (rev 756)
+++ trunk/tutti-persistence/pom.xml 2013-04-08 16:07:19 UTC (rev 757)
@@ -28,7 +28,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>1.3</version>
+ <version>1.4-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
Modified: trunk/tutti-service/pom.xml
===================================================================
--- trunk/tutti-service/pom.xml 2013-04-08 16:07:11 UTC (rev 756)
+++ trunk/tutti-service/pom.xml 2013-04-08 16:07:19 UTC (rev 757)
@@ -28,7 +28,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>1.3</version>
+ <version>1.4-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
Modified: trunk/tutti-ui-swing/pom.xml
===================================================================
--- trunk/tutti-ui-swing/pom.xml 2013-04-08 16:07:11 UTC (rev 756)
+++ trunk/tutti-ui-swing/pom.xml 2013-04-08 16:07:19 UTC (rev 757)
@@ -28,7 +28,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>1.3</version>
+ <version>1.4-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
1
0
Author: maven-release
Date: 2013-04-08 18:07:11 +0200 (Mon, 08 Apr 2013)
New Revision: 756
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/756
Log:
[maven-release-plugin] copy for tag tutti-1.3
Added:
tags/tutti-1.3/
1
0
r755 - in trunk: . tutti-persistence tutti-service tutti-ui-swing
by maven-release@users.forge.codelutin.com 08 Apr '13
by maven-release@users.forge.codelutin.com 08 Apr '13
08 Apr '13
Author: maven-release
Date: 2013-04-08 18:07:03 +0200 (Mon, 08 Apr 2013)
New Revision: 755
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/755
Log:
[maven-release-plugin] prepare release tutti-1.3
Modified:
trunk/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-04-08 16:02:05 UTC (rev 754)
+++ trunk/pom.xml 2013-04-08 16:07:03 UTC (rev 755)
@@ -33,7 +33,7 @@
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<modules>
<module>tutti-persistence</module>
@@ -89,12 +89,12 @@
</developers>
<scm>
- <url>http://svn.forge.codelutin.com/svn/tutti/trunk</url>
+ <url>http://svn.forge.codelutin.com/svn/tutti/tags/tutti-1.3</url>
<connection>
- scm:svn:http://svn.forge.codelutin.com/svn/tutti/trunk
+ scm:svn:http://svn.forge.codelutin.com/svn/tutti/tags/tutti-1.3
</connection>
<developerConnection>
- scm:svn:http://svn.forge.codelutin.com/svn/tutti/trunk
+ scm:svn:http://svn.forge.codelutin.com/svn/tutti/tags/tutti-1.3
</developerConnection>
</scm>
Modified: trunk/tutti-persistence/pom.xml
===================================================================
--- trunk/tutti-persistence/pom.xml 2013-04-08 16:02:05 UTC (rev 754)
+++ trunk/tutti-persistence/pom.xml 2013-04-08 16:07:03 UTC (rev 755)
@@ -28,7 +28,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
Modified: trunk/tutti-service/pom.xml
===================================================================
--- trunk/tutti-service/pom.xml 2013-04-08 16:02:05 UTC (rev 754)
+++ trunk/tutti-service/pom.xml 2013-04-08 16:07:03 UTC (rev 755)
@@ -28,7 +28,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
Modified: trunk/tutti-ui-swing/pom.xml
===================================================================
--- trunk/tutti-ui-swing/pom.xml 2013-04-08 16:02:05 UTC (rev 754)
+++ trunk/tutti-ui-swing/pom.xml 2013-04-08 16:07:03 UTC (rev 755)
@@ -28,7 +28,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
1
0
r754 - trunk/tutti-service/src/test/java/fr/ifremer/tutti/service
by tchemit@users.forge.codelutin.com 08 Apr '13
by tchemit@users.forge.codelutin.com 08 Apr '13
08 Apr '13
Author: tchemit
Date: 2013-04-08 18:02:05 +0200 (Mon, 08 Apr 2013)
New Revision: 754
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/754
Log:
fix bad import
Modified:
trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/ValidationServiceTest.java
Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/ValidationServiceTest.java
===================================================================
--- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/ValidationServiceTest.java 2013-04-08 15:43:12 UTC (rev 753)
+++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/ValidationServiceTest.java 2013-04-08 16:02:05 UTC (rev 754)
@@ -32,7 +32,7 @@
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
import fr.ifremer.tutti.service.config.TuttiServiceConfig;
-import org.apache.commons.lang.time.DateUtils;
+import org.apache.commons.lang3.time.DateUtils;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Ignore;
1
0
r753 - in trunk: . tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service tutti-service tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util tutti-ui-swing/src/main/resources/i18n
by tchemit@users.forge.codelutin.com 08 Apr '13
by tchemit@users.forge.codelutin.com 08 Apr '13
08 Apr '13
Author: tchemit
Date: 2013-04-08 17:43:12 +0200 (Mon, 08 Apr 2013)
New Revision: 753
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/753
Log:
back to required level 1.6 (jaxx does not still accept 1.7)
Modified:
trunk/pom.xml
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/SampleCategory.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java
trunk/tutti-service/pom.xml
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/util/CustomTab.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-04-08 14:04:34 UTC (rev 752)
+++ trunk/pom.xml 2013-04-08 15:43:12 UTC (rev 753)
@@ -119,10 +119,10 @@
<projectId>tutti</projectId>
<!-- Java version -->
- <maven.compiler.source>1.7</maven.compiler.source>
- <maven.compiler.target>1.7</maven.compiler.target>
- <signatureArtifactId>java17</signatureArtifactId>
- <signatureVersion>1.0</signatureVersion>
+ <!--<maven.compiler.source>1.7</maven.compiler.source>-->
+ <!--<maven.compiler.target>1.7</maven.compiler.target>-->
+ <!--<signatureArtifactId>java17</signatureArtifactId>-->
+ <!--<signatureVersion>1.0</signatureVersion>-->
<!-- libraries version -->
@@ -226,6 +226,12 @@
<classifier>tests</classifier>
</dependency>
+ <dependency>
+ <groupId>org.apache.struts.xwork</groupId>
+ <artifactId>xwork-core</artifactId>
+ <version>${xworkVersion}</version>
+ </dependency>
+
<!-- librairie Jaxx -->
<dependency>
<groupId>org.nuiton.jaxx</groupId>
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/SampleCategory.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/SampleCategory.java 2013-04-08 14:04:34 UTC (rev 752)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/SampleCategory.java 2013-04-08 15:43:12 UTC (rev 753)
@@ -1,5 +1,29 @@
package fr.ifremer.tutti.persistence.entities.data;
+/*
+ * #%L
+ * Tutti :: Persistence
+ * $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 org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import java.io.Serializable;
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java 2013-04-08 14:04:34 UTC (rev 752)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java 2013-04-08 15:43:12 UTC (rev 753)
@@ -112,7 +112,7 @@
// Get marine litter root batch
SortingBatch vracMarineLitterBatch = getMarineLitterParentBatch(catchBatch);
- BatchContainer<MarineLitterBatch> result = new BatchContainer<>();
+ BatchContainer<MarineLitterBatch> result = new BatchContainer<MarineLitterBatch>();
result.setId(vracMarineLitterBatch.getId());
Modified: trunk/tutti-service/pom.xml
===================================================================
--- trunk/tutti-service/pom.xml 2013-04-08 14:04:34 UTC (rev 752)
+++ trunk/tutti-service/pom.xml 2013-04-08 15:43:12 UTC (rev 753)
@@ -115,6 +115,16 @@
<artifactId>commons-vfs2</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.swinglabs.swingx</groupId>
+ <artifactId>swingx-common</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.struts.xwork</groupId>
+ <artifactId>xwork-core</artifactId>
+ </dependency>
+
<!-- Logging -->
<dependency>
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-04-08 14:04:34 UTC (rev 752)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-04-08 15:43:12 UTC (rev 753)
@@ -25,8 +25,6 @@
*/
import com.google.common.collect.Sets;
-import fr.ifremer.tutti.persistence.entities.referential.Vessel;
-import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI;
import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUIHandler;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiTabContainerUIHandler;
@@ -43,8 +41,6 @@
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
import java.util.Set;
import static org.nuiton.i18n.I18n._;
@@ -291,24 +287,18 @@
TuttiUI tuttiUi = null;
JXTitledPanel titlePanel = null;
String title = "";
- switch (card) {
- case CREATE_BATCH_CARD:
- tuttiUi = ui.getSpeciesTabCreateBatch();
- titlePanel = ui.getSpeciesTabCreateBatchReminderLabel();
- title = n_("tutti.createSpeciesBatch.title");
-
- break;
- case SPLIT_BATCH_CARD:
- tuttiUi = ui.getSpeciesTabSplitBatch();
- titlePanel = ui.getSpeciesTabSplitBatchReminderLabel();
- title = n_("tutti.splitSpeciesBatch.title");
-
- break;
- case EDIT_FREQUENCY_CARD:
- tuttiUi = ui.getSpeciesTabFrequencyEditor();
- titlePanel = ui.getSpeciesTabFrequencyEditorReminderLabel();
- title = n_("tutti.editSpeciesFrequencies.title");
- break;
+ if (CREATE_BATCH_CARD.equals(card)) {
+ tuttiUi = ui.getSpeciesTabCreateBatch();
+ titlePanel = ui.getSpeciesTabCreateBatchReminderLabel();
+ title = n_("tutti.createSpeciesBatch.title");
+ } else if (SPLIT_BATCH_CARD.equals(card)) {
+ tuttiUi = ui.getSpeciesTabSplitBatch();
+ titlePanel = ui.getSpeciesTabSplitBatchReminderLabel();
+ title = n_("tutti.splitSpeciesBatch.title");
+ } else if (EDIT_FREQUENCY_CARD.equals(card)) {
+ tuttiUi = ui.getSpeciesTabFrequencyEditor();
+ titlePanel = ui.getSpeciesTabFrequencyEditorReminderLabel();
+ title = n_("tutti.editSpeciesFrequencies.title");
}
if (tuttiUi != null) {
@@ -336,24 +326,18 @@
TuttiUI tuttiUi = null;
JXTitledPanel titlePanel = null;
String title = "";
- switch (card) {
- case CREATE_BATCH_CARD:
- tuttiUi = ui.getBenthosTabCreateBatch();
- titlePanel = ui.getBenthosTabCreateBatchReminderLabel();
- title = n_("tutti.createBenthosBatch.title");
-
- break;
- case SPLIT_BATCH_CARD:
- tuttiUi = ui.getBenthosTabSplitBatch();
- titlePanel = ui.getBenthosTabSplitBatchReminderLabel();
- title = n_("tutti.splitBenthosBatch.title");
-
- break;
- case EDIT_FREQUENCY_CARD:
- tuttiUi = ui.getBenthosTabFrequencyEditor();
- titlePanel = ui.getBenthosTabFrequencyEditorReminderLabel();
- title = n_("tutti.editBenthosFrequencies.title");
- break;
+ if (CREATE_BATCH_CARD.equals(card)) {
+ tuttiUi = ui.getBenthosTabCreateBatch();
+ titlePanel = ui.getBenthosTabCreateBatchReminderLabel();
+ title = n_("tutti.createBenthosBatch.title");
+ } else if (SPLIT_BATCH_CARD.equals(card)) {
+ tuttiUi = ui.getBenthosTabSplitBatch();
+ titlePanel = ui.getBenthosTabSplitBatchReminderLabel();
+ title = n_("tutti.splitBenthosBatch.title");
+ } else if (EDIT_FREQUENCY_CARD.equals(card)) {
+ tuttiUi = ui.getBenthosTabFrequencyEditor();
+ titlePanel = ui.getBenthosTabFrequencyEditorReminderLabel();
+ title = n_("tutti.editBenthosFrequencies.title");
}
if (tuttiUi != null) {
@@ -381,12 +365,10 @@
TuttiUI tuttiUi = null;
JXTitledPanel titlePanel = null;
String title = "";
- switch (card) {
- case CREATE_BATCH_CARD:
- tuttiUi = ui.getMarineLitterTabCreateBatch();
- titlePanel = ui.getMarineLitterTabCreateBatchReminderLabel();
- title = n_("tutti.createMarineLitterBatch.title");
- break;
+ if (CREATE_BATCH_CARD.equals(card)) {
+ tuttiUi = ui.getMarineLitterTabCreateBatch();
+ titlePanel = ui.getMarineLitterTabCreateBatchReminderLabel();
+ title = n_("tutti.createMarineLitterBatch.title");
}
if (tuttiUi != null) {
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-04-08 14:04:34 UTC (rev 752)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java 2013-04-08 15:43:12 UTC (rev 753)
@@ -74,9 +74,7 @@
}
}, this.model);
- } catch (NoSuchMethodException
- | IllegalAccessException
- | InvocationTargetException ex) {
+ } catch (Exception ex) {
log.error("Error while adding the listener to the model modifications", ex);
}
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-08 14:04:34 UTC (rev 752)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-08 15:43:12 UTC (rev 753)
@@ -1,3 +1,4 @@
+swing.error.cannot.open.file=
swing.error.cannot.open.link=
swing.error.desktop.browse.not.supported=
swing.error.desktop.extension.not.supported=
1
0
Author: tchemit
Date: 2013-04-08 16:04:34 +0200 (Mon, 08 Apr 2013)
New Revision: 752
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/752
Log:
update to last stable version fo eugene and jaxx
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-04-08 13:32:01 UTC (rev 751)
+++ trunk/pom.xml 2013-04-08 14:04:34 UTC (rev 752)
@@ -129,10 +129,10 @@
<nuitonUtilsVersion>2.6.12</nuitonUtilsVersion>
<nuitonI18nVersion>2.5</nuitonI18nVersion>
- <eugenePluginVersion>2.6.2-SNAPSHOT</eugenePluginVersion>
+ <eugenePluginVersion>2.6.2</eugenePluginVersion>
<hibernateVersion>3.6.10.Final</hibernateVersion>
- <jaxxVersion>2.5.16-SNAPSHOT</jaxxVersion>
+ <jaxxVersion>2.5.16</jaxxVersion>
<swingXVersion>1.6.4</swingXVersion>
<xworkVersion>2.3.7</xworkVersion>
1
0
r751 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/util java/fr/ifremer/tutti/ui/swing/util/attachment resources/i18n
by kmorin@users.forge.codelutin.com 08 Apr '13
by kmorin@users.forge.codelutin.com 08 Apr '13
08 Apr '13
Author: kmorin
Date: 2013-04-08 15:32:01 +0200 (Mon, 08 Apr 2013)
New Revision: 751
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/751
Log:
refs #2229 [CAPTURE] - Import/Export PUPITRI : erreur quand je demande ?\195?\160 visualiser la pi?\195?\168ce jointe (le .car) en cliquant que l'ic?\195?\180ne "oeil"
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUIHandler.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
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/util/TuttiUIUtil.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2013-04-08 10:17:28 UTC (rev 750)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2013-04-08 13:32:01 UTC (rev 751)
@@ -26,6 +26,7 @@
import com.google.common.base.Preconditions;
import fr.ifremer.tutti.TuttiTechnicalException;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import jaxx.runtime.FileChooserUtil;
import jaxx.runtime.JAXXBinding;
import jaxx.runtime.JAXXObject;
@@ -278,9 +279,10 @@
}
desktop.browse(uri);
+ throw new RuntimeException(_("swing.error.cannot.open.link"));
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not open link: " + uri, e);
+ throw new TuttiTechnicalException(_("swing.error.cannot.open.link"), e);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUIHandler.java 2013-04-08 10:17:28 UTC (rev 750)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUIHandler.java 2013-04-08 13:32:01 UTC (rev 751)
@@ -25,12 +25,14 @@
*/
import fr.ifremer.tutti.TuttiIOUtil;
+import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.action.TuttiActionException;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.swing.ComponentMover;
import jaxx.runtime.swing.ComponentResizer;
@@ -255,7 +257,18 @@
public void openAttachment(Attachment attachment) {
File file = persistenceService.getAttachmentFile(attachment.getId());
- TuttiUIUtil.openLink(file.toURI());
+ try {
+ TuttiUIUtil.openLink(file.toURI());
+
+ } catch (TuttiTechnicalException e) {
+ String message;
+ if (e.getCause() instanceof TuttiTechnicalException) {
+ message = e.getCause().getMessage();
+ } else {
+ message = _("swing.error.cannot.open.file");
+ }
+ TuttiUIContext.getErrorHelper().showErrorDialog(message, e);
+ }
}
public void saveAttachment(Attachment attachment) {
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-08 10:17:28 UTC (rev 750)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-08 13:32:01 UTC (rev 751)
@@ -1,4 +1,6 @@
+swing.error.cannot.open.link=
swing.error.desktop.browse.not.supported=
+swing.error.desktop.extension.not.supported=
swing.error.desktop.not.supported=
tutti.about.bottomText=
tutti.about.message=
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-04-08 10:17:28 UTC (rev 750)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-04-08 13:32:01 UTC (rev 751)
@@ -1,5 +1,7 @@
-swing.error.desktop.browse.not.supported=
-swing.error.desktop.not.supported=
+swing.error.cannot.open.file=Aucun programme n'est défini pour ouvrir ce type de fichier. Enregistrez le fichier et ouvrez le en dehors de Tutti.
+swing.error.cannot.open.link=La cible du lien n'existe pas.
+swing.error.desktop.browse.not.supported=Le navigateur n'a pas pu être ouvert. Vérifiez que vous avez défini un navigateur par défaut dans votre système.
+swing.error.desktop.not.supported=Votre système ne permet pas d'ouvrir des liens ou fichiers en dehors de Tutti.
tutti.about.bottomText=Copyright %s - %s - version %s
tutti.about.message=<h3>Tutti</h3><p><strong>Outil de saisie de données d'opérations et de captures au cours des campagnes halieutiques.</strong></p><br/><p>Ce logiciel permettra la saisie en mer des données d'opération de pêche (positions, environnement, engin, etc) et des captures associées (composition de la capture en espèces scientifiques avec poids, nombres, tailles etc) pour l'ensemble des campagnes halieutiques réalisées par l'Ifremer.</p><p>Ce projet a été initiée en 2012 par l'<a href\="http\://www.ifremer.fr">Ifremer</a> et réalisé par la société <a href\="http\://codelutin.com">Codelutin</a>.</p><hr/><br/><p>Pour plus d'informations, vous pouvez visiter le <a href\="http\://maven-site.forge.codelutin.com/tutti">site du projet</a>.</p><p>Projet hébergé sur la forge <a href\="http\://forge.codelutin.com/projects/tutti">Forge.codelutin.com</a>.</p>
tutti.about.title=À propos de Tutti
1
0