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
March 2013
- 5 participants
- 242 discussions
06 Mar '13
Author: tchemit
Date: 2013-03-06 18:24:40 +0100 (Wed, 06 Mar 2013)
New Revision: 554
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/554
Log:
refs #2075: [TECH] Action longue (probl?\195?\168me de cin?\195?\169matique) (revue des actions qui changent d'?\195?\169cran)
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CloseableUI.java
Modified:
trunk/tutti-ui-swing/
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiScreen.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractChangeScreenAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedCruiseCatchesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedProgramAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ImportTemporaryReferentialAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ManageDbAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/SelectCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ValidateSelectedCruiseCatchesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/CloseDbAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/CloneProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCatchesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProgramAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProgramAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ValidateCatchesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/CancelEditProgramAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CancelEditProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SelectOtherSpeciesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Property changes on: trunk/tutti-ui-swing
___________________________________________________________________
Modified: svn:ignore
- target
.idea
*.ipr
*.iws
*.iml
.project
.classpath
.settings
tutti.config
*.log
+ target
.idea
*.ipr
*.iws
*.iml
.project
.classpath
.settings
tutti.config
*.log
data
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiScreen.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiScreen.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiScreen.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -68,13 +68,6 @@
EDIT_PROTOCOL,
/**
- * To clone a protocol.
- *
- * @since 0.4
- */
- CLONE_PROTOCOL,
-
- /**
* To open import temporary referential.
*
* @since 1.0
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractChangeScreenAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractChangeScreenAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractChangeScreenAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -28,29 +28,40 @@
import fr.ifremer.tutti.ui.swing.TuttiScreen;
/**
- * Abstract action defining actions which sets the screen of the application.
+ * Action to change the screen.
+ * <p/>
+ * Will just check that the current screen can be quit via
+ * the {@link MainUIHandler#quitCurrentScreen()}.
+ * <p/>
*
* @author kmorin <kmorin(a)codelutin.com>
* @since 1.0
*/
public abstract class AbstractChangeScreenAction extends AbstractMainUITuttiAction {
+ protected final TuttiScreen screen;
+
protected AbstractChangeScreenAction(MainUIHandler handler,
String icon,
String text,
String tip,
- boolean hideBody) {
+ boolean hideBody,
+ TuttiScreen screen) {
super(handler, icon, text, tip, hideBody);
+ this.screen = screen;
}
@Override
protected boolean prepareAction() {
boolean result = super.prepareAction();
- result &= getHandler().getCurrentHandler().canCloseUI(getNextScreen());
+ result &= getHandler().quitCurrentScreen();
return result;
}
- /** @return the next screen to display. */
- protected abstract TuttiScreen getNextScreen();
+ @Override
+ protected void doAction() {
+ // change screen
+ getContext().setScreen(screen);
+ }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedCruiseAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedCruiseAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -40,15 +40,16 @@
public class EditSelectedCruiseAction extends AbstractChangeScreenAction {
/** Logger. */
- private static final Log log = LogFactory.getLog(EditSelectedCruiseAction.class);
+ private static final Log log =
+ LogFactory.getLog(EditSelectedCruiseAction.class);
public EditSelectedCruiseAction(MainUIHandler handler) {
super(handler,
"cruise",
_("tutti.action.editSelectedCruise"),
_("tutti.action.editSelectedCruise.tip"),
- true
- );
+ true,
+ TuttiScreen.EDIT_CRUISE);
}
@Override
@@ -57,11 +58,6 @@
if (log.isInfoEnabled()) {
log.info("Edit cruise: " + getContext().getCruiseId());
}
- getContext().setScreen(getNextScreen());
+ super.doAction();
}
-
- @Override
- protected TuttiScreen getNextScreen() {
- return TuttiScreen.EDIT_CRUISE;
- }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedCruiseCatchesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedCruiseCatchesAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedCruiseCatchesAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -27,6 +27,8 @@
import com.google.common.base.Preconditions;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import static org.nuiton.i18n.I18n._;
@@ -38,27 +40,29 @@
*/
public class EditSelectedCruiseCatchesAction extends AbstractChangeScreenAction {
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(EditSelectedCruiseCatchesAction.class);
+
public EditSelectedCruiseCatchesAction(MainUIHandler handler) {
super(handler,
"edit",
_("tutti.action.editCatches"),
_("tutti.action.editCatches.tip"),
- true
- );
+ true,
+ TuttiScreen.EDIT_FISHING_OPERATION);
// setMnemonic('C');
}
@Override
protected void doAction() {
Preconditions.checkState(getContext().isCruiseFilled());
+ if (log.isInfoEnabled()) {
+ log.info("Edit catches of cruise: " + getContext().getCruiseId());
+ }
getContext().setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_EDIT);
getContext().setScreen(null);
- getContext().setScreen(getNextScreen());
+ super.doAction();
}
- @Override
- protected TuttiScreen getNextScreen() {
- return TuttiScreen.EDIT_FISHING_OPERATION;
- }
-
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedProgramAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedProgramAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedProgramAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -47,22 +47,17 @@
"program",
_("tutti.action.editSelectedProgram"),
_("tutti.action.editSelectedProgram.tip"),
- true
- );
+ true,
+ TuttiScreen.EDIT_PROGRAM);
}
@Override
protected void doAction() {
- Preconditions.checkState(getContext().getProgramId() != null);
+ Preconditions.checkState(getContext().isProgramFilled());
if (log.isInfoEnabled()) {
log.info("Edit program: " + getContext().getProgramId());
}
- getContext().setScreen(getNextScreen());
+ super.doAction();
}
- @Override
- protected TuttiScreen getNextScreen() {
- return TuttiScreen.EDIT_PROGRAM;
- }
-
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedProtocolAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedProtocolAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -47,8 +47,8 @@
"protocol",
_("tutti.action.editSelectedProtocol"),
_("tutti.action.editSelectedProtocol.tip"),
- true
- );
+ true,
+ TuttiScreen.EDIT_PROTOCOL);
// setMnemonic('P');
}
@@ -58,12 +58,7 @@
if (log.isInfoEnabled()) {
log.info("Edit protocol: " + getContext().getProtocolId());
}
- getContext().setScreen(getNextScreen());
+ super.doAction();
}
- @Override
- protected TuttiScreen getNextScreen() {
- return TuttiScreen.EDIT_PROTOCOL;
- }
-
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ImportTemporaryReferentialAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ImportTemporaryReferentialAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ImportTemporaryReferentialAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -25,8 +25,6 @@
*/
import fr.ifremer.tutti.ui.swing.TuttiScreen;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import javax.swing.SwingUtilities;
@@ -40,22 +38,18 @@
*/
public class ImportTemporaryReferentialAction extends AbstractChangeScreenAction {
- /** Logger. */
- private static final Log log =
- LogFactory.getLog(ImportTemporaryReferentialAction.class);
-
public ImportTemporaryReferentialAction(MainUIHandler handler) {
super(handler,
"temporary-referential-import",
_("tutti.action.importTemporaryReferential"),
_("tutti.action.importTemporaryReferential.tip"),
- true
- );
+ true,
+ TuttiScreen.IMPORT_TEMPORARY_REFERENTIAL);
}
@Override
protected void doAction() {
- getContext().setScreen(getNextScreen());
+ super.doAction();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
@@ -64,9 +58,4 @@
});
}
-
- @Override
- protected TuttiScreen getNextScreen() {
- return TuttiScreen.IMPORT_TEMPORARY_REFERENTIAL;
- }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -42,6 +42,7 @@
import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI;
import fr.ifremer.tutti.ui.swing.content.referential.ManageTemporaryReferentialUI;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
+import fr.ifremer.tutti.ui.swing.util.CloseableUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.action.TuttiActionUI;
import fr.ifremer.tutti.ui.swing.util.action.TuttiUIAction;
@@ -73,8 +74,6 @@
/** Logger. */
private static final Log log = LogFactory.getLog(MainUIHandler.class);
- public static final String CLONE_PROTOCOL = "cloneProtocol";
-
protected JComponent currentBody;
protected PersistenceService persistenceService;
@@ -277,6 +276,23 @@
ui.getValidatorMessageWidget().clearValidators();
}
+ public boolean quitCurrentScreen() {
+
+ TuttiUI<?, ?> body = (TuttiUI<?, ?>) currentBody;
+ AbstractTuttiUIHandler<?, ?> handler = body.getHandler();
+ boolean canClose;
+ if (handler instanceof CloseableUI) {
+
+ // try to quit UI
+ canClose = ((CloseableUI) handler).quitUI();
+ } else {
+
+ // can always close ui
+ canClose = true;
+ }
+ return canClose;
+ }
+
public AbstractTuttiUIHandler getCurrentHandler() {
TuttiUI<?, ?> body = (TuttiUI<?, ?>) currentBody;
return body.getHandler();
@@ -383,13 +399,6 @@
icon = ui.getMenuActionEditProtocol().getIcon();
break;
- case CLONE_PROTOCOL:
- screenTitle = _("tutti.title.create.protocol");
- ui.setContextValue(true, CLONE_PROTOCOL);
- screenUI = new EditProtocolUI(ui);
- icon = ui.getMenuActionEditProtocol().getIcon();
- break;
-
case EDIT_FISHING_OPERATION:
String validationContext = context.getValidationContext();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ManageDbAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ManageDbAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ManageDbAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -25,8 +25,6 @@
*/
import fr.ifremer.tutti.ui.swing.TuttiScreen;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import static org.nuiton.i18n.I18n._;
@@ -38,30 +36,14 @@
*/
public class ManageDbAction extends AbstractChangeScreenAction {
- /** Logger. */
- private static final Log log = LogFactory.getLog(ManageDbAction.class);
-
public ManageDbAction(MainUIHandler handler) {
super(handler,
"manage-db",
_("tutti.action.manageDb"),
_("tutti.action.manageDb.tip"),
- true
- );
+ true,
+ TuttiScreen.MANAGE_DB);
// setMnemonic('P');
}
- @Override
- protected void doAction() {
- if (log.isDebugEnabled()) {
- log.debug("open manage db screen");
- }
- getContext().setScreen(getNextScreen());
- }
-
- @Override
- protected TuttiScreen getNextScreen() {
- return TuttiScreen.MANAGE_DB;
- }
-
}
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/SelectCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/SelectCruiseAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/SelectCruiseAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -41,19 +41,9 @@
"home",
_("tutti.action.selectCruise"),
_("tutti.action.selectCruise.tip"),
- true
- );
+ true,
+ TuttiScreen.SELECT_CRUISE);
// setMnemonic('S');
}
- @Override
- protected void doAction() {
-// Preconditions.checkNotNull(getContext().isCruiseFilled());
- getContext().setScreen(getNextScreen());
- }
-
- @Override
- protected TuttiScreen getNextScreen() {
- return TuttiScreen.SELECT_CRUISE;
- }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ValidateSelectedCruiseCatchesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ValidateSelectedCruiseCatchesAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ValidateSelectedCruiseCatchesAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -27,6 +27,8 @@
import com.google.common.base.Preconditions;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import static org.nuiton.i18n.I18n._;
@@ -38,13 +40,17 @@
*/
public class ValidateSelectedCruiseCatchesAction extends AbstractChangeScreenAction {
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(ValidateSelectedCruiseCatchesAction.class);
+
public ValidateSelectedCruiseCatchesAction(MainUIHandler handler) {
super(handler,
"validate",
_("tutti.action.validateCatches"),
_("tutti.action.validateCatches.tip"),
- true
- );
+ true,
+ TuttiScreen.EDIT_FISHING_OPERATION);
}
@Override
@@ -52,11 +58,9 @@
Preconditions.checkState(getContext().isCruiseFilled());
getContext().setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_VALIDATE);
getContext().setScreen(null);
- getContext().setScreen(getNextScreen());
+ if (log.isInfoEnabled()) {
+ log.info("Validate catches of cruise: "+getContext().getCruiseId());
+ }
+ super.doAction();
}
-
- @Override
- protected TuttiScreen getNextScreen() {
- return TuttiScreen.EDIT_FISHING_OPERATION;
- }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -25,31 +25,27 @@
*/
import fr.ifremer.tutti.ui.swing.TuttiScreen;
-import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.content.AbstractChangeScreenAction;
+import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import static org.nuiton.i18n.I18n._;
/**
- * Cancels the edition of a cruise
+ * Cancels the edition of a cruise.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class CancelEditCruiseAction extends AbstractTuttiAction<EditCruiseUIModel, EditCruiseUI, EditCruiseUIHandler> {
+public class CancelEditCruiseAction extends AbstractChangeScreenAction {
- public CancelEditCruiseAction(EditCruiseUIHandler handler) {
+ public CancelEditCruiseAction(MainUIHandler handler) {
super(handler,
"cancel",
_("tutti.action.cancel.editCruise"),
_("tutti.action.cancel.editCruise.tip"),
- true
+ true,
+ TuttiScreen.SELECT_CRUISE
);
}
- @Override
- protected void doAction() {
-
- getContext().setScreen(TuttiScreen.SELECT_CRUISE);
- }
-
}
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -33,15 +33,13 @@
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
+import fr.ifremer.tutti.ui.swing.util.CloseableUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import javax.swing.JOptionPane;
-import java.awt.event.ActionEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.List;
@@ -54,7 +52,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.1
*/
-public class EditCruiseUIHandler extends AbstractTuttiUIHandler<EditCruiseUIModel, EditCruiseUI> {
+public class EditCruiseUIHandler extends AbstractTuttiUIHandler<EditCruiseUIModel, EditCruiseUI> implements CloseableUI {
/** Logger. */
private static final Log log = LogFactory.getLog(EditCruiseUIHandler.class);
@@ -228,16 +226,14 @@
}
@Override
- public boolean canCloseUI(TuttiScreen nextScreen) {
- boolean result = true;
- if (getModel().isModify()) {
- int answer = askSaveBeforeLeaving(_("tutti.dialog.askSaveBeforeLeaving.saveCruise"));
- result = answer == JOptionPane.NO_OPTION;
- if (answer == JOptionPane.YES_OPTION) {
- ActionEvent event = new ActionEvent(nextScreen, nextScreen.ordinal(), null);
- doAction(ui.getSaveButton(), event);
- }
- }
+ public boolean quitUI() {
+ boolean result = quitScreen(
+ getModel().isValid(),
+ getModel().isModify(),
+ _("tutti.dialog.askCancelEditBeforeLeaving.saveCruise"),
+ _("tutti.dialog.askSaveBeforeLeaving.saveCruise"),
+ ui.getSaveButton().getAction()
+ );
return result;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/CloseDbAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/CloseDbAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/CloseDbAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -61,10 +61,16 @@
String jdbcUrl = TuttiPersistenceConfig.getInstance().getJdbcUrl();
+ // clear all caches
+ getContext().getPersistenceService().clearAllCaches();
+
+ // set to not reload a real db
getContext().setDbLoaded(false);
+ // close services + repon a fake persistence service
getHandler().reloadPersistenceService();
+ // clean db context
getContext().clearDbContext();
// make sure title is reloaded
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/CloneProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/CloneProtocolAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/CloneProtocolAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -24,10 +24,12 @@
* #L%
*/
-import com.ezware.oxbow.swingbits.util.Preconditions;
+import com.google.common.base.Preconditions;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
-import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.content.AbstractChangeScreenAction;
+import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
+import jaxx.runtime.context.JAXXContextEntryDef;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -39,28 +41,42 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class CloneProtocolAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
+public class CloneProtocolAction extends AbstractChangeScreenAction {
/** Logger. */
private static final Log log = LogFactory.getLog(CloneProtocolAction.class);
- public CloneProtocolAction(SelectCruiseUIHandler handler) {
+ public static final JAXXContextEntryDef<TuttiProtocol> CLONE_PROTOCOL_ENTRY = new JAXXContextEntryDef<TuttiProtocol>("cloneProtocol", TuttiProtocol.class);
+
+ public CloneProtocolAction(MainUIHandler handler) {
super(handler,
"copy",
_("tutti.action.cloneProtocol"),
_("tutti.action.cloneProtocol.tip"),
- true
+ true,
+ TuttiScreen.EDIT_PROTOCOL
);
}
@Override
protected void doAction() {
- TuttiProtocol protocol = getModel().getProtocol();
- Preconditions.checkNotNull(protocol);
- if (log.isDebugEnabled()) {
- log.debug("Clone protocol: " + protocol.getId());
+ Preconditions.checkState(getContext().isProtocolFilled());
+ if (log.isInfoEnabled()) {
+ log.info("Clone protocol: " + getContext().getProtocolId());
}
- getContext().setProtocolId(protocol.getId());
- getContext().setScreen(TuttiScreen.CLONE_PROTOCOL);
+
+ // get protocol
+ TuttiProtocol protocol = getContext().getPersistenceService().getProtocol(getContext().getProtocolId());
+
+ // remove id
+ protocol.setId(null);
+
+ // store protocol in context
+ CLONE_PROTOCOL_ENTRY.setContextValue(getContext().getMainUI(), protocol);
+
+ // removed selected protocol
+ getContext().setProtocolId(null);
+
+ super.doAction();
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCatchesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCatchesAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCatchesAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -27,7 +27,10 @@
import com.google.common.base.Preconditions;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
-import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.content.AbstractChangeScreenAction;
+import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import static org.nuiton.i18n.I18n._;
@@ -37,14 +40,18 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class EditCatchesAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
+public class EditCatchesAction extends AbstractChangeScreenAction {
- public EditCatchesAction(SelectCruiseUIHandler handler) {
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(EditCatchesAction.class);
+
+ public EditCatchesAction(MainUIHandler handler) {
super(handler,
"edit",
_("tutti.action.editCatches"),
_("tutti.action.editCatches.tip"),
- true
+ true,
+ TuttiScreen.EDIT_FISHING_OPERATION
);
}
@@ -52,7 +59,10 @@
protected void doAction() {
Preconditions.checkState(getContext().isProgramFilled());
Preconditions.checkState(getContext().isCruiseFilled());
+ if (log.isInfoEnabled()) {
+ log.info("Edit catches of cruise: " + getContext().getCruiseId());
+ }
getContext().setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_EDIT);
- getContext().setScreen(TuttiScreen.EDIT_FISHING_OPERATION);
+ super.doAction();
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCruiseAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCruiseAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -25,9 +25,9 @@
*/
import com.google.common.base.Preconditions;
-import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
-import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.content.AbstractChangeScreenAction;
+import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import static org.nuiton.i18n.I18n._;
@@ -37,22 +37,22 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class EditCruiseAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
+public class EditCruiseAction extends AbstractChangeScreenAction {
- public EditCruiseAction(SelectCruiseUIHandler handler) {
+ public EditCruiseAction(MainUIHandler handler) {
super(handler,
"edit",
_("tutti.action.editCruise"),
_("tutti.action.editCruise.tip"),
- true
+ true,
+ TuttiScreen.EDIT_CRUISE
);
}
@Override
protected void doAction() {
- Cruise cruise = getModel().getCruise();
- Preconditions.checkNotNull(cruise);
- getContext().setCruiseId(cruise.getId());
- getContext().setScreen(TuttiScreen.EDIT_CRUISE);
+ Preconditions.checkState(getContext().isProgramFilled());
+ Preconditions.checkState(getContext().isCruiseFilled());
+ super.doAction();
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProgramAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProgramAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProgramAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -25,9 +25,11 @@
*/
import com.google.common.base.Preconditions;
-import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
-import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.content.AbstractChangeScreenAction;
+import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import static org.nuiton.i18n.I18n._;
@@ -37,22 +39,27 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class EditProgramAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
+public class EditProgramAction extends AbstractChangeScreenAction {
- public EditProgramAction(SelectCruiseUIHandler handler) {
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(EditProgramAction.class);
+
+ public EditProgramAction(MainUIHandler handler) {
super(handler,
"edit",
_("tutti.action.editProgram"),
_("tutti.action.editProgram.tip"),
- true
+ true,
+ TuttiScreen.EDIT_PROGRAM
);
}
@Override
protected void doAction() {
- Program program = getModel().getProgram();
- Preconditions.checkNotNull(program);
- getContext().setProgramId(program.getId());
- getContext().setScreen(TuttiScreen.EDIT_PROGRAM);
+ Preconditions.checkState(getContext().isProgramFilled());
+ if (log.isInfoEnabled()) {
+ log.info("Edit program: " + getContext().getProgramId());
+ }
+ super.doAction();
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProtocolAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProtocolAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -25,9 +25,9 @@
*/
import com.google.common.base.Preconditions;
-import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
-import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.content.AbstractChangeScreenAction;
+import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -39,28 +39,27 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class EditProtocolAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
+public class EditProtocolAction extends AbstractChangeScreenAction {
/** Logger. */
private static final Log log = LogFactory.getLog(EditProtocolAction.class);
- public EditProtocolAction(SelectCruiseUIHandler handler) {
+ public EditProtocolAction(MainUIHandler handler) {
super(handler,
"edit",
_("tutti.action.editProtocol"),
_("tutti.action.editProtocol.tip"),
- true
+ true,
+ TuttiScreen.EDIT_PROTOCOL
);
}
@Override
protected void doAction() {
- TuttiProtocol protocol = getModel().getProtocol();
- Preconditions.checkNotNull(protocol);
+ Preconditions.checkState(getContext().isProtocolFilled());
if (log.isInfoEnabled()) {
- log.info("Edit protocol: " + protocol.getId());
+ log.info("Edit protocol: " + getContext().getProtocolId());
}
- getContext().setProtocolId(protocol.getId());
- getContext().setScreen(TuttiScreen.EDIT_PROTOCOL);
+ super.doAction();
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -77,7 +77,7 @@
);
doAction = file != null;
if (doAction) {
- file = TuttiIOUtil.addExtensionIfMissing(file, ".tuttiProtocol$");
+ file = TuttiIOUtil.addExtensionIfMissing(file, ".tuttiProtocol");
}
}
return doAction;
@@ -85,8 +85,8 @@
@Override
protected void releaseAction() {
+ file = null;
super.releaseAction();
- file = null;
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -28,8 +28,9 @@
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.content.AbstractChangeScreenAction;
+import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
-import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import jaxx.runtime.context.JAXXContextEntryDef;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -44,7 +45,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class ImportProtocolAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
+public class ImportProtocolAction extends AbstractChangeScreenAction {
/** Logger. */
private static final Log log =
@@ -54,12 +55,13 @@
private File file;
- public ImportProtocolAction(SelectCruiseUIHandler handler) {
+ public ImportProtocolAction(MainUIHandler handler) {
super(handler,
"import",
_("tutti.action.importProtocol"),
_("tutti.action.importProtocol.tip"),
- true
+ true,
+ TuttiScreen.EDIT_PROTOCOL
);
}
@@ -85,12 +87,12 @@
@Override
protected void releaseAction() {
+ file = null;
super.releaseAction();
- file = null;
}
@Override
- protected void doAction() throws Exception {
+ protected void doAction() {
Preconditions.checkNotNull(file);
if (log.isInfoEnabled()) {
@@ -104,12 +106,14 @@
sendMessage("Protocole [" + protocol.getName() + "] lu depuis le fichier.");
+ // store protocol in context
IMPORT_PROTOCOL_ENTRY.setContextValue(getContext().getMainUI(), protocol);
// remove id
protocol.setId(null);
+ // removed selected protocol
getContext().setProtocolId(null);
- getContext().setScreen(TuttiScreen.EDIT_PROTOCOL);
+ super.doAction();
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewCruiseAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewCruiseAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -25,7 +25,8 @@
*/
import fr.ifremer.tutti.ui.swing.TuttiScreen;
-import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.content.AbstractChangeScreenAction;
+import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import static org.nuiton.i18n.I18n._;
@@ -35,20 +36,21 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class NewCruiseAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
+public class NewCruiseAction extends AbstractChangeScreenAction {
- public NewCruiseAction(SelectCruiseUIHandler handler) {
+ public NewCruiseAction(MainUIHandler handler) {
super(handler,
"add",
_("tutti.action.newCruise"),
_("tutti.action.newCruise.tip"),
- true
+ true,
+ TuttiScreen.EDIT_CRUISE
);
}
@Override
protected void doAction() {
getContext().setCruiseId(null);
- getContext().setScreen(TuttiScreen.EDIT_CRUISE);
+ super.doAction();
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProgramAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProgramAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProgramAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -25,7 +25,8 @@
*/
import fr.ifremer.tutti.ui.swing.TuttiScreen;
-import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.content.AbstractChangeScreenAction;
+import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import static org.nuiton.i18n.I18n._;
@@ -35,14 +36,15 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class NewProgramAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
+public class NewProgramAction extends AbstractChangeScreenAction {
- public NewProgramAction(SelectCruiseUIHandler handler) {
+ public NewProgramAction(MainUIHandler handler) {
super(handler,
"add",
_("tutti.action.newProgram"),
_("tutti.action.newProgram.tip"),
- true
+ true,
+ TuttiScreen.EDIT_PROGRAM
);
}
@@ -50,6 +52,6 @@
protected void doAction() {
getContext().setProgramId(null);
getContext().setCruiseId(null);
- getContext().setScreen(TuttiScreen.EDIT_PROGRAM);
+ super.doAction();
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProtocolAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProtocolAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -25,7 +25,8 @@
*/
import fr.ifremer.tutti.ui.swing.TuttiScreen;
-import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.content.AbstractChangeScreenAction;
+import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import static org.nuiton.i18n.I18n._;
@@ -35,20 +36,21 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class NewProtocolAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
+public class NewProtocolAction extends AbstractChangeScreenAction {
- public NewProtocolAction(SelectCruiseUIHandler handler) {
+ public NewProtocolAction(MainUIHandler handler) {
super(handler,
"add",
_("tutti.action.newProtocol"),
_("tutti.action.newProtocol.tip"),
- true
+ true,
+ TuttiScreen.EDIT_PROTOCOL
);
}
@Override
protected void doAction() {
getContext().setProtocolId(null);
- getContext().setScreen(TuttiScreen.EDIT_PROTOCOL);
+ super.doAction();
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ValidateCatchesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ValidateCatchesAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ValidateCatchesAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -27,7 +27,10 @@
import com.google.common.base.Preconditions;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
-import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.content.AbstractChangeScreenAction;
+import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import static org.nuiton.i18n.I18n._;
@@ -37,14 +40,19 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class ValidateCatchesAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
+public class ValidateCatchesAction extends AbstractChangeScreenAction {
- public ValidateCatchesAction(SelectCruiseUIHandler handler) {
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(ValidateCatchesAction.class);
+
+ public ValidateCatchesAction(MainUIHandler handler) {
super(handler,
"validate",
_("tutti.action.validateCatches"),
_("tutti.action.validateCatches.tip"),
- true
+ true,
+ TuttiScreen.EDIT_FISHING_OPERATION
);
}
@@ -53,6 +61,9 @@
Preconditions.checkState(getContext().isProgramFilled());
Preconditions.checkState(getContext().isCruiseFilled());
getContext().setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_VALIDATE);
- getContext().setScreen(TuttiScreen.EDIT_FISHING_OPERATION);
+ if (log.isInfoEnabled()) {
+ log.info("Validate catches of cruise: " + getContext().getCruiseId());
+ }
+ super.doAction();
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -28,9 +28,9 @@
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiTabContainerUIHandler;
+import fr.ifremer.tutti.ui.swing.util.CloseableUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
@@ -47,7 +47,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.1
*/
-public class FishingOperationsUIHandler extends AbstractTuttiTabContainerUIHandler<FishingOperationsUIModel, FishingOperationsUI> {
+public class FishingOperationsUIHandler extends AbstractTuttiTabContainerUIHandler<FishingOperationsUIModel, FishingOperationsUI> implements CloseableUI {
/** Logger. */
private static final Log log =
@@ -200,15 +200,16 @@
}
@Override
- public boolean canCloseUI(TuttiScreen nextScreen) {
-// boolean result = super.canCloseUI(nextScreen);
+ public boolean quitUI() {
+ //FIXME Make sure this is ok
+// boolean result = super.quitUI(nextScreen);
// try to reset current fishing operation, if afterall the fishing operation still
// there, it means user cancel save operation, so stay here
getUI().getFishingOperationComboBox().setSelectedItem(null);
// getModel().setSelectedFishingOperation(null);
boolean result = getModel().getSelectedFishingOperation() == null;
// if (getTabPanel().getSelectedIndex() == 0) {
-// result = ui.getFishingOperationTabContent().getHandler().canCloseUI(nextScreen);
+// result = ui.getFishingOperationTabContent().getHandler().quitUI(nextScreen);
// }
return result;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/CancelEditProgramAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/CancelEditProgramAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/CancelEditProgramAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -25,7 +25,8 @@
*/
import fr.ifremer.tutti.ui.swing.TuttiScreen;
-import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.content.AbstractChangeScreenAction;
+import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import static org.nuiton.i18n.I18n._;
@@ -35,21 +36,16 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class CancelEditProgramAction extends AbstractTuttiAction<EditProgramUIModel, EditProgramUI, EditProgramUIHandler> {
+public class CancelEditProgramAction extends AbstractChangeScreenAction {
- public CancelEditProgramAction(EditProgramUIHandler handler) {
+ public CancelEditProgramAction(MainUIHandler handler) {
super(handler,
"cancel",
_("tutti.action.cancel.editProgram"),
_("tutti.action.cancel.editProgram.tip"),
- true
+ true,
+ TuttiScreen.SELECT_CRUISE
);
}
- @Override
- protected void doAction() {
-
- getContext().setScreen(TuttiScreen.SELECT_CRUISE);
- }
-
}
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -24,17 +24,16 @@
* #L%
*/
+import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
+import fr.ifremer.tutti.ui.swing.util.CloseableUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import javax.swing.JOptionPane;
-import java.awt.event.ActionEvent;
import java.util.List;
import static org.nuiton.i18n.I18n._;
@@ -45,7 +44,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.1
*/
-public class EditProgramUIHandler extends AbstractTuttiUIHandler<EditProgramUIModel, EditProgramUI> {
+public class EditProgramUIHandler extends AbstractTuttiUIHandler<EditProgramUIModel, EditProgramUI> implements CloseableUI {
/** Logger. */
private static final Log log =
@@ -70,7 +69,7 @@
//TODO 20130206 kmorin put the programs loaded in the home screen in a
//kind of context to avoid loading the programs again
- List<Program> programs = persistenceService.getAllProgram();
+ List<Program> programs = Lists.newArrayList(persistenceService.getAllProgram());
model.setExistingPrograms(programs);
@@ -126,16 +125,14 @@
}
@Override
- public boolean canCloseUI(TuttiScreen nextScreen) {
- boolean result = true;
- if (getModel().isModify()) {
- int answer = askSaveBeforeLeaving(_("tutti.dialog.askSaveBeforeLeaving.saveProgram"));
- result = answer == JOptionPane.NO_OPTION;
- if (answer == JOptionPane.YES_OPTION) {
- ActionEvent event = new ActionEvent(nextScreen, nextScreen.ordinal(), null);
- doAction(ui.getSaveButton(), event);
- }
- }
+ public boolean quitUI() {
+ boolean result = quitScreen(
+ getModel().isValid(),
+ getModel().isModify(),
+ _("tutti.dialog.askCancelEditBeforeLeaving.saveProgram"),
+ _("tutti.dialog.askSaveBeforeLeaving.saveProgram"),
+ ui.getSaveButton().getAction()
+ );
return result;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CancelEditProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CancelEditProtocolAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CancelEditProtocolAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -25,7 +25,8 @@
*/
import fr.ifremer.tutti.ui.swing.TuttiScreen;
-import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.content.AbstractChangeScreenAction;
+import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import static org.nuiton.i18n.I18n._;
@@ -35,21 +36,15 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class CancelEditProtocolAction extends AbstractTuttiAction<EditProtocolUIModel, EditProtocolUI, EditProtocolUIHandler> {
+public class CancelEditProtocolAction extends AbstractChangeScreenAction {
- public CancelEditProtocolAction(EditProtocolUIHandler handler) {
+ public CancelEditProtocolAction(MainUIHandler handler) {
super(handler,
"cancel",
_("tutti.action.cancel.editProtocol"),
_("tutti.action.cancel.editProtocol.tip"),
- true
- );
+ true,
+ TuttiScreen.SELECT_CRUISE);
}
- @Override
- protected void doAction() {
-
- getContext().setScreen(TuttiScreen.SELECT_CRUISE);
- }
-
}
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -32,11 +32,11 @@
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.Species;
-import fr.ifremer.tutti.ui.swing.TuttiScreen;
-import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
+import fr.ifremer.tutti.ui.swing.content.home.CloneProtocolAction;
import fr.ifremer.tutti.ui.swing.content.home.ImportProtocolAction;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SelectSpeciesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SelectSpeciesUIModel;
+import fr.ifremer.tutti.ui.swing.util.CloseableUI;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
@@ -55,10 +55,8 @@
import org.nuiton.util.decorator.Decorator;
import javax.swing.JComboBox;
-import javax.swing.JOptionPane;
import javax.swing.table.TableColumnModel;
import java.awt.Dimension;
-import java.awt.event.ActionEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.Collection;
@@ -72,7 +70,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.3
*/
-public class EditProtocolUIHandler extends AbstractTuttiTableUIHandler<EditProtocolSpeciesRowModel, EditProtocolUIModel, EditProtocolUI> {
+public class EditProtocolUIHandler extends AbstractTuttiTableUIHandler<EditProtocolSpeciesRowModel, EditProtocolUIModel, EditProtocolUI> implements CloseableUI {
/** Logger. */
private static final Log log =
@@ -188,48 +186,44 @@
EditProtocolUIModel model = getModel();
- TuttiProtocol protocol = ImportProtocolAction.IMPORT_PROTOCOL_ENTRY.getContextValue(ui);
+ TuttiProtocol protocol;
- if (protocol != null) {
+ if (context.isProtocolFilled()) {
- // import a protocol
+ // load existing protocol
- ImportProtocolAction.IMPORT_PROTOCOL_ENTRY.removeContextValue(ui);
+ protocol = persistenceService.getProtocol(context.getProtocolId());
model.fromBean(protocol);
- model.setImported(true);
- ui.getSaveWarning().setText(_("tutti.label.protocol.import.warning"));
+ log.debug(model.getExistingProtocols());
+ model.getExistingProtocols().remove(protocol);
- } else {
+ } else if ((protocol = ImportProtocolAction.IMPORT_PROTOCOL_ENTRY.getContextValue(ui)) != null) {
- // load protocol if existing
+ // import protocol
- if (context.isProtocolFilled()) {
+ ImportProtocolAction.IMPORT_PROTOCOL_ENTRY.removeContextValue(ui);
- // load existing protocol
- protocol = persistenceService.getProtocol(context.getProtocolId());
- Boolean mustClone = ui.getContextValue(Boolean.class, MainUIHandler.CLONE_PROTOCOL);
+ model.fromBean(protocol);
+ model.setImported(true);
+ ui.getSaveWarning().setText(_("tutti.label.protocol.import.warning"));
- model.fromBean(protocol);
- if (mustClone != null && mustClone) {
- ui.setContextValue(false, MainUIHandler.CLONE_PROTOCOL);
- model.setId(null);
- model.setCloned(true);
+ } else if ((protocol = CloneProtocolAction.CLONE_PROTOCOL_ENTRY.getContextValue(ui)) != null) {
- ui.getSaveWarning().setText(_("tutti.label.protocol.clone.warning"));
+ // clone protocol
- } else {
- log.debug(model.getExistingProtocols());
- model.getExistingProtocols().remove(protocol);
- }
+ CloneProtocolAction.CLONE_PROTOCOL_ENTRY.getContextValue(ui);
- } else {
+ model.fromBean(protocol);
+ model.setCloned(true);
+ ui.getSaveWarning().setText(_("tutti.label.protocol.clone.warning"));
- // create new protocol
+ } else {
- if (log.isDebugEnabled()) {
- log.debug("Will create a new protocol");
- }
+ // create new protocol
+
+ if (log.isDebugEnabled()) {
+ log.debug("Will create a new protocol");
}
}
@@ -364,19 +358,18 @@
}
@Override
- public boolean canCloseUI(TuttiScreen nextScreen) {
- boolean result = true;
- if (getModel().isModify()) {
- int answer = askSaveBeforeLeaving(_("tutti.dialog.askSaveBeforeLeaving.saveProtocol"));
- result = answer == JOptionPane.NO_OPTION;
- if (answer == JOptionPane.YES_OPTION) {
- ActionEvent event = new ActionEvent(nextScreen, nextScreen.ordinal(), null);
- doAction(ui.getSaveButton(), event);
- }
- }
+ public boolean quitUI() {
+ boolean result = quitScreen(
+ getModel().isValid(),
+ getModel().isModify(),
+ _("tutti.dialog.askCancelEditBeforeLeaving.cancelSaveProtocol"),
+ _("tutti.dialog.askSaveBeforeLeaving.saveProtocol"),
+ ui.getSaveButton().getAction()
+ );
return result;
}
+
@Override
protected void onAfterSelectedRowChanged(int oldRowIndex,
EditProtocolSpeciesRowModel oldRow,
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -68,15 +68,14 @@
EditProtocolUIModel model = getModel();
TuttiUIContext context = getContext();
- PersistenceService persistenceService =
- context.getPersistenceService();
+ PersistenceService persistenceService = context.getPersistenceService();
TuttiProtocol bean = model.toBean();
// get the species protocols from the table
List<SpeciesProtocol> protocols = Lists.newArrayList();
- for (EditProtocolSpeciesRowModel row : handler.getTableModel().getRows()) {
+ for (EditProtocolSpeciesRowModel row : model.getRows()) {
if (row.isValid()) {
SpeciesProtocol protocol = row.toBean();
protocols.add(protocol);
@@ -99,14 +98,7 @@
context.setProtocolId(saved.getId());
- //TODO-TC Make this works again (but in another manner)...
-// TuttiScreen nextScreen;
-// if (event.getSource().getClass().isAssignableFrom(TuttiScreen.class)) {
-// nextScreen = (TuttiScreen) event.getSource();
-// } else {
-// nextScreen = TuttiScreen.SELECT_CRUISE;
-// }
-// context.setScreen(nextScreen);
+ model.setModify(false);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SelectOtherSpeciesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SelectOtherSpeciesAction.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SelectOtherSpeciesAction.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -27,7 +27,6 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.referential.Species;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.species.split.AddSpeciesAction;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -45,7 +44,8 @@
public class SelectOtherSpeciesAction extends AbstractTuttiAction<EditProtocolUIModel, EditProtocolUI, EditProtocolUIHandler> {
/** Logger. */
- private static final Log log = LogFactory.getLog(AddSpeciesAction.class);
+ private static final Log log =
+ LogFactory.getLog(SelectOtherSpeciesAction.class);
protected Species selectedSpecies;
@@ -61,14 +61,19 @@
@Override
protected boolean prepareAction() {
boolean result = super.prepareAction();
- EditProtocolUIModel model = getModel();
+ if (result) {
+ EditProtocolUIModel model = getModel();
- List<Species> species = Lists.newArrayList(model.getAllSynonyms());
+ List<Species> species = Lists.newArrayList(model.getAllSynonyms());
- selectedSpecies = getHandler().openSelectOtherSpeciesDialog(
- _("tutti.title.selectSpecies"), species);
+ selectedSpecies = getHandler().openSelectOtherSpeciesDialog(
+ _("tutti.title.selectSpecies"), species);
- result &= selectedSpecies != null;
+ if (log.isInfoEnabled()) {
+ log.info("SelectedSpecies: " + selectedSpecies);
+ }
+ result = selectedSpecies != null;
+ }
return result;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -30,7 +30,6 @@
import fr.ifremer.tutti.persistence.entities.IdAware;
import fr.ifremer.tutti.service.DecoratorService;
import fr.ifremer.tutti.ui.swing.TuttiDataContext;
-import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
import fr.ifremer.tutti.ui.swing.content.AbstractMainUITuttiAction;
@@ -72,7 +71,6 @@
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.text.JTextComponent;
-import java.awt.Color;
import java.awt.Component;
import java.awt.Dialog;
import java.awt.Dimension;
@@ -180,18 +178,6 @@
return context.getConfig();
}
- /**
- * Can the UI be closed? It is useful whe the user wants to exit the current
- * screen but the model is modified: we can then ask the user if he wants to
- * save or not.
- *
- * @param nextScreen the next screen to display
- * @return {@code true} if UI can be closed, {@code false} otherwise.
- */
- public boolean canCloseUI(TuttiScreen nextScreen) {
- return true;
- }
-
public void setText(KeyEvent event, String property) {
JTextComponent field = (JTextComponent) event.getSource();
String value = field.getText();
@@ -405,6 +391,48 @@
button.getAction().actionPerformed(event);
}
+ protected boolean quitScreen(boolean modelIsValid,
+ boolean modelIsModify,
+ String askGiveUpMessage,
+ String askSaveMessage,
+ Action saveAction) {
+ boolean result;
+
+ if (!modelIsValid) {
+
+ // model is not valid
+ // ask user to qui or not
+ result = askCancelEditBeforeLeaving(askGiveUpMessage);
+
+ } else if (modelIsModify) {
+
+ // something is modify ask user what to do
+ int answer = askSaveBeforeLeaving(askSaveMessage);
+ switch (answer) {
+ case JOptionPane.YES_OPTION:
+
+ // ok save
+ saveAction.actionPerformed(null);
+ result = true;
+ break;
+ case JOptionPane.NO_OPTION:
+
+ // do not save but can still quit the screen (so nothing to do)
+ result = true;
+ break;
+ default:
+ // do not save and stay here (so nothing to do)
+ result = false;
+
+ }
+ } else {
+
+ // model is valid and not modify, can safely quit screen
+ result = true;
+ }
+ return result;
+ }
+
protected void registerValidators(SwingValidator... validators) {
MainUI main = context.getMainUI();
Preconditions.checkNotNull(
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CloseableUI.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CloseableUI.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CloseableUI.java 2013-03-06 17:24:40 UTC (rev 554)
@@ -0,0 +1,18 @@
+package fr.ifremer.tutti.ui.swing.util;
+
+/**
+ * Contract to close an ui.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0.2
+ */
+public interface CloseableUI {
+
+ /**
+ * Try to quit UI.
+ *
+ * @return {@code true} if ui is safe to quit, {@code false} otherwise
+ * (means must stay on it).
+ */
+ boolean quitUI();
+}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CloseableUI.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-03-06 17:22:48 UTC (rev 553)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-03-06 17:24:40 UTC (rev 554)
@@ -181,6 +181,9 @@
tutti.config.category.ui.description=Options de l'interface utilisateur
tutti.dialog.askCancelEditBeforeLeaving.cancelEditCatchBatch=La capture modifiée n'est pas valide. Voulez-vous annuler les modifications ?
tutti.dialog.askCancelEditBeforeLeaving.cancelEditFishingOperation=Le trait modifié n'est pas valide. Voulez-vous annuler les modifications ?
+tutti.dialog.askCancelEditBeforeLeaving.cancelSaveProtocol=
+tutti.dialog.askCancelEditBeforeLeaving.saveCruise=
+tutti.dialog.askCancelEditBeforeLeaving.saveProgram=
tutti.dialog.askCancelEditBeforeLeaving.title=Modifications non enregistrées mais invalides
tutti.dialog.askOverwriteFile.message=Le fichier %s existe déjà, confirmer pour l'écraser.
tutti.dialog.askOverwriteFile.title=Confirmer l'écrasement d'un fichier...
@@ -346,8 +349,7 @@
tutti.label.tab.fishingOperation=Trait
tutti.label.tab.fishingOperation.gearUseFeature=Mise en oeuvre de l'engin
tutti.label.tab.fishingOperation.general=Trait
-tutti.label.tab.fishingOperation.hydrology=Paramètres hydrologiques
-tutti.label.tab.fishingOperation.vesselUseFeature=Autres caractéristiques
+tutti.label.tab.fishingOperation.vesselUseFeature=Hydrologie et paramètres environnementaux
tutti.label.tab.macroDechet=Macro déchets
tutti.label.tab.observationIndividuel=Observations individuelles
tutti.label.tab.plancton=Plancton
1
0
r553 - trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation
by kmorin@users.forge.codelutin.com 06 Mar '13
by kmorin@users.forge.codelutin.com 06 Mar '13
06 Mar '13
Author: kmorin
Date: 2013-03-06 18:22:48 +0100 (Wed, 06 Mar 2013)
New Revision: 553
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/553
Log:
refs #2014 [TRAIT] Cr?\195?\169ation du trait - bug controle "la date de fin doit ?\195?\170tre apr?\195?\168s la date de d?\195?\169but"
Modified:
trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml
Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml 2013-03-06 17:10:04 UTC (rev 552)
+++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml 2013-03-06 17:22:48 UTC (rev 553)
@@ -96,7 +96,7 @@
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
- <![CDATA[ gearShootingEndDate == null || gearShootingStartDate.before(gearShootingEndDate) ]]>
+ <![CDATA[ gearShootingEndDate == null || !gearShootingStartDate.after(gearShootingEndDate) ]]>
</param>
<message>tutti.validator.error.fishingOperation.dates.endBeforeStart</message>
</field-validator>
@@ -107,7 +107,7 @@
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
- <![CDATA[ gearShootingEndDate == null || gearShootingStartDate == null || gearShootingStartDate.before(gearShootingEndDate) ]]>
+ <![CDATA[ gearShootingEndDate == null || gearShootingStartDate == null || !gearShootingStartDate.after(gearShootingEndDate) ]]>
</param>
<message>tutti.validator.error.fishingOperation.dates.endBeforeStart</message>
</field-validator>
1
0
r552 - in trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence: entities/data service
by tchemit@users.forge.codelutin.com 06 Mar '13
by tchemit@users.forge.codelutin.com 06 Mar '13
06 Mar '13
Author: tchemit
Date: 2013-03-06 18:10:04 +0100 (Wed, 06 Mar 2013)
New Revision: 552
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/552
Log:
improve some technical code
Added:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/SampleCategoryEnum.java
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java
Added: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/SampleCategoryEnum.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/SampleCategoryEnum.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/SampleCategoryEnum.java 2013-03-06 17:10:04 UTC (rev 552)
@@ -0,0 +1,76 @@
+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 com.google.common.base.Preconditions;
+import fr.ifremer.tutti.persistence.service.TuttiEnumerationFile;
+
+public enum SampleCategoryEnum implements TuttiEnumerationFile.TuttiEnumerable<Integer> {
+
+ sortedUnsorted("PMFM_ID_SORTED_UNSORTED"),
+ size("PMFM_ID_SIZE_CATEGORY"),
+ sex("PMFM_ID_SEX"),
+ maturity("PMFM_ID_MATURITY"),
+ age("PMFM_ID_AGE");
+
+ private final String fieldName;
+
+ private Integer fieldValue;
+
+ private boolean init;
+
+ SampleCategoryEnum(String fieldName) {
+ this.fieldName = fieldName;
+ }
+
+ @Override
+ public String getFieldName() {
+ return fieldName;
+ }
+
+ @Override
+ public Integer getFieldValue() {
+ Preconditions.checkState(
+ isInit(),
+ "Enumeration " + getClass() + " was not init!");
+ return fieldValue;
+ }
+
+ @Override
+ public void setFieldValue(Object fieldValue) {
+ this.fieldValue = (Integer) fieldValue;
+ }
+
+ @Override
+ public boolean isInit() {
+ return init;
+ }
+
+ @Override
+ public void setInit(boolean init) {
+ this.init = init;
+ }
+} //SampleCategoryEnum
Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/SampleCategoryEnum.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java 2013-03-06 16:05:03 UTC (rev 551)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java 2013-03-06 17:10:04 UTC (rev 552)
@@ -791,7 +791,7 @@
sm = catchBatchDao.getInheritedSortingMeasurement(source, enumeration.PMFM_ID_SORTED_UNSORTED);
}
if (sm != null) {
- SampleCategoryEnum sampleCategory = referentialService.getSampleCategoryByPmfmId(sm.getPmfm().getId());
+ SampleCategoryEnum sampleCategory = enumeration.getSampleCategoryByPmfmId(sm.getPmfm().getId());
if (sampleCategory != null) {
setSampleCategoryQualitative(target, sm.getPmfm().getId(), sm.getNumericalValue(), sm.getAlphanumericalValue(), sm.getQualitativeValue().getId());
}
@@ -1039,7 +1039,7 @@
return;
}
- SampleCategoryEnum sampleCategory = referentialService.getSampleCategoryByPmfmId(pmfmId);
+ SampleCategoryEnum sampleCategory = enumeration.getSampleCategoryByPmfmId(pmfmId);
Preconditions.checkNotNull(sampleCategory, "Unable to find corresponding SampleCategoryEnum for PMFM.ID : " + pmfmId);
target.setSampleCategoryType(sampleCategory);
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java 2013-03-06 16:05:03 UTC (rev 551)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java 2013-03-06 17:10:04 UTC (rev 552)
@@ -218,8 +218,6 @@
boolean isSortedQualitativeValue(CaracteristicQualitativeValue value);
- List<Integer> getSampleCategoryIds();
-
/**
* Import given temporary species.
*
@@ -259,14 +257,4 @@
@Transactional(readOnly = false)
@CacheEvict(value = "gears", allEntries = true)
List<Gear> importTemporaryGear(List<Gear> gears);
-
-
- /**
- * Convert a PMFM ID into a SampleCategoryEnum.<br/>
- * This method will typically use enumeration values, to compare with the given pmfmId.
- *
- * @param pmfmId a Id of a PMFM
- * @return a SampleCategoryEnum, or null if the PMFM is not mapped
- */
- SampleCategoryEnum getSampleCategoryByPmfmId(Integer pmfmId);
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-03-06 16:05:03 UTC (rev 551)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-03-06 17:10:04 UTC (rev 552)
@@ -35,7 +35,6 @@
import fr.ifremer.adagio.core.dao.referential.taxon.TaxonRefTaxVO;
import fr.ifremer.adagio.core.service.technical.CacheService;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum;
import fr.ifremer.tutti.persistence.entities.referential.AbstractTuttiReferentialEntity;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
@@ -446,7 +445,7 @@
Integer pmfmId = (Integer) source[0];
Caracteristic target = loadCaracteristic(source);
// Skip some protected PSFM
- if (!isProtectedCaracteristic(pmfmId)) {
+ if (!enumeration.isProtectedCaracteristic(pmfmId)) {
result.add(target);
}
pmfmByIdCache.put(pmfmId, target);
@@ -843,51 +842,22 @@
entity.setStatus(newStatus);
}
- /**
- * Return list of protected pmfm for sample category
- * (i.e. to check the validity of a existing batch tree)
- *
- * @return
- */
- public List<Integer> getSampleCategoryIds() {
- return Lists.newArrayList(enumeration.PMFM_ID_SORTED_UNSORTED
- , enumeration.PMFM_ID_SIZE_CATEGORY
- , enumeration.PMFM_ID_MATURITY
- , enumeration.PMFM_ID_SEX
- , enumeration.PMFM_ID_AGE);
- }
-
- /**
- * Return true if the pmfm should NOT be used for caracteristics lists
- * (i.e. because used somewhere when storing some properties into the database)
- *
- * @param pmfmId
- * @return
- */
- protected boolean isProtectedCaracteristic(Integer pmfmId) {
- return pmfmId.equals(enumeration.PMFM_ID_MULTIRIG_AGGREGATION)
- || pmfmId.equals(enumeration.PMFM_ID_MULTIRIG_NUMBER)
- || pmfmId.equals(enumeration.PMFM_ID_STATION_NUMBER)
- || pmfmId.equals(enumeration.PMFM_ID_RECTILINEAR_OPERATION)
- || pmfmId.equals(enumeration.PMFM_ID_HAUL_VALID)
- || pmfmId.equals(enumeration.PMFM_ID_TRAWL_DISTANCE);
- }
-
- @Override
- public SampleCategoryEnum getSampleCategoryByPmfmId(Integer pmfmId) {
- if (pmfmId == null) return null;
- SampleCategoryEnum sampleCategory = null;
- if (pmfmId.intValue() == enumeration.PMFM_ID_SORTED_UNSORTED.intValue()) {
- sampleCategory = SampleCategoryEnum.sortedUnsorted;
- } else if (enumeration.PMFM_ID_SIZE_CATEGORY.equals(pmfmId)) {
- sampleCategory = SampleCategoryEnum.size;
- } else if (enumeration.PMFM_ID_MATURITY.equals(pmfmId)) {
- sampleCategory = SampleCategoryEnum.maturity;
- } else if (enumeration.PMFM_ID_SEX.equals(pmfmId)) {
- sampleCategory = SampleCategoryEnum.sex;
- } else if (enumeration.PMFM_ID_AGE.equals(pmfmId)) {
- sampleCategory = SampleCategoryEnum.age;
- }
- return sampleCategory;
- }
+// @Override
+// public SampleCategoryEnum getSampleCategoryByPmfmId(Integer pmfmId) {
+//
+// if (pmfmId == null) return null;
+// SampleCategoryEnum sampleCategory = null;
+// if (pmfmId.intValue() == enumeration.PMFM_ID_SORTED_UNSORTED.intValue()) {
+// sampleCategory = SampleCategoryEnum.sortedUnsorted;
+// } else if (enumeration.PMFM_ID_SIZE_CATEGORY.equals(pmfmId)) {
+// sampleCategory = SampleCategoryEnum.size;
+// } else if (enumeration.PMFM_ID_MATURITY.equals(pmfmId)) {
+// sampleCategory = SampleCategoryEnum.maturity;
+// } else if (enumeration.PMFM_ID_SEX.equals(pmfmId)) {
+// sampleCategory = SampleCategoryEnum.sex;
+// } else if (enumeration.PMFM_ID_AGE.equals(pmfmId)) {
+// sampleCategory = SampleCategoryEnum.age;
+// }
+// return sampleCategory;
+// }
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java 2013-03-06 16:05:03 UTC (rev 551)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java 2013-03-06 17:10:04 UTC (rev 552)
@@ -26,12 +26,15 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
+import fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.ReflectionUtils;
import java.lang.reflect.Field;
import java.util.Map;
+import java.util.Set;
/**
* Contains all constants usable via the enumeration file.
@@ -241,6 +244,10 @@
void setInit(boolean init);
}
+ protected Set<Integer> propertedPmfmIds;
+
+ protected Map<Integer, SampleCategoryEnum> pmfmIdToSampleCategory;
+
public void init() {
Map<String, Object> annotatedFieldValues = Maps.newTreeMap();
@@ -263,8 +270,53 @@
// init enums
initEnum(AttachementObjectTypeEnum.class, annotatedFieldValues);
+ initEnum(SampleCategoryEnum.class, annotatedFieldValues);
+
+ // init protected pmfm ids
+ propertedPmfmIds = Sets.newHashSet(
+ PMFM_ID_MULTIRIG_AGGREGATION,
+ PMFM_ID_MULTIRIG_NUMBER,
+ PMFM_ID_STATION_NUMBER,
+ PMFM_ID_RECTILINEAR_OPERATION,
+ PMFM_ID_HAUL_VALID,
+ PMFM_ID_TRAWL_DISTANCE,
+ PMFM_ID_SURVEY_PART,
+ PMFM_ID_MEASUREMENT_FILE,
+ PMFM_ID_SORTED_UNSORTED,
+ PMFM_ID_SIZE_CATEGORY,
+ PMFM_ID_MATURITY,
+ PMFM_ID_SEX,
+ PMFM_ID_AGE
+ );
+
+ pmfmIdToSampleCategory = Maps.newTreeMap();
+ for (SampleCategoryEnum type : SampleCategoryEnum.values()) {
+ pmfmIdToSampleCategory.put(type.getFieldValue(), type);
+ }
}
+ /**
+ * @param pmfmId id of pmfm to test
+ * @return {@code true} if the pmfm should NOT be used for caracteristics lists
+ * (i.e. because used somewhere when storing some properties into the database)
+ */
+ public boolean isProtectedCaracteristic(Integer pmfmId) {
+ return propertedPmfmIds.contains(pmfmId);
+ }
+
+
+ /**
+ * Convert a PMFM ID into a SampleCategoryEnum.<br/>
+ * This method will typically use enumeration values, to compare with the given pmfmId.
+ *
+ * @param pmfmId a Id of a PMFM
+ * @return a SampleCategoryEnum, or null if the PMFM is not mapped
+ */
+ public SampleCategoryEnum getSampleCategoryByPmfmId(Integer pmfmId) {
+ SampleCategoryEnum result = pmfmIdToSampleCategory.get(pmfmId);
+ return result;
+ }
+
protected <O, E extends Enum<E> & TuttiEnumerable<O>> void initEnum(
Class<E> enumType,
Map<String, Object> annotatedFieldValues) {
1
0
r551 - trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service
by tchemit@users.forge.codelutin.com 06 Mar '13
by tchemit@users.forge.codelutin.com 06 Mar '13
06 Mar '13
Author: tchemit
Date: 2013-03-06 17:05:03 +0100 (Wed, 06 Mar 2013)
New Revision: 551
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/551
Log:
fixes #2083: [TECH] Ne pas rendre modifiable les listes retourn?\195?\169es dans la couche persistence.
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java 2013-03-06 15:21:55 UTC (rev 550)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java 2013-03-06 16:05:03 UTC (rev 551)
@@ -45,6 +45,7 @@
import javax.annotation.Resource;
import java.io.File;
+import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -100,7 +101,7 @@
loadAttachment(source, target);
result.add(target);
}
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java 2013-03-06 15:21:55 UTC (rev 550)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java 2013-03-06 16:05:03 UTC (rev 551)
@@ -64,6 +64,7 @@
import java.io.Serializable;
import java.text.MessageFormat;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -323,50 +324,6 @@
return result;
}
-// @Override
-// public List<SpeciesBatch> getAllRootSpeciesBatch(String fishingOperationId) {
-//
-// // Load batch tree
-// Integer catchBatchId = catchBatchDao.getIdByFishingOperationId(Integer.valueOf(fishingOperationId));
-// fr.ifremer.adagio.core.dao.data.batch.CatchBatch catchBatch = catchBatchDao.loadFullTree(catchBatchId);
-//
-// List<SpeciesBatch> result = new ArrayList<SpeciesBatch>();
-//
-// // Vrac / Species
-// SortingBatch vracSpeciesBatch = catchBatchDao.getSortingBatch(catchBatch.getChildBatchs(),
-// "pmfmId", enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID,
-// "pmfmId", enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES);
-// for (Batch batch1 : vracSpeciesBatch.getChildBatchs()) {
-// SortingBatch source = (SortingBatch) batch1;
-//
-// // evict some special batches : Life (or Biota) and Inert
-// if (source.getReferenceTaxon() != null
-// && !enumeration.REFERENCE_TAXON_ID_LIFE.equals(source.getReferenceTaxon().getId())
-// && !enumeration.REFERENCE_TAXON_ID_INERT.equals(source.getReferenceTaxon().getId())) {
-// SpeciesBatch target = new SpeciesBatch();
-//
-// entityToBean(source, target);
-// result.add(target);
-// }
-// }
-//
-// // Hors-Vrac / Species
-// SortingBatch horsVracSpeciesBatch = catchBatchDao.getSortingBatch(catchBatch.getChildBatchs(),
-// "pmfmId", enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_HORS_VRAC_ID,
-// "pmfmId", enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES);
-// if (horsVracSpeciesBatch != null) {
-// for (Batch batch : horsVracSpeciesBatch.getChildBatchs()) {
-// SortingBatch source = (SortingBatch) batch;
-//
-// SpeciesBatch target = new SpeciesBatch();
-//
-// entityToBean(source, target);
-// result.add(target);
-// }
-// }
-// return result;
-// }
-
@Override
public SpeciesBatch createSpeciesBatch(SpeciesBatch bean,
String parentBatchId) {
@@ -467,7 +424,7 @@
entityToBean(source, target);
results.add(target);
}
- return results;
+ return Collections.unmodifiableList(results);
}
@Override
@@ -558,7 +515,7 @@
getCurrentSession().flush();
- return notNullFrequencies;
+ return Collections.unmodifiableList(notNullFrequencies);
}
//------------------------------------------------------------------------//
@@ -605,7 +562,7 @@
result.add(target);
}
}
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
@@ -715,7 +672,7 @@
entityToBean(source, target);
results.add(target);
}
- return results;
+ return Collections.unmodifiableList(results);
}
@Override
@@ -799,7 +756,7 @@
getCurrentSession().flush();
- return frequencies;
+ return Collections.unmodifiableList(frequencies);
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-03-06 15:21:55 UTC (rev 550)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-03-06 16:05:03 UTC (rev 551)
@@ -69,6 +69,7 @@
import java.sql.Timestamp;
import java.text.MessageFormat;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
@@ -143,7 +144,7 @@
target.setBeginDate((Date) source[2]);
result.add(target);
}
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2013-03-06 15:21:55 UTC (rev 550)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2013-03-06 16:05:03 UTC (rev 551)
@@ -81,6 +81,7 @@
import java.sql.Timestamp;
import java.text.MessageFormat;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
@@ -136,7 +137,7 @@
"pmfmIdMultirigAggregation", IntegerType.INSTANCE, enumeration.PMFM_ID_MULTIRIG_AGGREGATION
);
- List<FishingOperation> fishingOperations = new ArrayList<FishingOperation>();
+ List<FishingOperation> result = new ArrayList<FishingOperation>();
int fishingOperationRankOrder = 0;
while (list.hasNext()) {
Object[] source = list.next();
@@ -190,9 +191,9 @@
fishingOperation.setMultirigAggregation("1");
}
- fishingOperations.add(fishingOperation);
+ result.add(fishingOperation);
}
- return fishingOperations;
+ return Collections.unmodifiableList(result);
}
@Override
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceImpl.java 2013-03-06 15:21:55 UTC (rev 550)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceImpl.java 2013-03-06 16:05:03 UTC (rev 551)
@@ -42,6 +42,7 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -87,7 +88,7 @@
loadProgram(target, source);
result.add(target);
}
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java 2013-03-06 15:21:55 UTC (rev 550)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java 2013-03-06 16:05:03 UTC (rev 551)
@@ -39,6 +39,7 @@
import java.io.File;
import java.util.Collection;
+import java.util.Collections;
import java.util.List;
import java.util.UUID;
@@ -77,7 +78,7 @@
result.add(fileName.substring(0,
fileName.length() - suffixLength));
}
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
@@ -87,7 +88,7 @@
for (TuttiProtocol protocol : getAllProtocol()) {
result.add(protocol.getName());
}
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
@@ -97,7 +98,7 @@
TuttiProtocol protocol = getProtocol(id);
result.add(protocol);
}
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-03-06 15:21:55 UTC (rev 550)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-03-06 16:05:03 UTC (rev 551)
@@ -61,6 +61,7 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.util.Collections;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
@@ -125,7 +126,7 @@
setStatus((fr.ifremer.adagio.core.dao.referential.Status) source[3], target);
result.add(target);
}
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
@@ -144,7 +145,7 @@
setStatus((fr.ifremer.adagio.core.dao.referential.Status) source[3], target);
result.add(target);
}
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
@@ -154,7 +155,7 @@
enumeration.LOCATION_LEVEL_ID_STRATA,
Integer.valueOf(zoneId),
enumeration.LOCATION_LEVEL_ID_PROGRAM);
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
@@ -182,7 +183,7 @@
enumeration.LOCATION_LEVEL_ID_SUB_STRATA,
Integer.valueOf(parentId),
parentLocationLevelId);
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
@@ -217,7 +218,7 @@
enumeration.LOCATION_LEVEL_ID_LOCALITE,
Integer.valueOf(parentId),
parentLocationLevelId);
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
@@ -258,7 +259,7 @@
// Add to cache
vesselByCodeCache.put(target.getId(), target);
}
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
@@ -281,7 +282,7 @@
// Add to cache
vesselByCodeCache.put(target.getId(), target);
}
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
@@ -316,7 +317,7 @@
Gear target = loadGear(source, true);
result.add(target);
}
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
@@ -330,7 +331,7 @@
Gear target = loadGear(source, false);
result.add(target);
}
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
@@ -347,7 +348,7 @@
Person target = loadPerson(source);
result.add(target);
}
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
@@ -400,7 +401,7 @@
Cache allReferentSpeciesCache = cacheService.getCache("referentSpecies");
allReferentSpeciesCache.put("", referenceTaxonsOnly);
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
@@ -417,7 +418,7 @@
result.add(target);
}
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
@@ -450,7 +451,7 @@
}
pmfmByIdCache.put(pmfmId, target);
}
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
@@ -465,7 +466,7 @@
cache.put(code, target);
result.add(target);
}
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
@@ -485,7 +486,7 @@
result.add(caracteristic);
}
}
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
@@ -555,7 +556,7 @@
source = importTemporarySpecies(source);
result.add(source);
}
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
@@ -576,7 +577,7 @@
source = importTemporaryVessel(source, countryLocationId, status);
result.add(source);
}
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
@@ -589,7 +590,7 @@
source = importTemporaryPerson(source, status);
result.add(source);
}
- return result;
+ return Collections.unmodifiableList(result);
}
@Override
@@ -602,7 +603,7 @@
source = importTemporaryGear(source, status);
result.add(source);
}
- return result;
+ return Collections.unmodifiableList(result);
}
//------------------------------------------------------------------------//
@@ -698,28 +699,6 @@
return result;
}
- protected List<FishingOperationLocation> getFishingOperationLocations(Integer locationLevelId) {
- Iterator<Object[]> sources = queryListWithStatus(
- "allFishingOperationLocation",
- "locationClassificationId", IntegerType.INSTANCE, enumeration.LOCATION_CLASSIFICATION_ID_SECTOR,
- "locationLevelId", IntegerType.INSTANCE, locationLevelId
- );
- List<FishingOperationLocation> result = Lists.newArrayList();
- while (sources.hasNext()) {
- Object[] source = sources.next();
- FishingOperationLocation target = new FishingOperationLocation();
- target.setId(String.valueOf(source[0]));
- target.setLabel((String) source[1]);
- target.setName((String) source[2]);
-// target.setDescription((String)source[3]);
- target.setLocationLevel((Integer) source[3]);
-
- setStatus((fr.ifremer.adagio.core.dao.referential.Status) source[4], target);
- result.add(target);
- }
- return result;
- }
-
protected List<FishingOperationLocation> getFishingOperationLocationsByParent(Integer locationLevelId, Integer parentId, Integer parentLocationLevelId) {
Iterator<Object[]> sources = queryListWithStatus(
"allFishingOperationLocationByParent",
1
0
r550 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split
by kmorin@users.forge.codelutin.com 06 Mar '13
by kmorin@users.forge.codelutin.com 06 Mar '13
06 Mar '13
Author: kmorin
Date: 2013-03-06 16:21:55 +0100 (Wed, 06 Mar 2013)
New Revision: 550
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/550
Log:
debug
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-03-06 15:19:09 UTC (rev 549)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-03-06 15:21:55 UTC (rev 550)
@@ -250,7 +250,7 @@
model.setSpecies(species);
TuttiActionUI actionUI = context.getActionUI();
- openDialog(taui, dialog, title, new Dimension(400, 130));
+ openDialog(actionUI, dialog, title, new Dimension(400, 130));
return model.getSelectedSpecies();
}
1
0
r549 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing: content/operation content/operation/catches content/operation/catches/species/split util util/action
by kmorin@users.forge.codelutin.com 06 Mar '13
by kmorin@users.forge.codelutin.com 06 Mar '13
06 Mar '13
Author: kmorin
Date: 2013-03-06 16:19:09 +0100 (Wed, 06 Mar 2013)
New Revision: 549
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/549
Log:
- long action lock test
- debug dialog opening in long actions
- debug edition of a new operation
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/catches/ComputeWeightsAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/AddSpeciesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java
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-03-06 09:34:33 UTC (rev 548)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-03-06 15:19:09 UTC (rev 549)
@@ -299,9 +299,14 @@
if (!canContinue) {
- // rollback selected fishing operation
- FishingOperation selectFishingOperation =
- model.getFishingOperation(editFishingOperationId);
+ FishingOperation selectFishingOperation;
+ if (TuttiEntities.isNew(editFishingOperation)) {
+ selectFishingOperation = editFishingOperation;
+ } else {
+ // rollback selected fishing operation
+ selectFishingOperation =
+ model.getFishingOperation(editFishingOperationId);
+ }
model.setEditionAdjusting(true);
try {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-03-06 09:34:33 UTC (rev 548)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-03-06 15:19:09 UTC (rev 549)
@@ -11,15 +11,15 @@
* %%
* 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
+ * 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
+ *
+ * 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%
@@ -37,7 +37,6 @@
import org.apache.commons.logging.LogFactory;
import javax.swing.JOptionPane;
-import java.awt.Component;
import java.util.List;
import static org.nuiton.i18n.I18n._;
@@ -70,8 +69,6 @@
Float speciesTotalSortedWeight = model.getSpeciesTotalSortedComputedWeight();
Float speciesTotalUnsortedWeight = model.getSpeciesTotalUnsortedComputedWeight();
- EditCatchesUI ui = getUI();
-
model.setCatchTotalSortedComputedWeight(speciesTotalSortedWeight);
model.setCatchTotalUnsortedComputedWeight(speciesTotalUnsortedWeight);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/AddSpeciesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/AddSpeciesAction.java 2013-03-06 09:34:33 UTC (rev 548)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/AddSpeciesAction.java 2013-03-06 15:19:09 UTC (rev 549)
@@ -11,15 +11,15 @@
* %%
* 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
+ * 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
+ *
+ * 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%
@@ -35,6 +35,7 @@
import java.util.List;
import java.util.Map;
+import javax.swing.JOptionPane;
import static org.nuiton.i18n.I18n._;
@@ -70,39 +71,32 @@
}
@Override
- protected boolean prepareAction() {
- boolean result = super.prepareAction();
+ protected void doAction() throws InterruptedException {
+ CreateSpeciesBatchUIModel model = getModel();
- List<Species> availableSpecies = getModel().getAvailableSpecies();
- List<Species> species = Lists.newArrayList(allSpecies);
+ List<Species> availableSpecies = Lists.newArrayList(model.getAvailableSpecies());
+ final List<Species> species = Lists.newArrayList(allSpecies);
species.removeAll(availableSpecies);
selectedSpecies = getHandler().openAddSpeciesDialog(_("tutti.title.selectSpecies"), species);
- result &= selectedSpecies != null;
- return result;
- }
+ if (selectedSpecies != null) {
+ if (!selectedSpecies.isReferenceTaxon()) {
+ String decoratedSynonym = decorate(selectedSpecies);
+ List<Species> referents = referentSpecies;
+ Map<String, Species> referentsById = TuttiEntities.splitByTaxonId(referents);
+ String taxonId = String.valueOf(selectedSpecies.getReferenceTaxonId());
+ selectedSpecies = referentsById.get(taxonId);
+ String decoratedReferent = decorate(selectedSpecies);
+ sendMessage(_("tutti.flash.information.species.replaced", decoratedSynonym, decoratedReferent));
+ }
- @Override
- protected void doAction() {
- CreateSpeciesBatchUIModel model = getModel();
-
- if (!selectedSpecies.isReferenceTaxon()) {
- String decoratedSynonym = decorate(selectedSpecies);
- List<Species> referents = referentSpecies;
- Map<String, Species> referentsById = TuttiEntities.splitByTaxonId(referents);
- String taxonId = String.valueOf(selectedSpecies.getReferenceTaxonId());
- selectedSpecies = referentsById.get(taxonId);
- String decoratedReferent = decorate(selectedSpecies);
- sendMessage(_("tutti.flash.information.species.replaced", decoratedSynonym, decoratedReferent));
+ if (!availableSpecies.contains(selectedSpecies)) {
+ availableSpecies.add(selectedSpecies);
+ }
+ model.setAvailableSpecies(availableSpecies);
+ model.setSpecies(selectedSpecies);
}
-
- List<Species> availableSpecies = Lists.newArrayList(model.getAvailableSpecies());
- if (!availableSpecies.contains(selectedSpecies)) {
- availableSpecies.add(selectedSpecies);
- }
- model.setAvailableSpecies(availableSpecies);
- model.setSpecies(selectedSpecies);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-03-06 09:34:33 UTC (rev 548)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-03-06 15:19:09 UTC (rev 549)
@@ -10,15 +10,15 @@
* %%
* 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
+ * 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
+ *
+ * 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%
@@ -39,6 +39,7 @@
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.action.TuttiActionUI;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
@@ -248,7 +249,8 @@
model.setSelectedSpecies(null);
model.setSpecies(species);
- openDialog(ui, dialog, title, new Dimension(400, 130));
+ TuttiActionUI actionUI = context.getActionUI();
+ openDialog(taui, dialog, title, new Dimension(400, 130));
return model.getSelectedSpecies();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-03-06 09:34:33 UTC (rev 548)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-03-06 15:19:09 UTC (rev 549)
@@ -10,15 +10,15 @@
* %%
* 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
+ * 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
+ *
+ * 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%
@@ -74,9 +74,11 @@
import javax.swing.text.JTextComponent;
import java.awt.Color;
import java.awt.Component;
+import java.awt.Dialog;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Frame;
+import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
@@ -84,6 +86,7 @@
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
+import java.awt.event.WindowListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.Serializable;
@@ -92,6 +95,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+import javax.swing.SwingUtilities;
import static org.nuiton.i18n.I18n._;
@@ -228,10 +232,19 @@
public void openDialog(TuttiUI ui,
TuttiUI dialogContent,
String title, Dimension dim) {
- Frame frame = SwingUtil.getParentContainer(ui, Frame.class);
+ Window window;
+ if (Window.class.isAssignableFrom(ui.getClass())) {
+ window = (Window) ui;
+ } else {
+ window = SwingUtil.getParentContainer(ui, Window.class);
+ }
+ JDialog result;
+ if (window instanceof Frame) {
+ result = new JDialog((Frame)window, title, true);
+ } else {
+ result = new JDialog((Dialog)window, title, true);
+ }
- JDialog result = new JDialog(frame, true);
- result.setTitle(title);
result.add((Component) dialogContent);
result.setResizable(true);
@@ -269,7 +282,7 @@
JAXXUtil.destroy(ui);
}
});
- SwingUtil.center(frame, result);
+ SwingUtil.center(getContext().getMainUI(), result);
result.setVisible(true);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java 2013-03-06 09:34:33 UTC (rev 548)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java 2013-03-06 15:19:09 UTC (rev 549)
@@ -10,15 +10,15 @@
* %%
* 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
+ * 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
+ *
+ * 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%
@@ -31,6 +31,9 @@
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiExceptionHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
+import javax.swing.SwingUtilities;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.jdesktop.beans.AbstractBean;
import org.nuiton.util.decorator.Decorator;
@@ -40,8 +43,11 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public abstract class AbstractTuttiAction<M extends AbstractBean, UI extends TuttiUI<M, ?>, H extends AbstractTuttiUIHandler<M, UI>> {
+public abstract class AbstractTuttiAction<M extends AbstractBean, UI extends TuttiUI<M, ?>, H extends AbstractTuttiUIHandler<M, UI>>
+ extends AbstractBean {
+ private static final Log log = LogFactory.getLog(AbstractTuttiAction.class);
+
protected final H handler;
protected final String actionName;
@@ -54,6 +60,8 @@
protected Throwable error;
+ protected final Object lock = new Object();
+
protected abstract void doAction() throws Exception;
protected AbstractTuttiAction(H handler,
@@ -156,4 +164,47 @@
public Throwable getError() {
return error;
}
+
+ protected void test(final Runnable r) throws InterruptedException {
+ SwingUtilities.invokeLater(new Runnable() {
+
+ public void run() {
+ System.out.println("run");
+// getContext().getActionUI().pause();
+ r.run();
+// getContext().getActionUI().resume();
+
+ System.out.println("Deblock ?");
+ log.info("Deblock ?");
+ unblock();
+ }
+ });
+
+ log.info("Block ?");
+ System.out.println("Block ?");
+ block();
+
+ System.out.println("Block !");
+ log.info("Block !");
+ }
+
+ protected void block() {
+ try {
+ synchronized(lock) {
+ lock.wait();
+ }
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ protected void unblock() {
+ try {
+ synchronized(lock) {
+ lock.notify();
+ }
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+ }
}
1
0
r548 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing: content/operation/catches/accidental content/operation/catches/benthos content/operation/catches/macrowaste content/operation/catches/plankton content/operation/catches/species util/attachment
by tchemit@users.forge.codelutin.com 06 Mar '13
by tchemit@users.forge.codelutin.com 06 Mar '13
06 Mar '13
Author: tchemit
Date: 2013-03-06 10:34:33 +0100 (Wed, 06 Mar 2013)
New Revision: 548
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/548
Log:
use a separate cell renderer in cell editor (refs #2080: [CAPTURE] Impossible de cr?\195?\169er des pi?\195?\168ces-jointes dans le tableau)
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentCellRenderer.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-03-06 08:15:49 UTC (rev 547)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-03-06 09:34:33 UTC (rev 548)
@@ -246,15 +246,14 @@
{ // File column
- AttachmentCellRenderer renderer = AttachmentCellRenderer.newRender(
- getDecorator(Attachment.class, null),
- n_("tutti.tooltip.attachment.none"));
+ Decorator<Attachment> decorator = getDecorator(Attachment.class, null);
addColumnToModel(columnModel,
- AttachmentCellEditor.newEditor(ui,
- renderer,
- AttachementObjectTypeEnum.SAMPLE
+ AttachmentCellEditor.newEditor(
+ ui,
+ AttachmentCellRenderer.newRender(decorator),
+ AttachementObjectTypeEnum.SAMPLE
),
- renderer,
+ AttachmentCellRenderer.newRender(decorator),
AccidentalBatchTableModel.ATTACHMENTS);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2013-03-06 08:15:49 UTC (rev 547)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2013-03-06 09:34:33 UTC (rev 548)
@@ -264,14 +264,11 @@
{ // File column
- AttachmentCellRenderer renderer = AttachmentCellRenderer.newRender(
- getDecorator(Attachment.class, null),
- n_("tutti.tooltip.attachment.none"));
addColumnToModel(columnModel,
AttachmentCellEditor.newEditor(ui,
- renderer,
+ AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
AttachementObjectTypeEnum.SAMPLE),
- renderer,
+ AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
BenthosBatchTableModel.ATTACHMENT);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUIHandler.java 2013-03-06 08:15:49 UTC (rev 547)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUIHandler.java 2013-03-06 09:34:33 UTC (rev 548)
@@ -47,7 +47,6 @@
import java.util.List;
-import static org.nuiton.i18n.I18n._;
import static org.nuiton.i18n.I18n.n_;
/**
@@ -256,14 +255,11 @@
{ // File column
- AttachmentCellRenderer renderer = AttachmentCellRenderer.newRender(
- getDecorator(Attachment.class, null),
- n_("tutti.tooltip.attachment.none"));
addColumnToModel(columnModel,
AttachmentCellEditor.newEditor(ui,
- renderer,
+ AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
AttachementObjectTypeEnum.SAMPLE),
- renderer,
+ AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
MacroWasteBatchTableModel.ATTACHMENTS);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java 2013-03-06 08:15:49 UTC (rev 547)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java 2013-03-06 09:34:33 UTC (rev 548)
@@ -48,7 +48,6 @@
import java.util.List;
-import static org.nuiton.i18n.I18n._;
import static org.nuiton.i18n.I18n.n_;
/**
@@ -252,14 +251,11 @@
{ // File column
- AttachmentCellRenderer renderer = AttachmentCellRenderer.newRender(
- getDecorator(Attachment.class, null),
- n_("tutti.tooltip.attachment.none"));
addColumnToModel(columnModel,
AttachmentCellEditor.newEditor(ui,
- renderer,
+ AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
AttachementObjectTypeEnum.SAMPLE),
- renderer,
+ AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
PlanktonBatchTableModel.ATTACHMENTS);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-03-06 08:15:49 UTC (rev 547)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-03-06 09:34:33 UTC (rev 548)
@@ -628,14 +628,11 @@
{ // File column
- AttachmentCellRenderer renderer = AttachmentCellRenderer.newRender(
- getDecorator(Attachment.class, null),
- n_("tutti.tooltip.attachment.none"));
addColumnToModel(columnModel,
AttachmentCellEditor.newEditor(ui,
- renderer,
+ AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
AttachementObjectTypeEnum.SAMPLE),
- renderer,
+ AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
SpeciesBatchTableModel.ATTACHMENT);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentCellRenderer.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentCellRenderer.java 2013-03-06 08:15:49 UTC (rev 547)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentCellRenderer.java 2013-03-06 09:34:33 UTC (rev 548)
@@ -35,6 +35,7 @@
import java.util.Collection;
import static org.nuiton.i18n.I18n._;
+import static org.nuiton.i18n.I18n.n_;
/**
* Renderer of a attachement editor in a table cell.
@@ -54,16 +55,14 @@
private final Decorator<Attachment> decorator;
- public static AttachmentCellRenderer newRender(Decorator<Attachment> decorator,
- String noneText) {
- return new AttachmentCellRenderer(decorator, noneText);
+ public static AttachmentCellRenderer newRender(Decorator<Attachment> decorator) {
+ return new AttachmentCellRenderer(decorator);
}
- protected AttachmentCellRenderer(Decorator<Attachment> decorator,
- String noneText) {
+ protected AttachmentCellRenderer(Decorator<Attachment> decorator) {
setHorizontalAlignment(CENTER);
setIcon(SwingUtil.createActionIcon("edit-attachment"));
- this.noneText = noneText;
+ this.noneText = n_("tutti.tooltip.attachment.none");
this.decorator = decorator;
}
1
0
r547 - in trunk: src/site/rst tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing
by tchemit@users.forge.codelutin.com 06 Mar '13
by tchemit@users.forge.codelutin.com 06 Mar '13
06 Mar '13
Author: tchemit
Date: 2013-03-06 09:15:49 +0100 (Wed, 06 Mar 2013)
New Revision: 547
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/547
Log:
refs #2065: [TRAIT] - Gestion des caract?\195?\169ristiques environnement et hydrologique (fix doc + remove obsolete packages)
Removed:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/
Modified:
trunk/src/site/rst/features.rst
Modified: trunk/src/site/rst/features.rst
===================================================================
--- trunk/src/site/rst/features.rst 2013-03-06 08:11:58 UTC (rev 546)
+++ trunk/src/site/rst/features.rst 2013-03-06 08:15:49 UTC (rev 547)
@@ -214,7 +214,7 @@
+++++++++++++++++++
- **pmfmId** (entier) : identifiant du psfm
-- **pmfmType** (LENGTH_STEP,ENVIRONMENT,HYDROLOGY,GEAR) : écran où intervient la caractéristique
+- **pmfmType** (LENGTH_STEP,GEAR_USE_FEATURE,VESSEL_USE_FEATURE) : écran où intervient la caractéristique
- pmfmParameterName (chaîne de caractères) : paramètre de la caractéristique
- pmfmMatrixName (chaîne de caractères) : support de la caractérisque
- pmfmFractionName (chaîne de caractères) : fraction de la caractérisque
@@ -232,12 +232,10 @@
pmfmId;pmfmType;pmfmParameterName;pmfmMatrixName;pmfmFractionName;pmfmMethodName
211;LENGTH_STEP;Nombre de marées;navire;totale;Déclaration d'un professionnel;
212;LENGTH_STEP;Déroulement de l'activité;navire;totale;Observation par un observateur;
- 214;ENVIRONMENT;Temps indeterminé;opération;totale;"Calculé, méthode inconnue";
- 215;ENVIRONMENT;Valorisation;produit;totale;Déclaration d'un professionnel;
- 217;HYDROLOGY;Ouverture verticale (chalut ou drague);engin;totale;Déclaration d'un professionnel;
- 218;HYDROLOGY;Ouverture verticale (chalut ou drague);engin;totale;Mesure d'un professionnel;
- 219;GEAR;Poids;produit/lot;totale;Mesure d'un professionnel;
- 220;GEAR;Poids;produit/lot;totale;Mesure par un observateur;
+ 214;VESSEL_USE_FEATURE;Temps indeterminé;opération;totale;"Calculé, méthode inconnue";
+ 215;VESSEL_USE_FEATURE;Valorisation;produit;totale;Déclaration d'un professionnel;
+ 219;GEAR_USE_FEATURE;Poids;produit/lot;totale;Mesure d'un professionnel;
+ 220;GEAR_USE_FEATURE;Poids;produit/lot;totale;Mesure par un observateur;
Import d'espèces
~~~~~~~~~~~~~~~~
1
0
06 Mar '13
Author: tchemit
Date: 2013-03-06 09:11:58 +0100 (Wed, 06 Mar 2013)
New Revision: 546
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/546
Log:
fixes #2065: [TRAIT] - Gestion des caract?\195?\169ristiques environnement et hydrologique
- renommage de champs (saisisseur en recorderPerson + protocol et fishingoperation caracteristics)
- nettoyage code dans les services de persistences
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/AbstractCaracteristicRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/AbstractCaracteristicTabUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/AbstractCaracteristicTabUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureRowModel.java
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/fishing/GearUseFeatureTabUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureTabUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureTabUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureTabUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureTabUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureTabUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureTabUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureTableModel.java
Removed:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AttachmentsAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTableModel.java
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AbstractPersistenceService.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties
trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceWriteTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceReadTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceWriteTest.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/CaracteristicType.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportService.java
trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportServiceTest.java
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/EditFishingOperationUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/AddSpeciesProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolCaracteristicAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolSpeciesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/RemoveSpeciesProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SelectOtherSpeciesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIModel.java
trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-error-validation.xml
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -50,6 +50,7 @@
import java.sql.Statement;
import java.util.Collection;
import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
@@ -63,6 +64,20 @@
*/
public class TuttiEntities {
+ public static final Comparator<Species> SPECIES_BY_NAME_COMPARATOR = new Comparator<Species>() {
+
+ public int compare(Species o1, Species o2) {
+ if (o1 == null) {
+ return -1;
+ }
+ if (o2 == null) {
+ return 1;
+ }
+ return o1.getName().compareTo(o2.getName());
+ }
+
+ };
+
/** Logger. */
private static final Log log = LogFactory.getLog(TuttiEntities.class);
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -25,16 +25,15 @@
*/
import com.esotericsoftware.yamlbeans.YamlConfig;
-import com.esotericsoftware.yamlbeans.YamlException;
import com.esotericsoftware.yamlbeans.YamlReader;
import com.esotericsoftware.yamlbeans.YamlWriter;
import com.google.common.base.Charsets;
import com.google.common.io.Closeables;
import com.google.common.io.Files;
+import fr.ifremer.tutti.TuttiTechnicalException;
import java.io.BufferedWriter;
import java.io.File;
-import java.io.IOException;
import java.io.Reader;
/**
@@ -45,34 +44,36 @@
*/
public class TuttiProtocols {
- public static void toFile(TuttiProtocol protocol, File file) throws IOException {
+ public static void toFile(TuttiProtocol protocol, File file) {
String id = protocol.getId();
- BufferedWriter fileWriter = Files.newWriter(file, Charsets.UTF_8);
+ BufferedWriter fileWriter = null;
try {
+ fileWriter = Files.newWriter(file, Charsets.UTF_8);
YamlWriter writer = new YamlWriter(fileWriter, createConfig());
writer.write(protocol);
writer.close();
fileWriter.close();
- } catch (YamlException e) {
- throw new IOException("Could not transform protocol " + id + " to file " + file, e);
+ } catch (Exception e) {
+ throw new TuttiTechnicalException("Could not transform protocol " + id + " to file " + file, e);
} finally {
Closeables.closeQuietly(fileWriter);
}
}
- public static TuttiProtocol fromFile(File file) throws IOException {
+ public static TuttiProtocol fromFile(File file) {
- Reader fileReader = Files.newReader(file, Charsets.UTF_8);
+ Reader fileReader = null;
try {
+ fileReader = Files.newReader(file, Charsets.UTF_8);
YamlReader reader = new YamlReader(fileReader, createConfig());
TuttiProtocol result = reader.read(TuttiProtocol.class);
fileReader.close();
return result;
- } catch (YamlException e) {
- throw new IOException("Could not import protocol from file " + file, e);
+ } catch (Exception e) {
+ throw new TuttiTechnicalException("Could not import protocol from file " + file, e);
} finally {
Closeables.closeQuietly(fileReader);
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AbstractPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AbstractPersistenceService.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AbstractPersistenceService.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -37,6 +37,7 @@
import org.springframework.dao.DataIntegrityViolationException;
import java.io.Serializable;
+import java.sql.Timestamp;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
@@ -187,7 +188,11 @@
}
protected Date newCreateDate() {
- calendar.setTime(new Date());
+ return dateWithNoTime(new Date());
+ }
+
+ protected Date dateWithNoTime(Date date) {
+ calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
@@ -195,6 +200,12 @@
return calendar.getTime();
}
+ protected Date dateWithNoMiliSecond(Date date) {
+ calendar.setTime(date);
+ calendar.set(Calendar.MILLISECOND, 0);
+ return calendar.getTime();
+ }
+
protected Date dateWithNoSecondAndMiliSecond(Date date) {
calendar.setTime(date);
calendar.set(Calendar.SECOND, 0);
@@ -202,6 +213,13 @@
return calendar.getTime();
}
+ protected Date dateWithNoSecondAndOneMiliSecond(Date date) {
+ calendar.setTime(date);
+ calendar.add(Calendar.SECOND, 0);
+ calendar.add(Calendar.MILLISECOND, 1);
+ return calendar.getTime();
+ }
+
protected Date dateWithOneMiliSecond(Date date) {
calendar.setTime(date);
calendar.add(Calendar.MILLISECOND, 1);
@@ -222,6 +240,62 @@
return calendar.getTimeInMillis();
}
+ /**
+ * Test if the date has millisecond set. This yes, return null, then return the date itself.
+ *
+ * @param databaseValue the date stored in the database (could be fake date, not null only because of database constraints)
+ * @return null if the date is a fake date
+ */
+ protected Date convertDatabase2UI(Timestamp databaseValue) {
+ Date result;
+ if (databaseValue == null) {
+ result = null;
+ } else {
+
+ calendar.setTimeInMillis(databaseValue.getTime());
+ if (calendar.get(Calendar.MILLISECOND) != 0) {
+ result = null;
+ } else {
+ result = calendar.getTime();
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Convert a UI date, when the database value is mandatory.
+ * If the given value is null, use the default date, then set millisecond to '1', to be able to retrieve the null value later.
+ *
+ * @param uiValue the date used in the UI
+ * @return null if the date is a fake date
+ */
+ protected Date convertUI2DatabaseMandatoryDate(Date uiValue,
+ Date defaultNotEmptyDate,
+ boolean addOneSecondToDefaultDate) {
+ Date result;
+
+ // if ui date is not empty, then use it (but reset millisecond)
+ if (uiValue == null) {
+
+ Preconditions.checkState(
+ defaultNotEmptyDate == null,
+ "'defaultNotEmptyDate' could not be null.");
+
+
+ calendar.setTime(defaultNotEmptyDate);
+ if (addOneSecondToDefaultDate) {
+ calendar.add(Calendar.SECOND, 1);
+ }
+ calendar.set(Calendar.MILLISECOND, 1);
+ result = calendar.getTime();
+ } else {
+
+ result = dateWithNoMiliSecond(uiValue);
+ }
+
+ return result;
+ }
+
private Calendar calendar = new GregorianCalendar();
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -27,7 +27,6 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
-import fr.ifremer.adagio.core.dao.data.batch.denormalized.DenormalizedBatch;
import fr.ifremer.adagio.core.dao.data.fishingArea.FishingArea;
import fr.ifremer.adagio.core.dao.data.fishingArea.FishingArea2RegulationLocation;
import fr.ifremer.adagio.core.dao.data.fishingArea.FishingArea2RegulationLocationPK;
@@ -82,9 +81,7 @@
import java.sql.Timestamp;
import java.text.MessageFormat;
import java.util.ArrayList;
-import java.util.Calendar;
import java.util.Date;
-import java.util.GregorianCalendar;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -128,8 +125,6 @@
protected static String MISC_DATA_RECORDER_PERSONS_TAG = "#REC_PERSONS=";
- protected Calendar calendar = new GregorianCalendar();
-
@Override
public List<FishingOperation> getAllFishingOperation(String cruiseId) {
Preconditions.checkNotNull(cruiseId);
@@ -265,12 +260,12 @@
miscData = miscData.substring(0, recorderPersonsIndex);
if (!recorderPersonsStr.isEmpty()) {
String[] recorderPersonsArray = recorderPersonsStr.split(",");
- List<Person> persons = new ArrayList<Person>();
+ List<Person> persons = Lists.newArrayList();
for (String personId : recorderPersonsArray) {
Person person = referentialService.getPerson(Integer.valueOf(personId));
persons.add(person);
}
- result.setSaisisseur(persons);
+ result.setRecorderPerson(persons);
}
}
}
@@ -335,10 +330,10 @@
result.setVessel(vessel);
}
- // Retrieve gear shooting caracteristics
+ // Retrieve gear use features
getGearUseCaracteristics(id, result);
- // TODO-TC Retrieve environment caracteristics with protocol
+ // Retrieve vessel use features
getVesselUseCaracteristics(id, result);
return result;
@@ -405,7 +400,7 @@
"fishingOperationId", IntegerType.INSTANCE, Integer.valueOf(fishingOperationId)
);
- CaracteristicMap environmentCaracteristics = new CaracteristicMap();
+ CaracteristicMap vesselUseCaracteristics = new CaracteristicMap();
while (list.hasNext()) {
int colIndex = 0;
Object[] source = list.next();
@@ -438,11 +433,9 @@
result.setStationNumber(alphanumericalValue);
}
- // Environment caracteristic
+ // Vessel Use caracteristic
else {
- //TODO Split en fonction du protocole
-
Caracteristic environmentCaracteristic = referentialService.getCaracteristic(pmfmId);
Serializable value = null;
if (environmentCaracteristic.getCaracteristicType() == CaracteristicType.NUMBER) {
@@ -457,12 +450,12 @@
}
}
}
- environmentCaracteristics.put(environmentCaracteristic, value);
+ vesselUseCaracteristics.put(environmentCaracteristic, value);
}
}
- if (environmentCaracteristics.size() > 0) {
- result.setEnvironmentCaracteristics(environmentCaracteristics);
+ if (vesselUseCaracteristics.size() > 0) {
+ result.setVesselUseFeatures(vesselUseCaracteristics);
}
}
@@ -510,7 +503,7 @@
}
if (gearShootingCaracteristics.size() > 0) {
- result.setGearShootingCaracteristics(gearShootingCaracteristics);
+ result.setGearUseFeatures(gearShootingCaracteristics);
}
}
@@ -672,11 +665,10 @@
target.setStartDateTime(null);
target.setFishingStartDateTime(null);
} else if (source.getGearShootingStartDate() != null) {
- calendar.setTime(source.getGearShootingStartDate());
// Reset millisecond (as need for Allegro)
- calendar.set(Calendar.MILLISECOND, 0);
- target.setStartDateTime(calendar.getTime());
- target.setFishingStartDateTime(calendar.getTime());
+ Date d = dateWithNoMiliSecond(source.getGearShootingStartDate());
+ target.setStartDateTime(d);
+ target.setFishingStartDateTime(d);
}
// End date :
@@ -684,11 +676,10 @@
target.setEndDateTime(null);
target.setFishingEndDateTime(null);
} else if (source.getGearShootingEndDate() != null) {
- calendar.setTime(source.getGearShootingEndDate());
// Reset millisecond (as need for Allegro)
- calendar.set(Calendar.MILLISECOND, 0);
- target.setEndDateTime(calendar.getTime());
- target.setFishingEndDateTime(calendar.getTime());
+ Date d = dateWithNoMiliSecond(source.getGearShootingEndDate());
+ target.setEndDateTime(d);
+ target.setFishingEndDateTime(d);
}
// Trawl distance
@@ -732,12 +723,10 @@
// Settings not null properties :
if (target.getStartDateTime() == null) {
- // Generate a fake departureDate (precision=minute) then add 1 millisecond
- calendar.setTime(scientificCruise.getDepartureDateTime());
- calendar.set(Calendar.SECOND, 0);
- calendar.set(Calendar.MILLISECOND, 1);
- target.setStartDateTime(calendar.getTime());
- target.setFishingStartDateTime(calendar.getTime());
+ // Generate a fake departureDate (precision=minute) then add 1 millisecond
+ Date d = dateWithNoSecondAndOneMiliSecond(scientificCruise.getDepartureDateTime());
+ target.setStartDateTime(d);
+ target.setFishingStartDateTime(d);
}
// VesselUseFeatures :
@@ -750,12 +739,8 @@
vesselUseFeatures.setProgram(scientificCruise.getProgram());
vesselUseFeatures.setIsActive(isActive.ACTIVE.getValue());
if (vesselUseFeatures.getCreationDate() == null) {
- calendar.setTime(new Date());
- calendar.set(Calendar.HOUR_OF_DAY, 0);
- calendar.set(Calendar.MINUTE, 0);
- calendar.set(Calendar.SECOND, 0);
- calendar.set(Calendar.MILLISECOND, 0);
- vesselUseFeatures.setCreationDate(calendar.getTime());
+ Date d = newCreateDate();
+ vesselUseFeatures.setCreationDate(d);
}
if (vesselUseFeatures.getQualityFlag() == null) {
vesselUseFeatures.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
@@ -770,12 +755,8 @@
gearUseFeatures.setVessel(target.getVessel());
gearUseFeatures.setProgram(scientificCruise.getProgram());
if (gearUseFeatures.getCreationDate() == null) {
- calendar.setTime(new Date());
- calendar.set(Calendar.HOUR_OF_DAY, 0);
- calendar.set(Calendar.MINUTE, 0);
- calendar.set(Calendar.SECOND, 0);
- calendar.set(Calendar.MILLISECOND, 0);
- gearUseFeatures.setCreationDate(calendar.getTime());
+ Date d = newCreateDate();
+ gearUseFeatures.setCreationDate(d);
}
if (gearUseFeatures.getQualityFlag() == null) {
gearUseFeatures.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
@@ -847,25 +828,23 @@
target.getVesselPositions().remove(endPosition);
}
- // Environment Caracteristics
- CaracteristicMap environmentCaracteristics = source.getEnvironmentCaracteristics();
- if (copyIfNull && environmentCaracteristics == null || environmentCaracteristics.size() == 0) {
+ // Vessel user features
+ CaracteristicMap vesselUseCaracteristics = source.getVesselUseFeatures();
+ if (copyIfNull && vesselUseCaracteristics == null || vesselUseCaracteristics.size() == 0) {
// Nothing to do : will be removed later, using notChangedVesselUseMeasurements
- } else if (environmentCaracteristics != null && environmentCaracteristics.size() > 0) {
- for (Caracteristic caracteristic : environmentCaracteristics.keySet()) {
- VesselUseMeasurement vum = setVesselUseMeasurement(scientificCruise, vesselUseFeatures, caracteristic, environmentCaracteristics.get(caracteristic));
+ } else if (vesselUseCaracteristics != null && vesselUseCaracteristics.size() > 0) {
+ for (Caracteristic caracteristic : vesselUseCaracteristics.keySet()) {
+ VesselUseMeasurement vum = setVesselUseMeasurement(scientificCruise, vesselUseFeatures, caracteristic, vesselUseCaracteristics.get(caracteristic));
notChangedVesselUseMeasurements.remove(vum);
}
}
- //TODO Add also *other + hydrologic* caracteristics
-
// Recorder persons
StringBuilder miscDataBuffer = new StringBuilder();
- if (copyIfNull && (source.getSaisisseur() == null || source.getSaisisseur().size() == 0)) {
+ if (copyIfNull && (source.getRecorderPerson() == null || source.getRecorderPerson().size() == 0)) {
miscDataBuffer.append(MISC_DATA_RECORDER_PERSONS_TAG);
- } else if (source.getSaisisseur() != null && source.getSaisisseur().size() > 0) {
- List<Person> persons = source.getSaisisseur();
+ } else if (source.getRecorderPerson() != null && source.getRecorderPerson().size() > 0) {
+ List<Person> persons = source.getRecorderPerson();
miscDataBuffer.append(MISC_DATA_RECORDER_PERSONS_TAG);
for (int i = 0; i < persons.size(); i++) {
if (i > 0) miscDataBuffer.append(',');
@@ -887,12 +866,12 @@
// ----------------------------------------------------------------
// Gear use Caracteristics
- CaracteristicMap gearShootingCaracteristics = source.getGearShootingCaracteristics();
- if (copyIfNull && gearShootingCaracteristics == null || gearShootingCaracteristics.size() == 0) {
+ CaracteristicMap gearUseCaracteristics = source.getGearUseFeatures();
+ if (copyIfNull && gearUseCaracteristics == null || gearUseCaracteristics.size() == 0) {
// Nothing to do : will be removed later, using notChangedGearUseMeasurements
- } else if (gearShootingCaracteristics != null && gearShootingCaracteristics.size() > 0) {
- for (Caracteristic caracteristic : gearShootingCaracteristics.keySet()) {
- GearUseMeasurement gum = setGearUseMeasurement(scientificCruise, gearUseFeatures, caracteristic, environmentCaracteristics.get(caracteristic));
+ } else if (gearUseCaracteristics != null && gearUseCaracteristics.size() > 0) {
+ for (Caracteristic caracteristic : gearUseCaracteristics.keySet()) {
+ GearUseMeasurement gum = setGearUseMeasurement(scientificCruise, gearUseFeatures, caracteristic, vesselUseCaracteristics.get(caracteristic));
notChangedGearUseMeasurements.remove(gum);
}
}
@@ -922,7 +901,6 @@
statisticalLocationId = locationService.getLocationIdByLatLong(source.getGearShootingEndLatitude(), source.getGearShootingEndLongitude());
}
- //TODO Do a notchange area and remove it at then end
// Strata :
if (copyIfNull && (source.getStrata() == null || source.getStrata().getId() == null)) {
@@ -935,7 +913,6 @@
fa2rlPK.setFishingArea(fishingArea);
fa2rlPK.setLocation(load(LocationImpl.class, Integer.valueOf(source.getStrata().getId())));
- //TODO Make this work
notChangedRegulationLocation.remove(fa2rl);
if (fishingArea.getRegulationLocation() == null) {
fishingArea.setRegulationLocation(Sets.newHashSet(fa2rl));
@@ -959,7 +936,6 @@
fa2rlPK.setFishingArea(fishingArea);
fa2rlPK.setLocation(load(LocationImpl.class, Integer.valueOf(source.getSubStrata().getId())));
- //TODO Make this work
notChangedRegulationLocation.remove(fa2rl);
if (fishingArea.getRegulationLocation() == null) {
@@ -984,7 +960,6 @@
fa2rlPK.setFishingArea(fishingArea);
fa2rlPK.setLocation(load(LocationImpl.class, Integer.valueOf(source.getLocation().getId())));
- //TODO Make this work
notChangedRegulationLocation.remove(fa2rl);
if (fishingArea.getRegulationLocation() == null) {
fishingArea.setRegulationLocation(Sets.newHashSet(fa2rl));
@@ -996,7 +971,6 @@
}
}
- //TODO Test well if not removed use fishingArea2RegulationLocationDAO...
fishingArea.getRegulationLocation().removeAll(notChangedRegulationLocation);
// Fishing Area location (should be a statistical location)
@@ -1012,51 +986,7 @@
}
}
-
/**
- * Test if the date has millisecond set. This yes, return null, then return the date itself.
- *
- * @param databaseValue the date stored in the database (could be fake date, not null only because of database constraints)
- * @return null if the date is a fake date
- */
- protected Date convertDatabase2UI(Timestamp databaseValue) {
- if (databaseValue == null) {
- return null;
- }
- calendar.setTimeInMillis(databaseValue.getTime());
- if (calendar.get(Calendar.MILLISECOND) != 0) {
- return null;
- }
- return calendar.getTime();
- }
-
- /**
- * Convert a UI date, when the database value is mandatory.
- * If the given value is null, use the default date, then set millisecond to '1', to be able to retrieve the null value later.
- *
- * @param uiValue the date used in the UI
- * @return null if the date is a fake date
- */
- protected Date convertUI2DatabaseMandatoryDate(Date uiValue, Date defaultNotEmptyDate, boolean addOneSecondToDefaultDate) {
- // if ui date is not empty, then use it (but reset millisecond)
- if (uiValue != null) {
- calendar.setTime(uiValue);
- calendar.set(Calendar.MILLISECOND, 0);
- return calendar.getTime();
- }
- if (defaultNotEmptyDate == null) {
- throw new IllegalArgumentException("'defaultNotEmptyDate' could not be null.");
- }
-
- calendar.setTime(defaultNotEmptyDate);
- if (addOneSecondToDefaultDate) {
- calendar.add(Calendar.SECOND, 1);
- }
- calendar.set(Calendar.MILLISECOND, 1);
- return calendar.getTime();
- }
-
- /**
* Test if the latitude is null, and return a default value if yes
*
* @param databaseValue the latitude used in UI (could be null)
@@ -1245,20 +1175,20 @@
return gearUseMeasurement;
}
- protected DenormalizedBatch getDenormalizedBatch(Integer fishingOperationId) {
- Iterator<DenormalizedBatch> list = queryListTyped(
- "fishingOperationBatchs",
- "fishingOperationId", IntegerType.INSTANCE, fishingOperationId
- );
+// protected DenormalizedBatch getDenormalizedBatch(Integer fishingOperationId) {
+// Iterator<DenormalizedBatch> list = queryListTyped(
+// "fishingOperationBatchs",
+// "fishingOperationId", IntegerType.INSTANCE, fishingOperationId
+// );
+//
+// CaracteristicMap environmentCaracteristics = new CaracteristicMap();
+// while (list.hasNext()) {
+// DenormalizedBatch batch = list.next();
+// System.out.println(batch.getTreeIndent() + batch.getSortingValuesText());
+// }
+// return null;
+// }
- CaracteristicMap environmentCaracteristics = new CaracteristicMap();
- while (list.hasNext()) {
- DenormalizedBatch batch = list.next();
- System.out.println(batch.getTreeIndent() + batch.getSortingValuesText());
- }
- return null;
- }
-
protected void setOperationVesselAssociation(Operation target, String vesselCode) {
OperationVesselAssociation ova = null;
OperationVesselAssociationPK ovaPK = new OperationVesselAssociationPK();
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -25,6 +25,7 @@
*/
import com.google.common.collect.Lists;
+import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
@@ -37,7 +38,6 @@
import org.springframework.stereotype.Service;
import java.io.File;
-import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.util.UUID;
@@ -103,12 +103,8 @@
@Override
public TuttiProtocol getProtocol(String id) {
File file = getProtocolFile(id);
- try {
- TuttiProtocol result = TuttiProtocols.fromFile(file);
- return result;
- } catch (IOException e) {
- throw new RuntimeException("Could not read protocol " + id + " from file " + file, e);
- }
+ TuttiProtocol result = TuttiProtocols.fromFile(file);
+ return result;
}
@Override
@@ -121,9 +117,8 @@
result.setId(UUID.randomUUID().toString());
result.setLengthClassesPmfmId(TuttiEntities.getList(bean.getLengthClassesPmfmId()));
- result.setEnvironmentPmfmId(TuttiEntities.getList(bean.getEnvironmentPmfmId()));
- result.setGearPmfmId(TuttiEntities.getList(bean.getGearPmfmId()));
- result.setHydrologyPmfmId(TuttiEntities.getList(bean.getHydrologyPmfmId()));
+ result.setVesselUseFeaturePmfmId(TuttiEntities.getList(bean.getVesselUseFeaturePmfmId()));
+ result.setGearUseFeaturePmfmId(TuttiEntities.getList(bean.getGearUseFeaturePmfmId()));
Binder<SpeciesProtocol, SpeciesProtocol> speciesProtocolBinder =
BinderFactory.newBinder(SpeciesProtocol.class);
List<SpeciesProtocol> species = Lists.newArrayList();
@@ -140,13 +135,8 @@
String id = result.getId();
File file = getProtocolFile(id);
- try {
- TuttiProtocols.toFile(result, file);
- return result;
- } catch (IOException e) {
- throw new RuntimeException(
- "Could not write protocol " + id + " to file " + file, e);
- }
+ TuttiProtocols.toFile(result, file);
+ return result;
}
@Override
@@ -154,25 +144,17 @@
String id = bean.getId();
File file = getProtocolFile(id);
- try {
- TuttiProtocols.toFile(bean, file);
- return bean;
- } catch (IOException e) {
- throw new RuntimeException(
- "Could not write protocol " + id + " to file " + file, e);
- }
+ TuttiProtocols.toFile(bean, file);
+ return bean;
}
@Override
public void deleteProtocol(String protocolId) {
File file = getProtocolFile(protocolId);
- try {
- if (file.exists()) {
- FileUtils.forceDelete(file);
- }
- } catch (IOException e) {
- throw new RuntimeException(
+ if (file.exists()) {
+ TuttiIOUtil.deleteFile(
+ file,
"Could not delete protocol " + protocolId + " (file " + file + ")");
}
}
Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties
===================================================================
--- trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties 2013-03-06 08:11:58 UTC (rev 546)
@@ -32,13 +32,13 @@
fr.ifremer.tutti.persistence.entities.data.Cruise.attribute.headOfMission.stereotype=ordered
fr.ifremer.tutti.persistence.entities.data.Cruise.attribute.headOfSortRoom.stereotype=ordered
fr.ifremer.tutti.persistence.entities.data.Cruise.attribute.vessel.stereotype=ordered
-fr.ifremer.tutti.persistence.entities.data.FishingOperation.attribute.saisisseur.stereotype=ordered
+fr.ifremer.tutti.persistence.entities.data.FishingOperation.attribute.recorderPerson.stereotype=ordered
fr.ifremer.tutti.persistence.entities.data.MacroWasteBatch.attribute.macroWasteCategory.stereotype=ordered
fr.ifremer.tutti.persistence.entities.data.SpeciesBatch.attribute.childBatchs.stereotype=ordered
-fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.gearPmfmId.stereotype=ordered
-fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.environmentPmfmId.stereotype=ordered
+fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.gearUseFeaturePmfmId.stereotype=ordered
+fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.vesselUseFeaturePmfmId.stereotype=ordered
fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.hydrologyPmfmId.stereotype=ordered
fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.lengthClassesPmfmId.stereotype=ordered
fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.species.stereotype=ordered
Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
===================================================================
(Binary files differ)
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -49,19 +49,13 @@
/** Logger. */
private static final Log log = LogFactory.getLog(TuttiProtocolsTest.class);
-
public static final String PROTOCOL_FILE_CONTENT =
"id: 1\n" +
"name: protocolName\n" +
"comment: Commentaire\n" +
- "environmentPmfmId: \n" +
- "- 114\n" +
- "- 228\n" +
- "- 821\n" +
- "gearPmfmId: \n" +
+ "gearUseFeaturePmfmId: \n" +
"- 21\n" +
"- 22\n" +
- "hydrologyPmfmId: []\n" +
"lengthClassesPmfmId: \n" +
"- 14\n" +
"- 18\n" +
@@ -86,7 +80,11 @@
" sizeEnabled: true\n" +
" speciesReferenceTaxonId: 3835\n" +
" speciesSurveyCode: CHIN\n" +
- " weightEnabled: true";
+ " weightEnabled: true\n" +
+ "vesselUseFeaturePmfmId: \n" +
+ "- 114\n" +
+ "- 228\n" +
+ "- 821";
public static final long TIMESTAMP = System.nanoTime();
@@ -137,9 +135,8 @@
Assert.assertEquals("protocolName", protocol.getName());
Assert.assertEquals("Commentaire", protocol.getComment());
Assert.assertEquals(Lists.newArrayList("14", "18"), protocol.getLengthClassesPmfmId());
- Assert.assertEquals(Lists.newArrayList("114", "228", "821"), protocol.getEnvironmentPmfmId());
- Assert.assertEquals(Lists.newArrayList("21", "22"), protocol.getGearPmfmId());
- Assert.assertEquals(Lists.<String>newArrayList(), protocol.getHydrologyPmfmId());
+ Assert.assertEquals(Lists.newArrayList("114", "228", "821"), protocol.getVesselUseFeaturePmfmId());
+ Assert.assertEquals(Lists.newArrayList("21", "22"), protocol.getGearUseFeaturePmfmId());
Assert.assertNotNull(protocol.getSpecies());
Assert.assertEquals(2, protocol.getSpecies().size());
SpeciesProtocol sp1 = protocol.getSpecies().get(0);
@@ -177,9 +174,8 @@
protocol.setName("protocolName");
protocol.setComment("Commentaire");
protocol.setLengthClassesPmfmId(Lists.newArrayList("14", "18"));
- protocol.setEnvironmentPmfmId(Lists.newArrayList("114", "228", "821"));
- protocol.setGearPmfmId(Lists.newArrayList("21", "22"));
- protocol.setHydrologyPmfmId(Lists.<String>newArrayList());
+ protocol.setVesselUseFeaturePmfmId(Lists.newArrayList("114", "228", "821"));
+ protocol.setGearUseFeaturePmfmId(Lists.newArrayList("21", "22"));
protocol.setSpecies(Lists.<SpeciesProtocol>newArrayList());
SpeciesProtocol sp1 = new SpeciesProtocol();
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceWriteTest.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceWriteTest.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -220,8 +220,8 @@
fishingOperation.setComment("Unit test createFishingOperation() - Part n°2 : All properties set");
fishingOperation.setGear(cruiseGear);
fishingOperation.setVessel(notCruiseVessel);
- fishingOperation.setEnvironmentCaracteristics(environmentCaracteristics);
- fishingOperation.setGearShootingCaracteristics(gearShootingCaracteristics);
+ fishingOperation.setVesselUseFeatures(environmentCaracteristics);
+ fishingOperation.setGearUseFeatures(gearShootingCaracteristics);
FishingOperationLocation strata = new FishingOperationLocation();
strata.setId(dbResource.getFixtures().strataId());
@@ -261,10 +261,10 @@
assertEquals(fishingOperation.isFishingOperationRectiligne(), reloadedFishingOperation.isFishingOperationRectiligne());
assertEquals(fishingOperation.getFishingOperationValid(), reloadedFishingOperation.getFishingOperationValid());
assertEquals(fishingOperation.getComment(), reloadedFishingOperation.getComment());
- assertNotNull(reloadedFishingOperation.getEnvironmentCaracteristics());
- assertEquals(environmentCaracteristics.size(), fishingOperation.getEnvironmentCaracteristics().size());
- assertNotNull(reloadedFishingOperation.getGearShootingCaracteristics());
- assertEquals(gearShootingCaracteristics.size(), reloadedFishingOperation.getGearShootingCaracteristics().size());
+ assertNotNull(reloadedFishingOperation.getVesselUseFeatures());
+ assertEquals(environmentCaracteristics.size(), fishingOperation.getVesselUseFeatures().size());
+ assertNotNull(reloadedFishingOperation.getGearUseFeatures());
+ assertEquals(gearShootingCaracteristics.size(), reloadedFishingOperation.getGearUseFeatures().size());
assertNotNull(reloadedFishingOperation.getStrata());
assertNotNull(reloadedFishingOperation.getStrata().getId());
assertEquals(fishingOperation.getStrata().getId(), reloadedFishingOperation.getStrata().getId());
@@ -358,8 +358,8 @@
fishingOperation.setSubStrata(null);
fishingOperation.setLocation(null);
fishingOperation.setVessel(cruise.getVessel(0));
- fishingOperation.setEnvironmentCaracteristics(environmentValuesOneEntry);
- fishingOperation.setGearShootingCaracteristics(gearShootingCaracteristicsOneEntry);
+ fishingOperation.setVesselUseFeatures(environmentValuesOneEntry);
+ fishingOperation.setGearUseFeatures(gearShootingCaracteristicsOneEntry);
fishingOperation.setComment(fishingOperation.getComment() + "\n\nUnit test createFishingOperation() - Part n°5 : check if deleted sub items in DB");
createdFishingOperation = service.saveFishingOperation(fishingOperation);
reloadedFishingOperation = service.getFishingOperation(createdFishingOperation.getId());
@@ -371,10 +371,10 @@
assertNull(reloadedFishingOperation.getStrata());
assertNull(reloadedFishingOperation.getSubStrata());
assertNull(reloadedFishingOperation.getLocation());
- assertNotNull(reloadedFishingOperation.getEnvironmentCaracteristics());
- assertEquals(environmentValuesOneEntry.size(), reloadedFishingOperation.getEnvironmentCaracteristics().size());
- assertNotNull(reloadedFishingOperation.getGearShootingCaracteristics());
- assertEquals(gearShootingCaracteristicsOneEntry.size(), reloadedFishingOperation.getGearShootingCaracteristics().size());
+ assertNotNull(reloadedFishingOperation.getVesselUseFeatures());
+ assertEquals(environmentValuesOneEntry.size(), reloadedFishingOperation.getVesselUseFeatures().size());
+ assertNotNull(reloadedFishingOperation.getGearUseFeatures());
+ assertEquals(gearShootingCaracteristicsOneEntry.size(), reloadedFishingOperation.getGearUseFeatures().size());
}
@Test
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceReadTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceReadTest.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceReadTest.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -84,9 +84,8 @@
protocol.setName("protocolName");
protocol.setComment("Commentaire");
protocol.setLengthClassesPmfmId(Lists.newArrayList("14", "18"));
- protocol.setEnvironmentPmfmId(Lists.newArrayList("114", "228", "821"));
- protocol.setGearPmfmId(Lists.newArrayList("21", "22"));
- protocol.setHydrologyPmfmId(Lists.<String>newArrayList());
+ protocol.setVesselUseFeaturePmfmId(Lists.newArrayList("114", "228", "821"));
+ protocol.setGearUseFeaturePmfmId(Lists.newArrayList("21", "22"));
protocol.setSpecies(Lists.<SpeciesProtocol>newArrayList());
SpeciesProtocol sp1 = new SpeciesProtocol();
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceWriteTest.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceWriteTest.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -52,14 +52,9 @@
"id: 1\n" +
"name: protocolName\n" +
"comment: Commentaire\n" +
- "environmentPmfmId: \n" +
- "- 114\n" +
- "- 228\n" +
- "- 821\n" +
- "gearPmfmId: \n" +
+ "gearUseFeaturePmfmId: \n" +
"- 21\n" +
"- 22\n" +
- "hydrologyPmfmId: []\n" +
"lengthClassesPmfmId: \n" +
"- 14\n" +
"- 18\n" +
@@ -82,7 +77,11 @@
" sexEnabled: true\n" +
" sizeEnabled: true\n" +
" speciesReferenceTaxonId: 3835\n" +
- " weightEnabled: true";
+ " weightEnabled: true\n" +
+ "vesselUseFeaturePmfmId: \n" +
+ "- 114\n" +
+ "- 228\n" +
+ "- 821";
@Before
public void setUp() throws Exception {
@@ -134,9 +133,8 @@
protocol.setName("protocolName");
protocol.setComment("Commentaire");
protocol.setLengthClassesPmfmId(Lists.newArrayList("14", "18"));
- protocol.setEnvironmentPmfmId(Lists.newArrayList("114", "228", "821"));
- protocol.setGearPmfmId(Lists.newArrayList("21", "22"));
- protocol.setHydrologyPmfmId(Lists.<String>newArrayList());
+ protocol.setVesselUseFeaturePmfmId(Lists.newArrayList("114", "228", "821"));
+ protocol.setGearUseFeaturePmfmId(Lists.newArrayList("21", "22"));
protocol.setSpecies(Lists.<SpeciesProtocol>newArrayList());
SpeciesProtocol sp1 = new SpeciesProtocol();
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/CaracteristicType.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/CaracteristicType.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/CaracteristicType.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -33,7 +33,7 @@
public enum CaracteristicType {
LENGTH_STEP,
- ENVIRONMENT,
+ VESSEL_USE_FEATURE,
HYDROLOGY,
- GEAR
+ GEAR_USE_FEATURE
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportService.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportService.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -33,6 +33,7 @@
import com.google.common.collect.TreeMultimap;
import com.google.common.io.Closeables;
import com.google.common.io.Files;
+import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocols;
@@ -67,11 +68,11 @@
private static final Log log =
LogFactory.getLog(TuttiProtocolImportExportService.class);
- public void exportProtocol(TuttiProtocol protocol, File file) throws IOException {
+ public void exportProtocol(TuttiProtocol protocol, File file) {
TuttiProtocols.toFile(protocol, file);
}
- public TuttiProtocol importProtocol(File file) throws IOException {
+ public TuttiProtocol importProtocol(File file) {
TuttiProtocol result = TuttiProtocols.fromFile(file);
return result;
}
@@ -120,21 +121,17 @@
mergeIds(protocol.getLengthClassesPmfmId(),
ids.get(CaracteristicType.LENGTH_STEP)));
- protocol.setEnvironmentPmfmId(
- mergeIds(protocol.getEnvironmentPmfmId(),
- ids.get(CaracteristicType.ENVIRONMENT)));
+ protocol.setVesselUseFeaturePmfmId(
+ mergeIds(protocol.getVesselUseFeaturePmfmId(),
+ ids.get(CaracteristicType.VESSEL_USE_FEATURE)));
- protocol.setGearPmfmId(
- mergeIds(protocol.getGearPmfmId(),
- ids.get(CaracteristicType.GEAR)));
-
- protocol.setHydrologyPmfmId(
- mergeIds(protocol.getHydrologyPmfmId(),
- ids.get(CaracteristicType.HYDROLOGY)));
+ protocol.setGearUseFeaturePmfmId(
+ mergeIds(protocol.getGearUseFeaturePmfmId(),
+ ids.get(CaracteristicType.GEAR_USE_FEATURE)));
}
public void exportAllCaracteristic(File file,
- Map<String, Caracteristic> caracteristicMap) throws Exception {
+ Map<String, Caracteristic> caracteristicMap) {
if (log.isInfoEnabled()) {
log.info("Will export all caracteristics to file: " + file);
@@ -151,11 +148,14 @@
new CaracteristicRowModel(getCsvSeparator(),
caracteristicMap);
- BufferedWriter writer = Files.newWriter(file, Charsets.UTF_8);
+ BufferedWriter writer = null;
try {
+ writer = Files.newWriter(file, Charsets.UTF_8);
Export export = Export.newExport(csvModel, rows);
export.write(writer);
writer.close();
+ } catch (Exception e) {
+ throw new TuttiTechnicalException("Could not export all caracteristics to file " + file, e);
} finally {
Closeables.closeQuietly(writer);
}
@@ -163,7 +163,7 @@
public void exportProtocolCaracteristic(File file,
TuttiProtocol protocol,
- Map<String, Caracteristic> caracteristicMap) throws Exception {
+ Map<String, Caracteristic> caracteristicMap) {
if (log.isInfoEnabled()) {
log.info("Will export all caracteristics to file: " + file);
@@ -179,28 +179,27 @@
rows.addAll(Lists.transform(protocol.getLengthClassesPmfmId(), function));
}
- if (!protocol.isEnvironmentPmfmIdEmpty()) {
- function.setType(CaracteristicType.ENVIRONMENT);
- rows.addAll(Lists.transform(protocol.getEnvironmentPmfmId(), function));
+ if (!protocol.isVesselUseFeaturePmfmIdEmpty()) {
+ function.setType(CaracteristicType.VESSEL_USE_FEATURE);
+ rows.addAll(Lists.transform(protocol.getVesselUseFeaturePmfmId(), function));
}
- if (!protocol.isGearPmfmIdEmpty()) {
+ if (!protocol.isGearUseFeaturePmfmIdEmpty()) {
- function.setType(CaracteristicType.GEAR);
- rows.addAll(Lists.transform(protocol.getGearPmfmId(), function));
+ function.setType(CaracteristicType.GEAR_USE_FEATURE);
+ rows.addAll(Lists.transform(protocol.getGearUseFeaturePmfmId(), function));
}
- if (!protocol.isHydrologyPmfmIdEmpty()) {
- function.setType(CaracteristicType.HYDROLOGY);
- rows.addAll(Lists.transform(protocol.getHydrologyPmfmId(), function));
- }
CaracteristicRowModel csvModel =
new CaracteristicRowModel(getCsvSeparator(),
caracteristicMap);
- BufferedWriter writer = Files.newWriter(file, Charsets.UTF_8);
+ BufferedWriter writer = null;
try {
+ writer = Files.newWriter(file, Charsets.UTF_8);
Export export = Export.newExport(csvModel, rows);
export.write(writer);
writer.close();
+ } catch (Exception e) {
+ throw new TuttiTechnicalException("Could not export protocol [" + protocol.getName() + "] caracteristic to file " + file, e);
} finally {
Closeables.closeQuietly(writer);
}
@@ -209,7 +208,7 @@
public void importProtocolSpecies(File file,
TuttiProtocol protocol,
Map<String, Caracteristic> caracteristicMap,
- Map<String, Species> speciesMap) throws IOException {
+ Map<String, Species> speciesMap) {
if (log.isInfoEnabled()) {
log.info("Will import protocol [" + protocol.getName() +
@@ -231,8 +230,9 @@
caracteristicMap,
speciesMap);
- Reader reader = Files.newReader(file, Charsets.UTF_8);
+ Reader reader = null;
try {
+ reader = Files.newReader(file, Charsets.UTF_8);
Import<SpeciesRow> importer = Import.newImport(csvModel, reader);
@@ -263,7 +263,7 @@
}
reader.close();
} catch (Exception e) {
- throw new IOException("Could not import protocol [" + protocol.getName() + "] caracteristic from file " + file, e);
+ throw new TuttiTechnicalException("Could not import protocol [" + protocol.getName() + "] caracteristic from file " + file, e);
} finally {
Closeables.closeQuietly(reader);
}
@@ -275,7 +275,7 @@
public void exportProtocolSpecies(File file,
List<SpeciesProtocol> protocol,
Map<String, Caracteristic> caracteristicMap,
- Map<String, Species> speciesMap) throws Exception {
+ Map<String, Species> speciesMap) {
if (log.isInfoEnabled()) {
log.info("Will export species to file: " + file);
}
@@ -293,11 +293,14 @@
caracteristicMap,
speciesMap);
- BufferedWriter writer = Files.newWriter(file, Charsets.UTF_8);
+ BufferedWriter writer = null;
try {
+ writer = Files.newWriter(file, Charsets.UTF_8);
Export export = Export.newExport(csvModel, rows);
export.write(writer);
writer.close();
+ } catch (Exception e) {
+ throw new TuttiTechnicalException("Could not export species protocol to file " + file, e);
} finally {
Closeables.closeQuietly(writer);
}
Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportServiceTest.java
===================================================================
--- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportServiceTest.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportServiceTest.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -61,14 +61,9 @@
"id: 1\n" +
"name: protocolName\n" +
"comment: Commentaire\n" +
- "environmentPmfmId: \n" +
- "- 114\n" +
- "- 228\n" +
- "- 821\n" +
- "gearPmfmId: \n" +
+ "gearUseFeaturePmfmId: \n" +
"- 21\n" +
"- 22\n" +
- "hydrologyPmfmId: []\n" +
"lengthClassesPmfmId: \n" +
"- 14\n" +
"- 18\n" +
@@ -90,15 +85,17 @@
" sexEnabled: true\n" +
" sizeEnabled: true\n" +
" speciesReferenceTaxonId: 3835\n" +
- " weightEnabled: true";
+ " weightEnabled: true\n" +
+ "vesselUseFeaturePmfmId: \n" +
+ "- 114\n" +
+ "- 228\n" +
+ "- 821";
public static final String PROTOCOL_CARACTERISTIC_FILE_CONTENT =
"pmfmId;pmfmType;pmfmParameterName;pmfmMatrixName;pmfmFractionName;pmfmMethodName\n" +
"1;LENGTH_STEP;parameterName1;matrixName1;fractionName1;methodName1;\n" +
- "2;ENVIRONMENT;parameterName2;matrixName2;fractionName2;methodName2;\n" +
- "3;GEAR;parameterName3;matrixName3;fractionName3;methodName3;\n" +
- "4;HYDROLOGY;parameterName4;matrixName4;fractionName4;methodName4;\n" +
- "5;HYDROLOGY;parameterName5;matrixName5;fractionName5;methodName5;";
+ "2;VESSEL_USE_FEATURE;parameterName2;matrixName2;fractionName2;methodName2;\n" +
+ "3;GEAR_USE_FEATURE;parameterName3;matrixName3;fractionName3;methodName3;";
public static final String ALL_CARACTERISTIC_FILE_CONTENT =
"pmfmId;pmfmType;pmfmParameterName;pmfmMatrixName;pmfmFractionName;pmfmMethodName\n" +
@@ -141,9 +138,8 @@
protocol.setName("protocolName");
protocol.setComment("Commentaire");
protocol.setLengthClassesPmfmId(Lists.newArrayList("14", "18"));
- protocol.setEnvironmentPmfmId(Lists.newArrayList("114", "228", "821"));
- protocol.setGearPmfmId(Lists.newArrayList("21", "22"));
- protocol.setHydrologyPmfmId(Lists.<String>newArrayList());
+ protocol.setVesselUseFeaturePmfmId(Lists.newArrayList("114", "228", "821"));
+ protocol.setGearUseFeaturePmfmId(Lists.newArrayList("21", "22"));
protocol.setSpecies(Lists.<SpeciesProtocol>newArrayList());
SpeciesProtocol sp1 = new SpeciesProtocol();
@@ -191,9 +187,8 @@
Assert.assertEquals("protocolName", protocol.getName());
Assert.assertEquals("Commentaire", protocol.getComment());
Assert.assertEquals(Lists.newArrayList("14", "18"), protocol.getLengthClassesPmfmId());
- Assert.assertEquals(Lists.newArrayList("114", "228", "821"), protocol.getEnvironmentPmfmId());
- Assert.assertEquals(Lists.newArrayList("21", "22"), protocol.getGearPmfmId());
- Assert.assertEquals(Lists.<String>newArrayList(), protocol.getHydrologyPmfmId());
+ Assert.assertEquals(Lists.newArrayList("114", "228", "821"), protocol.getVesselUseFeaturePmfmId());
+ Assert.assertEquals(Lists.newArrayList("21", "22"), protocol.getGearUseFeaturePmfmId());
Assert.assertNotNull(protocol.getSpecies());
Assert.assertEquals(2, protocol.getSpecies().size());
SpeciesProtocol sp1 = protocol.getSpecies().get(0);
@@ -241,11 +236,9 @@
Assert.assertEquals(Lists.newArrayList("1"),
protocol.getLengthClassesPmfmId());
Assert.assertEquals(Lists.newArrayList("2"),
- protocol.getEnvironmentPmfmId());
+ protocol.getVesselUseFeaturePmfmId());
Assert.assertEquals(Lists.newArrayList("3"),
- protocol.getGearPmfmId());
- Assert.assertEquals(Lists.newArrayList("4", "5"),
- protocol.getHydrologyPmfmId());
+ protocol.getGearUseFeaturePmfmId());
}
@Test
@@ -259,9 +252,8 @@
TuttiProtocol protocol = new TuttiProtocol();
protocol.setLengthClassesPmfmId(Lists.newArrayList("1"));
- protocol.setEnvironmentPmfmId(Lists.newArrayList("2"));
- protocol.setGearPmfmId(Lists.newArrayList("3"));
- protocol.setHydrologyPmfmId(Lists.newArrayList("4", "5"));
+ protocol.setVesselUseFeaturePmfmId(Lists.newArrayList("2"));
+ protocol.setGearUseFeaturePmfmId(Lists.newArrayList("3"));
Assert.assertFalse(file.exists());
service.exportProtocolCaracteristic(file,
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AttachmentsAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AttachmentsAction.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AttachmentsAction.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,50 +0,0 @@
-package fr.ifremer.tutti.ui.swing.content.operation;
-
-/*
- * #%L
- * Tutti :: UI
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 - 2013 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
-
-import static org.nuiton.i18n.I18n._;
-
-/**
- * @author kmorin <kmorin(a)codelutin.com>
- * @since 1.0
- */
-public class AttachmentsAction extends AbstractTuttiAction<EditFishingOperationUIModel, EditFishingOperationUI, EditFishingOperationUIHandler> {
-
- public AttachmentsAction(EditFishingOperationUIHandler handler) {
- super(handler,
- "edit-attachment",
- _("tutti.action.attachments", 0),
- _("tutti.action.attachments.tip"),
- true);
- }
-
- @Override
- protected void doAction() throws Exception {
- //TODO
- }
-
-}
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-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -10,15 +10,15 @@
* %%
* 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
+ * 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
+ *
+ * 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%
@@ -37,9 +37,8 @@
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.SaveCatchBatchAction;
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.environment.EnvironmentTabUI;
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.gearshooting.GearShootingTabUI;
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.hydrology.HydrologyTabUI;
+import fr.ifremer.tutti.ui.swing.content.operation.fishing.GearUseFeatureTabUI;
+import fr.ifremer.tutti.ui.swing.content.operation.fishing.VesselUseFeatureTabUI;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
@@ -436,24 +435,20 @@
editFishingOperationUIModel.setFishingOperation(bean);
// update saisissuer selection
- List<Person> saisisseur = editFishingOperationUIModel.getSaisisseur();
- ui.getSaisisseurList().getHandler().setSelected(saisisseur);
+ List<Person> saisisseur = editFishingOperationUIModel.getRecorderPerson();
+ ui.getRecorderPersonList().getHandler().setSelected(saisisseur);
// update model empty property
editFishingOperationUIModel.setEmpty(false);
- //reset gear shooting
- GearShootingTabUI gearShootingTab = ui.getGearShootingTabContent();
- gearShootingTab.getHandler().reset(bean);
+ //reset gear use feature tab
+ GearUseFeatureTabUI gearUseFeatureTabContent = ui.getGearUseFeatureTabContent();
+ gearUseFeatureTabContent.getHandler().reset(bean);
- //reset environment
- EnvironmentTabUI environmentTab = ui.getEnvironmentTabContent();
- environmentTab.getHandler().reset(bean);
+ //reset vessel use feature tab
+ VesselUseFeatureTabUI vesselUseFeatureTabContent = ui.getVesselUseFeatureTabContent();
+ vesselUseFeatureTabContent.getHandler().reset(bean);
- //reset hydrology
- HydrologyTabUI hydrologyTab = ui.getHydrologyTabContent();
- hydrologyTab.getHandler().reset(bean);
-
String id = editFishingOperationUIModel.getObjectId();
if (id != null) {
Integer objectId = Integer.valueOf(id);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-03-06 08:11:58 UTC (rev 546)
@@ -471,10 +471,10 @@
_validatorLabel : {_("tutti.label.fishingOperation.duration")};
}
-#saisisseurList {
- property: saisisseur;
- border: {BorderFactory.createTitledBorder(_("tutti.label.list.saisisseur"))};
- _validatorLabel : {_("tutti.label.list.saisisseur")};
+#recorderPersonList {
+ property: recorderPerson;
+ border: {BorderFactory.createTitledBorder(_("tutti.label.list.recorderPerson"))};
+ _validatorLabel : {_("tutti.label.list.recorderPerson")};
}
#commentPane {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-03-06 08:11:58 UTC (rev 546)
@@ -31,9 +31,9 @@
fr.ifremer.tutti.persistence.entities.referential.Person
fr.ifremer.tutti.persistence.entities.referential.Vessel
- fr.ifremer.tutti.ui.swing.content.operation.fishing.environment.EnvironmentTabUI
- fr.ifremer.tutti.ui.swing.content.operation.fishing.gearshooting.GearShootingTabUI
- fr.ifremer.tutti.ui.swing.content.operation.fishing.hydrology.HydrologyTabUI
+ fr.ifremer.tutti.ui.swing.content.operation.fishing.VesselUseFeatureTabUI
+ fr.ifremer.tutti.ui.swing.content.operation.fishing.GearUseFeatureTabUI
+
fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachmentEditor
fr.ifremer.tutti.ui.swing.util.editor.CoordinateEditorType
fr.ifremer.tutti.ui.swing.util.editor.SimpleTimeEditor
@@ -90,7 +90,7 @@
<field name='gearShootingStartDate' component='gearShootingStartDateField'/>
<field name='gearShootingEndDate' component='gearShootingEndDateField'/>
<field name='comment' component='commentPane'/>
- <field name='saisisseur' component='saisisseurList'/>
+ <field name='recorderPerson' component='recorderPersonList'/>
<field name='trawlDistance' component='trawlDistanceField'/>
<field name='vessel' component='vesselComboBox'/>
<field name='gear' component='gearComboBox'/>
@@ -468,11 +468,11 @@
</cell>
</row>
- <!-- Saisisseur -->
+ <!-- RecorderPerson / Vessel / Gear -->
<row weighty='0.2'>
<cell columns='6'>
<JPanel layout='{new GridLayout(1,0)}'>
- <BeanDoubleList id='saisisseurList' genericType='Person'/>
+ <BeanDoubleList id='recorderPersonList' genericType='Person'/>
<Table fill="both" weightx='1' id='traitVesselPanel'>
<row>
<cell anchor='west'>
@@ -513,22 +513,18 @@
<!--</JScrollPane>-->
</tab>
- <tab id='traitGearShootingTab'>
+ <tab id='gearUseFeatureTab'>
- <GearShootingTabUI id='gearShootingTabContent'
+ <GearUseFeatureTabUI id='gearUseFeatureTabContent'
constructorParams='this'/>
</tab>
- <tab id='environmentTab'>
+ <tab id='vesselUseFeatureTab'>
- <EnvironmentTabUI id='environmentTabContent' constructorParams='this'/>
+ <VesselUseFeatureTabUI id='vesselUseFeatureTabContent'
+ constructorParams='this'/>
</tab>
- <tab id='traitHydrologyTabContent'>
-
- <HydrologyTabUI id='hydrologyTabContent' constructorParams='this'/>
-
- </tab>
</JTabbedPane>
<!-- Actions -->
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -38,10 +38,9 @@
import fr.ifremer.tutti.persistence.entities.referential.Zone;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.CaracteristicTabUIModel;
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.environment.EnvironmentTabUIModel;
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.gearshooting.GearShootingTabUIModel;
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.hydrology.HydrologyTabUIModel;
+import fr.ifremer.tutti.ui.swing.content.operation.fishing.AbstractCaracteristicTabUIModel;
+import fr.ifremer.tutti.ui.swing.content.operation.fishing.GearUseFeatureTabUIModel;
+import fr.ifremer.tutti.ui.swing.content.operation.fishing.VesselUseFeatureTabUIModel;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiTabContainerUIHandler;
import fr.ifremer.tutti.ui.swing.util.TabHandler;
@@ -166,7 +165,7 @@
EditFishingOperationUIModel.PROPERTY_TRAWL_DISTANCE,
EditFishingOperationUIModel.PROPERTY_FISHING_OPERATION_VALID,
EditFishingOperationUIModel.PROPERTY_LOCATION,
- EditFishingOperationUIModel.PROPERTY_SAISISSEUR,
+ EditFishingOperationUIModel.PROPERTY_RECORDER_PERSON,
EditFishingOperationUIModel.PROPERTY_VESSEL,
EditFishingOperationUIModel.PROPERTY_GEAR,
EditFishingOperationUIModel.PROPERTY_MULTIRIG_AGGREGATION,
@@ -241,10 +240,10 @@
initUI(ui);
- List<Person> people = persistenceService.getAllPerson();
- initBeanList(ui.getSaisisseurList(),
+ List<Person> people = getDataContext().getPersons();
+ initBeanList(ui.getRecorderPersonList(),
people,
- model.getSaisisseur());
+ model.getRecorderPerson());
initBeanComboBox(ui.getVesselComboBox(),
Lists.<Vessel>newArrayList(),
@@ -298,22 +297,18 @@
setCustomTab(0, model);
listModelIsModify(model);
- //init gear shooting
- GearShootingTabUIModel gearShootingModel =
- ui.getGearShootingTabContent().getModel();
- gearShootingModel.setAvailableCaracteristics(persistenceService.getAllCaracteristic());
- setCustomTab(1, gearShootingModel);
+ //init gear use features
+ GearUseFeatureTabUIModel gearUseFeatureModel =
+ ui.getGearUseFeatureTabContent().getModel();
+ gearUseFeatureModel.setAvailableCaracteristics(getDataContext().getCaracteristics());
+ setCustomTab(1, gearUseFeatureModel);
- //init environment
- EnvironmentTabUIModel environmentModel =
- ui.getEnvironmentTabContent().getModel();
- environmentModel.setAvailableCaracteristics(persistenceService.getAllCaracteristic());
- setCustomTab(2, environmentModel);
+ //init vessel use features
- //init hydrology
- HydrologyTabUIModel hydrologyModel = ui.getHydrologyTabContent().getModel();
- hydrologyModel.setAvailableCaracteristics(persistenceService.getAllCaracteristic());
- setCustomTab(3, hydrologyModel);
+ VesselUseFeatureTabUIModel vesselUseFeatureModel =
+ ui.getVesselUseFeatureTabContent().getModel();
+ vesselUseFeatureModel.setAvailableCaracteristics(getDataContext().getCaracteristics());
+ setCustomTab(2, vesselUseFeatureModel);
if (TuttiUIContext.VALIDATION_CONTEXT_VALIDATE.equals(model.getValidationContext())) {
PropertyChangeListener pcl = new PropertyChangeListener() {
@@ -324,9 +319,8 @@
ui.getSaveButton().setEnabled(allModelsValid);
}
};
- gearShootingModel.addPropertyChangeListener(AbstractTuttiBeanUIModel.PROPERTY_VALID, pcl);
- environmentModel.addPropertyChangeListener(AbstractTuttiBeanUIModel.PROPERTY_VALID, pcl);
- hydrologyModel.addPropertyChangeListener(AbstractTuttiBeanUIModel.PROPERTY_VALID, pcl);
+ gearUseFeatureModel.addPropertyChangeListener(AbstractTuttiBeanUIModel.PROPERTY_VALID, pcl);
+ vesselUseFeatureModel.addPropertyChangeListener(AbstractTuttiBeanUIModel.PROPERTY_VALID, pcl);
model.addPropertyChangeListener(AbstractTuttiBeanUIModel.PROPERTY_VALID, pcl);
} else {
@@ -363,9 +357,8 @@
clearValidators();
- closeUI(ui.getGearShootingTabContent());
- closeUI(ui.getEnvironmentTabContent());
- closeUI(ui.getHydrologyTabContent());
+ closeUI(ui.getGearUseFeatureTabContent());
+ closeUI(ui.getVesselUseFeatureTabContent());
}
@Override
@@ -451,11 +444,10 @@
//-- Public methods --//
//------------------------------------------------------------------------//
- public CaracteristicTabUIModel[] getSubModels() {
- return new CaracteristicTabUIModel[]{
- ui.getGearShootingTabContent().getModel(),
- ui.getEnvironmentTabContent().getModel(),
- ui.getHydrologyTabContent().getModel()
+ public AbstractCaracteristicTabUIModel[] getSubModels() {
+ return new AbstractCaracteristicTabUIModel[]{
+ ui.getGearUseFeatureTabContent().getModel(),
+ ui.getVesselUseFeatureTabContent().getModel()
};
}
@@ -572,8 +564,8 @@
protected boolean areAllModelsValid() {
boolean result = getModel().isValid();
- CaracteristicTabUIModel[] subModels = getSubModels();
- for (CaracteristicTabUIModel subModel : subModels) {
+ AbstractCaracteristicTabUIModel[] subModels = getSubModels();
+ for (AbstractCaracteristicTabUIModel subModel : subModels) {
result &= subModel.isValid();
}
return result;
@@ -581,8 +573,8 @@
protected boolean isAModelModified() {
boolean result = getModel().isModify();
- CaracteristicTabUIModel[] subModels = getSubModels();
- for (CaracteristicTabUIModel subModel : subModels) {
+ AbstractCaracteristicTabUIModel[] subModels = getSubModels();
+ for (AbstractCaracteristicTabUIModel subModel : subModels) {
result |= subModel.isModify();
}
return result;
@@ -590,7 +582,7 @@
protected void resetAllModels() {
- for (CaracteristicTabUIModel subModel : getSubModels()) {
+ for (AbstractCaracteristicTabUIModel subModel : getSubModels()) {
subModel.setModify(false);
}
getModel().setModify(false);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -130,7 +130,7 @@
public static final String PROPERTY_COMMENT = "comment";
- public static final String PROPERTY_SAISISSEUR = "saisisseur";
+ public static final String PROPERTY_RECORDER_PERSON = "recorderPerson";
public static final String PROPERTY_VESSEL = "vessel";
@@ -187,7 +187,7 @@
protected String comment;
- protected List<Person> saisisseur = Lists.newArrayList();
+ protected List<Person> recorderPerson = Lists.newArrayList();
protected final List<Attachment> attachment = Lists.newArrayList();
@@ -706,17 +706,17 @@
firePropertyChange(PROPERTY_COMMENT, oldValue, comment);
}
- public List<Person> getSaisisseur() {
- return saisisseur;
+ public List<Person> getRecorderPerson() {
+ return recorderPerson;
}
- public void setSaisisseur(List<Person> saisisseur) {
- Object oldValue = Lists.newArrayList(getSaisisseur());
- this.saisisseur = Lists.newArrayList();
- if (saisisseur != null) {
- this.saisisseur.addAll(saisisseur);
+ public void setRecorderPerson(List<Person> recorderPerson) {
+ Object oldValue = Lists.newArrayList(getRecorderPerson());
+ this.recorderPerson = Lists.newArrayList();
+ if (recorderPerson != null) {
+ this.recorderPerson.addAll(recorderPerson);
}
- firePropertyChange(PROPERTY_SAISISSEUR, oldValue, saisisseur);
+ firePropertyChange(PROPERTY_RECORDER_PERSON, oldValue, recorderPerson);
}
public String getValidationContext() {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -30,10 +30,9 @@
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.CaracteristicTabUIModel;
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.environment.EnvironmentTabUIModel;
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.gearshooting.GearShootingTabUIModel;
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.hydrology.HydrologyTabUIModel;
+import fr.ifremer.tutti.ui.swing.content.operation.fishing.AbstractCaracteristicTabUIModel;
+import fr.ifremer.tutti.ui.swing.content.operation.fishing.GearUseFeatureTabUIModel;
+import fr.ifremer.tutti.ui.swing.content.operation.fishing.VesselUseFeatureTabUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.util.editor.CoordinateEditorType;
@@ -113,19 +112,17 @@
// save modified fishing operation
FishingOperation toSave = beanToSave.toBean();
- CaracteristicTabUIModel[] subModels = handler.getSubModels();
- for (CaracteristicTabUIModel subModel : subModels) {
+ AbstractCaracteristicTabUIModel[] subModels = handler.getSubModels();
+ for (AbstractCaracteristicTabUIModel subModel : subModels) {
Class<?> modelClass = subModel.getClass();
CaracteristicMap caracteristics = subModel.getCaracteristicMap();
- if (modelClass.isAssignableFrom(EnvironmentTabUIModel.class)) {
- toSave.setEnvironmentCaracteristics(caracteristics);
+ if (modelClass.isAssignableFrom(VesselUseFeatureTabUIModel.class)) {
+ toSave.setVesselUseFeatures(caracteristics);
- } else if (modelClass.isAssignableFrom(GearShootingTabUIModel.class)) {
- toSave.setGearShootingCaracteristics(caracteristics);
+ } else if (modelClass.isAssignableFrom(GearUseFeatureTabUIModel.class)) {
+ toSave.setGearUseFeatures(caracteristics);
- } else if (modelClass.isAssignableFrom(HydrologyTabUIModel.class)) {
- toSave.setHydrologyCaracteristics(caracteristics);
}
subModel.setModify(false);
}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/AbstractCaracteristicRowModel.java (from rev 543, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicRowModel.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/AbstractCaracteristicRowModel.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/AbstractCaracteristicRowModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -0,0 +1,78 @@
+
+package fr.ifremer.tutti.ui.swing.content.operation.fishing;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
+
+import java.io.Serializable;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.0
+ */
+public abstract class AbstractCaracteristicRowModel<RM extends AbstractCaracteristicRowModel<RM>> extends AbstractTuttiBeanUIModel<Serializable, RM> {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final String PROPERTY_KEY = "key";
+
+ public static final String PROPERTY_VALUE = "value";
+
+ protected Caracteristic key;
+
+ protected Serializable value;
+
+ public AbstractCaracteristicRowModel() {
+ super(Serializable.class, null, null);
+ }
+
+ public AbstractCaracteristicRowModel(Caracteristic key, Serializable value) {
+ this();
+ this.key = key;
+ this.value = value;
+ }
+
+ public Caracteristic getKey() {
+ return key;
+ }
+
+ public void setKey(Caracteristic key) {
+ Object oldValue = getKey();
+ this.key = key;
+ firePropertyChange(PROPERTY_KEY, oldValue, key);
+ }
+
+ public Serializable getValue() {
+ return value;
+ }
+
+ public void setValue(Serializable value) {
+ Object oldValue = getValue();
+ this.value = value;
+ firePropertyChange(PROPERTY_VALUE, oldValue, value);
+ }
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/AbstractCaracteristicTabUIHandler.java (from rev 543, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIHandler.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/AbstractCaracteristicTabUIHandler.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/AbstractCaracteristicTabUIHandler.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -0,0 +1,272 @@
+
+package fr.ifremer.tutti.ui.swing.content.operation.fishing;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.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.FishingOperation;
+import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI;
+import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
+import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
+import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
+import jaxx.runtime.swing.editor.bean.BeanComboBox;
+import jaxx.runtime.validator.swing.SwingValidator;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.util.List;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.0
+ */
+public abstract class AbstractCaracteristicTabUIHandler
+ <RM extends AbstractCaracteristicRowModel<RM>,
+ M extends AbstractCaracteristicTabUIModel<RM, M>,
+ TM extends AbstractTuttiTableModel<RM>,
+ UI extends TuttiUI<M, ?>>
+ extends AbstractTuttiTableUIHandler<RM, M, UI> {
+
+ private static final Log log = LogFactory.getLog(AbstractCaracteristicTabUIHandler.class);
+
+ public AbstractCaracteristicTabUIHandler(EditFishingOperationUI parentUi, UI ui, String... properties) {
+ super(parentUi.getHandler().getContext(), ui, properties);
+ }
+
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiTableUIHandler methods --//
+ //------------------------------------------------------------------------//
+
+ @Override
+ public TM getTableModel() {
+ return (TM) getTable().getModel();
+ }
+
+ @Override
+ protected boolean isRowValid(RM row) {
+ //TODO
+ return row.getValue() != null;
+ }
+
+ @Override
+ protected void onRowModified(int rowIndex, RM row, String propertyName, Object oldValue, Object newValue) {
+ recomputeRowValidState(row);
+ super.onRowModified(rowIndex, row, propertyName, oldValue, newValue);
+ }
+
+ @Override
+ protected void saveSelectedRowIfRequired(TuttiBeanMonitor<RM> rowMonitor, RM 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);
+
+ }
+ }
+ }
+
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiUIHandler methods --//
+ //------------------------------------------------------------------------//
+
+ @Override
+ public SwingValidator<M> getValidator() {
+ return null;
+ }
+
+ @Override
+ protected void onAfterSelectedRowChanged(int oldRowIndex,
+ RM oldRow,
+ int newRowIndex,
+ RM newRow) {
+
+ super.onAfterSelectedRowChanged(oldRowIndex, oldRow, newRowIndex, newRow);
+ getModel().setRemoveCaracteristicEnabled(newRow != null);
+ }
+
+ @Override
+ public void beforeInitUI() {
+ M model = createModel();
+ getUI().setContextValue(model);
+ }
+
+ @Override
+ public void afterInitUI() {
+ initUI(getUI());
+
+ initBeanComboBox(getKeyCombo(), Lists.<Caracteristic>newArrayList(), null);
+
+ }
+
+ @Override
+ public void onCloseUI() {
+ if (log.isInfoEnabled()) {
+ log.info("closing: " + getUI());
+ }
+ }
+
+ //------------------------------------------------------------------------//
+ //-- Protected methods --//
+ //------------------------------------------------------------------------//
+
+ protected void saveRow(RM row) {
+
+ if (row.isValid()) {
+ CaracteristicMap caracteristics = getModel().getCaracteristicMap();
+ Preconditions.checkNotNull(caracteristics);
+
+ caracteristics.put(row.getKey(), row.getValue());
+ }
+ }
+
+ protected abstract M createModel();
+
+ protected abstract BeanComboBox<Caracteristic> getKeyCombo();
+
+ protected abstract CaracteristicMap getCaracteristics(FishingOperation operation);
+
+ protected abstract List<String> getProtocolPmfmIds(TuttiProtocol protocol);
+
+ //------------------------------------------------------------------------//
+ //-- Public methods --//
+ //------------------------------------------------------------------------//
+
+ /** Adds a row with the parameter selected in the combo box */
+ public void addRow() {
+ BeanComboBox<Caracteristic> keyCombo = getKeyCombo();
+ Caracteristic selectedItem = (Caracteristic) keyCombo.getSelectedItem();
+ TM tableModel = getTableModel();
+
+ RM row = tableModel.createNewRow();
+ row.setKey(selectedItem);
+// tableModel.addNewRow(row);
+ getModel().getRows().add(row);
+
+ int rowIndex = tableModel.getRowCount() - 1;
+ tableModel.fireTableRowsInserted(rowIndex, rowIndex);
+
+ keyCombo.getData().remove(selectedItem);
+ selectFirstInCombo(keyCombo);
+
+ M model = getModel();
+ model.setModify(true);
+ recomputeRowValidState(row);
+ }
+
+ /** Resets the table with the data from the database */
+ public void reset(FishingOperation fishingOperation) {
+ TM tableModel = getTableModel();
+ M model = getModel();
+
+ CaracteristicMap caracteristicMap = getCaracteristics(fishingOperation);
+ 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<RM> 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) {
+ RM 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);
+ }
+ }
+
+ BeanComboBox<Caracteristic> keyCombo = getKeyCombo();
+ keyCombo.setData(caracteristicList);
+ selectFirstInCombo(keyCombo);
+ model.setModify(false);
+ }
+
+ public void removeCaracteristic() {
+ int rowIndex = getTable().getSelectedRow();
+
+ Preconditions.checkState(
+ rowIndex != -1,
+ "Cant remove caracteristic if no caracteristic selected");
+
+ RM row = getTableModel().getEntry(rowIndex);
+
+ CaracteristicMap caracteristicMap = getModel().getCaracteristicMap();
+ if (caracteristicMap != null) {
+ caracteristicMap.remove(row.getKey());
+ }
+
+ //add the row in the combo
+ BeanComboBox keyCombo = getKeyCombo();
+ keyCombo.addItem(row.getKey());
+ selectFirstInCombo(keyCombo);
+
+ // remove the row from the model
+ getModel().getRows().remove(rowIndex);
+
+ // refresh all the table
+ getTableModel().fireTableRowsDeleted(rowIndex, rowIndex);
+
+ getModel().removeRowInError(row);
+ }
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/AbstractCaracteristicTabUIModel.java (from rev 543, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIModel.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/AbstractCaracteristicTabUIModel.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/AbstractCaracteristicTabUIModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -0,0 +1,101 @@
+
+package fr.ifremer.tutti.ui.swing.content.operation.fishing;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.0
+ */
+public abstract class AbstractCaracteristicTabUIModel<RM extends AbstractTuttiBeanUIModel<Serializable, RM>, M extends AbstractCaracteristicTabUIModel<RM, M>>
+ extends AbstractTuttiTableUIModel<FishingOperation, RM, M> {
+
+ 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 AbstractCaracteristicTabUIModel() {
+ super(FishingOperation.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);
+ }
+}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicRowModel.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicRowModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,78 +0,0 @@
-
-package fr.ifremer.tutti.ui.swing.content.operation.fishing;
-
-/*
- * #%L
- * Tutti :: UI
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 - 2013 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
-import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
-
-import java.io.Serializable;
-
-/**
- * @author kmorin <kmorin(a)codelutin.com>
- * @since 1.0
- */
-public abstract class CaracteristicRowModel<RM extends CaracteristicRowModel<RM>> extends AbstractTuttiBeanUIModel<Serializable, RM> {
-
- private static final long serialVersionUID = 1L;
-
- public static final String PROPERTY_KEY = "key";
-
- public static final String PROPERTY_VALUE = "value";
-
- protected Caracteristic key;
-
- protected Serializable value;
-
- public CaracteristicRowModel() {
- super(Serializable.class, null, null);
- }
-
- public CaracteristicRowModel(Caracteristic key, Serializable value) {
- this();
- this.key = key;
- this.value = value;
- }
-
- public Caracteristic getKey() {
- return key;
- }
-
- public void setKey(Caracteristic key) {
- Object oldValue = getKey();
- this.key = key;
- firePropertyChange(PROPERTY_KEY, oldValue, key);
- }
-
- public Serializable getValue() {
- return value;
- }
-
- public void setValue(Serializable value) {
- Object oldValue = getValue();
- this.value = value;
- firePropertyChange(PROPERTY_VALUE, oldValue, value);
- }
-}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIHandler.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIHandler.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,272 +0,0 @@
-
-package fr.ifremer.tutti.ui.swing.content.operation.fishing;
-
-/*
- * #%L
- * Tutti :: UI
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 - 2013 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import com.google.common.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.FishingOperation;
-import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
-import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
-import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI;
-import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
-import fr.ifremer.tutti.ui.swing.util.TuttiUI;
-import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
-import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
-import jaxx.runtime.swing.editor.bean.BeanComboBox;
-import jaxx.runtime.validator.swing.SwingValidator;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import java.util.List;
-
-/**
- * @author kmorin <kmorin(a)codelutin.com>
- * @since 1.0
- */
-public abstract class CaracteristicTabUIHandler
- <RM extends CaracteristicRowModel<RM>,
- M extends CaracteristicTabUIModel<RM, M>,
- TM extends AbstractTuttiTableModel<RM>,
- UI extends TuttiUI<M, ?>>
- extends AbstractTuttiTableUIHandler<RM, M, UI> {
-
- private static final Log log = LogFactory.getLog(CaracteristicTabUIHandler.class);
-
- public CaracteristicTabUIHandler(EditFishingOperationUI parentUi, UI ui, String... properties) {
- super(parentUi.getHandler().getContext(), ui, properties);
- }
-
- //------------------------------------------------------------------------//
- //-- AbstractTuttiTableUIHandler methods --//
- //------------------------------------------------------------------------//
-
- @Override
- public TM getTableModel() {
- return (TM) getTable().getModel();
- }
-
- @Override
- protected boolean isRowValid(RM row) {
- //TODO
- return row.getValue() != null;
- }
-
- @Override
- protected void onRowModified(int rowIndex, RM row, String propertyName, Object oldValue, Object newValue) {
- recomputeRowValidState(row);
- super.onRowModified(rowIndex, row, propertyName, oldValue, newValue);
- }
-
- @Override
- protected void saveSelectedRowIfRequired(TuttiBeanMonitor<RM> rowMonitor, RM 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);
-
- }
- }
- }
-
- //------------------------------------------------------------------------//
- //-- AbstractTuttiUIHandler methods --//
- //------------------------------------------------------------------------//
-
- @Override
- public SwingValidator<M> getValidator() {
- return null;
- }
-
- @Override
- protected void onAfterSelectedRowChanged(int oldRowIndex,
- RM oldRow,
- int newRowIndex,
- RM newRow) {
-
- super.onAfterSelectedRowChanged(oldRowIndex, oldRow, newRowIndex, newRow);
- getModel().setRemoveCaracteristicEnabled(newRow != null);
- }
-
- @Override
- public void beforeInitUI() {
- M model = createModel();
- getUI().setContextValue(model);
- }
-
- @Override
- public void afterInitUI() {
- initUI(getUI());
-
- initBeanComboBox(getKeyCombo(), Lists.<Caracteristic>newArrayList(), null);
-
- }
-
- @Override
- public void onCloseUI() {
- if (log.isInfoEnabled()) {
- log.info("closing: " + getUI());
- }
- }
-
- //------------------------------------------------------------------------//
- //-- Protected methods --//
- //------------------------------------------------------------------------//
-
- protected void saveRow(RM row) {
-
- if (row.isValid()) {
- CaracteristicMap caracteristics = getModel().getCaracteristicMap();
- Preconditions.checkNotNull(caracteristics);
-
- caracteristics.put(row.getKey(), row.getValue());
- }
- }
-
- protected abstract M createModel();
-
- protected abstract BeanComboBox<Caracteristic> getKeyCombo();
-
- protected abstract CaracteristicMap getCaracteristics(FishingOperation operation);
-
- protected abstract List<String> getProtocolPmfmIds(TuttiProtocol protocol);
-
- //------------------------------------------------------------------------//
- //-- Public methods --//
- //------------------------------------------------------------------------//
-
- /** Adds a row with the parameter selected in the combo box */
- public void addRow() {
- BeanComboBox<Caracteristic> keyCombo = getKeyCombo();
- Caracteristic selectedItem = (Caracteristic) keyCombo.getSelectedItem();
- TM tableModel = getTableModel();
-
- RM row = tableModel.createNewRow();
- row.setKey(selectedItem);
-// tableModel.addNewRow(row);
- getModel().getRows().add(row);
-
- int rowIndex = tableModel.getRowCount() - 1;
- tableModel.fireTableRowsInserted(rowIndex, rowIndex);
-
- keyCombo.getData().remove(selectedItem);
- selectFirstInCombo(keyCombo);
-
- M model = getModel();
- model.setModify(true);
- recomputeRowValidState(row);
- }
-
- /** Resets the table with the data from the database */
- public void reset(FishingOperation fishingOperation) {
- TM tableModel = getTableModel();
- M model = getModel();
-
- CaracteristicMap caracteristicMap = getCaracteristics(fishingOperation);
- 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<RM> 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) {
- RM 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);
- }
- }
-
- BeanComboBox<Caracteristic> keyCombo = getKeyCombo();
- keyCombo.setData(caracteristicList);
- selectFirstInCombo(keyCombo);
- model.setModify(false);
- }
-
- public void removeCaracteristic() {
- int rowIndex = getTable().getSelectedRow();
-
- Preconditions.checkState(rowIndex != -1,
- "Cant remove caracteristic if no caracteristic selected");
-
- RM row = getTableModel().getEntry(rowIndex);
-
- CaracteristicMap caracteristicMap = getModel().getCaracteristicMap();
- if (caracteristicMap != null) {
- caracteristicMap.remove(row.getKey());
- }
-
- //add the row in the combo
- BeanComboBox keyCombo = getKeyCombo();
- keyCombo.addItem(row.getKey());
- selectFirstInCombo(keyCombo);
-
- // remove the row from the model
- getModel().getRows().remove(rowIndex);
-
- // refresh all the table
- getTableModel().fireTableRowsDeleted(rowIndex, rowIndex);
-
- getModel().removeRowInError(row);
-
- }
-}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIModel.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,99 +0,0 @@
-
-package fr.ifremer.tutti.ui.swing.content.operation.fishing;
-
-/*
- * #%L
- * Tutti :: UI
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 - 2013 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
-import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
-import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
-import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
-import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel;
-
-import java.io.Serializable;
-import java.util.List;
-
-/**
- * @author kmorin <kmorin(a)codelutin.com>
- * @since 1.0
- */
-public abstract class CaracteristicTabUIModel<RM extends AbstractTuttiBeanUIModel<Serializable, RM>, M extends CaracteristicTabUIModel<RM, M>>
- extends AbstractTuttiTableUIModel<FishingOperation, RM, M> {
-
- 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";
-
- protected List<Caracteristic> availableCaracteristics;
-
- /**
- * Caracteristics
- *
- * @since 1.0
- */
- protected CaracteristicMap caracteristicMap;
-
- /**
- * Can user remove a selected caracteristic?
- *
- * @since 1.0
- */
- protected boolean removeCaracteristicEnabled;
-
- public CaracteristicTabUIModel() {
- super(FishingOperation.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);
- }
-}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureRowModel.java (from rev 543, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingRowModel.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureRowModel.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureRowModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -0,0 +1,32 @@
+
+package fr.ifremer.tutti.ui.swing.content.operation.fishing;
+
+/*
+ * #%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%
+ */
+
+/** @author kmorin <kmorin(a)codelutin.com> */
+public class GearUseFeatureRowModel extends AbstractCaracteristicRowModel<GearUseFeatureRowModel> {
+
+ private static final long serialVersionUID = 1L;
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureTabUI.css (from rev 543, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUI.css)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureTabUI.css (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureTabUI.css 2013-03-06 08:11:58 UTC (rev 546)
@@ -0,0 +1,56 @@
+/*
+ * #%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%
+ */
+
+BeanComboBox {
+ i18nPrefix: "tutti.property.";
+}
+
+#newRowKey {
+ showReset: false;
+ property: selectedCaracteristic;
+ enabled: {!newRowKey.isEmpty()};
+}
+
+#addRow {
+ actionIcon: add;
+ enabled: {newRowKey.getSelectedItem() != null};
+}
+
+#gearUseFeatureTable {
+ selectionMode: {ListSelectionModel.SINGLE_SELECTION};
+ selectionBackground: {null};
+ selectionForeground: {Color.BLACK};
+ sortable: false;
+}
+
+#tablePopup {
+ label: "tutti.title.batchActions";
+}
+
+#removeCaracteristicMenu {
+ text: "tutti.action.removeCaracteristic";
+ mnemonic: R;
+ actionIcon: batch-delete;
+ enabled: {model.isRemoveCaracteristicEnabled()};
+}
\ No newline at end of file
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureTabUI.jaxx (from rev 543, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUI.jaxx)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureTabUI.jaxx (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureTabUI.jaxx 2013-03-06 08:11:58 UTC (rev 546)
@@ -0,0 +1,80 @@
+<!--
+ #%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%
+ -->
+<Table
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<GearUseFeatureTabUIModel, GearUseFeatureTabUIHandler>'>
+
+ <import>
+ fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI
+ fr.ifremer.tutti.persistence.entities.referential.Caracteristic
+
+ jaxx.runtime.swing.editor.bean.BeanComboBox
+ org.jdesktop.swingx.JXTable
+ javax.swing.ListSelectionModel
+ java.awt.Color
+ </import>
+
+ <GearUseFeatureTabUIHandler id='handler'
+ initializer='getContextValue(GearUseFeatureTabUIHandler.class)'/>
+
+ <GearUseFeatureTabUIModel id='model'
+ initializer='getContextValue(GearUseFeatureTabUIModel.class)'/>
+
+ <JPopupMenu id='tablePopup'>
+ <JMenuItem id='removeCaracteristicMenu'
+ onActionPerformed='handler.removeCaracteristic()'/>
+ </JPopupMenu>
+
+ <row fill='both'>
+ <cell fill='both' weightx='1'>
+ <BeanComboBox 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='gearUseFeatureTable'
+ onMouseClicked='handler.autoSelectRowInTable(event, tablePopup)'/>
+ </JScrollPane>
+ </cell>
+ </row>
+ <script><![CDATA[
+
+public GearUseFeatureTabUI(EditFishingOperationUI parentUI) {
+ JAXXUtil.initContext(this, parentUI);
+ GearUseFeatureTabUIHandler handler = new GearUseFeatureTabUIHandler(parentUI, this);
+ setContextValue(handler);
+ handler.beforeInitUI();
+}
+
+protected void $afterCompleteSetup() {
+ handler.afterInitUI();
+}
+
+ ]]></script>
+
+</Table>
\ No newline at end of file
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureTabUIHandler.java (from rev 543, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureTabUIHandler.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureTabUIHandler.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -0,0 +1,130 @@
+package fr.ifremer.tutti.ui.swing.content.operation.fishing;
+
+/*
+ * #%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%
+ */
+
+import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+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.EditFishingOperationUI;
+import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueEditor;
+import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueRenderer;
+import jaxx.runtime.swing.editor.bean.BeanComboBox;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jdesktop.swingx.JXTable;
+import org.jdesktop.swingx.table.DefaultTableColumnModelExt;
+
+import java.util.List;
+
+/**
+ * @author kmorin
+ * @since 0.3
+ */
+public class GearUseFeatureTabUIHandler extends AbstractCaracteristicTabUIHandler<GearUseFeatureRowModel, GearUseFeatureTabUIModel, GearUseFeatureTableModel, GearUseFeatureTabUI> {
+
+ private final static Log log =
+ LogFactory.getLog(GearUseFeatureTabUIHandler.class);
+
+ public GearUseFeatureTabUIHandler(EditFishingOperationUI parentUi,
+ GearUseFeatureTabUI ui) {
+ super(parentUi, ui, GearUseFeatureRowModel.PROPERTY_VALUE);
+ }
+
+ //------------------------------------------------------------------------//
+ //-- AbstractCaracteristicTabUIHandler methods --//
+ //------------------------------------------------------------------------//
+
+ @Override
+ protected BeanComboBox<Caracteristic> getKeyCombo() {
+ return ui.getNewRowKey();
+ }
+
+ @Override
+ protected GearUseFeatureTabUIModel createModel() {
+ return new GearUseFeatureTabUIModel();
+ }
+
+ @Override
+ protected CaracteristicMap getCaracteristics(FishingOperation operation) {
+ return operation.getGearUseFeatures();
+ }
+
+ @Override
+ protected List<String> getProtocolPmfmIds(TuttiProtocol protocol) {
+ return protocol.getGearUseFeaturePmfmId();
+ }
+
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiTableUIHandler methods --//
+ //------------------------------------------------------------------------//
+
+ @Override
+ public JXTable getTable() {
+ return ui.getGearUseFeatureTable();
+ }
+
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiUIHandler methods --//
+ //------------------------------------------------------------------------//
+
+ @Override
+ public void afterInitUI() {
+ super.afterInitUI();
+
+ JXTable table = getTable();
+
+ // create table column model
+ DefaultTableColumnModelExt columnModel =
+ new DefaultTableColumnModelExt();
+
+ {
+
+ addColumnToModel(columnModel,
+ null,
+ newTableCellRender(Caracteristic.class, DecoratorService.CARACTERISTIC_WITH_UNIT),
+ GearUseFeatureTableModel.KEY);
+ }
+
+ {
+
+ addColumnToModel(columnModel,
+ new CaracteristicValueEditor(context),
+ new CaracteristicValueRenderer(context),
+ GearUseFeatureTableModel.VALUE);
+ }
+
+ // create table model
+ GearUseFeatureTableModel tableModel =
+ new GearUseFeatureTableModel(columnModel);
+
+ table.setModel(tableModel);
+ table.setColumnModel(columnModel);
+
+ initTable(table);
+ }
+
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureTabUIModel.java (from rev 543, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIModel.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureTabUIModel.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureTabUIModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -0,0 +1,46 @@
+package fr.ifremer.tutti.ui.swing.content.operation.fishing;
+
+/*
+ * #%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%
+ */
+
+import static org.nuiton.i18n.I18n.n_;
+
+
+/**
+ * @author kmorin
+ * @since 0.3
+ */
+public class GearUseFeatureTabUIModel extends AbstractCaracteristicTabUIModel<GearUseFeatureRowModel, GearUseFeatureTabUIModel> {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final String TITLE =
+ n_("tutti.label.tab.fishingOperation.gearUseFeature");
+
+ @Override
+ public String getTitle() {
+ return TITLE;
+ }
+
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureTableModel.java (from rev 543, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTableModel.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureTableModel.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/GearUseFeatureTableModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -0,0 +1,62 @@
+package fr.ifremer.tutti.ui.swing.content.operation.fishing;
+
+/*
+ * #%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%
+ */
+
+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
+ * @since 0.3
+ */
+public class GearUseFeatureTableModel extends AbstractTuttiTableModel<GearUseFeatureRowModel> {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final ColumnIdentifier<GearUseFeatureRowModel> KEY = ColumnIdentifier.newId(
+ GearUseFeatureRowModel.PROPERTY_KEY,
+ n_("tutti.table.fishing.gearUseFeature.header.key"),
+ n_("tutti.table.fishing.gearUseFeature.header.key"));
+
+ public static final ColumnIdentifier<GearUseFeatureRowModel> VALUE = ColumnIdentifier.newId(
+ GearUseFeatureRowModel.PROPERTY_VALUE,
+ n_("tutti.table.fishing.gearUseFeature.header.value"),
+ n_("tutti.table.fishing.gearUseFeature.header.value"));
+
+ public GearUseFeatureTableModel(TableColumnModelExt columnModel) {
+ super(columnModel, false, false);
+ setNoneEditableCols(KEY);
+ }
+
+ @Override
+ public GearUseFeatureRowModel createNewRow() {
+ GearUseFeatureRowModel result = new GearUseFeatureRowModel();
+ return result;
+ }
+
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureRowModel.java (from rev 543, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentRowModel.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureRowModel.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureRowModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -0,0 +1,32 @@
+
+package fr.ifremer.tutti.ui.swing.content.operation.fishing;
+
+/*
+ * #%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%
+ */
+
+/** @author kmorin <kmorin(a)codelutin.com> */
+public class VesselUseFeatureRowModel extends AbstractCaracteristicRowModel<VesselUseFeatureRowModel> {
+
+ private static final long serialVersionUID = 1L;
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureTabUI.css (from rev 543, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUI.css)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureTabUI.css (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureTabUI.css 2013-03-06 08:11:58 UTC (rev 546)
@@ -0,0 +1,56 @@
+/*
+ * #%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%
+ */
+
+BeanComboBox {
+ i18nPrefix: "tutti.property.";
+}
+
+#newRowKey {
+ showReset: false;
+ property: selectedCaracteristic;
+ enabled: {!newRowKey.isEmpty()};
+}
+
+#addRow {
+ actionIcon: add;
+ enabled: {newRowKey.getSelectedItem() != null};
+}
+
+#vesselUseFeatureTable {
+ selectionMode: {ListSelectionModel.SINGLE_SELECTION};
+ selectionBackground: {null};
+ selectionForeground: {Color.BLACK};
+ sortable: false;
+}
+
+#tablePopup {
+ label: "tutti.title.batchActions";
+}
+
+#removeCaracteristicMenu {
+ text: "tutti.action.removeCaracteristic";
+ mnemonic: R;
+ actionIcon: batch-delete;
+ enabled: {model.isRemoveCaracteristicEnabled()};
+}
\ No newline at end of file
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureTabUI.jaxx (from rev 543, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUI.jaxx)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureTabUI.jaxx (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureTabUI.jaxx 2013-03-06 08:11:58 UTC (rev 546)
@@ -0,0 +1,81 @@
+<!--
+ #%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%
+ -->
+<Table
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<VesselUseFeatureTabUIModel, VesselUseFeatureTabUIHandler>'>
+
+ <import>
+ fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI
+ fr.ifremer.tutti.persistence.entities.referential.Caracteristic
+
+ jaxx.runtime.swing.editor.bean.BeanComboBox
+
+ org.jdesktop.swingx.JXTable
+
+ javax.swing.ListSelectionModel
+ java.awt.Color
+ </import>
+
+ <VesselUseFeatureTabUIHandler id='handler'
+ initializer='getContextValue(VesselUseFeatureTabUIHandler.class)'/>
+
+ <VesselUseFeatureTabUIModel id='model'
+ initializer='getContextValue(VesselUseFeatureTabUIModel.class)'/>
+
+ <JPopupMenu id='tablePopup'>
+ <JMenuItem id='removeCaracteristicMenu'
+ onActionPerformed='handler.removeCaracteristic()'/>
+ </JPopupMenu>
+
+ <row fill='both'>
+ <cell fill='both' weightx='1'>
+ <BeanComboBox 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='vesselUseFeatureTable'
+ onMouseClicked='handler.autoSelectRowInTable(event, tablePopup)'/>
+ </JScrollPane>
+ </cell>
+ </row>
+ <script><![CDATA[
+
+public VesselUseFeatureTabUI(EditFishingOperationUI parentUI) {
+ JAXXUtil.initContext(this, parentUI);
+ VesselUseFeatureTabUIHandler handler = new VesselUseFeatureTabUIHandler(parentUI, this);
+ setContextValue(handler);
+ handler.beforeInitUI();
+}
+
+protected void $afterCompleteSetup() {
+ handler.afterInitUI();
+}
+
+ ]]></script>
+</Table>
\ No newline at end of file
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureTabUIHandler.java (from rev 543, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureTabUIHandler.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureTabUIHandler.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -0,0 +1,128 @@
+package fr.ifremer.tutti.ui.swing.content.operation.fishing;
+
+/*
+ * #%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%
+ */
+
+import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+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.EditFishingOperationUI;
+import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueEditor;
+import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueRenderer;
+import jaxx.runtime.swing.editor.bean.BeanComboBox;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jdesktop.swingx.JXTable;
+import org.jdesktop.swingx.table.DefaultTableColumnModelExt;
+
+import java.util.List;
+
+/**
+ * @author kmorin
+ * @since 0.3
+ */
+public class VesselUseFeatureTabUIHandler extends AbstractCaracteristicTabUIHandler<VesselUseFeatureRowModel, VesselUseFeatureTabUIModel, VesselUseFeatureTableModel, VesselUseFeatureTabUI> {
+
+ private final static Log log =
+ LogFactory.getLog(VesselUseFeatureTabUIHandler.class);
+
+ public VesselUseFeatureTabUIHandler(EditFishingOperationUI parentUi,
+ VesselUseFeatureTabUI ui) {
+ super(parentUi, ui, VesselUseFeatureRowModel.PROPERTY_VALUE);
+ }
+
+ //------------------------------------------------------------------------//
+ //-- AbstractCaracteristicTabUIHandler methods --//
+ //------------------------------------------------------------------------//
+
+ @Override
+ protected BeanComboBox<Caracteristic> getKeyCombo() {
+ return ui.getNewRowKey();
+ }
+
+ @Override
+ protected VesselUseFeatureTabUIModel createModel() {
+ return new VesselUseFeatureTabUIModel();
+ }
+
+ @Override
+ protected CaracteristicMap getCaracteristics(FishingOperation operation) {
+ return operation.getVesselUseFeatures();
+ }
+
+ @Override
+ protected List<String> getProtocolPmfmIds(TuttiProtocol protocol) {
+ return protocol.getVesselUseFeaturePmfmId();
+ }
+
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiTableUIHandler methods --//
+ //------------------------------------------------------------------------//
+
+ @Override
+ public JXTable getTable() {
+ return ui.getVesselUseFeatureTable();
+ }
+
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiUIHandler methods --//
+ //------------------------------------------------------------------------//
+
+ @Override
+ public void afterInitUI() {
+ super.afterInitUI();
+
+ JXTable table = getTable();
+
+ // create table column model
+ DefaultTableColumnModelExt columnModel = new DefaultTableColumnModelExt();
+
+ {
+
+ addColumnToModel(columnModel,
+ null,
+ newTableCellRender(Caracteristic.class, DecoratorService.CARACTERISTIC_WITH_UNIT),
+ VesselUseFeatureTableModel.KEY);
+ }
+
+ {
+
+ addColumnToModel(columnModel,
+ new CaracteristicValueEditor(context),
+ new CaracteristicValueRenderer(context),
+ VesselUseFeatureTableModel.VALUE);
+ }
+
+ // create table model
+ VesselUseFeatureTableModel tableModel =
+ new VesselUseFeatureTableModel(columnModel);
+
+ table.setModel(tableModel);
+ table.setColumnModel(columnModel);
+ initTable(table);
+ }
+
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureTabUIModel.java (from rev 543, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIModel.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureTabUIModel.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureTabUIModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -0,0 +1,45 @@
+package fr.ifremer.tutti.ui.swing.content.operation.fishing;
+
+/*
+ * #%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%
+ */
+
+import static org.nuiton.i18n.I18n.n_;
+
+/**
+ * @author kmorin
+ * @since 0.3
+ */
+public class VesselUseFeatureTabUIModel extends AbstractCaracteristicTabUIModel<VesselUseFeatureRowModel, VesselUseFeatureTabUIModel> {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final String TITLE =
+ n_("tutti.label.tab.fishingOperation.vesselUseFeature");
+
+ @Override
+ public String getTitle() {
+ return TITLE;
+ }
+
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureTableModel.java (from rev 543, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTableModel.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureTableModel.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/VesselUseFeatureTableModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -0,0 +1,62 @@
+package fr.ifremer.tutti.ui.swing.content.operation.fishing;
+
+/*
+ * #%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%
+ */
+
+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
+ * @since 0.3
+ */
+public class VesselUseFeatureTableModel extends AbstractTuttiTableModel<VesselUseFeatureRowModel> {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final ColumnIdentifier<VesselUseFeatureRowModel> KEY = ColumnIdentifier.newId(
+ VesselUseFeatureRowModel.PROPERTY_KEY,
+ n_("tutti.table.fishing.vesselUseFeature.header.key"),
+ n_("tutti.table.fishing.vesselUseFeature.header.key"));
+
+ public static final ColumnIdentifier<VesselUseFeatureRowModel> VALUE = ColumnIdentifier.newId(
+ VesselUseFeatureRowModel.PROPERTY_VALUE,
+ n_("tutti.table.fishing.vesselUseFeature.header.value"),
+ n_("tutti.table.fishing.vesselUseFeature.header.value"));
+
+ public VesselUseFeatureTableModel(TableColumnModelExt columnModel) {
+ super(columnModel, false, false);
+ setNoneEditableCols(KEY);
+ }
+
+ @Override
+ public VesselUseFeatureRowModel createNewRow() {
+ VesselUseFeatureRowModel result = new VesselUseFeatureRowModel();
+ return result;
+ }
+
+}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentRowModel.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentRowModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,33 +0,0 @@
-
-package fr.ifremer.tutti.ui.swing.content.operation.fishing.environment;
-
-/*
- * #%L
- * Tutti :: UI
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 - 2013 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.CaracteristicRowModel;
-
-/** @author kmorin <kmorin(a)codelutin.com> */
-public class EnvironmentRowModel extends CaracteristicRowModel<EnvironmentRowModel> {
-
-}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUI.css 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUI.css 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,56 +0,0 @@
-/*
- * #%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%
- */
-
-BeanComboBox {
- i18nPrefix: "tutti.property.";
-}
-
-#newRowKey {
- showReset: false;
- property: selectedCaracteristic;
- enabled: {!newRowKey.isEmpty()};
-}
-
-#addRow {
- actionIcon: add;
- enabled: {newRowKey.getSelectedItem() != null};
-}
-
-#environmentTable {
- selectionMode: {ListSelectionModel.SINGLE_SELECTION};
- selectionBackground: {null};
- selectionForeground: {Color.BLACK};
- sortable: false;
-}
-
-#tablePopup {
- label: "tutti.title.batchActions";
-}
-
-#removeCaracteristicMenu {
- text: "tutti.action.removeCaracteristic";
- mnemonic: R;
- actionIcon: batch-delete;
- enabled: {model.isRemoveCaracteristicEnabled()};
-}
\ No newline at end of file
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUI.jaxx 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUI.jaxx 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,81 +0,0 @@
-<!--
- #%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%
- -->
-<Table
- implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<EnvironmentTabUIModel, EnvironmentTabUIHandler>'>
-
- <import>
- fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI
- fr.ifremer.tutti.persistence.entities.referential.Caracteristic
-
- jaxx.runtime.swing.editor.bean.BeanComboBox
-
- org.jdesktop.swingx.JXTable
-
- javax.swing.ListSelectionModel
- java.awt.Color
- </import>
-
- <EnvironmentTabUIHandler id='handler'
- initializer='getContextValue(EnvironmentTabUIHandler.class)'/>
-
- <EnvironmentTabUIModel id='model'
- initializer='getContextValue(EnvironmentTabUIModel.class)'/>
-
- <JPopupMenu id='tablePopup'>
- <JMenuItem id='removeCaracteristicMenu'
- onActionPerformed='handler.removeCaracteristic()'/>
- </JPopupMenu>
-
- <row fill='both'>
- <cell fill='both' weightx='1'>
- <BeanComboBox 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='environmentTable'
- onMouseClicked='handler.autoSelectRowInTable(event, tablePopup)'/>
- </JScrollPane>
- </cell>
- </row>
- <script><![CDATA[
-
-public EnvironmentTabUI(EditFishingOperationUI parentUI) {
- JAXXUtil.initContext(this, parentUI);
- EnvironmentTabUIHandler handler = new EnvironmentTabUIHandler(parentUI, this);
- setContextValue(handler);
- handler.beforeInitUI();
-}
-
-protected void $afterCompleteSetup() {
- handler.afterInitUI();
-}
-
- ]]></script>
-</Table>
\ No newline at end of file
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,129 +0,0 @@
-package fr.ifremer.tutti.ui.swing.content.operation.fishing.environment;
-
-/*
- * #%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%
- */
-
-import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
-import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
-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.EditFishingOperationUI;
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.CaracteristicTabUIHandler;
-import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueEditor;
-import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueRenderer;
-import jaxx.runtime.swing.editor.bean.BeanComboBox;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.jdesktop.swingx.JXTable;
-import org.jdesktop.swingx.table.DefaultTableColumnModelExt;
-
-import java.util.List;
-
-/**
- * @author kmorin
- * @since 0.3
- */
-public class EnvironmentTabUIHandler extends CaracteristicTabUIHandler<EnvironmentRowModel, EnvironmentTabUIModel, EnvironmentTableModel, EnvironmentTabUI> {
-
- private final static Log log =
- LogFactory.getLog(EnvironmentTabUIHandler.class);
-
- public EnvironmentTabUIHandler(EditFishingOperationUI parentUi,
- EnvironmentTabUI ui) {
- super(parentUi, ui, EnvironmentRowModel.PROPERTY_VALUE);
- }
-
- //------------------------------------------------------------------------//
- //-- CaracteristicTabUIHandler methods --//
- //------------------------------------------------------------------------//
-
- @Override
- protected BeanComboBox<Caracteristic> getKeyCombo() {
- return ui.getNewRowKey();
- }
-
- @Override
- protected EnvironmentTabUIModel createModel() {
- return new EnvironmentTabUIModel();
- }
-
- @Override
- protected CaracteristicMap getCaracteristics(FishingOperation operation) {
- return operation.getEnvironmentCaracteristics();
- }
-
- @Override
- protected List<String> getProtocolPmfmIds(TuttiProtocol protocol) {
- return protocol.getEnvironmentPmfmId();
- }
-
- //------------------------------------------------------------------------//
- //-- AbstractTuttiTableUIHandler methods --//
- //------------------------------------------------------------------------//
-
- @Override
- public JXTable getTable() {
- return ui.getEnvironmentTable();
- }
-
- //------------------------------------------------------------------------//
- //-- AbstractTuttiUIHandler methods --//
- //------------------------------------------------------------------------//
-
- @Override
- public void afterInitUI() {
- super.afterInitUI();
-
- JXTable table = getTable();
-
- // create table column model
- DefaultTableColumnModelExt columnModel = new DefaultTableColumnModelExt();
-
- {
-
- addColumnToModel(columnModel,
- null,
- newTableCellRender(Caracteristic.class, DecoratorService.CARACTERISTIC_WITH_UNIT),
- EnvironmentTableModel.KEY);
- }
-
- {
-
- addColumnToModel(columnModel,
- new CaracteristicValueEditor(context),
- new CaracteristicValueRenderer(context),
- EnvironmentTableModel.VALUE);
- }
-
- // create table model
- EnvironmentTableModel tableModel =
- new EnvironmentTableModel(columnModel);
-
- table.setModel(tableModel);
- table.setColumnModel(columnModel);
- initTable(table);
- }
-
-}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIModel.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,47 +0,0 @@
-package fr.ifremer.tutti.ui.swing.content.operation.fishing.environment;
-
-/*
- * #%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%
- */
-
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.CaracteristicTabUIModel;
-
-import static org.nuiton.i18n.I18n.n_;
-
-/**
- * @author kmorin
- * @since 0.3
- */
-public class EnvironmentTabUIModel extends CaracteristicTabUIModel<EnvironmentRowModel, EnvironmentTabUIModel> {
-
- private static final long serialVersionUID = 1L;
-
- public static final String TITLE =
- n_("tutti.label.tab.fishingOperation.environment");
-
- @Override
- public String getTitle() {
- return TITLE;
- }
-
-}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTableModel.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTableModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,62 +0,0 @@
-package fr.ifremer.tutti.ui.swing.content.operation.fishing.environment;
-
-/*
- * #%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%
- */
-
-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
- * @since 0.3
- */
-public class EnvironmentTableModel extends AbstractTuttiTableModel<EnvironmentRowModel> {
-
- private static final long serialVersionUID = 1L;
-
- public static final ColumnIdentifier<EnvironmentRowModel> KEY = ColumnIdentifier.newId(
- EnvironmentRowModel.PROPERTY_KEY,
- n_("tutti.table.fishing.environment.header.key"),
- n_("tutti.table.fishing.environment.header.key"));
-
- public static final ColumnIdentifier<EnvironmentRowModel> VALUE = ColumnIdentifier.newId(
- EnvironmentRowModel.PROPERTY_VALUE,
- n_("tutti.table.fishing.environment.header.value"),
- n_("tutti.table.fishing.environment.header.value"));
-
- public EnvironmentTableModel(TableColumnModelExt columnModel) {
- super(columnModel, false, false);
- setNoneEditableCols(KEY);
- }
-
- @Override
- public EnvironmentRowModel createNewRow() {
- EnvironmentRowModel result = new EnvironmentRowModel();
- return result;
- }
-
-}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingRowModel.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingRowModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,34 +0,0 @@
-
-package fr.ifremer.tutti.ui.swing.content.operation.fishing.gearshooting;
-
-/*
- * #%L
- * Tutti :: UI
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 - 2013 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.CaracteristicRowModel;
-
-/** @author kmorin <kmorin(a)codelutin.com> */
-public class GearShootingRowModel extends CaracteristicRowModel<GearShootingRowModel> {
-
- private static final long serialVersionUID = 1L;
-}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUI.css 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUI.css 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,56 +0,0 @@
-/*
- * #%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%
- */
-
-BeanComboBox {
- i18nPrefix: "tutti.property.";
-}
-
-#newRowKey {
- showReset: false;
- property: selectedCaracteristic;
- enabled: {!newRowKey.isEmpty()};
-}
-
-#addRow {
- actionIcon: add;
- enabled: {newRowKey.getSelectedItem() != null};
-}
-
-#gearShootingTable {
- selectionMode: {ListSelectionModel.SINGLE_SELECTION};
- selectionBackground: {null};
- selectionForeground: {Color.BLACK};
- sortable: false;
-}
-
-#tablePopup {
- label: "tutti.title.batchActions";
-}
-
-#removeCaracteristicMenu {
- text: "tutti.action.removeCaracteristic";
- mnemonic: R;
- actionIcon: batch-delete;
- enabled: {model.isRemoveCaracteristicEnabled()};
-}
\ No newline at end of file
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUI.jaxx 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUI.jaxx 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,80 +0,0 @@
-<!--
- #%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%
- -->
-<Table
- implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<GearShootingTabUIModel, GearShootingTabUIHandler>'>
-
- <import>
- fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI
- fr.ifremer.tutti.persistence.entities.referential.Caracteristic
-
- jaxx.runtime.swing.editor.bean.BeanComboBox
- org.jdesktop.swingx.JXTable
- javax.swing.ListSelectionModel
- java.awt.Color
- </import>
-
- <GearShootingTabUIHandler id='handler'
- initializer='getContextValue(GearShootingTabUIHandler.class)'/>
-
- <GearShootingTabUIModel id='model'
- initializer='getContextValue(GearShootingTabUIModel.class)'/>
-
- <JPopupMenu id='tablePopup'>
- <JMenuItem id='removeCaracteristicMenu'
- onActionPerformed='handler.removeCaracteristic()'/>
- </JPopupMenu>
-
- <row fill='both'>
- <cell fill='both' weightx='1'>
- <BeanComboBox 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='gearShootingTable'
- onMouseClicked='handler.autoSelectRowInTable(event, tablePopup)'/>
- </JScrollPane>
- </cell>
- </row>
- <script><![CDATA[
-
-public GearShootingTabUI(EditFishingOperationUI parentUI) {
- JAXXUtil.initContext(this, parentUI);
- GearShootingTabUIHandler handler = new GearShootingTabUIHandler(parentUI, this);
- setContextValue(handler);
- handler.beforeInitUI();
-}
-
-protected void $afterCompleteSetup() {
- handler.afterInitUI();
-}
-
- ]]></script>
-
-</Table>
\ No newline at end of file
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,164 +0,0 @@
-package fr.ifremer.tutti.ui.swing.content.operation.fishing.gearshooting;
-
-/*
- * #%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%
- */
-
-import com.google.common.base.Preconditions;
-import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
-import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
-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.EditFishingOperationUI;
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.CaracteristicTabUIHandler;
-import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueEditor;
-import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueRenderer;
-import jaxx.runtime.swing.editor.bean.BeanComboBox;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.jdesktop.swingx.JXTable;
-import org.jdesktop.swingx.table.DefaultTableColumnModelExt;
-
-import java.util.List;
-
-/**
- * @author kmorin
- * @since 0.3
- */
-public class GearShootingTabUIHandler extends CaracteristicTabUIHandler<GearShootingRowModel, GearShootingTabUIModel, GearShootingTableModel, GearShootingTabUI> {
-
- private final static Log log =
- LogFactory.getLog(GearShootingTabUIHandler.class);
-
- public GearShootingTabUIHandler(EditFishingOperationUI parentUi,
- GearShootingTabUI ui) {
- super(parentUi, ui, GearShootingRowModel.PROPERTY_VALUE);
- }
-
- //------------------------------------------------------------------------//
- //-- CaracteristicTabUIHandler methods --//
- //------------------------------------------------------------------------//
-
- @Override
- protected BeanComboBox<Caracteristic> getKeyCombo() {
- return ui.getNewRowKey();
- }
-
- @Override
- protected GearShootingTabUIModel createModel() {
- return new GearShootingTabUIModel();
- }
-
- @Override
- protected CaracteristicMap getCaracteristics(FishingOperation operation) {
- return operation.getGearShootingCaracteristics();
- }
-
- @Override
- protected List<String> getProtocolPmfmIds(TuttiProtocol protocol) {
- return protocol.getGearPmfmId();
- }
-
- //------------------------------------------------------------------------//
- //-- AbstractTuttiTableUIHandler methods --//
- //------------------------------------------------------------------------//
-
- @Override
- public JXTable getTable() {
- return ui.getGearShootingTable();
- }
-
- //------------------------------------------------------------------------//
- //-- AbstractTuttiUIHandler methods --//
- //------------------------------------------------------------------------//
-
- @Override
- public void afterInitUI() {
- super.afterInitUI();
-
- JXTable table = getTable();
-
- // create table column model
- DefaultTableColumnModelExt columnModel =
- new DefaultTableColumnModelExt();
-
- {
-
- addColumnToModel(columnModel,
- null,
- newTableCellRender(Caracteristic.class, DecoratorService.CARACTERISTIC_WITH_UNIT),
- GearShootingTableModel.KEY);
- }
-
- {
-
- addColumnToModel(columnModel,
- new CaracteristicValueEditor(context),
- new CaracteristicValueRenderer(context),
- GearShootingTableModel.VALUE);
- }
-
- // create table model
- GearShootingTableModel tableModel =
- new GearShootingTableModel(columnModel);
-
- table.setModel(tableModel);
- table.setColumnModel(columnModel);
-
- initTable(table);
- }
-
- //------------------------------------------------------------------------//
- //-- Public methods --//
- //------------------------------------------------------------------------//
-
- public void removeCaracteristic() {
- int rowIndex = getTable().getSelectedRow();
-
- Preconditions.checkState(rowIndex != -1,
- "Cant remove caracteristic if no caracteristic selected");
-
- GearShootingRowModel row = getTableModel().getEntry(rowIndex);
-
- CaracteristicMap caracteristicMap = getModel().getCaracteristicMap();
- if (caracteristicMap != null) {
- caracteristicMap.remove(row.getKey());
- }
-
- //add the row in the combo
- BeanComboBox keyCombo = ui.getNewRowKey();
- keyCombo.addItem(row.getKey());
- selectFirstInCombo(keyCombo);
-
- // remove the row from the model
- getModel().getRows().remove(rowIndex);
-
- // refresh all the table
- getTableModel().fireTableRowsDeleted(rowIndex, rowIndex);
-
- getModel().removeRowInError(row);
-
- }
-
-}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIModel.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,48 +0,0 @@
-package fr.ifremer.tutti.ui.swing.content.operation.fishing.gearshooting;
-
-/*
- * #%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%
- */
-
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.CaracteristicTabUIModel;
-
-import static org.nuiton.i18n.I18n.n_;
-
-
-/**
- * @author kmorin
- * @since 0.3
- */
-public class GearShootingTabUIModel extends CaracteristicTabUIModel<GearShootingRowModel, GearShootingTabUIModel> {
-
- private static final long serialVersionUID = 1L;
-
- public static final String TITLE =
- n_("tutti.label.tab.fishingOperation.gearShooting");
-
- @Override
- public String getTitle() {
- return TITLE;
- }
-
-}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTableModel.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTableModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,62 +0,0 @@
-package fr.ifremer.tutti.ui.swing.content.operation.fishing.gearshooting;
-
-/*
- * #%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%
- */
-
-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
- * @since 0.3
- */
-public class GearShootingTableModel extends AbstractTuttiTableModel<GearShootingRowModel> {
-
- private static final long serialVersionUID = 1L;
-
- public static final ColumnIdentifier<GearShootingRowModel> KEY = ColumnIdentifier.newId(
- GearShootingRowModel.PROPERTY_KEY,
- n_("tutti.table.fishing.gearShooting.header.key"),
- n_("tutti.table.fishing.gearShooting.header.key"));
-
- public static final ColumnIdentifier<GearShootingRowModel> VALUE = ColumnIdentifier.newId(
- GearShootingRowModel.PROPERTY_VALUE,
- n_("tutti.table.fishing.gearShooting.header.value"),
- n_("tutti.table.fishing.gearShooting.header.value"));
-
- public GearShootingTableModel(TableColumnModelExt columnModel) {
- super(columnModel, false, false);
- setNoneEditableCols(KEY);
- }
-
- @Override
- public GearShootingRowModel createNewRow() {
- GearShootingRowModel result = new GearShootingRowModel();
- return result;
- }
-
-}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyRowModel.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyRowModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,96 +0,0 @@
-package fr.ifremer.tutti.ui.swing.content.operation.fishing.hydrology;
-
-/*
- * #%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%
- */
-
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.CaracteristicRowModel;
-
-/**
- * @author kmorin
- * @since 0.3
- */
-public class HydrologyRowModel extends CaracteristicRowModel<HydrologyRowModel> {
-
- private static final long serialVersionUID = 1L;
-//
-// public static final String PROPERTY_GEAR_SHOOTING_START_VALUE = "gearShootingStartValue";
-//
-// public static final String PROPERTY_GEAR_SHOOTING_END_VALUE = "gearShootingEndValue";
-//
-// public static final String PROPERTY_AVERAGE_VALUE = "averageValue";
-//
-// protected Serializable gearShootingStartValue;
-//
-// protected Serializable gearShootingEndValue;
-//
-// protected Serializable averageValue;
-
-// public HydrologyRowModel() {
-// super();
-// }
-//
-// public HydrologyRowModel(Caracteristic key) {
-// this(key, null, null, null);
-// }
-//
-// public HydrologyRowModel(Caracteristic key, Serializable gearShootingStartValue,
-// Serializable gearShootingEndValue, Serializable averageValue) {
-// this();
-// this.key = key;
-// this.gearShootingStartValue = gearShootingStartValue;
-// this.gearShootingEndValue = gearShootingEndValue;
-// this.averageValue = averageValue;
-// }
-//
-// public Serializable getGearShootingStartValue() {
-// return gearShootingStartValue;
-// }
-//
-// public void setGearShootingStartValue(Serializable gearShootingStartValue) {
-// Object oldValue = getGearShootingStartValue();
-// this.gearShootingStartValue = gearShootingStartValue;
-// firePropertyChange(PROPERTY_GEAR_SHOOTING_START_VALUE, oldValue, gearShootingStartValue);
-// }
-//
-// public Serializable getGearShootingEndValue() {
-// return gearShootingEndValue;
-// }
-//
-// public void setGearShootingEndValue(Serializable gearShootingEndValue) {
-// Object oldValue = getGearShootingEndValue();
-// this.gearShootingEndValue = gearShootingEndValue;
-// firePropertyChange(PROPERTY_GEAR_SHOOTING_END_VALUE, oldValue, gearShootingEndValue);
-// }
-//
-// public Serializable getAverageValue() {
-// return averageValue;
-// }
-//
-// public void setAverageValue(Serializable averageValue) {
-// Object oldValue = getAverageValue();
-// this.averageValue = averageValue;
-// firePropertyChange(PROPERTY_AVERAGE_VALUE, oldValue, averageValue);
-// }
-
-}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUI.css 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUI.css 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,56 +0,0 @@
-/*
- * #%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%
- */
-
-BeanComboBox {
- i18nPrefix: "tutti.property.";
-}
-
-#newRowKey {
- showReset: false;
- property: selectedCaracteristic;
- enabled: {!newRowKey.isEmpty()};
-}
-
-#addRow {
- actionIcon: add;
- enabled: {newRowKey.getSelectedItem() != null};
-}
-
-#hydrologyTable {
- selectionMode: {ListSelectionModel.SINGLE_SELECTION};
- selectionBackground: {null};
- selectionForeground: {Color.BLACK};
- sortable: false;
-}
-
-#tablePopup {
- label: "tutti.title.batchActions";
-}
-
-#removeCaracteristicMenu {
- text: "tutti.action.removeCaracteristic";
- mnemonic: R;
- actionIcon: batch-delete;
- enabled: {model.isRemoveCaracteristicEnabled()};
-}
\ No newline at end of file
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUI.jaxx 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUI.jaxx 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,80 +0,0 @@
-<!--
- #%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%
- -->
-<Table
- implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<HydrologyTabUIModel, HydrologyTabUIHandler>'>
-
- <import>
- fr.ifremer.tutti.persistence.entities.referential.Caracteristic
-
- fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI
-
- jaxx.runtime.swing.editor.bean.BeanComboBox
-
- org.jdesktop.swingx.JXTable
-
- javax.swing.ListSelectionModel
- java.awt.Color
- </import>
-
- <HydrologyTabUIHandler id='handler'
- initializer='getContextValue(HydrologyTabUIHandler.class)'/>
-
- <HydrologyTabUIModel id='model'
- initializer='getContextValue(HydrologyTabUIModel.class)'/>
- <JPopupMenu id='tablePopup'>
- <JMenuItem id='removeCaracteristicMenu'
- onActionPerformed='handler.removeCaracteristic()'/>
- </JPopupMenu>
-
- <row fill='both'>
- <cell fill='both' weightx='1'>
- <BeanComboBox 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='hydrologyTable'
- onMouseClicked='handler.autoSelectRowInTable(event, tablePopup)'/>
- </JScrollPane>
- </cell>
- </row>
- <script><![CDATA[
-
-public HydrologyTabUI(EditFishingOperationUI parentUI) {
- JAXXUtil.initContext(this, parentUI);
- HydrologyTabUIHandler handler = new HydrologyTabUIHandler(parentUI, this);
- setContextValue(handler);
- handler.beforeInitUI();
-}
-
-protected void $afterCompleteSetup() {
- handler.afterInitUI();
-}
- ]]></script>
-</Table>
\ No newline at end of file
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,345 +0,0 @@
-package fr.ifremer.tutti.ui.swing.content.operation.fishing.hydrology;
-
-/*
- * #%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%
- */
-
-import com.google.common.base.Preconditions;
-import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
-import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
-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.EditFishingOperationUI;
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.CaracteristicTabUIHandler;
-import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueEditor;
-import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueRenderer;
-import jaxx.runtime.swing.editor.bean.BeanComboBox;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.jdesktop.swingx.JXTable;
-import org.jdesktop.swingx.table.DefaultTableColumnModelExt;
-
-import java.util.List;
-
-/**
- * @author kmorin
- * @since 0.3
- */
-public class HydrologyTabUIHandler extends CaracteristicTabUIHandler<HydrologyRowModel, HydrologyTabUIModel, HydrologyTableModel, HydrologyTabUI> {
-
- private final static Log log =
- LogFactory.getLog(HydrologyTabUIHandler.class);
-
-// protected Map<Caracteristic, Map<Type, Caracteristic>> availableGlobalCaracteristics;
-
- public HydrologyTabUIHandler(EditFishingOperationUI parentUi,
- HydrologyTabUI ui) {
- super(parentUi, ui,
- HydrologyRowModel.PROPERTY_VALUE
-// HydrologyRowModel.PROPERTY_GEAR_SHOOTING_START_VALUE,
-// HydrologyRowModel.PROPERTY_AVERAGE_VALUE,
-// HydrologyRowModel.PROPERTY_GEAR_SHOOTING_END_VALUE
- );
- }
-
-
- //------------------------------------------------------------------------//
- //-- CaracteristicTabUIHandler methods --//
- //------------------------------------------------------------------------//
-
- @Override
- protected BeanComboBox<Caracteristic> getKeyCombo() {
- return ui.getNewRowKey();
- }
-
- @Override
- protected HydrologyTabUIModel createModel() {
- return new HydrologyTabUIModel();
- }
-
- @Override
- protected CaracteristicMap getCaracteristics(FishingOperation operation) {
- return operation.getHydrologyCaracteristics();
- }
-
- @Override
- protected List<String> getProtocolPmfmIds(TuttiProtocol protocol) {
- return protocol.getHydrologyPmfmId();
- }
-
- //------------------------------------------------------------------------//
- //-- AbstractTuttiTableUIHandler methods --//
- //------------------------------------------------------------------------//
-
- @Override
- public JXTable getTable() {
- return ui.getHydrologyTable();
- }
-
-// @Override
-// protected boolean isRowValid(HydrologyRowModel row) {
-// //TODO
-// return row.getGearShootingStartValue() != null ||
-// row.getGearShootingEndValue() != null ||
-// row.getAverageValue() != null;
-// }
-
- //------------------------------------------------------------------------//
- //-- AbstractTuttiUIHandler methods --//
- //------------------------------------------------------------------------//
-
-// @Override
-// public void beforeInitUI() {
-// HydrologyTabUIModel model = new HydrologyTabUIModel();
-// ui.setContextValue(model);
-//
-// model.addPropertyChangeListener(HydrologyTabUIModel.PROPERTY_AVAILABLE_CARACTERISTICS, new PropertyChangeListener() {
-//
-// public void propertyChange(PropertyChangeEvent evt) {
-// List<Caracteristic> hydrologyPmfm = (List<Caracteristic>) evt.getNewValue();
-// availableGlobalCaracteristics = Maps.newHashMap();
-// if (hydrologyPmfm != null) {
-// for (Caracteristic caracteristic : hydrologyPmfm) {
-// String name = HydrologicCaracteristicUtil.getGlobalName(caracteristic.getName());
-// Caracteristic globalCaracteristic = HydrologicCaracteristicUtil.createGlobalCaracteristic(name, caracteristic);
-// Map<Type, Caracteristic> values = availableGlobalCaracteristics.get(globalCaracteristic);
-// if (values == null) {
-// values = Maps.newHashMap();
-// availableGlobalCaracteristics.put(globalCaracteristic, values);
-// }
-// Type type = HydrologicCaracteristicUtil.getTypeOfCaracteristic(caracteristic);
-// values.put(type, caracteristic);
-// }
-// }
-// }
-// });
-// }
-
- @Override
- public void afterInitUI() {
- super.afterInitUI();
-
- JXTable table = getTable();
-
- // create table column model
- DefaultTableColumnModelExt columnModel =
- new DefaultTableColumnModelExt();
-
- {
-
- addColumnToModel(columnModel,
- null,
- newTableCellRender(Caracteristic.class, DecoratorService.CARACTERISTIC_WITH_UNIT),
- HydrologyTableModel.KEY);
- }
-
- {
- addColumnToModel(columnModel,
- new CaracteristicValueEditor(context),
- new CaracteristicValueRenderer(context),
- HydrologyTableModel.VALUE);
- }
-
-// {
-//
-// addColumnToModel(columnModel,
-// new CaracteristicValueEditor(context),
-// new CaracteristicValueRenderer(context),
-// HydrologyTableModel.GEAR_SHOOTING_START_VALUE);
-// }
-//
-// {
-//
-// addColumnToModel(columnModel,
-// new CaracteristicValueEditor(context),
-// new CaracteristicValueRenderer(context),
-// HydrologyTableModel.GEAR_SHOOTING_END_VALUE);
-// }
-//
-// {
-//
-// addColumnToModel(columnModel,
-// new CaracteristicValueEditor(context),
-// new CaracteristicValueRenderer(context),
-// HydrologyTableModel.AVERAGE_VALUE);
-// }
-
- // create table model
- HydrologyTableModel tableModel =
- new HydrologyTableModel(columnModel);
-
- table.setModel(tableModel);
- table.setColumnModel(columnModel);
- initTable(table);
- }
-
- //------------------------------------------------------------------------//
- //-- Public methods --//
- //------------------------------------------------------------------------//
-
-// @Override
-// public void reset(FishingOperation fishingOperation) {
-// HydrologyTableModel tableModel = getTableModel();
-// HydrologyTabUIModel model = getModel();
-//
-// CaracteristicMap hydrologyCaracteristics = fishingOperation.getHydrologyCaracteristics();
-// if (hydrologyCaracteristics == null) {
-// hydrologyCaracteristics = new CaracteristicMap();
-// }
-// model.setCaracteristicMap(hydrologyCaracteristics);
-//
-// TuttiProtocol protocol = TuttiUIUtil.getProtocol(ui);
-// List<String> gearPmfmIds = Lists.newArrayList();
-// if (protocol != null) {
-// List<String> protocolHydrologyPmfmId = protocol.getHydrologyPmfmId();
-// if (protocolHydrologyPmfmId != null) {
-// gearPmfmIds.addAll(protocolHydrologyPmfmId);
-// }
-// }
-//
-// List<HydrologyRowModel> rows = Lists.newArrayList();
-// List<Caracteristic> caracteristicList = Lists.newArrayList();
-// List<Caracteristic> selectedCaracteristics = Lists.newArrayList(hydrologyCaracteristics.keySet());
-//
-// List<Caracteristic> availableCaracteristics = model.getAvailableCaracteristics();
-// for (String id : gearPmfmIds) {
-// Caracteristic caracteristic = TuttiEntities.findById(availableCaracteristics, id);
-// if (!selectedCaracteristics.contains(caracteristic)) {
-// selectedCaracteristics.add(caracteristic);
-// }
-// }
-//
-// Set<Caracteristic> globalCaracteristics = availableGlobalCaracteristics.keySet();
-//
-// for (Caracteristic availableCaracteristic : globalCaracteristics) {
-// Map<Type, Caracteristic> caracteristics = availableGlobalCaracteristics.get(availableCaracteristic);
-//
-// //should add the global caracteristic to the combo or to the table?
-// boolean selectedCaracteristic = false;
-// for (Caracteristic caracteristic : caracteristics.values()) {
-// selectedCaracteristic |= selectedCaracteristics.contains(caracteristic);
-// }
-//
-// if (selectedCaracteristic) {
-// HydrologyRowModel row = tableModel.createNewRow();
-// row.setKey(availableCaracteristic);
-// row.setGearShootingStartValue(hydrologyCaracteristics.get(caracteristics.get(Type.START)));
-// row.setGearShootingEndValue(hydrologyCaracteristics.get(caracteristics.get(Type.END)));
-// row.setAverageValue(hydrologyCaracteristics.get(caracteristics.get(Type.AVERAGE)));
-// rows.add(row);
-//
-// } else {
-// caracteristicList.add(availableCaracteristic);
-// }
-// }
-//
-// model.setRows(rows);
-//
-// ui.getNewRowKey().setData(caracteristicList);
-// selectFirstInCombo(ui.getNewRowKey());
-// model.setModify(false);
-// }
-
- @Override
- public void removeCaracteristic() {
- int rowIndex = getTable().getSelectedRow();
-
- Preconditions.checkState(rowIndex != -1,
- "Cant remove caracteristic if no caracteristic selected");
-
- HydrologyRowModel row = getTableModel().getEntry(rowIndex);
-
- CaracteristicMap caracteristicMap = getModel().getCaracteristicMap();
- if (caracteristicMap != null) {
- caracteristicMap.remove(row.getKey());
- }
-
- //add the row in the combo
- BeanComboBox keyCombo = ui.getNewRowKey();
- keyCombo.addItem(row.getKey());
- selectFirstInCombo(keyCombo);
-
- // remove the row from the model
- getModel().getRows().remove(rowIndex);
-
- // refresh all the table
- getTableModel().fireTableRowsDeleted(rowIndex, rowIndex);
-
- getModel().removeRowInError(row);
-
-// Map<Type, Caracteristic> caracteristics = availableGlobalCaracteristics.get(row.getKey());
-// for (Type type : caracteristics.keySet()) {
-// Caracteristic caracteristic = caracteristics.get(type);
-//
-// CaracteristicMap caracteristicMap = getModel().getCaracteristicMap();
-// if (caracteristicMap != null) {
-// caracteristicMap.remove(caracteristic);
-// }
-// }
-//
-// //add the row in the combo
-// BeanComboBox keyCombo = ui.getNewRowKey();
-// keyCombo.addItem(row.getKey());
-// selectFirstInCombo(keyCombo);
-//
-// // remove the row from the model
-// getModel().getRows().remove(rowIndex);
-//
-// // refresh all the table
-// getTableModel().fireTableRowsDeleted(rowIndex, rowIndex);
-//
-// getModel().removeRowInError(row);
- }
-
- //------------------------------------------------------------------------//
- //-- Protected methods --//
- //------------------------------------------------------------------------//
-
-// @Override
-// protected void saveRow(HydrologyRowModel row) {
-// if (row.isValid()) {
-// CaracteristicMap caracteristicMap = getModel().getCaracteristicMap();
-// Preconditions.checkNotNull(caracteristicMap);
-//
-// Map<Type, Caracteristic> caracteristics = availableGlobalCaracteristics.get(row.getKey());
-// CaracteristicMap map = new CaracteristicMap();
-// for (Type type : caracteristics.keySet()) {
-// Serializable value = null;
-// switch (type) {
-// case START:
-// value = row.getGearShootingStartValue();
-// break;
-// case END:
-// value = row.getGearShootingEndValue();
-// break;
-// case AVERAGE:
-// value = row.getAverageValue();
-// }
-// map.put(caracteristics.get(type), value);
-// }
-// caracteristicMap.putAll(map);
-// }
-// }
-
-}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIModel.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,47 +0,0 @@
-package fr.ifremer.tutti.ui.swing.content.operation.fishing.hydrology;
-
-/*
- * #%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%
- */
-
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.CaracteristicTabUIModel;
-
-import static org.nuiton.i18n.I18n.n_;
-
-
-/**
- * @author kmorin
- * @since 0.3
- */
-public class HydrologyTabUIModel extends CaracteristicTabUIModel<HydrologyRowModel, HydrologyTabUIModel> {
-
- private static final long serialVersionUID = 1L;
-
- public static final String TITLE =
- n_("tutti.label.tab.fishingOperation.hydrology");
-
- @Override
- public String getTitle() {
- return TITLE;
- }
-}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTableModel.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTableModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -1,77 +0,0 @@
-package fr.ifremer.tutti.ui.swing.content.operation.fishing.hydrology;
-
-/*
- * #%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%
- */
-
-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
- * @since 0.3
- */
-public class HydrologyTableModel extends AbstractTuttiTableModel<HydrologyRowModel> {
-
- private static final long serialVersionUID = 1L;
-
- public static final ColumnIdentifier<HydrologyRowModel> KEY = ColumnIdentifier.newId(
- HydrologyRowModel.PROPERTY_KEY,
- n_("tutti.table.fishing.hydrology.header.key"),
- n_("tutti.table.fishing.hydrology.header.key"));
-
- public static final ColumnIdentifier<HydrologyRowModel> VALUE = ColumnIdentifier.newId(
- HydrologyRowModel.PROPERTY_VALUE,
- n_("tutti.table.fishing.hydrology.header.value"),
- n_("tutti.table.fishing.hydrology.header.value"));
-
-// public static final ColumnIdentifier<HydrologyRowModel> GEAR_SHOOTING_START_VALUE = ColumnIdentifier.newId(
-// HydrologyRowModel.PROPERTY_GEAR_SHOOTING_START_VALUE,
-// n_("tutti.table.fishing.hydrology.header.gearShootingStartValue"),
-// n_("tutti.table.fishing.hydrology.header.gearShootingStartValue"));
-//
-// public static final ColumnIdentifier<HydrologyRowModel> GEAR_SHOOTING_END_VALUE = ColumnIdentifier.newId(
-// HydrologyRowModel.PROPERTY_GEAR_SHOOTING_END_VALUE,
-// n_("tutti.table.fishing.hydrology.header.gearShootingEndValue"),
-// n_("tutti.table.fishing.hydrology.header.gearShootingEndValue"));
-//
-// public static final ColumnIdentifier<HydrologyRowModel> AVERAGE_VALUE = ColumnIdentifier.newId(
-// HydrologyRowModel.PROPERTY_AVERAGE_VALUE,
-// n_("tutti.table.fishing.hydrology.header.averageValue"),
-// n_("tutti.table.fishing.hydrology.header.averageValue"));
-
- public HydrologyTableModel(TableColumnModelExt columnModel) {
- super(columnModel, false, false);
- setNoneEditableCols(KEY);
- }
-
- @Override
- public HydrologyRowModel createNewRow() {
- HydrologyRowModel result = new HydrologyRowModel();
- return result;
- }
-
-}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/AddSpeciesProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/AddSpeciesProtocolAction.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/AddSpeciesProtocolAction.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -55,8 +55,6 @@
EditProtocolUI ui = getUI();
- EditProtocolUIHandler handler = getHandler();
-
EditProtocolSpeciesTableModel tableModel = handler.getTableModel();
Species species = (Species) ui.getSpeciesComboBox().getSelectedItem();
Preconditions.checkNotNull(
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -46,7 +46,6 @@
n_("tutti.table.protocol.species.header.speciesSurveyCode"),
n_("tutti.table.protocol.species.header.speciesSurveyCode.tip"));
-
public static final ColumnIdentifier<EditProtocolSpeciesRowModel> SIZE_ENABLED = ColumnIdentifier.newId(
EditProtocolSpeciesRowModel.PROPERTY_SIZE_ENABLED,
n_("tutti.table.protocol.species.header.size"),
@@ -87,7 +86,6 @@
n_("tutti.table.protocol.species.header.calcifySample"),
n_("tutti.table.protocol.species.header.calcifySample.tip"));
-
private static final long serialVersionUID = 1L;
public EditProtocolSpeciesTableModel(TableColumnModelExt columnModel) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 2013-03-06 08:11:58 UTC (rev 546)
@@ -129,21 +129,16 @@
_tuttiAction: {ExportAllCaracteristicAction.class};
}
-#gearList {
- property: gearPmfm;
+#gearUseFeatureList {
+ property: gearUseFeaturePmfm;
beanType: {Caracteristic.class};
}
-#environmentList {
- property: environmentPmfm;
+#vesselUseFeatureList {
+ property: vesselUseFeaturePmfm;
beanType: {Caracteristic.class};
}
-#hydrologyList {
- property: hydrologyPmfm;
- beanType: {Caracteristic.class};
-}
-
#lengthClassesList {
property: lengthClassesPmfm;
beanType: {Caracteristic.class};
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-03-06 08:11:58 UTC (rev 546)
@@ -121,15 +121,12 @@
<tab title='tutti.label.tab.protocol.caracteristic.lengthClasses'>
<BeanDoubleList id='lengthClassesList' genericType='Caracteristic'/>
</tab>
- <tab title='tutti.label.tab.protocol.caracteristic.gear'>
- <BeanDoubleList id='gearList' genericType='Caracteristic'/>
+ <tab title='tutti.label.tab.protocol.caracteristic.gearUseFeature'>
+ <BeanDoubleList id='gearUseFeatureList' genericType='Caracteristic'/>
</tab>
- <tab title='tutti.label.tab.protocol.caracteristic.environment'>
- <BeanDoubleList id='environmentList' genericType='Caracteristic'/>
+ <tab title='tutti.label.tab.protocol.caracteristic.vesselUseFeature'>
+ <BeanDoubleList id='vesselUseFeatureList' genericType='Caracteristic'/>
</tab>
- <tab title='tutti.label.tab.protocol.caracteristic.hydrology'>
- <BeanDoubleList id='hydrologyList' genericType='Caracteristic'/>
- </tab>
</JTabbedPane>
</JPanel>
</tab>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -304,21 +304,16 @@
Lists.newArrayList(model.getCaracteristics()),
model.getLengthClassesPmfmId());
- initDoubleList(EditProtocolUIModel.PROPERTY_GEAR_PMFM_ID,
- ui.getGearList(),
+ initDoubleList(EditProtocolUIModel.PROPERTY_GEAR_USE_FEATURE_PMFM_ID,
+ ui.getGearUseFeatureList(),
Lists.newArrayList(model.getCaracteristics()),
- model.getGearPmfmId());
+ model.getGearUseFeaturePmfmId());
- initDoubleList(EditProtocolUIModel.PROPERTY_ENVIRONMENT_PMFM_ID,
- ui.getEnvironmentList(),
+ initDoubleList(EditProtocolUIModel.PROPERTY_VESSEL_USE_FEATURE_PMFM_ID,
+ ui.getVesselUseFeatureList(),
Lists.newArrayList(model.getCaracteristics()),
- model.getEnvironmentPmfmId());
+ model.getVesselUseFeaturePmfmId());
- initDoubleList(EditProtocolUIModel.PROPERTY_HYDROLOGY_PMFM_ID,
- ui.getHydrologyList(),
- Lists.newArrayList(model.getCaracteristics()),
- model.getHydrologyPmfmId());
-
// if new protocol can already cancel his creation
model.setModify(model.isCreate());
@@ -405,17 +400,13 @@
updateListener = (UpdateSelectedList) ui.getLengthClassesList().getClientProperty("_updateListener");
model.addPropertyChangeListener(id, updateListener);
- id = (String) ui.getEnvironmentList().getClientProperty("_updateListenerId");
- updateListener = (UpdateSelectedList) ui.getEnvironmentList().getClientProperty("_updateListener");
+ id = (String) ui.getVesselUseFeatureList().getClientProperty("_updateListenerId");
+ updateListener = (UpdateSelectedList) ui.getVesselUseFeatureList().getClientProperty("_updateListener");
model.addPropertyChangeListener(id, updateListener);
- id = (String) ui.getGearList().getClientProperty("_updateListenerId");
- updateListener = (UpdateSelectedList) ui.getGearList().getClientProperty("_updateListener");
+ id = (String) ui.getGearUseFeatureList().getClientProperty("_updateListenerId");
+ updateListener = (UpdateSelectedList) ui.getGearUseFeatureList().getClientProperty("_updateListener");
model.addPropertyChangeListener(id, updateListener);
-
- id = (String) ui.getHydrologyList().getClientProperty("_updateListenerId");
- updateListener = (UpdateSelectedList) ui.getHydrologyList().getClientProperty("_updateListener");
- model.addPropertyChangeListener(id, updateListener);
}
public void removeDoubleListListeners() {
@@ -428,17 +419,13 @@
model.removePropertyChangeListener(id, updateListener);
- id = (String) ui.getEnvironmentList().getClientProperty("_updateListenerId");
- updateListener = (UpdateSelectedList) ui.getEnvironmentList().getClientProperty("_updateListener");
+ id = (String) ui.getVesselUseFeatureList().getClientProperty("_updateListenerId");
+ updateListener = (UpdateSelectedList) ui.getVesselUseFeatureList().getClientProperty("_updateListener");
model.removePropertyChangeListener(id, updateListener);
- id = (String) ui.getGearList().getClientProperty("_updateListenerId");
- updateListener = (UpdateSelectedList) ui.getGearList().getClientProperty("_updateListener");
+ id = (String) ui.getGearUseFeatureList().getClientProperty("_updateListenerId");
+ updateListener = (UpdateSelectedList) ui.getGearUseFeatureList().getClientProperty("_updateListener");
model.removePropertyChangeListener(id, updateListener);
-
- id = (String) ui.getHydrologyList().getClientProperty("_updateListenerId");
- updateListener = (UpdateSelectedList) ui.getHydrologyList().getClientProperty("_updateListener");
- model.removePropertyChangeListener(id, updateListener);
}
public Species openSelectOtherSpeciesDialog(String title, List<Species> species) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -52,12 +52,10 @@
public static final String PROPERTY_LENGTH_CLASSES_PMFM_ID = "lengthClassesPmfmId";
- public static final String PROPERTY_GEAR_PMFM_ID = "gearPmfmId";
+ public static final String PROPERTY_GEAR_USE_FEATURE_PMFM_ID = "gearUseFeaturePmfmId";
- public static final String PROPERTY_ENVIRONMENT_PMFM_ID = "environmentPmfmId";
+ public static final String PROPERTY_VESSEL_USE_FEATURE_PMFM_ID = "vesselUseFeaturePmfmId";
- public static final String PROPERTY_HYDROLOGY_PMFM_ID = "hydrologyPmfmId";
-
public static final String PROPERTY_REMOVE_SPECIES_ENABLED = "removeSpeciesEnabled";
public static final String PROPERTY_IMPORTED = "imported";
@@ -70,12 +68,10 @@
protected List<String> lengthClassesPmfmId;
- protected List<String> gearPmfmId;
+ protected List<String> gearUseFeaturePmfmId;
- protected List<String> environmentPmfmId;
+ protected List<String> vesselUseFeaturePmfmId;
- protected List<String> hydrologyPmfmId;
-
/**
* Flag when a incoming protocol is imported.
*
@@ -157,51 +153,36 @@
setLengthClassesPmfmId(ids);
}
- public List<String> getGearPmfmId() {
- return gearPmfmId;
+ public List<String> getGearUseFeaturePmfmId() {
+ return gearUseFeaturePmfmId;
}
- public void setGearPmfmId(List<String> gearPmfmId) {
- Object oldValue = getGearPmfmId();
- this.gearPmfmId = gearPmfmId;
- firePropertyChange(PROPERTY_GEAR_PMFM_ID, oldValue, gearPmfmId);
+ public void setGearUseFeaturePmfmId(List<String> gearUseFeaturePmfmId) {
+ Object oldValue = getGearUseFeaturePmfmId();
+ this.gearUseFeaturePmfmId = gearUseFeaturePmfmId;
+ firePropertyChange(PROPERTY_GEAR_USE_FEATURE_PMFM_ID, oldValue, gearUseFeaturePmfmId);
}
- public void setGearPmfm(List<Caracteristic> gearPmfm) {
- List<String> ids = TuttiEntities.collecIds(gearPmfm);
- setGearPmfmId(ids);
+ public void setGearUseFeaturePmfm(List<Caracteristic> gearUseFeaturePmfm) {
+ List<String> ids = TuttiEntities.collecIds(gearUseFeaturePmfm);
+ setGearUseFeaturePmfmId(ids);
}
- public List<String> getEnvironmentPmfmId() {
- return environmentPmfmId;
+ public List<String> getVesselUseFeaturePmfmId() {
+ return vesselUseFeaturePmfmId;
}
- public void setEnvironmentPmfmId(List<String> environmentPmfmId) {
- Object oldValue = getEnvironmentPmfmId();
- this.environmentPmfmId = environmentPmfmId;
- firePropertyChange(PROPERTY_ENVIRONMENT_PMFM_ID, oldValue, environmentPmfmId);
+ public void setVesselUseFeaturePmfmId(List<String> vesselUseFeaturePmfmId) {
+ Object oldValue = getVesselUseFeaturePmfmId();
+ this.vesselUseFeaturePmfmId = vesselUseFeaturePmfmId;
+ firePropertyChange(PROPERTY_VESSEL_USE_FEATURE_PMFM_ID, oldValue, vesselUseFeaturePmfmId);
}
- public void setEnvironmentPmfm(List<Caracteristic> environmentPmfm) {
- List<String> ids = TuttiEntities.collecIds(environmentPmfm);
- setEnvironmentPmfmId(ids);
+ public void setVesselUseFeaturePmfm(List<Caracteristic> vesselUseFeaturePmfm) {
+ List<String> ids = TuttiEntities.collecIds(vesselUseFeaturePmfm);
+ setVesselUseFeaturePmfmId(ids);
}
- public List<String> getHydrologyPmfmId() {
- return hydrologyPmfmId;
- }
-
- public void setHydrologyPmfmId(List<String> hydrologyPmfmId) {
- Object oldValue = getHydrologyPmfmId();
- this.hydrologyPmfmId = hydrologyPmfmId;
- firePropertyChange(PROPERTY_HYDROLOGY_PMFM_ID, oldValue, hydrologyPmfmId);
- }
-
- public void setHydrologyPmfm(List<Caracteristic> hydrologyPmfm) {
- List<String> ids = TuttiEntities.collecIds(hydrologyPmfm);
- setHydrologyPmfmId(ids);
- }
-
public boolean isRemoveSpeciesEnabled() {
return removeSpeciesEnabled;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolCaracteristicAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolCaracteristicAction.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolCaracteristicAction.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -82,8 +82,8 @@
@Override
protected void releaseAction() {
+ file = null;
super.releaseAction();
- file = null;
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolSpeciesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolSpeciesAction.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolSpeciesAction.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -85,8 +85,8 @@
@Override
protected void releaseAction() {
+ file = null;
super.releaseAction();
- file = null;
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/RemoveSpeciesProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/RemoveSpeciesProtocolAction.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/RemoveSpeciesProtocolAction.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -26,13 +26,13 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.service.DecoratorService;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import jaxx.runtime.swing.editor.bean.BeanComboBox;
import java.util.Collections;
-import java.util.Comparator;
import java.util.List;
import static org.nuiton.i18n.I18n._;
@@ -57,7 +57,6 @@
@Override
protected void doAction() {
- EditProtocolUIHandler handler = getHandler();
int rowIndex = handler.getTable().getSelectedRow();
Preconditions.checkState(rowIndex != -1,
@@ -81,20 +80,8 @@
model.getAllSynonyms().addAll(allSynonyms);
// reorder the list by name, otherwise,
// all the species without a reftax code will be at the end
- Collections.sort(model.getAllSynonyms(), new Comparator<Species>() {
+ Collections.sort(model.getAllSynonyms(), TuttiEntities.SPECIES_BY_NAME_COMPARATOR);
- public int compare(Species o1, Species o2) {
- if (o1 == null) {
- return -1;
- }
- if (o2 == null) {
- return 1;
- }
- return o1.getName().compareTo(o2.getName());
- }
-
- });
-
// remove the row from the model(do it after treating the comboBox which can be long)
tableModel.removeRow(rowIndex);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -67,7 +67,7 @@
protected void doAction() {
EditProtocolUIModel model = getModel();
TuttiUIContext context = getContext();
- EditProtocolUIHandler handler = getHandler();
+
PersistenceService persistenceService =
context.getPersistenceService();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SelectOtherSpeciesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SelectOtherSpeciesAction.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SelectOtherSpeciesAction.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -73,6 +73,12 @@
}
@Override
+ protected void releaseAction() {
+ selectedSpecies = null;
+ super.releaseAction();
+ }
+
+ @Override
protected void doAction() {
String decoratedSynonym = decorate(selectedSpecies);
String taxonId = String.valueOf(selectedSpecies.getReferenceTaxonId());
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIModel.java 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIModel.java 2013-03-06 08:11:58 UTC (rev 546)
@@ -26,7 +26,7 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.environment.EnvironmentRowModel;
+import fr.ifremer.tutti.ui.swing.content.operation.fishing.VesselUseFeatureRowModel;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.logging.Log;
@@ -67,7 +67,7 @@
@Override
public void propertyChange(PropertyChangeEvent evt) {
- Set<EnvironmentRowModel> rowsInErorr = (Set<EnvironmentRowModel>) evt.getNewValue();
+ Set<VesselUseFeatureRowModel> rowsInErorr = (Set<VesselUseFeatureRowModel>) evt.getNewValue();
if (log.isDebugEnabled()) {
log.debug(PROPERTY_ROWS_IN_ERROR + " changed " + rowsInErorr.size());
}
Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-error-validation.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-error-validation.xml 2013-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-error-validation.xml 2013-03-06 08:11:58 UTC (rev 546)
@@ -668,7 +668,7 @@
</field>
- <field name="saisisseur">
+ <field name="recorderPerson">
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
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-03-05 18:10:53 UTC (rev 545)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-03-06 08:11:58 UTC (rev 546)
@@ -321,7 +321,7 @@
tutti.label.list.gear=Engin(s)
tutti.label.list.headOfMission=Chef(s) de mission
tutti.label.list.headOfSortRoom=Reponsable(s) de salle de tri
-tutti.label.list.saisisseur=Saisisseur(s)
+tutti.label.list.recorderPerson=Saisisseur(s)
tutti.label.list.vessel=Navire(s)
tutti.label.no.fishingOperation.selected=< Aucun trait sélectionné >
tutti.label.program=Série de campagne
@@ -344,20 +344,19 @@
tutti.label.tab.catches=Captures
tutti.label.tab.catchesCaracteristics=Résumé
tutti.label.tab.fishingOperation=Trait
-tutti.label.tab.fishingOperation.environment=Environnement
-tutti.label.tab.fishingOperation.gearShooting=Mise en oeuvre de l'engin
+tutti.label.tab.fishingOperation.gearUseFeature=Mise en oeuvre de l'engin
tutti.label.tab.fishingOperation.general=Trait
tutti.label.tab.fishingOperation.hydrology=Paramètres hydrologiques
+tutti.label.tab.fishingOperation.vesselUseFeature=Autres caractéristiques
tutti.label.tab.macroDechet=Macro déchets
tutti.label.tab.observationIndividuel=Observations individuelles
tutti.label.tab.plancton=Plancton
tutti.label.tab.protocol.accidental=Accidental
tutti.label.tab.protocol.benthos=Benthos
tutti.label.tab.protocol.caracteristic=Caractéristiques
-tutti.label.tab.protocol.caracteristic.environment=Environnement
-tutti.label.tab.protocol.caracteristic.gear=Mise en oeuvre de l'engin
-tutti.label.tab.protocol.caracteristic.hydrology=Paramètres hydrologiques
+tutti.label.tab.protocol.caracteristic.gearUseFeature=Mise en oeuvre de l'engin
tutti.label.tab.protocol.caracteristic.lengthClasses=Classes de taille
+tutti.label.tab.protocol.caracteristic.vesselUseFeature=Mise en oeuvre du navire
tutti.label.tab.protocol.info=Informations générales
tutti.label.tab.protocol.plankton=Plancton
tutti.label.tab.protocol.species=Espèces
@@ -422,15 +421,15 @@
tutti.table.benthos.batch.header.speciesByGenusCode=Espèce
tutti.table.benthos.batch.header.toConfirm=A Confirmer
tutti.table.benthos.batch.header.weight=Poids
-tutti.table.fishing.environment.header.key=Caractéristique
-tutti.table.fishing.environment.header.value=Valeur
-tutti.table.fishing.gearShooting.header.key=Caractéristique
-tutti.table.fishing.gearShooting.header.value=Valeur
+tutti.table.fishing.gearUseFeature.header.key=Caractéristique
+tutti.table.fishing.gearUseFeature.header.value=Valeur
tutti.table.fishing.hydrology.header.averageValue=Moyenne
tutti.table.fishing.hydrology.header.gearShootingEndValue=Fin de traîne
tutti.table.fishing.hydrology.header.gearShootingStartValue=Début de traîne
tutti.table.fishing.hydrology.header.key=Caractéristique
tutti.table.fishing.hydrology.header.value=Valeur
+tutti.table.fishing.vesselUseFeature.header.key=Caractéristique
+tutti.table.fishing.vesselUseFeature.header.value=Valeur
tutti.table.macrowaste.batch.header.comment=Commentaire
tutti.table.macrowaste.batch.header.file=Pièces jointes
tutti.table.macrowaste.batch.header.macroWasteCategory=Catégorie
1
0
r545 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing: . content content/db
by tchemit@users.forge.codelutin.com 05 Mar '13
by tchemit@users.forge.codelutin.com 05 Mar '13
05 Mar '13
Author: tchemit
Date: 2013-03-05 19:10:53 +0100 (Tue, 05 Mar 2013)
New Revision: 545
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/545
Log:
fixes #2081: [TECH] Le titre de l'application ne se met pas bien ?\195?\160 jour
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateReferentialAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/CloseDbAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/OpenDbAction.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-03-05 18:08:59 UTC (rev 544)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-03-05 18:10:53 UTC (rev 545)
@@ -27,6 +27,7 @@
import com.google.common.base.Preconditions;
import com.google.common.base.Throwables;
import com.google.common.collect.Sets;
+import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.persistence.RessourceClassLoader;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.Program;
@@ -34,7 +35,6 @@
import fr.ifremer.tutti.service.DecoratorService;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.service.TuttiServiceContext;
-import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
import fr.ifremer.tutti.service.referential.TuttiReferentialSynchronizeService;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-03-05 18:08:59 UTC (rev 544)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-03-05 18:10:53 UTC (rev 545)
@@ -438,7 +438,7 @@
}
}
- protected void changeTitle() {
+ public void changeTitle() {
String title = getSelectedCruiseTitle();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateReferentialAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateReferentialAction.java 2013-03-05 18:08:59 UTC (rev 544)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateReferentialAction.java 2013-03-05 18:10:53 UTC (rev 545)
@@ -88,6 +88,8 @@
context.setDbLoaded(true);
context.reloadPersistenceService();
+ // make sure title is reloaded
+ getUI().getHandler().changeTitle();
} else {
sendMessage("Aucune mise à jour de base détectée.");
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/CloseDbAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/CloseDbAction.java 2013-03-05 18:08:59 UTC (rev 544)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/CloseDbAction.java 2013-03-05 18:10:53 UTC (rev 545)
@@ -67,6 +67,9 @@
getContext().clearDbContext();
+ // make sure title is reloaded
+ getUI().getHandler().changeTitle();
+
sendMessage(String.format("La base de données '%s' est fermée.", jdbcUrl));
// goto the only screen possible in this state
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/OpenDbAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/OpenDbAction.java 2013-03-05 18:08:59 UTC (rev 544)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/OpenDbAction.java 2013-03-05 18:10:53 UTC (rev 545)
@@ -69,6 +69,10 @@
log.debug("Check db context");
}
getContext().checkDbContext();
+
+ // make sure title is reloaded
+ getUI().getHandler().changeTitle();
+
getContext().setScreen(TuttiScreen.SELECT_CRUISE);
}
}
\ No newline at end of file
1
0