Tutti-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- 4058 discussions
r331 - in trunk/tutti-persistence/src: main/java/fr/ifremer/tutti/persistence main/java/fr/ifremer/tutti/persistence/service test/java/fr/ifremer/tutti/persistence/service
by tchemit@users.forge.codelutin.com 05 Feb '13
by tchemit@users.forge.codelutin.com 05 Feb '13
05 Feb '13
Author: tchemit
Date: 2013-02-05 10:48:26 +0100 (Tue, 05 Feb 2013)
New Revision: 331
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/331
Log:
add changeSpeciesBatchSpecies method
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceService.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImplTest.java
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-02-05 09:19:16 UTC (rev 330)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-02-05 09:48:26 UTC (rev 331)
@@ -299,6 +299,9 @@
@Transactional(readOnly = false)
void deleteSpeciesSubBatch(String id);
+ @Transactional(readOnly = false)
+ void changeSpeciesBatchSpecies(String batchId, Species species);
+
List<SpeciesBatchFrequency> getAllSpeciesBatchFrequency(
String speciesBatchId);
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java 2013-02-05 09:19:16 UTC (rev 330)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java 2013-02-05 09:48:26 UTC (rev 331)
@@ -628,6 +628,11 @@
persistToFile(SpeciesBatch.class.getName());
}
+ @Override
+ public void changeSpeciesBatchSpecies(String batchId, Species species) {
+ throw new IllegalStateException("method 'changeSpeciesBatchSpecies' not implemented");
+ }
+
protected void collectChilds(SpeciesBatch bean, Set<SpeciesBatch> collected) {
if (!bean.isChildBatchsEmpty()) {
for (SpeciesBatch batch : bean.getChildBatchs()) {
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-02-05 09:19:16 UTC (rev 330)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-02-05 09:48:26 UTC (rev 331)
@@ -457,6 +457,11 @@
}
@Override
+ public void changeSpeciesBatchSpecies(String batchId, Species species) {
+ speciesBatchService.changeSpeciesBatchSpecies(batchId, species);
+ }
+
+ @Override
public List<SpeciesBatchFrequency> getAllSpeciesBatchFrequency(String speciesBatchId) {
return speciesBatchService.getAllSpeciesBatchFrequency(speciesBatchId);
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceService.java 2013-02-05 09:19:16 UTC (rev 330)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceService.java 2013-02-05 09:48:26 UTC (rev 331)
@@ -27,6 +27,7 @@
import fr.ifremer.tutti.persistence.TuttiPersistenceServiceImplementor;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency;
+import fr.ifremer.tutti.persistence.entities.referential.Species;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -61,7 +62,17 @@
@Transactional(readOnly = false)
void deleteSpeciesSubBatch(String id);
+ /**
+ * Change the species in the given {@code batchId} and in all his
+ * sub batches.
+ *
+ * @param batchId id of the root species batch to treat
+ * @param species species to affect to all batches
+ */
@Transactional(readOnly = false)
+ void changeSpeciesBatchSpecies(String batchId, Species species);
+
+ @Transactional(readOnly = false)
List<SpeciesBatchFrequency> saveSpeciesBatchFrequency(String speciesBatchId,
List<SpeciesBatchFrequency> frequencies);
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java 2013-02-05 09:19:16 UTC (rev 330)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java 2013-02-05 09:48:26 UTC (rev 331)
@@ -229,6 +229,11 @@
}
@Override
+ public void changeSpeciesBatchSpecies(String batchId, Species species) {
+ //TODO
+ }
+
+ @Override
public List<SpeciesBatchFrequency> getAllSpeciesBatchFrequency(
String speciesBatchId) {
List<SpeciesBatchFrequency> results = Lists.newArrayList();
@@ -239,6 +244,7 @@
@Override
public List<SpeciesBatchFrequency> saveSpeciesBatchFrequency(
String speciesBatchId, List<SpeciesBatchFrequency> frequencies) {
+ //TODO
return frequencies;
}
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImplTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImplTest.java 2013-02-05 09:19:16 UTC (rev 330)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImplTest.java 2013-02-05 09:48:26 UTC (rev 331)
@@ -113,6 +113,11 @@
}
@Test
+ public void changeSpeciesBatchSpecies() {
+ //TODO
+ }
+
+ @Test
public void createAndSaveCatchBatch() throws Exception {
CatchBatch catchBatch = null;
CatchBatch createdCatchBatch = null;
1
0
05 Feb '13
Author: tchemit
Date: 2013-02-05 10:19:16 +0100 (Tue, 05 Feb 2013)
New Revision: 330
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/330
Log:
improve action api
add nuiton-profiling (just to test application)
begin of referential import screen
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractChangeScreenAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/ImportCasinoAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/NewFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SelectFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ImportPupitriAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUIHandler.java
trunk/tutti-ui-swing/src/main/resources/META-INF/aop.xml
Removed:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ChangeScreenAction.java
Modified:
trunk/pom.xml
trunk/tutti-ui-swing/pom.xml
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseCatchesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/SelectCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ValidateSelectedCruiseCatchesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/CancelEditFishingOperationAction.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/FishingOperationsUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.jaxx
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/FishingOperationsUIModel.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/operation/catches/EditCatchesUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
trunk/tutti-ui-swing/src/main/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/SpeciesBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.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/environment/EnvironmentTabUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
trunk/tutti-ui-swing/src/main/resources/log4j.properties
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/pom.xml 2013-02-05 09:19:16 UTC (rev 330)
@@ -132,7 +132,7 @@
<h2Version>1.3.168</h2Version>
<postgresqlVersion>9.1-901-1.jdbc4</postgresqlVersion>
- <jaxxVersion>2.5.9</jaxxVersion>
+ <jaxxVersion>2.5.10-SNAPSHOT</jaxxVersion>
<swingXVersion>1.6.4</swingXVersion>
<xworkVersion>2.3.7</xworkVersion>
@@ -270,6 +270,12 @@
</dependency>
<dependency>
+ <groupId>org.swinglabs.swingx</groupId>
+ <artifactId>swingx-action</artifactId>
+ <version>${swingXVersion}</version>
+ </dependency>
+
+ <dependency>
<groupId>com.ezware.oxbow</groupId>
<artifactId>swing-bits</artifactId>
<version>0.5.0</version>
Modified: trunk/tutti-ui-swing/pom.xml
===================================================================
--- trunk/tutti-ui-swing/pom.xml 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/pom.xml 2013-02-05 09:19:16 UTC (rev 330)
@@ -230,6 +230,12 @@
<dependency>
<groupId>org.nuiton</groupId>
+ <artifactId>nuiton-profiling</artifactId>
+ <version>2.7-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.nuiton</groupId>
<artifactId>nuiton-utils</artifactId>
</dependency>
@@ -325,6 +331,11 @@
</dependency>
<dependency>
+ <groupId>org.swinglabs.swingx</groupId>
+ <artifactId>swingx-action</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>com.ezware.oxbow</groupId>
<artifactId>swing-bits</artifactId>
</dependency>
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractChangeScreenAction.java (from rev 324, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ChangeScreenAction.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractChangeScreenAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractChangeScreenAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -0,0 +1,59 @@
+
+package fr.ifremer.tutti.ui.swing;
+
+/*
+ * #%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 java.awt.event.ActionEvent;
+
+/**
+ * Abstract action defining actions which sets the screen of the application.
+ *
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.0
+ */
+public abstract class AbstractChangeScreenAction extends AbstractTuttiAction<TuttiUIContext, MainUIHandler> {
+
+ private static final long serialVersionUID = 1L;
+
+ protected AbstractChangeScreenAction(MainUIHandler handler,
+ String name,
+ String icon,
+ String text,
+ String tip,
+ boolean hideBody) {
+ super(handler, name, icon, text, tip, hideBody);
+ }
+
+ @Override
+ protected boolean prepareAction(ActionEvent event) {
+ boolean result = super.prepareAction(event);
+ result &= getHandler().getCurrentHandler().canCloseUI(getNextScreen());
+ return result;
+ }
+
+ /** @return the next screen to display. */
+ protected abstract TuttiScreen getNextScreen();
+
+}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -25,6 +25,7 @@
*/
import com.google.common.base.Preconditions;
+import com.google.common.collect.Sets;
import fr.ifremer.tutti.service.DecoratorService;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.swing.ErrorDialogUI;
@@ -42,6 +43,7 @@
import javax.swing.border.TitledBorder;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
+import java.util.Set;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.ExecutorService;
@@ -71,6 +73,8 @@
private final boolean hideBody;
+ private final static Object lock = new Object();
+
protected abstract void doAction(ActionEvent event) throws Exception;
protected AbstractTuttiAction(H handler,
@@ -117,33 +121,75 @@
boolean doAction = prepareAction(event);
if (doAction) {
- executorService.submit(new Runnable() {
- @Override
- public void run() {
- TimerTask timer = new ActionTimerTask(getActionName(), getActionDescription());
+ boolean useTimer;
- t.schedule(timer, 500);
- try {
+ synchronized (lock) {
+ useTimer = actions.isEmpty();
- doAction(event);
- } catch (Throwable e) {
- if (log.isErrorEnabled()) {
- log.error("Error:" + e.getMessage(), e);
- }
- if (e instanceof Exception) {
- ErrorDialogUI.showError((Exception) e);
- }
- } finally {
- if (log.isInfoEnabled()) {
- log.info("After action: " + this);
- }
- timer.cancel();
+ actions.add(AbstractTuttiAction.this);
+ }
- releaseAction(event);
+ if (useTimer) {
+
+ // a new thread action
+
+ executorService.submit(new Runnable() {
+ @Override
+ public void run() {
+
+ runAction(true, event);
}
+ });
+
+ } else {
+
+ runAction(false, event);
+ }
+ }
+ }
+
+ protected void runAction(boolean useTimer, ActionEvent event) {
+
+ TimerTask timer = null;
+ if (useTimer) {
+
+ // there is already anohter action in pool, no timer
+
+ timer = new ActionTimerTask(this);
+
+ t.schedule(timer, 500);
+ }
+
+ try {
+
+ this.doAction(event);
+ } catch (Throwable e) {
+ if (log.isErrorEnabled()) {
+ log.error("Error:" + e.getMessage(), e);
+ }
+ if (e instanceof Exception) {
+ ErrorDialogUI.showError((Exception) e);
+ }
+ } finally {
+ if (log.isInfoEnabled()) {
+ log.info("After action: " + this);
+ }
+ if (timer != null) {
+
+ timer.cancel();
+ }
+
+ try {
+ this.releaseAction(event);
+ } finally {
+
+
+ synchronized (lock) {
+ actions.remove(AbstractTuttiAction.this);
}
- });
+ }
+
}
}
@@ -163,8 +209,14 @@
putValue(MNEMONIC_KEY, key);
}
- protected class ActionTimerTask extends TimerTask {
+ public boolean isHideBody() {
+ return hideBody;
+ }
+ private final static Set<Object> actions = Sets.newHashSet();
+
+ protected static class ActionTimerTask<A extends AbstractTuttiAction> extends TimerTask {
+
private final Object lock = new Object();
protected boolean canceled;
@@ -175,9 +227,12 @@
private JDialog d;
- public ActionTimerTask(String actionName, String actionDescription) {
- this.actionName = actionName;
- this.actionDescription = actionDescription;
+ private final A action;
+
+ public ActionTimerTask(A action) {
+ this.action = action;
+ this.actionName = action.getActionName();
+ this.actionDescription = action.getActionDescription();
}
@Override
@@ -186,16 +241,15 @@
if (canceled) {
if (log.isInfoEnabled()) {
- log.info("Task [" + AbstractTuttiAction.this + "] was already canceled, do nothing");
+ log.info("Task [" + action + "] was already canceled, do nothing");
}
} else {
- MainUI ui = getContext().getMainUI();
+ MainUI ui = action.getContext().getMainUI();
-
if (log.isDebugEnabled()) {
- log.debug("Task [" + AbstractTuttiAction.this + "] is started, show waiting dialog");
+ log.debug("Task [" + action + "] is started, show waiting dialog");
}
JPanel panel = new JPanel(new BorderLayout());
@@ -236,11 +290,11 @@
synchronized (lock) {
canceled = true;
if (log.isInfoEnabled()) {
- log.info("Task [" + AbstractTuttiAction.this + "] canceled.");
+ log.info("Task [" + action + "] canceled.");
}
boolean cancel = super.cancel();
- updateBusyState(getContext().getMainUI(), false);
+ updateBusyState(action.getContext().getMainUI(), false);
if (d != null) {
d.setVisible(false);
@@ -253,12 +307,12 @@
if (busy) {
// ui bloquee
- if (hideBody) {
+ if (action.isHideBody()) {
ui.getBody().setVisible(false);
}
} else {
// ui debloquee
- if (hideBody) {
+ if (action.isHideBody()) {
ui.getBody().setVisible(true);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -42,6 +42,7 @@
import jaxx.runtime.swing.renderer.DecoratorListCellRenderer;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.reflect.ConstructorUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXDatePicker;
@@ -50,6 +51,8 @@
import org.nuiton.validator.bean.simple.SimpleBeanValidator;
import javax.swing.AbstractAction;
+import javax.swing.AbstractButton;
+import javax.swing.Action;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComponent;
import javax.swing.JDialog;
@@ -116,6 +119,15 @@
return new DefaultComboBoxModel(items);
}
+ public DefaultComboBoxModel newComboActionModel(Class<? extends AbstractTuttiAction>... actionNames) {
+ List<Object> items = Lists.newArrayListWithCapacity(actionNames.length);
+ for (Class<? extends AbstractTuttiAction> actionName : actionNames) {
+ Action action = createAction(actionName);
+ items.add(action);
+ }
+ return new DefaultComboBoxModel(items.toArray());
+ }
+
@Override
public void showInformationMessage(String message) {
context.showInformationMessage(message);
@@ -268,6 +280,13 @@
}
jLabel.setText("<html>" + text + "</strong>");
}
+ } else if (component instanceof AbstractButton) {
+ AbstractButton abstractButton = (AbstractButton) component;
+ Class<? extends AbstractTuttiAction> actionName = (Class<? extends AbstractTuttiAction>) abstractButton.getClientProperty("tuttiAction");
+ if (actionName != null) {
+ Action action = createAction(actionName);
+ abstractButton.setAction(action);
+ }
}
// else if (component instanceof JMenuItem) {
@@ -280,6 +299,44 @@
}
}
+ protected <A extends AbstractTuttiAction> A createAction(Class<A> actionName) {
+ A action = null;
+ if (actionName != null) {
+ try {
+ action = (A) ConstructorUtils.invokeConstructor(
+ actionName, this);
+ } catch (Exception e) {
+ throw new RuntimeException(
+ "Could not instanciate action " + actionName, e);
+ }
+ }
+ return action;
+ }
+
+ protected void doAction(AbstractButton button, ActionEvent event) {
+ button.getAction().actionPerformed(event);
+ }
+
+ protected void registerValidators(SwingValidator... validators) {
+ MainUI main = context.getMainUI();
+ Preconditions.checkNotNull(
+ main, "No mainUI registred in application context");
+ MainUIHandler handler = main.getHandler();
+ handler.clearValidators();
+ for (SwingValidator validator : validators) {
+ handler.registerValidator(validator);
+ }
+ }
+
+ protected void clearValidators() {
+ MainUI main = context.getMainUI();
+ Preconditions.checkNotNull(
+ main, "No mainUI registred in application context");
+ MainUIHandler handler = main.getHandler();
+ handler.clearValidators();
+ }
+
+
/**
* Prépare un component de choix d'entités pour un type d'entité donné et
* pour un service de persistance donné.
@@ -400,7 +457,7 @@
picker.getEditor().setEditable(false);
}
- protected <O> Decorator<O> getDecorator(Class<O> type, String name) {
+ public <O> Decorator<O> getDecorator(Class<O> type, String name) {
DecoratorService decoratorService =
context.getService(DecoratorService.class);
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ChangeScreenAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ChangeScreenAction.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ChangeScreenAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -1,57 +0,0 @@
-
-package fr.ifremer.tutti.ui.swing;
-
-/*
- * #%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 java.awt.event.ActionEvent;
-
-/**
- * Abstract action defining actions which sets the screen of the application.
- *
- * @author kmorin <kmorin(a)codelutin.com>
- * @since 1.0
- */
-public abstract class ChangeScreenAction extends AbstractTuttiAction<TuttiUIContext, MainUIHandler> {
-
- protected ChangeScreenAction(MainUIHandler handler,
- String name,
- String icon,
- String text,
- String tip,
- boolean hideBody) {
- super(handler, name, icon, text, tip, hideBody);
- }
-
- @Override
- protected boolean prepareAction(ActionEvent event) {
- boolean result = super.prepareAction(event);
- result &= getHandler().getCurrentHandler().canCloseUI(getNextScreen());
- return result;
- }
-
- /** @return the next screen to display. */
- protected abstract TuttiScreen getNextScreen();
-
-}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -38,7 +38,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class EditSelectedCruiseAction extends ChangeScreenAction {
+public class EditSelectedCruiseAction extends AbstractChangeScreenAction {
private static final long serialVersionUID = 1L;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseCatchesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseCatchesAction.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseCatchesAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -36,7 +36,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class EditSelectedCruiseCatchesAction extends ChangeScreenAction {
+public class EditSelectedCruiseCatchesAction extends AbstractChangeScreenAction {
private static final long serialVersionUID = 1L;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -38,7 +38,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class EditSelectedProgramAction extends ChangeScreenAction {
+public class EditSelectedProgramAction extends AbstractChangeScreenAction {
private static final long serialVersionUID = 1L;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProtocolAction.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProtocolAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -38,7 +38,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class EditSelectedProtocolAction extends ChangeScreenAction {
+public class EditSelectedProtocolAction extends AbstractChangeScreenAction {
private static final long serialVersionUID = 1L;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -58,22 +58,22 @@
#menuActionSelectCruise {
enabled: {model.getScreen() != TuttiScreen.SELECT_CRUISE};
- action: {selectCruiseAction};
+ _tuttiAction: {SelectCruiseAction.class};
}
#menuActionEditProgram {
enabled: {model.getScreen() != TuttiScreen.EDIT_PROGRAM && model.isProgramFilled()};
- action: {editProgramAction};
+ _tuttiAction: {EditSelectedProgramAction.class};
}
#menuActionEditCruise {
enabled: {model.getScreen() != TuttiScreen.EDIT_CRUISE && model.isCruiseFilled()};
- action: {editCruiseAction};
+ _tuttiAction: {EditSelectedCruiseAction.class};
}
#menuActionEditProtocol {
enabled: {model.getScreen() != TuttiScreen.EDIT_PROTOCOL && model.isProtocolFilled()};
- action: {editProtocolAction};
+ _tuttiAction: {EditSelectedProtocolAction.class};
}
#menuActionEditCatches {
@@ -81,7 +81,7 @@
!TuttiUIContext.VALIDATION_CONTEXT_EDIT.equals(model.getValidationContext())
|| model.getScreen() != TuttiScreen.EDIT_FISHING_OPERATION
) && model.isCruiseFilled()};
- action: {editCatchesAction};
+ _tuttiAction: {EditSelectedCruiseCatchesAction.class};
}
#menuActionValidateCatches {
@@ -89,7 +89,7 @@
!TuttiUIContext.VALIDATION_CONTEXT_VALIDATE.equals(model.getValidationContext())
|| model.getScreen() != TuttiScreen.EDIT_FISHING_OPERATION
) && model.isCruiseFilled()};
- action: {validateCatchesAction};
+ _tuttiAction: {ValidateSelectedCruiseCatchesAction.class};
}
#menuSynchronisations {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -39,17 +39,6 @@
<MainUIHandler id='handler'
initializer='getContextValue(MainUIHandler.class)'/>
- <SelectCruiseAction id='selectCruiseAction' constructorParams='handler'/>
- <EditSelectedProtocolAction id='editProtocolAction'
- constructorParams='handler'/>
- <EditSelectedProgramAction id='editProgramAction'
- constructorParams='handler'/>
- <EditSelectedCruiseAction id='editCruiseAction' constructorParams='handler'/>
- <EditSelectedCruiseCatchesAction id='editCatchesAction'
- constructorParams='handler'/>
- <ValidateSelectedCruiseCatchesAction id='validateCatchesAction'
- constructorParams='handler'/>
-
<script><![CDATA[
public MainUI(TuttiUIContext context) {
@@ -62,15 +51,6 @@
protected void $afterCompleteSetup() {
getHandler().afterInitUI();
}
-
- public void registerValidator(SwingValidator validator) {
- handler.registerValidator(validator);
- }
-
- public void clearValidators() {
- handler.clearValidators();
- }
-
]]></script>
<!-- menu -->
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -107,6 +107,8 @@
// Sync to error dialog
ErrorDialogUI.init(ui);
+ initUI(ui);
+
// Init SwingSession
SwingSession swingSession = context.getSwingSession();
swingSession.add(ui);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/SelectCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/SelectCruiseAction.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/SelectCruiseAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -34,7 +34,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class SelectCruiseAction extends ChangeScreenAction {
+public class SelectCruiseAction extends AbstractChangeScreenAction {
private static final long serialVersionUID = 1L;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ValidateSelectedCruiseCatchesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ValidateSelectedCruiseCatchesAction.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ValidateSelectedCruiseCatchesAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -36,7 +36,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
-public class ValidateSelectedCruiseCatchesAction extends ChangeScreenAction {
+public class ValidateSelectedCruiseCatchesAction extends AbstractChangeScreenAction {
private static final long serialVersionUID = 1L;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -125,6 +125,8 @@
#filterVesselLabel {
text: "tutti.label.filterVesselType";
+ _strongStyle: true;
+ actionIcon: filter;
}
#filterVesselAllButton {
@@ -180,12 +182,12 @@
}
#saveButton {
- action: {saveCruiseAction};
+ _tuttiAction: {SaveCruiseAction.class};
enabled: {model.isModify() && model.isValid()};
}
#cancelButton {
- action: {cancelEditCruiseAction};
+ _tuttiAction: {CancelEditCruiseAction.class};
}
#generateNameButton {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -74,10 +74,6 @@
<EditCruiseUIModel id='model'
initializer='getContextValue(EditCruiseUIModel.class)'/>
- <SaveCruiseAction id='saveCruiseAction' constructorParams='handler'/>
- <CancelEditCruiseAction id='cancelEditCruiseAction'
- constructorParams='handler'/>
-
<SwingValidatorMessageTableModel id='errorTableModel'/>
<BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
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-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -32,7 +32,6 @@
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler;
-import fr.ifremer.tutti.ui.swing.MainUI;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUI;
import jaxx.runtime.JAXXUtil;
@@ -252,9 +251,7 @@
// if new fishingOperation can already cancel his creation
model.setModify(model.isCreate());
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
- main.registerValidator(validator);
+ registerValidators(validator);
}
@@ -263,8 +260,7 @@
if (log.isInfoEnabled()) {
log.info("closing: " + ui);
}
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
+ clearValidators();
}
@Override
@@ -275,7 +271,7 @@
result = answer == JOptionPane.NO_OPTION;
if (answer == JOptionPane.YES_OPTION) {
ActionEvent event = new ActionEvent(nextScreen, nextScreen.ordinal(), null);
- ui.getSaveCruiseAction().actionPerformed(event);
+ doAction(ui.getSaveButton(), event);
}
}
return result;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -42,11 +42,11 @@
#editProgramButton {
enabled: {model.isProgramFound()};
- action: {editProgramAction};
+ _tuttiAction: {EditProgramAction.class};
}
#newProgramButton {
- action: {newProgramAction};
+ _tuttiAction: {NewProgramAction.class};
}
#cruiseLabel {
@@ -63,12 +63,12 @@
#editCruiseButton {
enabled: {model.isProgramFound() && model.isCruiseFound()};
- action: {editCruiseAction}
+ _tuttiAction: {EditCruiseAction.class};
}
#newCruiseButton {
enabled: {model.isProgramFound()};
- action: {newCruiseAction};
+ _tuttiAction: {NewCruiseAction.class};
}
#protocolLabel {
@@ -84,22 +84,22 @@
}
#newProtocolComboBox {
- model: {handler.newComboModel(newProtocolAction, importProtocolAction)};
+ model: {handler.newComboActionModel(NewProtocolAction.class, ImportProtocolAction.class)};
renderer: {new ActionListCellRenderer()};
}
#editProtocolComboBox {
- model: {handler.newComboModel(editProtocolAction, cloneProtocolAction, exportProtocolAction, deleteProtocolAction)};
+ model: {handler.newComboActionModel(EditProtocolAction.class, CloneProtocolAction.class, ExportProtocolAction.class, DeleteProtocolAction.class)};
enabled: {model.isProtocolFound()};
renderer: {new ActionListCellRenderer()};
}
#editCatchesButton {
- action: {editCatchesAction};
+ _tuttiAction: {EditCatchesAction.class};
enabled: {model.isValid() && uiContext.isCruiseFilled()};
}
#validateCatchesButton {
- action: {validateCatchesAction};
+ _tuttiAction: {ValidateCatchesAction.class};
enabled: {model.isValid() && uiContext.isCruiseFilled()};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -66,24 +66,6 @@
<SwingValidatorMessageTableModel id='errorTableModel'/>
- <NewProgramAction id='newProgramAction' constructorParams='handler'/>
- <EditProgramAction id='editProgramAction' constructorParams='handler'/>
-
- <NewCruiseAction id='newCruiseAction' constructorParams='handler'/>
- <EditCruiseAction id='editCruiseAction' constructorParams='handler'/>
-
- <NewProtocolAction id='newProtocolAction' constructorParams='handler'/>
- <ImportProtocolAction id='importProtocolAction' constructorParams='handler'/>
-
- <EditProtocolAction id='editProtocolAction' constructorParams='handler'/>
- <CloneProtocolAction id='cloneProtocolAction' constructorParams='handler'/>
- <ExportProtocolAction id='exportProtocolAction' constructorParams='handler'/>
- <DeleteProtocolAction id='deleteProtocolAction' constructorParams='handler'/>
-
- <EditCatchesAction id='editCatchesAction' constructorParams='handler'/>
- <ValidateCatchesAction id='validateCatchesAction'
- constructorParams='handler'/>
-
<BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>
<field name='program' component='programCombobox'/>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -31,7 +31,6 @@
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler;
-import fr.ifremer.tutti.ui.swing.MainUI;
import fr.ifremer.tutti.ui.swing.TuttiUI;
import jaxx.runtime.swing.editor.bean.BeanComboBox;
import jaxx.runtime.validator.swing.SwingValidator;
@@ -153,6 +152,8 @@
@Override
public void afterInitUI() {
+ initUI(ui);
+
SelectCruiseUIModel model = getModel();
initBeanComboBox(ui.getProgramCombobox(),
@@ -226,9 +227,7 @@
}
});
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
- main.registerValidator(getValidator());
+ registerValidators(getValidator());
listenValidatorValid(getValidator(), model);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/CancelEditFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/CancelEditFishingOperationAction.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/CancelEditFishingOperationAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -46,6 +46,8 @@
/** Logger. */
private static final Log log = LogFactory.getLog(SaveFishingOperationAction.class);
+ private final SelectFishingOperationAction delegate;
+
public CancelEditFishingOperationAction(EditFishingOperationUIHandler handler) {
super(handler,
"cancelFishingOperation",
@@ -54,6 +56,7 @@
_("tutti.action.cancel.editFishingOperation.tip"),
true
);
+ delegate = new SelectFishingOperationAction(handler.getParentUi().getHandler());
}
/**
@@ -66,17 +69,26 @@
*/
@Override
protected void doAction(ActionEvent event) throws Exception {
- FishingOperationsUIHandler parentHandler = getHandler().getParentUi().getHandler();
+ FishingOperationsUI parentUi = getHandler().getParentUi();
+ FishingOperationsUIHandler parentHandler = parentUi.getHandler();
if (getModel().isCreate()) {
if (log.isInfoEnabled()) {
log.info("Cancel edition for fishingOperation ");
}
// cancel to create a new fishingOperation
- parentHandler.closeCurrentFishingOperation();
+ parentUi.getFishingOperationTabContent().getHandler().selectFishingOperation(null);
+ parentUi.getCatchesTabContent().getHandler().selectFishingOperation(null, "");
+// parentHandler.closeCurrentFishingOperation();
} else {
- parentHandler.reloadFishingOperation();
+
+ // reload fishing operation
+ delegate.setFishingOperation(parentHandler.getModel().getSelectedFishingOperation());
+ delegate.doAction(event);
+// parentHandler.reloadFishingOperation();
}
+
+ //TODO ca sert à quoi ?
if (event.getSource() != null
&& event.getSource().getClass().isAssignableFrom(EditFishingOperationUIHandler.class)) {
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-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -445,20 +445,14 @@
text: {model.getComment()};
}
-#noTraitPane {
- text: "tutti.label.no.fishingOperation.selected";
- horizontalAlignment: {JLabel.CENTER};
-}
-
#saveButton {
- action: {saveFishingOperationAction};
+ _tuttiAction: {SaveFishingOperationAction.class};
}
#cancelButton {
- action: {cancelFishingOperationAction};
+ _tuttiAction: {CancelEditFishingOperationAction.class};
}
#importCasinoButton {
- actionIcon: casino-import;
- text: "tutti.action.casino-import";
+ _tuttiAction: {ImportCasinoAction.class};
}
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-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -78,12 +78,6 @@
<EditFishingOperationUIModel id='model'
initializer='getContextValue(EditFishingOperationUIModel.class)'/>
- <SaveFishingOperationAction id='saveFishingOperationAction'
- constructorParams='handler'/>
-
- <CancelEditFishingOperationAction id='cancelFishingOperationAction'
- constructorParams='handler'/>
-
<SwingValidatorMessageTableModel id='errorTableModel'/>
<BeanValidator id='validator' context='validate' bean='model'
@@ -460,8 +454,7 @@
<row>
<cell columns='6'>
<JPanel layout='{new GridLayout(1,0)}'>
- <JButton id='importCasinoButton'
- onActionPerformed='handler.importCasino()'/>
+ <JButton id='importCasinoButton'/>
</JPanel>
</cell>
</row>
@@ -540,5 +533,4 @@
</JPanel>
- <JLabel id='noTraitPane'/>
</JPanel>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -39,7 +39,6 @@
import fr.ifremer.tutti.persistence.entities.referential.Zone;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
-import fr.ifremer.tutti.ui.swing.MainUI;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.CaracteristicTabUIModel;
@@ -58,11 +57,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import javax.swing.JLabel;
import javax.swing.JOptionPane;
-import javax.swing.JPanel;
import javax.swing.JTabbedPane;
-import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.event.ActionEvent;
@@ -131,24 +127,24 @@
model.setCoordinateEditorType(getConfig().getCoordinateEditorType());
model.setValidationContext(getContext().getValidationContext());
- model.addPropertyChangeListener(EditFishingOperationUIModel.PROPERTY_EMPTY, new PropertyChangeListener() {
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- JPanel form = ui.getFishingOperationPane();
- JLabel noContentPane = ui.getNoTraitPane();
+// model.addPropertyChangeListener(EditFishingOperationUIModel.PROPERTY_EMPTY, new PropertyChangeListener() {
+// @Override
+// public void propertyChange(PropertyChangeEvent evt) {
+// JPanel form = ui.getFishingOperationPane();
+// JLabel noContentPane = ui.getNoTraitPane();
+//
+// Boolean empty = (Boolean) evt.getNewValue();
+// ui.remove(form);
+// ui.remove(noContentPane);
+// if (empty) {
+// ui.add(noContentPane, BorderLayout.CENTER);
+// } else {
+// ui.add(form, BorderLayout.CENTER);
+// }
+// ui.repaint();
+// }
+// });
- Boolean empty = (Boolean) evt.getNewValue();
- ui.remove(form);
- ui.remove(noContentPane);
- if (empty) {
- ui.add(noContentPane, BorderLayout.CENTER);
- } else {
- ui.add(form, BorderLayout.CENTER);
- }
- ui.repaint();
- }
- });
-
model.addPropertyChangeListener(EditFishingOperationUIModel.PROPERTY_STRATA, new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
@@ -232,7 +228,7 @@
final EditFishingOperationUIModel model = getModel();
initUI(ui);
-
+
initBeanList(ui.getSaisisseurList(),
persistenceService.getAllPerson(),
model.getSaisisseur());
@@ -245,12 +241,12 @@
Lists.<Gear>newArrayList(),
null);
- Cruise cruise = TuttiUIUtil.getCruise(ui);
+ Cruise cruise = TuttiUIUtil.getCruise(context);
Preconditions.checkNotNull(cruise,
"Could not find cruise in ui context");
ui.getMultirigAggregationField().setEnabled(cruise.getMultirigNumber() != 1);
- Program program = TuttiUIUtil.getProgram(ui);
+ Program program = TuttiUIUtil.getProgram(context);
Preconditions.checkNotNull(program,
"Could not find program in ui context");
@@ -332,7 +328,6 @@
}
});
}
-
}
@Override
@@ -342,8 +337,7 @@
log.info("closing: " + ui);
}
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
+ clearValidators();
closeUI(ui.getGearShootingTabContent());
closeUI(ui.getEnvironmentTabContent());
@@ -358,7 +352,7 @@
ActionEvent event = new ActionEvent(nextScreen, nextScreen.ordinal(), null);
switch (answer) {
case JOptionPane.OK_OPTION:
- ui.getSaveFishingOperationAction().actionPerformed(event);
+ doAction(ui.getSaveButton(), event);
break;
}
result = answer == JOptionPane.NO_OPTION;
@@ -374,11 +368,11 @@
ActionEvent event = new ActionEvent(this, newIndex, null);
switch (answer) {
case JOptionPane.OK_OPTION:
- ui.getSaveFishingOperationAction().actionPerformed(event);
+ doAction(ui.getSaveButton(), event);
break;
case JOptionPane.NO_OPTION:
- ui.getCancelFishingOperationAction().actionPerformed(event);
+ doAction(ui.getCancelButton(), event);
break;
}
}
@@ -387,9 +381,7 @@
@Override
public void onShowTab(int currentIndex, int newIndex) {
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
- main.registerValidator(ui.getValidator());
+ registerValidators(ui.getValidator());
}
@Override
@@ -498,10 +490,6 @@
}
}
- public void importCasino() {
- //TODO
- }
-
public FishingOperationsUI getParentUi() {
return parentUi;
}
@@ -523,7 +511,7 @@
// reset sub strata combo
ui.getSubStrataComboBox().setData(null);
- Zone zone = TuttiUIUtil.getProgram(ui).getZone();
+ Zone zone = TuttiUIUtil.getProgram(context).getZone();
String zoneId = zone.getId();
String strataId = newStrata == null ? null : newStrata.getId();
@@ -566,7 +554,7 @@
// reset localite combo
ui.getLocationComboBox().setData(null);
- Zone zone = TuttiUIUtil.getProgram(ui).getZone();
+ Zone zone = TuttiUIUtil.getProgram(context).getZone();
String zoneId = zone.getId();
FishingOperationLocation strata = model.getStrata();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -29,8 +29,7 @@
}
#newFishingOperationButton {
- text: "tutti.action.new";
- actionIcon: add;
+ _tuttiAction: {NewFishingOperationAction.class};
}
#fishingOperationComboBox {
@@ -41,3 +40,8 @@
#catchesTab {
enabled: {model.getSelectedFishingOperation() != null};
}
+
+#noTraitPane {
+ text: "tutti.label.no.fishingOperation.selected";
+ horizontalAlignment: {JLabel.CENTER};
+}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.jaxx 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -55,6 +55,8 @@
<FishingOperationsUIModel id='model'
initializer='getContextValue(FishingOperationsUIModel.class)'/>
+
+
<Table fill='both' id='topPanel' constraints='BorderLayout.NORTH'>
<!-- FishingOperations fishingOperation -->
@@ -64,13 +66,14 @@
genericType='FishingOperation'/>
</cell>
<cell anchor='east'>
- <JButton id='newFishingOperationButton'
- onActionPerformed='getHandler().createNewFishingOperation()'/>
+ <JButton id='newFishingOperationButton'/>
</cell>
</row>
</Table>
- <JTabbedPane id='tabPane' constraints='BorderLayout.CENTER'>
+ <JLabel id='noTraitPane' constraints='BorderLayout.CENTER'/>
+
+ <JTabbedPane id='tabPane'>
<tab id='fishingOperationTab' title='tutti.label.tab.fishingOperation'>
<EditFishingOperationUI id='fishingOperationTabContent'
constructorParams='this'/>
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-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -24,12 +24,9 @@
* #L%
*/
-import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
-import fr.ifremer.tutti.persistence.entities.referential.Gear;
-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.TuttiUI;
@@ -39,15 +36,12 @@
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.decorator.Decorator;
import javax.swing.JTabbedPane;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.List;
-import static org.nuiton.i18n.I18n._;
-
/**
* Handler of UI {@link FishingOperationsUI}.
*
@@ -64,6 +58,8 @@
private final PersistenceService persistenceService;
+ protected SelectFishingOperationAction selectFishingOperationAction;
+
public FishingOperationsUIHandler(TuttiUI parentUI,
FishingOperationsUI ui) {
super(parentUI.getHandler().getContext());
@@ -71,6 +67,10 @@
persistenceService = context.getService(PersistenceService.class);
}
+ public FishingOperationsUI getUi() {
+ return ui;
+ }
+
@Override
public void beforeInitUI() {
@@ -87,15 +87,16 @@
Cruise cruise = persistenceService.getCruise(cruiseId);
// store it in context
- TuttiUIUtil.setCruise(ui, cruise);
- TuttiUIUtil.setProgram(ui, cruise.getProgram());
+ TuttiUIUtil.setCruise(context, cruise);
+ TuttiUIUtil.setProgram(context, cruise.getProgram());
TuttiProtocol protocol;
if (getContext().isProtocolFilled()) {
// load existing protocol
- protocol = persistenceService.getProtocol(getContext().getProtocolId());
+ protocol = persistenceService.getProtocol(
+ getContext().getProtocolId());
if (log.isInfoEnabled()) {
log.info("Loading existing protocol: " + protocol);
@@ -106,7 +107,7 @@
protocol = null;
}
- TuttiUIUtil.setProtocol(ui, protocol);
+ TuttiUIUtil.setProtocol(context, protocol);
List<FishingOperation> fishingOperations =
persistenceService.getAllFishingOperation(cruiseId);
@@ -130,9 +131,11 @@
@Override
public void afterInitUI() {
+ initUI(ui);
+
+ selectFishingOperationAction = createAction(SelectFishingOperationAction.class);
FishingOperationsUIModel model = getModel();
- initUI(ui);
List<FishingOperation> fishingOperations = model.getFishingOperation();
@@ -143,15 +146,26 @@
model.addPropertyChangeListener(FishingOperationsUIModel.PROPERTY_SELECTED_FISHING_OPERATION, new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
- log.debug("propertyChange " + FishingOperationsUIModel.PROPERTY_SELECTED_FISHING_OPERATION);
- selectFishingOperation((FishingOperation) evt.getNewValue());
+ if (log.isDebugEnabled()) {
+ log.debug("propertyChange " + FishingOperationsUIModel.PROPERTY_SELECTED_FISHING_OPERATION);
+ }
+
+ if (!getModel().isValueIsAdjusting()) {
+
+ // only rebuild stuff if model is not adjusting
+ selectFishingOperationAction.setFishingOperation((FishingOperation) evt.getNewValue());
+ selectFishingOperationAction.actionPerformed(null);
+// selectFishingOperation((FishingOperation) evt.getNewValue());
+ }
}
});
model.addPropertyChangeListener(FishingOperationsUIModel.PROPERTY_FISHING_OPERATION, new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
- log.debug("propertyChange " + FishingOperationsUIModel.PROPERTY_FISHING_OPERATION);
+ if (log.isDebugEnabled()) {
+ log.debug("propertyChange " + FishingOperationsUIModel.PROPERTY_FISHING_OPERATION);
+ }
ui.getFishingOperationComboBox().setData(null);
ui.getFishingOperationComboBox().setData((List<FishingOperation>) evt.getNewValue());
}
@@ -194,118 +208,80 @@
}
@Override
- protected JTabbedPane getTabPanel() {
+ public JTabbedPane getTabPanel() {
return ui.getTabPane();
}
- public void createNewFishingOperation() {
+// public void selectFishingOperation(FishingOperation fishingOperation) {
+//
+// if (log.isInfoEnabled()) {
+// log.info("New selected fishingOperation: " + fishingOperation);
+// }
+//
+// // back to general tab of fishingOperation tabs
+// ui.getFishingOperationTabContent().getFishingOperationTabPane().setSelectedIndex(0);
+//
+// if (fishingOperation != null) {
+// Decorator<FishingOperation> decorator =
+// getDecorator(FishingOperation.class, null);
+//
+// String fishingOperationText =
+// _("tutti.label.traitReminder",
+// decorator.toString(fishingOperation));
+//
+// // propagate fishingOperation to his tabs
+// ui.getFishingOperationTabContent().getHandler().selectFishingOperation(fishingOperation);
+// if (ui.getFishingOperationTabContent().getModel().isCreate()) {
+// // back to fishingOperation tab
+// ui.getTabPane().setSelectedIndex(0);
+// }
+//
+// ui.getCatchesTabContent().getHandler().selectFishingOperation(fishingOperation,
+// fishingOperationText);
+//
+// // repaint tabs
+// ui.getTabPane().repaint();
+//
+// } else {
+// ui.getFishingOperationTabContent().getHandler().clearFishingOperation();
+// // back to fishingOperation tab
+// ui.getTabPane().setSelectedIndex(0);
+// }
+// }
- FishingOperationsUIModel model = getModel();
+// public void closeCurrentFishingOperation() {
+// ui.getFishingOperationTabContent().getHandler().selectFishingOperation(null);
+// ui.getCatchesTabContent().getHandler().selectFishingOperation(null, "");
+// }
- // deselect selected fishingOperation
- model.setSelectedFishingOperation(null);
+// public void saveFishingOperation(FishingOperation toSave) {
+//
+// // persist the fishingOperation
+//
+// boolean create = toSave.getId() == null;
+// FishingOperationsUIModel model = getModel();
+// FishingOperation savedFishingOperation;
+//
+// if (create) {
+//
+// savedFishingOperation = persistenceService.createFishingOperation(toSave);
+// model.addFishingOperation(savedFishingOperation);
+// model.setSelectedFishingOperation(savedFishingOperation);
+//
+// } else {
+// savedFishingOperation = persistenceService.saveFishingOperation(toSave);
+//
+// // add the saved fishingOperation to fishingOperation list
+// List<FishingOperation> data = model.getFishingOperation();
+//
+// FishingOperation existingFishingOperation =
+// TuttiEntities.findById(data, savedFishingOperation.getId());
+// model.updateFishingOperation(existingFishingOperation, savedFishingOperation);
+// }
+// }
- // use a new empty fishingOperation
- FishingOperation newFishingOperation = new FishingOperation();
- Cruise cruise = TuttiUIUtil.getCruise(ui);
- newFishingOperation.setCruise(cruise);
-
- //TODO Should select vessel from possible one ?
- List<Vessel> vessels = cruise.getVessel();
- if (vessels.size() == 1) {
- newFishingOperation.setVessel(vessels.get(0));
- }
-
- //TODO Should select gear from possible one ?
- List<Gear> gears = cruise.getGear();
- if (gears.size() == 1) {
- newFishingOperation.setGear(gears.get(0));
- }
-
- if (cruise.getMultirigNumber() == 1) {
- newFishingOperation.setMultirigAggregation("1");
- }
-
- // by default use the current day with no time information
-// Date currentDate = DateUtils.setMinutes(
-// DateUtils.setHours(new Date(), 0), 0);
-
- newFishingOperation.setGearShootingStartDate(null);
- newFishingOperation.setGearShootingEndDate(null);
-
- selectFishingOperation(newFishingOperation);
- }
-
- public void selectFishingOperation(FishingOperation fishingOperation) {
-
- if (log.isInfoEnabled()) {
- log.info("New selected fishingOperation: " + fishingOperation);
- }
-
- // back to general tab of fishingOperation tabs
- ui.getFishingOperationTabContent().getFishingOperationTabPane().setSelectedIndex(0);
-
- if (fishingOperation != null) {
- Decorator<FishingOperation> decorator =
- getDecorator(FishingOperation.class, null);
-
- String fishingOperationText =
- _("tutti.label.traitReminder",
- decorator.toString(fishingOperation));
-
- // propagate fishingOperation to his tabs
- ui.getFishingOperationTabContent().getHandler().selectFishingOperation(fishingOperation);
- if (ui.getFishingOperationTabContent().getModel().isCreate()) {
- // back to fishingOperation tab
- ui.getTabPane().setSelectedIndex(0);
- }
-
- ui.getCatchesTabContent().getHandler().selectFishingOperation(fishingOperation,
- fishingOperationText);
-
- // repaint tabs
- ui.getTabPane().repaint();
-
- } else {
- ui.getFishingOperationTabContent().getHandler().clearFishingOperation();
- // back to fishingOperation tab
- ui.getTabPane().setSelectedIndex(0);
- }
- }
-
- public void closeCurrentFishingOperation() {
- ui.getFishingOperationTabContent().getHandler().selectFishingOperation(null);
- ui.getCatchesTabContent().getHandler().selectFishingOperation(null, "");
- }
-
- public void saveFishingOperation(FishingOperation toSave) {
-
- // persist the fishingOperation
-
- boolean create = toSave.getId() == null;
- FishingOperationsUIModel model = getModel();
- FishingOperation savedFishingOperation;
-
- if (create) {
-
- savedFishingOperation = persistenceService.createFishingOperation(toSave);
- model.addFishingOperation(savedFishingOperation);
- model.setSelectedFishingOperation(savedFishingOperation);
-
- } else {
- savedFishingOperation = persistenceService.saveFishingOperation(toSave);
-
- // add the saved fishingOperation to fishingOperation list
- List<FishingOperation> data = model.getFishingOperation();
-
- FishingOperation existingFishingOperation =
- TuttiEntities.findById(data, savedFishingOperation.getId());
- model.updateFishingOperation(existingFishingOperation, savedFishingOperation);
- }
- }
-
- public void reloadFishingOperation() {
- FishingOperation operation = getModel().getSelectedFishingOperation();
- selectFishingOperation(operation);
- }
+// public void reloadFishingOperation() {
+// FishingOperation operation = getModel().getSelectedFishingOperation();
+// selectFishingOperation(operation);
+// }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -48,6 +48,8 @@
protected FishingOperation selectedFishingOperation;
+ private boolean valueIsAdjusting;
+
public List<FishingOperation> getFishingOperation() {
return fishingOperation;
}
@@ -87,8 +89,16 @@
}
public void setSelectedFishingOperation(FishingOperation selectedFishingOperation) {
- Object oldValue = Lists.newArrayList(getSelectedFishingOperation());
+ Object oldValue = getSelectedFishingOperation();
this.selectedFishingOperation = selectedFishingOperation;
firePropertyChange(PROPERTY_SELECTED_FISHING_OPERATION, oldValue, selectedFishingOperation);
}
+
+ public void setValueIsAdjusting(boolean valueIsAdjusting) {
+ this.valueIsAdjusting = valueIsAdjusting;
+ }
+
+ public boolean isValueIsAdjusting() {
+ return valueIsAdjusting;
+ }
}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/ImportCasinoAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/ImportCasinoAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/ImportCasinoAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -0,0 +1,56 @@
+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.AbstractTuttiAction;
+
+import java.awt.event.ActionEvent;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * TODO
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class ImportCasinoAction extends AbstractTuttiAction<EditFishingOperationUIModel, EditFishingOperationUIHandler> {
+
+ private static final long serialVersionUID = 1L;
+
+ public ImportCasinoAction(EditFishingOperationUIHandler handler) {
+ super(handler,
+ "importCasino",
+ "casino-import",
+ _("tutti.action.importCasino"),
+ _("tutti.action.importCasino.tip"),
+ true);
+ }
+
+ @Override
+ protected void doAction(ActionEvent event) throws Exception {
+ //TODO
+ }
+}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/ImportCasinoAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/NewFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/NewFishingOperationAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/NewFishingOperationAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -0,0 +1,108 @@
+package fr.ifremer.tutti.ui.swing.content.operation;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ifremer.tutti.persistence.entities.data.Cruise;
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.persistence.entities.referential.Gear;
+import fr.ifremer.tutti.persistence.entities.referential.Vessel;
+import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+
+import java.awt.event.ActionEvent;
+import java.util.List;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * TODO
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class NewFishingOperationAction extends AbstractTuttiAction<FishingOperationsUIModel, FishingOperationsUIHandler> {
+
+ private static final long serialVersionUID = 1L;
+
+ private final SelectFishingOperationAction delegate;
+
+ public NewFishingOperationAction(FishingOperationsUIHandler handler) {
+ super(handler,
+ "newFishingOperation",
+ "add",
+ null,
+ _("tutti.action.newFishingOperation.tip"),
+ true);
+
+ delegate = new SelectFishingOperationAction(getHandler());
+ }
+
+ @Override
+ protected void doAction(ActionEvent event) throws Exception {
+
+ FishingOperationsUIModel model = getModel();
+
+ model.setValueIsAdjusting(true);
+
+ try {
+ // deselect selected fishingOperation
+ model.setSelectedFishingOperation(null);
+
+ // use a new empty fishingOperation
+ FishingOperation newFishingOperation = new FishingOperation();
+ Cruise cruise = TuttiUIUtil.getCruise(getContext());
+ newFishingOperation.setCruise(cruise);
+
+ //TODO Should select vessel from possible one ?
+ List<Vessel> vessels = cruise.getVessel();
+ if (vessels.size() == 1) {
+ newFishingOperation.setVessel(vessels.get(0));
+ }
+
+ //TODO Should select gear from possible one ?
+ List<Gear> gears = cruise.getGear();
+ if (gears.size() == 1) {
+ newFishingOperation.setGear(gears.get(0));
+ }
+
+ if (cruise.getMultirigNumber() == 1) {
+ newFishingOperation.setMultirigAggregation("1");
+ }
+
+ // by default use the current day with no time information
+// Date currentDate = DateUtils.setMinutes(
+// DateUtils.setHours(new Date(), 0), 0);
+
+ newFishingOperation.setGearShootingStartDate(null);
+ newFishingOperation.setGearShootingEndDate(null);
+
+ delegate.setFishingOperation(newFishingOperation);
+ delegate.doAction(event);
+
+ } finally {
+ model.setValueIsAdjusting(false);
+ }
+ }
+}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/NewFishingOperationAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -26,7 +26,9 @@
*/
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.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.CaracteristicTabUIModel;
@@ -39,6 +41,7 @@
import org.apache.commons.logging.LogFactory;
import java.awt.event.ActionEvent;
+import java.util.List;
import static org.nuiton.i18n.I18n._;
@@ -80,7 +83,8 @@
EditFishingOperationUIHandler handler = getHandler();
FishingOperationsUIHandler parentHandler = getHandler().getParentUi().getHandler();
- TuttiBeanMonitor<EditFishingOperationUIModel> monitor = handler.getFishingOperationMonitor();
+ TuttiBeanMonitor<EditFishingOperationUIModel> monitor =
+ handler.getFishingOperationMonitor();
// previous fishingOperation was modified, let's save it
EditFishingOperationUIModel beanToSave = monitor.getBean();
@@ -129,7 +133,7 @@
getModel().setModify(false);
// persist current fishingOperation
- parentHandler.saveFishingOperation(toSave);
+ saveFishingOperation(toSave);
}
if (event.getSource() != null) {
@@ -145,4 +149,31 @@
}
}
+ protected void saveFishingOperation(FishingOperation toSave) {
+
+ PersistenceService service =
+ getContext().getService(PersistenceService.class);
+
+ boolean create = toSave.getId() == null;
+ FishingOperationsUIModel model = getHandler().getParentUi().getModel();
+ FishingOperation savedFishingOperation;
+
+ if (create) {
+
+ savedFishingOperation = service.createFishingOperation(toSave);
+ model.addFishingOperation(savedFishingOperation);
+ model.setSelectedFishingOperation(savedFishingOperation);
+
+ } else {
+ savedFishingOperation = service.saveFishingOperation(toSave);
+
+ // add the saved fishingOperation to fishingOperation list
+ List<FishingOperation> data = model.getFishingOperation();
+
+ FishingOperation existingFishingOperation =
+ TuttiEntities.findById(data, savedFishingOperation.getId());
+ model.updateFishingOperation(existingFishingOperation, savedFishingOperation);
+ }
+ }
+
}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SelectFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SelectFishingOperationAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SelectFishingOperationAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -0,0 +1,133 @@
+package fr.ifremer.tutti.ui.swing.content.operation;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.decorator.Decorator;
+
+import javax.swing.JLabel;
+import javax.swing.JTabbedPane;
+import java.awt.BorderLayout;
+import java.awt.event.ActionEvent;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * TODO
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class SelectFishingOperationAction extends AbstractTuttiAction<FishingOperationsUIModel, FishingOperationsUIHandler> {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(SelectFishingOperationAction.class);
+
+ protected FishingOperation fishingOperation;
+
+ public SelectFishingOperationAction(FishingOperationsUIHandler handler) {
+ super(handler,
+ "selectFishingOperation",
+ "select",
+ null,
+ _("tutti.action.selectFishingOperation.tip"),
+ true);
+ }
+
+ public void setFishingOperation(FishingOperation fishingOperation) {
+ this.fishingOperation = fishingOperation;
+ }
+
+ @Override
+ protected void releaseAction(ActionEvent event) {
+ fishingOperation = null;
+ super.releaseAction(event);
+ }
+
+ @Override
+ protected void doAction(ActionEvent event) throws Exception {
+
+ if (log.isInfoEnabled()) {
+ log.info("New selected fishingOperation: " + fishingOperation);
+ }
+
+ FishingOperationsUI ui = getHandler().getUi();
+
+ JTabbedPane form = ui.getTabPane();
+ JLabel noContentPane = ui.getNoTraitPane();
+
+ if (fishingOperation == null) {
+
+ // nothing to display
+
+ ui.remove(form);
+
+ // just display <no trait!>
+ ui.add(noContentPane, BorderLayout.CENTER);
+
+ } else {
+
+ // select a fishing operation
+
+ Decorator<FishingOperation> decorator =
+ getDecorator(FishingOperation.class, null);
+
+ String fishingOperationText =
+ _("tutti.label.traitReminder",
+ decorator.toString(fishingOperation));
+
+ // propagate fishingOperation to his tabs
+ ui.getFishingOperationTabContent().getHandler().selectFishingOperation(fishingOperation);
+ if (ui.getFishingOperationTabContent().getModel().isCreate()) {
+
+ // back to fishingOperation tab
+ ui.getTabPane().setSelectedIndex(0);
+ }
+
+ ui.getCatchesTabContent().getHandler().selectFishingOperation(fishingOperation,
+ fishingOperationText);
+
+ // back to general tab of fishingOperation tabs
+ ui.getFishingOperationTabContent().getFishingOperationTabPane().setSelectedIndex(0);
+
+ ui.remove(noContentPane);
+
+ // wait last minute to display (avoid dirty display effects)
+ ui.add(form, BorderLayout.CENTER);
+
+ // repaint tabs
+// ui.getTabPane().repaint();
+
+ }
+
+ ui.repaint();
+ }
+}
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SelectFishingOperationAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -234,8 +234,7 @@
}
#importPupitriButton {
- actionIcon: pupitri-import;
- text: "tutti.action.pupitri-import";
+ _tuttiAction: {ImportPupitriAction.class};
}
#benthosTab {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -284,8 +284,7 @@
<row>
<cell columns='2'>
<JPanel layout='{new GridLayout(1,0)}'>
- <JButton id='importPupitriButton'
- onActionPerformed='handler.importPupitri()'/>
+ <JButton id='importPupitriButton'/>
</JPanel>
</cell>
</row>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -27,8 +27,6 @@
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.AbstractTuttiBeanUIModel;
-import fr.ifremer.tutti.ui.swing.MainUI;
import fr.ifremer.tutti.ui.swing.TuttiUI;
import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiTabContainerUIHandler;
@@ -267,16 +265,9 @@
}
protected void registerValidators() {
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
- main.registerValidator(getValidator());
- main.registerValidator(ui.getSpeciesTabContent().getHandler().getValidator());
+ registerValidators(getValidator(), ui.getSpeciesTabContent().getHandler().getValidator());
}
- public void importPupitri() {
- //TODO
- }
-
public void setSelectedCard(String card) {
Component selectedComponent = getTabPanel().getSelectedComponent();
if (selectedComponent.getClass().isAssignableFrom(JPanel.class)) {
@@ -303,9 +294,7 @@
}
}
if (tuttiUi != null) {
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
- main.registerValidator(tuttiUi.getHandler().getValidator());
+ registerValidators(tuttiUi.getHandler().getValidator());
}
}
}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ImportPupitriAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ImportPupitriAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ImportPupitriAction.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -0,0 +1,56 @@
+package fr.ifremer.tutti.ui.swing.content.operation.catches;
+
+/*
+ * #%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.AbstractTuttiAction;
+
+import java.awt.event.ActionEvent;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * TODO
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class ImportPupitriAction extends AbstractTuttiAction<EditCatchesUIModel, EditCatchesUIHandler> {
+
+ private static final long serialVersionUID = 1L;
+
+ public ImportPupitriAction(EditCatchesUIHandler handler) {
+ super(handler,
+ "importPupitri",
+ "pupitri-import",
+ _("tutti.action.importPupitri"),
+ _("tutti.action.importPupitri.tip"),
+ true);
+ }
+
+ @Override
+ protected void doAction(ActionEvent event) throws Exception {
+ //TODO
+ }
+}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ImportPupitriAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -115,12 +115,12 @@
//------------------------------------------------------------------------//
@Override
- protected AccidentalBatchTableModel getTableModel() {
+ public AccidentalBatchTableModel getTableModel() {
return (AccidentalBatchTableModel) getTable().getModel();
}
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getTable();
}
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-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -118,12 +118,12 @@
//------------------------------------------------------------------------//
@Override
- protected BenthosBatchTableModel getTableModel() {
+ public BenthosBatchTableModel getTableModel() {
return (BenthosBatchTableModel) getTable().getModel();
}
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getTable();
}
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-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -115,12 +115,12 @@
//------------------------------------------------------------------------//
@Override
- protected MacroWasteBatchTableModel getTableModel() {
+ public MacroWasteBatchTableModel getTableModel() {
return (MacroWasteBatchTableModel) getTable().getModel();
}
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getTable();
}
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-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -116,12 +116,12 @@
//------------------------------------------------------------------------//
@Override
- protected PlanktonBatchTableModel getTableModel() {
+ public PlanktonBatchTableModel getTableModel() {
return (PlanktonBatchTableModel) getTable().getModel();
}
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getTable();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -108,19 +108,19 @@
}
#removeSpeciesBatchMenu {
- action: {removeSpeciesBatchAction};
+ _tuttiAction: {RemoveSpeciesBatchAction.class};
mnemonic: R;
enabled: {model.isTableViewModeAll() && model.isRemoveSpeciesBatchEnabled()};
}
#removeSpeciesSubBatchMenu {
- action: {removeSpeciesSubBatchAction};
+ _tuttiAction: {RemoveSpeciesSubBatchAction.class};
mnemonic: R;
enabled: {model.isTableViewModeAll() && model.isRemoveSpeciesSubBatchEnabled()};
}
#renameSpeciesBatchMenu {
- action: {renameSpeciesBatchAction};
+ _tuttiAction: {RenameSpeciesBatchAction.class};
enabled: {model.isTableViewModeAll() && model.isRenameSpeciesBatchEnabled()};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -65,13 +65,6 @@
<SwingValidatorMessageTableModel id='errorTableModel'/>
- <RenameSpeciesBatchAction id='renameSpeciesBatchAction'
- constructorParams='handler'/>
- <RemoveSpeciesBatchAction id='removeSpeciesBatchAction'
- constructorParams='handler'/>
- <RemoveSpeciesSubBatchAction id='removeSpeciesSubBatchAction'
- constructorParams='handler'/>
-
<BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>
<field name='speciesTotalWeight' component='speciesTotalWeightField'/>
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-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -240,12 +240,12 @@
//------------------------------------------------------------------------//
@Override
- protected SpeciesBatchTableModel getTableModel() {
+ public SpeciesBatchTableModel getTableModel() {
return (SpeciesBatchTableModel) getTable().getModel();
}
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getTable();
}
@@ -406,10 +406,7 @@
// get loaded protocol
- protocol = TuttiUIUtil.getProtocol(ui);
- Preconditions.checkNotNull(
- protocol,
- "Could not find protocol in ui context");
+ protocol = TuttiUIUtil.getProtocol(context);
lengthCaracterics = Lists.newArrayListWithCapacity(
protocol.sizeLengthClassesPmfmId());
@@ -461,7 +458,7 @@
// get loaded protocol
- TuttiProtocol protocol = TuttiUIUtil.getProtocol(ui);
+ TuttiProtocol protocol = TuttiUIUtil.getProtocol(context);
Preconditions.checkNotNull(protocol,
"Could not find protocol in ui context");
@@ -1005,8 +1002,8 @@
getModel().setRenameSpeciesBatchEnabled(enableRename);
}
- protected void collectChilds(SpeciesBatchRowModel row,
- Set<SpeciesBatchRowModel> collectedRows) {
+ public void collectChilds(SpeciesBatchRowModel row,
+ Set<SpeciesBatchRowModel> collectedRows) {
if (!row.isBatchLeaf()) {
@@ -1113,7 +1110,7 @@
columnIdentifier);
}
- protected void removeFromSpeciesUsed(SpeciesBatchRowModel row) {
+ public void removeFromSpeciesUsed(SpeciesBatchRowModel row) {
Preconditions.checkNotNull(row);
Preconditions.checkNotNull(row.getSpecies());
Preconditions.checkNotNull(row.getSortedUnsortedCategoryValue());
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -99,12 +99,12 @@
//------------------------------------------------------------------------//
@Override
- protected SpeciesFrequencyTableModel getTableModel() {
+ public SpeciesFrequencyTableModel getTableModel() {
return (SpeciesFrequencyTableModel) getTable().getModel();
}
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getTable();
}
@@ -183,7 +183,7 @@
if (context.isProtocolFilled()) {
// get loaded protocol
- protocol = TuttiUIUtil.getProtocol(ui);
+ protocol = TuttiUIUtil.getProtocol(context);
Preconditions.checkNotNull(protocol,
"Could not find protocol in ui context");
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.css 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -53,7 +53,7 @@
}
#addSpeciesButton {
- action: {addSpeciesAction};
+ _tuttiAction: {AddSpeciesAction.class};
}
#sortedUnsortedCategoryLabel {
@@ -91,18 +91,3 @@
mnemonic: A;
text: "tutti.action.cancel";
}
-
-#messagePanel {
- border: {BorderFactory.createTitledBorder(_("tutti.title.messages"))};
- /*height: 200;
- width: 500;*/
-}
-
-#errorTable {
- rowSelectionAllowed: true;
- autoCreateRowSorter: true;
- autoResizeMode: {JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS};
- cellSelectionEnabled: false;
- selectionMode: {ListSelectionModel.SINGLE_SELECTION};
- model: {errorTableModel};
-}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.jaxx 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -68,8 +68,6 @@
<CreateSpeciesBatchUIModel id='model'
initializer='getContextValue(CreateSpeciesBatchUIModel.class)'/>
- <AddSpeciesAction id='addSpeciesAction' constructorParams='handler'/>
-
<SwingValidatorMessageTableModel id='errorTableModel'/>
<BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -95,12 +95,12 @@
//------------------------------------------------------------------------//
@Override
- protected SplitSpeciesBatchTableModel getTableModel() {
+ public SplitSpeciesBatchTableModel getTableModel() {
return (SplitSpeciesBatchTableModel) getTable().getModel();
}
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getTable();
}
Modified: 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-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -66,7 +66,7 @@
//------------------------------------------------------------------------//
@Override
- protected TM getTableModel() {
+ public TM getTableModel() {
return (TM) getTable().getModel();
}
@@ -206,7 +206,7 @@
}
model.setCaracteristicMap(caracteristicMap);
- TuttiProtocol protocol = TuttiUIUtil.getProtocol(getUI());
+ TuttiProtocol protocol = TuttiUIUtil.getProtocol(context);
List<String> pmfmIds = Lists.newArrayList();
if (protocol != null) {
List<String> protocolPmfmId = getProtocolPmfmIds(protocol);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -98,7 +98,7 @@
//------------------------------------------------------------------------//
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getEnvironmentTable();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -99,7 +99,7 @@
//------------------------------------------------------------------------//
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getGearShootingTable();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -107,7 +107,7 @@
//------------------------------------------------------------------------//
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getHydrologyTable();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -60,10 +60,10 @@
}
#saveButton {
- action: {saveProgramAction};
+ _tuttiAction: {SaveProgramAction.class};
enabled: {model.isModify() && model.isValid()};
}
#cancelButton {
- action: {cancelEditProgramAction};
+ _tuttiAction: {CancelEditProgramAction.class};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -61,10 +61,6 @@
<EditProgramUIModel id='model'
initializer='getContextValue(EditProgramUIModel.class)'/>
- <SaveProgramAction id='saveProgramAction' constructorParams='handler'/>
- <CancelEditProgramAction id='cancelEditProgramAction'
- constructorParams='handler'/>
-
<SwingValidatorMessageTableModel id='errorTableModel'/>
<BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
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-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -27,7 +27,6 @@
import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler;
-import fr.ifremer.tutti.ui.swing.MainUI;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUI;
import jaxx.runtime.validator.swing.SwingValidator;
@@ -99,6 +98,8 @@
@Override
public void afterInitUI() {
+ initUI(ui);
+
EditProgramUIModel model = getModel();
initBeanComboBox(ui.getZoneComboBox(),
persistenceService.getAllProgramZone(),
@@ -107,9 +108,7 @@
SwingValidator validator = ui.getValidator();
listenValidatorValid(validator, model);
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
- main.registerValidator(validator);
+ registerValidators(validator);
// if new program can already cancel his creation
model.setModify(model.isCreate());
@@ -120,8 +119,7 @@
if (log.isInfoEnabled()) {
log.info("closing: " + ui);
}
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
+ clearValidators();
}
@Override
@@ -132,7 +130,7 @@
result = answer == JOptionPane.NO_OPTION;
if (answer == JOptionPane.YES_OPTION) {
ActionEvent event = new ActionEvent(nextScreen, nextScreen.ordinal(), null);
- ui.getSaveProgramAction().actionPerformed(event);
+ doAction(ui.getSaveButton(), event);
}
}
return result;
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-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -64,11 +64,11 @@
#saveButton {
enabled: {model.isModify() && model.isValid()};
- action: {saveProtocolAction};
+ _tuttiAction: {SaveProtocolAction.class};
}
#cancelButton {
- action: {cancelEditProtocolAction};
+ _tuttiAction: {CancelEditProtocolAction.class};
}
#speciesComboBox {
@@ -104,28 +104,23 @@
}
#importSpecies {
- actionIcon: import;
- action: {importProtocolSpeciesAction};
+ _tuttiAction: {ImportProtocolSpeciesAction.class};
}
#exportSpecies {
- actionIcon: export;
- action: {exportProtocolSpeciesAction};
+ _tuttiAction: {ExportProtocolSpeciesAction.class};
}
#importCaracteristic {
- actionIcon: import;
- action: {importProtocolCaracteristicAction};
+ _tuttiAction: {ImportProtocolCaracteristicAction.class};
}
#exportCaracteristic {
- actionIcon: export;
- action: {exportProtocolCaracteristicAction};
+ _tuttiAction: {ExportProtocolCaracteristicAction.class};
}
#exportAllCaracteristic {
- actionIcon: export;
- action: {exportAllCaracteristicAction};
+ _tuttiAction: {ExportAllCaracteristicAction.class};
}
#gearList {
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-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -68,24 +68,6 @@
<EditProtocolUIModel id='model'
initializer='getContextValue(EditProtocolUIModel.class)'/>
- <CancelEditProtocolAction id='cancelEditProtocolAction'
- constructorParams='handler'/>
- <SaveProtocolAction id='saveProtocolAction' constructorParams='handler'/>
- <ImportProtocolCaracteristicAction id='importProtocolCaracteristicAction'
- constructorParams='handler'/>
-
- <ExportProtocolCaracteristicAction id='exportProtocolCaracteristicAction'
- constructorParams='handler'/>
-
- <ExportAllCaracteristicAction id='exportAllCaracteristicAction'
- constructorParams='handler'/>
-
- <ImportProtocolSpeciesAction id='importProtocolSpeciesAction'
- constructorParams='handler'/>
-
- <ExportProtocolSpeciesAction id='exportProtocolSpeciesAction'
- constructorParams='handler'/>
-
<SwingValidatorMessageTableModel id='errorTableModel'/>
<BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'
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-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -31,7 +31,6 @@
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.MainUI;
import fr.ifremer.tutti.ui.swing.MainUIHandler;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUI;
@@ -98,12 +97,12 @@
//------------------------------------------------------------------------//
@Override
- protected EditProtocolSpeciesTableModel getTableModel() {
+ public EditProtocolSpeciesTableModel getTableModel() {
return (EditProtocolSpeciesTableModel) getTable().getModel();
}
@Override
- protected JXTable getTable() {
+ public JXTable getTable() {
return ui.getSpeciesTable();
}
@@ -244,9 +243,7 @@
SwingValidator validator = ui.getValidator();
listenValidatorValid(validator, model);
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
- main.registerValidator(validator);
+ registerValidators(validator);
// create table model
@@ -361,8 +358,7 @@
if (log.isInfoEnabled()) {
log.info("closing: " + ui);
}
- MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName());
- main.clearValidators();
+ clearValidators();
}
@Override
@@ -373,7 +369,7 @@
result = answer == JOptionPane.NO_OPTION;
if (answer == JOptionPane.YES_OPTION) {
ActionEvent event = new ActionEvent(nextScreen, nextScreen.ordinal(), null);
- ui.getSaveProtocolAction().actionPerformed(event);
+ doAction(ui.getSaveButton(), event);
}
}
return result;
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.css (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.css 2013-02-05 09:19:16 UTC (rev 330)
@@ -0,0 +1,23 @@
+/*
+ * #%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%
+ */
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.css
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.jaxx (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.jaxx 2013-02-05 09:19:16 UTC (rev 330)
@@ -0,0 +1,136 @@
+<!--
+ #%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%
+ -->
+<JPanel id='homePanel' layout='{new BorderLayout()}'>
+ <!--implements='fr.ifremer.tutti.ui.swing.TuttiUI<SelectCruiseUIModel, SelectCruiseUIHandler>'>-->
+
+ <import>
+
+ fr.ifremer.tutti.ui.swing.TuttiUI
+ fr.ifremer.tutti.ui.swing.TuttiUIContext
+ fr.ifremer.tutti.ui.swing.util.ActionListCellRenderer
+
+ jaxx.runtime.validator.swing.SwingValidatorMessageTableModel
+
+ static org.nuiton.i18n.I18n._
+ </import>
+
+ <!--<script><![CDATA[-->
+
+ <!--protected TuttiUIContext uiContext;-->
+
+ <!--public SelectCruiseUI(TuttiUI parentUI) {-->
+ <!--JAXXUtil.initContext(this, parentUI);-->
+ <!--uiContext = parentUI.getHandler().getContext();-->
+ <!--SelectCruiseUIHandler handler =-->
+ <!--new SelectCruiseUIHandler(parentUI, this);-->
+ <!--setContextValue(handler);-->
+ <!--handler.beforeInitUI();-->
+ <!--}-->
+
+ <!--protected void $afterCompleteSetup() {-->
+ <!--handler.afterInitUI();-->
+ <!--}-->
+ <!--]]></script>-->
+
+ <!--<SelectCruiseUIHandler id='handler'-->
+ <!--initializer='getContextValue(SelectCruiseUIHandler.class)'/>-->
+
+ <!--<SelectCruiseUIModel id='model'-->
+ <!--initializer='getContextValue(SelectCruiseUIModel.class)'/>-->
+
+ <SwingValidatorMessageTableModel id='errorTableModel'/>
+
+ <!--<BeanValidator id='validator' bean='model' errorTableModel='errorTableModel'-->
+ <!--uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>-->
+ <!--<field name='program' component='programCombobox'/>-->
+ <!--<field name='cruise' component='cruiseCombobox'/>-->
+ <!--<field name='protocol' component='protocolCombobox'/>-->
+ <!--</BeanValidator>-->
+
+ <!--<Table fill='both' constraints='BorderLayout.CENTER'>-->
+ <!--<row>-->
+ <!--<cell anchor='west'>-->
+ <!--<JLabel id='programLabel'/>-->
+ <!--</cell>-->
+ <!--<cell weightx='1.0'>-->
+ <!--<BeanComboBox id='programCombobox' constructorParams='this'-->
+ <!--genericType='Program'/>-->
+ <!--</cell>-->
+ <!--<cell>-->
+ <!--<JPanel layout='{new GridLayout(1,0)}'>-->
+ <!--<JButton id='editProgramButton'/>-->
+ <!--<!–onActionPerformed='handler.showSelectedProgram()'/>–>-->
+ <!--<JButton id='newProgramButton'/>-->
+ <!--<!–onActionPerformed='handler.showNewProgram()'/>–>-->
+ <!--</JPanel>-->
+ <!--</cell>-->
+ <!--</row>-->
+ <!--<row>-->
+ <!--<cell>-->
+ <!--<JLabel id='cruiseLabel'/>-->
+ <!--</cell>-->
+ <!--<cell>-->
+ <!--<BeanComboBox id='cruiseCombobox' constructorParams='this'-->
+ <!--genericType='Cruise'/>-->
+ <!--</cell>-->
+ <!--<cell>-->
+ <!--<JPanel layout='{new GridLayout(1,0)}'>-->
+ <!--<JButton id='editCruiseButton'/>-->
+ <!--<!–onActionPerformed='handler.showSelectedCruise()'/>–>-->
+ <!--<JButton id='newCruiseButton'/>-->
+ <!--<!–onActionPerformed='handler.showNewCruise()'/>–>-->
+ <!--</JPanel>-->
+ <!--</cell>-->
+ <!--</row>-->
+ <!--<row>-->
+ <!--<cell>-->
+ <!--<JLabel id='protocolLabel'/>-->
+ <!--</cell>-->
+ <!--<cell>-->
+ <!--<BeanComboBox id='protocolCombobox' constructorParams='this'-->
+ <!--genericType='TuttiProtocol'/>-->
+ <!--</cell>-->
+ <!--<cell>-->
+ <!--<JPanel layout='{new GridLayout(1,0)}'>-->
+ <!--<JComboBox id='editProtocolComboBox'-->
+ <!--onMouseEntered='if (editProtocolComboBox.isEnabled()) { editProtocolComboBox.showPopup(); }'-->
+ <!--onActionPerformed='handler.startExistingProtocolAction(event)'/>-->
+ <!--<JComboBox id='newProtocolComboBox'-->
+ <!--onMouseEntered='newProtocolComboBox.showPopup()'-->
+ <!--onActionPerformed='handler.startNewProtocolAction(event)'/>-->
+ <!--</JPanel>-->
+ <!--</cell>-->
+ <!--</row>-->
+ <!--<row>-->
+ <!--<cell columns='3'>-->
+ <!--<JPanel layout='{new GridLayout(1,0)}'>-->
+ <!--<JButton id='editCatchesButton'/>-->
+ <!--<!–onActionPerformed='handler.showFillCatches()'/>–>-->
+ <!--<JButton id='validateCatchesButton'/>-->
+ <!--<!–onActionPerformed='handler.showValidateCatches()'/>–>-->
+ <!--</JPanel>-->
+ <!--</cell>-->
+ <!--</row>-->
+ <!--</Table>-->
+</JPanel>
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUI.jaxx
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUIHandler.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -0,0 +1,32 @@
+package fr.ifremer.tutti.ui.swing.content.referential;
+
+/*
+ * #%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 tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class ManageReferentialUIHandler {
+}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageReferentialUIHandler.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -29,7 +29,7 @@
import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.service.TuttiServiceTechnicalException;
-import jaxx.runtime.JAXXContext;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import jaxx.runtime.JAXXUtil;
import jaxx.runtime.context.JAXXContextEntryDef;
import org.apache.commons.beanutils.PropertyUtils;
@@ -74,42 +74,54 @@
private static final JAXXContextEntryDef<TuttiProtocol> PROTOCOL_ENTRY =
JAXXUtil.newContextEntryDef("loadedProtocol", TuttiProtocol.class);
- public static Program getProgram(JAXXContext context) {
- return PROGRAM_ENTRY.getContextValue(context);
+// public static Program getProgram(JAXXContext context) {
+// return PROGRAM_ENTRY.getContextValue(context);
+// }
+
+// public static Cruise getCruise(JAXXContext context) {
+// return CRUISE_ENTRY.getContextValue(context);
+// }
+
+// public static TuttiProtocol getProtocol(JAXXContext context) {
+// return PROTOCOL_ENTRY.getContextValue(context);
+// }
+
+ public static Program getProgram(TuttiUIContext context) {
+ return PROGRAM_ENTRY.getContextValue(context.getMainUI());
}
- public static Cruise getCruise(JAXXContext context) {
- return CRUISE_ENTRY.getContextValue(context);
+ public static Cruise getCruise(TuttiUIContext context) {
+ return CRUISE_ENTRY.getContextValue(context.getMainUI());
}
- public static TuttiProtocol getProtocol(JAXXContext context) {
- return PROTOCOL_ENTRY.getContextValue(context);
+ public static TuttiProtocol getProtocol(TuttiUIContext context) {
+ return PROTOCOL_ENTRY.getContextValue(context.getMainUI());
}
- public static void setProgram(JAXXContext context, Program value) {
+ public static void setProgram(TuttiUIContext context, Program value) {
if (value == null) {
- PROGRAM_ENTRY.removeContextValue(context);
+ PROGRAM_ENTRY.removeContextValue(context.getMainUI());
} else {
- PROGRAM_ENTRY.setContextValue(context, value);
+ PROGRAM_ENTRY.setContextValue(context.getMainUI(), value);
}
}
- public static void setCruise(JAXXContext context, Cruise value) {
+ public static void setCruise(TuttiUIContext context, Cruise value) {
if (value == null) {
- CRUISE_ENTRY.removeContextValue(context);
+ CRUISE_ENTRY.removeContextValue(context.getMainUI());
} else {
- CRUISE_ENTRY.setContextValue(context, value);
+ CRUISE_ENTRY.setContextValue(context.getMainUI(), value);
}
}
- public static void setProtocol(JAXXContext context, TuttiProtocol value) {
+ public static void setProtocol(TuttiUIContext context, TuttiProtocol value) {
if (value == null) {
- PROTOCOL_ENTRY.removeContextValue(context);
+ PROTOCOL_ENTRY.removeContextValue(context.getMainUI());
} else {
- PROTOCOL_ENTRY.setContextValue(context, value);
+ PROTOCOL_ENTRY.setContextValue(context.getMainUI(), value);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java 2013-02-05 09:19:16 UTC (rev 330)
@@ -94,13 +94,13 @@
* @return the table model handled byt the main table.
* @since 0.2
*/
- protected abstract AbstractTuttiTableModel<R> getTableModel();
+ public abstract AbstractTuttiTableModel<R> getTableModel();
/**
* @return the main table of the ui.
* @since 0.2
*/
- protected abstract JXTable getTable();
+ public abstract JXTable getTable();
/**
* Validates the given row.
Added: trunk/tutti-ui-swing/src/main/resources/META-INF/aop.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/META-INF/aop.xml (rev 0)
+++ trunk/tutti-ui-swing/src/main/resources/META-INF/aop.xml 2013-02-05 09:19:16 UTC (rev 330)
@@ -0,0 +1,41 @@
+<!--
+ #%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%
+ -->
+<!DOCTYPE aspectj PUBLIC
+ "-//AspectJ//DTD//EN"
+ "http://www.eclipse.org/aspectj/dtd/aspectj.dtd">
+<aspectj>
+ <weaver options="-verbose"/>
+ <aspects>
+ <concrete-aspect name="org.nuiton.profiling.NuitonTraceTestAspect"
+ extends="org.nuiton.profiling.NuitonTrace">
+ <pointcut name="executeMethod"
+ expression="
+ execution(* fr.ifremer.tutti.ui.swing.util..*(..))
+ ||execution(* fr.ifremer.tutti.ui.swing.content..*(..))
+ ||execution(* org.nuiton.util.decorator..*(..))
+ ||execution(* jaxx.runtime.swing.editor.bean.BeanComboBox.*(..))
+ "/>
+ </concrete-aspect>
+ </aspects>
+</aspectj>
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/resources/META-INF/aop.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-02-05 09:19:16 UTC (rev 330)
@@ -50,15 +50,20 @@
tutti.action.exportProtocolSpecies.tip=Exporter les espèces du protocole
tutti.action.generate=Générer
tutti.action.generateCampaignName=Générer le nom
+tutti.action.importCasino=Import Casino
+tutti.action.importCasino.tip=Import Casino
tutti.action.importProtocol=Importer
tutti.action.importProtocol.tip=Importer un protocole
tutti.action.importProtocolCaracteristic=Importer les caractéristiques
tutti.action.importProtocolCaracteristic.tip=importer les caractéristiques dans le protocole
tutti.action.importProtocolSpecies=Importer les espèces
tutti.action.importProtocolSpecies.tip=importer les espèces dans le protocole
+tutti.action.importPupitri=Import Pupitri
+tutti.action.importPupitri.tip=Import Pupitri
tutti.action.new=Nouveau
tutti.action.newCruise=Nouveau
tutti.action.newCruise.tip=Créer une nouvelle campagne
+tutti.action.newFishingOperation.tip=Créer une nouvelle opération de pêche
tutti.action.newProgram=Nouveau
tutti.action.newProgram.tip=Créer une nouvelle série de campagne
tutti.action.newProtocol=Nouveau
@@ -87,6 +92,7 @@
tutti.action.saveProtocol.tip=Enregistrer le protocol
tutti.action.selectCruise=Sélectionner une campagne
tutti.action.selectCruise.tip=Sélectionner la campagne à utiliser
+tutti.action.selectFishingOperation.tip=Chargement d'une opération de pêche
tutti.action.site=Site
tutti.action.site.tip=Accéder au site du projet Tutti
tutti.action.splitSpeciesBatch=Catégoriser le lot
Modified: trunk/tutti-ui-swing/src/main/resources/log4j.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/log4j.properties 2013-02-05 09:15:28 UTC (rev 329)
+++ trunk/tutti-ui-swing/src/main/resources/log4j.properties 2013-02-05 09:19:16 UTC (rev 330)
@@ -38,5 +38,8 @@
# tutti levels
log4j.logger.fr.ifremer=INFO
-log4j.logger.org.nuiton.util=INFO
+log4j.logger.fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler=WARN
+log4j.logger.fr.ifremer.tutti.ui.swing.util.table=WARN
+log4j.logger.org.nuiton.util=WARN
log4j.logger.org.nuiton.util.ApplicationUpdater=DEBUG
+#log4j.logger.jaxx.runtime.swing.editor.bean.BeanComboBox=DEBUG
1
0
r329 - trunk/tutti-service/src/main/java/fr/ifremer/tutti/service
by tchemit@users.forge.codelutin.com 05 Feb '13
by tchemit@users.forge.codelutin.com 05 Feb '13
05 Feb '13
Author: tchemit
Date: 2013-02-05 10:15:28 +0100 (Tue, 05 Feb 2013)
New Revision: 329
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/329
Log:
Improve decorator api
Added:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDecorator.java
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-02-05 09:14:56 UTC (rev 328)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-02-05 09:15:28 UTC (rev 329)
@@ -39,10 +39,8 @@
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
import fr.ifremer.tutti.persistence.entities.referential.Zone;
-import org.apache.commons.jxpath.JXPathContext;
import org.nuiton.util.decorator.Decorator;
import org.nuiton.util.decorator.DecoratorProvider;
-import org.nuiton.util.decorator.MultiJXPathDecorator;
import java.io.Serializable;
@@ -110,26 +108,26 @@
@Override
protected void loadDecorators() {
- registerMultiJXPathDecorator(Program.class, "${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Cruise.class, "${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(TuttiProtocol.class, "${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(FishingOperation.class, "${stationNumber}$s#${fishingOperationNumber}$s#${multirigAggregation}$s#${gearShootingStartDate}$td/%4$tm/%4$tY", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Zone.class, "${label}$s#${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(Program.class, "${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(Cruise.class, "${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(TuttiProtocol.class, "${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(FishingOperation.class, "${stationNumber}$s#${fishingOperationNumber}$s#${multirigAggregation}$s#${gearShootingStartDate}$td/%4$tm/%4$tY", SEPARATOR, " - ");
+ registerTuttiDecorator(Zone.class, "${label}$s#${name}$s", SEPARATOR, " - ");
// registerMultiJXPathDecorator(Vessel.class, "${name}$s#${internalRegistrationCode}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Country.class, "${label}$s#${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Gear.class, "${label}$s#${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Person.class, "${firstName}$s#${lastName}$s#${department}$s", SEPARATOR, " ");
- registerMultiJXPathDecorator(FishingOperationLocation.class, "${label}$s#${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Caracteristic.class, "${parameterName}$s#${matrixName}$s#${fractionName}$s#${methodName}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Caracteristic.class, CARACTERISTIC_WITH_UNIT, "${parameterName}$s#${matrixName}$s#${fractionName}$s#${methodName}$s (${unit}$s)", SEPARATOR, " - ");
- registerMultiJXPathDecorator(CaracteristicQualitativeValue.class, "${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Species.class, "${refTaxCode}$s#${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(Country.class, "${label}$s#${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(Gear.class, "${label}$s#${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(Person.class, "${firstName}$s#${lastName}$s#${department}$s", SEPARATOR, " ");
+ registerTuttiDecorator(FishingOperationLocation.class, "${label}$s#${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(Caracteristic.class, "${parameterName}$s#${matrixName}$s#${fractionName}$s#${methodName}$s", SEPARATOR, " - ");
+// registerMultiJXPathDecorator(Caracteristic.class, CARACTERISTIC_WITH_UNIT, "${parameterName}$s#${matrixName}$s#${fractionName}$s#${methodName}$s (${unit}$s)", SEPARATOR, " - ");
+ registerTuttiDecorator(CaracteristicQualitativeValue.class, "${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(Species.class, "${refTaxCode}$s#${name}$s", SEPARATOR, " - ");
// registerMultiJXPathDecorator(Species.class, SPECIES_BY_CRUISE_CODE, "${cruiseCode}$s#${refTaxCode}$s#${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Species.class, SPECIES_BY_REF_TAX_CODE, "${refTaxCode}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Species.class, SPECIES_BY_GENUS, "${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(SpeciesProtocol.class, "${speciesId}", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Attachment.class, "${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(LabelAware.class, "${label}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(Species.class, SPECIES_BY_REF_TAX_CODE, "${refTaxCode}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(Species.class, SPECIES_BY_GENUS, "${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(SpeciesProtocol.class, "${speciesId}", SEPARATOR, " - ");
+ registerTuttiDecorator(Attachment.class, "${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(LabelAware.class, "${label}$s", SEPARATOR, " - ");
registerDecorator(new Decorator<Float>(Float.class) {
private static final long serialVersionUID = 1L;
@@ -138,13 +136,23 @@
return bean == null ? "" : String.valueOf(bean);
}
});
- registerDecorator(new VesselMultiJXPathDecorator());
+ registerDecorator(new VesselDecorator());
- registerDecorator(SPECIES_BY_CRUISE_CODE, new SpeciesMultiJXPathDecorator());
+ registerDecorator(SPECIES_BY_CRUISE_CODE, new SpeciesDecorator());
+ registerTuttiDecorator(Caracteristic.class, CARACTERISTIC_WITH_UNIT, "${parameterName}$s#${matrixName}$s#${fractionName}$s#${methodName}$s (${unit}$s)", SEPARATOR, " - ");
}
+
+ public void registerTuttiDecorator(Class<?> klass, String expression, String separator, String separatorReplacement) {
+ super.registerDecorator(TuttiDecorator.newDecorator(klass, expression, separator, separatorReplacement));
+ }
+
+ public void registerTuttiDecorator(Class<?> klass, String name, String expression, String separator, String separatorReplacement) {
+ super.registerDecorator(name, TuttiDecorator.newDecorator(klass, expression, separator, separatorReplacement));
+ }
};
}
+
static {
n_("tutti.property.protocol");
n_("tutti.property.label");
@@ -180,57 +188,42 @@
n_("tutti.property.caracteristic");
}
- public static class SpeciesMultiJXPathDecorator extends MultiJXPathDecorator<Species> implements Cloneable {
+ public static class SpeciesDecorator extends TuttiDecorator<Species> implements Cloneable {
private static final long serialVersionUID = 1L;
- public SpeciesMultiJXPathDecorator() throws IllegalArgumentException, NullPointerException {
+ public SpeciesDecorator() throws IllegalArgumentException, NullPointerException {
super(Species.class, "${cruiseCode}$s#${refTaxCode}$s#${name}$s", DecoratorService.SEPARATOR, " - ");
}
@Override
- protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, String token) {
- Comparable result = super.getTokenValue(jxcontext, token);
+ protected Object onNullValue(Species bean, String token) {
+ Object result = null;
if ("cruiseCode".equals(token)) {
- if (result == null || "null".equals(result)) {
- result = _("tutti.propety.no.species.cruiseCode");
- }
+ result = _("tutti.propety.no.species.cruiseCode");
}
return result;
}
-
- @Override
- public Object clone() throws CloneNotSupportedException {
- return super.clone();
- }
}
- public static class VesselMultiJXPathDecorator extends MultiJXPathDecorator<Vessel> implements Cloneable {
+ public static class VesselDecorator extends TuttiDecorator<Vessel> implements Cloneable {
private static final long serialVersionUID = 1L;
- public VesselMultiJXPathDecorator() throws IllegalArgumentException, NullPointerException {
+ public VesselDecorator() throws IllegalArgumentException, NullPointerException {
super(Vessel.class, "${name}$s#${internalRegistrationCode}$s", DecoratorService.SEPARATOR, " - ");
}
@Override
- protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, String token) {
- Comparable result = super.getTokenValue(jxcontext, token);
+ protected Object onNullValue(Vessel bean, String token) {
+ Object result = null;
if ("internalRegistrationCode".equals(token)) {
- if (result == null || "null".equals(result)) {
- result = _("tutti.propety.no.vessel.internalRegistrationCode");
- }
+ result = _("tutti.propety.no.vessel.internalRegistrationCode");
} else if ("name".equals(token)) {
- if (result == null || "null".equals(result)) {
- result = _("tutti.propety.no.vessel.name");
- }
+ result = _("tutti.propety.no.vessel.name");
}
return result;
}
-
- @Override
- public Object clone() throws CloneNotSupportedException {
- return super.clone();
- }
}
+
}
Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDecorator.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDecorator.java (rev 0)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDecorator.java 2013-02-05 09:15:28 UTC (rev 329)
@@ -0,0 +1,222 @@
+package fr.ifremer.tutti.service;
+
+/*
+ * #%L
+ * Tutti :: Service
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.base.Preconditions;
+import com.google.common.cache.CacheBuilder;
+import com.google.common.cache.CacheLoader;
+import com.google.common.cache.LoadingCache;
+import com.google.common.collect.Maps;
+import org.apache.commons.beanutils.PropertyUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.decorator.JXPathDecorator;
+import org.nuiton.util.decorator.MultiJXPathDecorator;
+
+import java.beans.PropertyDescriptor;
+import java.io.Serializable;
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ExecutionException;
+
+/**
+ * TODO
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since TODO
+ */
+public class TuttiDecorator<O> extends MultiJXPathDecorator<O> implements Cloneable {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(TuttiDecorator.class);
+
+ protected final Map<String, Method> tokenMethods;
+
+ protected final LoadingCache<O, String> cache;
+
+ protected boolean useCache;
+
+ public static <O> TuttiDecorator<O> newDecorator(Class<O> internalClass,
+ String expression,
+ String separator,
+ String separatorReplacement) {
+ return new TuttiDecorator<O>(internalClass, expression, separator, separatorReplacement);
+ }
+
+ protected TuttiDecorator(Class<O> internalClass,
+ String expression,
+ String separator,
+ String separatorReplacement) throws IllegalArgumentException, NullPointerException {
+ super(internalClass,
+ expression,
+ separator,
+ separatorReplacement);
+ tokenMethods = Maps.newHashMap();
+ PropertyDescriptor[] descriptors =
+ PropertyUtils.getPropertyDescriptors(type);
+
+ for (String token : getTokens()) {
+ Method m = null;
+ for (PropertyDescriptor propertyDescriptor : descriptors) {
+ if (propertyDescriptor.getName().equals(token)) {
+ m = propertyDescriptor.getReadMethod();
+ break;
+ }
+ }
+ if (m == null) {
+ throw new IllegalArgumentException("could not find the property " + token + " in " + type);
+ }
+ tokenMethods.put(token, m);
+ }
+
+ int i = 0;
+ for (Context<O> OContext : contexts) {
+ OContext.setComparator(new TuttiDecoratorComparator<O>(getProperty(i++)));
+ }
+
+ this.cache = CacheBuilder.newBuilder().build(new CacheLoader<O, String>() {
+ @Override
+ public String load(O key) throws Exception {
+ String result;
+ if (key == null) {
+ result = "";
+ } else {
+ result = TuttiDecorator.this.toString(key);
+ }
+ return result;
+ }
+ });
+ }
+
+ public boolean isUseCache() {
+ return useCache;
+ }
+
+ public void setUseCache(boolean useCache) {
+ this.useCache = useCache;
+ cache.invalidateAll();
+ }
+
+ @Override
+ public String toString(Object bean) {
+ O bean1 = (O) bean;
+ String result = null;
+
+ if (useCache) {
+
+ // try first in cache
+ try {
+ result = cache.get(bean1);
+ } catch (ExecutionException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Could not obtain from cache", e);
+ }
+ }
+ }
+ if (result == null) {
+
+ if (bean != null) {
+ Object[] args = new Object[nbToken];
+
+ String[] tokens = getTokens();
+ for (int i = 0; i < nbToken; i++) {
+ String token = tokens[i];
+ Object value = getValue(bean1, token);
+ if (value == null) {
+ value = onNullValue(bean1, token);
+ }
+ args[i] = value;
+ }
+
+ try {
+ result = String.format(getExpression(), args);
+ } catch (Exception eee) {
+ if (log.isErrorEnabled()) {
+ log.error("Could not format " + getExpression() + "" +
+ " with args : " + Arrays.toString(args), eee);
+ }
+ result = "";
+ }
+
+ if (useCache) {
+ cache.put(bean1, result);
+ }
+ }
+ }
+
+ return result;
+ }
+
+ protected Object getValue(O bean, String token) {
+ Method method = tokenMethods.get(token);
+ Preconditions.checkNotNull(method,
+ "Could not find method for token " + token);
+ Object result;
+ try {
+ result = method.invoke(bean);
+ } catch (Exception e) {
+ if (log.isErrorEnabled()) {
+ log.error("Could not obtain token [" + token + "] value", e);
+ }
+ result = "";
+ }
+ return result;
+ }
+
+ protected Object onNullValue(O bean, String token) {
+ return null;
+ }
+
+ @Override
+ public Object clone() throws CloneNotSupportedException {
+ return super.clone();
+ }
+
+ public static class TuttiDecoratorComparator<O> extends JXPathComparator<O> implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ protected String expression;
+
+ public TuttiDecoratorComparator(String expression) {
+ super(expression);
+ this.expression = expression;
+ }
+
+ @Override
+ public void init(JXPathDecorator<O> decorator, List<O> datas) {
+ clear();
+ TuttiDecorator<O> tuttDecorator = (TuttiDecorator<O>) decorator;
+ for (O data : datas) {
+ Comparable key = (Comparable) tuttDecorator.getValue(data, expression);
+ valueCache.put(data, key);
+ }
+ }
+ }
+}
Property changes on: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDecorator.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
1
0
r328 - trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities
by tchemit@users.forge.codelutin.com 05 Feb '13
by tchemit@users.forge.codelutin.com 05 Feb '13
05 Feb '13
Author: tchemit
Date: 2013-02-05 10:14:56 +0100 (Tue, 05 Feb 2013)
New Revision: 328
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/328
Log:
improve equals
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/AbstractTuttiEntity.java
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/AbstractTuttiEntity.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/AbstractTuttiEntity.java 2013-02-04 09:12:01 UTC (rev 327)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/AbstractTuttiEntity.java 2013-02-05 09:14:56 UTC (rev 328)
@@ -77,7 +77,7 @@
AbstractTuttiEntity that = (AbstractTuttiEntity) o;
- return !(id != null ? !id.equals(that.id) : that.id != null);
+ return ObjectUtils.equals(id, that.id);
}
1
0
r327 - trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol
by tchemit@users.forge.codelutin.com 04 Feb '13
by tchemit@users.forge.codelutin.com 04 Feb '13
04 Feb '13
Author: tchemit
Date: 2013-02-04 10:12:01 +0100 (Mon, 04 Feb 2013)
New Revision: 327
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/327
Log:
reuse existing species in species import (protoclo)
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportService.java
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-02-04 09:00:18 UTC (rev 326)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportService.java 2013-02-04 09:12:01 UTC (rev 327)
@@ -248,7 +248,12 @@
Species species = bean.getSpecies();
String id = species.getId();
- SpeciesProtocol sp = new SpeciesProtocol();
+ SpeciesProtocol sp = ids.get(id);
+ if (sp==null) {
+
+ // create a new one
+ sp = new SpeciesProtocol();
+ }
binder.copy(bean, sp);
sp.setId(id);
1
0
r326 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing
by kmorin@users.forge.codelutin.com 04 Feb '13
by kmorin@users.forge.codelutin.com 04 Feb '13
04 Feb '13
Author: kmorin
Date: 2013-02-04 10:00:18 +0100 (Mon, 04 Feb 2013)
New Revision: 326
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/326
Log:
debug first data deletion in the combo box
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIHandler.java
Modified: 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-02-04 08:39:17 UTC (rev 325)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIHandler.java 2013-02-04 09:00:18 UTC (rev 326)
@@ -187,7 +187,7 @@
int rowIndex = tableModel.getRowCount() - 1;
tableModel.fireTableRowsInserted(rowIndex, rowIndex);
- keyCombo.removeItem(selectedItem);
+ keyCombo.getData().remove(selectedItem);
selectFirstInCombo(keyCombo);
M model = getModel();
1
0
r325 - in trunk/tutti-persistence/src: main/xmi test/java/fr/ifremer/tutti/persistence/entities/protocol
by tchemit@users.forge.codelutin.com 04 Feb '13
by tchemit@users.forge.codelutin.com 04 Feb '13
04 Feb '13
Author: tchemit
Date: 2013-02-04 09:39:17 +0100 (Mon, 04 Feb 2013)
New Revision: 325
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/325
Log:
fix species and speciesProtocol api
Modified:
trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java
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-02-04 01:48:10 UTC (rev 324)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java 2013-02-04 08:39:17 UTC (rev 325)
@@ -70,7 +70,6 @@
" id: 1\n" +
" calcifySampleEnabled: true\n" +
" cruiseCode: BAR\n" +
- " genusSpecies: bar\n" +
" lengthStepPmfmId: 1394\n" +
" maturityEnabled: true\n" +
" sexEnabled: true\n" +
@@ -82,7 +81,6 @@
" calcifySampleEnabled: true\n" +
" countIfNoFrequencyEnabled: true\n" +
" cruiseCode: CHIN\n" +
- " genusSpecies: chinchard\n" +
" lengthStepPmfmId: 323\n" +
" maturityEnabled: true\n" +
" sexEnabled: true\n" +
@@ -149,7 +147,6 @@
Assert.assertEquals("1", sp1.getId());
Assert.assertEquals("11242", sp1.getSpeciesId());
Assert.assertEquals("BAR", sp1.getCruiseCode());
- Assert.assertEquals("bar", sp1.getGenusSpecies());
Assert.assertEquals("1394", sp1.getLengthStepPmfmId());
Assert.assertFalse(sp1.isAgeEnabled());
Assert.assertTrue(sp1.isCalcifySampleEnabled());
@@ -164,7 +161,6 @@
Assert.assertEquals("2", sp2.getId());
Assert.assertEquals("3835", sp2.getSpeciesId());
Assert.assertEquals("CHIN", sp2.getCruiseCode());
- Assert.assertEquals("chinchard", sp2.getGenusSpecies());
Assert.assertEquals("323", sp2.getLengthStepPmfmId());
Assert.assertTrue(sp2.isAgeEnabled());
Assert.assertTrue(sp2.isCalcifySampleEnabled());
@@ -190,7 +186,6 @@
sp1.setId("1");
sp1.setSpeciesId("11242");
sp1.setCruiseCode("BAR");
- sp1.setGenusSpecies("bar");
sp1.setLengthStepPmfmId("1394");
sp1.setCalcifySampleEnabled(true);
sp1.setMaturityEnabled(true);
@@ -202,7 +197,6 @@
sp2.setId("2");
sp2.setSpeciesId("3835");
sp2.setCruiseCode("CHIN");
- sp2.setGenusSpecies("chinchard");
sp2.setLengthStepPmfmId("323");
sp2.setAgeEnabled(true);
sp2.setCalcifySampleEnabled(true);
1
0
r324 - trunk/tutti-service/src/main/java/fr/ifremer/tutti/service
by tchemit@users.forge.codelutin.com 04 Feb '13
by tchemit@users.forge.codelutin.com 04 Feb '13
04 Feb '13
Author: tchemit
Date: 2013-02-04 02:48:10 +0100 (Mon, 04 Feb 2013)
New Revision: 324
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/324
Log:
fix decorator
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-02-04 01:35:24 UTC (rev 323)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-02-04 01:48:10 UTC (rev 324)
@@ -138,41 +138,9 @@
return bean == null ? "" : String.valueOf(bean);
}
});
- registerDecorator(new MultiJXPathDecorator<Vessel>(Vessel.class, "${name}$s#${internalRegistrationCode}$s", SEPARATOR, " - ") {
+ registerDecorator(new VesselMultiJXPathDecorator());
- private static final long serialVersionUID = 1L;
-
- @Override
- protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, String token) {
- Comparable result = super.getTokenValue(jxcontext, token);
- if ("internalRegistrationCode".equals(token)) {
- if (result == null || "null".equals(result)) {
- result = _("tutti.propety.no.vessel.internalRegistrationCode");
- }
- } else if ("name".equals(token)) {
- if (result == null || "null".equals(result)) {
- result = _("tutti.propety.no.vessel.name");
- }
- }
- return result;
- }
- });
-
- registerDecorator(SPECIES_BY_CRUISE_CODE, new MultiJXPathDecorator<Species>(Species.class, "${cruiseCode}$s#${refTaxCode}$s#${name}$s", SEPARATOR, " - ") {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, String token) {
- Comparable result = super.getTokenValue(jxcontext, token);
- if ("cruiseCode".equals(token)) {
- if (result == null || "null".equals(result)) {
- result = _("tutti.propety.no.species.cruiseCode");
- }
- }
- return result;
- }
- });
+ registerDecorator(SPECIES_BY_CRUISE_CODE, new SpeciesMultiJXPathDecorator());
}
};
}
@@ -212,4 +180,57 @@
n_("tutti.property.caracteristic");
}
+ public static class SpeciesMultiJXPathDecorator extends MultiJXPathDecorator<Species> implements Cloneable {
+
+ private static final long serialVersionUID = 1L;
+
+ public SpeciesMultiJXPathDecorator() throws IllegalArgumentException, NullPointerException {
+ super(Species.class, "${cruiseCode}$s#${refTaxCode}$s#${name}$s", DecoratorService.SEPARATOR, " - ");
+ }
+
+ @Override
+ protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, String token) {
+ Comparable result = super.getTokenValue(jxcontext, token);
+ if ("cruiseCode".equals(token)) {
+ if (result == null || "null".equals(result)) {
+ result = _("tutti.propety.no.species.cruiseCode");
+ }
+ }
+ return result;
+ }
+
+ @Override
+ public Object clone() throws CloneNotSupportedException {
+ return super.clone();
+ }
+ }
+
+ public static class VesselMultiJXPathDecorator extends MultiJXPathDecorator<Vessel> implements Cloneable {
+
+ private static final long serialVersionUID = 1L;
+
+ public VesselMultiJXPathDecorator() throws IllegalArgumentException, NullPointerException {
+ super(Vessel.class, "${name}$s#${internalRegistrationCode}$s", DecoratorService.SEPARATOR, " - ");
+ }
+
+ @Override
+ protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, String token) {
+ Comparable result = super.getTokenValue(jxcontext, token);
+ if ("internalRegistrationCode".equals(token)) {
+ if (result == null || "null".equals(result)) {
+ result = _("tutti.propety.no.vessel.internalRegistrationCode");
+ }
+ } else if ("name".equals(token)) {
+ if (result == null || "null".equals(result)) {
+ result = _("tutti.propety.no.vessel.name");
+ }
+ }
+ return result;
+ }
+
+ @Override
+ public Object clone() throws CloneNotSupportedException {
+ return super.clone();
+ }
+ }
}
1
0
r323 - in trunk: tutti-service/src/main/java/fr/ifremer/tutti/service tutti-service/src/main/resources/i18n tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split
by tchemit@users.forge.codelutin.com 04 Feb '13
by tchemit@users.forge.codelutin.com 04 Feb '13
04 Feb '13
Author: tchemit
Date: 2013-02-04 02:35:24 +0100 (Mon, 04 Feb 2013)
New Revision: 323
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/323
Log:
utilisation du cruiseCode (reste ?\195?\160 bien l'utiliser dans les combos)
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java
trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-02-04 01:30:03 UTC (rev 322)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-02-04 01:35:24 UTC (rev 323)
@@ -39,11 +39,14 @@
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
import fr.ifremer.tutti.persistence.entities.referential.Zone;
+import org.apache.commons.jxpath.JXPathContext;
import org.nuiton.util.decorator.Decorator;
import org.nuiton.util.decorator.DecoratorProvider;
+import org.nuiton.util.decorator.MultiJXPathDecorator;
import java.io.Serializable;
+import static org.nuiton.i18n.I18n._;
import static org.nuiton.i18n.I18n.n_;
/**
@@ -64,7 +67,7 @@
String getLabel();
}
- public static final String SPECIES_BY_CRUISE_CODE= "byCruiseCode";
+ public static final String SPECIES_BY_CRUISE_CODE = "byCruiseCode";
public static final String SPECIES_BY_REF_TAX_CODE = "byRefTaxCode";
@@ -95,6 +98,10 @@
return decoratorProvider.getDecoratorByType(type, name);
}
+ public static String getSpeciesContext(boolean protocolFilled) {
+ return protocolFilled ? SPECIES_BY_CRUISE_CODE : null;
+ }
+
@Override
public void setServiceContext(TuttiServiceContext context) {
super.setServiceContext(context);
@@ -108,7 +115,7 @@
registerMultiJXPathDecorator(TuttiProtocol.class, "${name}$s", SEPARATOR, " - ");
registerMultiJXPathDecorator(FishingOperation.class, "${stationNumber}$s#${fishingOperationNumber}$s#${multirigAggregation}$s#${gearShootingStartDate}$td/%4$tm/%4$tY", SEPARATOR, " - ");
registerMultiJXPathDecorator(Zone.class, "${label}$s#${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Vessel.class, "${name}$s#${internalRegistrationCode}$s", SEPARATOR, " - ");
+// registerMultiJXPathDecorator(Vessel.class, "${name}$s#${internalRegistrationCode}$s", SEPARATOR, " - ");
registerMultiJXPathDecorator(Country.class, "${label}$s#${name}$s", SEPARATOR, " - ");
registerMultiJXPathDecorator(Gear.class, "${label}$s#${name}$s", SEPARATOR, " - ");
registerMultiJXPathDecorator(Person.class, "${firstName}$s#${lastName}$s#${department}$s", SEPARATOR, " ");
@@ -117,7 +124,7 @@
registerMultiJXPathDecorator(Caracteristic.class, CARACTERISTIC_WITH_UNIT, "${parameterName}$s#${matrixName}$s#${fractionName}$s#${methodName}$s (${unit}$s)", SEPARATOR, " - ");
registerMultiJXPathDecorator(CaracteristicQualitativeValue.class, "${name}$s", SEPARATOR, " - ");
registerMultiJXPathDecorator(Species.class, "${refTaxCode}$s#${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Species.class, SPECIES_BY_CRUISE_CODE, "${cruiseCode}$s#${refTaxCode}$s#${name}$s", SEPARATOR, " - ");
+// registerMultiJXPathDecorator(Species.class, SPECIES_BY_CRUISE_CODE, "${cruiseCode}$s#${refTaxCode}$s#${name}$s", SEPARATOR, " - ");
registerMultiJXPathDecorator(Species.class, SPECIES_BY_REF_TAX_CODE, "${refTaxCode}$s", SEPARATOR, " - ");
registerMultiJXPathDecorator(Species.class, SPECIES_BY_GENUS, "${name}$s", SEPARATOR, " - ");
registerMultiJXPathDecorator(SpeciesProtocol.class, "${speciesId}", SEPARATOR, " - ");
@@ -131,6 +138,41 @@
return bean == null ? "" : String.valueOf(bean);
}
});
+ registerDecorator(new MultiJXPathDecorator<Vessel>(Vessel.class, "${name}$s#${internalRegistrationCode}$s", SEPARATOR, " - ") {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, String token) {
+ Comparable result = super.getTokenValue(jxcontext, token);
+ if ("internalRegistrationCode".equals(token)) {
+ if (result == null || "null".equals(result)) {
+ result = _("tutti.propety.no.vessel.internalRegistrationCode");
+ }
+ } else if ("name".equals(token)) {
+ if (result == null || "null".equals(result)) {
+ result = _("tutti.propety.no.vessel.name");
+ }
+ }
+ return result;
+ }
+ });
+
+ registerDecorator(SPECIES_BY_CRUISE_CODE, new MultiJXPathDecorator<Species>(Species.class, "${cruiseCode}$s#${refTaxCode}$s#${name}$s", SEPARATOR, " - ") {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, String token) {
+ Comparable result = super.getTokenValue(jxcontext, token);
+ if ("cruiseCode".equals(token)) {
+ if (result == null || "null".equals(result)) {
+ result = _("tutti.propety.no.species.cruiseCode");
+ }
+ }
+ return result;
+ }
+ });
}
};
}
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-02-04 01:30:03 UTC (rev 322)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-02-04 01:35:24 UTC (rev 323)
@@ -38,4 +38,7 @@
tutti.property.user=Utilisateur
tutti.property.vessel=Navire
tutti.property.zone=Zone
+tutti.propety.no.species.cruiseCode=\#
+tutti.propety.no.vessel.internalRegistrationCode=Immatriculation inconnu
+tutti.propety.no.vessel.name=Nom inconnu
tutti.service.config=Configuration des services de Tutti
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-02-04 01:30:03 UTC (rev 322)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-02-04 01:35:24 UTC (rev 323)
@@ -40,6 +40,7 @@
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.service.DecoratorService;
import fr.ifremer.tutti.ui.swing.TuttiUI;
import fr.ifremer.tutti.ui.swing.content.operation.AbstractTuttiBatchTableUIHandler;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
@@ -455,7 +456,8 @@
HashMultimap.create();
- if (context.isProtocolFilled()) {
+ boolean protocolFilled = context.isProtocolFilled();
+ if (protocolFilled) {
// get loaded protocol
@@ -537,7 +539,7 @@
addColumnToModel(columnModel,
null,
- newTableCellRender(Species.class),
+ newTableCellRender(Species.class, DecoratorService.getSpeciesContext(protocolFilled)),
SpeciesBatchTableModel.SPECIES);
}
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-02-04 01:30:03 UTC (rev 322)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-02-04 01:35:24 UTC (rev 323)
@@ -30,6 +30,7 @@
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.service.DecoratorService;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.TuttiUI;
@@ -106,9 +107,12 @@
initUI(ui);
+ boolean protocolFilled = context.isProtocolFilled();
+
initBeanComboBox(ui.getSpeciesComboBox(),
Lists.<Species>newArrayList(),
- null);
+ null,
+ DecoratorService.getSpeciesContext(protocolFilled));
Caracteristic caracteristic =
persistenceService.getSortedUnsortedCaracteristic();
1
0
r322 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing
by tchemit@users.forge.codelutin.com 04 Feb '13
by tchemit@users.forge.codelutin.com 04 Feb '13
04 Feb '13
Author: tchemit
Date: 2013-02-04 02:30:03 +0100 (Mon, 04 Feb 2013)
New Revision: 322
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/322
Log:
add new init with decorator
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java 2013-02-04 00:42:26 UTC (rev 321)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java 2013-02-04 01:30:03 UTC (rev 322)
@@ -291,13 +291,22 @@
List<E> data,
E selectedData) {
+ initBeanComboBox(comboBox, data, selectedData, null);
+ }
+
+ protected <E extends Serializable> void initBeanComboBox(
+ BeanComboBox<E> comboBox,
+ List<E> data,
+ E selectedData,
+ String decoratorContext) {
+
Preconditions.checkNotNull(comboBox, "No comboBox!");
Class<E> beanType = comboBox.getBeanType();
Preconditions.checkNotNull(beanType, "No beanType on the combobox!");
- Decorator<E> decorator = getDecorator(beanType, null);
+ Decorator<E> decorator = getDecorator(beanType, decoratorContext);
if (data == null) {
data = Lists.newArrayList();
1
0