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
02 Mar '13
See <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/421/…>
Changes:
[Tony Chemit] move MainUI to content pckage
------------------------------------------
projectStarted fr.ifremer.tutti:tutti-ui-swing:1.0.2-SNAPSHOT
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: UI 1.0.2-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 48.5 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma… (2 KB at 35.2 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/2.…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/2.5.11-…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/2.… (808 B at 16.1 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/2.5.11-… (808 B at 15.5 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-valid…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/nuiton-…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-valid… (2 KB at 50.7 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/nuiton-… (2 KB at 49.3 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ru…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 46.7 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ru… (2 KB at 26.5 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-va…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 27.8 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-va… (2 KB at 23.7 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 39.0 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi… (2 KB at 31.9 KB/sec)
mojoStarted org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tutti-ui-swing ---
[INFO] Deleting <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
mojoSucceeded org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
mojoStarted org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
[INFO]
[INFO] --- maven-enforcer-plugin:1.2:enforce (check-project-files) @ tutti-ui-swing ---
mojoSucceeded org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
mojoStarted org.nuiton.jaxx:jaxx-maven-plugin:2.5.11-SNAPSHOT(default)
[INFO]
[INFO] --- jaxx-maven-plugin:2.5.11-SNAPSHOT:generate (default) @ tutti-ui-swing ---
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 52.0 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co… (2 KB at 39.0 KB/sec)
[INFO] use project compile scope class-path
[INFO] Detects 28 modified jaxx file(s).
[ERROR] JAXX detects 1 error :
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:133
: Invalid XML: The markup in the document following the root element must be well-formed.
mojoFailed org.nuiton.jaxx:jaxx-maven-plugin:2.5.11-SNAPSHOT(default)
projectFailed fr.ifremer.tutti:tutti-ui-swing:1.0.2-SNAPSHOT
1
2
r517 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing: . content content/db util
by tchemit@users.forge.codelutin.com 02 Mar '13
by tchemit@users.forge.codelutin.com 02 Mar '13
02 Mar '13
Author: tchemit
Date: 2013-03-02 17:44:34 +0100 (Sat, 02 Mar 2013)
New Revision: 517
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/517
Log:
refs #2056: [TECH] Am?\195?\169liorer le processus de mise ?\195?\160 jour de l'application
am?\195?\169liorations messages des mises ?\195?\160 jour
reformat
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateApplicationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateReferentialAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2013-03-02 16:30:00 UTC (rev 516)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2013-03-02 16:44:34 UTC (rev 517)
@@ -27,11 +27,11 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
+import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.persistence.ProgressionModel;
import fr.ifremer.tutti.persistence.config.TuttiPersistenceConfig;
import fr.ifremer.tutti.persistence.service.synchro.ReferentialSynchronizeResult;
import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.service.referential.TuttiReferentialSynchronizeService;
import fr.ifremer.tutti.ui.swing.util.action.TuttiActionUI;
import org.apache.commons.io.FileUtils;
@@ -57,11 +57,12 @@
private static final Log log =
LogFactory.getLog(TuttiApplicationUpdaterCallBack.class);
+
public enum UpdateType {
JRE,
TUTTI,
I18N,
- DB
+ DB;
}
protected final TuttiUIContext context;
@@ -70,6 +71,8 @@
protected ProgressionModel progressionModel;
+ protected boolean applicationUpdated;
+
protected boolean dbUpdated;
public TuttiApplicationUpdaterCallBack(TuttiUIContext context, ProgressionModel progressionModel) {
@@ -81,6 +84,10 @@
this.types = Lists.newArrayList(types);
}
+ public boolean isApplicationUpdated() {
+ return applicationUpdated;
+ }
+
public boolean isDbUpdated() {
return dbUpdated;
}
@@ -148,6 +155,8 @@
if (doRestart) {
+ applicationUpdated = true;
+
if (updateTutti) {
TuttiPersistenceConfig persistenceConfig = context.getConfig().getServiceConfig().getPersistenceConfig();
@@ -163,12 +172,14 @@
throw new TuttiTechnicalException(
"could not delete i18n directory " + i18nDirectory, e);
}
-
}
- System.exit(RunTutti.UPATE_EXIT_CODE);
}
}
+ public void restart() {
+ System.exit(RunTutti.UPATE_EXIT_CODE);
+ }
+
@Override
public void aborted(String propertiesURL, Exception eee) {
if (log.isErrorEnabled()) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateApplicationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateApplicationAction.java 2013-03-02 16:30:00 UTC (rev 516)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateApplicationAction.java 2013-03-02 16:44:34 UTC (rev 517)
@@ -28,6 +28,7 @@
import fr.ifremer.tutti.ui.swing.TuttiApplicationUpdaterCallBack;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
+import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -60,7 +61,8 @@
@Override
protected void doAction() {
- TuttiApplicationConfig config = getContext().getConfig();
+ TuttiUIContext context = getContext();
+ TuttiApplicationConfig config = context.getConfig();
File current = config.getTuttiBasedir();
if (current == null || !current.exists()) {
@@ -80,11 +82,11 @@
ApplicationUpdater up = new ApplicationUpdater();
ProgressionModel progressionModel = new ProgressionModel();
- getContext().getActionUI().getModel().setProgressionModel(progressionModel);
+ context.getActionUI().getModel().setProgressionModel(progressionModel);
progressionModel.setMessage("Recherche de mises à jour de JRE / Tutti / I18N");
TuttiApplicationUpdaterCallBack callback =
- new TuttiApplicationUpdaterCallBack(getContext(), progressionModel);
+ new TuttiApplicationUpdaterCallBack(context, progressionModel);
callback.setTypes(TuttiApplicationUpdaterCallBack.UpdateType.JRE,
TuttiApplicationUpdaterCallBack.UpdateType.I18N,
@@ -94,6 +96,23 @@
dest,
false,
callback);
+
+ if (callback.isApplicationUpdated()) {
+
+ // tell user restart will be done
+
+ TuttiUIUtil.showSuccessMessage(
+ getUI(),
+ "Redémarrage de Tutti nécessaire...",
+ "La mise à jour nécessite le rédémarrage du Tutti.\nL'application va se fermer puis se réouvrir automatiquement."
+ );
+
+ callback.restart();
+
+ } else {
+
+ sendMessage("Aucune mise à jour de l'application détectée.");
+ }
// getContext().getActionUI().getModel().clear();
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateReferentialAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateReferentialAction.java 2013-03-02 16:30:00 UTC (rev 516)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateReferentialAction.java 2013-03-02 16:44:34 UTC (rev 517)
@@ -26,6 +26,7 @@
import fr.ifremer.tutti.persistence.ProgressionModel;
import fr.ifremer.tutti.ui.swing.TuttiApplicationUpdaterCallBack;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -57,7 +58,8 @@
@Override
protected void doAction() {
- TuttiApplicationConfig config = getContext().getConfig();
+ TuttiUIContext context = getContext();
+ TuttiApplicationConfig config = context.getConfig();
File current = config.getDataDirectory();
String url = config.getUpdateUrl();
@@ -69,9 +71,9 @@
File dest = new File(config.getTuttiBasedir(), "NEW");
ProgressionModel progressionModel = new ProgressionModel();
- getContext().getActionUI().getModel().setProgressionModel(progressionModel);
+ context.getActionUI().getModel().setProgressionModel(progressionModel);
progressionModel.setMessage("Recherche de mises à jour de base");
- TuttiApplicationUpdaterCallBack callback = new TuttiApplicationUpdaterCallBack(getContext(), progressionModel);
+ TuttiApplicationUpdaterCallBack callback = new TuttiApplicationUpdaterCallBack(context, progressionModel);
callback.setTypes(TuttiApplicationUpdaterCallBack.UpdateType.DB);
up.update(url,
current,
@@ -83,8 +85,8 @@
progressionModel.setMessage("Rechargement de la base de données");
- getContext().setDbLoaded(true);
- getContext().reloadPersistenceService();
+ context.setDbLoaded(true);
+ context.reloadPersistenceService();
} else {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java 2013-03-02 16:30:00 UTC (rev 516)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java 2013-03-02 16:44:34 UTC (rev 517)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.google.common.base.Preconditions;
import fr.ifremer.tutti.service.TuttiIOUtil;
import fr.ifremer.tutti.ui.swing.content.AbstractMainUITuttiAction;
import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
@@ -82,8 +83,8 @@
file = TuttiIOUtil.addExtensionIfMissing(file, ".zip");
- // ask user to confirm overwrite.
- doAction = TuttiUIUtil.askOverwriteFile(getUI(), file);
+ // ask user to confirm overwrite.
+ doAction = TuttiUIUtil.askOverwriteFile(getUI(), file);
}
}
return doAction;
@@ -97,7 +98,7 @@
@Override
protected void doAction() {
-
+ Preconditions.checkNotNull(file);
if (log.isInfoEnabled()) {
log.info("Will export db to " + file);
}
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-03-02 16:30:00 UTC (rev 516)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2013-03-02 16:44:34 UTC (rev 517)
@@ -132,11 +132,11 @@
return file == null ? incoming : new File(file);
}
- public static void showSuccessMessage(Component ui, String message) {
+ public static void showSuccessMessage(Component ui,String title, String message) {
JOptionPane.showMessageDialog(
ui,
message,
- "Success",
+ title,
JOptionPane.INFORMATION_MESSAGE,
UIManager.getIcon("info")
);
1
0
02 Mar '13
Author: tchemit
Date: 2013-03-02 17:30:00 +0100 (Sat, 02 Mar 2013)
New Revision: 516
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/516
Log:
fixes #1872: [IMP/EXP] - Import Allegro (ne pas ajouter les fichiers de configuration de tutti)
fixes #2071: [IMP/EXP] Demander une confirmation avant d'?\195?\169craser un fichier
fixes #2072: [IMP/EXP] Ajouter de mani?\195?\168re automatique l'extension au fichier lors des exports
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
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/protocol/ExportAllCaracteristicAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolCaracteristicAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolSpeciesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-03-02 16:03:05 UTC (rev 515)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-03-02 16:30:00 UTC (rev 516)
@@ -94,8 +94,10 @@
driver.clearAllCaches();
}
- DateFormat exportDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+ public static final DateFormat EXPORT_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");
+ public static final String EXPORT_DIRECTORY_FORMAT = "tutti-%s-%s";
+
/**
* Export db as an zip archive (including the attachments).
*
@@ -116,11 +118,14 @@
TuttiServiceConfig config = context.getConfig();
- File structureDirectory = new File(
- config.newTempFile("exportdb"),
- "tutti-" + config.getVersion() +
- exportDateFormat.format(context.currentDate()));
+ String directoryName = String.format(
+ EXPORT_DIRECTORY_FORMAT,
+ config.getVersion(),
+ EXPORT_DATE_FORMAT.format(context.currentDate()));
+ File structureDirectory = new File(config.newTempFile("exportdb"),
+ directoryName);
+
TuttiIOUtil.forceMkdir(structureDirectory,
"Could not create directory");
@@ -137,14 +142,6 @@
new File(structureDirectory, "meas_files"),
"Could not copy db attachment directory");
- TuttiIOUtil.copyFile(pConfig.getDbConfigurationPath(),
- structureDirectory,
- "Could not copy db configuration file");
-
- TuttiIOUtil.copyFile(pConfig.getDbEnumerationPath(),
- structureDirectory,
- "Could not copy db enumeration file");
-
//create zip
TuttiIOUtil.zip(structureDirectory, file,
"Could not create archive at " + file);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java 2013-03-02 16:03:05 UTC (rev 515)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java 2013-03-02 16:30:00 UTC (rev 516)
@@ -72,19 +72,27 @@
null,
"^.*\\.zip", _("tutti.file.zip")
);
- doAction = file != null;
- }
+ if (file == null) {
- if (doAction) {
- file = TuttiIOUtil.addExtensionIfMissing(file, ".zip");
+ // user cancel
+ doAction = false;
+ } else {
+
+ // add extension if missing
+ file = TuttiIOUtil.addExtensionIfMissing(file, ".zip");
+
+
+ // ask user to confirm overwrite.
+ doAction = TuttiUIUtil.askOverwriteFile(getUI(), file);
+ }
}
return doAction;
}
@Override
protected void releaseAction() {
+ file = null;
super.releaseAction();
- file = null;
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-03-02 16:03:05 UTC (rev 515)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-03-02 16:30:00 UTC (rev 516)
@@ -288,16 +288,10 @@
message = _("tutti.dialog.askCancelEditBeforeLeaving.cancelEditFishingOperation");
}
- int answer = getHandler().askCancelEditBeforeLeaving(message);
+ // ok will revert any modification by
+ // editing new fishing operation (if user says yes)
+ canContinue = handler.askCancelEditBeforeLeaving(message);
- switch (answer) {
- case JOptionPane.YES_OPTION:
-
- // ok will revert any modification by
- // editing new fishing operation
- canContinue = true;
- break;
- }
}
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-03-02 16:03:05 UTC (rev 515)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-03-02 16:30:00 UTC (rev 516)
@@ -409,20 +409,13 @@
// model is not valid, ask user to continue or not
- int answer = askCancelEditBeforeLeaving(
+ result = askCancelEditBeforeLeaving(
_("tutti.dialog.askCancelEditBeforeLeaving.cancelEditFishingOperation"));
- switch (answer) {
- case JOptionPane.YES_OPTION:
- // ok will revert any modification
- ActionEvent event = new ActionEvent(this, newIndex, null);
- doAction(ui.getCancelButton(), event);
- result = true;
- break;
- default:
-
- // other case, use cancel action
- result = false;
+ if (result) {
+ // ok will revert any modification
+ ActionEvent event = new ActionEvent(this, newIndex, null);
+ doAction(ui.getCancelButton(), event);
}
}
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-03-02 16:03:05 UTC (rev 515)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-03-02 16:30:00 UTC (rev 516)
@@ -196,20 +196,14 @@
} else {
// model is not valid, ask user to loose modification or cancel
- int answer = askCancelEditBeforeLeaving(
+ result = askCancelEditBeforeLeaving(
_("tutti.dialog.askCancelEditBeforeLeaving.cancelEditCatchBatch"));
- switch (answer) {
- case JOptionPane.YES_OPTION:
- // ok will revert any modification
- ActionEvent event = new ActionEvent(this, newIndex, null);
- doAction(ui.getCancelButton(), event);
- result = true;
- break;
- default:
+ if (result) {
- // other case, use cancel action
- result = false;
+ // ok will revert any modification
+ ActionEvent event = new ActionEvent(this, newIndex, null);
+ doAction(ui.getCancelButton(), event);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportAllCaracteristicAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportAllCaracteristicAction.java 2013-03-02 16:03:05 UTC (rev 515)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportAllCaracteristicAction.java 2013-03-02 16:30:00 UTC (rev 516)
@@ -74,9 +74,13 @@
null,
"^.*\\.csv", _("tutti.file.csv")
);
- doAction = file != null;
+ if (file == null) {
- if (doAction) {
+ // user cancel
+ doAction = false;
+ } else {
+
+ // add extension if missing
file = TuttiIOUtil.addExtensionIfMissing(file, ".csv");
}
}
@@ -85,8 +89,8 @@
@Override
protected void releaseAction() {
+ file = null;
super.releaseAction();
- file = null;
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolCaracteristicAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolCaracteristicAction.java 2013-03-02 16:03:05 UTC (rev 515)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolCaracteristicAction.java 2013-03-02 16:30:00 UTC (rev 516)
@@ -75,8 +75,13 @@
null,
"^.*\\.csv", _("tutti.file.csv")
);
- doAction = file != null;
- if (doAction) {
+ if (file == null) {
+
+ // user cancel
+ doAction = false;
+ } else {
+
+ // add extension if missing
file = TuttiIOUtil.addExtensionIfMissing(file, ".csv");
}
}
@@ -85,8 +90,8 @@
@Override
protected void releaseAction() {
+ file = null;
super.releaseAction();
- file = null;
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolSpeciesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolSpeciesAction.java 2013-03-02 16:03:05 UTC (rev 515)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolSpeciesAction.java 2013-03-02 16:30:00 UTC (rev 516)
@@ -77,8 +77,13 @@
null,
"^.*\\.csv", _("tutti.file.csv")
);
- doAction = file != null;
- if (doAction) {
+ if (file == null) {
+
+ // user cancel
+ doAction = false;
+ } else {
+
+ // add extension if missing
file = TuttiIOUtil.addExtensionIfMissing(file, ".csv");
}
}
@@ -87,8 +92,8 @@
@Override
protected void releaseAction() {
+ file = null;
super.releaseAction();
- file = null;
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java 2013-03-02 16:03:05 UTC (rev 515)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java 2013-03-02 16:30:00 UTC (rev 516)
@@ -25,6 +25,7 @@
*/
import com.ezware.oxbow.swingbits.util.Preconditions;
+import fr.ifremer.tutti.service.TuttiIOUtil;
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
@@ -74,15 +75,23 @@
null,
"^.*\\.csv", _("tutti.file.csv")
);
- doAction = file != null;
+ if (file == null) {
+
+ // user cancel
+ doAction = false;
+ } else {
+
+ // add extension if missing
+ file = TuttiIOUtil.addExtensionIfMissing(file, ".csv");
+ }
}
return doAction;
}
@Override
protected void releaseAction() {
+ file = null;
super.releaseAction();
- file = null;
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java 2013-03-02 16:03:05 UTC (rev 515)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java 2013-03-02 16:30:00 UTC (rev 516)
@@ -25,6 +25,7 @@
*/
import com.ezware.oxbow.swingbits.util.Preconditions;
+import fr.ifremer.tutti.service.TuttiIOUtil;
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
@@ -75,15 +76,23 @@
null,
"^.*\\.csv", _("tutti.file.csv")
);
- doAction = file != null;
+ if (file == null) {
+
+ // user cancel
+ doAction = false;
+ } else {
+
+ // add extension if missing
+ file = TuttiIOUtil.addExtensionIfMissing(file, ".csv");
+ }
}
return doAction;
}
@Override
protected void releaseAction() {
+ file = null;
super.releaseAction();
- file = null;
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java 2013-03-02 16:03:05 UTC (rev 515)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java 2013-03-02 16:30:00 UTC (rev 516)
@@ -25,6 +25,7 @@
*/
import com.ezware.oxbow.swingbits.util.Preconditions;
+import fr.ifremer.tutti.service.TuttiIOUtil;
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
@@ -74,15 +75,23 @@
null,
"^.*\\.csv", _("tutti.file.csv")
);
- doAction = file != null;
+ if (file == null) {
+
+ // user cancel
+ doAction = false;
+ } else {
+
+ // add extension if missing
+ file = TuttiIOUtil.addExtensionIfMissing(file, ".csv");
+ }
}
return doAction;
}
@Override
protected void releaseAction() {
+ file = null;
super.releaseAction();
- file = null;
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java 2013-03-02 16:03:05 UTC (rev 515)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java 2013-03-02 16:30:00 UTC (rev 516)
@@ -25,6 +25,7 @@
*/
import com.ezware.oxbow.swingbits.util.Preconditions;
+import fr.ifremer.tutti.service.TuttiIOUtil;
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
@@ -74,7 +75,15 @@
null,
"^.*\\.csv", _("tutti.file.csv")
);
- doAction = file != null;
+ if (file == null) {
+
+ // user cancel
+ doAction = false;
+ } else {
+
+ // add extension if missing
+ file = TuttiIOUtil.addExtensionIfMissing(file, ".csv");
+ }
}
return doAction;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java 2013-03-02 16:03:05 UTC (rev 515)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java 2013-03-02 16:30:00 UTC (rev 516)
@@ -81,8 +81,8 @@
@Override
protected void releaseAction() {
+ file = null;
super.releaseAction();
- file = null;
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java 2013-03-02 16:03:05 UTC (rev 515)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java 2013-03-02 16:30:00 UTC (rev 516)
@@ -81,8 +81,8 @@
@Override
protected void releaseAction() {
+ file = null;
super.releaseAction();
- file = null;
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java 2013-03-02 16:03:05 UTC (rev 515)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java 2013-03-02 16:30:00 UTC (rev 516)
@@ -80,8 +80,8 @@
@Override
protected void releaseAction() {
+ file = null;
super.releaseAction();
- file = null;
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java 2013-03-02 16:03:05 UTC (rev 515)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java 2013-03-02 16:30:00 UTC (rev 516)
@@ -80,8 +80,8 @@
@Override
protected void releaseAction() {
+ file = null;
super.releaseAction();
- file = null;
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-03-02 16:03:05 UTC (rev 515)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-03-02 16:30:00 UTC (rev 516)
@@ -29,13 +29,13 @@
import com.google.common.collect.Sets;
import fr.ifremer.tutti.persistence.entities.IdAware;
import fr.ifremer.tutti.service.DecoratorService;
-import fr.ifremer.tutti.ui.swing.content.AbstractMainUITuttiAction;
-import fr.ifremer.tutti.ui.swing.content.MainUI;
-import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import fr.ifremer.tutti.ui.swing.TuttiDataContext;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
+import fr.ifremer.tutti.ui.swing.content.AbstractMainUITuttiAction;
+import fr.ifremer.tutti.ui.swing.content.MainUI;
+import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.util.action.TuttiUIAction;
import fr.ifremer.tutti.ui.swing.util.editor.SimpleTimeEditor;
@@ -277,21 +277,20 @@
}
public int askSaveBeforeLeaving(String message) {
- int i = JOptionPane.showConfirmDialog(
+ int result = JOptionPane.showConfirmDialog(
getContext().getMainUI(),
message,
_("tutti.dialog.askSaveBeforeLeaving.title"),
JOptionPane.YES_NO_CANCEL_OPTION);
- return i;
+ return result;
}
- public int askCancelEditBeforeLeaving(String message) {
- int i = JOptionPane.showConfirmDialog(
+ public boolean askCancelEditBeforeLeaving(String message) {
+ boolean result = TuttiUIUtil.askQuestion(
getContext().getMainUI(),
message,
- _("tutti.dialog.askCancelEditBeforeLeaving.title"),
- JOptionPane.YES_NO_OPTION);
- return i;
+ _("tutti.dialog.askCancelEditBeforeLeaving.title"));
+ return result;
}
//------------------------------------------------------------------------//
//-- Internal methods --//
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-03-02 16:03:05 UTC (rev 515)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2013-03-02 16:30:00 UTC (rev 516)
@@ -26,6 +26,7 @@
import com.google.common.base.Preconditions;
import fr.ifremer.tutti.TuttiTechnicalException;
+import fr.ifremer.tutti.ui.swing.content.MainUI;
import jaxx.runtime.JAXXUtil;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.lang3.time.DurationFormatUtils;
@@ -151,11 +152,11 @@
);
}
- public static boolean askQuestion(Component ui, String message) {
+ public static boolean askQuestion(Component ui, String title, String message) {
int i = JOptionPane.showConfirmDialog(
ui,
message,
- "Question?",
+ title,
JOptionPane.YES_NO_OPTION);
return i == JOptionPane.YES_OPTION;
}
@@ -237,4 +238,13 @@
}
return textValue;
}
+
+ public static boolean askOverwriteFile(MainUI ui, File file) {
+ boolean result =
+ !file.exists() ||
+ askQuestion(ui,
+ _("tutti.dialog.askOverwriteFile.title"),
+ _("tutti.dialog.askOverwriteFile.message", file));
+ return result;
+ }
}
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-03-02 16:03:05 UTC (rev 515)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-03-02 16:30:00 UTC (rev 516)
@@ -179,6 +179,8 @@
tutti.dialog.askCancelEditBeforeLeaving.cancelEditCatchBatch=La capture modifiée n'est pas valide. Voulez-vous annuler les modifications ?
tutti.dialog.askCancelEditBeforeLeaving.cancelEditFishingOperation=Le trait modifié n'est pas valide. Voulez-vous annuler les modifications ?
tutti.dialog.askCancelEditBeforeLeaving.title=Modifications non enregistrées mais invalides
+tutti.dialog.askOverwriteFile.message=Le fichier %s existe déjà, confirmer pour l'écraser.
+tutti.dialog.askOverwriteFile.title=Confirmer l'écrasement d'un fichier...
tutti.dialog.askSaveBeforeLeaving.createFishingOperation=Le trait n'a pas été créé. Voulez-vous l'enregistrer ?
tutti.dialog.askSaveBeforeLeaving.saveCatchBatch=La capture a été modifiée. Voulez-vous enregistrer les modifications ?
tutti.dialog.askSaveBeforeLeaving.saveCruise=La campagne a été modifiée. Voulez-vous enregistrer les modifications ?
1
0
02 Mar '13
Author: tchemit
Date: 2013-03-02 17:03:05 +0100 (Sat, 02 Mar 2013)
New Revision: 515
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/515
Log:
- move tutti exception to persistence module
- no dep on adagio in our service (should only be visible from persistence module)
- refs #1872: [IMP/EXP] - Import Allegro (export tutti!)
- use nuiton-validator fixed validator
- optimize dependencies
Added:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiBusinessException.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiTechnicalException.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/InvalidBatchModelException.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiIOUtil.java
Removed:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/InvalidBatchModelException.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiBusinessException.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiTechnicalException.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiCollectionUniqueKeyValidator.java
Modified:
trunk/pom.xml
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfig.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfigOption.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java
trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties
trunk/tutti-service/pom.xml
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/AbstractTuttiService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiServiceContext.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfig.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportService.java
trunk/tutti-ui-swing/pom.xml
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportAllCaracteristicAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolCaracteristicAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolSpeciesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolCaracteristicAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolSpeciesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiErrorHelper.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.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/action/AbstractTuttiAction.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
trunk/tutti-ui-swing/src/main/resources/validators.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/pom.xml 2013-03-02 16:03:05 UTC (rev 515)
@@ -212,12 +212,6 @@
<classifier>tests</classifier>
</dependency>
- <dependency>
- <groupId>org.apache.struts.xwork</groupId>
- <artifactId>xwork-core</artifactId>
- <version>2.3.7</version>
- </dependency>
-
<!-- librairie Jaxx -->
<dependency>
<groupId>org.nuiton.jaxx</groupId>
Copied: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiBusinessException.java (from rev 513, trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiBusinessException.java)
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiBusinessException.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiBusinessException.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -0,0 +1,48 @@
+package fr.ifremer.tutti;
+
+/*
+ * #%L
+ * Tutti :: Persistence
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+/**
+ * To box any business exception.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class TuttiBusinessException extends RuntimeException {
+
+ private static final long serialVersionUID = 1L;
+
+ public TuttiBusinessException(String message) {
+ super(message);
+ }
+
+ public TuttiBusinessException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public TuttiBusinessException(Throwable cause) {
+ super(cause);
+ }
+}
Copied: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiTechnicalException.java (from rev 513, trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiTechnicalException.java)
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiTechnicalException.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiTechnicalException.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -0,0 +1,51 @@
+package fr.ifremer.tutti;
+
+/*
+ * #%L
+ * Tutti :: Persistence
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+/**
+ * Any techincal exception should be boxed in a such exception.
+ *
+ * @author tchemit <chemit(a)codelutin.com/>
+ * @since 0.1
+ */
+public class TuttiTechnicalException extends RuntimeException {
+
+ private static final long serialVersionUID = 1L;
+
+ public TuttiTechnicalException() {
+ }
+
+ public TuttiTechnicalException(String message) {
+ super(message);
+ }
+
+ public TuttiTechnicalException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public TuttiTechnicalException(Throwable cause) {
+ super(cause);
+ }
+}
Copied: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/InvalidBatchModelException.java (from rev 513, trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/InvalidBatchModelException.java)
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/InvalidBatchModelException.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/InvalidBatchModelException.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -0,0 +1,50 @@
+package fr.ifremer.tutti.persistence;
+
+/*
+ * #%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 fr.ifremer.tutti.TuttiBusinessException;
+
+/**
+ * Exception when batch model is not compatible with Tutti.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0.2
+ */
+public class InvalidBatchModelException extends TuttiBusinessException {
+
+ private static final long serialVersionUID = 1L;
+
+ public InvalidBatchModelException(String message) {
+ super(message);
+ }
+
+ public InvalidBatchModelException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public InvalidBatchModelException(Throwable cause) {
+ super(cause);
+ }
+}
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-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -24,7 +24,6 @@
* #L%
*/
-import fr.ifremer.adagio.core.dao.data.batch.validator.CatchBatchValidationException;
import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
@@ -329,14 +328,18 @@
/**
* Get the catchBatch from the fishing Operation id.
+ * <p/>
+ * If batch model is not compatible with Tutti and {@code canRepair} flag
+ * is on, then it will try to repair it.
*
* @param id id of the fihsing operation
* @param canRepair flag to try to repair the batch model in not in Tutti-awre format.
* @return found catchbatch
+ * @throws InvalidBatchModelException if batch model is not compatible with Tutti and could be repaired (in cause of canRepair is on).
*/
@Transactional(readOnly = false)
CatchBatch getCatchBatchFromFishingOperation(String id,
- boolean canRepair) throws CatchBatchValidationException;
+ boolean canRepair) throws InvalidBatchModelException;
/**
* Create the given CatchBatch and return it.
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-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -442,8 +442,12 @@
@Override
public CatchBatch getCatchBatchFromFishingOperation(String id,
- boolean canRepair) throws CatchBatchValidationException {
- return batchService.getCatchBatchFromFishingOperation(id, canRepair);
+ boolean canRepair) throws InvalidBatchModelException {
+ try {
+ return batchService.getCatchBatchFromFishingOperation(id, canRepair);
+ } catch (CatchBatchValidationException e) {
+ throw new InvalidBatchModelException("L'arbre d'échantillonage n'est pas compatible avec celui de Tutti.", e);
+ }
}
@Override
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfig.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfig.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfig.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -72,13 +72,12 @@
}
public void initConfig(RessourceClassLoader resourceLoader) throws IOException {
- try {
- FileUtils.forceMkdir(getDbDirectory());
- FileUtils.forceMkdir(getProtocolDirectory());
- } catch (Exception e) {
- throw new RuntimeException("Could not create directory", e);
- }
+ FileUtils.forceMkdir(getDbDirectory());
+ FileUtils.forceMkdir(getDbAttachmentDirectory());
+ FileUtils.forceMkdir(getProtocolDirectory());
+
+
// add a predicate to search the configuration file from his directory instead of the class-path
resourceLoader.addSearchInDirectoriesPredicate(new Predicate<String>() {
@@ -118,6 +117,10 @@
return config.getOptionAsFile(TuttiPersistenceConfigOption.DB_DIRECTORY.getKey());
}
+ public File getDbAttachmentDirectory() {
+ return config.getOptionAsFile(TuttiPersistenceConfigOption.DB_ATTACHMENT_DIRECTORY.getKey());
+ }
+
public File getCacheDirectory() {
return config.getOptionAsFile(TuttiPersistenceConfigOption.CACHE_DIRECTORY.getKey());
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfigOption.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfigOption.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfigOption.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -47,6 +47,13 @@
File.class,
true,
true),
+ DB_ATTACHMENT_DIRECTORY(
+ "tutti.persistence.db.attachment.directory",
+ n_("tutti.option.persistence.db.attachment.directory.description"),
+ "${tutti.data.directory}/meas_files",
+ File.class,
+ true,
+ true),
CACHE_DIRECTORY(
"tutti.persistence.cache.directory",
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -37,7 +37,6 @@
import fr.ifremer.adagio.core.dao.data.batch.validator.CatchBatchValidator;
import fr.ifremer.adagio.core.dao.data.measure.SortingMeasurement;
import fr.ifremer.tutti.persistence.service.BatchPersistenceService;
-import fr.ifremer.tutti.persistence.service.ReferentialPersistenceService;
import fr.ifremer.tutti.persistence.service.TuttiEnumerationFile;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -63,17 +62,11 @@
protected BatchPersistenceService batchService;
@Autowired
- protected ReferentialPersistenceService referentialService;
-
- @Autowired
protected CatchBatchExtendDao catchBatchDao;
@Autowired
protected TuttiEnumerationFile enumeration;
- public ScientificCruiseCatchBatchValidator() {
- }
-
@Override
public boolean isEnable(fr.ifremer.adagio.core.dao.data.batch.CatchBatch catchBatch) {
// Apply validation only on catch batch for fishingOperation
@@ -88,16 +81,21 @@
}
// ------------------------------------------------------------------------//
- // -- Internal methods --//
+ // -- Internal methods --//
// ------------------------------------------------------------------------//
- protected void validate(Collection<Batch> batchs, List<CatchBatchValidationError> errors, int treeLevel) {
+ protected void validate(Collection<Batch> batchs,
+ List<CatchBatchValidationError> errors,
+ int treeLevel) {
- //TODO finishi i18n
-
// Vrac
SortingBatch vracBatch = catchBatchDao.getSortingBatch(batchs,
"pmfmId", enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Try to validate Vrac batch model " + vracBatch);
+ }
+
if (vracBatch == null) {
addError(errors, n_("tutti.persistence.batch.validation.vracNotFound"), null);
} else {
@@ -123,7 +121,28 @@
}
}
- // TODO : Benthos, Plancton...
+ // Vrac > Benthos
+ SortingBatch benthosBatch = catchBatchDao.getSortingBatch(vracBatch.getChildBatchs(),
+ "pmfmId", enumeration.PMFM_ID_SORTING_TYPE,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS);
+ if (benthosBatch == null) {
+ addError(errors, n_("tutti.persistence.batch.validation.vracBenthosNotFound"), null);
+ } else {
+ // Vrac > Benthos > Inert
+ SortingBatch inertBatch = catchBatchDao.getSortingBatch(benthosBatch.getChildBatchs(),
+ "referenceTaxonId", enumeration.REFERENCE_TAXON_ID_INERT);
+ if (inertBatch == null) {
+ addWarning(errors, n_("tutti.persistence.batch.validation.vracBenthosInertNotFound"));
+ }
+
+ // Vrac > Benthos > Alive no itemized
+ SortingBatch livingNotItemizedBatch = catchBatchDao.getSortingBatch(benthosBatch.getChildBatchs(),
+ "referenceTaxonId", enumeration.REFERENCE_TAXON_ID_LIFE);
+ if (livingNotItemizedBatch == null) {
+ addWarning(errors, n_("tutti.persistence.batch.validation.vracBenthosLifeNotFound"));
+ }
+ }
+ // TODO : Plancton...
}
// Hors Vrac
@@ -141,7 +160,14 @@
addWarning(errors, n_("tutti.persistence.batch.validation.horsVracSpeciesNotFound"));
}
- // TODO : Benthos, Plancton...
+ // Hors Vrac > Benthos
+ SortingBatch benthosBatch = catchBatchDao.getSortingBatch(horsVracBatch.getChildBatchs(),
+ "pmfmId", enumeration.PMFM_ID_SORTING_TYPE,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS);
+ if (benthosBatch == null) {
+ addWarning(errors, n_("tutti.persistence.batch.validation.horsVracBenthosNotFound"));
+ }
+ // TODO : Plancton...
}
// Unsorted
@@ -159,7 +185,7 @@
boolean someBatchHasSortingMeasurement = false;
for (Batch batch1 : batchs) {
SortingBatch batch = (SortingBatch) batch1;
- if (allBatchHasSpecies && batch.getReferenceTaxon() == null) {
+ if (batch.getReferenceTaxon() == null) {
allBatchHasSpecies = false;
break;
}
@@ -186,7 +212,7 @@
return ScientificCruiseCatchBatchValidator.this.repairHistoricalData(catchBatch, false);
}
});
- } else if (allBatchHasSpecies && someBatchHasSortingMeasurement && allBatchHasVrac) {
+ } else if (allBatchHasSpecies && allBatchHasVrac) {
errors.clear();
addError(errors, n_("tutti.persistence.batch.validation.onlySpeciesBatchStructure"), new CatchBatchQuickFix() {
@Override
@@ -205,7 +231,8 @@
* @param catchBatch
* @return
*/
- protected CatchBatch repairHistoricalData(CatchBatch catchBatch, boolean batchHasVracSortingMeasurement) {
+ protected CatchBatch repairHistoricalData(CatchBatch catchBatch,
+ boolean batchHasVracSortingMeasurement) {
Preconditions.checkNotNull(catchBatch);
Preconditions.checkNotNull(catchBatch.getId());
Preconditions.checkNotNull(catchBatch.getFishingOperation());
@@ -240,9 +267,10 @@
batch.setExhaustiveInventory(Boolean.TRUE);
// Add an offset into the rank order, because of special batchs 'Biota' (=live) and 'Inert'
- short rankOrder = (short) (batch.getRankOrder().shortValue() + 2);
+ short rankOrder = (short) (batch.getRankOrder() + 2);
batch.setRankOrder(rankOrder);
+ //FIXME-TC We should do nothing with this: this is not our problem...
//TODO What to do with weird comments! categorie_individu
// Reset comments if set to "taxon"
if (batch.getComments() != null && "taxon".equals(batch.getComments())) {
@@ -258,7 +286,9 @@
return catchBatch;
}
- protected void addError(List<CatchBatchValidationError> errors, String messageKey, CatchBatchQuickFix quickFix) {
+ protected void addError(List<CatchBatchValidationError> errors,
+ String messageKey,
+ CatchBatchQuickFix quickFix) {
CatchBatchValidationError error = new CatchBatchValidationError(
messageKey,
_(messageKey),
@@ -267,7 +297,8 @@
errors.add(error);
}
- protected void addWarning(List<CatchBatchValidationError> errors, String messageKey) {
+ protected void addWarning(List<CatchBatchValidationError> errors,
+ String messageKey) {
CatchBatchValidationError error = new CatchBatchValidationError(
messageKey,
_(messageKey),
Modified: trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties
===================================================================
--- trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties 2013-03-02 16:03:05 UTC (rev 515)
@@ -1,4 +1,5 @@
-tutti.option.persistence.cache.directory.description=Répertoire où sont stoqué les caches de persistence
+tutti.option.persistence.cache.directory.description=Répertoire où sont stoquées les caches de persistence
+tutti.option.persistence.db.attachment.directory.description=Répoertoire où sont stoquées les pièces-jointes
tutti.option.persistence.db.configurationPath.description=Chemin du fichier de configuration d'Adagio
tutti.option.persistence.db.directory.description=Répertoire où est la base de données
tutti.option.persistence.db.enumerationPath.description=Chemin du fichier de correspondance des constantes
@@ -12,10 +13,14 @@
tutti.option.persistence.jdbc.url.description=URL de connexion à la base de données
tutti.option.persistence.jdbc.username.description=Login de l'utilisateur pour se connecter à la base de données
tutti.option.persistence.protocol.directory.description=Répertoire où sont conservés les protocoles
+tutti.persistence.batch.validation.horsVracBenthosNotFound=Lot 'Hors Vrac > Benthos' non trouvé ou configuré avec d'autres critères de classement.
tutti.persistence.batch.validation.horsVracNotFound=Lot 'Hors Vrac' non trouvé, ou configuré avec d'autres critères de classement.
-tutti.persistence.batch.validation.horsVracSpeciesNotFound=Batch 'Hors Vrac > Espèces' non trouvé ou configuré avec d'autres critères de classement.
-tutti.persistence.batch.validation.onlySpeciesBatchStructure=
-tutti.persistence.batch.validation.unsortedNotFound=Batch 'Hors Vrac > Espèces' non trouvé ou configuré avec d'autres critères de classement.
+tutti.persistence.batch.validation.horsVracSpeciesNotFound=Lot 'Hors Vrac > Espèces' non trouvé ou configuré avec d'autres critères de classement.
+tutti.persistence.batch.validation.onlySpeciesBatchStructure=Lot 'Espèces' (données historiques CGFS) détecté.
+tutti.persistence.batch.validation.unsortedNotFound=Lot 'Hors Vrac > Espèces' non trouvé ou configuré avec d'autres critères de classement.
+tutti.persistence.batch.validation.vracBenthosInertNotFound=Lot 'Vrac > Benthos > Inerte' non trouvé, ou configuré avec d'autres critères de classement.
+tutti.persistence.batch.validation.vracBenthosLifeNotFound=Lot 'Vrac > Benthos > Biota' non trouvé, ou configuré avec d'autres critères de classement.
+tutti.persistence.batch.validation.vracBenthosNotFound=Lot 'Vrac > Benthos' non trouvé, ou configuré avec d'autres critères de classement.
tutti.persistence.batch.validation.vracNotFound=Lot 'Vrac' non trouvé, ou configuré avec d'autres critères de classement.
tutti.persistence.batch.validation.vracSpeciesInertNotFound=Lot 'Vrac > Espèces > Inerte' non trouvé, ou configuré avec d'autres critères de classement.
tutti.persistence.batch.validation.vracSpeciesLifeNotFound=Lot 'Vrac > Espèces > Biota' non trouvé, ou configuré avec d'autres critères de classement.
Modified: trunk/tutti-service/pom.xml
===================================================================
--- trunk/tutti-service/pom.xml 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-service/pom.xml 2013-03-02 16:03:05 UTC (rev 515)
@@ -49,12 +49,6 @@
</dependency>
<dependency>
- <groupId>fr.ifremer.adagio</groupId>
- <artifactId>adagio-core</artifactId>
- <classifier>allegro</classifier>
- </dependency>
-
- <dependency>
<groupId>org.nuiton</groupId>
<artifactId>nuiton-utils</artifactId>
</dependency>
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/AbstractTuttiService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/AbstractTuttiService.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/AbstractTuttiService.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -24,6 +24,7 @@
* #L%
*/
+import fr.ifremer.tutti.TuttiTechnicalException;
import org.apache.commons.io.FileUtils;
import org.nuiton.util.ZipUtil;
Deleted: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/InvalidBatchModelException.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/InvalidBatchModelException.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/InvalidBatchModelException.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -1,48 +0,0 @@
-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%
- */
-
-/**
- * Exception when batch model is not compatible with Tutti.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0.2
- */
-public class InvalidBatchModelException extends TuttiBusinessException {
-
- private static final long serialVersionUID = 1L;
-
- public InvalidBatchModelException(String message) {
- super(message);
- }
-
- public InvalidBatchModelException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public InvalidBatchModelException(Throwable cause) {
- super(cause);
- }
-}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -24,7 +24,8 @@
* #L%
*/
-import fr.ifremer.adagio.core.dao.data.batch.validator.CatchBatchValidationException;
+import com.google.common.base.Preconditions;
+import fr.ifremer.tutti.persistence.InvalidBatchModelException;
import fr.ifremer.tutti.persistence.TuttiPersistence;
import fr.ifremer.tutti.persistence.TuttiPersistenceNoDbImpl;
import fr.ifremer.tutti.persistence.config.TuttiPersistenceConfig;
@@ -53,7 +54,10 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import java.io.File;
import java.io.IOException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
import java.util.List;
/**
@@ -90,6 +94,68 @@
driver.clearAllCaches();
}
+ DateFormat exportDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+
+ /**
+ * Export db as an zip archive (including the attachments).
+ *
+ * @param file archive file where to store
+ * @since 1.0.2
+ */
+ public void exportDb(File file) {
+
+ Preconditions.checkState(isDbLoaded());
+ Preconditions.checkNotNull(file);
+
+ // Make sure db is shutdown
+
+ TuttiIOUtil.close(driver, "Could not close driver " + driver);
+
+ try {
+ // create zip structure
+
+ TuttiServiceConfig config = context.getConfig();
+
+ File structureDirectory = new File(
+ config.newTempFile("exportdb"),
+ "tutti-" + config.getVersion() +
+ exportDateFormat.format(context.currentDate()));
+
+ TuttiIOUtil.forceMkdir(structureDirectory,
+ "Could not create directory");
+
+ if (log.isInfoEnabled()) {
+ log.info("Export directory: " + structureDirectory);
+ }
+ TuttiPersistenceConfig pConfig = config.getPersistenceConfig();
+
+ TuttiIOUtil.copyDirectory(pConfig.getDbDirectory(),
+ new File(structureDirectory, "db"),
+ "Could not copy db directory");
+
+ TuttiIOUtil.copyDirectory(pConfig.getDbAttachmentDirectory(),
+ new File(structureDirectory, "meas_files"),
+ "Could not copy db attachment directory");
+
+ TuttiIOUtil.copyFile(pConfig.getDbConfigurationPath(),
+ structureDirectory,
+ "Could not copy db configuration file");
+
+ TuttiIOUtil.copyFile(pConfig.getDbEnumerationPath(),
+ structureDirectory,
+ "Could not copy db enumeration file");
+
+ //create zip
+ TuttiIOUtil.zip(structureDirectory, file,
+ "Could not create archive at " + file);
+
+ } finally {
+
+ // reload driver
+ driver = TuttiPersistenceServiceLocator.getPersistenceService();
+ }
+ }
+
public boolean isDbLoaded() {
return !(driver instanceof TuttiPersistenceNoDbImpl);
}
@@ -410,12 +476,9 @@
@Override
public CatchBatch getCatchBatchFromFishingOperation(String id,
boolean canRepair) throws InvalidBatchModelException {
- try {
- return driver.getCatchBatchFromFishingOperation(id, canRepair);
- } catch (CatchBatchValidationException e) {
- throw new InvalidBatchModelException(
- "L'arbre d'échantillonage n'est pas compatible avec Tutti", e);
- }
+
+ return driver.getCatchBatchFromFishingOperation(id, canRepair);
+
}
@Override
Deleted: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiBusinessException.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiBusinessException.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiBusinessException.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -1,48 +0,0 @@
-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%
- */
-
-/**
- * To box any business exception.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0
- */
-public class TuttiBusinessException extends RuntimeException {
-
- private static final long serialVersionUID = 1L;
-
- public TuttiBusinessException(String message) {
- super(message);
- }
-
- public TuttiBusinessException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public TuttiBusinessException(Throwable cause) {
- super(cause);
- }
-}
Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiIOUtil.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiIOUtil.java (rev 0)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiIOUtil.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -0,0 +1,95 @@
+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 fr.ifremer.tutti.TuttiTechnicalException;
+import org.apache.commons.io.FileUtils;
+import org.nuiton.util.ZipUtil;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * Useful methods around IO, all method errors are boxes a
+ * {@link TuttiTechnicalException}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0.2
+ */
+public class TuttiIOUtil {
+
+ protected TuttiIOUtil() {
+ // no instance
+ }
+
+ public static void close(Closeable toClose, String errorMessage) {
+
+ try {
+ toClose.close();
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(errorMessage, e);
+ }
+ }
+
+ public static void zip(File source, File archiveFile, String errorMessage) {
+ try {
+ ZipUtil.compress(archiveFile, source);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(errorMessage, e);
+ }
+ }
+
+ public static void forceMkdir(File dir, String errorMessage) {
+ try {
+ FileUtils.forceMkdir(dir);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(errorMessage, e);
+ }
+ }
+
+ public static void copyDirectory(File source, File target, String errorMessage) {
+ try {
+ FileUtils.copyDirectory(source, target);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(errorMessage, e);
+ }
+ }
+
+ public static void copyFile(File source, File target, String errorMessage) {
+ try {
+ FileUtils.copyFileToDirectory(source, target);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(errorMessage, e);
+ }
+ }
+
+ public static File addExtensionIfMissing(File file, String extension) {
+ if (!file.getName().endsWith(extension)) {
+ file = new File(file.getParentFile(), file.getName() + extension);
+ }
+ return file;
+ }
+}
Property changes on: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiIOUtil.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiServiceContext.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiServiceContext.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiServiceContext.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -28,6 +28,7 @@
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
+import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.persistence.RessourceClassLoader;
import fr.ifremer.tutti.service.config.TuttiServiceConfig;
import org.apache.commons.io.IOUtils;
@@ -37,6 +38,7 @@
import java.io.Closeable;
import java.io.IOException;
import java.lang.reflect.Constructor;
+import java.util.Date;
import java.util.concurrent.ExecutionException;
/**
@@ -87,6 +89,10 @@
return resourceLoader;
}
+ public Date currentDate() {
+ return new Date();
+ }
+
public <S extends TuttiService> S getService(Class<S> serviceType) {
try {
S s = (S) services.get(serviceType);
Deleted: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiTechnicalException.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiTechnicalException.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiTechnicalException.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -1,51 +0,0 @@
-package fr.ifremer.tutti.service;
-
-/*
- * #%L
- * Tutti :: Application
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-/**
- * Any techincal exception should be boxed in a such exception.
- *
- * @author tchemit <chemit(a)codelutin.com/>
- * @since 0.1
- */
-public class TuttiTechnicalException extends RuntimeException {
-
- private static final long serialVersionUID = 1L;
-
- public TuttiTechnicalException() {
- }
-
- public TuttiTechnicalException(String message) {
- super(message);
- }
-
- public TuttiTechnicalException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public TuttiTechnicalException(Throwable cause) {
- super(cause);
- }
-}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfig.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfig.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/config/TuttiServiceConfig.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -24,7 +24,6 @@
* #L%
*/
-import com.google.common.base.Preconditions;
import fr.ifremer.tutti.persistence.config.TuttiPersistenceConfig;
import org.apache.commons.io.FileUtils;
import org.apache.commons.logging.Log;
@@ -104,44 +103,22 @@
return result;
}
+ public File newTempFile(String basename) {
+ return new File(getTmpDirectory(), basename + "_" + System.nanoTime());
+ }
+
public char getCsvSeparator() {
return applicationConfig.getOption(TuttiServiceConfigOption.CSV_SEPARATOR.getKey()).charAt(0);
}
public void prepareDirectories() throws IOException {
- getOrCreateDirectory(TuttiServiceConfigOption.DATA_DIRECTORY);
- File tmpDir = getOrCreateDirectory(TuttiServiceConfigOption.TMP_DIRECTORY);
- // clean it
- FileUtils.deleteDirectory(tmpDir);
-
- FileUtils.forceMkdir(tmpDir);
- }
-
- /**
- * Creates a directory given the configuration {@code option}.
- *
- * @param option the configuration option key which contains the location of
- * the directory to create
- * @return the created directory
- */
- protected File getOrCreateDirectory(TuttiServiceConfigOption option) throws IOException {
-
- File directory = applicationConfig.getOptionAsFile(option.getKey());
-
- Preconditions.checkNotNull(
- directory,
- "Could not find directory " + directory +
- " (key " + option.getKey() + "in your configuration file named" +
- " sammoa.properties)"
- );
-
- if (log.isDebugEnabled()) {
- log.debug(option + " = " + directory);
+ FileUtils.forceMkdir(getDataDirectory());
+ File tmpDirectory = getTmpDirectory();
+ if (tmpDirectory.exists()) {
+ FileUtils.deleteDirectory(tmpDirectory);
}
+ FileUtils.forceMkdir(tmpDirectory);
- FileUtils.forceMkdir(directory);
-
- return directory;
}
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportService.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportService.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -38,7 +38,7 @@
import fr.ifremer.tutti.service.AbstractTuttiService;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.service.TuttiServiceContext;
-import fr.ifremer.tutti.service.TuttiTechnicalException;
+import fr.ifremer.tutti.TuttiTechnicalException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.csv.Export;
Modified: trunk/tutti-ui-swing/pom.xml
===================================================================
--- trunk/tutti-ui-swing/pom.xml 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/pom.xml 2013-03-02 16:03:05 UTC (rev 515)
@@ -287,11 +287,6 @@
<classifier>tests</classifier>
</dependency>
- <dependency>
- <groupId>org.apache.struts.xwork</groupId>
- <artifactId>xwork-core</artifactId>
- </dependency>
-
<!-- librairie Jaxx -->
<dependency>
<groupId>org.nuiton.jaxx</groupId>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -31,7 +31,7 @@
import fr.ifremer.tutti.persistence.config.TuttiPersistenceConfig;
import fr.ifremer.tutti.persistence.service.synchro.ReferentialSynchronizeResult;
import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.service.TuttiTechnicalException;
+import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.service.referential.TuttiReferentialSynchronizeService;
import fr.ifremer.tutti.ui.swing.util.action.TuttiActionUI;
import org.apache.commons.io.FileUtils;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -34,7 +34,7 @@
import fr.ifremer.tutti.service.DecoratorService;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.service.TuttiServiceContext;
-import fr.ifremer.tutti.service.TuttiTechnicalException;
+import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
import fr.ifremer.tutti.service.referential.TuttiReferentialSynchronizeService;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -25,7 +25,7 @@
*/
import com.google.common.base.Charsets;
-import fr.ifremer.tutti.service.TuttiTechnicalException;
+import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.service.config.TuttiServiceConfig;
import fr.ifremer.tutti.service.config.TuttiServiceConfigOption;
import fr.ifremer.tutti.ui.swing.util.editor.CoordinateEditorType;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.jaxx 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.jaxx 2013-03-02 16:03:05 UTC (rev 515)
@@ -32,6 +32,7 @@
jaxx.runtime.validator.swing.SwingValidator
jaxx.runtime.validator.swing.SwingValidatorMessageWidget
fr.ifremer.tutti.ui.swing.TuttiUIContext
+ fr.ifremer.tutti.ui.swing.TuttiScreen
</import>
<TuttiUIContext id='model'
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -86,7 +86,7 @@
context.setActionUI(new TuttiActionUI(ui, context));
}
- protected MainUIHandler(TuttiUIContext context) {
+ public MainUIHandler(TuttiUIContext context) {
super(context, null);
this.persistenceService = null;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -24,11 +24,15 @@
* #L%
*/
+import fr.ifremer.tutti.service.TuttiIOUtil;
import fr.ifremer.tutti.ui.swing.content.AbstractMainUITuttiAction;
import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
+import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import java.io.File;
+
import static org.nuiton.i18n.I18n._;
/**
@@ -42,6 +46,8 @@
/** Logger. */
private static final Log log = LogFactory.getLog(ExportDbAction.class);
+ protected File file;
+
public ExportDbAction(MainUIHandler handler) {
super(handler,
"export-db",
@@ -51,12 +57,45 @@
}
@Override
+ protected boolean prepareAction() {
+ boolean doAction = super.prepareAction();
+
+ if (doAction) {
+
+ // ask user file where to export db
+
+ // choose file to import
+ file = TuttiUIUtil.chooseFile(
+ getContext().getMainUI(),
+ _("tutti.title.choose.dbExportFile"),
+ _("tutti.action.chooseDbExportFile"),
+ null,
+ "^.*\\.zip", _("tutti.file.zip")
+ );
+ doAction = file != null;
+ }
+
+ if (doAction) {
+ file = TuttiIOUtil.addExtensionIfMissing(file, ".zip");
+ }
+ return doAction;
+ }
+
+ @Override
+ protected void releaseAction() {
+ super.releaseAction();
+ file = null;
+ }
+
+ @Override
protected void doAction() {
if (log.isInfoEnabled()) {
- log.info("Will export db...");
+ log.info("Will export db to " + file);
}
- //TODO
+ getContext().getPersistenceService().exportDb(file);
+
+ sendMessage(_("tutti.flash.information.db.exported", file));
}
}
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -26,6 +26,7 @@
import com.ezware.oxbow.swingbits.util.Preconditions;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
+import fr.ifremer.tutti.service.TuttiIOUtil;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
@@ -62,19 +63,22 @@
@Override
protected boolean prepareAction() {
- // choose file to import
+ boolean doAction = super.prepareAction();
- file = TuttiUIUtil.chooseFile(
- getContext().getMainUI(),
- _("tutti.title.choose.protocolExportFile"),
- _("tutti.action.chooseProtocolFile"),
- null,
- "^.+\\.tuttiProtocol$", _("tutti.file.protocol")
- );
-
- boolean doAction = file != null;
if (doAction) {
- super.prepareAction();
+
+ // choose file to export
+ file = TuttiUIUtil.chooseFile(
+ getContext().getMainUI(),
+ _("tutti.title.choose.protocolExportFile"),
+ _("tutti.action.chooseProtocolFile"),
+ null,
+ "^.+\\.tuttiProtocol$", _("tutti.file.protocol")
+ );
+ doAction = file != null;
+ if (doAction) {
+ file = TuttiIOUtil.addExtensionIfMissing(file, ".tuttiProtocol$");
+ }
}
return doAction;
}
@@ -89,19 +93,13 @@
protected void doAction() throws Exception {
TuttiProtocol protocol = getModel().getProtocol();
Preconditions.checkNotNull(protocol);
+ Preconditions.checkNotNull(file);
if (log.isInfoEnabled()) {
- log.info("Export protocol: " + protocol.getId());
- }
-
- if (log.isInfoEnabled()) {
log.info("Will save protocol " + protocol.getId() +
" to file: " + file);
}
- if (!file.getName().endsWith(".tuttiProtocol")) {
- file = new File(file.getParentFile(), file.getName() + ".tuttiProtocol");
- }
// export protocol
TuttiProtocolImportExportService service =
getContext().getTuttiProtocolImportExportService();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.ezware.oxbow.swingbits.util.Preconditions;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
@@ -65,17 +66,19 @@
@Override
protected boolean prepareAction() {
- // choose file to import
- file = TuttiUIUtil.chooseFile(
- getContext().getMainUI(),
- _("tutti.title.choose.protocolImportFile"),
- _("tutti.action.chooseProtocolFile"),
- null,
- "^.+\\.tuttiProtocol$", _("tutti.file.protocol")
- );
- boolean doAction = file != null;
+ boolean doAction = super.prepareAction();
+
if (doAction) {
- super.prepareAction();
+ // choose file to import
+ file = TuttiUIUtil.chooseFile(
+ getContext().getMainUI(),
+ _("tutti.title.choose.protocolImportFile"),
+ _("tutti.action.chooseProtocolFile"),
+ null,
+ "^.+\\.tuttiProtocol$", _("tutti.file.protocol")
+ );
+
+ doAction = file != null;
}
return doAction;
}
@@ -88,9 +91,7 @@
@Override
protected void doAction() throws Exception {
- if (log.isInfoEnabled()) {
- log.info("TODO Import protocol!");
- }
+ Preconditions.checkNotNull(file);
if (log.isInfoEnabled()) {
log.info("Will import protocol file: " + file);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportAllCaracteristicAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportAllCaracteristicAction.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportAllCaracteristicAction.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -24,6 +24,8 @@
* #L%
*/
+import com.ezware.oxbow.swingbits.util.Preconditions;
+import fr.ifremer.tutti.service.TuttiIOUtil;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
@@ -46,7 +48,7 @@
private static final Log log =
LogFactory.getLog(ExportAllCaracteristicAction.class);
- private File file;
+ protected File file;
public ExportAllCaracteristicAction(EditProtocolUIHandler handler) {
super(handler,
@@ -60,17 +62,23 @@
@Override
protected boolean prepareAction() {
- // choose file to import
- file = TuttiUIUtil.chooseFile(
- getContext().getMainUI(),
- _("tutti.title.choose.protocolCaracteristicExportFile"),
- _("tutti.action.chooseProtocolCaracteristicFile"),
- null,
- "^.*\\.csv", _("tutti.file.csv")
- );
- boolean doAction = file != null;
+ boolean doAction = super.prepareAction();
+
if (doAction) {
- super.prepareAction();
+
+ // choose file to export
+ file = TuttiUIUtil.chooseFile(
+ getContext().getMainUI(),
+ _("tutti.title.choose.protocolCaracteristicExportFile"),
+ _("tutti.action.chooseProtocolCaracteristicFile"),
+ null,
+ "^.*\\.csv", _("tutti.file.csv")
+ );
+ doAction = file != null;
+
+ if (doAction) {
+ file = TuttiIOUtil.addExtensionIfMissing(file, ".csv");
+ }
}
return doAction;
}
@@ -83,7 +91,7 @@
@Override
protected void doAction() throws Exception {
-
+ Preconditions.checkNotNull(file);
if (log.isInfoEnabled()) {
log.info("Will export all caracteristic to file: " + file);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolCaracteristicAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolCaracteristicAction.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolCaracteristicAction.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -24,7 +24,9 @@
* #L%
*/
+import com.ezware.oxbow.swingbits.util.Preconditions;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
+import fr.ifremer.tutti.service.TuttiIOUtil;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
@@ -61,17 +63,22 @@
@Override
protected boolean prepareAction() {
- // choose file to import
- file = TuttiUIUtil.chooseFile(
- getContext().getMainUI(),
- _("tutti.title.choose.protocolCaracteristicExportFile"),
- _("tutti.action.chooseProtocolCaracteristicFile"),
- null,
- "^.*\\.csv", _("tutti.file.csv")
- );
- boolean doAction = file != null;
+ boolean doAction = super.prepareAction();
+
if (doAction) {
- super.prepareAction();
+
+ // choose file to export
+ file = TuttiUIUtil.chooseFile(
+ getContext().getMainUI(),
+ _("tutti.title.choose.protocolCaracteristicExportFile"),
+ _("tutti.action.chooseProtocolCaracteristicFile"),
+ null,
+ "^.*\\.csv", _("tutti.file.csv")
+ );
+ doAction = file != null;
+ if (doAction) {
+ file = TuttiIOUtil.addExtensionIfMissing(file, ".csv");
+ }
}
return doAction;
}
@@ -84,7 +91,7 @@
@Override
protected void doAction() throws Exception {
-
+ Preconditions.checkNotNull(file);
if (log.isInfoEnabled()) {
log.info("Will export protocol caracteristic to file: " + file);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolSpeciesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolSpeciesAction.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolSpeciesAction.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -24,8 +24,10 @@
* #L%
*/
+import com.ezware.oxbow.swingbits.util.Preconditions;
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
+import fr.ifremer.tutti.service.TuttiIOUtil;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
@@ -63,17 +65,22 @@
@Override
protected boolean prepareAction() {
- // choose file to export
- file = TuttiUIUtil.chooseFile(
- getContext().getMainUI(),
- _("tutti.title.choose.protocolSpeciesExportFile"),
- _("tutti.action.chooseProtocolSpeciesFile"),
- null,
- "^.*\\.csv", _("tutti.file.csv")
- );
- boolean doAction = file != null;
+ boolean doAction = super.prepareAction();
+
if (doAction) {
- super.prepareAction();
+
+ // choose file to export
+ file = TuttiUIUtil.chooseFile(
+ getContext().getMainUI(),
+ _("tutti.title.choose.protocolSpeciesExportFile"),
+ _("tutti.action.chooseProtocolSpeciesFile"),
+ null,
+ "^.*\\.csv", _("tutti.file.csv")
+ );
+ doAction = file != null;
+ if (doAction) {
+ file = TuttiIOUtil.addExtensionIfMissing(file, ".csv");
+ }
}
return doAction;
}
@@ -86,7 +93,7 @@
@Override
protected void doAction() throws Exception {
-
+ Preconditions.checkNotNull(file);
if (log.isInfoEnabled()) {
log.info("Will export protocol species to file: " + file);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolCaracteristicAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolCaracteristicAction.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolCaracteristicAction.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.ezware.oxbow.swingbits.util.Preconditions;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
@@ -61,17 +62,20 @@
@Override
protected boolean prepareAction() {
- // choose file to import
- file = TuttiUIUtil.chooseFile(
- getContext().getMainUI(),
- _("tutti.title.choose.protocolCaracteristicImportFile"),
- _("tutti.action.chooseProtocolCaracteristicFile"),
- null,
- "^.*\\.csv", _("tutti.file.csv")
- );
- boolean doAction = file != null;
+ boolean doAction = super.prepareAction();
+
if (doAction) {
- super.prepareAction();
+
+ // choose file to import
+ file = TuttiUIUtil.chooseFile(
+ getContext().getMainUI(),
+ _("tutti.title.choose.protocolCaracteristicImportFile"),
+ _("tutti.action.chooseProtocolCaracteristicFile"),
+ null,
+ "^.*\\.csv", _("tutti.file.csv")
+ );
+
+ doAction = file != null;
}
return doAction;
}
@@ -84,12 +88,11 @@
@Override
protected void doAction() throws Exception {
-
+ Preconditions.checkNotNull(file);
if (log.isInfoEnabled()) {
log.info("Will import protocol caracteristic file: " + file);
}
- EditProtocolUIHandler handler = getHandler();
EditProtocolUIModel model = getModel();
// bind to a protocol
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolSpeciesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolSpeciesAction.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolSpeciesAction.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.ezware.oxbow.swingbits.util.Preconditions;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
@@ -64,17 +65,20 @@
@Override
protected boolean prepareAction() {
- // choose file to import
- file = TuttiUIUtil.chooseFile(
- getContext().getMainUI(),
- _("tutti.title.choose.protocolSpeciesImportFile"),
- _("tutti.action.chooseProtocolSpeciesFile"),
- null,
- "^.*\\.csv", _("tutti.file.csv")
- );
- boolean doAction = file != null;
+ boolean doAction = super.prepareAction();
+
if (doAction) {
- super.prepareAction();
+
+ // choose file to import
+ file = TuttiUIUtil.chooseFile(
+ getContext().getMainUI(),
+ _("tutti.title.choose.protocolSpeciesImportFile"),
+ _("tutti.action.chooseProtocolSpeciesFile"),
+ null,
+ "^.*\\.csv", _("tutti.file.csv")
+ );
+
+ doAction = file != null;
}
return doAction;
}
@@ -87,12 +91,11 @@
@Override
protected void doAction() throws Exception {
-
+ Preconditions.checkNotNull(file);
if (log.isInfoEnabled()) {
log.info("Will import protocol species file: " + file);
}
- EditProtocolUIHandler handler = getHandler();
EditProtocolUIModel model = getModel();
// bind to a protocol
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.ezware.oxbow.swingbits.util.Preconditions;
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
@@ -61,17 +62,19 @@
@Override
protected boolean prepareAction() {
- // choose file to export
- file = TuttiUIUtil.chooseFile(
- getContext().getMainUI(),
- _("tutti.title.choose.exportTemporaryGearExampleFile"),
- _("tutti.action.chooseReferentialGearFile"),
- null,
- "^.*\\.csv", _("tutti.file.csv")
- );
- boolean doAction = file != null;
+ boolean doAction = super.prepareAction();
+
if (doAction) {
- super.prepareAction();
+
+ // choose file to export
+ file = TuttiUIUtil.chooseFile(
+ getContext().getMainUI(),
+ _("tutti.title.choose.exportTemporaryGearExampleFile"),
+ _("tutti.action.chooseReferentialGearFile"),
+ null,
+ "^.*\\.csv", _("tutti.file.csv")
+ );
+ doAction = file != null;
}
return doAction;
}
@@ -84,7 +87,7 @@
@Override
protected void doAction() throws Exception {
-
+ Preconditions.checkNotNull(file);
if (log.isInfoEnabled()) {
log.info("Will export example gears temporary " +
"referential to file: " + file);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.ezware.oxbow.swingbits.util.Preconditions;
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
@@ -62,17 +63,19 @@
@Override
protected boolean prepareAction() {
- // choose file to export
- file = TuttiUIUtil.chooseFile(
- getContext().getMainUI(),
- _("tutti.title.choose.exportTemporaryPersonExampleFile"),
- _("tutti.action.chooseReferentialPersonFile"),
- null,
- "^.*\\.csv", _("tutti.file.csv")
- );
- boolean doAction = file != null;
+ boolean doAction = super.prepareAction();
+
if (doAction) {
- super.prepareAction();
+
+ // choose file to export
+ file = TuttiUIUtil.chooseFile(
+ getContext().getMainUI(),
+ _("tutti.title.choose.exportTemporaryPersonExampleFile"),
+ _("tutti.action.chooseReferentialPersonFile"),
+ null,
+ "^.*\\.csv", _("tutti.file.csv")
+ );
+ doAction = file != null;
}
return doAction;
}
@@ -85,7 +88,7 @@
@Override
protected void doAction() throws Exception {
-
+ Preconditions.checkNotNull(file);
if (log.isInfoEnabled()) {
log.info("Will export example persons temporary " +
"referential to file: " + file);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.ezware.oxbow.swingbits.util.Preconditions;
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
@@ -61,17 +62,19 @@
@Override
protected boolean prepareAction() {
- // choose file to export
- file = TuttiUIUtil.chooseFile(
- getContext().getMainUI(),
- _("tutti.title.choose.exportTemporarySpeciesExampleFile"),
- _("tutti.action.chooseReferentialSpeciesFile"),
- null,
- "^.*\\.csv", _("tutti.file.csv")
- );
- boolean doAction = file != null;
+ boolean doAction = super.prepareAction();
+
if (doAction) {
- super.prepareAction();
+
+ // choose file to export
+ file = TuttiUIUtil.chooseFile(
+ getContext().getMainUI(),
+ _("tutti.title.choose.exportTemporarySpeciesExampleFile"),
+ _("tutti.action.chooseReferentialSpeciesFile"),
+ null,
+ "^.*\\.csv", _("tutti.file.csv")
+ );
+ doAction = file != null;
}
return doAction;
}
@@ -84,7 +87,7 @@
@Override
protected void doAction() throws Exception {
-
+ Preconditions.checkNotNull(file);
if (log.isInfoEnabled()) {
log.info("Will export example species temporary " +
"referential to file: " + file);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.ezware.oxbow.swingbits.util.Preconditions;
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
@@ -61,30 +62,32 @@
@Override
protected boolean prepareAction() {
- // choose file to export
- file = TuttiUIUtil.chooseFile(
- getContext().getMainUI(),
- _("tutti.title.choose.exportTemporaryVesselExampleFile"),
- _("tutti.action.chooseReferentialVesselFile"),
- null,
- "^.*\\.csv", _("tutti.file.csv")
- );
- boolean doAction = file != null;
+ boolean doAction = super.prepareAction();
+
if (doAction) {
- super.prepareAction();
+
+ // choose file to export
+ file = TuttiUIUtil.chooseFile(
+ getContext().getMainUI(),
+ _("tutti.title.choose.exportTemporaryVesselExampleFile"),
+ _("tutti.action.chooseReferentialVesselFile"),
+ null,
+ "^.*\\.csv", _("tutti.file.csv")
+ );
+ doAction = file != null;
}
return doAction;
}
@Override
protected void releaseAction() {
+ file = null;
super.releaseAction();
- file = null;
}
@Override
protected void doAction() throws Exception {
-
+ Preconditions.checkNotNull(file);
if (log.isInfoEnabled()) {
log.info("Will export example vessels temporary " +
"referential to file: " + file);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.ezware.oxbow.swingbits.util.Preconditions;
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
@@ -61,17 +62,19 @@
@Override
protected boolean prepareAction() {
- // choose file to import
- file = TuttiUIUtil.chooseFile(
- getContext().getMainUI(),
- _("tutti.title.choose.importTemporaryGearFile"),
- _("tutti.action.chooseReferentialGearFile"),
- null,
- "^.*\\.csv", _("tutti.file.csv"));
+ boolean doAction = super.prepareAction();
- boolean doAction = file != null;
if (doAction) {
- super.prepareAction();
+
+ // choose file to import
+ file = TuttiUIUtil.chooseFile(
+ getContext().getMainUI(),
+ _("tutti.title.choose.importTemporaryGearFile"),
+ _("tutti.action.chooseReferentialGearFile"),
+ null,
+ "^.*\\.csv", _("tutti.file.csv"));
+
+ doAction = file != null;
}
return doAction;
}
@@ -84,7 +87,7 @@
@Override
protected void doAction() throws Exception {
-
+ Preconditions.checkNotNull(file);
if (log.isInfoEnabled()) {
log.info("Will import gear temporary " +
"referential from file: " + file);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.ezware.oxbow.swingbits.util.Preconditions;
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
@@ -61,17 +62,19 @@
@Override
protected boolean prepareAction() {
- // choose file to import
- file = TuttiUIUtil.chooseFile(
- getContext().getMainUI(),
- _("tutti.title.choose.importTemporaryPersonFile"),
- _("tutti.action.chooseReferentialPersonFile"),
- null,
- "^.*\\.csv", _("tutti.file.csv"));
+ boolean doAction = super.prepareAction();
- boolean doAction = file != null;
if (doAction) {
- super.prepareAction();
+
+ // choose file to import
+ file = TuttiUIUtil.chooseFile(
+ getContext().getMainUI(),
+ _("tutti.title.choose.importTemporaryPersonFile"),
+ _("tutti.action.chooseReferentialPersonFile"),
+ null,
+ "^.*\\.csv", _("tutti.file.csv"));
+
+ doAction = file != null;
}
return doAction;
}
@@ -84,7 +87,7 @@
@Override
protected void doAction() throws Exception {
-
+ Preconditions.checkNotNull(file);
if (log.isInfoEnabled()) {
log.info("Will import person temporary " +
"referential from file: " + file);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.ezware.oxbow.swingbits.util.Preconditions;
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
@@ -61,17 +62,18 @@
@Override
protected boolean prepareAction() {
- // choose file to import
- file = TuttiUIUtil.chooseFile(
- getContext().getMainUI(),
- _("tutti.title.choose.importTemporarySpeciesFile"),
- _("tutti.action.chooseReferentialSpeciesFile"),
- null,
- "^.*\\.csv", _("tutti.file.csv"));
+ boolean doAction = super.prepareAction();
- boolean doAction = file != null;
if (doAction) {
- super.prepareAction();
+ // choose file to import
+ file = TuttiUIUtil.chooseFile(
+ getContext().getMainUI(),
+ _("tutti.title.choose.importTemporarySpeciesFile"),
+ _("tutti.action.chooseReferentialSpeciesFile"),
+ null,
+ "^.*\\.csv", _("tutti.file.csv"));
+
+ doAction = file != null;
}
return doAction;
}
@@ -84,7 +86,7 @@
@Override
protected void doAction() throws Exception {
-
+ Preconditions.checkNotNull(file);
if (log.isInfoEnabled()) {
log.info("Will import species temporary " +
"referential from file: " + file);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.ezware.oxbow.swingbits.util.Preconditions;
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
@@ -61,17 +62,18 @@
@Override
protected boolean prepareAction() {
- // choose file to import
- file = TuttiUIUtil.chooseFile(
- getContext().getMainUI(),
- _("tutti.title.choose.importTemporaryVesselFile"),
- _("tutti.action.chooseReferentialVesselFile"),
- null,
- "^.*\\.csv", _("tutti.file.csv"));
+ boolean doAction = super.prepareAction();
- boolean doAction = file != null;
if (doAction) {
- super.prepareAction();
+ // choose file to import
+ file = TuttiUIUtil.chooseFile(
+ getContext().getMainUI(),
+ _("tutti.title.choose.importTemporaryVesselFile"),
+ _("tutti.action.chooseReferentialVesselFile"),
+ null,
+ "^.*\\.csv", _("tutti.file.csv"));
+
+ doAction = file != null;
}
return doAction;
}
@@ -84,7 +86,7 @@
@Override
protected void doAction() throws Exception {
-
+ Preconditions.checkNotNull(file);
if (log.isInfoEnabled()) {
log.info("Will import vessel temporary " +
"referential from file: " + file);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -25,7 +25,7 @@
*/
import fr.ifremer.tutti.persistence.entities.IdAware;
-import fr.ifremer.tutti.service.TuttiTechnicalException;
+import fr.ifremer.tutti.TuttiTechnicalException;
import org.jdesktop.beans.AbstractSerializableBean;
import org.nuiton.util.beans.Binder;
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiCollectionUniqueKeyValidator.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiCollectionUniqueKeyValidator.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiCollectionUniqueKeyValidator.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -1,156 +0,0 @@
-package fr.ifremer.tutti.ui.swing.util;
-
-/*
- * #%L
- * Tutti :: UI
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 - 2013 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import com.opensymphony.xwork2.validator.ValidationException;
-import org.nuiton.validator.xwork2.field.CollectionUniqueKeyValidator;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-/**
- * To fix a bug (will be moved back to nuiton-validator) (see
- * http://nuiton.org/issues/2545)
- * <p/>
- * TODO Remove this when using nuiton-validator 2.6.10 and reuse the basic validator.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0.1
- */
-public class TuttiCollectionUniqueKeyValidator extends CollectionUniqueKeyValidator {
-
- @Override
- public void validateWhenNotSkip(Object object) throws ValidationException {
-
- if (keys == null || keys.length == 0) {
- throw new ValidationException("no unique keys defined");
- }
-
- String fieldName = getFieldName();
-
- Collection<?> col = getCollection(object);
-
- if (log.isDebugEnabled()) {
- log.debug("collection found : " + col);
- }
- Object againstBean = againstProperty == null ? null :
- getFieldValue(againstProperty, object);
-
- if (log.isDebugEnabled()) {
- log.debug("againtBean = " + againstBean);
- }
- Integer againstIndex = (Integer) (againstIndexExpression == null ?
- -1 :
- getFieldValue(againstIndexExpression, object));
- if (againstIndex == null) {
- againstIndex = -1;
- }
-
- if (!againstMe && againstBean == null && col.size() < 2) {
- // la liste ne contient pas deux entrées donc c'est valide
- return;
- }
-
- if (againstMe) {
- // try on this object
- againstBean = object;
- if (log.isDebugEnabled()) {
- log.debug("againtBean from me = " + againstBean);
- }
- }
-
-
- boolean answer = true;
-
- Integer againstHashCode = againstBean == null ?
- null : getUniqueKeyHashCode(againstBean);
- if (log.isDebugEnabled()) {
- log.debug("hash for new key " + againstHashCode);
- }
-
- if (againstHashCode == null && nullValueSkipped) {
-
- // clef nulle, donc pas d'erreur vu que le flag a ete positionne
- return;
- }
- List<Integer> hashCodes = new ArrayList<Integer>();
-
- int index = 0;
- for (Object o : col) {
- Integer hash = getUniqueKeyHashCode(o);
-
- if (log.isDebugEnabled()) {
- log.debug("hash for object " + o + " = " + hash);
- }
-
- if (hash == null && nullValueSkipped) {
-
- // clef nulle, donc pas d'erreur vu que le flag a ete positionne
- continue;
- }
-
- if (againstBean == null) {
- if (hashCodes.contains(hash)) {
-
- // on a deja rencontre cette clef unique,
- // donc la validation a echouee
- answer = false;
- if (log.isDebugEnabled()) {
- log.debug("Found same hashcode, not unique!");
- }
- break;
- }
- } else {
- // utilisation de againstBean
- if (againstIndex != -1) {
- if (index != againstIndex &&
- hash.equals(againstHashCode)) {
- // on a deja rencontre cette clef unique,
- // donc la validation a echouee
- answer = false;
- break;
- }
- } else {
- if (!againstBean.equals(o) &&
- hash.equals(againstHashCode)) {
- // on a deja rencontre cette clef unique,
- // donc la validation a echouee
- answer = false;
- break;
- }
- }
- }
- // nouveau hashcode enregistre
- hashCodes.add(hash);
- // index suivant
- index++;
- }
-
- if (!answer) {
- addFieldError(fieldName, object);
- }
- }
-}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiErrorHelper.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiErrorHelper.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiErrorHelper.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -24,7 +24,7 @@
* #L%
*/
-import fr.ifremer.tutti.service.TuttiBusinessException;
+import fr.ifremer.tutti.TuttiBusinessException;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import org.jdesktop.swingx.JXErrorPane;
import org.jdesktop.swingx.error.ErrorInfo;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -24,7 +24,7 @@
* #L%
*/
-import fr.ifremer.tutti.service.TuttiTechnicalException;
+import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.ui.swing.content.AbstractChangeScreenAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
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-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -25,7 +25,7 @@
*/
import com.google.common.base.Preconditions;
-import fr.ifremer.tutti.service.TuttiTechnicalException;
+import fr.ifremer.tutti.TuttiTechnicalException;
import jaxx.runtime.JAXXUtil;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.lang3.time.DurationFormatUtils;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java 2013-03-02 16:03:05 UTC (rev 515)
@@ -35,7 +35,7 @@
import org.nuiton.util.decorator.Decorator;
/**
- * TODO
+ * Tutti base action.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-03-02 16:03:05 UTC (rev 515)
@@ -18,6 +18,7 @@
tutti.action.cancel.editProtocol.tip=Annuler l'édition (ou la création) du protocole
tutti.action.cancelEditCatchBatch=
tutti.action.cancelEditCatchBatch.tip=
+tutti.action.chooseDbExportFile=Exporter la base de données
tutti.action.chooseProtocolCaracteristicFile=Choisir le fichier des caractéristiques
tutti.action.chooseProtocolFile=Choisir le fichier de protocole
tutti.action.chooseProtocolSpeciesFile=Choisir le fichier des espèces
@@ -197,9 +198,11 @@
tutti.error.errorpane.htmlmessage=<html><body><b>Une erreur s'est produite</b>\:<br/>%s</body></html>
tutti.file.csv=Extension d'un fichier csv
tutti.file.protocol=Extension d'un fichier de protocole Tutti
+tutti.file.zip=Extension d'une archive zip
tutti.flash.information.all.caractristic.exported=Toutes les caractéristiques exportées dans le fichier %s.
tutti.flash.information.caracteristic.imported.in.protocol=Caractéristiques importées dans le protocole depuis le fichier %s.
tutti.flash.information.caractristic.exported.from.protocol=Caractéristiques du protocole exportées dans le fichier %s.
+tutti.flash.information.db.exported=Base exportée dans l'archive %s
tutti.flash.information.species.add.to.protocol=L'espèce %s a été ajoutée au protocole
tutti.flash.information.species.exported.from.protocol=Espèces du protocole exportées dans le fichier %s.
tutti.flash.information.species.imported.in.protocol=Espèces importées dans le protocole depuis le fichier %s.
@@ -474,6 +477,7 @@
tutti.table.species.sampleCategory.header.weight=Poids (kg)
tutti.timeeditor.H=H
tutti.title.about=À propos de Tutti
+tutti.title.choose.dbExportFile=Exporter la base de données
tutti.title.choose.exportTemporaryGearExampleFile=Exporter un exemple de référentiel Engin
tutti.title.choose.exportTemporaryPersonExampleFile=Exporter un exemple de référentiel Personne
tutti.title.choose.exportTemporarySpeciesExampleFile=Exporter un exemple de référentiel Espèce
Modified: trunk/tutti-ui-swing/src/main/resources/validators.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/validators.xml 2013-03-02 06:25:02 UTC (rev 514)
+++ trunk/tutti-ui-swing/src/main/resources/validators.xml 2013-03-02 16:03:05 UTC (rev 515)
@@ -42,9 +42,8 @@
<validator name="fieldexpression" class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/>
<validator name="email" class="com.opensymphony.xwork2.validator.validators.EmailValidator"/>
- <!--TODO Remove this when using nuiton-validator 2.6.10 and reuse the basic validator.-->
- <!--<validator name="collectionUniqueKey" class="org.nuiton.validator.xwork2.field.CollectionUniqueKeyValidator"/>-->
- <validator name="collectionUniqueKey" class="fr.ifremer.tutti.ui.swing.util.TuttiCollectionUniqueKeyValidator"/>
+ <!-- les validateurs fournis par nuiton-validator -->
+ <validator name="collectionUniqueKey" class="org.nuiton.validator.xwork2.field.CollectionUniqueKeyValidator"/>
<validator name="fieldexpressionwithparams" class="org.nuiton.validator.xwork2.field.FieldExpressionWithParamsValidator"/>
</validators>
1
0
r514 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing: . config content content/db content/protocol util util/action
by tchemit@users.forge.codelutin.com 02 Mar '13
by tchemit@users.forge.codelutin.com 02 Mar '13
02 Mar '13
Author: tchemit
Date: 2013-03-02 07:25:02 +0100 (Sat, 02 Mar 2013)
New Revision: 514
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/514
Log:
move MainUI to content pckage
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractChangeScreenAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractMainUITuttiAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedCruiseCatchesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedProgramAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ImportTemporaryReferentialAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ManageDbAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/SelectCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateApplicationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateReferentialAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ValidateSelectedCruiseCatchesAction.java
Removed:
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/AbstractMainUITuttiAction.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/ImportTemporaryReferentialAction.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/ManageDbAction.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/UpdateApplicationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateReferentialAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ValidateSelectedCruiseCatchesAction.java
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigUI.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/CloseDbAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/InstallDbAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/OpenDbAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java
Deleted: 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/AbstractChangeScreenAction.java 2013-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractChangeScreenAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -1,54 +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%
- */
-
-/**
- * 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 AbstractMainUITuttiAction {
-
- protected AbstractChangeScreenAction(MainUIHandler handler,
- String icon,
- String text,
- String tip,
- boolean hideBody) {
- super(handler, icon, text, tip, hideBody);
- }
-
- @Override
- protected boolean prepareAction() {
- boolean result = super.prepareAction();
- result &= getHandler().getCurrentHandler().canCloseUI(getNextScreen());
- return result;
- }
-
- /** @return the next screen to display. */
- protected abstract TuttiScreen getNextScreen();
-
-}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractMainUITuttiAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractMainUITuttiAction.java 2013-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractMainUITuttiAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -1,42 +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 fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
-
-/**
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0
- */
-public abstract class AbstractMainUITuttiAction extends AbstractTuttiAction<TuttiUIContext, MainUI, MainUIHandler> {
-
- protected AbstractMainUITuttiAction(MainUIHandler handler,
- String icon,
- String text,
- String tip,
- boolean hideBody) {
- super(handler, icon, text, tip, hideBody);
- }
-}
Deleted: 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-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -1,66 +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 com.google.common.base.Preconditions;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import static org.nuiton.i18n.I18n._;
-
-/**
- * Opens the cruise edition screen to edit the selected cruise.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0
- */
-public class EditSelectedCruiseAction extends AbstractChangeScreenAction {
-
- /** Logger. */
- private static final Log log = LogFactory.getLog(EditSelectedCruiseAction.class);
-
- public EditSelectedCruiseAction(MainUIHandler handler) {
- super(handler,
- "cruise",
- _("tutti.action.editSelectedCruise"),
- _("tutti.action.editSelectedCruise.tip"),
- true
- );
- }
-
- @Override
- protected void doAction() {
- Preconditions.checkState(getContext().isCruiseFilled());
- if (log.isInfoEnabled()) {
- log.info("Edit cruise: " + getContext().getCruiseId());
- }
- getContext().setScreen(getNextScreen());
- }
-
- @Override
- protected TuttiScreen getNextScreen() {
- return TuttiScreen.EDIT_CRUISE;
- }
-}
Deleted: 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-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseCatchesAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -1,62 +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 com.google.common.base.Preconditions;
-
-import static org.nuiton.i18n.I18n._;
-
-/**
- * Opens the catches edition screen to edit the selected catches.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0
- */
-public class EditSelectedCruiseCatchesAction extends AbstractChangeScreenAction {
-
- public EditSelectedCruiseCatchesAction(MainUIHandler handler) {
- super(handler,
- "edit",
- _("tutti.action.editCatches"),
- _("tutti.action.editCatches.tip"),
- true
- );
-// setMnemonic('C');
- }
-
- @Override
- protected void doAction() {
- Preconditions.checkState(getContext().isCruiseFilled());
- getContext().setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_EDIT);
- getContext().setScreen(null);
- getContext().setScreen(getNextScreen());
- }
-
- @Override
- protected TuttiScreen getNextScreen() {
- return TuttiScreen.EDIT_FISHING_OPERATION;
- }
-
-}
Deleted: 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-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -1,67 +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 com.google.common.base.Preconditions;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import static org.nuiton.i18n.I18n._;
-
-/**
- * Opens the program edition screen to edit the selected program.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0
- */
-public class EditSelectedProgramAction extends AbstractChangeScreenAction {
-
- /** Logger. */
- private static final Log log = LogFactory.getLog(EditSelectedProgramAction.class);
-
- public EditSelectedProgramAction(MainUIHandler handler) {
- super(handler,
- "program",
- _("tutti.action.editSelectedProgram"),
- _("tutti.action.editSelectedProgram.tip"),
- true
- );
- }
-
- @Override
- protected void doAction() {
- Preconditions.checkState(getContext().getProgramId() != null);
- if (log.isInfoEnabled()) {
- log.info("Edit program: " + getContext().getProgramId());
- }
- getContext().setScreen(getNextScreen());
- }
-
- @Override
- protected TuttiScreen getNextScreen() {
- return TuttiScreen.EDIT_PROGRAM;
- }
-
-}
Deleted: 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-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProtocolAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -1,68 +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 com.google.common.base.Preconditions;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import static org.nuiton.i18n.I18n._;
-
-/**
- * Opens the protocol edition screen to edit the selected protocol.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0
- */
-public class EditSelectedProtocolAction extends AbstractChangeScreenAction {
-
- /** Logger. */
- private static final Log log = LogFactory.getLog(EditSelectedProtocolAction.class);
-
- public EditSelectedProtocolAction(MainUIHandler handler) {
- super(handler,
- "protocol",
- _("tutti.action.editSelectedProtocol"),
- _("tutti.action.editSelectedProtocol.tip"),
- true
- );
-// setMnemonic('P');
- }
-
- @Override
- protected void doAction() {
- Preconditions.checkState(getContext().isProtocolFilled());
- if (log.isInfoEnabled()) {
- log.info("Edit protocol: " + getContext().getProtocolId());
- }
- getContext().setScreen(getNextScreen());
- }
-
- @Override
- protected TuttiScreen getNextScreen() {
- return TuttiScreen.EDIT_PROTOCOL;
- }
-
-}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ImportTemporaryReferentialAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ImportTemporaryReferentialAction.java 2013-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ImportTemporaryReferentialAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -1,71 +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 org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import javax.swing.SwingUtilities;
-
-import static org.nuiton.i18n.I18n._;
-
-/**
- * Open screen to import referential
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0
- */
-public class ImportTemporaryReferentialAction extends AbstractChangeScreenAction {
-
- /** Logger. */
- private static final Log log =
- LogFactory.getLog(ImportTemporaryReferentialAction.class);
-
- public ImportTemporaryReferentialAction(MainUIHandler handler) {
- super(handler,
- "temporary-referential-import",
- _("tutti.action.importTemporaryReferential"),
- _("tutti.action.importTemporaryReferential.tip"),
- true
- );
- }
-
- @Override
- protected void doAction() {
- getContext().setScreen(getNextScreen());
- SwingUtilities.invokeLater(new Runnable() {
- @Override
- public void run() {
- getContext().getMainUI().getBody().revalidate();
- }
- });
-
- }
-
- @Override
- protected TuttiScreen getNextScreen() {
- return TuttiScreen.IMPORT_TEMPORARY_REFERENTIAL;
- }
-}
Deleted: 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-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css 2013-03-02 06:25:02 UTC (rev 514)
@@ -1,180 +0,0 @@
-/*
- * #%L
- * Tutti :: UI
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-#actionBlockerLayer {
- canClick: false;
- blockingColor: {model.getConfig().getColorBlockingLayer()};
-}
-#mainFrame {
- title: "tutti.application.name";
- defaultCloseOperation: {JFrame.DO_NOTHING_ON_CLOSE};
-}
-
-#menuFile {
- text: "tutti.menu.file";
- toolTipText: "tutti.menu.file.tip";
- mnemonic: F;
-}
-
-#menuFileConfiguration {
- text: "tutti.action.configuration";
- toolTipText: "tutti.action.configuration.tip";
- actionIcon: config;
- mnemonic: C;
-}
-
-#menuFileExit {
- text: "tutti.action.exit";
- toolTipText: "tutti.action.exit.tip";
- actionIcon: exit;
-}
-
-#menuActionUpdate {
- _tuttiAction: {UpdateApplicationAction.class};
-}
-
-#menuActionManageDb {
- enabled: {model.getScreen() != TuttiScreen.MANAGE_DB};
- _tuttiAction: {ManageDbAction.class};
-}
-
-#menuActions {
- enabled: {model.isDbLoaded()};
- text: "tutti.menu.actions";
- toolTipText: "tutti.menu.actions.tip";
- mnemonic: A;
-}
-
-#menuActionSelectCruise {
- enabled: {model.getScreen() != TuttiScreen.SELECT_CRUISE};
- _tuttiAction: {SelectCruiseAction.class};
-}
-
-#menuActionEditProgram {
- enabled: {model.getScreen() != TuttiScreen.EDIT_PROGRAM && model.isProgramFilled()};
- _tuttiAction: {EditSelectedProgramAction.class};
-}
-
-#menuActionEditCruise {
- enabled: {model.getScreen() != TuttiScreen.EDIT_CRUISE && model.isCruiseFilled()};
- _tuttiAction: {EditSelectedCruiseAction.class};
-}
-
-#menuActionEditProtocol {
- enabled: {model.getScreen() != TuttiScreen.EDIT_PROTOCOL && model.isProtocolFilled()};
- _tuttiAction: {EditSelectedProtocolAction.class};
-}
-
-#menuActionEditCatches {
- enabled: {(
- !TuttiUIContext.VALIDATION_CONTEXT_EDIT.equals(model.getValidationContext())
- || model.getScreen() != TuttiScreen.EDIT_FISHING_OPERATION
- ) && model.isCruiseFilled()};
- _tuttiAction: {EditSelectedCruiseCatchesAction.class};
-}
-
-#menuActionValidateCatches {
- enabled: {(
- !TuttiUIContext.VALIDATION_CONTEXT_VALIDATE.equals(model.getValidationContext())
- || model.getScreen() != TuttiScreen.EDIT_FISHING_OPERATION
- ) && model.isCruiseFilled()};
- _tuttiAction: {ValidateSelectedCruiseCatchesAction.class};
-}
-
-#menuAdministration{
- enabled: {model.isDbLoaded()};
- text: "tutti.menu.administration";
- toolTipText: "tutti.menu.administration.tip";
- mnemonic: A;
-}
-
-#menuImportTemporaryReferential {
- enabled: {model.getScreen() != TuttiScreen.IMPORT_TEMPORARY_REFERENTIAL};
- _tuttiAction: {ImportTemporaryReferentialAction.class};
-}
-
-#menuSynchronisations {
- enabled: {model.isDbLoaded()};
- text: "tutti.menu.synchronisations";
- toolTipText: "tutti.menu.synchronisations.tip";
- mnemonic: S;
-}
-
-#menuSynchronisationImport {
- text: "tutti.menu.synchronisationImport";
- toolTipText: "tutti.menu.synchronisationImport.tip";
- mnemonic: I;
- enabled: false;
- actionIcon: import;
-}
-
-#menuSynchronisationExport {
- text: "tutti.menu.synchronisationExport";
- toolTipText: "tutti.menu.synchronisationExport.tip";
- mnemonic: E;
- enabled: false;
- actionIcon: export;
-}
-
-#menuSynchronisationAllegro {
- text: "tutti.menu.synchronisationAllegro";
- toolTipText: "tutti.menu.synchronisationAllegro.tip";
- mnemonic: A;
- enabled: false;
- actionIcon: allegro;
-}
-
-#menuHelp {
- text: "tutti.menu.help";
- toolTipText: "tutti.menu.help.tip";
- mnemonic: E;
-}
-
-#menuHelpSite {
- text: "tutti.action.site";
- toolTipText: "tutti.action.site.tip";
- actionIcon: site;
- mnemonic: S;
-}
-
-#menuHelpAbout {
- text: "tutti.action.about";
- toolTipText: "tutti.action.about.tip";
- actionIcon: about;
- mnemonic: A;
-}
-
-#menuUpdateApplication {
- _tuttiAction: {UpdateApplicationAction.class};
-}
-
-#bottomBar {
- floatable: false;
- margin: {new java.awt.Insets(0, 0, 0, 5)};
- borderPainted: false;
-}
-
-#validatorMessageWidget {
- focusPainted: false;
-}
Deleted: 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-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx 2013-03-02 06:25:02 UTC (rev 514)
@@ -1,109 +0,0 @@
-<!--
- #%L
- Tutti :: UI
- $Id$
- $HeadURL$
- %%
- Copyright (C) 2012 Ifremer
- %%
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as
- published by the Free Software Foundation, either version 3 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public
- License along with this program. If not, see
- <http://www.gnu.org/licenses/gpl-3.0.html>.
- #L%
- -->
-<JFrame id='mainFrame' onWindowClosing='getHandler().closeTutti()'
- implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<TuttiUIContext, MainUIHandler>'
- width='800' height='600'>
-
- <import>
- java.awt.BorderLayout
- javax.swing.JFrame
- org.jdesktop.swingx.JXTitledPanel
- jaxx.runtime.validator.swing.SwingValidator
- jaxx.runtime.validator.swing.SwingValidatorMessageWidget
- fr.ifremer.tutti.ui.swing.TuttiUIContext
- </import>
-
- <TuttiUIContext id='model'
- initializer='getContextValue(TuttiUIContext.class)'/>
- <MainUIHandler id='handler'
- initializer='getContextValue(MainUIHandler.class)'/>
-
- <script><![CDATA[
-
- public MainUI(TuttiUIContext context) {
- setContextValue(context);
- MainUIHandler handler = new MainUIHandler(context, this);
- setContextValue(handler);
- handler.beforeInitUI();
- }
-
- protected void $afterCompleteSetup() {
- getHandler().afterInitUI();
- }
- ]]></script>
-
- <!-- menu -->
- <JMenuBar id='menu'>
- <JMenu id='menuFile'>
- <JMenuItem id='menuFileConfiguration'
- onActionPerformed="getHandler().showConfig()"/>
- <JMenuItem id='menuActionUpdate'/>
- <JSeparator/>
- <JMenuItem id='menuActionManageDb'/>
- <JSeparator/>
- <JMenuItem id='menuFileExit'
- onActionPerformed='getHandler().closeTutti()'/>
- </JMenu>
-
- <JMenu id='menuActions'>
- <JMenuItem id='menuActionSelectCruise'/>
- <JMenuItem id='menuActionEditProgram'/>
- <JMenuItem id='menuActionEditCruise'/>
- <JMenuItem id='menuActionEditProtocol'/>
- <JMenuItem id='menuActionEditCatches'/>
- <JMenuItem id='menuActionValidateCatches'/>
- </JMenu>
-
- <JMenu id='menuAdministration'>
- <JMenuItem id='menuImportTemporaryReferential'/>
- </JMenu>
-
- <!--JMenu id='menuSynchronisations'>
-
- <JMenuItem id='menuSynchronisationImport'
- onActionPerformed="getHandler().showImportScreen()"/>
- <JMenuItem id='menuSynchronisationExport'
- onActionPerformed="getHandler().showExportScreen()"/>
- <JMenuItem id='menuSynchronisationAllegro'
- onActionPerformed="getHandler().showAllegroScreen()"/>
- </JMenu-->
-
- <JMenu id='menuHelp'>
- <JMenuItem id='menuHelpSite'
- onActionPerformed='getHandler().gotoSite()'/>
- <JMenuItem id='menuHelpAbout'
- onActionPerformed='getHandler().showAbout()'/>
- </JMenu>
- </JMenuBar>
-
- <JToolBar id='bottomBar'>
- <SwingValidatorMessageWidget id='validatorMessageWidget'/>
- </JToolBar>
-
- <JXTitledPanel id='body' constraints='BorderLayout.CENTER'/>
-
- <!-- status message bar -->
- <StatusMessagePanel id='status' constraints="BorderLayout.SOUTH"/>
-
-</JFrame>
Deleted: 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-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -1,507 +0,0 @@
-package fr.ifremer.tutti.ui.swing;
-
-/*
- * #%L
- * Tutti :: UI
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import fr.ifremer.tutti.persistence.entities.data.Cruise;
-import fr.ifremer.tutti.persistence.entities.data.Program;
-import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
-import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
-import fr.ifremer.tutti.ui.swing.config.TuttiConfigUI;
-import fr.ifremer.tutti.ui.swing.content.cruise.EditCruiseUI;
-import fr.ifremer.tutti.ui.swing.content.db.DbManagerUI;
-import fr.ifremer.tutti.ui.swing.content.db.OpenDbAction;
-import fr.ifremer.tutti.ui.swing.content.home.SelectCruiseUI;
-import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI;
-import fr.ifremer.tutti.ui.swing.content.program.EditProgramUI;
-import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI;
-import fr.ifremer.tutti.ui.swing.content.referential.ManageTemporaryReferentialUI;
-import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
-import fr.ifremer.tutti.ui.swing.util.TuttiUI;
-import fr.ifremer.tutti.ui.swing.util.action.TuttiActionUI;
-import fr.ifremer.tutti.ui.swing.util.action.TuttiUIAction;
-import jaxx.runtime.swing.AboutPanel;
-import jaxx.runtime.validator.swing.SwingValidator;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.ApplicationConfig;
-import org.nuiton.widget.SwingSession;
-
-import javax.swing.Icon;
-import javax.swing.JComponent;
-import javax.swing.JLabel;
-import javax.swing.JToolBar;
-import java.awt.Desktop;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.net.URL;
-import java.util.Calendar;
-
-import static org.nuiton.i18n.I18n._;
-
-/**
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.1
- */
-public class MainUIHandler extends AbstractTuttiUIHandler<TuttiUIContext, MainUI> {
-
- /** Logger. */
- private static final Log log = LogFactory.getLog(MainUIHandler.class);
-
- public static final String CLONE_PROTOCOL = "cloneProtocol";
-
- protected JComponent currentBody;
-
- protected PersistenceService persistenceService;
-
- protected MainUIHandler(TuttiUIContext context, MainUI ui) {
- super(context, ui);
- this.persistenceService = context.getPersistenceService();
- context.setMainUI(ui);
- context.setActionUI(new TuttiActionUI(ui, context));
- }
-
- protected MainUIHandler(TuttiUIContext context) {
- super(context, null);
- this.persistenceService = null;
- }
-
- //------------------------------------------------------------------------//
- //-- AbstractTuttiUIHandler methods --//
- //------------------------------------------------------------------------//
-
- @Override
- public void beforeInitUI() {
- context.addPropertyChangeListener(new PropertyChangeListener() {
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- String propertyName = evt.getPropertyName();
- if (TuttiUIContext.ID_TO_SAVE_PROPERTIES.contains(propertyName)) {
-
- // change the ui title
- changeTitle();
-
- } else if (propertyName.equals(TuttiUIContext.PROPERTY_SCREEN)) {
- setScreen((TuttiScreen) evt.getNewValue());
- }
- }
- });
- ui.setContextValue(ui, MainUI.class.getName());
- }
-
- @Override
- public void afterInitUI() {
-
- initUI(ui);
-
- // Init SwingSession
- SwingSession swingSession = context.getSwingSession();
- swingSession.add(ui);
- swingSession.save();
-
- //SwingUtil.getLayer(ui.getBody()).setUI(new BetaLayerUI());
-
- changeTitle();
-
- JToolBar bar = ui.getBottomBar();
- ui.getStatus().addWidget(bar, 0);
-
- if (!context.isDbExist()) {
-
- // clean db context
- context.clearDbContext();
-
- // go to manage db screen (to install db)
- context.setScreen(TuttiScreen.MANAGE_DB);
- } else {
-
- // open tutti db
- TuttiUIAction<OpenDbAction> openDbAction = createAction(OpenDbAction.class);
- openDbAction.actionPerformed(null);
- }
- }
-
- @Override
- public void onCloseUI() {
-
- context.close();
- }
-
- @Override
- public SwingValidator<TuttiUIContext> getValidator() {
- return null;
- }
-
- //------------------------------------------------------------------------//
- //-- Public methods --//
- //------------------------------------------------------------------------//
-
- public void closeTutti() {
- RunTutti.closeTutti(ui, true);
- }
-
- public void reloadTutti() {
-
- // Close the application
- RunTutti.closeTutti(ui, false);
-
- RunTutti.startTutti(context);
- }
-
- public void reloadApplication() {
- //TODO
- }
-
- public void reloadShortcuts() {
- //TODO
- }
-
- public void showConfig() {
-
- TuttiConfigUI configUI = new TuttiConfigUI(ui);
- configUI.createUI();
- }
-
- public void showManageProtocol() {
- context.setScreen(TuttiScreen.EDIT_PROTOCOL);
- }
-
- public void showSelectCampaign() {
- context.setScreen(TuttiScreen.SELECT_CRUISE);
- }
-
- public void showFillCatches() {
- context.setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_EDIT);
- context.setScreen(TuttiScreen.EDIT_FISHING_OPERATION);
- }
-
- public void showValidateCatches() {
- context.setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_VALIDATE);
- context.setScreen(TuttiScreen.EDIT_FISHING_OPERATION);
- }
-
- public void showAbout() {
-
- ApplicationConfig applicationConfig =
- context.getConfig().getApplicationConfig();
-
- String iconPath = applicationConfig.getOption("application.icon.path");
- String name = "tutti-ui-swing";
- String licensePath = "META-INF/" + name + "-LICENSE.txt";
- String thirdPartyPath = "META-INF/" + name + "-THIRD-PARTY.txt";
-
- AboutPanel about = new AboutPanel();
- about.setTitle(_("tutti.title.about"));
- about.setAboutText(_("tutti.about.message"));
-
- TuttiApplicationConfig config = context.getConfig();
- int currentYear = Calendar.getInstance().get(Calendar.YEAR);
- int inceptionYear = config.getInceptionYear();
- String years;
- if (currentYear != inceptionYear) {
- years = inceptionYear + "-" + currentYear;
- } else {
- years = inceptionYear + "";
- }
-
- about.setBottomText(_("tutti.about.bottomText",
- config.getOrganizationName(),
- years,
- config.getVersion()));
- about.setIconPath(iconPath);
- about.setLicenseFile(licensePath);
- about.setThirdpartyFile(thirdPartyPath);
- about.buildTopPanel();
- about.init();
- about.showInDialog(ui, true);
-
- // register on swing session
- context.getSwingSession().add(about);
- }
-
- public void gotoSite() {
- TuttiApplicationConfig config = context.getConfig();
-
- URL siteURL = config.getSiteUrl();
-
- if (log.isDebugEnabled()) {
- log.debug("goto " + siteURL);
- }
- if (Desktop.isDesktopSupported() &&
- Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) {
- try {
- Desktop.getDesktop().browse(siteURL.toURI());
- } catch (Exception e) {
- TuttiUIContext.getErrorHelper().showErrorDialog(
- "Failed to open '" + siteURL + "' in browser", e);
- }
- }
- }
-
- @Override
- public final void showInformationMessage(String message) {
- ui.getStatus().setStatus(message);
- }
-
- public void registerValidator(SwingValidator validator) {
- ui.getValidatorMessageWidget().registerValidator(validator);
- }
-
- @Override
- public void clearValidators() {
- ui.getValidatorMessageWidget().clearValidators();
- }
-
- public AbstractTuttiUIHandler getCurrentHandler() {
- TuttiUI<?, ?> body = (TuttiUI<?, ?>) currentBody;
- return body.getHandler();
- }
-
- /**
- * Reload the persistence service and set the new ne into the handler.
- *
- * @since 1.0
- */
- public void reloadPersistenceService() {
- this.persistenceService = context.reloadPersistenceService();
- }
-
- /**
- * Get the persistence service instance used by the handler.
- *
- * @return the persistence service instance used by the handler
- * @since 1.0
- */
- public PersistenceService getPersistenceService() {
- return persistenceService;
- }
-
- //------------------------------------------------------------------------//
- //-- Internal methods --//
- //------------------------------------------------------------------------//
-
- protected void setScreen(TuttiScreen screen) {
-
- try {
-
- // close current body (if any)
- if (currentBody != null) {
- TuttiUI<?, ?> body = (TuttiUI<?, ?>) currentBody;
- body.getHandler().onCloseUI();
-
- context.getSwingSession().save();
-
- ui.getBody().remove(currentBody);
-
- currentBody = null;
- }
-
- if (screen != null) {
-
- String programId = context.getProgramId();
- String cruiseId = context.getCruiseId();
- String protocolId = context.getProtocolId();
-
- JComponent screenUI;
- String screenTitle;
-
- Icon icon;
- switch (screen) {
- default:
- case MANAGE_DB:
-
- screenUI = new DbManagerUI(ui);
- screenTitle = _("tutti.title.manageDb");
- icon = ui.getMenuActionManageDb().getIcon();
- break;
-
- case SELECT_CRUISE:
-
- screenUI = new SelectCruiseUI(ui);
- screenTitle = _("tutti.title.home");
- icon = ui.getMenuActionSelectCruise().getIcon();
- break;
-
- case EDIT_PROGRAM:
-
- if (programId == null) {
- screenTitle = _("tutti.title.create.program");
- } else {
- screenTitle = _("tutti.title.edit.program");
- }
-
- screenUI = new EditProgramUI(ui);
- icon = ui.getMenuActionEditProgram().getIcon();
- break;
-
- case EDIT_CRUISE:
-
- if (cruiseId == null) {
- screenTitle = _("tutti.title.create.cruise");
- } else {
- screenTitle = _("tutti.title.edit.cruise");
- }
-
- screenUI = new EditCruiseUI(ui);
- icon = ui.getMenuActionEditCruise().getIcon();
- break;
-
- case EDIT_PROTOCOL:
-
- if (protocolId == null) {
- screenTitle = _("tutti.title.create.protocol");
- } else {
- screenTitle = _("tutti.title.edit.protocol");
- }
-
- screenUI = new EditProtocolUI(ui);
- icon = ui.getMenuActionEditProtocol().getIcon();
- break;
-
- case CLONE_PROTOCOL:
- screenTitle = _("tutti.title.create.protocol");
- ui.setContextValue(true, CLONE_PROTOCOL);
- screenUI = new EditProtocolUI(ui);
- icon = ui.getMenuActionEditProtocol().getIcon();
- break;
-
- case EDIT_FISHING_OPERATION:
-
- String validationContext = context.getValidationContext();
-
- if (TuttiUIContext.VALIDATION_CONTEXT_EDIT.equals(validationContext)) {
-
- // edit catches
- screenTitle = _("tutti.title.edit.operations", getSelectedCruiseTitle());
- icon = ui.getMenuActionEditCatches().getIcon();
- } else {
-
- // validate catches
- screenTitle = _("tutti.title.validate.operations", getSelectedCruiseTitle());
- icon = ui.getMenuActionValidateCatches().getIcon();
- }
- screenUI = new FishingOperationsUI(ui);
-
- break;
-
- case IMPORT_TEMPORARY_REFERENTIAL:
- screenTitle = _("tutti.title.import.temporary.referential");
- screenUI = new ManageTemporaryReferentialUI(ui);
- icon = ui.getMenuImportTemporaryReferential().getIcon();
- break;
- }
-
- this.currentBody = screenUI;
- context.getSwingSession().add(currentBody);
- ui.getBody().setTitle(screenTitle);
- ui.getBody().add(currentBody);
- ui.getBody().setLeftDecoration(new JLabel(icon));
-
- }
- } catch (Exception e) {
-
-// AbstractTuttiAction mainAction = AbstractTuttiAction.getMainAction();
-// if (mainAction != null) {
-// mainAction.setFailed(true);
-// }
-
- TuttiUIContext.getErrorHelper().showErrorDialog(
- "Could not change to screen " + screen, e);
-
- // go back to home
- context.setScreen(TuttiScreen.SELECT_CRUISE);
- }
- }
-
- protected void changeTitle() {
-
- String title = getSelectedCruiseTitle();
-
- ui.setTitle("Tutti - v " + getConfig().getVersion() + " [ " + title + " ]");
- }
-
- protected String getSelectedCruiseTitle() {
-
-
- String title;
-
- if (context.isDbLoaded()) {
-
- if (context.isProgramFilled()) {
-
- // selected program
-
- Program program = getDataContext().getProgram();
-
- title = _("tutti.title.selectedProgram", program.getName()) + " / ";
-
- if (context.isCruiseFilled()) {
-
- // selected cruise
- Cruise cruise;
- cruise = getDataContext().getCruise();
-
- if (cruise != null) {
- title += _("tutti.title.selectedCruise", cruise.getName());
- }
- } else {
-
- // no selected cruise
-
- title += _("tutti.title.noSelectedCruise");
- }
-
- title += " / ";
-
- if (context.isProtocolFilled()) {
-
- // selected protocol
- TuttiProtocol protocol = getDataContext().getProtocol();
-
- title += _("tutti.title.selectedProtocol", protocol.getName());
- } else {
-
- // no selected protocol
-
- title += _("tutti.title.noSelectedProtocol");
- }
-
- } else {
-
- // no program selected (so neither cruise)
-
- title = _("tutti.title.noSelectedProgram");
-
- }
- } else {
-
- // no db loaded
-
- title = _("tutti.title.nodb");
- }
-
- return title;
- }
-}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ManageDbAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ManageDbAction.java 2013-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ManageDbAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -1,66 +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 org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import static org.nuiton.i18n.I18n._;
-
-/**
- * To manage db in Tutti.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0
- */
-public class ManageDbAction extends AbstractChangeScreenAction {
-
- /** Logger. */
- private static final Log log = LogFactory.getLog(ManageDbAction.class);
-
- public ManageDbAction(MainUIHandler handler) {
- super(handler,
- "manage-db",
- _("tutti.action.manageDb"),
- _("tutti.action.manageDb.tip"),
- true
- );
-// setMnemonic('P');
- }
-
- @Override
- protected void doAction() {
- if (log.isDebugEnabled()) {
- log.debug("open manage db screen");
- }
- getContext().setScreen(getNextScreen());
- }
-
- @Override
- protected TuttiScreen getNextScreen() {
- return TuttiScreen.MANAGE_DB;
- }
-
-}
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java 2013-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -25,6 +25,9 @@
*/
import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
+import fr.ifremer.tutti.ui.swing.content.MainUI;
+import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
+import fr.ifremer.tutti.ui.swing.content.UpdateApplicationAction;
import fr.ifremer.tutti.ui.swing.util.TuttiExceptionHandler;
import jaxx.runtime.SwingUtil;
import org.apache.commons.logging.Log;
Deleted: 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-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/SelectCruiseAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -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 static org.nuiton.i18n.I18n._;
-
-/**
- * Opens the cruise selection screen (home).
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0
- */
-public class SelectCruiseAction extends AbstractChangeScreenAction {
-
- public SelectCruiseAction(MainUIHandler handler) {
- super(handler,
- "home",
- _("tutti.action.selectCruise"),
- _("tutti.action.selectCruise.tip"),
- true
- );
-// setMnemonic('S');
- }
-
- @Override
- protected void doAction() {
-// Preconditions.checkNotNull(getContext().isCruiseFilled());
- getContext().setScreen(getNextScreen());
- }
-
- @Override
- protected TuttiScreen getNextScreen() {
- return TuttiScreen.SELECT_CRUISE;
- }
-}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -39,6 +39,7 @@
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
import fr.ifremer.tutti.service.referential.TuttiReferentialSynchronizeService;
import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
+import fr.ifremer.tutti.ui.swing.content.MainUI;
import fr.ifremer.tutti.ui.swing.util.TuttiErrorHelper;
import fr.ifremer.tutti.ui.swing.util.UIMessageNotifier;
import fr.ifremer.tutti.ui.swing.util.action.TuttiActionUI;
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateApplicationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateApplicationAction.java 2013-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateApplicationAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -1,98 +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 fr.ifremer.tutti.persistence.ProgressionModel;
-import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
-import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.ApplicationUpdater;
-
-import java.io.File;
-
-import static org.nuiton.i18n.I18n._;
-
-/**
- * To update jre / i18n or tutti using the {@link ApplicationUpdater} mecanism.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0
- */
-public class UpdateApplicationAction extends AbstractTuttiAction<TuttiUIContext, MainUI, MainUIHandler> {
-
- /** Logger. */
- private static final Log log =
- LogFactory.getLog(UpdateApplicationAction.class);
-
- public UpdateApplicationAction(MainUIHandler handler) {
- super(handler,
- "update-application",
- _("tutti.action.updateApplication"),
- _("tutti.action.updateApplication.tip"),
- true);
- }
-
- @Override
- protected void doAction() {
-
- TuttiApplicationConfig config = getContext().getConfig();
-
- File current = config.getTuttiBasedir();
- if (current == null || !current.exists()) {
-
- // can not update application
- if (log.isWarnEnabled()) {
- log.warn("No application base directory defined, skip updates.");
- }
- } else {
-
- String url = config.getUpdateUrl();
- File dest = new File(config.getTuttiBasedir(), "NEW");
-
- if (log.isInfoEnabled()) {
- log.info(String.format("Try to update jre, i18N or tutti (current application location: %s), using update url: %s", current, url));
- }
- ApplicationUpdater up = new ApplicationUpdater();
-
- ProgressionModel progressionModel = new ProgressionModel();
- getContext().getActionUI().getModel().setProgressionModel(progressionModel);
- progressionModel.setMessage("Recherche de mises à jour de JRE / Tutti / I18N");
-
- TuttiApplicationUpdaterCallBack callback =
- new TuttiApplicationUpdaterCallBack(getContext(), progressionModel);
-
- callback.setTypes(TuttiApplicationUpdaterCallBack.UpdateType.JRE,
- TuttiApplicationUpdaterCallBack.UpdateType.I18N,
- TuttiApplicationUpdaterCallBack.UpdateType.TUTTI);
- up.update(url,
- current,
- dest,
- false,
- callback);
-// getContext().getActionUI().getModel().clear();
- }
- }
-}
\ No newline at end of file
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateReferentialAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateReferentialAction.java 2013-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateReferentialAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -1,93 +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 fr.ifremer.tutti.persistence.ProgressionModel;
-import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.ApplicationUpdater;
-
-import java.io.File;
-
-import static org.nuiton.i18n.I18n._;
-
-/**
- * To update referential using the {@link ApplicationUpdater} mecanism.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0
- */
-public class UpdateReferentialAction extends AbstractMainUITuttiAction {
-
- /** Logger. */
- private static final Log log =
- LogFactory.getLog(UpdateReferentialAction.class);
-
- public UpdateReferentialAction(MainUIHandler handler) {
- super(handler,
- "update-referential",
- _("tutti.action.updateReferential"),
- _("tutti.action.updateReferential.tip"),
- true);
- }
-
- @Override
- protected void doAction() {
- TuttiApplicationConfig config = getContext().getConfig();
-
- File current = config.getDataDirectory();
- String url = config.getUpdateUrl();
-
- if (log.isInfoEnabled()) {
- log.info(String.format("Try to update db (current data location: %s), using update url: %s", current, url));
- }
- ApplicationUpdater up = new ApplicationUpdater();
-
- File dest = new File(config.getTuttiBasedir(), "NEW");
- ProgressionModel progressionModel = new ProgressionModel();
- getContext().getActionUI().getModel().setProgressionModel(progressionModel);
- progressionModel.setMessage("Recherche de mises à jour de base");
- TuttiApplicationUpdaterCallBack callback = new TuttiApplicationUpdaterCallBack(getContext(), progressionModel);
- callback.setTypes(TuttiApplicationUpdaterCallBack.UpdateType.DB);
- up.update(url,
- current,
- dest,
- false,
- callback);
-
- if (callback.isDbUpdated()) {
-
- progressionModel.setMessage("Rechargement de la base de données");
-
- getContext().setDbLoaded(true);
- getContext().reloadPersistenceService();
-
-
- } else {
- sendMessage("Aucune mise à jour de base détectée.");
- }
- }
-}
\ No newline at end of file
Deleted: 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-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ValidateSelectedCruiseCatchesAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -1,60 +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 com.google.common.base.Preconditions;
-
-import static org.nuiton.i18n.I18n._;
-
-/**
- * Opens the catches validation screen to edit the selected catches.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0
- */
-public class ValidateSelectedCruiseCatchesAction extends AbstractChangeScreenAction {
-
- public ValidateSelectedCruiseCatchesAction(MainUIHandler handler) {
- super(handler,
- "validate",
- _("tutti.action.validateCatches"),
- _("tutti.action.validateCatches.tip"),
- true
- );
- }
-
- @Override
- protected void doAction() {
- Preconditions.checkState(getContext().isCruiseFilled());
- getContext().setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_VALIDATE);
- getContext().setScreen(null);
- getContext().setScreen(getNextScreen());
- }
-
- @Override
- protected TuttiScreen getNextScreen() {
- return TuttiScreen.EDIT_FISHING_OPERATION;
- }
-}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigUI.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigUI.java 2013-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigUI.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -25,7 +25,7 @@
*/
import fr.ifremer.tutti.service.config.TuttiServiceConfigOption;
-import fr.ifremer.tutti.ui.swing.MainUI;
+import fr.ifremer.tutti.ui.swing.content.MainUI;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.swing.editor.config.ConfigUI;
import jaxx.runtime.swing.editor.config.ConfigUIHelper;
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractChangeScreenAction.java (from rev 513, 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/AbstractChangeScreenAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractChangeScreenAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -0,0 +1,56 @@
+
+package fr.ifremer.tutti.ui.swing.content;
+
+/*
+ * #%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.TuttiScreen;
+
+/**
+ * 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 AbstractMainUITuttiAction {
+
+ protected AbstractChangeScreenAction(MainUIHandler handler,
+ String icon,
+ String text,
+ String tip,
+ boolean hideBody) {
+ super(handler, icon, text, tip, hideBody);
+ }
+
+ @Override
+ protected boolean prepareAction() {
+ boolean result = super.prepareAction();
+ result &= getHandler().getCurrentHandler().canCloseUI(getNextScreen());
+ return result;
+ }
+
+ /** @return the next screen to display. */
+ protected abstract TuttiScreen getNextScreen();
+
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractMainUITuttiAction.java (from rev 513, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractMainUITuttiAction.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractMainUITuttiAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractMainUITuttiAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -0,0 +1,43 @@
+package fr.ifremer.tutti.ui.swing.content;
+
+/*
+ * #%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.TuttiUIContext;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+
+/**
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public abstract class AbstractMainUITuttiAction extends AbstractTuttiAction<TuttiUIContext, MainUI, MainUIHandler> {
+
+ protected AbstractMainUITuttiAction(MainUIHandler handler,
+ String icon,
+ String text,
+ String tip,
+ boolean hideBody) {
+ super(handler, icon, text, tip, hideBody);
+ }
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedCruiseAction.java (from rev 513, 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/content/EditSelectedCruiseAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedCruiseAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -0,0 +1,67 @@
+package fr.ifremer.tutti.ui.swing.content;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.base.Preconditions;
+import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * Opens the cruise edition screen to edit the selected cruise.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class EditSelectedCruiseAction extends AbstractChangeScreenAction {
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(EditSelectedCruiseAction.class);
+
+ public EditSelectedCruiseAction(MainUIHandler handler) {
+ super(handler,
+ "cruise",
+ _("tutti.action.editSelectedCruise"),
+ _("tutti.action.editSelectedCruise.tip"),
+ true
+ );
+ }
+
+ @Override
+ protected void doAction() {
+ Preconditions.checkState(getContext().isCruiseFilled());
+ if (log.isInfoEnabled()) {
+ log.info("Edit cruise: " + getContext().getCruiseId());
+ }
+ getContext().setScreen(getNextScreen());
+ }
+
+ @Override
+ protected TuttiScreen getNextScreen() {
+ return TuttiScreen.EDIT_CRUISE;
+ }
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedCruiseCatchesAction.java (from rev 513, 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/content/EditSelectedCruiseCatchesAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedCruiseCatchesAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -0,0 +1,64 @@
+package fr.ifremer.tutti.ui.swing.content;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.base.Preconditions;
+import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * Opens the catches edition screen to edit the selected catches.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class EditSelectedCruiseCatchesAction extends AbstractChangeScreenAction {
+
+ public EditSelectedCruiseCatchesAction(MainUIHandler handler) {
+ super(handler,
+ "edit",
+ _("tutti.action.editCatches"),
+ _("tutti.action.editCatches.tip"),
+ true
+ );
+// setMnemonic('C');
+ }
+
+ @Override
+ protected void doAction() {
+ Preconditions.checkState(getContext().isCruiseFilled());
+ getContext().setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_EDIT);
+ getContext().setScreen(null);
+ getContext().setScreen(getNextScreen());
+ }
+
+ @Override
+ protected TuttiScreen getNextScreen() {
+ return TuttiScreen.EDIT_FISHING_OPERATION;
+ }
+
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedProgramAction.java (from rev 513, 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/content/EditSelectedProgramAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedProgramAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -0,0 +1,68 @@
+package fr.ifremer.tutti.ui.swing.content;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.base.Preconditions;
+import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * Opens the program edition screen to edit the selected program.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class EditSelectedProgramAction extends AbstractChangeScreenAction {
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(EditSelectedProgramAction.class);
+
+ public EditSelectedProgramAction(MainUIHandler handler) {
+ super(handler,
+ "program",
+ _("tutti.action.editSelectedProgram"),
+ _("tutti.action.editSelectedProgram.tip"),
+ true
+ );
+ }
+
+ @Override
+ protected void doAction() {
+ Preconditions.checkState(getContext().getProgramId() != null);
+ if (log.isInfoEnabled()) {
+ log.info("Edit program: " + getContext().getProgramId());
+ }
+ getContext().setScreen(getNextScreen());
+ }
+
+ @Override
+ protected TuttiScreen getNextScreen() {
+ return TuttiScreen.EDIT_PROGRAM;
+ }
+
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedProtocolAction.java (from rev 513, 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/content/EditSelectedProtocolAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedProtocolAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -0,0 +1,69 @@
+package fr.ifremer.tutti.ui.swing.content;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.base.Preconditions;
+import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * Opens the protocol edition screen to edit the selected protocol.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class EditSelectedProtocolAction extends AbstractChangeScreenAction {
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(EditSelectedProtocolAction.class);
+
+ public EditSelectedProtocolAction(MainUIHandler handler) {
+ super(handler,
+ "protocol",
+ _("tutti.action.editSelectedProtocol"),
+ _("tutti.action.editSelectedProtocol.tip"),
+ true
+ );
+// setMnemonic('P');
+ }
+
+ @Override
+ protected void doAction() {
+ Preconditions.checkState(getContext().isProtocolFilled());
+ if (log.isInfoEnabled()) {
+ log.info("Edit protocol: " + getContext().getProtocolId());
+ }
+ getContext().setScreen(getNextScreen());
+ }
+
+ @Override
+ protected TuttiScreen getNextScreen() {
+ return TuttiScreen.EDIT_PROTOCOL;
+ }
+
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ImportTemporaryReferentialAction.java (from rev 513, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ImportTemporaryReferentialAction.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ImportTemporaryReferentialAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ImportTemporaryReferentialAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -0,0 +1,72 @@
+package fr.ifremer.tutti.ui.swing.content;
+
+/*
+ * #%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.TuttiScreen;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.swing.SwingUtilities;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * Open screen to import referential
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class ImportTemporaryReferentialAction extends AbstractChangeScreenAction {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(ImportTemporaryReferentialAction.class);
+
+ public ImportTemporaryReferentialAction(MainUIHandler handler) {
+ super(handler,
+ "temporary-referential-import",
+ _("tutti.action.importTemporaryReferential"),
+ _("tutti.action.importTemporaryReferential.tip"),
+ true
+ );
+ }
+
+ @Override
+ protected void doAction() {
+ getContext().setScreen(getNextScreen());
+ SwingUtilities.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ getContext().getMainUI().getBody().revalidate();
+ }
+ });
+
+ }
+
+ @Override
+ protected TuttiScreen getNextScreen() {
+ return TuttiScreen.IMPORT_TEMPORARY_REFERENTIAL;
+ }
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.css (from rev 513, 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/content/MainUI.css (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.css 2013-03-02 06:25:02 UTC (rev 514)
@@ -0,0 +1,180 @@
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+#actionBlockerLayer {
+ canClick: false;
+ blockingColor: {model.getConfig().getColorBlockingLayer()};
+}
+#mainFrame {
+ title: "tutti.application.name";
+ defaultCloseOperation: {JFrame.DO_NOTHING_ON_CLOSE};
+}
+
+#menuFile {
+ text: "tutti.menu.file";
+ toolTipText: "tutti.menu.file.tip";
+ mnemonic: F;
+}
+
+#menuFileConfiguration {
+ text: "tutti.action.configuration";
+ toolTipText: "tutti.action.configuration.tip";
+ actionIcon: config;
+ mnemonic: C;
+}
+
+#menuFileExit {
+ text: "tutti.action.exit";
+ toolTipText: "tutti.action.exit.tip";
+ actionIcon: exit;
+}
+
+#menuActionUpdate {
+ _tuttiAction: {UpdateApplicationAction.class};
+}
+
+#menuActionManageDb {
+ enabled: {model.getScreen() != TuttiScreen.MANAGE_DB};
+ _tuttiAction: {ManageDbAction.class};
+}
+
+#menuActions {
+ enabled: {model.isDbLoaded()};
+ text: "tutti.menu.actions";
+ toolTipText: "tutti.menu.actions.tip";
+ mnemonic: A;
+}
+
+#menuActionSelectCruise {
+ enabled: {model.getScreen() != TuttiScreen.SELECT_CRUISE};
+ _tuttiAction: {SelectCruiseAction.class};
+}
+
+#menuActionEditProgram {
+ enabled: {model.getScreen() != TuttiScreen.EDIT_PROGRAM && model.isProgramFilled()};
+ _tuttiAction: {EditSelectedProgramAction.class};
+}
+
+#menuActionEditCruise {
+ enabled: {model.getScreen() != TuttiScreen.EDIT_CRUISE && model.isCruiseFilled()};
+ _tuttiAction: {EditSelectedCruiseAction.class};
+}
+
+#menuActionEditProtocol {
+ enabled: {model.getScreen() != TuttiScreen.EDIT_PROTOCOL && model.isProtocolFilled()};
+ _tuttiAction: {EditSelectedProtocolAction.class};
+}
+
+#menuActionEditCatches {
+ enabled: {(
+ !TuttiUIContext.VALIDATION_CONTEXT_EDIT.equals(model.getValidationContext())
+ || model.getScreen() != TuttiScreen.EDIT_FISHING_OPERATION
+ ) && model.isCruiseFilled()};
+ _tuttiAction: {EditSelectedCruiseCatchesAction.class};
+}
+
+#menuActionValidateCatches {
+ enabled: {(
+ !TuttiUIContext.VALIDATION_CONTEXT_VALIDATE.equals(model.getValidationContext())
+ || model.getScreen() != TuttiScreen.EDIT_FISHING_OPERATION
+ ) && model.isCruiseFilled()};
+ _tuttiAction: {ValidateSelectedCruiseCatchesAction.class};
+}
+
+#menuAdministration{
+ enabled: {model.isDbLoaded()};
+ text: "tutti.menu.administration";
+ toolTipText: "tutti.menu.administration.tip";
+ mnemonic: A;
+}
+
+#menuImportTemporaryReferential {
+ enabled: {model.getScreen() != TuttiScreen.IMPORT_TEMPORARY_REFERENTIAL};
+ _tuttiAction: {ImportTemporaryReferentialAction.class};
+}
+
+#menuSynchronisations {
+ enabled: {model.isDbLoaded()};
+ text: "tutti.menu.synchronisations";
+ toolTipText: "tutti.menu.synchronisations.tip";
+ mnemonic: S;
+}
+
+#menuSynchronisationImport {
+ text: "tutti.menu.synchronisationImport";
+ toolTipText: "tutti.menu.synchronisationImport.tip";
+ mnemonic: I;
+ enabled: false;
+ actionIcon: import;
+}
+
+#menuSynchronisationExport {
+ text: "tutti.menu.synchronisationExport";
+ toolTipText: "tutti.menu.synchronisationExport.tip";
+ mnemonic: E;
+ enabled: false;
+ actionIcon: export;
+}
+
+#menuSynchronisationAllegro {
+ text: "tutti.menu.synchronisationAllegro";
+ toolTipText: "tutti.menu.synchronisationAllegro.tip";
+ mnemonic: A;
+ enabled: false;
+ actionIcon: allegro;
+}
+
+#menuHelp {
+ text: "tutti.menu.help";
+ toolTipText: "tutti.menu.help.tip";
+ mnemonic: E;
+}
+
+#menuHelpSite {
+ text: "tutti.action.site";
+ toolTipText: "tutti.action.site.tip";
+ actionIcon: site;
+ mnemonic: S;
+}
+
+#menuHelpAbout {
+ text: "tutti.action.about";
+ toolTipText: "tutti.action.about.tip";
+ actionIcon: about;
+ mnemonic: A;
+}
+
+#menuUpdateApplication {
+ _tuttiAction: {UpdateApplicationAction.class};
+}
+
+#bottomBar {
+ floatable: false;
+ margin: {new java.awt.Insets(0, 0, 0, 5)};
+ borderPainted: false;
+}
+
+#validatorMessageWidget {
+ focusPainted: false;
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.jaxx (from rev 513, 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/content/MainUI.jaxx (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.jaxx 2013-03-02 06:25:02 UTC (rev 514)
@@ -0,0 +1,109 @@
+<!--
+ #%L
+ Tutti :: UI
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 Ifremer
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+<JFrame id='mainFrame' onWindowClosing='getHandler().closeTutti()'
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<TuttiUIContext, MainUIHandler>'
+ width='800' height='600'>
+
+ <import>
+ java.awt.BorderLayout
+ javax.swing.JFrame
+ org.jdesktop.swingx.JXTitledPanel
+ jaxx.runtime.validator.swing.SwingValidator
+ jaxx.runtime.validator.swing.SwingValidatorMessageWidget
+ fr.ifremer.tutti.ui.swing.TuttiUIContext
+ </import>
+
+ <TuttiUIContext id='model'
+ initializer='getContextValue(TuttiUIContext.class)'/>
+ <MainUIHandler id='handler'
+ initializer='getContextValue(MainUIHandler.class)'/>
+
+ <script><![CDATA[
+
+ public MainUI(TuttiUIContext context) {
+ setContextValue(context);
+ MainUIHandler handler = new MainUIHandler(context, this);
+ setContextValue(handler);
+ handler.beforeInitUI();
+ }
+
+ protected void $afterCompleteSetup() {
+ getHandler().afterInitUI();
+ }
+ ]]></script>
+
+ <!-- menu -->
+ <JMenuBar id='menu'>
+ <JMenu id='menuFile'>
+ <JMenuItem id='menuFileConfiguration'
+ onActionPerformed="getHandler().showConfig()"/>
+ <JMenuItem id='menuActionUpdate'/>
+ <JSeparator/>
+ <JMenuItem id='menuActionManageDb'/>
+ <JSeparator/>
+ <JMenuItem id='menuFileExit'
+ onActionPerformed='getHandler().closeTutti()'/>
+ </JMenu>
+
+ <JMenu id='menuActions'>
+ <JMenuItem id='menuActionSelectCruise'/>
+ <JMenuItem id='menuActionEditProgram'/>
+ <JMenuItem id='menuActionEditCruise'/>
+ <JMenuItem id='menuActionEditProtocol'/>
+ <JMenuItem id='menuActionEditCatches'/>
+ <JMenuItem id='menuActionValidateCatches'/>
+ </JMenu>
+
+ <JMenu id='menuAdministration'>
+ <JMenuItem id='menuImportTemporaryReferential'/>
+ </JMenu>
+
+ <!--JMenu id='menuSynchronisations'>
+
+ <JMenuItem id='menuSynchronisationImport'
+ onActionPerformed="getHandler().showImportScreen()"/>
+ <JMenuItem id='menuSynchronisationExport'
+ onActionPerformed="getHandler().showExportScreen()"/>
+ <JMenuItem id='menuSynchronisationAllegro'
+ onActionPerformed="getHandler().showAllegroScreen()"/>
+ </JMenu-->
+
+ <JMenu id='menuHelp'>
+ <JMenuItem id='menuHelpSite'
+ onActionPerformed='getHandler().gotoSite()'/>
+ <JMenuItem id='menuHelpAbout'
+ onActionPerformed='getHandler().showAbout()'/>
+ </JMenu>
+ </JMenuBar>
+
+ <JToolBar id='bottomBar'>
+ <SwingValidatorMessageWidget id='validatorMessageWidget'/>
+ </JToolBar>
+
+ <JXTitledPanel id='body' constraints='BorderLayout.CENTER'/>
+
+ <!-- status message bar -->
+ <StatusMessagePanel id='status' constraints="BorderLayout.SOUTH"/>
+
+</JFrame>
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java (from rev 513, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -0,0 +1,510 @@
+package fr.ifremer.tutti.ui.swing.content;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ifremer.tutti.persistence.entities.data.Cruise;
+import fr.ifremer.tutti.persistence.entities.data.Program;
+import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
+import fr.ifremer.tutti.service.PersistenceService;
+import fr.ifremer.tutti.ui.swing.RunTutti;
+import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
+import fr.ifremer.tutti.ui.swing.config.TuttiConfigUI;
+import fr.ifremer.tutti.ui.swing.content.cruise.EditCruiseUI;
+import fr.ifremer.tutti.ui.swing.content.db.DbManagerUI;
+import fr.ifremer.tutti.ui.swing.content.db.OpenDbAction;
+import fr.ifremer.tutti.ui.swing.content.home.SelectCruiseUI;
+import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI;
+import fr.ifremer.tutti.ui.swing.content.program.EditProgramUI;
+import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI;
+import fr.ifremer.tutti.ui.swing.content.referential.ManageTemporaryReferentialUI;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
+import fr.ifremer.tutti.ui.swing.util.action.TuttiActionUI;
+import fr.ifremer.tutti.ui.swing.util.action.TuttiUIAction;
+import jaxx.runtime.swing.AboutPanel;
+import jaxx.runtime.validator.swing.SwingValidator;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.ApplicationConfig;
+import org.nuiton.widget.SwingSession;
+
+import javax.swing.Icon;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+import javax.swing.JToolBar;
+import java.awt.Desktop;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.net.URL;
+import java.util.Calendar;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.1
+ */
+public class MainUIHandler extends AbstractTuttiUIHandler<TuttiUIContext, MainUI> {
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(MainUIHandler.class);
+
+ public static final String CLONE_PROTOCOL = "cloneProtocol";
+
+ protected JComponent currentBody;
+
+ protected PersistenceService persistenceService;
+
+ protected MainUIHandler(TuttiUIContext context, MainUI ui) {
+ super(context, ui);
+ this.persistenceService = context.getPersistenceService();
+ context.setMainUI(ui);
+ context.setActionUI(new TuttiActionUI(ui, context));
+ }
+
+ protected MainUIHandler(TuttiUIContext context) {
+ super(context, null);
+ this.persistenceService = null;
+ }
+
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiUIHandler methods --//
+ //------------------------------------------------------------------------//
+
+ @Override
+ public void beforeInitUI() {
+ context.addPropertyChangeListener(new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ String propertyName = evt.getPropertyName();
+ if (TuttiUIContext.ID_TO_SAVE_PROPERTIES.contains(propertyName)) {
+
+ // change the ui title
+ changeTitle();
+
+ } else if (propertyName.equals(TuttiUIContext.PROPERTY_SCREEN)) {
+ setScreen((TuttiScreen) evt.getNewValue());
+ }
+ }
+ });
+ ui.setContextValue(ui, MainUI.class.getName());
+ }
+
+ @Override
+ public void afterInitUI() {
+
+ initUI(ui);
+
+ // Init SwingSession
+ SwingSession swingSession = context.getSwingSession();
+ swingSession.add(ui);
+ swingSession.save();
+
+ //SwingUtil.getLayer(ui.getBody()).setUI(new BetaLayerUI());
+
+ changeTitle();
+
+ JToolBar bar = ui.getBottomBar();
+ ui.getStatus().addWidget(bar, 0);
+
+ if (!context.isDbExist()) {
+
+ // clean db context
+ context.clearDbContext();
+
+ // go to manage db screen (to install db)
+ context.setScreen(TuttiScreen.MANAGE_DB);
+ } else {
+
+ // open tutti db
+ TuttiUIAction<OpenDbAction> openDbAction = createAction(OpenDbAction.class);
+ openDbAction.actionPerformed(null);
+ }
+ }
+
+ @Override
+ public void onCloseUI() {
+
+ context.close();
+ }
+
+ @Override
+ public SwingValidator<TuttiUIContext> getValidator() {
+ return null;
+ }
+
+ //------------------------------------------------------------------------//
+ //-- Public methods --//
+ //------------------------------------------------------------------------//
+
+ public void closeTutti() {
+ RunTutti.closeTutti(ui, true);
+ }
+
+ public void reloadTutti() {
+
+ // Close the application
+ RunTutti.closeTutti(ui, false);
+
+ RunTutti.startTutti(context);
+ }
+
+ public void reloadApplication() {
+ //TODO
+ }
+
+ public void reloadShortcuts() {
+ //TODO
+ }
+
+ public void showConfig() {
+
+ TuttiConfigUI configUI = new TuttiConfigUI(ui);
+ configUI.createUI();
+ }
+
+ public void showManageProtocol() {
+ context.setScreen(TuttiScreen.EDIT_PROTOCOL);
+ }
+
+ public void showSelectCampaign() {
+ context.setScreen(TuttiScreen.SELECT_CRUISE);
+ }
+
+ public void showFillCatches() {
+ context.setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_EDIT);
+ context.setScreen(TuttiScreen.EDIT_FISHING_OPERATION);
+ }
+
+ public void showValidateCatches() {
+ context.setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_VALIDATE);
+ context.setScreen(TuttiScreen.EDIT_FISHING_OPERATION);
+ }
+
+ public void showAbout() {
+
+ ApplicationConfig applicationConfig =
+ context.getConfig().getApplicationConfig();
+
+ String iconPath = applicationConfig.getOption("application.icon.path");
+ String name = "tutti-ui-swing";
+ String licensePath = "META-INF/" + name + "-LICENSE.txt";
+ String thirdPartyPath = "META-INF/" + name + "-THIRD-PARTY.txt";
+
+ AboutPanel about = new AboutPanel();
+ about.setTitle(_("tutti.title.about"));
+ about.setAboutText(_("tutti.about.message"));
+
+ TuttiApplicationConfig config = context.getConfig();
+ int currentYear = Calendar.getInstance().get(Calendar.YEAR);
+ int inceptionYear = config.getInceptionYear();
+ String years;
+ if (currentYear != inceptionYear) {
+ years = inceptionYear + "-" + currentYear;
+ } else {
+ years = inceptionYear + "";
+ }
+
+ about.setBottomText(_("tutti.about.bottomText",
+ config.getOrganizationName(),
+ years,
+ config.getVersion()));
+ about.setIconPath(iconPath);
+ about.setLicenseFile(licensePath);
+ about.setThirdpartyFile(thirdPartyPath);
+ about.buildTopPanel();
+ about.init();
+ about.showInDialog(ui, true);
+
+ // register on swing session
+ context.getSwingSession().add(about);
+ }
+
+ public void gotoSite() {
+ TuttiApplicationConfig config = context.getConfig();
+
+ URL siteURL = config.getSiteUrl();
+
+ if (log.isDebugEnabled()) {
+ log.debug("goto " + siteURL);
+ }
+ if (Desktop.isDesktopSupported() &&
+ Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) {
+ try {
+ Desktop.getDesktop().browse(siteURL.toURI());
+ } catch (Exception e) {
+ TuttiUIContext.getErrorHelper().showErrorDialog(
+ "Failed to open '" + siteURL + "' in browser", e);
+ }
+ }
+ }
+
+ @Override
+ public final void showInformationMessage(String message) {
+ ui.getStatus().setStatus(message);
+ }
+
+ public void registerValidator(SwingValidator validator) {
+ ui.getValidatorMessageWidget().registerValidator(validator);
+ }
+
+ @Override
+ public void clearValidators() {
+ ui.getValidatorMessageWidget().clearValidators();
+ }
+
+ public AbstractTuttiUIHandler getCurrentHandler() {
+ TuttiUI<?, ?> body = (TuttiUI<?, ?>) currentBody;
+ return body.getHandler();
+ }
+
+ /**
+ * Reload the persistence service and set the new ne into the handler.
+ *
+ * @since 1.0
+ */
+ public void reloadPersistenceService() {
+ this.persistenceService = context.reloadPersistenceService();
+ }
+
+ /**
+ * Get the persistence service instance used by the handler.
+ *
+ * @return the persistence service instance used by the handler
+ * @since 1.0
+ */
+ public PersistenceService getPersistenceService() {
+ return persistenceService;
+ }
+
+ //------------------------------------------------------------------------//
+ //-- Internal methods --//
+ //------------------------------------------------------------------------//
+
+ protected void setScreen(TuttiScreen screen) {
+
+ try {
+
+ // close current body (if any)
+ if (currentBody != null) {
+ TuttiUI<?, ?> body = (TuttiUI<?, ?>) currentBody;
+ body.getHandler().onCloseUI();
+
+ context.getSwingSession().save();
+
+ ui.getBody().remove(currentBody);
+
+ currentBody = null;
+ }
+
+ if (screen != null) {
+
+ String programId = context.getProgramId();
+ String cruiseId = context.getCruiseId();
+ String protocolId = context.getProtocolId();
+
+ JComponent screenUI;
+ String screenTitle;
+
+ Icon icon;
+ switch (screen) {
+ default:
+ case MANAGE_DB:
+
+ screenUI = new DbManagerUI(ui);
+ screenTitle = _("tutti.title.manageDb");
+ icon = ui.getMenuActionManageDb().getIcon();
+ break;
+
+ case SELECT_CRUISE:
+
+ screenUI = new SelectCruiseUI(ui);
+ screenTitle = _("tutti.title.home");
+ icon = ui.getMenuActionSelectCruise().getIcon();
+ break;
+
+ case EDIT_PROGRAM:
+
+ if (programId == null) {
+ screenTitle = _("tutti.title.create.program");
+ } else {
+ screenTitle = _("tutti.title.edit.program");
+ }
+
+ screenUI = new EditProgramUI(ui);
+ icon = ui.getMenuActionEditProgram().getIcon();
+ break;
+
+ case EDIT_CRUISE:
+
+ if (cruiseId == null) {
+ screenTitle = _("tutti.title.create.cruise");
+ } else {
+ screenTitle = _("tutti.title.edit.cruise");
+ }
+
+ screenUI = new EditCruiseUI(ui);
+ icon = ui.getMenuActionEditCruise().getIcon();
+ break;
+
+ case EDIT_PROTOCOL:
+
+ if (protocolId == null) {
+ screenTitle = _("tutti.title.create.protocol");
+ } else {
+ screenTitle = _("tutti.title.edit.protocol");
+ }
+
+ screenUI = new EditProtocolUI(ui);
+ icon = ui.getMenuActionEditProtocol().getIcon();
+ break;
+
+ case CLONE_PROTOCOL:
+ screenTitle = _("tutti.title.create.protocol");
+ ui.setContextValue(true, CLONE_PROTOCOL);
+ screenUI = new EditProtocolUI(ui);
+ icon = ui.getMenuActionEditProtocol().getIcon();
+ break;
+
+ case EDIT_FISHING_OPERATION:
+
+ String validationContext = context.getValidationContext();
+
+ if (TuttiUIContext.VALIDATION_CONTEXT_EDIT.equals(validationContext)) {
+
+ // edit catches
+ screenTitle = _("tutti.title.edit.operations", getSelectedCruiseTitle());
+ icon = ui.getMenuActionEditCatches().getIcon();
+ } else {
+
+ // validate catches
+ screenTitle = _("tutti.title.validate.operations", getSelectedCruiseTitle());
+ icon = ui.getMenuActionValidateCatches().getIcon();
+ }
+ screenUI = new FishingOperationsUI(ui);
+
+ break;
+
+ case IMPORT_TEMPORARY_REFERENTIAL:
+ screenTitle = _("tutti.title.import.temporary.referential");
+ screenUI = new ManageTemporaryReferentialUI(ui);
+ icon = ui.getMenuImportTemporaryReferential().getIcon();
+ break;
+ }
+
+ this.currentBody = screenUI;
+ context.getSwingSession().add(currentBody);
+ ui.getBody().setTitle(screenTitle);
+ ui.getBody().add(currentBody);
+ ui.getBody().setLeftDecoration(new JLabel(icon));
+
+ }
+ } catch (Exception e) {
+
+// AbstractTuttiAction mainAction = AbstractTuttiAction.getMainAction();
+// if (mainAction != null) {
+// mainAction.setFailed(true);
+// }
+
+ TuttiUIContext.getErrorHelper().showErrorDialog(
+ "Could not change to screen " + screen, e);
+
+ // go back to home
+ context.setScreen(TuttiScreen.SELECT_CRUISE);
+ }
+ }
+
+ protected void changeTitle() {
+
+ String title = getSelectedCruiseTitle();
+
+ ui.setTitle("Tutti - v " + getConfig().getVersion() + " [ " + title + " ]");
+ }
+
+ protected String getSelectedCruiseTitle() {
+
+
+ String title;
+
+ if (context.isDbLoaded()) {
+
+ if (context.isProgramFilled()) {
+
+ // selected program
+
+ Program program = getDataContext().getProgram();
+
+ title = _("tutti.title.selectedProgram", program.getName()) + " / ";
+
+ if (context.isCruiseFilled()) {
+
+ // selected cruise
+ Cruise cruise;
+ cruise = getDataContext().getCruise();
+
+ if (cruise != null) {
+ title += _("tutti.title.selectedCruise", cruise.getName());
+ }
+ } else {
+
+ // no selected cruise
+
+ title += _("tutti.title.noSelectedCruise");
+ }
+
+ title += " / ";
+
+ if (context.isProtocolFilled()) {
+
+ // selected protocol
+ TuttiProtocol protocol = getDataContext().getProtocol();
+
+ title += _("tutti.title.selectedProtocol", protocol.getName());
+ } else {
+
+ // no selected protocol
+
+ title += _("tutti.title.noSelectedProtocol");
+ }
+
+ } else {
+
+ // no program selected (so neither cruise)
+
+ title = _("tutti.title.noSelectedProgram");
+
+ }
+ } else {
+
+ // no db loaded
+
+ title = _("tutti.title.nodb");
+ }
+
+ return title;
+ }
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ManageDbAction.java (from rev 513, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ManageDbAction.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ManageDbAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ManageDbAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -0,0 +1,67 @@
+package fr.ifremer.tutti.ui.swing.content;
+
+/*
+ * #%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.TuttiScreen;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * To manage db in Tutti.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class ManageDbAction extends AbstractChangeScreenAction {
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(ManageDbAction.class);
+
+ public ManageDbAction(MainUIHandler handler) {
+ super(handler,
+ "manage-db",
+ _("tutti.action.manageDb"),
+ _("tutti.action.manageDb.tip"),
+ true
+ );
+// setMnemonic('P');
+ }
+
+ @Override
+ protected void doAction() {
+ if (log.isDebugEnabled()) {
+ log.debug("open manage db screen");
+ }
+ getContext().setScreen(getNextScreen());
+ }
+
+ @Override
+ protected TuttiScreen getNextScreen() {
+ return TuttiScreen.MANAGE_DB;
+ }
+
+}
\ No newline at end of file
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/SelectCruiseAction.java (from rev 513, 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/content/SelectCruiseAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/SelectCruiseAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -0,0 +1,59 @@
+package fr.ifremer.tutti.ui.swing.content;
+
+/*
+ * #%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.TuttiScreen;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * Opens the cruise selection screen (home).
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class SelectCruiseAction extends AbstractChangeScreenAction {
+
+ public SelectCruiseAction(MainUIHandler handler) {
+ super(handler,
+ "home",
+ _("tutti.action.selectCruise"),
+ _("tutti.action.selectCruise.tip"),
+ true
+ );
+// setMnemonic('S');
+ }
+
+ @Override
+ protected void doAction() {
+// Preconditions.checkNotNull(getContext().isCruiseFilled());
+ getContext().setScreen(getNextScreen());
+ }
+
+ @Override
+ protected TuttiScreen getNextScreen() {
+ return TuttiScreen.SELECT_CRUISE;
+ }
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateApplicationAction.java (from rev 513, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateApplicationAction.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateApplicationAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateApplicationAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -0,0 +1,100 @@
+package fr.ifremer.tutti.ui.swing.content;
+
+/*
+ * #%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.ProgressionModel;
+import fr.ifremer.tutti.ui.swing.TuttiApplicationUpdaterCallBack;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.ApplicationUpdater;
+
+import java.io.File;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * To update jre / i18n or tutti using the {@link ApplicationUpdater} mecanism.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class UpdateApplicationAction extends AbstractTuttiAction<TuttiUIContext, MainUI, MainUIHandler> {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(UpdateApplicationAction.class);
+
+ public UpdateApplicationAction(MainUIHandler handler) {
+ super(handler,
+ "update-application",
+ _("tutti.action.updateApplication"),
+ _("tutti.action.updateApplication.tip"),
+ true);
+ }
+
+ @Override
+ protected void doAction() {
+
+ TuttiApplicationConfig config = getContext().getConfig();
+
+ File current = config.getTuttiBasedir();
+ if (current == null || !current.exists()) {
+
+ // can not update application
+ if (log.isWarnEnabled()) {
+ log.warn("No application base directory defined, skip updates.");
+ }
+ } else {
+
+ String url = config.getUpdateUrl();
+ File dest = new File(config.getTuttiBasedir(), "NEW");
+
+ if (log.isInfoEnabled()) {
+ log.info(String.format("Try to update jre, i18N or tutti (current application location: %s), using update url: %s", current, url));
+ }
+ ApplicationUpdater up = new ApplicationUpdater();
+
+ ProgressionModel progressionModel = new ProgressionModel();
+ getContext().getActionUI().getModel().setProgressionModel(progressionModel);
+ progressionModel.setMessage("Recherche de mises à jour de JRE / Tutti / I18N");
+
+ TuttiApplicationUpdaterCallBack callback =
+ new TuttiApplicationUpdaterCallBack(getContext(), progressionModel);
+
+ callback.setTypes(TuttiApplicationUpdaterCallBack.UpdateType.JRE,
+ TuttiApplicationUpdaterCallBack.UpdateType.I18N,
+ TuttiApplicationUpdaterCallBack.UpdateType.TUTTI);
+ up.update(url,
+ current,
+ dest,
+ false,
+ callback);
+// getContext().getActionUI().getModel().clear();
+ }
+ }
+}
\ No newline at end of file
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateReferentialAction.java (from rev 513, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateReferentialAction.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateReferentialAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/UpdateReferentialAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -0,0 +1,94 @@
+package fr.ifremer.tutti.ui.swing.content;
+
+/*
+ * #%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.ProgressionModel;
+import fr.ifremer.tutti.ui.swing.TuttiApplicationUpdaterCallBack;
+import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.ApplicationUpdater;
+
+import java.io.File;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * To update referential using the {@link ApplicationUpdater} mecanism.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class UpdateReferentialAction extends AbstractMainUITuttiAction {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(UpdateReferentialAction.class);
+
+ public UpdateReferentialAction(MainUIHandler handler) {
+ super(handler,
+ "update-referential",
+ _("tutti.action.updateReferential"),
+ _("tutti.action.updateReferential.tip"),
+ true);
+ }
+
+ @Override
+ protected void doAction() {
+ TuttiApplicationConfig config = getContext().getConfig();
+
+ File current = config.getDataDirectory();
+ String url = config.getUpdateUrl();
+
+ if (log.isInfoEnabled()) {
+ log.info(String.format("Try to update db (current data location: %s), using update url: %s", current, url));
+ }
+ ApplicationUpdater up = new ApplicationUpdater();
+
+ File dest = new File(config.getTuttiBasedir(), "NEW");
+ ProgressionModel progressionModel = new ProgressionModel();
+ getContext().getActionUI().getModel().setProgressionModel(progressionModel);
+ progressionModel.setMessage("Recherche de mises à jour de base");
+ TuttiApplicationUpdaterCallBack callback = new TuttiApplicationUpdaterCallBack(getContext(), progressionModel);
+ callback.setTypes(TuttiApplicationUpdaterCallBack.UpdateType.DB);
+ up.update(url,
+ current,
+ dest,
+ false,
+ callback);
+
+ if (callback.isDbUpdated()) {
+
+ progressionModel.setMessage("Rechargement de la base de données");
+
+ getContext().setDbLoaded(true);
+ getContext().reloadPersistenceService();
+
+
+ } else {
+ sendMessage("Aucune mise à jour de base détectée.");
+ }
+ }
+}
\ No newline at end of file
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ValidateSelectedCruiseCatchesAction.java (from rev 513, 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/ValidateSelectedCruiseCatchesAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ValidateSelectedCruiseCatchesAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -0,0 +1,62 @@
+package fr.ifremer.tutti.ui.swing.content;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.base.Preconditions;
+import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * Opens the catches validation screen to edit the selected catches.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class ValidateSelectedCruiseCatchesAction extends AbstractChangeScreenAction {
+
+ public ValidateSelectedCruiseCatchesAction(MainUIHandler handler) {
+ super(handler,
+ "validate",
+ _("tutti.action.validateCatches"),
+ _("tutti.action.validateCatches.tip"),
+ true
+ );
+ }
+
+ @Override
+ protected void doAction() {
+ Preconditions.checkState(getContext().isCruiseFilled());
+ getContext().setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_VALIDATE);
+ getContext().setScreen(null);
+ getContext().setScreen(getNextScreen());
+ }
+
+ @Override
+ protected TuttiScreen getNextScreen() {
+ return TuttiScreen.EDIT_FISHING_OPERATION;
+ }
+}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/CloseDbAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/CloseDbAction.java 2013-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/CloseDbAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -25,9 +25,9 @@
*/
import fr.ifremer.tutti.persistence.config.TuttiPersistenceConfig;
-import fr.ifremer.tutti.ui.swing.AbstractMainUITuttiAction;
-import fr.ifremer.tutti.ui.swing.MainUIHandler;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.content.AbstractMainUITuttiAction;
+import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUI.jaxx 2013-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUI.jaxx 2013-03-02 06:25:02 UTC (rev 514)
@@ -28,7 +28,7 @@
fr.ifremer.tutti.ui.swing.util.TuttiUI
fr.ifremer.tutti.ui.swing.TuttiUIContext
- fr.ifremer.tutti.ui.swing.UpdateReferentialAction
+ fr.ifremer.tutti.ui.swing.content.UpdateReferentialAction
static org.nuiton.i18n.I18n._
</import>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java 2013-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -24,8 +24,8 @@
* #L%
*/
-import fr.ifremer.tutti.ui.swing.AbstractMainUITuttiAction;
-import fr.ifremer.tutti.ui.swing.MainUIHandler;
+import fr.ifremer.tutti.ui.swing.content.AbstractMainUITuttiAction;
+import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/InstallDbAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/InstallDbAction.java 2013-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/InstallDbAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -26,10 +26,10 @@
import fr.ifremer.tutti.persistence.ProgressionModel;
import fr.ifremer.tutti.persistence.config.TuttiPersistenceConfig;
-import fr.ifremer.tutti.ui.swing.AbstractMainUITuttiAction;
-import fr.ifremer.tutti.ui.swing.MainUIHandler;
import fr.ifremer.tutti.ui.swing.TuttiApplicationUpdaterCallBack;
import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
+import fr.ifremer.tutti.ui.swing.content.AbstractMainUITuttiAction;
+import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.ApplicationUpdater;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/OpenDbAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/OpenDbAction.java 2013-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/OpenDbAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -25,9 +25,9 @@
*/
import fr.ifremer.tutti.persistence.config.TuttiPersistenceConfig;
-import fr.ifremer.tutti.ui.swing.AbstractMainUITuttiAction;
-import fr.ifremer.tutti.ui.swing.MainUIHandler;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.content.AbstractMainUITuttiAction;
+import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -32,8 +32,8 @@
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.MainUIHandler;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import fr.ifremer.tutti.ui.swing.content.home.ImportProtocolAction;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SelectSpeciesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SelectSpeciesUIModel;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -29,9 +29,9 @@
import com.google.common.collect.Sets;
import fr.ifremer.tutti.persistence.entities.IdAware;
import fr.ifremer.tutti.service.DecoratorService;
-import fr.ifremer.tutti.ui.swing.AbstractMainUITuttiAction;
-import fr.ifremer.tutti.ui.swing.MainUI;
-import fr.ifremer.tutti.ui.swing.MainUIHandler;
+import fr.ifremer.tutti.ui.swing.content.AbstractMainUITuttiAction;
+import fr.ifremer.tutti.ui.swing.content.MainUI;
+import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import fr.ifremer.tutti.ui.swing.TuttiDataContext;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.java 2013-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -25,7 +25,7 @@
*/
import fr.ifremer.tutti.service.TuttiTechnicalException;
-import fr.ifremer.tutti.ui.swing.AbstractChangeScreenAction;
+import fr.ifremer.tutti.ui.swing.content.AbstractChangeScreenAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionUIHandler.java 2013-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionUIHandler.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -25,7 +25,7 @@
*/
import fr.ifremer.tutti.persistence.ProgressionModel;
-import fr.ifremer.tutti.ui.swing.MainUI;
+import fr.ifremer.tutti.ui.swing.content.MainUI;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import jaxx.runtime.validator.swing.SwingValidator;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java 2013-03-01 20:59:12 UTC (rev 513)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java 2013-03-02 06:25:02 UTC (rev 514)
@@ -24,7 +24,7 @@
* #L%
*/
-import fr.ifremer.tutti.ui.swing.MainUI;
+import fr.ifremer.tutti.ui.swing.content.MainUI;
import fr.ifremer.tutti.ui.swing.util.TuttiExceptionHandler;
import jaxx.runtime.SwingUtil;
import org.apache.commons.logging.Log;
@@ -237,15 +237,6 @@
body.setVisible(!busy);
}
-// SwingUtilities.invokeLater(
-// new Runnable() {
-// @Override
-// public void run() {
-// mainUI.repaint();
-// }
-// }
-// );
-
}
}
}
1
0
See <http://ci.nuiton.org/jenkins/job/tutti/419/changes>
Changes:
[Tony Chemit] improve action api
reformat some code
------------------------------------------
[...truncated 616 lines...]
mojoStarted org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tutti-ui-swing ---
[INFO] Deleting <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/target>
mojoSucceeded org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
mojoStarted org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
[INFO]
[INFO] --- maven-enforcer-plugin:1.2:enforce (check-project-files) @ tutti-ui-swing ---
mojoSucceeded org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
mojoStarted org.nuiton.jaxx:jaxx-maven-plugin:2.5.11-SNAPSHOT(default)
[INFO]
[INFO] --- jaxx-maven-plugin:2.5.11-SNAPSHOT:generate (default) @ tutti-ui-swing ---
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 15.9 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co… (2 KB at 8.9 KB/sec)
[INFO] use project compile scope class-path
[INFO] Detects 28 modified jaxx file(s).
[WARNING] JAXX detects 4 warnings :
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>
jaxx supports i18n, no need to add explicit call to I18n._ for attribute 'text' in component 'filterSpeciesBatchRootButton' : [_("tutti.label.filterSpeciesBatchMode.mode.root", model.getRootNumber())]
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>
jaxx supports i18n, no need to add explicit call to I18n._ for attribute 'text' in component 'gearLatitudeLabel' : [_("tutti.label.fishingOperation.gearLatitude", ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString())]
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>
jaxx supports i18n, no need to add explicit call to I18n._ for attribute 'text' in component 'gearLongitudeLabel' : [_("tutti.label.fishingOperation.gearLongitude", ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString())]
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>
jaxx supports i18n, no need to add explicit call to I18n._ for attribute 'toolTipText' in component 'trawlDistanceField' : [model.getTrawlDistance() != null ? _("tutti.tooltip.distanceInMilles", TuttiUIUtil.getDistanceInMilles(model.getTrawlDistance())) : null]
[INFO] Generated 28 file(s) in 43.857s
mojoSucceeded org.nuiton.jaxx:jaxx-maven-plugin:2.5.11-SNAPSHOT(default)
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:parserJava (scan-sources) @ tutti-ui-swing ---
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:parserValidation (scan-sources) @ tutti-ui-swing ---
[INFO] Load rules file validation.rules
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
forkedProjectStarted fr.ifremer.tutti:tutti-ui-swing:1.0.2-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(get)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:get (get) @ tutti-ui-swing ---
[INFO] Copying tutti-ui-swing.properties to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/target/gener…>
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(get)
forkedProjectSucceeded fr.ifremer.tutti:tutti-ui-swing:1.0.2-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:gen (scan-sources) @ tutti-ui-swing ---
[WARNING] bundle fr_FR contains 83/600 empty entries! (use -Di18n.showEmpty to see these entries)
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
forkedProjectStarted fr.ifremer.tutti:tutti-ui-swing:1.0.2-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(collect-i18n-artifacts)[INFO] collected 10 i18n artifacts for locale fr_FR stored in <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/target/i18n/…>
[INFO]
[INFO] --- i18n-maven-plugin:2.5:collect-i18n-artifacts (collect-i18n-artifacts) @ tutti-ui-swing ---
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(collect-i18n-artifacts)
forkedProjectSucceeded fr.ifremer.tutti:tutti-ui-swing:1.0.2-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(make-bundle)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:bundle (make-bundle) @ tutti-ui-swing ---
[WARNING] bundle fr_FR contains 92/862 empty entries! (use -Di18n.showEmpty to see these entries)
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(make-bundle)
mojoStarted org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO]
[INFO] --- license-maven-plugin:1.4:update-project-license (attach-licenses) @ tutti-ui-swing ---
mojoSucceeded org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
mojoStarted org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO]
[INFO] --- license-maven-plugin:1.4:add-third-party (attach-licenses) @ tutti-ui-swing ---
[WARNING] No license name defined for org.hibernate.javax.persistence--hibernate-jpa-2.0-api--1.0.1.Final
[INFO] Load missing file <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/license/…>
[INFO] Missing file <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/license/…> is up-to-date.
[INFO] Writing third-party file to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/target/gener…>
[INFO] Writing bundled third-party file to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/target/gener…>
[INFO] Will attach third party file from <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/license/…>
mojoSucceeded org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
mojoStarted org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tutti-ui-swing ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO] Copying 82 resources
mojoSucceeded org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)[INFO] Copying 2 resources
[INFO] Copying 4 resources
mojoStarted org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ tutti-ui-swing ---
[INFO] Compiling 218 source files to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/target/class…>
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[35,22] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[39,22] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[53,56] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[28,22] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[43,52] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[27,22] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[28,22] [deprecation] ApplicationConfigProvider in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[40,55] [deprecation] ApplicationConfigProvider in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[31,22] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[32,22] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[5,32] error: cannot find symbol
[ERROR] symbol: class AbstractTuttiAction
location: package fr.ifremer.tutti.ui.swing
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[23,39] error: cannot find symbol
[ERROR] symbol: class AbstractTuttiAction
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[36,43] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[38,7] [deprecation] ApplicationConfigHelper in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[39,10] [deprecation] ApplicationConfigProvider in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[40,21] [deprecation] ArgumentsParserException in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[51,13] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[67,20] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[80,32] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[84,12] [deprecation] ApplicationConfigProvider in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[85,16] [deprecation] ApplicationConfigHelper in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[91,8] [deprecation] ApplicationConfigHelper in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[96,16] [deprecation] ApplicationConfigHelper in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[108,17] [deprecation] ArgumentsParserException in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[139,11] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
mojoFailed org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[207,8] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[71,8] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[71,36] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[88,82] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[88,23] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[89,20] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[92,12] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[106,12] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[112,28] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[136,39] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[158,48] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[169,12] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[183,50] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[194,12] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[208,49] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[219,12] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[233,44] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[243,12] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[266,69] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[265,14] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[275,34] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[284,40] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[305,40] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[336,44] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[53,11] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[58,11] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[59,19] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[67,8] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[67,36] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[78,12] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[78,40] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[47,25] error: cannot find symbol
[ERROR] symbol: variable super
location: class CreateMelagAction
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[49,40] error: cannot find symbol
[ERROR] symbol: method getHandler()
location: class CreateMelagAction
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[88,28] error: cannot find symbol
[ERROR] symbol: method getUI()
location: class CreateMelagAction
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[45,4] error: method does not override or implement a method from a supertype
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[119,51] error: cannot find symbol
[ERROR] symbol: method getUI()
location: class CreateMelagAction
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[122,16] error: cannot find symbol
[ERROR] symbol: method getConfig()
location: class CreateMelagAction
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[152,8] error: cannot find symbol
[ERROR] symbol: method getHandler()
location: class CreateMelagAction
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[134,4] error: method does not override or implement a method from a supertype
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[157,8] error: cannot find symbol
[ERROR] symbol: variable super
location: class CreateMelagAction
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[158,8] error: cannot find symbol
[ERROR] symbol: method getHandler()
location: class CreateMelagAction
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/main/jav…>:[155,4] error: method does not override or implement a method from a supertype
[INFO] 67 errors
[INFO] -------------------------------------------------------------
projectFailed fr.ifremer.tutti:tutti-ui-swing:1.0.2-SNAPSHOT
sessionEnded
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Tutti ............................................. SUCCESS [57.448s]
[INFO] Tutti :: Persistence .............................. SUCCESS [1:25.779s]
[INFO] Tutti :: Service .................................. SUCCESS [21.309s]
[INFO] Tutti :: UI ....................................... FAILURE [1:35.269s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4:27.894s
[INFO] Finished at: Fri Mar 01 21:52:53 CET 2013
[INFO] Final Memory: 56M/170M
[INFO] ------------------------------------------------------------------------
Projects to build: [MavenProject: fr.ifremer:tutti:1.0.2-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-persistence:1.0.2-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-service:1.0.2-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-ui-swing:1.0.2-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/pom.xml]>
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-service/builds/2013-03-01_21-47-53/archive/fr.ifremer.tutti/tutti-service/1.0.2-SNAPSHOT/tutti-service-1.0.2-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/target/tutti-…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-service/builds/2013-03-01_21-47-53/archive/fr.ifremer.tutti/tutti-service/1.0.2-SNAPSHOT/tutti-service-1.0.2-SNAPSHOT.jar
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-ui-swing/builds/2013-03-01_21-47-53/archive/fr.ifremer.tutti/tutti-ui-swing/1.0.2-SNAPSHOT/tutti-ui-swing-1.0.2-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/src/license/…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-ui-swing/builds/2013-03-01_21-47-53/archive/fr.ifremer.tutti/tutti-ui-swing/1.0.2-SNAPSHOT/tutti-ui-swing-1.0.2-SNAPSHOT-third-party.properties
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer$tutti/builds/2013-03-01_21-47-52/archive/fr.ifremer/tutti/1.0.2-SNAPSHOT/tutti-1.0.2-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/target/tutti-1.0.2-SNAPSHOT…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer$tutti/builds/2013-03-01_21-47-52/archive/fr.ifremer/tutti/1.0.2-SNAPSHOT/tutti-1.0.2-SNAPSHOT-site_fr.xml
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-persistence/builds/2013-03-01_21-47-53/archive/fr.ifremer.tutti/tutti-persistence/1.0.2-SNAPSHOT/tutti-persistence-1.0.2-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/tu…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-persistence/builds/2013-03-01_21-47-53/archive/fr.ifremer.tutti/tutti-persistence/1.0.2-SNAPSHOT/tutti-persistence-1.0.2-SNAPSHOT.jar
Waiting for Jenkins to finish collecting data
mavenExecutionResult exceptions not empty
message : Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project tutti-ui-swing: Compilation failure
cause : Compilation failure
Stack trace :
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project tutti-ui-swing: Compilation failure
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:158)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:100)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:66)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:326)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation failure
at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:729)
at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:128)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 27 more
Sending e-mails to: tutti-commits(a)list.forge.codelutin.com chemit(a)codelutin.com
channel stopped
1
1
01 Mar '13
See <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/419/…>
Changes:
[Tony Chemit] improve action api
reformat some code
------------------------------------------
projectStarted fr.ifremer.tutti:tutti-ui-swing:1.0.2-SNAPSHOT
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: UI 1.0.2-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma… (2 KB at 2.8 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 2.6 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/2.5.11-…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/2.…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/2.5.11-… (808 B at 3.5 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/2.… (808 B at 3.2 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-valid…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/nuiton-…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/nuiton-… (2 KB at 13.5 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-valid… (2 KB at 2.6 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ru…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 9.9 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ru… (2 KB at 9.2 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-va…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 2.6 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-va… (2 KB at 2.6 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 6.7 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi… (2 KB at 6.0 KB/sec)
mojoStarted org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tutti-ui-swing ---
[INFO] Deleting <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
mojoSucceeded org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
mojoStarted org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
[INFO]
[INFO] --- maven-enforcer-plugin:1.2:enforce (check-project-files) @ tutti-ui-swing ---
mojoSucceeded org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
mojoStarted org.nuiton.jaxx:jaxx-maven-plugin:2.5.11-SNAPSHOT(default)
[INFO]
[INFO] --- jaxx-maven-plugin:2.5.11-SNAPSHOT:generate (default) @ tutti-ui-swing ---
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 15.9 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co… (2 KB at 8.9 KB/sec)
[INFO] use project compile scope class-path
[INFO] Detects 28 modified jaxx file(s).
[WARNING] JAXX detects 4 warnings :
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
jaxx supports i18n, no need to add explicit call to I18n._ for attribute 'text' in component 'filterSpeciesBatchRootButton' : [_("tutti.label.filterSpeciesBatchMode.mode.root", model.getRootNumber())]
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
jaxx supports i18n, no need to add explicit call to I18n._ for attribute 'text' in component 'gearLatitudeLabel' : [_("tutti.label.fishingOperation.gearLatitude", ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString())]
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
jaxx supports i18n, no need to add explicit call to I18n._ for attribute 'text' in component 'gearLongitudeLabel' : [_("tutti.label.fishingOperation.gearLongitude", ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString())]
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
jaxx supports i18n, no need to add explicit call to I18n._ for attribute 'toolTipText' in component 'trawlDistanceField' : [model.getTrawlDistance() != null ? _("tutti.tooltip.distanceInMilles", TuttiUIUtil.getDistanceInMilles(model.getTrawlDistance())) : null]
[INFO] Generated 28 file(s) in 43.857s
mojoSucceeded org.nuiton.jaxx:jaxx-maven-plugin:2.5.11-SNAPSHOT(default)
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:parserJava (scan-sources) @ tutti-ui-swing ---
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:parserValidation (scan-sources) @ tutti-ui-swing ---
[INFO] Load rules file validation.rules
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
forkedProjectStarted fr.ifremer.tutti:tutti-ui-swing:1.0.2-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(get)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:get (get) @ tutti-ui-swing ---
[INFO] Copying tutti-ui-swing.properties to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(get)
forkedProjectSucceeded fr.ifremer.tutti:tutti-ui-swing:1.0.2-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:gen (scan-sources) @ tutti-ui-swing ---
[WARNING] bundle fr_FR contains 83/600 empty entries! (use -Di18n.showEmpty to see these entries)
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
forkedProjectStarted fr.ifremer.tutti:tutti-ui-swing:1.0.2-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(collect-i18n-artifacts)[INFO] collected 10 i18n artifacts for locale fr_FR stored in <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
[INFO]
[INFO] --- i18n-maven-plugin:2.5:collect-i18n-artifacts (collect-i18n-artifacts) @ tutti-ui-swing ---
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(collect-i18n-artifacts)
forkedProjectSucceeded fr.ifremer.tutti:tutti-ui-swing:1.0.2-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(make-bundle)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:bundle (make-bundle) @ tutti-ui-swing ---
[WARNING] bundle fr_FR contains 92/862 empty entries! (use -Di18n.showEmpty to see these entries)
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(make-bundle)
mojoStarted org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO]
[INFO] --- license-maven-plugin:1.4:update-project-license (attach-licenses) @ tutti-ui-swing ---
mojoSucceeded org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
mojoStarted org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO]
[INFO] --- license-maven-plugin:1.4:add-third-party (attach-licenses) @ tutti-ui-swing ---
[WARNING] No license name defined for org.hibernate.javax.persistence--hibernate-jpa-2.0-api--1.0.1.Final
[INFO] Load missing file <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
[INFO] Missing file <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…> is up-to-date.
[INFO] Writing third-party file to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
[INFO] Writing bundled third-party file to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
[INFO] Will attach third party file from <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
mojoSucceeded org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
mojoStarted org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tutti-ui-swing ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO] Copying 82 resources
mojoSucceeded org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)[INFO] Copying 2 resources
[INFO] Copying 4 resources
mojoStarted org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ tutti-ui-swing ---
[INFO] Compiling 218 source files to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[35,22] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[39,22] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[53,56] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[28,22] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[43,52] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[27,22] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[28,22] [deprecation] ApplicationConfigProvider in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[40,55] [deprecation] ApplicationConfigProvider in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[31,22] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[32,22] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[5,32] error: cannot find symbol
[ERROR] symbol: class AbstractTuttiAction
location: package fr.ifremer.tutti.ui.swing
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[23,39] error: cannot find symbol
[ERROR] symbol: class AbstractTuttiAction
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[36,43] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[38,7] [deprecation] ApplicationConfigHelper in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[39,10] [deprecation] ApplicationConfigProvider in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[40,21] [deprecation] ArgumentsParserException in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[51,13] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[67,20] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[80,32] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[84,12] [deprecation] ApplicationConfigProvider in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[85,16] [deprecation] ApplicationConfigHelper in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[91,8] [deprecation] ApplicationConfigHelper in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[96,16] [deprecation] ApplicationConfigHelper in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[108,17] [deprecation] ArgumentsParserException in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[139,11] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
mojoFailed org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[207,8] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[71,8] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[71,36] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[88,82] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[88,23] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[89,20] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[92,12] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[106,12] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[112,28] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[136,39] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[158,48] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[169,12] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[183,50] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[194,12] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[208,49] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[219,12] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[233,44] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[243,12] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[266,69] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[265,14] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[275,34] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[284,40] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[305,40] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[336,44] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[53,11] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[58,11] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[59,19] [deprecation] ApplicationConfig in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[67,8] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[67,36] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[78,12] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[78,40] [deprecation] ApplicationUpdater in org.nuiton.util has been deprecated
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[47,25] error: cannot find symbol
[ERROR] symbol: variable super
location: class CreateMelagAction
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[49,40] error: cannot find symbol
[ERROR] symbol: method getHandler()
location: class CreateMelagAction
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[88,28] error: cannot find symbol
[ERROR] symbol: method getUI()
location: class CreateMelagAction
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[45,4] error: method does not override or implement a method from a supertype
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[119,51] error: cannot find symbol
[ERROR] symbol: method getUI()
location: class CreateMelagAction
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[122,16] error: cannot find symbol
[ERROR] symbol: method getConfig()
location: class CreateMelagAction
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[152,8] error: cannot find symbol
[ERROR] symbol: method getHandler()
location: class CreateMelagAction
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[134,4] error: method does not override or implement a method from a supertype
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[157,8] error: cannot find symbol
[ERROR] symbol: variable super
location: class CreateMelagAction
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[158,8] error: cannot find symbol
[ERROR] symbol: method getHandler()
location: class CreateMelagAction
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[155,4] error: method does not override or implement a method from a supertype
[INFO] 67 errors
[INFO] -------------------------------------------------------------
projectFailed fr.ifremer.tutti:tutti-ui-swing:1.0.2-SNAPSHOT
1
1
01 Mar '13
Author: tchemit
Date: 2013-03-01 21:59:12 +0100 (Fri, 01 Mar 2013)
New Revision: 513
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/513
Log:
- fix dependencies
- fix build (but not tests :()
- reformat codes
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceService.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java
trunk/tutti-service/pom.xml
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDataContext.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateApplicationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/CreateMelagAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/EnterMelagWeightDialog.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/EnterMelagWeightDialog.jaxx
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/SpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css
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/SpeciesFrequencyUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java 2013-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java 2013-03-01 20:59:12 UTC (rev 513)
@@ -10,15 +10,15 @@
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
+ * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
+ *
+ * You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
@@ -30,8 +30,6 @@
import fr.ifremer.adagio.core.dao.data.batch.Batch;
import fr.ifremer.adagio.core.dao.data.batch.CatchBatchExtendDao;
import fr.ifremer.adagio.core.dao.data.batch.SortingBatch;
-import fr.ifremer.adagio.core.dao.data.batch.SortingBatchDao;
-import fr.ifremer.adagio.core.dao.data.batch.SortingBatchImpl;
import fr.ifremer.adagio.core.dao.data.batch.validator.CatchBatchValidationException;
import fr.ifremer.adagio.core.dao.data.batch.validator.CatchBatchValidator;
import fr.ifremer.adagio.core.dao.data.measure.Measurement;
@@ -57,7 +55,6 @@
import org.apache.commons.logging.LogFactory;
import org.hibernate.FlushMode;
import org.hibernate.type.IntegerType;
-import org.springframework.cache.annotation.CacheEvict;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.dao.DataRetrievalFailureException;
import org.springframework.stereotype.Service;
@@ -156,8 +153,8 @@
SortingBatch benthosBatch = catchBatchDao.getSortingBatch(vracBatch.getChildBatchs(),
"pmfmId", enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS);
if (benthosBatch != null) {
- result.setBenthosTotalSampleSortedWeight(benthosBatch.getWeight());
- result.setBenthosTotalSortedWeight(benthosBatch.getWeightBeforeSampling());
+ result.setBenthosTotalSampleSortedWeight(benthosBatch.getWeight());
+ result.setBenthosTotalSortedWeight(benthosBatch.getWeightBeforeSampling());
}
// TODO : Plancton...
@@ -173,13 +170,13 @@
SortingBatch speciesBatch = catchBatchDao.getSortingBatch(horsVracBatch.getChildBatchs(),
"pmfmId", enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES);
if (speciesBatch != null) {
- result.setSpeciesTotalUnsortedWeight(speciesBatch.getWeight());
+ result.setSpeciesTotalUnsortedWeight(speciesBatch.getWeight());
}
SortingBatch benthosBatch = catchBatchDao.getSortingBatch(horsVracBatch.getChildBatchs(),
"pmfmId", enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS);
if (benthosBatch != null) {
- result.setBenthosTotalUnsortedWeight(benthosBatch.getWeight());
+ result.setBenthosTotalUnsortedWeight(benthosBatch.getWeight());
}
@@ -505,7 +502,7 @@
// If some batchs need to be update, do it
if (batchsToUpdate.size() > 0) {
- catchBatchDao.updateSortingBatch(batchsToUpdate, catchBatch);
+ catchBatchDao.updateSortingBatch(batchsToUpdate, catchBatch);
}
if (notUpdatedChildIds.size() > 0) {
@@ -1293,16 +1290,16 @@
// Sorted Vrac > Benthos
// -----------------------------------------------------------------------------
{
- SortingBatch benthosBatch = batchChilds.get(enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS);
- if (benthosBatch == null) {
- benthosBatch = SortingBatch.Factory.newInstance();
- batch.getChildBatchs().add(benthosBatch);
- }
- beanToEntitySortingBatch(target, batch, benthosBatch, recorderDepartmentId,
- enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS,
- source.getBenthosTotalSampleSortedWeight(), source.getBenthosTotalSortedWeight(),
- copyIfNull);
- benthosBatch.setRankOrder((short) 2);
+ SortingBatch benthosBatch = batchChilds.get(enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS);
+ if (benthosBatch == null) {
+ benthosBatch = SortingBatch.Factory.newInstance();
+ batch.getChildBatchs().add(benthosBatch);
+ }
+ beanToEntitySortingBatch(target, batch, benthosBatch, recorderDepartmentId,
+ enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS,
+ source.getBenthosTotalSampleSortedWeight(), source.getBenthosTotalSortedWeight(),
+ copyIfNull);
+ benthosBatch.setRankOrder((short) 2);
}
// TODO plancton, macro déchet...
@@ -1332,36 +1329,36 @@
// Hors Vrac > Species :
// -----------------------------------------------------------------------------
{
- SortingBatch speciesBatch = batchChilds.get(enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES);
- if (speciesBatch == null) {
- speciesBatch = SortingBatch.Factory.newInstance();
- if (batch.getChildBatchs() == null) {
- batch.setChildBatchs(Lists.newArrayList((Batch) speciesBatch));
- } else {
- batch.getChildBatchs().add(speciesBatch);
- }
- }
- beanToEntitySortingBatch(target, batch, speciesBatch, recorderDepartmentId,
- enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES,
- source.getSpeciesTotalUnsortedWeight(), null,
- copyIfNull);
- speciesBatch.setRankOrder((short) 1);
+ SortingBatch speciesBatch = batchChilds.get(enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES);
+ if (speciesBatch == null) {
+ speciesBatch = SortingBatch.Factory.newInstance();
+ if (batch.getChildBatchs() == null) {
+ batch.setChildBatchs(Lists.newArrayList((Batch) speciesBatch));
+ } else {
+ batch.getChildBatchs().add(speciesBatch);
+ }
+ }
+ beanToEntitySortingBatch(target, batch, speciesBatch, recorderDepartmentId,
+ enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES,
+ source.getSpeciesTotalUnsortedWeight(), null,
+ copyIfNull);
+ speciesBatch.setRankOrder((short) 1);
}
// -----------------------------------------------------------------------------
// Hors Vrac > Benthos :
// -----------------------------------------------------------------------------
{
- SortingBatch benthosBatch = batchChilds.get(enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES);
- if (benthosBatch == null) {
- benthosBatch = SortingBatch.Factory.newInstance();
- batch.getChildBatchs().add(benthosBatch);
- }
- beanToEntitySortingBatch(target, batch, benthosBatch, recorderDepartmentId,
- enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS,
- source.getBenthosTotalUnsortedWeight(), null,
- copyIfNull);
- benthosBatch.setRankOrder((short) 2);
+ SortingBatch benthosBatch = batchChilds.get(enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES);
+ if (benthosBatch == null) {
+ benthosBatch = SortingBatch.Factory.newInstance();
+ batch.getChildBatchs().add(benthosBatch);
+ }
+ beanToEntitySortingBatch(target, batch, benthosBatch, recorderDepartmentId,
+ enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS,
+ source.getBenthosTotalUnsortedWeight(), null,
+ copyIfNull);
+ benthosBatch.setRankOrder((short) 2);
}
// TODO : plancton, macro déchet...
@@ -1642,4 +1639,4 @@
return pmfmId;
}
-}
\ No newline at end of file
+}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-03-01 20:59:12 UTC (rev 513)
@@ -259,7 +259,7 @@
}
// load surverPart
- result.setSurveyPart((String)source[12]);
+ result.setSurveyPart((String) source[12]);
// get secondary gears from fishingOperation (first load from Allegro DB only)
if (result.getGear() == null) {
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceService.java 2013-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceService.java 2013-03-01 20:59:12 UTC (rev 513)
@@ -26,7 +26,6 @@
import fr.ifremer.tutti.persistence.TuttiPersistenceServiceImplementor;
import fr.ifremer.tutti.persistence.entities.data.Program;
-
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.transaction.annotation.Transactional;
@@ -49,7 +48,7 @@
*
* @return the list of programs found in db.
*/
- @Cacheable(value = "programs")
+ @Cacheable(value = "programs")
List<Program> getAllProgram();
/**
@@ -63,10 +62,10 @@
Program getProgram(String id);
@Transactional(readOnly = false)
- @CacheEvict(value = {"programs", "programZones"}, allEntries = true)
+ @CacheEvict(value = {"programs", "programZones"}, allEntries = true)
Program createProgram(Program bean);
@Transactional(readOnly = false)
- @CacheEvict(value = {"programs", "programZones"}, allEntries = true)
+ @CacheEvict(value = {"programs", "programZones"}, allEntries = true)
Program saveProgram(Program bean);
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java 2013-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java 2013-03-01 20:59:12 UTC (rev 513)
@@ -37,7 +37,6 @@
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.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.transaction.annotation.Transactional;
@@ -63,7 +62,7 @@
* @see Program#setZone(Zone)
* @since 0.3
*/
- @Cacheable(value = "programZones")
+ @Cacheable(value = "programZones")
List<Zone> getAllProgramZone();
/**
@@ -138,7 +137,7 @@
* @return the vessel
* @since 0.3
*/
- @Cacheable(value = "vesselByCode", key="#vesselCode")
+ @Cacheable(value = "vesselByCode", key = "#vesselCode")
Vessel getVessel(String vesselCode);
/**
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-03-01 20:59:12 UTC (rev 513)
@@ -48,8 +48,6 @@
import fr.ifremer.tutti.persistence.entities.referential.Status;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
import fr.ifremer.tutti.persistence.entities.referential.Zone;
-import net.sf.ehcache.Element;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Query;
@@ -57,10 +55,6 @@
import org.hibernate.type.IntegerType;
import org.hibernate.type.StringType;
import org.springframework.cache.Cache;
-import org.springframework.cache.annotation.CacheEvict;
-import org.springframework.cache.annotation.CachePut;
-import org.springframework.cache.annotation.Cacheable;
-import org.springframework.cache.support.SimpleValueWrapper;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.dao.DataRetrievalFailureException;
import org.springframework.stereotype.Service;
@@ -105,6 +99,7 @@
@Resource(name = "cacheService")
protected CacheService cacheService;
+ //TODO-TC We should prefer AOP thant Proxy stuff to avoid this.
@Resource(name = "referentialPersistenceService")
protected ReferentialPersistenceService thisService;
@@ -257,10 +252,10 @@
while (list.hasNext()) {
Object[] source = list.next();
- Vessel target = loadVessel(source, true);
- result.add(target);
- // Add to cache
- vesselByCodeCache.put(target.getId(), target);
+ Vessel target = loadVessel(source, true);
+ result.add(target);
+ // Add to cache
+ vesselByCodeCache.put(target.getId(), target);
}
return result;
}
@@ -275,15 +270,15 @@
List<Vessel> result = Lists.newArrayList();
Cache vesselByCodeCache = cacheService.getCache("vesselByCode");
-
+
while (list.hasNext()) {
Object[] source = list.next();
- Vessel target = loadVessel(source, true);
+ Vessel target = loadVessel(source, true);
target.setScientificVessel(false);
- result.add(target);
-
- // Add to cache
- vesselByCodeCache.put(target.getId(), target);
+ result.add(target);
+
+ // Add to cache
+ vesselByCodeCache.put(target.getId(), target);
}
return result;
}
@@ -393,8 +388,8 @@
if (target.isReferenceTaxon()) {
// Add to cache :
- referentSpeciesByIdCache.put(target.getReferenceTaxonId(), target);
-
+ referentSpeciesByIdCache.put(target.getReferenceTaxonId(), target);
+
referenceTaxonsOnly.add(target);
}
result.add(target);
@@ -452,7 +447,7 @@
Integer pmfmId = (Integer) source[0];
Caracteristic target = loadCaracteristic(source);
// Skip some protected PSFM
- if (!isProtectedCaracteristic(pmfmId)) {
+ if (!isProtectedCaracteristic(pmfmId)) {
result.add(target);
}
pmfmByIdCache.put(pmfmId, target);
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java 2013-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java 2013-03-01 20:59:12 UTC (rev 513)
@@ -25,24 +25,9 @@
*/
-import static org.nuiton.i18n.I18n._;
-import static org.nuiton.i18n.I18n.n_;
-
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.dao.DataIntegrityViolationException;
-import org.springframework.stereotype.Component;
-
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
-
import fr.ifremer.adagio.core.dao.data.batch.Batch;
import fr.ifremer.adagio.core.dao.data.batch.CatchBatch;
import fr.ifremer.adagio.core.dao.data.batch.CatchBatchExtendDao;
@@ -54,112 +39,124 @@
import fr.ifremer.tutti.persistence.service.BatchPersistenceService;
import fr.ifremer.tutti.persistence.service.ReferentialPersistenceService;
import fr.ifremer.tutti.persistence.service.TuttiEnumerationFile;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DataIntegrityViolationException;
+import org.springframework.stereotype.Component;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+
+import static org.nuiton.i18n.I18n._;
+import static org.nuiton.i18n.I18n.n_;
+
@Component(value = "scientificCruiseCatchBatchValidator")
public class ScientificCruiseCatchBatchValidator implements CatchBatchValidator {
- /** Logger. */
- private static final Log log =
- LogFactory.getLog(ScientificCruiseCatchBatchValidator.class);
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(ScientificCruiseCatchBatchValidator.class);
- @Autowired
- protected BatchPersistenceService batchService;
+ @Autowired
+ protected BatchPersistenceService batchService;
- @Autowired
- protected ReferentialPersistenceService referentialService;
+ @Autowired
+ protected ReferentialPersistenceService referentialService;
- @Autowired
- protected CatchBatchExtendDao catchBatchDao;
+ @Autowired
+ protected CatchBatchExtendDao catchBatchDao;
- @Autowired
- protected TuttiEnumerationFile enumeration;
+ @Autowired
+ protected TuttiEnumerationFile enumeration;
- public ScientificCruiseCatchBatchValidator() {
- }
+ public ScientificCruiseCatchBatchValidator() {
+ }
- @Override
- public boolean isEnable(fr.ifremer.adagio.core.dao.data.batch.CatchBatch catchBatch) {
- // Apply validation only on catch batch for fishingOperation
- return (catchBatch.getFishingOperation() != null);
- }
+ @Override
+ public boolean isEnable(fr.ifremer.adagio.core.dao.data.batch.CatchBatch catchBatch) {
+ // Apply validation only on catch batch for fishingOperation
+ return (catchBatch.getFishingOperation() != null);
+ }
- @Override
- public List<CatchBatchValidationError> validate(fr.ifremer.adagio.core.dao.data.batch.CatchBatch catchBatch) {
- List<CatchBatchValidationError> errors = Lists.newArrayList();
- validate(catchBatch.getChildBatchs(), errors, 1);
- return errors;
- }
+ @Override
+ public List<CatchBatchValidationError> validate(fr.ifremer.adagio.core.dao.data.batch.CatchBatch catchBatch) {
+ List<CatchBatchValidationError> errors = Lists.newArrayList();
+ validate(catchBatch.getChildBatchs(), errors, 1);
+ return errors;
+ }
- // ------------------------------------------------------------------------//
- // -- Internal methods --//
- // ------------------------------------------------------------------------//
+ // ------------------------------------------------------------------------//
+ // -- Internal methods --//
+ // ------------------------------------------------------------------------//
- protected void validate(Collection<Batch> batchs, List<CatchBatchValidationError> errors, int treeLevel) {
+ protected void validate(Collection<Batch> batchs, List<CatchBatchValidationError> errors, int treeLevel) {
//TODO finishi i18n
- // Vrac
- SortingBatch vracBatch = catchBatchDao.getSortingBatch(batchs,
- "pmfmId", enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID);
- if (vracBatch == null) {
- addError(errors, n_("tutti.persistence.batch.validation.vracNotFound"), null);
- } else {
- // Vrac > Species
- SortingBatch speciesBatch = catchBatchDao.getSortingBatch(vracBatch.getChildBatchs(),
- "pmfmId", enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES);
- if (speciesBatch == null) {
- addError(errors, n_("tutti.persistence.batch.validation.vracSpeciesNotFound"), null);
- } else {
- // Vrac > Species > Inert
- SortingBatch inertBatch = catchBatchDao.getSortingBatch(speciesBatch.getChildBatchs(),
- "referenceTaxonId", enumeration.REFERENCE_TAXON_ID_INERT);
- if (inertBatch == null) {
- addWarning(errors, n_("tutti.persistence.batch.validation.vracSpeciesInertNotFound"));
- }
+ // Vrac
+ SortingBatch vracBatch = catchBatchDao.getSortingBatch(batchs,
+ "pmfmId", enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID);
+ if (vracBatch == null) {
+ addError(errors, n_("tutti.persistence.batch.validation.vracNotFound"), null);
+ } else {
+ // Vrac > Species
+ SortingBatch speciesBatch = catchBatchDao.getSortingBatch(vracBatch.getChildBatchs(),
+ "pmfmId", enumeration.PMFM_ID_SORTING_TYPE,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES);
+ if (speciesBatch == null) {
+ addError(errors, n_("tutti.persistence.batch.validation.vracSpeciesNotFound"), null);
+ } else {
+ // Vrac > Species > Inert
+ SortingBatch inertBatch = catchBatchDao.getSortingBatch(speciesBatch.getChildBatchs(),
+ "referenceTaxonId", enumeration.REFERENCE_TAXON_ID_INERT);
+ if (inertBatch == null) {
+ addWarning(errors, n_("tutti.persistence.batch.validation.vracSpeciesInertNotFound"));
+ }
- // Vrac > Species > Alive no itemized
- SortingBatch livingNotItemizedBatch = catchBatchDao.getSortingBatch(speciesBatch.getChildBatchs(),
- "referenceTaxonId", enumeration.REFERENCE_TAXON_ID_LIFE);
- if (livingNotItemizedBatch == null) {
- addWarning(errors, n_("tutti.persistence.batch.validation.vracSpeciesLifeNotFound"));
- }
- }
+ // Vrac > Species > Alive no itemized
+ SortingBatch livingNotItemizedBatch = catchBatchDao.getSortingBatch(speciesBatch.getChildBatchs(),
+ "referenceTaxonId", enumeration.REFERENCE_TAXON_ID_LIFE);
+ if (livingNotItemizedBatch == null) {
+ addWarning(errors, n_("tutti.persistence.batch.validation.vracSpeciesLifeNotFound"));
+ }
+ }
- // TODO : Benthos, Plancton...
- }
+ // TODO : Benthos, Plancton...
+ }
- // Hors Vrac
- SortingBatch horsVracBatch = catchBatchDao.getSortingBatch(batchs,
- "pmfmId", enumeration.PMFM_ID_SORTED_UNSORTED,
- enumeration.QUALITATIVE_HORS_VRAC_ID);
- if (horsVracBatch == null) {
- addWarning(errors, n_("tutti.persistence.batch.validation.horsVracSpeciesNotFound"));
- } else {
- // Hors Vrac > Species
- SortingBatch speciesBatch = catchBatchDao.getSortingBatch(horsVracBatch.getChildBatchs(),
- "pmfmId", enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES);
- if (speciesBatch == null) {
- addWarning(errors, n_("tutti.persistence.batch.validation.horsVracSpeciesNotFound"));
- }
+ // Hors Vrac
+ SortingBatch horsVracBatch = catchBatchDao.getSortingBatch(batchs,
+ "pmfmId", enumeration.PMFM_ID_SORTED_UNSORTED,
+ enumeration.QUALITATIVE_HORS_VRAC_ID);
+ if (horsVracBatch == null) {
+ addWarning(errors, n_("tutti.persistence.batch.validation.horsVracSpeciesNotFound"));
+ } else {
+ // Hors Vrac > Species
+ SortingBatch speciesBatch = catchBatchDao.getSortingBatch(horsVracBatch.getChildBatchs(),
+ "pmfmId", enumeration.PMFM_ID_SORTING_TYPE,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES);
+ if (speciesBatch == null) {
+ addWarning(errors, n_("tutti.persistence.batch.validation.horsVracSpeciesNotFound"));
+ }
- // TODO : Benthos, Plancton...
- }
+ // TODO : Benthos, Plancton...
+ }
- // Unsorted
- SortingBatch unsortedBatch = catchBatchDao.getSortingBatch(batchs,
- "pmfmId", enumeration.PMFM_ID_SORTED_UNSORTED,
- enumeration.QUALITATIVE_UNSORTED_ID);
- if (unsortedBatch == null) {
- addWarning(errors,n_( "tutti.persistence.batch.validation.unsortedNotFound"));
- }
+ // Unsorted
+ SortingBatch unsortedBatch = catchBatchDao.getSortingBatch(batchs,
+ "pmfmId", enumeration.PMFM_ID_SORTED_UNSORTED,
+ enumeration.QUALITATIVE_UNSORTED_ID);
+ if (unsortedBatch == null) {
+ addWarning(errors, n_("tutti.persistence.batch.validation.unsortedNotFound"));
+ }
- // May be, the tree is an old structure
- if (vracBatch == null && horsVracBatch == null && unsortedBatch == null) {
- boolean allBatchHasSpecies = true;
- boolean allBatchHasVrac = true;
- boolean someBatchHasSortingMeasurement = false;
+ // May be, the tree is an old structure
+ if (vracBatch == null && horsVracBatch == null && unsortedBatch == null) {
+ boolean allBatchHasSpecies = true;
+ boolean allBatchHasVrac = true;
+ boolean someBatchHasSortingMeasurement = false;
for (Batch batch1 : batchs) {
SortingBatch batch = (SortingBatch) batch1;
if (allBatchHasSpecies && batch.getReferenceTaxon() == null) {
@@ -181,52 +178,52 @@
}
}
}
- if (allBatchHasSpecies && !someBatchHasSortingMeasurement) {
- errors.clear();
- addError(errors,n_( "tutti.persistence.batch.validation.onlySpeciesBatchStructure"), new CatchBatchQuickFix() {
- @Override
- public CatchBatch repair(CatchBatch catchBatch) {
- return ScientificCruiseCatchBatchValidator.this.repairHistoricalData(catchBatch, false);
- }
- });
- }
- else if (allBatchHasSpecies && someBatchHasSortingMeasurement && allBatchHasVrac) {
- errors.clear();
- addError(errors, n_("tutti.persistence.batch.validation.onlySpeciesBatchStructure"), new CatchBatchQuickFix() {
- @Override
- public CatchBatch repair(CatchBatch catchBatch) {
- return ScientificCruiseCatchBatchValidator.this.repairHistoricalData(catchBatch, true);
- }
- });
- }
- }
- }
+ if (allBatchHasSpecies && !someBatchHasSortingMeasurement) {
+ errors.clear();
+ addError(errors, n_("tutti.persistence.batch.validation.onlySpeciesBatchStructure"), new CatchBatchQuickFix() {
+ @Override
+ public CatchBatch repair(CatchBatch catchBatch) {
+ return ScientificCruiseCatchBatchValidator.this.repairHistoricalData(catchBatch, false);
+ }
+ });
+ } else if (allBatchHasSpecies && someBatchHasSortingMeasurement && allBatchHasVrac) {
+ errors.clear();
+ addError(errors, n_("tutti.persistence.batch.validation.onlySpeciesBatchStructure"), new CatchBatchQuickFix() {
+ @Override
+ public CatchBatch repair(CatchBatch catchBatch) {
+ return ScientificCruiseCatchBatchValidator.this.repairHistoricalData(catchBatch, true);
+ }
+ });
+ }
+ }
+ }
- /**
- * Repair tree batch, when only species have been found under the cacth batch.
- * This append typically with CGFS cruise.
- * @param catchBatch
- * @return
- */
- protected CatchBatch repairHistoricalData(CatchBatch catchBatch, boolean batchHasVracSortingMeasurement) {
- Preconditions.checkNotNull(catchBatch);
- Preconditions.checkNotNull(catchBatch.getId());
- Preconditions.checkNotNull(catchBatch.getFishingOperation());
- Preconditions.checkNotNull(catchBatch.getFishingOperation().getId());
+ /**
+ * Repair tree batch, when only species have been found under the cacth batch.
+ * This append typically with CGFS cruise.
+ *
+ * @param catchBatch
+ * @return
+ */
+ protected CatchBatch repairHistoricalData(CatchBatch catchBatch, boolean batchHasVracSortingMeasurement) {
+ Preconditions.checkNotNull(catchBatch);
+ Preconditions.checkNotNull(catchBatch.getId());
+ Preconditions.checkNotNull(catchBatch.getFishingOperation());
+ Preconditions.checkNotNull(catchBatch.getFishingOperation().getId());
- // Copy catch batch children
- Collection<Batch> speciesBatchChilds = Sets.newHashSet();
- speciesBatchChilds.addAll(catchBatch.getChildBatchs());
- catchBatch.setChildBatchs(new HashSet<Batch>());
+ // Copy catch batch children
+ Collection<Batch> speciesBatchChilds = Sets.newHashSet();
+ speciesBatchChilds.addAll(catchBatch.getChildBatchs());
+ catchBatch.setChildBatchs(new HashSet<Batch>());
- // Clean catch batch
+ // Clean catch batch
batchService.cleanEntity(catchBatch, true);
SortingBatch speciesBatch = catchBatchDao.getSortingBatch(catchBatch.getChildBatchs(),
- "pmfmId", enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID,
- "pmfmId", enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES);
+ "pmfmId", enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID,
+ "pmfmId", enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES);
if (speciesBatch == null) {
- throw new DataIntegrityViolationException("Invalid batch tree format. Could not retrieve 'Vrac>Species' batch.");
+ throw new DataIntegrityViolationException("Invalid batch tree format. Could not retrieve 'Vrac>Species' batch.");
}
// For all species batch : set the batch 'Vrac>Species' as new parent
@@ -258,24 +255,24 @@
// Save mofidifications :
catchBatchDao.update(catchBatch);
- return catchBatch;
- }
+ return catchBatch;
+ }
- protected void addError(List<CatchBatchValidationError> errors, String messageKey, CatchBatchQuickFix quickFix) {
- CatchBatchValidationError error = new CatchBatchValidationError(
- messageKey,
- _(messageKey),
- CatchBatchValidationError.GRAVITY_ERROR);
- error.setQuickFixes(Lists.newArrayList(quickFix));
- errors.add(error);
- }
+ protected void addError(List<CatchBatchValidationError> errors, String messageKey, CatchBatchQuickFix quickFix) {
+ CatchBatchValidationError error = new CatchBatchValidationError(
+ messageKey,
+ _(messageKey),
+ CatchBatchValidationError.GRAVITY_ERROR);
+ error.setQuickFixes(Lists.newArrayList(quickFix));
+ errors.add(error);
+ }
- protected void addWarning(List<CatchBatchValidationError> errors, String messageKey) {
- CatchBatchValidationError error = new CatchBatchValidationError(
- messageKey,
- _(messageKey),
- CatchBatchValidationError.GRAVITY_WARNING);
- errors.add(error);
- }
+ protected void addWarning(List<CatchBatchValidationError> errors, String messageKey) {
+ CatchBatchValidationError error = new CatchBatchValidationError(
+ messageKey,
+ _(messageKey),
+ CatchBatchValidationError.GRAVITY_WARNING);
+ errors.add(error);
+ }
}
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java 2013-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java 2013-03-01 20:59:12 UTC (rev 513)
@@ -39,7 +39,6 @@
import fr.ifremer.tutti.persistence.entities.referential.Zone;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.hibernate.NonUniqueResultException;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
Modified: trunk/tutti-service/pom.xml
===================================================================
--- trunk/tutti-service/pom.xml 2013-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-service/pom.xml 2013-03-01 20:59:12 UTC (rev 513)
@@ -49,6 +49,12 @@
</dependency>
<dependency>
+ <groupId>fr.ifremer.adagio</groupId>
+ <artifactId>adagio-core</artifactId>
+ <classifier>allegro</classifier>
+ </dependency>
+
+ <dependency>
<groupId>org.nuiton</groupId>
<artifactId>nuiton-utils</artifactId>
</dependency>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2013-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2013-03-01 20:59:12 UTC (rev 513)
@@ -28,6 +28,7 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import fr.ifremer.tutti.persistence.ProgressionModel;
+import fr.ifremer.tutti.persistence.config.TuttiPersistenceConfig;
import fr.ifremer.tutti.persistence.service.synchro.ReferentialSynchronizeResult;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.service.TuttiTechnicalException;
@@ -138,12 +139,32 @@
boolean doRestart = updateDoneJre(appToUpdate, appUpdateError);
- doRestart |= updateDoneTutti(appToUpdate, appUpdateError);
+ boolean updateTutti = updateDoneTutti(appToUpdate, appUpdateError);
+ doRestart |= updateTutti;
+
doRestart |= updateDoneI18n(appToUpdate, appUpdateError);
updateDoneDb(appToUpdate, appUpdateError);
if (doRestart) {
+
+ if (updateTutti) {
+
+ TuttiPersistenceConfig persistenceConfig = context.getConfig().getServiceConfig().getPersistenceConfig();
+
+ // must remove the enumeration file at exit
+ persistenceConfig.getDbEnumerationPath().deleteOnExit();
+
+ // must also remove i18n directory
+ File i18nDirectory = context.getConfig().getI18nDirectory();
+ try {
+ FileUtils.forceDeleteOnExit(i18nDirectory);
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(
+ "could not delete i18n directory " + i18nDirectory, e);
+ }
+
+ }
System.exit(RunTutti.UPATE_EXIT_CODE);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDataContext.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDataContext.java 2013-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDataContext.java 2013-03-01 20:59:12 UTC (rev 513)
@@ -1,5 +1,29 @@
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 com.google.common.base.Preconditions;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.Program;
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDataContext.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateApplicationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateApplicationAction.java 2013-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateApplicationAction.java 2013-03-01 20:59:12 UTC (rev 513)
@@ -92,7 +92,7 @@
dest,
false,
callback);
- getContext().getActionUI().getModel().clear();
+// getContext().getActionUI().getModel().clear();
}
}
}
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/CreateMelagAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/CreateMelagAction.java 2013-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/CreateMelagAction.java 2013-03-01 20:59:12 UTC (rev 513)
@@ -1,22 +1,43 @@
package fr.ifremer.tutti.ui.swing.content.operation.catches.species;
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
import com.google.common.collect.Maps;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyRowModel;
-import java.awt.Frame;
-import java.awt.event.ActionEvent;
-import java.util.Map;
-import javax.swing.JOptionPane;
-import jaxx.runtime.JAXXUtil;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import jaxx.runtime.SwingUtil;
import org.apache.commons.lang3.StringUtils;
-import org.nuiton.util.StringUtil;
+import javax.swing.JOptionPane;
+import java.awt.Frame;
+import java.util.Map;
+
import static org.nuiton.i18n.I18n._;
/**
- *
* @author kmorin <kmorin(a)codelutin.com>
* @since 1.0.2
*/
@@ -34,7 +55,6 @@
public CreateMelagAction(SpeciesBatchUIHandler handler) {
super(handler,
- "createMelag",
"batch-rename",
_("tutti.action.createMelag"),
_("tutti.action.createMelag.tip"),
@@ -43,10 +63,9 @@
}
@Override
- protected boolean prepareAction(ActionEvent event) {
- boolean result = super.prepareAction(event);
+ protected boolean prepareAction() {
+ boolean result = super.prepareAction();
- SpeciesBatchUIHandler handler = getHandler();
int[] selectedRowIndexes = handler.getTable().getSelectedRows();
SpeciesBatchTableModel tableModel = handler.getTableModel();
@@ -57,7 +76,7 @@
for (int selectedRowIndex : selectedRowIndexes) {
SpeciesBatchRowModel selectedRow =
- tableModel.getEntry(selectedRowIndex);
+ tableModel.getEntry(selectedRowIndex);
Float sampleWeight = null;
if (selectedRow.getFinestCategory().getCategoryWeight() != null) {
@@ -119,7 +138,7 @@
Frame frame = SwingUtil.getParentContainer(getUI(), Frame.class);
final EnterMelagWeightDialog dialog = new EnterMelagWeightDialog(frame,
- getConfig().getShortcutClosePopup());
+ getConfig().getShortcutClosePopup());
SwingUtil.center(frame, dialog);
dialog.pack();
dialog.setVisible(true);
@@ -132,7 +151,7 @@
}
@Override
- protected void doAction(ActionEvent event) throws Exception {
+ protected void doAction() throws Exception {
for (SpeciesBatchRowModel batch : selectedRows.keySet()) {
Float sampleWeight = selectedRows.get(batch);
if (sampleWeight != null) {
@@ -153,8 +172,9 @@
}
@Override
- protected void releaseAction(ActionEvent event) {
- super.releaseAction(event);
+ protected void releaseAction() {
+ super.releaseAction();
+ //TODO-TC No release action is not design to refresh ui...
getHandler().getTable().repaint();
selectedRows.clear();
melagWeight = null;
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/CreateMelagAction.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/species/EnterMelagWeightDialog.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/EnterMelagWeightDialog.css 2013-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/EnterMelagWeightDialog.css 2013-03-01 20:59:12 UTC (rev 513)
@@ -1,3 +1,26 @@
+/*
+ * #%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%
+ */
#dialog {
title: "tutti.dialog.createMelag.title";
}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/EnterMelagWeightDialog.css
___________________________________________________________________
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/species/EnterMelagWeightDialog.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/EnterMelagWeightDialog.jaxx 2013-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/EnterMelagWeightDialog.jaxx 2013-03-01 20:59:12 UTC (rev 513)
@@ -1,3 +1,26 @@
+<!--
+ #%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%
+ -->
<JDialog id='dialog' layout='{new BorderLayout()}'>
<import>
java.awt.Component;
@@ -43,7 +66,8 @@
</row>
</Table>
<JPanel layout='{new GridLayout(1,0)}' constraints='BorderLayout.SOUTH'>
- <JButton id='cancelButton' onActionPerformed='editor.setModel(null); dispose();'/>
+ <JButton id='cancelButton'
+ onActionPerformed='editor.setModel(null); dispose();'/>
<JButton id='validateButton' onActionPerformed='dispose();'/>
</JPanel>
</JDialog>
\ No newline at end of file
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/EnterMelagWeightDialog.jaxx
___________________________________________________________________
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/species/SpeciesBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-03-01 20:59:12 UTC (rev 513)
@@ -8,15 +8,15 @@
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
+ * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
+ *
+ * You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-03-01 20:59:12 UTC (rev 513)
@@ -10,15 +10,15 @@
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
+ * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
+ *
+ * You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
@@ -75,6 +75,7 @@
import javax.swing.JOptionPane;
import javax.swing.RowFilter;
+import javax.swing.UIManager;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumnModel;
import java.awt.Color;
@@ -88,7 +89,6 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
-import javax.swing.UIManager;
import static org.nuiton.i18n.I18n._;
import static org.nuiton.i18n.I18n.n_;
@@ -648,8 +648,8 @@
// highlight only the species column if the row is selected
Highlighter selectedHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
new HighlightPredicate.AndHighlightPredicate(
- HighlightPredicate.IS_SELECTED,
- new HighlightPredicate.IdentifierHighlightPredicate(SpeciesBatchTableModel.SPECIES)),
+ HighlightPredicate.IS_SELECTED,
+ new HighlightPredicate.IdentifierHighlightPredicate(SpeciesBatchTableModel.SPECIES)),
UIManager.getColor("Table[Enabled+Selected].textBackground"));
table.addHighlighter(selectedHighlighter);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java 2013-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java 2013-03-01 20:59:12 UTC (rev 513)
@@ -10,15 +10,15 @@
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
+ * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
+ *
+ * You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css 2013-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css 2013-03-01 20:59:12 UTC (rev 513)
@@ -8,15 +8,15 @@
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
+ * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
+ *
+ * You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
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-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-03-01 20:59:12 UTC (rev 513)
@@ -10,15 +10,15 @@
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
+ * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
+ *
+ * You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
@@ -514,4 +514,4 @@
//-- Internal methods --//
//------------------------------------------------------------------------//
-}
\ No newline at end of file
+}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java 2013-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java 2013-03-01 20:59:12 UTC (rev 513)
@@ -10,15 +10,15 @@
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
+ * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
+ *
+ * You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
@@ -234,4 +234,4 @@
}
return result;
}
-}
\ No newline at end of file
+}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java 2013-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java 2013-03-01 20:59:12 UTC (rev 513)
@@ -25,30 +25,15 @@
*/
import com.google.common.base.Preconditions;
-import com.google.common.collect.Sets;
-import fr.ifremer.tutti.service.DecoratorService;
-import fr.ifremer.tutti.ui.swing.MainUI;
import fr.ifremer.tutti.ui.swing.TuttiDataContext;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiExceptionHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
-import jaxx.runtime.SwingUtil;
-import org.apache.commons.lang3.ObjectUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.jdesktop.beans.AbstractBean;
import org.nuiton.util.decorator.Decorator;
-import javax.swing.AbstractAction;
-import java.awt.event.ActionEvent;
-import java.util.Set;
-import java.util.Timer;
-import java.util.TimerTask;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
/**
* TODO
*
@@ -72,10 +57,10 @@
protected abstract void doAction() throws Exception;
protected AbstractTuttiAction(H handler,
- String actionIcon,
- String actionName,
- String actionDescription,
- boolean hideBody) {
+ String actionIcon,
+ String actionName,
+ String actionDescription,
+ boolean hideBody) {
this.handler = handler;
this.actionName = actionName;
this.actionDescription = actionDescription;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java 2013-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java 2013-03-01 20:59:12 UTC (rev 513)
@@ -1,5 +1,29 @@
package fr.ifremer.tutti.ui.swing.util.action;
+/*
+ * #%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.MainUI;
import fr.ifremer.tutti.ui.swing.util.TuttiExceptionHandler;
import jaxx.runtime.SwingUtil;
@@ -9,7 +33,6 @@
import javax.swing.AbstractAction;
import javax.swing.ImageIcon;
-import javax.swing.JRootPane;
import javax.swing.SwingUtilities;
import javax.swing.SwingWorker;
import java.awt.Cursor;
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
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-03-01 20:37:07 UTC (rev 512)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java 2013-03-01 20:59:12 UTC (rev 513)
@@ -10,15 +10,15 @@
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
+ * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
+ *
+ * You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
@@ -73,7 +73,6 @@
import java.awt.event.MouseEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
-import java.util.Arrays;
import java.util.Enumeration;
import java.util.List;
import java.util.Set;
1
0
01 Mar '13
Author: tchemit
Date: 2013-03-01 21:37:07 +0100 (Fri, 01 Mar 2013)
New Revision: 512
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/512
Log:
improve action api
reformat some code
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDataContext.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiErrorHelper.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUI.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java
Removed:
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/AbstractTuttiBeanUIModel.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/TuttiErrorHelper.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiExceptionHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUI.java
Modified:
trunk/tutti-ui-swing/
trunk/tutti-ui-swing/src/main/filtered-resources/log4j.properties
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/AbstractMainUITuttiAction.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/ImportTemporaryReferentialAction.java
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/ManageDbAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.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/TuttiApplicationUpdaterCallBack.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateApplicationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateReferentialAction.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/CancelEditCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/CloseDbAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/InstallDbAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/OpenDbAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/CloneProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/DeleteProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCatchesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProgramAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProgramAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/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/home/SelectCruiseUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ValidateCatchesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AbstractTuttiBatchTableUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AbstractTuttiBatchUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AttachmentsAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/CancelEditFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/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/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/SaveFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/CancelEditCatchBatchAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ImportPupitriAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SaveCatchBatchAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.jaxx
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/BenthosBatchRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx
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/MacroWasteBatchRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUI.jaxx
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/PlanktonBatchRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUI.jaxx
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/RemoveSpeciesBatchAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/RemoveSpeciesSubBatchAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/RenameSpeciesBatchAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SelectSpeciesUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SelectSpeciesUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SelectSpeciesUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java
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/SpeciesFrequencyRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx
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/AddSpeciesAction.java
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/CreateSpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUI.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/CaracteristicRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/CancelEditProgramAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/AddSpeciesProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CancelEditProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportAllCaracteristicAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolCaracteristicAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolSpeciesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolCaracteristicAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolSpeciesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/RemoveSpeciesProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SelectOtherSpeciesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiTabContainerUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiCollectionUniqueKeyValidator.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/action/TuttiActionUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/AttachmentCellComponent.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/AttachmentEditorUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/AttachmentEditorUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueEditor.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueRenderer.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/LongTextCellComponent.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/SimpleTimeEditorHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/TuttiComputedOrNotDataEditorHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/TuttiComputedOrNotDataTableCell.java
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/AbstractTuttiTableUIModel.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Property changes on: trunk/tutti-ui-swing
___________________________________________________________________
Modified: svn:ignore
- target
.idea
*.ipr
*.iws
*.iml
+ target
.idea
*.ipr
*.iws
*.iml
.project
.classpath
.settings
tutti.config
*.log
Modified: trunk/tutti-ui-swing/src/main/filtered-resources/log4j.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/log4j.properties 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/log4j.properties 2013-03-01 20:37:07 UTC (rev 512)
@@ -27,19 +27,16 @@
# Console output
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
+log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %5p [%20t] (%c:%L) - %m%n
+# tutti levels
+log4j.logger.fr.ifremer.tutti=INFO
+log4j.logger.fr.ifremer.tutti.ui.swing.util=WARN
+log4j.logger.fr.ifremer.tutti.ui.swing.util.action=DEBUG
+
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.file=${tutti.log.file}
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=4
log4j.appender.file.layout=org.apache.log4j.PatternLayout
-log4j.appender.file.layout.ConversionPattern=%d{ISO8601} %5p [%t] %c - %m%n
-
-# tutti levels
-log4j.logger.fr.ifremer=INFO
-log4j.logger.fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler=WARN
-log4j.logger.fr.ifremer.tutti.ui.swing.util.table=INFO
-log4j.logger.org.nuiton.util=WARN
-log4j.logger.org.nuiton.util.ApplicationConfig=INFO
-log4j.logger.org.nuiton.util.ApplicationConfigHelper=INFO
+log4j.appender.file.layout.ConversionPattern=%d{ISO8601} %5p [%20t] %c - %m%n
Modified: 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/AbstractChangeScreenAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractChangeScreenAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,30 +25,25 @@
* #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, MainUI, MainUIHandler> {
+public abstract class AbstractChangeScreenAction extends AbstractMainUITuttiAction {
- 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);
+ super(handler, icon, text, tip, hideBody);
}
@Override
- protected boolean prepareAction(ActionEvent event) {
- boolean result = super.prepareAction(event);
+ protected boolean prepareAction() {
+ boolean result = super.prepareAction();
result &= getHandler().getCurrentHandler().canCloseUI(getNextScreen());
return result;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractMainUITuttiAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractMainUITuttiAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractMainUITuttiAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -24,20 +24,19 @@
* #L%
*/
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+
/**
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
*/
public abstract class AbstractMainUITuttiAction extends AbstractTuttiAction<TuttiUIContext, MainUI, MainUIHandler> {
- private static final long serialVersionUID = 1L;
-
protected AbstractMainUITuttiAction(MainUIHandler handler,
- String name,
String icon,
String text,
String tip,
boolean hideBody) {
- super(handler, name, icon, text, tip, hideBody);
+ super(handler, icon, text, tip, hideBody);
}
}
Deleted: 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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -1,366 +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 com.google.common.base.Preconditions;
-import com.google.common.collect.Sets;
-import fr.ifremer.tutti.service.DecoratorService;
-import fr.ifremer.tutti.service.TuttiService;
-import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
-import fr.ifremer.tutti.ui.swing.util.action.TuttiActionUI;
-import fr.ifremer.tutti.ui.swing.util.action.TuttiActionUIModel;
-import jaxx.runtime.SwingUtil;
-import org.apache.commons.lang3.ObjectUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.jdesktop.beans.AbstractBean;
-import org.nuiton.util.decorator.Decorator;
-
-import javax.swing.AbstractAction;
-import java.awt.event.ActionEvent;
-import java.util.Set;
-import java.util.Timer;
-import java.util.TimerTask;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-/**
- * TODO
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0
- */
-public abstract class AbstractTuttiAction<M extends AbstractBean, UI extends TuttiUI<M, ?>, H extends AbstractTuttiUIHandler<M, UI>> extends AbstractAction {
-
- private static final long serialVersionUID = 1L;
-
- /** Logger. */
- private static final Log log = LogFactory.getLog(AbstractTuttiAction.class);
-
- private static final Timer t = new Timer();
-
- private static final ExecutorService executorService =
- Executors.newSingleThreadExecutor();
-
- private static final TuttiExceptionHandler exceptionHandler = new TuttiExceptionHandler();
-
- private final H handler;
-
- private boolean failed;
-
- private final boolean hideBody;
-
- private final static Object lock = new Object();
-
- protected abstract void doAction(ActionEvent event) throws Exception;
-
- protected AbstractTuttiAction(H handler,
- String name,
- String icon,
- String text,
- String tip,
- boolean hideBody) {
-
- this.handler = handler;
- this.hideBody = hideBody;
- if (icon != null) {
- putValue(SMALL_ICON, SwingUtil.createActionIcon(icon));
- putValue(LARGE_ICON_KEY, SwingUtil.createActionIcon(icon));
- }
- putValue(ACTION_COMMAND_KEY, name);
- putValue(NAME, text);
- putValue(SHORT_DESCRIPTION, tip);
- }
-
- public final UI getUI() {
- return handler.getUI();
- }
-
- protected String getActionName() {
- return (String) getValue("actionName");
- }
-
- public String getActionDescription() {
- return (String) getValue("actionDescription");
- }
-
- protected boolean prepareAction(ActionEvent event) {
- putValue("actionName", getValue(NAME));
- putValue("actionDescription", getValue(SHORT_DESCRIPTION));
- return true;
- }
-
- protected void releaseAction(ActionEvent event) {
- putValue("actionName", null);
- putValue("actionDescription", null);
- }
-
- public boolean isFailed() {
- return failed;
- }
-
- public void setFailed(boolean failed) {
- this.failed = failed;
- }
-
- @Override
- public final void actionPerformed(final ActionEvent event) {
-
- if (log.isInfoEnabled()) {
- log.info("Task [" + this + "] starting");
- }
-
- setFailed(false);
-
- boolean doAction = prepareAction(event);
-
- if (doAction) {
-
- boolean useTimer;
-
- synchronized (lock) {
- useTimer = actions.isEmpty();
-
- mainAction = AbstractTuttiAction.this;
- actions.add(AbstractTuttiAction.this);
- }
-
- if (useTimer) {
-
- // a new thread action
-
- executorService.submit(new Runnable() {
- @Override
- public void run() {
-
- runAction(true, event);
- }
- });
-
- } else {
-
- runAction(false, event);
- }
- } else {
- releaseAction(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, 1000);
- }
-
- try {
-
- this.doAction(event);
- } catch (Throwable e) {
- setFailed(true);
-
- if (log.isErrorEnabled()) {
- log.error("Task [" + this + "] error: " + e.getMessage(), e);
- }
- exceptionHandler.handle(new TuttiExceptionHandler.TuttiActionException(this, e));
- } finally {
- if (log.isInfoEnabled()) {
- log.info("Task [" + this + "] done");
- }
- if (timer != null) {
-
- timer.cancel();
- }
-
- try {
- this.releaseAction(event);
- } finally {
-
- synchronized (lock) {
-
- TuttiActionUI actionUI = AbstractTuttiAction.this.getContext().getActionUI();
-
- TuttiActionUIModel actionUIModel = actionUI.getModel();
-
- if (ObjectUtils.equals(AbstractTuttiAction.this, actionUIModel.getAction())) {
-
- // same action, then remove it (will close dialog as a side effect)
- actionUIModel.clear();
- }
- actions.remove(AbstractTuttiAction.this);
-
- if (AbstractTuttiAction.this.equals(getMainAction())) {
- mainAction = null;
- }
- }
- }
- }
- }
-
- public TuttiUIContext getContext() {
- return handler.getContext();
- }
-
- public H getHandler() {
- return handler;
- }
-
- public M getModel() {
- return handler.getModel();
- }
-
- protected <S extends TuttiService> S getService(Class<S> serviceType) {
- return getContext().getService(serviceType);
- }
-
- protected TuttiApplicationConfig getConfig() {
- return getContext().getConfig();
- }
-
- protected void setMnemonic(int key) {
- putValue(MNEMONIC_KEY, key);
- }
-
- public boolean isHideBody() {
- return hideBody;
- }
-
- private final static Set<Object> actions = Sets.newHashSet();
-
- private static AbstractTuttiAction mainAction;
-
- public static AbstractTuttiAction getMainAction() {
- return mainAction;
- }
-
- protected static class ActionTimerTask<A extends AbstractTuttiAction> extends TimerTask {
-
- private final Object lock = new Object();
-
- protected boolean canceled;
-
- private final A action;
-
- protected TuttiActionUI actionUI;
-
- public ActionTimerTask(A action) {
- this.action = action;
- this.actionUI = action.getContext().getActionUI();
- }
-
- @Override
- public void run() {
-
- if (canceled) {
-
- if (log.isDebugEnabled()) {
- log.debug("Task [" + action + "] was already canceled, do nothing");
- }
- } else {
-
- if (log.isDebugEnabled()) {
- log.debug("Task [" + action + "] is started, show waiting dialog");
- }
-
- if (log.isDebugEnabled()) {
- log.debug("Try to open dialog (was canceled ? " + canceled + ")");
- }
- if (!canceled || !action.isFailed()) {
-
- updateBusyState(true);
-
- actionUI.getModel().setAction(action);
- }
- }
- }
-
-
- @Override
- public boolean cancel() {
- synchronized (lock) {
- canceled = true;
- if (log.isDebugEnabled()) {
- log.debug("Task [" + action + "] canceled.");
- }
- boolean cancel = super.cancel();
-
- updateBusyState(false);
-
- if (ObjectUtils.equals(action, actionUI.getModel().getAction())) {
-
- // same action, then remove it (will close dialog as a side effect)
- actionUI.getModel().clear();
- }
- return cancel;
- }
- }
-
- protected void updateBusyState(boolean busy) {
-
- MainUI ui = action.getContext().getMainUI();
- if (busy) {
- // ui bloquee
- if (action.isHideBody()) {
- ui.getBody().setVisible(false);
- }
- } else {
- // ui debloquee
- if (action.isHideBody()) {
- ui.getBody().setVisible(true);
- }
- }
- }
- }
-
- protected void sendMessage(String message) {
- getContext().showInformationMessage(message);
- }
-
- protected <O> Decorator<O> getDecorator(Class<O> type, String name) {
- DecoratorService decoratorService =
- getContext().getService(DecoratorService.class);
-
- Preconditions.checkNotNull(type);
-
- Decorator decorator = decoratorService.getDecoratorByType(type, name);
- if (decorator == null) {
-
- if (DecoratorService.LabelAware.class.isAssignableFrom(type)) {
- decorator = getDecorator(DecoratorService.LabelAware.class, null);
- }
- }
- Preconditions.checkNotNull(decorator);
- return decorator;
- }
-
- protected String decorate(Object object) {
- return handler.getDecorator(object.getClass(), null).toString(object);
- }
-}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiBeanUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiBeanUIModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiBeanUIModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -1,130 +0,0 @@
-package fr.ifremer.tutti.ui.swing;
-
-/*
- * #%L
- * Tutti :: UI
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import fr.ifremer.tutti.persistence.entities.IdAware;
-import fr.ifremer.tutti.service.TuttiTechnicalException;
-import org.jdesktop.beans.AbstractSerializableBean;
-import org.nuiton.util.beans.Binder;
-
-/**
- * Abstract UI model to edit a bean.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.1
- */
-public abstract class AbstractTuttiBeanUIModel<E, B extends AbstractTuttiBeanUIModel<E, B>> extends AbstractSerializableBean implements IdAware {
-
- private static final long serialVersionUID = 1L;
-
- public static final String PROPERTY_ID = "id";
-
- public static final String PROPERTY_MODIFY = "modify";
-
- public static final String PROPERTY_VALID = "valid";
-
- protected String id;
-
- protected boolean modify;
-
- protected boolean valid;
-
- private final Class<E> entityType;
-
- private final Binder<E, B> fromBeanBinder;
-
- private final Binder<B, E> toBeanBinder;
-
- protected AbstractTuttiBeanUIModel(Class<E> entityType,
- Binder<E, B> fromBeanBinder,
- Binder<B, E> toBeanBinder) {
- this.entityType = entityType;
- this.fromBeanBinder = fromBeanBinder;
- this.toBeanBinder = toBeanBinder;
- }
-
- public final void fromBean(E bean) {
- fromBeanBinder.copy(bean, (B) this);
- }
-
- public final E toBean() {
- E result = newEntity();
- toBeanBinder.copy((B) this, result);
- return result;
- }
-
- protected E newEntity() {
- try {
- E result = entityType.newInstance();
- return result;
- } catch (Exception e) {
- throw new TuttiTechnicalException(
- "Could not instanciate entity of type " +
- entityType.getName(), e);
- }
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- Object oldValue = getId();
- this.id = id;
- firePropertyChange(PROPERTY_ID, oldValue, id);
- }
-
- public String getTitle() {
- return null;
- }
-
- public String getIcon() {
- return null;
- }
-
- public boolean isModify() {
- return modify;
- }
-
- public void setModify(boolean modify) {
- Object oldValue = isModify();
- this.modify = modify;
- firePropertyChange(PROPERTY_MODIFY, oldValue, modify);
- }
-
- public boolean isValid() {
- return valid;
- }
-
- public void setValid(boolean valid) {
- Object oldValue = isValid();
- this.valid = valid;
- firePropertyChange(PROPERTY_VALID, oldValue, valid);
- }
-
- public boolean isCreate() {
- return id == null;
- }
-}
Deleted: 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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -1,623 +0,0 @@
-package fr.ifremer.tutti.ui.swing;
-
-/*
- * #%L
- * Tutti :: UI
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
-import fr.ifremer.tutti.persistence.entities.IdAware;
-import fr.ifremer.tutti.service.DecoratorService;
-import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
-import fr.ifremer.tutti.ui.swing.util.Cancelable;
-import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
-import fr.ifremer.tutti.ui.swing.util.UIMessageNotifier;
-import fr.ifremer.tutti.ui.swing.util.editor.SimpleTimeEditor;
-import jaxx.runtime.JAXXUtil;
-import jaxx.runtime.SwingUtil;
-import jaxx.runtime.swing.editor.NumberEditor;
-import jaxx.runtime.swing.editor.bean.BeanComboBox;
-import jaxx.runtime.swing.editor.bean.BeanDoubleList;
-import jaxx.runtime.swing.renderer.DecoratorListCellRenderer;
-import jaxx.runtime.validator.swing.SwingValidator;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang3.reflect.ConstructorUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.jdesktop.swingx.JXDatePicker;
-import org.nuiton.util.decorator.Decorator;
-import org.nuiton.util.decorator.JXPathDecorator;
-import org.nuiton.validator.bean.simple.SimpleBeanValidator;
-
-import javax.swing.AbstractAction;
-import javax.swing.AbstractButton;
-import javax.swing.Action;
-import javax.swing.DefaultComboBoxModel;
-import javax.swing.JComponent;
-import javax.swing.JDialog;
-import javax.swing.JLabel;
-import javax.swing.JList;
-import javax.swing.JOptionPane;
-import javax.swing.JRootPane;
-import javax.swing.JTextField;
-import javax.swing.KeyStroke;
-import javax.swing.ListCellRenderer;
-import javax.swing.ListSelectionModel;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.text.JTextComponent;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.Font;
-import java.awt.Frame;
-import java.awt.event.ActionEvent;
-import java.awt.event.FocusAdapter;
-import java.awt.event.FocusEvent;
-import java.awt.event.ItemEvent;
-import java.awt.event.KeyEvent;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.io.Serializable;
-import java.text.ParseException;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import static org.nuiton.i18n.I18n._;
-
-/**
- * Contract of any UI handler.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.1
- */
-public abstract class AbstractTuttiUIHandler<M, UI extends TuttiUI<M, ?>> implements UIMessageNotifier {
-
- /** Logger. */
- private static final Log log =
- LogFactory.getLog(AbstractTuttiUIHandler.class);
-
- public abstract void beforeInitUI();
-
- public abstract void afterInitUI();
-
- public abstract void onCloseUI();
-
- public abstract SwingValidator<M> getValidator();
-
- /**
- * Global application context.
- *
- * @since 0.1
- */
- protected final TuttiUIContext context;
-
- /**
- * UI handled.
- *
- * @since 0.1
- */
- protected final UI ui;
-
- protected AbstractTuttiUIHandler(TuttiUIContext context, UI ui) {
- this.context = context;
- this.ui = ui;
- }
-
- //------------------------------------------------------------------------//
- //-- Public methods --//
- //------------------------------------------------------------------------//
-
- public DefaultComboBoxModel newComboModel(Object... items) {
- 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());
- }
-
- public final M getModel() {
- return ui.getModel();
- }
-
- public final UI getUI() {
- return ui;
- }
-
- @Override
- public void showInformationMessage(String message) {
- context.showInformationMessage(message);
- }
-
- public TuttiUIContext getContext() {
- return context;
- }
-
- public TuttiApplicationConfig getConfig() {
- return context.getConfig();
- }
-
- /**
- * Can the UI be closed? It is useful whe the user wants to exit the current
- * screen but the model is modified: we can then ask the user if he wants to
- * save or not.
- *
- * @param nextScreen the next screen to display
- * @return {@code true} if UI can be closed, {@code false} otherwise.
- */
- public boolean canCloseUI(TuttiScreen nextScreen) {
- return true;
- }
-
- public void setText(KeyEvent event, String property) {
- JTextComponent field = (JTextComponent) event.getSource();
- String value = field.getText();
- TuttiUIUtil.setProperty(getModel(), property, value);
- }
-
- public void setBoolean(ItemEvent event, String property) {
- boolean value = event.getStateChange() == ItemEvent.SELECTED;
- TuttiUIUtil.setProperty(getModel(), property, value);
- }
-
- public void setDate(ActionEvent event, String property) {
- JXDatePicker field = (JXDatePicker) event.getSource();
- Date value = field.getDate();
- TuttiUIUtil.setProperty(getModel(), property, value);
- }
-
- public void selectListData(ListSelectionEvent event, String property) {
- if (!event.getValueIsAdjusting()) {
- JList list = (JList) event.getSource();
- ListSelectionModel selectionModel = list.getSelectionModel();
-
- selectionModel.setValueIsAdjusting(true);
- try {
- List selectedList = Lists.newLinkedList();
-
- for (int index : list.getSelectedIndices()) {
- Object o = list.getModel().getElementAt(index);
- selectedList.add(o);
- }
- TuttiUIUtil.setProperty(getModel(), property, selectedList);
- } finally {
- selectionModel.setValueIsAdjusting(false);
- }
- }
- }
-
- public void openDialog(TuttiUI ui,
- TuttiUI dialogContent,
- String title, Dimension dim) {
- Frame frame = SwingUtil.getParentContainer(ui, Frame.class);
-
- JDialog result = new JDialog(frame, true);
- result.setTitle(title);
- result.add((Component) dialogContent);
- result.setResizable(true);
-
- result.setSize(dim);
-
- final AbstractTuttiUIHandler handler = dialogContent.getHandler();
-
- if (handler instanceof Cancelable) {
-
- // add a auto-close action
- JRootPane rootPane = result.getRootPane();
-
- KeyStroke shortcutClosePopup = getConfig().getShortcutClosePopup();
-
- rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
- shortcutClosePopup, "close");
- rootPane.getActionMap().put("close", new AbstractAction() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void actionPerformed(ActionEvent e) {
- ((Cancelable) handler).cancel();
- }
- });
- }
-
- result.addWindowListener(new WindowAdapter() {
-
- @Override
- public void windowClosed(WindowEvent e) {
- Component ui = (Component) e.getSource();
- if (log.isInfoEnabled()) {
- log.info("Destroy ui " + ui);
- }
- JAXXUtil.destroy(ui);
- }
- });
- SwingUtil.center(frame, result);
- result.setVisible(true);
- }
-
- public void closeDialog(TuttiUI ui) {
- SwingUtil.getParentContainer(ui, JDialog.class).setVisible(false);
- }
-
- public int askSaveBeforeLeaving(String message) {
- int i = JOptionPane.showConfirmDialog(
- getContext().getMainUI(),
- message,
- _("tutti.dialog.askSaveBeforeLeaving.title"),
- JOptionPane.YES_NO_CANCEL_OPTION);
- return i;
- }
-
- public int askCancelEditBeforeLeaving(String message) {
- int i = JOptionPane.showConfirmDialog(
- getContext().getMainUI(),
- message,
- _("tutti.dialog.askCancelEditBeforeLeaving.title"),
- JOptionPane.YES_NO_OPTION);
- return i;
- }
- //------------------------------------------------------------------------//
- //-- Internal methods --//
- //------------------------------------------------------------------------//
-
- protected void initUI(TuttiUI ui) {
-
- for (Map.Entry<String, Object> entry : ui.get$objectMap().entrySet()) {
- Object component = entry.getValue();
- if (component instanceof NumberEditor) {
- initNumberEditor((NumberEditor) component);
-
- } else if (component instanceof JXDatePicker) {
- initDatePicker((JXDatePicker) component);
-
- } else if (component instanceof SimpleTimeEditor) {
- initTimeEditor((SimpleTimeEditor) component);
-
- } else if (component instanceof JLabel) {
- JLabel jLabel = (JLabel) component;
- Boolean strongStyle = (Boolean) jLabel.getClientProperty("strongStyle");
- Boolean italicStyle = (Boolean) jLabel.getClientProperty("italicStyle");
- boolean addHtml = strongStyle != null && strongStyle || italicStyle != null && italicStyle;
- if (addHtml) {
- String text = jLabel.getText();
- if (strongStyle != null && strongStyle) {
- text = "<strong>" + text + "</strong>";
- }
- if (italicStyle != null && italicStyle) {
- text = "<em>" + text + "</em>";
- }
- jLabel.setText("<html>" + text + "</html>");
- }
-
- } else if (component instanceof JTextField) {
- JTextField jTextField = (JTextField) component;
- Boolean computed = (Boolean) jTextField.getClientProperty("computed");
- if (computed != null && computed) {
- Font font = jTextField.getFont().deriveFont(Font.ITALIC);
- jTextField.setFont(font);
- jTextField.setEditable(!computed);
- jTextField.setEnabled(!computed);
- jTextField.setDisabledTextColor(Color.BLUE);
- }
-
- } else if (component instanceof AbstractButton) {
- AbstractButton abstractButton = (AbstractButton) component;
- Class<? extends AbstractTuttiAction> actionName = (Class<? extends AbstractTuttiAction>) abstractButton.getClientProperty("tuttiAction");
- if (actionName != null) {
- initAction(abstractButton, actionName);
- }
- }
- }
- }
-
- protected void initAction(AbstractButton abstractButton,
- Class<? extends AbstractTuttiAction> actionName) {
- Action action = createAction(actionName);
- abstractButton.setAction(action);
- }
-
- protected <A extends AbstractTuttiAction> A createAction(Class<A> actionName) {
- A action = null;
- if (actionName != null) {
- try {
-
- AbstractTuttiUIHandler handler = this;
-
- if (AbstractMainUITuttiAction.class.isAssignableFrom(actionName) &&
- getContext().getMainUI() != null) {
- handler = getContext().getMainUI().getHandler();
- }
-
- action = (A) ConstructorUtils.invokeConstructor(
- actionName, handler);
- } 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);
- }
- }
-
- public 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é.
- *
- * @param comboBox le component graphique à initialiser
- */
- protected <E extends Serializable> void initBeanComboBox(
- BeanComboBox<E> comboBox,
- 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, decoratorContext);
-
- if (data == null) {
- data = Lists.newArrayList();
- }
-
- if (log.isInfoEnabled()) {
- log.info("entity comboBox list [" + beanType.getName() + "] : " +
- (data == null ? 0 : data.size()));
- }
-
- // add data list to combo box
- comboBox.init((JXPathDecorator<E>) decorator, data);
-
- comboBox.setSelectedItem(selectedData);
-
- if (log.isDebugEnabled()) {
- log.debug("combo [" + beanType.getName() + "] : " +
- comboBox.getData().size());
- }
- }
-
- /**
- * Prépare un component de choix d'entités pour un type d'entité donné et
- * pour un service de persistance donné.
- *
- * @param list le component graphique à initialiser
- * @param data la liste des données à mettre dans la liste de gauche
- * @param selectedData la liste des données à mettre dans la liste de droite
- */
- protected <E extends IdAware> void initBeanList(
- BeanDoubleList<E> list,
- List<E> data,
- List<E> selectedData) {
-
- Preconditions.checkNotNull(list, "No list!");
-
- Class<E> beanType = list.getBeanType();
- Preconditions.checkNotNull(beanType, "No beanType on the double list!");
-
- DecoratorService decoratorService =
- context.getService(DecoratorService.class);
- Decorator<E> decorator = decoratorService.getDecoratorByType(beanType);
-
- if (log.isInfoEnabled()) {
- log.info("entity list [" + beanType.getName() + "] : " +
- (data == null ? 0 : data.size()));
- }
-
- // add data list to combo box
- list.init((JXPathDecorator<E>) decorator, data, selectedData);
-
- if (log.isDebugEnabled()) {
- log.debug("Jlist [" + beanType.getName() + "] : " +
- list.getUniverseList().getModel().getSize());
- }
- }
-
- protected void initNumberEditor(NumberEditor editor) {
- if (log.isDebugEnabled()) {
- log.debug("init number editor " + editor.getName());
- }
- editor.init();
-
- // Force binding if value is already in model
- Number model = editor.getModel();
- if (model != null) {
- editor.setModel(null);
- editor.setModel(model);
- }
- }
-
- protected void initTimeEditor(SimpleTimeEditor editor) {
- if (log.isDebugEnabled()) {
- log.debug("init time editor " + editor.getName() +
- " for property " + editor.getModel().getProperty());
- }
- editor.init();
- }
-
- protected void initDatePicker(final JXDatePicker picker) {
-
- if (log.isDebugEnabled()) {
- log.debug("disable JXDatePicker editor" + picker.getName());
- }
- String dateFormat = getConfig().getDateFormat();
- picker.setFormats(dateFormat);
- picker.getEditor().addFocusListener(new FocusAdapter() {
-
- @Override
- public void focusLost(FocusEvent e) {
- try {
- picker.commitEdit();
-
- } catch (ParseException ex) {
- if (log.isDebugEnabled()) {
- log.debug("format error", ex);
- }
- }
- }
-
- });
- }
-
- public <O> Decorator<O> getDecorator(Class<O> type, String name) {
- DecoratorService decoratorService =
- context.getService(DecoratorService.class);
-
- Preconditions.checkNotNull(type);
-
- Decorator decorator = decoratorService.getDecoratorByType(type, name);
- if (decorator == null) {
-
- if (DecoratorService.LabelAware.class.isAssignableFrom(type)) {
- decorator = getDecorator(DecoratorService.LabelAware.class, null);
- }
- }
- Preconditions.checkNotNull(decorator);
- return decorator;
- }
-
- protected String decorate(Object object) {
- String result = "";
- if (object != null) {
- getDecorator(object.getClass(), null).toString(object);
- }
- return result;
- }
-
- protected <O> ListCellRenderer newListCellRender(Class<O> type) {
-
- return newListCellRender(type, null);
- }
-
- protected <O> ListCellRenderer newListCellRender(Class<O> type, String name) {
-
- Decorator<O> decorator = getDecorator(type, name);
- return newListCellRender(decorator);
- }
-
- protected <O> ListCellRenderer newListCellRender(Decorator<O> decorator) {
-
- Preconditions.checkNotNull(decorator);
-
- ListCellRenderer result = new DecoratorListCellRenderer(decorator);
- return result;
- }
-
- protected void listenValidatorValid(SimpleBeanValidator validator,
- final AbstractTuttiBeanUIModel model) {
- validator.addPropertyChangeListener(SimpleBeanValidator.VALID_PROPERTY, new PropertyChangeListener() {
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- if (log.isDebugEnabled()) {
- log.debug("Model [" + model +
- "] pass to valid state [" +
- evt.getNewValue() + "]");
- }
- model.setValid((Boolean) evt.getNewValue());
- }
- });
- }
-
- protected void listModelIsModify(AbstractTuttiBeanUIModel model) {
- model.addPropertyChangeListener(new PropertyChangeListener() {
-
- final Set<String> excludeProperties = getPropertiesToIgnore();
-
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- if (!excludeProperties.contains(evt.getPropertyName())) {
- ((AbstractTuttiBeanUIModel) evt.getSource()).setModify(true);
- }
- }
- });
- }
-
- protected Set<String> getPropertiesToIgnore() {
- return Sets.newHashSet(
- AbstractTuttiBeanUIModel.PROPERTY_MODIFY,
- AbstractTuttiBeanUIModel.PROPERTY_VALID);
- }
-
- public <B> void selectFirstInCombo(BeanComboBox<B> combo) {
- List<B> data = combo.getData();
- B selectedItem = null;
- if (CollectionUtils.isNotEmpty(data)) {
- selectedItem = data.get(0);
- }
- combo.setSelectedItem(selectedItem);
- }
-
- protected void closeUI(TuttiUI ui) {
- ui.getHandler().onCloseUI();
- }
-
- protected <B> void changeValidatorContext(String newContext,
- SwingValidator<B> validator) {
- B bean = validator.getBean();
- validator.setContext(newContext);
- validator.setBean(bean);
- }
-}
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -28,8 +28,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -40,14 +38,11 @@
*/
public class EditSelectedCruiseAction extends AbstractChangeScreenAction {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log = LogFactory.getLog(EditSelectedCruiseAction.class);
public EditSelectedCruiseAction(MainUIHandler handler) {
super(handler,
- "editCruise",
"cruise",
_("tutti.action.editSelectedCruise"),
_("tutti.action.editSelectedCruise.tip"),
@@ -56,7 +51,7 @@
}
@Override
- protected void doAction(ActionEvent e) {
+ protected void doAction() {
Preconditions.checkState(getContext().isCruiseFilled());
if (log.isInfoEnabled()) {
log.info("Edit cruise: " + getContext().getCruiseId());
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseCatchesAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -26,8 +26,6 @@
import com.google.common.base.Preconditions;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -38,21 +36,18 @@
*/
public class EditSelectedCruiseCatchesAction extends AbstractChangeScreenAction {
- private static final long serialVersionUID = 1L;
-
public EditSelectedCruiseCatchesAction(MainUIHandler handler) {
super(handler,
- "editCatches",
"edit",
_("tutti.action.editCatches"),
_("tutti.action.editCatches.tip"),
true
);
- setMnemonic('C');
+// setMnemonic('C');
}
@Override
- protected void doAction(ActionEvent e) {
+ protected void doAction() {
Preconditions.checkState(getContext().isCruiseFilled());
getContext().setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_EDIT);
getContext().setScreen(null);
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -28,8 +28,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -40,14 +38,11 @@
*/
public class EditSelectedProgramAction extends AbstractChangeScreenAction {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log = LogFactory.getLog(EditSelectedProgramAction.class);
public EditSelectedProgramAction(MainUIHandler handler) {
super(handler,
- "editProgram",
"program",
_("tutti.action.editSelectedProgram"),
_("tutti.action.editSelectedProgram.tip"),
@@ -56,7 +51,7 @@
}
@Override
- protected void doAction(ActionEvent e) {
+ protected void doAction() {
Preconditions.checkState(getContext().getProgramId() != null);
if (log.isInfoEnabled()) {
log.info("Edit program: " + getContext().getProgramId());
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProtocolAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -28,8 +28,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -40,24 +38,21 @@
*/
public class EditSelectedProtocolAction extends AbstractChangeScreenAction {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log = LogFactory.getLog(EditSelectedProtocolAction.class);
public EditSelectedProtocolAction(MainUIHandler handler) {
super(handler,
- "editProtocol",
"protocol",
_("tutti.action.editSelectedProtocol"),
_("tutti.action.editSelectedProtocol.tip"),
true
);
- setMnemonic('P');
+// setMnemonic('P');
}
@Override
- protected void doAction(ActionEvent e) {
+ protected void doAction() {
Preconditions.checkState(getContext().isProtocolFilled());
if (log.isInfoEnabled()) {
log.info("Edit protocol: " + getContext().getProtocolId());
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ImportTemporaryReferentialAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ImportTemporaryReferentialAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ImportTemporaryReferentialAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -28,7 +28,6 @@
import org.apache.commons.logging.LogFactory;
import javax.swing.SwingUtilities;
-import java.awt.event.ActionEvent;
import static org.nuiton.i18n.I18n._;
@@ -40,15 +39,12 @@
*/
public class ImportTemporaryReferentialAction extends AbstractChangeScreenAction {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(ImportTemporaryReferentialAction.class);
public ImportTemporaryReferentialAction(MainUIHandler handler) {
super(handler,
- "importTemporaryReferential",
"temporary-referential-import",
_("tutti.action.importTemporaryReferential"),
_("tutti.action.importTemporaryReferential.tip"),
@@ -57,7 +53,7 @@
}
@Override
- protected void doAction(ActionEvent e) {
+ protected void doAction() {
getContext().setScreen(getNextScreen());
SwingUtilities.invokeLater(new Runnable() {
@Override
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,7 +22,7 @@
#L%
-->
<JFrame id='mainFrame' onWindowClosing='getHandler().closeTutti()'
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<TuttiUIContext, MainUIHandler>'
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<TuttiUIContext, MainUIHandler>'
width='800' height='600'>
<import>
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -38,7 +38,10 @@
import fr.ifremer.tutti.ui.swing.content.program.EditProgramUI;
import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI;
import fr.ifremer.tutti.ui.swing.content.referential.ManageTemporaryReferentialUI;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.action.TuttiActionUI;
+import fr.ifremer.tutti.ui.swing.util.action.TuttiUIAction;
import jaxx.runtime.swing.AboutPanel;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
@@ -75,7 +78,7 @@
protected MainUIHandler(TuttiUIContext context, MainUI ui) {
super(context, ui);
- this.persistenceService = context.getService(PersistenceService.class);
+ this.persistenceService = context.getPersistenceService();
context.setMainUI(ui);
context.setActionUI(new TuttiActionUI(ui, context));
}
@@ -135,7 +138,7 @@
} else {
// open tutti db
- OpenDbAction openDbAction = createAction(OpenDbAction.class);
+ TuttiUIAction<OpenDbAction> openDbAction = createAction(OpenDbAction.class);
openDbAction.actionPerformed(null);
}
}
@@ -419,10 +422,10 @@
}
} catch (Exception e) {
- AbstractTuttiAction mainAction = AbstractTuttiAction.getMainAction();
- if (mainAction != null) {
- mainAction.setFailed(true);
- }
+// AbstractTuttiAction mainAction = AbstractTuttiAction.getMainAction();
+// if (mainAction != null) {
+// mainAction.setFailed(true);
+// }
TuttiUIContext.getErrorHelper().showErrorDialog(
"Could not change to screen " + screen, e);
@@ -446,61 +449,56 @@
if (context.isDbLoaded()) {
- String programId = context.getProgramId();
+ if (context.isProgramFilled()) {
- if (programId == null) {
-
- // no program selected (so neither cruise)
-
- title = _("tutti.title.noSelectedProgram");
-
- } else {
-
// selected program
- Program program = persistenceService.getProgram(programId);
+ Program program = getDataContext().getProgram();
title = _("tutti.title.selectedProgram", program.getName()) + " / ";
- String cruiseId = context.getCruiseId();
+ if (context.isCruiseFilled()) {
- if (cruiseId == null) {
-
- // no selected cruise
-
- title += _("tutti.title.noSelectedCruise");
-
- } else {
-
// selected cruise
Cruise cruise;
- cruise = persistenceService.getCruise(cruiseId);
+ cruise = getDataContext().getCruise();
if (cruise != null) {
- title += _("tutti.title.selectedCruise", cruise.getName());
+ title += _("tutti.title.selectedCruise", cruise.getName());
}
+ } else {
+
+ // no selected cruise
+
+ title += _("tutti.title.noSelectedCruise");
}
title += " / ";
- String protocolId = context.getProtocolId();
+ if (context.isProtocolFilled()) {
- if (protocolId == null) {
+ // selected protocol
+ TuttiProtocol protocol = getDataContext().getProtocol();
+ title += _("tutti.title.selectedProtocol", protocol.getName());
+ } else {
+
// no selected protocol
title += _("tutti.title.noSelectedProtocol");
+ }
- } else {
+ } else {
- // selected protocol
- TuttiProtocol protocol = persistenceService.getProtocol(protocolId);
+ // no program selected (so neither cruise)
- title += _("tutti.title.selectedProtocol", protocol.getName());
- }
+ title = _("tutti.title.noSelectedProgram");
}
} else {
+
+ // no db loaded
+
title = _("tutti.title.nodb");
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ManageDbAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ManageDbAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ManageDbAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -27,8 +27,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -39,24 +37,21 @@
*/
public class ManageDbAction extends AbstractChangeScreenAction {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log = LogFactory.getLog(ManageDbAction.class);
public ManageDbAction(MainUIHandler handler) {
super(handler,
- "mnanageDb",
"manage-db",
_("tutti.action.manageDb"),
_("tutti.action.manageDb.tip"),
true
);
- setMnemonic('P');
+// setMnemonic('P');
}
@Override
- protected void doAction(ActionEvent e) {
+ protected void doAction() {
if (log.isDebugEnabled()) {
log.debug("open manage db screen");
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,6 +25,7 @@
*/
import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
+import fr.ifremer.tutti.ui.swing.util.TuttiExceptionHandler;
import jaxx.runtime.SwingUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -77,7 +78,7 @@
MainUIHandler handler = new MainUIHandler(context);
// try to update jre - i18n - application and exit if so
- new UpdateApplicationAction(handler).doAction(null);
+ new UpdateApplicationAction(handler).performAndReleaseAction();
// try to update db
// new UpdateReferentialAction(handler).doAction(null);
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/SelectCruiseAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -24,8 +24,6 @@
* #L%
*/
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -36,21 +34,18 @@
*/
public class SelectCruiseAction extends AbstractChangeScreenAction {
- private static final long serialVersionUID = 1L;
-
public SelectCruiseAction(MainUIHandler handler) {
super(handler,
- "selectCruise",
"home",
_("tutti.action.selectCruise"),
_("tutti.action.selectCruise.tip"),
true
);
- setMnemonic('S');
+// setMnemonic('S');
}
@Override
- protected void doAction(ActionEvent e) {
+ protected void doAction() {
// Preconditions.checkNotNull(getContext().isCruiseFilled());
getContext().setScreen(getNextScreen());
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -306,7 +306,7 @@
if (log.isInfoEnabled()) {
log.info(String.format("A database update was downloaded (oldVersion: %s, newVersion: %s), will launch a referential synchronize operation ", info.oldVersion, info.newVersion));
}
- TuttiReferentialSynchronizeService service = context.getService(TuttiReferentialSynchronizeService.class);
+ TuttiReferentialSynchronizeService service = context.getTuttiReferentialSynchronizeService();
ReferentialSynchronizeResult result = new ReferentialSynchronizeResult();
File dbDirectory = getDbDirectory(info);
@@ -328,7 +328,7 @@
if (log.isInfoEnabled()) {
log.info("Reset all caches.");
}
- PersistenceService persistence = context.getService(PersistenceService.class);
+ PersistenceService persistence = context.getPersistenceService();
persistence.clearAllCaches();
// replace the version.appup file content
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDataContext.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDataContext.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDataContext.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -0,0 +1,252 @@
+package fr.ifremer.tutti.ui.swing;
+
+import com.google.common.base.Preconditions;
+import fr.ifremer.tutti.persistence.entities.data.Cruise;
+import fr.ifremer.tutti.persistence.entities.data.Program;
+import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.persistence.entities.referential.Gear;
+import fr.ifremer.tutti.persistence.entities.referential.Person;
+import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.persistence.entities.referential.Vessel;
+import fr.ifremer.tutti.service.PersistenceService;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.io.Closeable;
+import java.util.List;
+
+/**
+ * Data context of ui.
+ * <p/>
+ * All shared data must be there to avoid reloading some stuff.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0.2
+ */
+public class TuttiDataContext implements Closeable {
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(TuttiDataContext.class);
+
+ protected Program program;
+
+ protected Cruise cruise;
+
+ protected TuttiProtocol protocol;
+
+ protected List<Caracteristic> caracteristics;
+
+ protected List<Person> persons;
+
+ protected List<Species> species;
+
+ protected List<Species> referentSpecies;
+
+ protected List<Vessel> fishingVessels;
+
+ protected List<Vessel> scientificVessels;
+
+ protected List<Gear> fishingGears;
+
+ protected List<Gear> scientificGears;
+
+ protected PersistenceService service;
+
+ protected final TuttiUIContext uiContext;
+
+ public TuttiDataContext(TuttiUIContext uiContext) {
+ this.uiContext = uiContext;
+ this.uiContext.addPropertyChangeListener(TuttiUIContext.PROPERTY_PROGRAM_ID, new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ program = null;
+ }
+ });
+ this.uiContext.addPropertyChangeListener(TuttiUIContext.PROPERTY_CRUISE_ID, new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ cruise = null;
+ }
+ });
+ this.uiContext.addPropertyChangeListener(TuttiUIContext.PROPERTY_PROTOCOL_ID, new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ protocol = null;
+ }
+ });
+ }
+
+ public Program getProgram() {
+ checkOpened();
+ if (program == null) {
+ if (uiContext.isProgramFilled()) {
+ String id = uiContext.getProgramId();
+ if (log.isInfoEnabled()) {
+ log.info("Loading program: " + id);
+ }
+ program = service.getProgram(id);
+ }
+ }
+ return program;
+ }
+
+ public Cruise getCruise() {
+ checkOpened();
+ if (cruise == null) {
+ if (uiContext.isCruiseFilled()) {
+ String id = uiContext.getCruiseId();
+ if (log.isInfoEnabled()) {
+ log.info("Loading cruise: " + id);
+ }
+ cruise = service.getCruise(id);
+ }
+ }
+ return cruise;
+ }
+
+ public TuttiProtocol getProtocol() {
+ checkOpened();
+ if (protocol == null) {
+ if (uiContext.isProtocolFilled()) {
+ String id = uiContext.getProtocolId();
+ if (log.isInfoEnabled()) {
+ log.info("Loading cruise: " + id);
+ }
+ protocol = service.getProtocol(id);
+ }
+ }
+ return protocol;
+ }
+
+ public List<Caracteristic> getCaracteristics() {
+ if (caracteristics == null) {
+ if (log.isInfoEnabled()) {
+ log.info("Loading allCaracteristic");
+ }
+ caracteristics = service.getAllCaracteristic();
+ }
+ return caracteristics;
+ }
+
+ public List<Species> getSpecies() {
+ if (species == null) {
+ if (log.isInfoEnabled()) {
+ log.info("Loading allSpecies");
+ }
+ species = service.getAllSpecies();
+ }
+ return species;
+ }
+
+ public List<Species> getReferentSpecies() {
+ if (referentSpecies == null) {
+ if (log.isInfoEnabled()) {
+ log.info("Loading allReferentSpecies");
+ }
+ referentSpecies = service.getAllReferentSpecies();
+ }
+ return referentSpecies;
+ }
+
+ public List<Person> getPersons() {
+ checkOpened();
+ if (persons == null) {
+ if (log.isInfoEnabled()) {
+ log.info("Loading allPerson");
+ }
+ persons = service.getAllPerson();
+ }
+ return persons;
+ }
+
+ public List<Vessel> getFishingVessels() {
+ checkOpened();
+ if (fishingVessels == null) {
+ if (log.isInfoEnabled()) {
+ log.info("Loading allfishingVessel");
+ }
+ fishingVessels = service.getAllFishingVessel();
+ }
+ return fishingVessels;
+ }
+
+ public List<Vessel> getScientificVessels() {
+ checkOpened();
+ if (scientificVessels == null) {
+ if (log.isInfoEnabled()) {
+ log.info("Loading allScientificVessel");
+ }
+ scientificVessels = service.getAllScientificVessel();
+ }
+ return scientificVessels;
+ }
+
+ public List<Gear> getFishingGears() {
+ checkOpened();
+ if (fishingGears == null) {
+ if (log.isInfoEnabled()) {
+ log.info("Loading allFishingGear");
+ }
+ fishingGears = service.getAllFishingGear();
+ }
+ return fishingGears;
+ }
+
+ public List<Gear> getScientificGears() {
+ checkOpened();
+ if (scientificGears == null) {
+ if (log.isInfoEnabled()) {
+ log.info("Loading allScientificGear");
+ }
+ scientificGears = service.getAllScientificGear();
+ }
+ return scientificGears;
+ }
+
+ public void open(PersistenceService persistenceService) {
+ close();
+ this.service = persistenceService;
+ }
+
+ @Override
+ public void close() {
+ service = null;
+ program = null;
+ cruise = null;
+ program = null;
+ resetVessels();
+ resetGears();
+ resetPersons();
+ resetSpecies();
+ }
+
+ public void resetGears() {
+ fishingGears = null;
+ scientificGears = null;
+ }
+
+ public void resetVessels() {
+ fishingVessels = null;
+ scientificVessels = null;
+ }
+
+ public void resetPersons() {
+ persons = null;
+ }
+
+ public void resetSpecies() {
+ species = null;
+ referentSpecies = null;
+ }
+
+ public void resetCaracteristics() {
+ caracteristics = null;
+ }
+
+ protected void checkOpened() {
+ Preconditions.checkState(service != null, "No persistence service assigned!");
+ }
+}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDataContext.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiErrorHelper.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiErrorHelper.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiErrorHelper.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -1,90 +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 fr.ifremer.tutti.service.TuttiBusinessException;
-import org.jdesktop.swingx.JXErrorPane;
-import org.jdesktop.swingx.error.ErrorInfo;
-import org.jdesktop.swingx.error.ErrorReporter;
-
-import javax.swing.JOptionPane;
-
-import static org.nuiton.i18n.I18n._;
-
-/**
- * TODO
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0
- */
-public class TuttiErrorHelper implements ErrorReporter {
-
- protected TuttiUIContext context;
-
- public TuttiErrorHelper(TuttiUIContext context) {
- this.context = context;
- }
-
- /**
- * Display a user friendly error frame.
- *
- * @param message message for user
- * @param cause exception cause
- */
- public void showErrorDialog(String message, Throwable cause) {
-
- if (cause instanceof TuttiBusinessException) {
- JOptionPane.showMessageDialog(context.getMainUI(), cause.getMessage(),
- _("tutti.ui.common.error"),
- JOptionPane.ERROR_MESSAGE);
- } else {
-
- JXErrorPane pane = new JXErrorPane();
- ErrorInfo info = new ErrorInfo(_("tutti.common.error"),
- _("tutti.error.errorpane.htmlmessage", message), null, null,
- cause, null, null);
- pane.setErrorInfo(info);
- pane.setErrorReporter(this);
- JXErrorPane.showDialog(context.getMainUI(), pane);
- }
-
- }
-
- /**
- * Display a user friendly error frame.
- *
- * @param message message for user
- */
- public void showErrorDialog(String message) {
- showErrorDialog(message, null);
- }
-
- @Override
- public void reportError(ErrorInfo errorInfo) throws NullPointerException {
-
- showErrorDialog(errorInfo.getBasicErrorMessage(), errorInfo.getErrorException());
- }
-
-}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiExceptionHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiExceptionHandler.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiExceptionHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -1,132 +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 fr.ifremer.tutti.service.TuttiTechnicalException;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-/**
- * Tutti global exception handler.
- * <p/>
- * Catch all application uncaught and display it in a custom JoptionPane
- * or JXErrorPane.
- * <p/>
- * See http://stackoverflow.com/a/4448569/1165234 for details.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.0
- */
-public class TuttiExceptionHandler implements Thread.UncaughtExceptionHandler {
-
- private static final Log log =
- LogFactory.getLog(TuttiExceptionHandler.class);
-
- public static class TuttiActionException extends RuntimeException {
-
- private static final long serialVersionUID = 1L;
-
- private final AbstractTuttiAction action;
-
- public TuttiActionException(AbstractTuttiAction action,
- Throwable cause) {
- super(cause);
- this.action = action;
- }
-
- public AbstractTuttiAction getAction() {
- return action;
- }
- }
-
- @Override
- public void uncaughtException(Thread t, Throwable ex) {
- handleException(t.getName(), ex);
- }
-
- public void handle(Throwable thrown) {
- // for EDT exceptions
- handleException(Thread.currentThread().getName(), thrown);
- }
-
- protected void handleException(String tname, Throwable ex) {
- if (log.isErrorEnabled()) {
- log.error("Global application exception [" + tname + "]", ex);
- }
-
- Throwable cause = ex;
-
- if (cause instanceof NullPointerException) {
-
- // See http://forge.codelutin.com/issues/2055
- if (ex.getStackTrace().length > 0 &&
- ex.getStackTrace()[0].getClassName().contains("swing.")) {
- if (log.isWarnEnabled()) {
- log.warn("AWT bad error (See http://forge.codelutin.com/issues/2055)", ex);
- }
- return;
- }
- }
-
- if (cause instanceof IndexOutOfBoundsException) {
- // See http://forge.codelutin.com/issues/2055
- if (ex.getStackTrace().length > 0 &&
- "convertRowIndexToModel".equals(ex.getStackTrace()[0].getMethodName())) {
- if (log.isWarnEnabled()) {
- log.warn("AWT bad error (See http://forge.codelutin.com/issues/2055)", ex);
- }
- return;
- }
- }
- if (cause instanceof TuttiTechnicalException) {
- cause = cause.getCause();
- }
-
- boolean backToScreen = false;
-
- AbstractTuttiAction action = null;
- if (cause instanceof TuttiActionException) {
-
- TuttiActionException actionException = (TuttiActionException) cause;
- cause = cause.getCause();
-
- // close action ui
-
- action = actionException.getAction();
-
- if (action instanceof AbstractChangeScreenAction) {
- backToScreen = true;
- }
- action.getContext().getActionUI().getModel().setAction(null);
- }
-
- TuttiUIContext.getErrorHelper().showErrorDialog(cause.getMessage(), ex);
-
- if (backToScreen) {
- action.getContext().setScreen(TuttiScreen.SELECT_CRUISE);
- }
- }
-
-}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUI.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUI.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUI.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -1,135 +0,0 @@
-package fr.ifremer.tutti.ui.swing;
-
-/*
- * #%L
- * Tutti :: UI
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import jaxx.runtime.JAXXObject;
-
-import javax.swing.UIManager;
-import java.awt.Font;
-
-/**
- * Contract to place on each generated jaxx ui.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.1
- */
-public interface TuttiUI<M, H extends AbstractTuttiUIHandler<M, ?>> extends JAXXObject {
-
- M getModel();
-
- H getHandler();
-
- /**
- * Pattern to use for short numeric values in editors with max 1 digits.
- *
- * @since 0.2
- */
- public static final String INT_1_DIGITS_PATTERN = "\\d{0,1}";
-
- /**
- * Pattern to use for short numeric values in editors with max 2 digits.
- *
- * @since 0.1
- */
- public static final String INT_2_DIGITS_PATTERN = "\\d{0,2}";
-
- /**
- * Pattern to use for signed numeric values in editors with max 2 digits.
- *
- * @since 1.0
- */
- public static final String SIGNED_INT_2_DIGITS_PATTERN = "-?\\d{0,2}";
-
- /**
- * Pattern to use for short numeric values in editors with max 3 digits.
- *
- * @since 0.1
- */
- public static final String INT_3_DIGITS_PATTERN = "\\d{0,3}";
-
- /**
- * Pattern to use for singed numeric values in editors with max 3 digits.
- *
- * @since 1.0
- */
- public static final String SIGNED_INT_3_DIGITS_PATTERN = "-?\\d{0,3}";
-
- /**
- * Pattern to use for short numeric values in editors with max 4 digits.
- *
- * @since 0.2
- */
- public static final String INT_4_DIGITS_PATTERN = "\\d{0,4}";
-
- /**
- * Pattern to use for integer numeric values in editors with max 6 digits.
- *
- * @since 0.1
- */
- public static final String INT_6_DIGITS_PATTERN = "\\d{0,6}";
-
- /**
- * Pattern to use for integer numeric values in editors with max 7 digits.
- *
- * @since 0.1
- */
- public static final String INT_7_DIGITS_PATTERN = "\\d{0,7}";
-
- /**
- * Pattern to use for decimal numeric values with 1 decimal digits in
- * editors.
- *
- * @since 0.1
- */
- public static final String DECIMAL1_PATTERN = "\\d{0,6}|\\d{1,6}\\.\\d{0,1}";
-
- /**
- * Pattern to use for decimal numeric values with 2 decimal digits in
- * editors.
- *
- * @since 0.1
- */
- public static final String DECIMAL2_PATTERN = "\\d{0,6}|\\d{1,6}\\.\\d{0,2}";
-
- /**
- * Pattern to use for decimal numeric values with 3 decimal digits in
- * editors.
- *
- * @since 0.1
- */
- public static final String DECIMAL3_PATTERN = "\\d{0,6}|\\d{1,6}\\.\\d{0,3}";
-
- /**
- * Pattern to use for decimal numeric values with 2 digits + 3 decimal digits in
- * editors.
- *
- * @since 1.0
- */
- public static final String DECIMAL2_3_PATTERN = "\\d{0,2}|\\d{1,2}\\.\\d{0,3}";
-
- public static final Font TEXTFIELD_NORMAL_FONT = UIManager.getDefaults().getFont("TextField.font");
-
- public static final Font TEXTFIELD_COMPUTED_FONT = UIManager.getDefaults().getFont("TextField.font").deriveFont(Font.ITALIC);
-}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -31,11 +31,15 @@
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.service.ClosedPersistenceService;
+import fr.ifremer.tutti.service.DecoratorService;
import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.service.TuttiService;
import fr.ifremer.tutti.service.TuttiServiceContext;
import fr.ifremer.tutti.service.TuttiTechnicalException;
+import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
+import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
+import fr.ifremer.tutti.service.referential.TuttiReferentialSynchronizeService;
import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
+import fr.ifremer.tutti.ui.swing.util.TuttiErrorHelper;
import fr.ifremer.tutti.ui.swing.util.UIMessageNotifier;
import fr.ifremer.tutti.ui.swing.util.action.TuttiActionUI;
import org.apache.commons.io.FileUtils;
@@ -161,6 +165,13 @@
protected String protocolId;
/**
+ * Shared data context.
+ *
+ * @since 1.0.2
+ */
+ protected TuttiDataContext dataContext;
+
+ /**
* Current screen displayed in ui.
*
* @since 0.1
@@ -221,6 +232,7 @@
this.serviceContext = new TuttiServiceContext(resourceLoader, config.getServiceConfig());
this.swingSession = new SwingSession(getConfig().getUIConfigFile(), false);
this.errorHelper = new TuttiErrorHelper(this);
+ this.dataContext = new TuttiDataContext(this);
UIMessageNotifier logMessageNotifier = new UIMessageNotifier() {
@Override
@@ -234,13 +246,41 @@
addMessageNotifier(logMessageNotifier);
}
- public <S extends TuttiService> S getService(Class<S> serviceType) {
- if (PersistenceService.class.equals(serviceType) && !useRealPersistenceService()) {
- serviceType = (Class<S>) ClosedPersistenceService.class;
+ public PersistenceService getPersistenceService() {
+
+ PersistenceService service;
+
+ if (useRealPersistenceService()) {
+ service = dataContext.service;
+ if (service == null) {
+
+ // use real service
+ service = serviceContext.getService(PersistenceService.class);
+
+ dataContext.open(service);
+ }
+ } else {
+ service = serviceContext.getService(ClosedPersistenceService.class);
}
- return serviceContext.getService(serviceType);
+ return service;
}
+ public DecoratorService getDecoratorService() {
+ return serviceContext.getService(DecoratorService.class);
+ }
+
+ public TuttiReferentialSynchronizeService getTuttiReferentialSynchronizeService() {
+ return serviceContext.getService(TuttiReferentialSynchronizeService.class);
+ }
+
+ public TuttiProtocolImportExportService getTuttiProtocolImportExportService() {
+ return serviceContext.getService(TuttiProtocolImportExportService.class);
+ }
+
+ public TuttiReferentialImportExportService getTuttiReferentialImportExportService() {
+ return serviceContext.getService(TuttiReferentialImportExportService.class);
+ }
+
public boolean useRealPersistenceService() {
return isDbExist() && isDbLoaded();
}
@@ -252,8 +292,9 @@
} catch (IOException e) {
throw new TuttiTechnicalException("Could not close services", e);
}
+ dataContext.close();
- return getService(PersistenceService.class);
+ return getPersistenceService();
}
public TuttiApplicationConfig getConfig() {
@@ -359,6 +400,10 @@
firePropertyChange(PROPERTY_SCREEN, oldValue, screen);
}
+ public TuttiDataContext getDataContext() {
+ return dataContext;
+ }
+
public void init() {
try {
@@ -500,8 +545,7 @@
if (actionUI != null) {
// close action ui
- actionUI.getModel().setProgressionModel(null);
- actionUI.getModel().setAction(null);
+ actionUI.getModel().clear();
}
setActionUI(null);
}
@@ -558,7 +602,7 @@
public void checkDbContext() {
//check if programId is sane
- PersistenceService service = getService(PersistenceService.class);
+ PersistenceService service = getPersistenceService();
if (isProtocolFilled()) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateApplicationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateApplicationAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateApplicationAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -26,11 +26,11 @@
import fr.ifremer.tutti.persistence.ProgressionModel;
import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.ApplicationUpdater;
-import java.awt.event.ActionEvent;
import java.io.File;
import static org.nuiton.i18n.I18n._;
@@ -43,15 +43,12 @@
*/
public class UpdateApplicationAction extends AbstractTuttiAction<TuttiUIContext, MainUI, MainUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(UpdateApplicationAction.class);
public UpdateApplicationAction(MainUIHandler handler) {
super(handler,
- "updateApplication",
"update-application",
_("tutti.action.updateApplication"),
_("tutti.action.updateApplication.tip"),
@@ -59,7 +56,7 @@
}
@Override
- protected void doAction(ActionEvent event) {
+ protected void doAction() {
TuttiApplicationConfig config = getContext().getConfig();
@@ -95,7 +92,7 @@
dest,
false,
callback);
- getContext().getActionUI().getModel().setProgressionModel(null);
+ getContext().getActionUI().getModel().clear();
}
}
}
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateReferentialAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateReferentialAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateReferentialAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -30,7 +30,6 @@
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.ApplicationUpdater;
-import java.awt.event.ActionEvent;
import java.io.File;
import static org.nuiton.i18n.I18n._;
@@ -43,15 +42,12 @@
*/
public class UpdateReferentialAction extends AbstractMainUITuttiAction {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(UpdateReferentialAction.class);
public UpdateReferentialAction(MainUIHandler handler) {
super(handler,
- "updateReferential",
"update-referential",
_("tutti.action.updateReferential"),
_("tutti.action.updateReferential.tip"),
@@ -59,7 +55,7 @@
}
@Override
- protected void doAction(ActionEvent event) {
+ protected void doAction() {
TuttiApplicationConfig config = getContext().getConfig();
File current = config.getDataDirectory();
@@ -94,10 +90,4 @@
sendMessage("Aucune mise à jour de base détectée.");
}
}
-
- @Override
- protected void releaseAction(ActionEvent event) {
- getContext().getActionUI().getModel().setProgressionModel(null);
- super.releaseAction(event);
- }
}
\ No newline at end of file
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/ValidateSelectedCruiseCatchesAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -26,8 +26,6 @@
import com.google.common.base.Preconditions;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -38,11 +36,8 @@
*/
public class ValidateSelectedCruiseCatchesAction extends AbstractChangeScreenAction {
- private static final long serialVersionUID = 1L;
-
public ValidateSelectedCruiseCatchesAction(MainUIHandler handler) {
super(handler,
- "validateCatches",
"validate",
_("tutti.action.validateCatches"),
_("tutti.action.validateCatches.tip"),
@@ -51,7 +46,7 @@
}
@Override
- protected void doAction(ActionEvent e) {
+ protected void doAction() {
Preconditions.checkState(getContext().isCruiseFilled());
getContext().setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_VALIDATE);
getContext().setScreen(null);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -24,11 +24,9 @@
* #L%
*/
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -39,11 +37,8 @@
*/
public class CancelEditCruiseAction extends AbstractTuttiAction<EditCruiseUIModel, EditCruiseUI, EditCruiseUIHandler> {
- private static final long serialVersionUID = 1L;
-
public CancelEditCruiseAction(EditCruiseUIHandler handler) {
super(handler,
- "cancelEditCruise",
"cancel",
_("tutti.action.cancel.editCruise"),
_("tutti.action.cancel.editCruise.tip"),
@@ -52,7 +47,7 @@
}
@Override
- protected void doAction(ActionEvent event) {
+ protected void doAction() {
getContext().setScreen(TuttiScreen.SELECT_CRUISE);
}
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,7 +22,7 @@
#L%
-->
<JPanel id='homePanel' layout='{new BorderLayout()}'
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<EditCruiseUIModel, EditCruiseUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<EditCruiseUIModel, EditCruiseUIHandler>'>
<import>
fr.ifremer.tutti.persistence.entities.data.Program
@@ -30,7 +30,7 @@
fr.ifremer.tutti.persistence.entities.referential.Gear
fr.ifremer.tutti.persistence.entities.referential.Person
fr.ifremer.tutti.persistence.entities.referential.Vessel
- fr.ifremer.tutti.ui.swing.TuttiUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
fr.ifremer.tutti.ui.swing.TuttiUIContext
jaxx.runtime.swing.editor.NumberEditor
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -32,11 +32,9 @@
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
-import fr.ifremer.tutti.ui.swing.TuttiUI;
-import jaxx.runtime.JAXXUtil;
-import jaxx.runtime.context.JAXXContextEntryDef;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -69,7 +67,7 @@
public EditCruiseUIHandler(TuttiUI parentUi, EditCruiseUI ui) {
super(parentUi.getHandler().getContext(), ui);
- persistenceService = context.getService(PersistenceService.class);
+ persistenceService = context.getPersistenceService();
}
@Override
@@ -79,26 +77,10 @@
// get vessels
- List<Vessel> fishingVessels = persistenceService.getAllFishingVessel();
- FISHING_VESSELS_CONTEXT_ENTRY.setContextValue(ui, fishingVessels);
+ if (!context.isCruiseFilled()) {
- List<Vessel> scientificVessels = persistenceService.getAllScientificVessel();
- SCIENTIFIC_VESSELS_CONTEXT_ENTRY.setContextValue(ui, scientificVessels);
-
- // get gears
-
- List<Gear> scientificGears = persistenceService.getAllScientificGear();
- SCIENTIFIC_GEARS_CONTEXT_ENTRY.setContextValue(ui, scientificGears);
-
- List<Gear> fishingGears = persistenceService.getAllFishingGear();
- FISHING_GEARS_CONTEXT_ENTRY.setContextValue(ui, fishingGears);
-
- String cruiseId = context.getCruiseId();
- if (cruiseId == null) {
-
// create new cruise
- Program program =
- persistenceService.getProgram(context.getProgramId());
+ Program program = getDataContext().getProgram();
model.setProgram(program);
model.setMultirigNumber(1);
@@ -108,26 +90,17 @@
} else {
// load existing program
- Cruise cruise =
- persistenceService.getCruise(cruiseId);
+ Cruise cruise = getDataContext().getCruise();
model.fromBean(cruise);
if (log.isDebugEnabled()) {
- log.debug("Will edit cruise: " + cruiseId);
+ log.debug("Will edit cruise: " + cruise.getId());
}
}
listModelIsModify(model);
ui.setContextValue(model);
}
- JAXXContextEntryDef<List<Vessel>> SCIENTIFIC_VESSELS_CONTEXT_ENTRY = JAXXUtil.newListContextEntryDef("scientificVessel");
-
- JAXXContextEntryDef<List<Vessel>> FISHING_VESSELS_CONTEXT_ENTRY = JAXXUtil.newListContextEntryDef("fishingVessel");
-
- JAXXContextEntryDef<List<Gear>> SCIENTIFIC_GEARS_CONTEXT_ENTRY = JAXXUtil.newListContextEntryDef("scientificGear");
-
- JAXXContextEntryDef<List<Gear>> FISHING_GEARS_CONTEXT_ENTRY = JAXXUtil.newListContextEntryDef("fishingGear");
-
@Override
public void afterInitUI() {
@@ -136,19 +109,19 @@
List<Person> users = persistenceService.getAllPerson();
EditCruiseUIModel model = getModel();
-
- final List<Vessel> scientificVesselList = SCIENTIFIC_VESSELS_CONTEXT_ENTRY.getContextValue(ui);
- final List<Vessel> fishingVesselList = FISHING_VESSELS_CONTEXT_ENTRY.getContextValue(ui);
+
+ final List<Vessel> scientificVesselList = getDataContext().getScientificVessels();
+ final List<Vessel> fishingVesselList = getDataContext().getFishingVessels();
final List<Vessel> allVesselList = Lists.newArrayList();
allVesselList.addAll(scientificVesselList);
allVesselList.addAll(fishingVesselList);
-
- final List<Gear> scientificGearList = SCIENTIFIC_GEARS_CONTEXT_ENTRY.getContextValue(ui);
- final List<Gear> fishingGearList = FISHING_GEARS_CONTEXT_ENTRY.getContextValue(ui);
+
+ final List<Gear> scientificGearList = getDataContext().getScientificGears();
+ final List<Gear> fishingGearList = getDataContext().getFishingGears();
final List<Gear> allGearList = Lists.newArrayList();
allGearList.addAll(scientificGearList);
allGearList.addAll(fishingGearList);
-
+
// Change vessel list and gear list when vessel type changes
model.addPropertyChangeListener(EditCruiseUIModel.PROPERTY_VESSEL_TYPE, new PropertyChangeListener() {
@Override
@@ -158,7 +131,7 @@
Predicate<Vessel> vesselPredicate = null;
Predicate<Gear> gearPredicate = null;
-
+
switch (vesselType) {
case FISHING:
vesselPredicate = new Predicate<Vessel>() {
@@ -174,7 +147,7 @@
}
};
break;
-
+
case SCIENTIFIC:
vesselPredicate = new Predicate<Vessel>() {
@@ -189,11 +162,11 @@
}
};
break;
-
+
}
ui.getVesselList().getHandler().clearFilters();
ui.getGearList().getHandler().clearFilters();
-
+
if (vesselPredicate != null) {
ui.getVesselList().getHandler().addFilter(vesselPredicate);
}
@@ -212,7 +185,7 @@
persistenceService.getAllCountry(),
model.getCountry());
-
+
initBeanList(ui.getVesselList(),
allVesselList,
model.getVessel());
@@ -234,7 +207,7 @@
// if new fishingOperation can already cancel his creation
model.setModify(model.isCreate());
-
+
model.setVesselType(VesselTypeEnum.SCIENTIFIC);
registerValidators(validator);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -30,7 +30,7 @@
import fr.ifremer.tutti.persistence.entities.referential.Gear;
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import org.apache.commons.lang3.StringUtils;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -27,12 +27,9 @@
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
-import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -43,11 +40,8 @@
*/
public class SaveCruiseAction extends AbstractTuttiAction<EditCruiseUIModel, EditCruiseUI, EditCruiseUIHandler> {
- private static final long serialVersionUID = 1L;
-
public SaveCruiseAction(EditCruiseUIHandler handler) {
super(handler,
- "saveCruise",
"save",
_("tutti.action.saveCruise"),
_("tutti.action.saveCruise.tip"),
@@ -58,15 +52,13 @@
/**
* If the event source is a TuttiScreen, then the screen changes to the source.
* Otherwise, the screen changes to the home.
- *
- * @param event
*/
@Override
- protected void doAction(ActionEvent event) {
+ protected void doAction() {
TuttiUIContext context = getContext();
EditCruiseUIModel model = getModel();
PersistenceService persistenceService =
- getService(PersistenceService.class);
+ getContext().getPersistenceService();
Cruise bean = model.toBean();
@@ -81,13 +73,14 @@
context.setProgramId(saved.getProgram().getId());
context.setCruiseId(saved.getId());
- TuttiScreen nextScreen;
- if (event.getSource().getClass().isAssignableFrom(TuttiScreen.class)) {
- nextScreen = (TuttiScreen) event.getSource();
- } else {
- nextScreen = TuttiScreen.SELECT_CRUISE;
- }
- context.setScreen(nextScreen);
+ //TODO-TC Make this works again but in another manner
+// TuttiScreen nextScreen;
+// if (event.getSource().getClass().isAssignableFrom(TuttiScreen.class)) {
+// nextScreen = (TuttiScreen) event.getSource();
+// } else {
+// nextScreen = TuttiScreen.SELECT_CRUISE;
+// }
+// context.setScreen(nextScreen);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/CloseDbAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/CloseDbAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/CloseDbAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -31,8 +31,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -43,14 +41,11 @@
*/
public class CloseDbAction extends AbstractMainUITuttiAction {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log = LogFactory.getLog(CloseDbAction.class);
public CloseDbAction(MainUIHandler handler) {
super(handler,
- "closeDb",
"close-db",
_("tutti.action.closeDb"),
_("tutti.action.closeDb.tip"),
@@ -58,7 +53,7 @@
}
@Override
- protected void doAction(ActionEvent event) {
+ protected void doAction() {
if (log.isInfoEnabled()) {
log.info("Will close db...");
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUI.jaxx 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,11 +22,11 @@
#L%
-->
<JPanel id='noDbUITopPanel' layout='{new BorderLayout()}'
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<TuttiUIContext, DbManagerUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<TuttiUIContext, DbManagerUIHandler>'>
<import>
- fr.ifremer.tutti.ui.swing.TuttiUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
fr.ifremer.tutti.ui.swing.TuttiUIContext
fr.ifremer.tutti.ui.swing.UpdateReferentialAction
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUIHandler.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -24,8 +24,8 @@
* #L%
*/
-import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportDbAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -29,8 +29,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -41,14 +39,11 @@
*/
public class ExportDbAction extends AbstractMainUITuttiAction {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log = LogFactory.getLog(ExportDbAction.class);
public ExportDbAction(MainUIHandler handler) {
super(handler,
- "exportDb",
"export-db",
_("tutti.action.exportDb"),
_("tutti.action.exportDb.tip"),
@@ -56,7 +51,7 @@
}
@Override
- protected void doAction(ActionEvent event) {
+ protected void doAction() {
if (log.isInfoEnabled()) {
log.info("Will export db...");
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/InstallDbAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/InstallDbAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/InstallDbAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -34,7 +34,6 @@
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.ApplicationUpdater;
-import java.awt.event.ActionEvent;
import java.io.File;
import static org.nuiton.i18n.I18n._;
@@ -47,15 +46,12 @@
*/
public class InstallDbAction extends AbstractMainUITuttiAction {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(InstallDbAction.class);
public InstallDbAction(MainUIHandler handler) {
super(handler,
- "installDb",
"install-db",
_("tutti.action.installDb"),
_("tutti.action.installDb.tip"),
@@ -63,7 +59,7 @@
}
@Override
- protected void doAction(ActionEvent event) {
+ protected void doAction() {
TuttiApplicationConfig config = getContext().getConfig();
File current = config.getDataDirectory();
@@ -93,12 +89,7 @@
getContext().setDbExist(true);
// open db
- new OpenDbAction(getHandler()).actionPerformed(event);
+ new OpenDbAction(getHandler()).performAndReleaseAction();
}
- @Override
- protected void releaseAction(ActionEvent event) {
- super.releaseAction(event);
- getContext().getActionUI().getModel().setProgressionModel(null);
- }
}
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/OpenDbAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/OpenDbAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/OpenDbAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -31,8 +31,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -43,14 +41,11 @@
*/
public class OpenDbAction extends AbstractMainUITuttiAction {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log = LogFactory.getLog(OpenDbAction.class);
public OpenDbAction(MainUIHandler handler) {
super(handler,
- "openDb",
"open-db",
_("tutti.action.openDb"),
_("tutti.action.openDb.tip"),
@@ -58,7 +53,7 @@
}
@Override
- protected void doAction(ActionEvent event) {
+ public void doAction() {
if (log.isDebugEnabled()) {
log.debug("Will open db...");
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/CloneProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/CloneProtocolAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/CloneProtocolAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -26,13 +26,11 @@
import com.ezware.oxbow.swingbits.util.Preconditions;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -43,14 +41,11 @@
*/
public class CloneProtocolAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log = LogFactory.getLog(CloneProtocolAction.class);
public CloneProtocolAction(SelectCruiseUIHandler handler) {
super(handler,
- "cloneProtocol",
"copy",
_("tutti.action.cloneProtocol"),
_("tutti.action.cloneProtocol.tip"),
@@ -59,11 +54,11 @@
}
@Override
- protected void doAction(ActionEvent e) {
+ protected void doAction() {
TuttiProtocol protocol = getModel().getProtocol();
Preconditions.checkNotNull(protocol);
- if (log.isInfoEnabled()) {
- log.info("Clone protocol: " + protocol.getId());
+ if (log.isDebugEnabled()) {
+ log.debug("Clone protocol: " + protocol.getId());
}
getContext().setProtocolId(protocol.getId());
getContext().setScreen(TuttiScreen.CLONE_PROTOCOL);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/DeleteProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/DeleteProtocolAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/DeleteProtocolAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -27,12 +27,11 @@
import com.google.common.base.Preconditions;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import javax.swing.JOptionPane;
-import java.awt.event.ActionEvent;
import java.util.List;
import static org.nuiton.i18n.I18n._;
@@ -45,14 +44,11 @@
*/
public class DeleteProtocolAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log = LogFactory.getLog(EditProtocolAction.class);
public DeleteProtocolAction(SelectCruiseUIHandler handler) {
super(handler,
- "deleteProtocol",
"delete",
_("tutti.action.deleteProtocol"),
_("tutti.action.deleteProtocol.tip"),
@@ -61,8 +57,8 @@
}
@Override
- protected boolean prepareAction(ActionEvent event) {
- boolean result = super.prepareAction(event);
+ protected boolean prepareAction() {
+ boolean result = super.prepareAction();
TuttiProtocol protocol = getHandler().getModel().getProtocol();
int answer = JOptionPane.showConfirmDialog(
@@ -77,7 +73,7 @@
}
@Override
- protected void doAction(ActionEvent e) {
+ protected void doAction() {
TuttiProtocol protocol = getModel().getProtocol();
Preconditions.checkNotNull(protocol);
String id = protocol.getId();
@@ -86,7 +82,7 @@
log.info("Delete protocol: " + id);
}
- PersistenceService service = getService(PersistenceService.class);
+ PersistenceService service = getContext().getPersistenceService();
service.deleteProtocol(id);
getModel().setProtocol(null);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCatchesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCatchesAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCatchesAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,12 +25,10 @@
*/
import com.google.common.base.Preconditions;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -41,11 +39,8 @@
*/
public class EditCatchesAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
- private static final long serialVersionUID = 1L;
-
public EditCatchesAction(SelectCruiseUIHandler handler) {
super(handler,
- "editCatches",
"edit",
_("tutti.action.editCatches"),
_("tutti.action.editCatches.tip"),
@@ -54,7 +49,8 @@
}
@Override
- protected void doAction(ActionEvent e) {
+ protected void doAction() {
+ Preconditions.checkState(getContext().isProgramFilled());
Preconditions.checkState(getContext().isCruiseFilled());
getContext().setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_EDIT);
getContext().setScreen(TuttiScreen.EDIT_FISHING_OPERATION);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCruiseAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCruiseAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -26,11 +26,9 @@
import com.google.common.base.Preconditions;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -41,11 +39,8 @@
*/
public class EditCruiseAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
- private static final long serialVersionUID = 1L;
-
public EditCruiseAction(SelectCruiseUIHandler handler) {
super(handler,
- "editCruise",
"edit",
_("tutti.action.editCruise"),
_("tutti.action.editCruise.tip"),
@@ -54,7 +49,7 @@
}
@Override
- protected void doAction(ActionEvent e) {
+ protected void doAction() {
Cruise cruise = getModel().getCruise();
Preconditions.checkNotNull(cruise);
getContext().setCruiseId(cruise.getId());
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProgramAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProgramAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProgramAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -26,11 +26,9 @@
import com.google.common.base.Preconditions;
import fr.ifremer.tutti.persistence.entities.data.Program;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -41,11 +39,8 @@
*/
public class EditProgramAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
- private static final long serialVersionUID = 1L;
-
public EditProgramAction(SelectCruiseUIHandler handler) {
super(handler,
- "editProgram",
"edit",
_("tutti.action.editProgram"),
_("tutti.action.editProgram.tip"),
@@ -54,7 +49,7 @@
}
@Override
- protected void doAction(ActionEvent e) {
+ protected void doAction() {
Program program = getModel().getProgram();
Preconditions.checkNotNull(program);
getContext().setProgramId(program.getId());
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProtocolAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProtocolAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -26,13 +26,11 @@
import com.google.common.base.Preconditions;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -43,14 +41,11 @@
*/
public class EditProtocolAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log = LogFactory.getLog(EditProtocolAction.class);
public EditProtocolAction(SelectCruiseUIHandler handler) {
super(handler,
- "editProtocol",
"edit",
_("tutti.action.editProtocol"),
_("tutti.action.editProtocol.tip"),
@@ -59,7 +54,7 @@
}
@Override
- protected void doAction(ActionEvent e) {
+ protected void doAction() {
TuttiProtocol protocol = getModel().getProtocol();
Preconditions.checkNotNull(protocol);
if (log.isInfoEnabled()) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -27,12 +27,11 @@
import com.ezware.oxbow.swingbits.util.Preconditions;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
import java.io.File;
import static org.nuiton.i18n.I18n._;
@@ -45,8 +44,6 @@
*/
public class ExportProtocolAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(ExportProtocolAction.class);
@@ -55,7 +52,6 @@
public ExportProtocolAction(SelectCruiseUIHandler handler) {
super(handler,
- "exportProtocol",
"export",
_("tutti.action.exportProtocol"),
_("tutti.action.exportProtocol.tip"),
@@ -64,7 +60,8 @@
}
@Override
- protected boolean prepareAction(ActionEvent event) {
+ protected boolean prepareAction() {
+
// choose file to import
file = TuttiUIUtil.chooseFile(
@@ -77,19 +74,19 @@
boolean doAction = file != null;
if (doAction) {
- super.prepareAction(event);
+ super.prepareAction();
}
return doAction;
}
@Override
- protected void releaseAction(ActionEvent event) {
- super.releaseAction(event);
+ protected void releaseAction() {
+ super.releaseAction();
file = null;
}
@Override
- protected void doAction(ActionEvent e) throws Exception {
+ protected void doAction() throws Exception {
TuttiProtocol protocol = getModel().getProtocol();
Preconditions.checkNotNull(protocol);
@@ -107,7 +104,7 @@
}
// export protocol
TuttiProtocolImportExportService service =
- getService(TuttiProtocolImportExportService.class);
+ getContext().getTuttiProtocolImportExportService();
service.exportProtocol(protocol, file);
sendMessage("Protocole [" + protocol.getName() +
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -26,14 +26,13 @@
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import jaxx.runtime.context.JAXXContextEntryDef;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
import java.io.File;
import static org.nuiton.i18n.I18n._;
@@ -46,8 +45,6 @@
*/
public class ImportProtocolAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(ImportProtocolAction.class);
@@ -58,7 +55,6 @@
public ImportProtocolAction(SelectCruiseUIHandler handler) {
super(handler,
- "importProtocol",
"import",
_("tutti.action.importProtocol"),
_("tutti.action.importProtocol.tip"),
@@ -67,7 +63,7 @@
}
@Override
- protected boolean prepareAction(ActionEvent event) {
+ protected boolean prepareAction() {
// choose file to import
file = TuttiUIUtil.chooseFile(
@@ -79,19 +75,19 @@
);
boolean doAction = file != null;
if (doAction) {
- super.prepareAction(event);
+ super.prepareAction();
}
return doAction;
}
@Override
- protected void releaseAction(ActionEvent event) {
- super.releaseAction(event);
+ protected void releaseAction() {
+ super.releaseAction();
file = null;
}
@Override
- protected void doAction(ActionEvent e) throws Exception {
+ protected void doAction() throws Exception {
if (log.isInfoEnabled()) {
log.info("TODO Import protocol!");
}
@@ -102,7 +98,7 @@
// import protocol
TuttiProtocolImportExportService service =
- getService(TuttiProtocolImportExportService.class);
+ getContext().getTuttiProtocolImportExportService();
TuttiProtocol protocol = service.importProtocol(file);
sendMessage("Protocole [" + protocol.getName() + "] lu depuis le fichier.");
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewCruiseAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewCruiseAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -24,11 +24,9 @@
* #L%
*/
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -39,11 +37,8 @@
*/
public class NewCruiseAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
- private static final long serialVersionUID = 1L;
-
public NewCruiseAction(SelectCruiseUIHandler handler) {
super(handler,
- "newCruise",
"add",
_("tutti.action.newCruise"),
_("tutti.action.newCruise.tip"),
@@ -52,7 +47,7 @@
}
@Override
- protected void doAction(ActionEvent e) {
+ protected void doAction() {
getContext().setCruiseId(null);
getContext().setScreen(TuttiScreen.EDIT_CRUISE);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProgramAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProgramAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProgramAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -24,11 +24,9 @@
* #L%
*/
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -39,11 +37,8 @@
*/
public class NewProgramAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
- private static final long serialVersionUID = 1L;
-
public NewProgramAction(SelectCruiseUIHandler handler) {
super(handler,
- "newProgram",
"add",
_("tutti.action.newProgram"),
_("tutti.action.newProgram.tip"),
@@ -52,7 +47,7 @@
}
@Override
- protected void doAction(ActionEvent e) {
+ protected void doAction() {
getContext().setProgramId(null);
getContext().setCruiseId(null);
getContext().setScreen(TuttiScreen.EDIT_PROGRAM);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProtocolAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProtocolAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -24,13 +24,9 @@
* #L%
*/
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -41,14 +37,8 @@
*/
public class NewProtocolAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
- private static final long serialVersionUID = 1L;
-
- /** Logger. */
- private static final Log log = LogFactory.getLog(NewProtocolAction.class);
-
public NewProtocolAction(SelectCruiseUIHandler handler) {
super(handler,
- "newProtocol",
"add",
_("tutti.action.newProtocol"),
_("tutti.action.newProtocol.tip"),
@@ -57,10 +47,7 @@
}
@Override
- protected void doAction(ActionEvent e) {
- if (log.isInfoEnabled()) {
- log.info("New protocol");
- }
+ protected void doAction() {
getContext().setProtocolId(null);
getContext().setScreen(TuttiScreen.EDIT_PROTOCOL);
}
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,14 +22,14 @@
#L%
-->
<JPanel id='homePanel' layout='{new BorderLayout()}'
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<SelectCruiseUIModel, SelectCruiseUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<SelectCruiseUIModel, SelectCruiseUIHandler>'>
<import>
fr.ifremer.tutti.persistence.entities.data.Program
fr.ifremer.tutti.persistence.entities.data.Cruise
fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol
- fr.ifremer.tutti.ui.swing.TuttiUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
fr.ifremer.tutti.ui.swing.TuttiUIContext
fr.ifremer.tutti.ui.swing.util.ActionListCellRenderer
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,37 +25,26 @@
*/
import com.google.common.collect.Lists;
-import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler;
-import fr.ifremer.tutti.ui.swing.TuttiUI;
-import java.awt.AWTEvent;
-import java.awt.Event;
-import java.awt.event.ActionEvent;
-import java.awt.event.KeyEvent;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.util.List;
-import java.util.Timer;
-import java.util.TimerTask;
-import javax.swing.Action;
-import javax.swing.JComboBox;
-import javax.swing.SwingUtilities;
-import javax.swing.event.ListDataEvent;
-import javax.swing.event.ListDataListener;
-import javax.swing.event.PopupMenuEvent;
-import javax.swing.event.PopupMenuListener;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import jaxx.runtime.swing.editor.bean.BeanComboBox;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import javax.swing.Action;
+import javax.swing.JComboBox;
+import java.awt.event.ActionEvent;
+import java.awt.event.MouseEvent;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.List;
+
/**
* Main ui content to select cruise.
*
@@ -72,7 +61,7 @@
public SelectCruiseUIHandler(TuttiUI<?, ?> parentUI, SelectCruiseUI ui) {
super(parentUI.getHandler().getContext(), ui);
- persistenceService = context.getService(PersistenceService.class);
+ persistenceService = context.getPersistenceService();
}
@Override
@@ -97,12 +86,11 @@
// get selected program (if any)
- String programId = context.getProgramId();
Program selectedProgram = null;
List<Cruise> cruises = null;
- if (programId != null) {
- selectedProgram = TuttiEntities.findById(programs, programId);
- cruises = persistenceService.getAllCruise(programId);
+ if (context.isProgramFilled()) {
+ selectedProgram = getDataContext().getProgram();
+ cruises = persistenceService.getAllCruise(selectedProgram.getId());
}
model.setProgram(selectedProgram);
@@ -112,12 +100,10 @@
// nothing to select
} else {
- String cruiseId = context.getCruiseId();
Cruise selectedCruise = null;
- if (cruiseId != null) {
- selectedCruise =
- TuttiEntities.findById(cruises, cruiseId);
+ if (context.isCruiseFilled()) {
+ selectedCruise = getDataContext().getCruise();
}
model.setCruise(selectedCruise);
}
@@ -134,10 +120,9 @@
}
} else {
- String protocolId = context.getProtocolId();
TuttiProtocol selectedProtocol = null;
- if (protocolId != null) {
- selectedProtocol = TuttiEntities.findById(protocols, protocolId);
+ if (context.isProgramFilled()) {
+ selectedProtocol = getDataContext().getProtocol();
}
model.setProtocol(selectedProtocol);
}
@@ -162,7 +147,7 @@
initBeanComboBox(ui.getProtocolCombobox(),
model.getProtocols(),
model.getProtocol());
-
+
ui.getEditProtocolComboBox().putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE);
ui.getNewProtocolComboBox().putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE);
@@ -259,13 +244,13 @@
}
clearValidators();
}
-
+
public void startExistingProtocolAction(MouseEvent event) {
JComboBox existingProtocolCombo = (JComboBox) event.getSource();
Action selectedAction = (Action) existingProtocolCombo.getItemAt(0);
selectedAction.actionPerformed(null);
}
-
+
public void startExistingProtocolAction(ActionEvent event) {
if (!resetEditProtolAction) {
JComboBox existingProtocolCombo = (JComboBox) event.getSource();
@@ -285,7 +270,7 @@
Action selectedAction = (Action) newProtocolCombo.getItemAt(0);
selectedAction.actionPerformed(null);
}
-
+
public void startNewProtocolAction(ActionEvent event) {
JComboBox newProtocolCombo = (JComboBox) event.getSource();
Action selectedAction = (Action) newProtocolCombo.getSelectedItem();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -27,7 +27,7 @@
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import java.util.List;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ValidateCatchesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ValidateCatchesAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ValidateCatchesAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,12 +25,10 @@
*/
import com.google.common.base.Preconditions;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -41,11 +39,8 @@
*/
public class ValidateCatchesAction extends AbstractTuttiAction<SelectCruiseUIModel, SelectCruiseUI, SelectCruiseUIHandler> {
- private static final long serialVersionUID = 1L;
-
public ValidateCatchesAction(SelectCruiseUIHandler handler) {
super(handler,
- "validateCatches",
"validate",
_("tutti.action.validateCatches"),
_("tutti.action.validateCatches.tip"),
@@ -54,7 +49,8 @@
}
@Override
- protected void doAction(ActionEvent e) {
+ protected void doAction() {
+ Preconditions.checkState(getContext().isProgramFilled());
Preconditions.checkState(getContext().isCruiseFilled());
getContext().setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_VALIDATE);
getContext().setScreen(TuttiScreen.EDIT_FISHING_OPERATION);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AbstractTuttiBatchTableUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AbstractTuttiBatchTableUIHandler.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AbstractTuttiBatchTableUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -30,8 +30,8 @@
import com.ezware.oxbow.swingbits.table.filter.JTableFilter;
import com.ezware.oxbow.swingbits.table.filter.TableRowFilterSupport;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
-import fr.ifremer.tutti.ui.swing.TuttiUI;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
import jaxx.runtime.SwingUtil;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AbstractTuttiBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AbstractTuttiBatchUIModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AbstractTuttiBatchUIModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -26,8 +26,8 @@
import com.google.common.collect.Sets;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel;
import java.beans.PropertyChangeEvent;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AttachmentsAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AttachmentsAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AttachmentsAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -24,10 +24,8 @@
* #L%
*/
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -36,11 +34,8 @@
*/
public class AttachmentsAction extends AbstractTuttiAction<EditFishingOperationUIModel, EditFishingOperationUI, EditFishingOperationUIHandler> {
- private static final long serialVersionUID = 1L;
-
public AttachmentsAction(EditFishingOperationUIHandler handler) {
super(handler,
- "attachments",
"edit-attachment",
_("tutti.action.attachments", 0),
_("tutti.action.attachments.tip"),
@@ -48,13 +43,8 @@
}
@Override
- protected void doAction(ActionEvent event) throws Exception {
+ protected void doAction() throws Exception {
//TODO
}
- @Override
- public boolean isEnabled() {
- return false;
- }
-
}
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/CancelEditFishingOperationAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,14 +25,10 @@
* #L%
*/
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -43,8 +39,6 @@
*/
public class CancelEditFishingOperationAction extends AbstractTuttiAction<EditFishingOperationUIModel, EditFishingOperationUI, EditFishingOperationUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log = LogFactory.getLog(SaveFishingOperationAction.class);
@@ -57,27 +51,27 @@
public CancelEditFishingOperationAction(EditFishingOperationUIHandler handler) {
super(handler,
- "cancelFishingOperation",
"cancel",
_("tutti.action.cancel.editFishingOperation"),
_("tutti.action.cancel.editFishingOperation.tip"),
true
);
-
- getModel().addPropertyChangeListener(EditFishingOperationUIModel.PROPERTY_ID,
- new PropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent evt) {
- if (evt.getNewValue() == null) {
- putValue(NAME, _("tutti.action.cancel.editFishingOperation"));
- putValue(SHORT_DESCRIPTION, _("tutti.action.cancel.editFishingOperation.tip"));
-
- } else {
- putValue(NAME, _("tutti.action.reset.editFishingOperation"));
- putValue(SHORT_DESCRIPTION, _("tutti.action.reset.editFishingOperation.tip"));
- }
- }
- });
+ //TODO-TC REmake this works
+// getModel().addPropertyChangeListener(EditFishingOperationUIModel.PROPERTY_ID,
+// new PropertyChangeListener() {
+//
+// public void propertyChange(PropertyChangeEvent evt) {
+// if (evt.getNewValue() == null) {
+// putValue(NAME, _("tutti.action.cancel.editFishingOperation"));
+// putValue(SHORT_DESCRIPTION, _("tutti.action.cancel.editFishingOperation.tip"));
+//
+// } else {
+// putValue(NAME, _("tutti.action.reset.editFishingOperation"));
+// putValue(SHORT_DESCRIPTION, _("tutti.action.reset.editFishingOperation.tip"));
+// }
+// }
+// });
}
public EditFishingOperationAction getEditAction() {
@@ -92,11 +86,10 @@
* then the tab panel of the parent switch to the index set
* in the ID param of the event.
*
- * @param event
* @throws Exception
*/
@Override
- protected void doAction(ActionEvent event) throws Exception {
+ protected void doAction() throws Exception {
EditFishingOperationAction action = getEditAction();
@@ -106,7 +99,7 @@
}
// cancel to create a new fishingOperation
action.setFishingOperation(null);
- action.doAction(event);
+ action.performAndReleaseAction();
} else {
@@ -117,7 +110,7 @@
// re-edit current fishing operation (but do not perform any check)
action.setCheckPreviousEdit(false);
action.setFishingOperation(getModel().getFishingOperation());
- action.actionPerformed(event);
+ action.performAndReleaseAction();
}
// // if called directly from the EditFishingOperationUIHandler:
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -32,7 +32,6 @@
import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation;
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.content.operation.catches.ComputeWeightsAction;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
@@ -41,6 +40,7 @@
import fr.ifremer.tutti.ui.swing.content.operation.fishing.gearshooting.GearShootingTabUI;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.hydrology.HydrologyTabUI;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.decorator.Decorator;
@@ -50,7 +50,6 @@
import javax.swing.JTabbedPane;
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
-import java.awt.event.ActionEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.List;
@@ -65,8 +64,6 @@
*/
public class EditFishingOperationAction extends AbstractTuttiAction<FishingOperationsUIModel, FishingOperationsUI, FishingOperationsUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(EditFishingOperationAction.class);
@@ -97,7 +94,7 @@
* @since 1.0
*/
protected SaveFishingOperationAction saveFishingOperationAction;
-
+
/**
* Delegate action to compute the weight of the catches.
*
@@ -151,7 +148,6 @@
public EditFishingOperationAction(FishingOperationsUIHandler handler) {
super(handler,
- "editFishingOperation",
"edit",
null,
_("tutti.action.editFishingOperation.tip"),
@@ -164,7 +160,7 @@
String text,
String tip,
boolean hideBody) {
- super(handler, name, icon, text, tip, hideBody);
+ super(handler, icon, text, tip, hideBody);
}
public void setFishingOperation(FishingOperation fishingOperation) {
@@ -176,10 +172,10 @@
}
@Override
- protected void releaseAction(ActionEvent event) {
+ protected void releaseAction() {
fishingOperation = null;
checkPreviousEdit = true;
- super.releaseAction(event);
+ super.releaseAction();
// getComputeWeightsAction().actionPerformed(event);
}
@@ -196,7 +192,7 @@
}
return saveCatchBatchAction;
}
-
+
protected ComputeWeightsAction getComputeWeightsAction() {
if (computeWeightsAction == null) {
computeWeightsAction = new ComputeWeightsAction(getUI().getCatchesTabContent().getHandler());
@@ -205,8 +201,8 @@
}
@Override
- protected boolean prepareAction(ActionEvent event) {
- boolean canContinue = super.prepareAction(event);
+ protected boolean prepareAction() {
+ boolean canContinue = super.prepareAction();
if (canContinue && checkPreviousEdit) {
FishingOperationsUI ui = getUI();
@@ -262,12 +258,12 @@
// persist previous fishing operation
if (fishingOperationModified) {
getSaveFishingOperationAction().setUpdateUI(false);
- getSaveFishingOperationAction().actionPerformed(event);
+ getSaveFishingOperationAction().performAndReleaseAction();
}
if (catchBatchModified) {
getSaveCatchBatchAction().setUpdateUI(false);
- getSaveCatchBatchAction().actionPerformed(event);
+ getSaveCatchBatchAction().performAndReleaseAction();
}
canContinue = true;
@@ -325,7 +321,7 @@
}
@Override
- protected void doAction(ActionEvent event) throws Exception {
+ protected void doAction() throws Exception {
if (log.isInfoEnabled()) {
log.info("Try to edit fishingOperation: " + fishingOperation);
@@ -365,9 +361,9 @@
// wait last minute to display (avoid dirty display effects)
ui.add(form, BorderLayout.CENTER);
-
+
ui.getFishingOperationTabContent().getFishingOperationTabPane().setSelectedIndex(0);
-
+
if (checkPreviousEdit) {
ui.getTabPane().setSelectedIndex(0);
}
@@ -444,7 +440,7 @@
// update saisissuer selection
List<Person> saisisseur = editFishingOperationUIModel.getSaisisseur();
ui.getSaisisseurList().getHandler().setSelected(saisisseur);
-
+
// update model empty property
editFishingOperationUIModel.setEmpty(false);
@@ -502,7 +498,7 @@
}
PersistenceService persistenceService =
- getService(PersistenceService.class);
+ getContext().getPersistenceService();
batch = persistenceService.getCatchBatchFromFishingOperation(
operationId, true);
@@ -549,7 +545,7 @@
}
-
+
}
-
+
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,7 +22,7 @@
#L%
-->
<JPanel id='homePanel' layout='{new BorderLayout()}'
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<EditFishingOperationUIModel, EditFishingOperationUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<EditFishingOperationUIModel, EditFishingOperationUIHandler>'>
<import>
fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -35,35 +35,33 @@
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
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.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.CaracteristicTabUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.environment.EnvironmentTabUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.gearshooting.GearShootingTabUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.hydrology.HydrologyTabUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiTabContainerUIHandler;
import fr.ifremer.tutti.ui.swing.util.TabHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
-import java.awt.Color;
-import java.awt.Component;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.jdesktop.swingx.JXDatePicker;
import javax.swing.JOptionPane;
import javax.swing.JTabbedPane;
+import java.awt.Color;
+import java.awt.Component;
import java.awt.event.ActionEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.Calendar;
-import java.util.Collections;
-import java.util.Comparator;
import java.util.Date;
import java.util.List;
-import org.jdesktop.swingx.JXDatePicker;
import static org.nuiton.i18n.I18n._;
@@ -95,8 +93,8 @@
//check if the user changed the date and not only the time)
Date oldDate = (Date) evt.getOldValue();
Date newDate = (Date) evt.getNewValue();
- if (getModel().getGearShootingEndDate() == null &&
- (oldDate == null || !DateUtils.isSameDay(oldDate, newDate))) {
+ if (getModel().getGearShootingEndDate() == null &&
+ (oldDate == null || !DateUtils.isSameDay(oldDate, newDate))) {
getModel().setGearShootingEndDate(newDate);
}
}
@@ -151,7 +149,7 @@
EditFishingOperationUI ui) {
super(parentUi.getHandler().getContext(), ui);
this.parentUi = parentUi;
- this.persistenceService = context.getService(PersistenceService.class);
+ this.persistenceService = context.getPersistenceService();
this.fishingOperationMonitor = new TuttiBeanMonitor<EditFishingOperationUIModel>(
EditFishingOperationUIModel.PROPERTY_STATION_NUMBER,
EditFishingOperationUIModel.PROPERTY_FISHING_OPERATION_NUMBER,
@@ -226,7 +224,7 @@
tab.setBackground(color);
}
});
-
+
ui.setContextValue(model);
fishingOperationMonitor.setBean(model);
@@ -255,12 +253,12 @@
Lists.<Gear>newArrayList(),
null);
- Cruise cruise = TuttiUIUtil.getCruise(context);
+ Cruise cruise = getDataContext().getCruise();
Preconditions.checkNotNull(cruise,
"Could not find cruise in ui context");
ui.getMultirigAggregationField().setEnabled(cruise.getMultirigNumber() != 1);
- Program program = TuttiUIUtil.getProgram(context);
+ Program program = getDataContext().getProgram();
Preconditions.checkNotNull(program,
"Could not find program in ui context");
@@ -342,14 +340,14 @@
}
});
}
-
+
// FIXME kmorin 20130222 remove this when we use jaxx 2.5.11
model.addPropertyChangeListener(EditFishingOperationUIModel.PROPERTY_TRAWL_DISTANCE, new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
String tooltip = model.getTrawlDistance() != null ?
- _("tutti.tooltip.distanceInMilles", TuttiUIUtil.getDistanceInMilles(model.getTrawlDistance())) :
- null;
+ _("tutti.tooltip.distanceInMilles", TuttiUIUtil.getDistanceInMilles(model.getTrawlDistance())) :
+ null;
ui.getTrawlDistanceField().getTextField().setToolTipText(tooltip);
}
});
@@ -490,7 +488,7 @@
public TuttiBeanMonitor<EditFishingOperationUIModel> getFishingOperationMonitor() {
return fishingOperationMonitor;
}
-
+
@Override
public void setDate(ActionEvent event, String property) {
JXDatePicker field = (JXDatePicker) event.getSource();
@@ -517,7 +515,7 @@
// reset sub strata combo
ui.getSubStrataComboBox().setData(null);
- Zone zone = TuttiUIUtil.getProgram(context).getZone();
+ Zone zone = getDataContext().getProgram().getZone();
String zoneId = zone.getId();
String strataId = newStrata == null ? null : newStrata.getId();
@@ -558,7 +556,7 @@
// reset localite combo
ui.getLocationComboBox().setData(null);
- Zone zone = TuttiUIUtil.getProgram(context).getZone();
+ Zone zone = getDataContext().getProgram().getZone();
String zoneId = zone.getId();
FishingOperationLocation strata = model.getStrata();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -33,7 +33,7 @@
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
import fr.ifremer.tutti.persistence.spatial.SexagecimalPosition;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.editor.CoordinateEditorType;
import org.nuiton.util.DateUtil;
@@ -43,7 +43,6 @@
import java.util.Calendar;
import java.util.Date;
import java.util.List;
-import org.apache.commons.lang3.time.DateUtils;
import static org.nuiton.i18n.I18n.n_;
@@ -92,7 +91,7 @@
public static final String PROPERTY_GEAR_SHOOTING_START_LONGITUDE_SECOND = "gearShootingStartLongitudeSecond";
public static final String PROPERTY_GEAR_SHOOTING_START_DATE = "gearShootingStartDate";
-
+
public static final String PROPERTY_GEAR_SHOOTING_END_LATITUDE = "gearShootingEndLatitude";
public static final String PROPERTY_GEAR_SHOOTING_END_LATITUDE_DEGREE = "gearShootingEndLatitudeDegree";
@@ -442,7 +441,7 @@
}
firePropertyChange(PROPERTY_GEAR_SHOOTING_START_DATE, oldValue, this.gearShootingStartDate);
}
-
+
public void setGearShootingStartTime(Date gearShootingStartDate) {
Object oldValue = getGearShootingStartDate();
if (oldValue != null) {
@@ -602,7 +601,7 @@
}
firePropertyChange(PROPERTY_GEAR_SHOOTING_END_DATE, oldValue, this.gearShootingEndDate);
}
-
+
public void setGearShootingEndTime(Date gearShootingEndDate) {
Object oldValue = getGearShootingEndDate();
if (oldValue != null) {
@@ -729,7 +728,7 @@
public boolean isDateInCruise(Date date) {
return DateUtil.between(date, cruise.getBeginDate(), cruise.getEndDate());
}
-
+
public boolean isValidDuration() {
int minutes = DateUtil.getDifferenceInMinutes(gearShootingStartDate, gearShootingEndDate);
return minutes <= 45 && minutes >= 20;
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,12 +22,12 @@
#L%
-->
<JPanel id='homePanel' layout='{new BorderLayout()}'
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<FishingOperationsUIModel, FishingOperationsUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<FishingOperationsUIModel, FishingOperationsUIHandler>'>
<import>
fr.ifremer.tutti.persistence.entities.data.FishingOperation
- fr.ifremer.tutti.ui.swing.TuttiUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
fr.ifremer.tutti.ui.swing.TuttiUIContext
fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -29,10 +29,9 @@
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
-import fr.ifremer.tutti.ui.swing.TuttiUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiTabContainerUIHandler;
-import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -61,7 +60,7 @@
public FishingOperationsUIHandler(TuttiUI parentUI,
FishingOperationsUI ui) {
super(parentUI.getHandler().getContext(), ui);
- persistenceService = context.getService(PersistenceService.class);
+ persistenceService = context.getPersistenceService();
}
@Override
@@ -74,15 +73,9 @@
EditCatchesUIModel catchesUIModel = new EditCatchesUIModel();
- String cruiseId = context.getCruiseId();
-
// load existing cruise
- Cruise cruise = persistenceService.getCruise(cruiseId);
+ Cruise cruise = getDataContext().getCruise();
- // store it in context
- TuttiUIUtil.setCruise(context, cruise);
- TuttiUIUtil.setProgram(context, cruise.getProgram());
-
TuttiProtocol protocol;
if (getContext().isProtocolFilled()) {
@@ -94,16 +87,10 @@
if (log.isInfoEnabled()) {
log.info("Loading existing protocol: " + protocol);
}
- } else {
-
- // remove any previous existing protocol
- protocol = null;
}
- TuttiUIUtil.setProtocol(context, protocol);
-
List<FishingOperation> fishingOperations =
- persistenceService.getAllFishingOperation(cruiseId);
+ persistenceService.getAllFishingOperation(cruise.getId());
for (FishingOperation fishingOperation : fishingOperations) {
fishingOperation.setCruise(cruise);
@@ -124,8 +111,7 @@
initUI(ui);
- editFishingOperationAction =
- createAction(EditFishingOperationAction.class);
+ editFishingOperationAction = new EditFishingOperationAction(this);
FishingOperationsUIModel model = getModel();
@@ -153,11 +139,11 @@
operation = null;
} else {
operation = persistenceService.getFishingOperation(newValue.getId());
- Cruise cruise = TuttiUIUtil.getCruise(context);
+ Cruise cruise = getDataContext().getCruise();
operation.setCruise(cruise);
}
editFishingOperationAction.setFishingOperation(operation);
- editFishingOperationAction.actionPerformed(null);
+ editFishingOperationAction.performAndReleaseAction();
// getModel().setEditFishingOperation(operation);
}
}
@@ -190,11 +176,11 @@
FishingOperation selectedOperation = null;
for (FishingOperation fishingOperation : fishingOperations) {
if (selectedOperation == null ||
- fishingOperation.getGearShootingStartDate()
- .after(selectedOperation.getGearShootingStartDate())
- && fishingOperation.getFishingOperationNumber()
- > selectedOperation.getFishingOperationNumber()
- ) {
+ fishingOperation.getGearShootingStartDate()
+ .after(selectedOperation.getGearShootingStartDate())
+ && fishingOperation.getFishingOperationNumber()
+ > selectedOperation.getFishingOperationNumber()
+ ) {
selectedOperation = fishingOperation;
}
}
Modified: 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 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/ImportCasinoAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -24,10 +24,8 @@
* #L%
*/
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -38,11 +36,8 @@
*/
public class ImportCasinoAction extends AbstractTuttiAction<EditFishingOperationUIModel, EditFishingOperationUI, EditFishingOperationUIHandler> {
- private static final long serialVersionUID = 1L;
-
public ImportCasinoAction(EditFishingOperationUIHandler handler) {
super(handler,
- "importCasino",
"casino-import",
_("tutti.action.importCasino"),
_("tutti.action.importCasino.tip"),
@@ -50,12 +45,8 @@
}
@Override
- protected void doAction(ActionEvent event) throws Exception {
+ protected void doAction() throws Exception {
//TODO
}
- @Override
- public boolean isEnabled() {
- return false;
- }
}
Modified: 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 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/NewFishingOperationAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -28,9 +28,7 @@
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.util.TuttiUIUtil;
-import java.awt.event.ActionEvent;
import java.util.List;
import static org.nuiton.i18n.I18n._;
@@ -43,8 +41,6 @@
*/
public class NewFishingOperationAction extends EditFishingOperationAction {
- private static final long serialVersionUID = 1L;
-
public NewFishingOperationAction(FishingOperationsUIHandler handler) {
super(handler,
"newFishingOperation",
@@ -55,7 +51,7 @@
}
@Override
- protected void doAction(ActionEvent event) throws Exception {
+ protected void doAction() throws Exception {
FishingOperationsUIModel model = getModel();
@@ -72,7 +68,7 @@
// creates a empty bean
FishingOperation newFishingOperation = new FishingOperation();
- Cruise cruise = TuttiUIUtil.getCruise(getContext());
+ Cruise cruise = getDataContext().getCruise();
newFishingOperation.setCruise(cruise);
//TODO Should select vessel from possible one ?
@@ -95,6 +91,6 @@
newFishingOperation.setGearShootingEndDate(null);
setFishingOperation(newFishingOperation);
- super.doAction(event);
+ super.doAction();
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -30,18 +30,16 @@
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.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.CaracteristicTabUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.environment.EnvironmentTabUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.gearshooting.GearShootingTabUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.hydrology.HydrologyTabUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.util.editor.CoordinateEditorType;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -52,8 +50,6 @@
*/
public class SaveFishingOperationAction extends AbstractTuttiAction<EditFishingOperationUIModel, EditFishingOperationUI, EditFishingOperationUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(SaveFishingOperationAction.class);
@@ -68,7 +64,6 @@
public SaveFishingOperationAction(EditFishingOperationUIHandler handler) {
super(handler,
- "saveFishingOperation",
"save",
_("tutti.action.saveFishingOperation"),
_("tutti.action.saveFishingOperation.tip"),
@@ -81,9 +76,9 @@
}
@Override
- protected void releaseAction(ActionEvent event) {
+ protected void releaseAction() {
updateUI = true;
- super.releaseAction(event);
+ super.releaseAction();
}
/**
@@ -91,11 +86,9 @@
* then the tab panel of the parent switch to the index set
* in the ID param of the event.
* If the event source is a TuttiScreen, then the screen changes to the source.
- *
- * @param event
*/
@Override
- protected void doAction(ActionEvent event) {
+ protected void doAction() {
EditFishingOperationUIHandler handler = getHandler();
@@ -151,7 +144,7 @@
getModel().setModify(false);
saveFishingOperation(toSave);
-
+
handler.getParentUi().getTabPane().setSelectedIndex(1);
}
@@ -159,7 +152,7 @@
protected void saveFishingOperation(FishingOperation toSave) {
- PersistenceService service = getService(PersistenceService.class);
+ PersistenceService service = getContext().getPersistenceService();
boolean create = TuttiEntities.isNew(toSave);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/CancelEditCatchBatchAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/CancelEditCatchBatchAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/CancelEditCatchBatchAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -27,13 +27,11 @@
import com.google.common.base.Preconditions;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationAction;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -44,8 +42,6 @@
*/
public class CancelEditCatchBatchAction extends AbstractTuttiAction<EditCatchesUIModel, EditCatchesUI, EditCatchesUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(CancelEditCatchBatchAction.class);
@@ -61,7 +57,6 @@
public CancelEditCatchBatchAction(EditCatchesUIHandler handler) {
super(handler,
- "cancelEditCatchBatch",
"cancel",
_("tutti.action.reset.editCatchBatch"),
_("tutti.action.reset.editCatchBatch.tip"),
@@ -77,7 +72,7 @@
}
@Override
- protected void doAction(ActionEvent event) throws Exception {
+ protected void doAction() throws Exception {
if (getModel().isCreate()) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,24 +25,19 @@
* #L%
*/
-import com.google.common.collect.Maps;
import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SampleCategory;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchRowModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyRowModel;
-import jaxx.runtime.JAXXUtil;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import javax.swing.JOptionPane;
-import javax.swing.JTextField;
import java.awt.Component;
-import java.awt.event.ActionEvent;
import java.util.List;
-import java.util.Map;
import static org.nuiton.i18n.I18n._;
@@ -52,8 +47,6 @@
*/
public class ComputeWeightsAction extends AbstractTuttiAction<EditCatchesUIModel, EditCatchesUI, EditCatchesUIHandler> {
- private static final long serialVersionUID = 1L;
-
private static final Log log = LogFactory.getLog(ComputeWeightsAction.class);
protected String errorMessage;
@@ -64,7 +57,6 @@
public ComputeWeightsAction(EditCatchesUIHandler handler) {
super(handler,
- "computeWeights",
"generate",
_("tutti.action.computeWeights"),
_("tutti.action.computeWeights.tip"),
@@ -72,18 +64,18 @@
}
@Override
- protected void doAction(ActionEvent event) throws Exception {
+ protected void doAction() throws Exception {
EditCatchesUIModel model = getModel();
-
+
computeSpeciesBatches();
Float speciesTotalSortedWeight = model.getSpeciesTotalSortedComputedWeight();
Float speciesTotalUnsortedWeight = model.getSpeciesTotalUnsortedComputedWeight();
-
+
EditCatchesUI ui = getUI();
model.setCatchTotalSortedComputedWeight(speciesTotalSortedWeight);
model.setCatchTotalUnsortedComputedWeight(speciesTotalUnsortedWeight);
-
+
Float totalWeight = model.getCatchTotalWeight();
Float rejectedWeight = model.getCatchTotalRejectedWeight();
@@ -107,12 +99,12 @@
model.setCatchTotalRejectedComputedWeight(0f);
}
model.setCatchTotalComputedWeight(speciesTotalUnsortedWeight
- + speciesTotalSortedWeight
+ + speciesTotalSortedWeight
+ rejectedWeight);
} else if (rejectedWeight != null
&& !totalWeight.equals(speciesTotalUnsortedWeight
- + speciesTotalSortedWeight
+ + speciesTotalSortedWeight
+ rejectedWeight)) {
errorMessage = _("tutti.action.computeWeights.error.incoherentTotal");
errorTitle = _("tutti.action.computeWeights.error.incoherentTotal.title");
@@ -127,7 +119,7 @@
protected void computeSpeciesBatches() {
PersistenceService persistenceService =
- getService(PersistenceService.class);
+ getContext().getPersistenceService();
EditCatchesUIModel model = getModel();
Float totalSortedWeight = 0f;
@@ -156,14 +148,14 @@
}
}
}
-
+
Number inertWeight = model.getSpeciesTotalInertWeight();
if (inertWeight != null) {
totalSortedWeight += inertWeight.floatValue();
} else {
model.setSpeciesTotalInertWeight(0f);
}
-
+
Number livingNotItemizedWeight = model.getSpeciesTotalLivingNotItemizedWeight();
if (livingNotItemizedWeight != null) {
totalSortedWeight += livingNotItemizedWeight.floatValue();
@@ -308,7 +300,7 @@
}
@Override
- protected void releaseAction(ActionEvent event) {
+ protected void releaseAction() {
if (errorMessage != null) {
JOptionPane.showMessageDialog(
getUI(),
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,7 +22,7 @@
#L%
-->
<JPanel id='homePanel' layout='{new BorderLayout()}'
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<EditCatchesUIModel, EditCatchesUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<EditCatchesUIModel, EditCatchesUIHandler>'>
<import>
fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI
@@ -162,11 +162,11 @@
constructorParams='this'/>
</cell>
</row>
-<!-- <row>
- <cell columns='4'>
- <JLabel id='catchThalassaLabel'/>
- </cell>
- </row>-->
+ <!-- <row>
+ <cell columns='4'>
+ <JLabel id='catchThalassaLabel'/>
+ </cell>
+ </row>-->
</Table>
</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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,12 +25,12 @@
*/
import com.google.common.collect.Sets;
-import fr.ifremer.tutti.ui.swing.TuttiUI;
import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI;
import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUIHandler;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiTabContainerUIHandler;
import fr.ifremer.tutti.ui.swing.util.TabHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import jaxx.runtime.swing.CardLayout2Ext;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -26,7 +26,7 @@
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiComputedOrNotData;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
@@ -47,9 +47,9 @@
public static final String PROPERTY_CATCH_TOTAL_WEIGHT = "catchTotalWeight";
public static final String PROPERTY_CATCH_TOTAL_COMPUTED_WEIGHT = "catchTotalComputedWeight";
-
+
public static final String PROPERTY_CATCH_TOTAL_SORTED_COMPUTED_WEIGHT = "catchTotalSortedComputedWeight";
-
+
public static final String PROPERTY_CATCH_TOTAL_UNSORTED_COMPUTED_WEIGHT = "catchTotalUnsortedComputedWeight";
public static final String PROPERTY_CATCH_TOTAL_SORTED_TREMIS_WEIGHT = "catchTotalSortedTremisWeight";
@@ -61,13 +61,13 @@
public static final String PROPERTY_CATCH_TOTAL_REJECTED_COMPUTED_WEIGHT = "catchTotalRejectedComputedWeight";
public static final String PROPERTY_SPECIES_TOTAL_COMPUTED_WEIGHT = "speciesTotalComputedWeight";
-
+
public static final String PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT = "speciesTotalSortedWeight";
public static final String PROPERTY_SPECIES_TOTAL_SORTED_COMPUTED_WEIGHT = "speciesTotalSortedComputedWeight";
-
+
public static final String PROPERTY_SPECIES_TOTAL_UNSORTED_COMPUTED_WEIGHT = "speciesTotalUnsortedComputedWeight";
-
+
public static final String PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_COMPUTED_WEIGHT = "speciesTotalSampleSortedComputedWeight";
public static final String PROPERTY_SPECIES_TOTAL_INERT_WEIGHT = "speciesTotalInertWeight";
@@ -132,13 +132,13 @@
protected static final Binder<EditCatchesUIModel, CatchBatch> toBeanBinder = BinderFactory.newBinder(EditCatchesUIModel.class, CatchBatch.class);
protected Float speciesTotalComputedWeight;
-
+
protected TuttiComputedOrNotData<Float> speciesTotalSortedComputedOrNotWeight = new TuttiComputedOrNotData<Float>();
protected Float speciesTotalUnsortedComputedWeight;
protected Float speciesTotalSampleSortedComputedWeight;
-
+
protected Float speciesTotalInertWeight = 0f;
protected Float speciesTotalLivingNotItemizedWeight = 0f;
@@ -161,9 +161,9 @@
= new TuttiComputedOrNotData<Float>();
protected Float catchTotalSortedComputedWeight;
-
+
protected Float catchTotalUnsortedComputedWeight;
-
+
protected Float catchTotalSortedTremisWeight;
protected Float catchTotalSortedCarousselWeight;
@@ -254,7 +254,7 @@
this.catchTotalComputedOrNotWeight.setComputedData(catchTotalComputedWeight);
firePropertyChange(PROPERTY_CATCH_TOTAL_COMPUTED_WEIGHT, oldValue, catchTotalComputedWeight);
}
-
+
public Float getCatchTotalSortedComputedWeight() {
return catchTotalSortedComputedWeight;
}
@@ -264,7 +264,7 @@
this.catchTotalSortedComputedWeight = catchTotalSortedComputedWeight;
firePropertyChange(PROPERTY_CATCH_TOTAL_SORTED_COMPUTED_WEIGHT, oldValue, catchTotalSortedComputedWeight);
}
-
+
public Float getCatchTotalUnsortedComputedWeight() {
return catchTotalUnsortedComputedWeight;
}
@@ -328,7 +328,7 @@
this.speciesTotalComputedWeight = speciesTotalComputedWeight;
firePropertyChange(PROPERTY_SPECIES_TOTAL_COMPUTED_WEIGHT, oldValue, speciesTotalComputedWeight);
}
-
+
public TuttiComputedOrNotData<Float> getSpeciesTotalSortedComputedOrNotWeight() {
return speciesTotalSortedComputedOrNotWeight;
}
@@ -372,7 +372,7 @@
this.speciesTotalUnsortedComputedWeight = speciesTotalUnsortedComputedWeight;
firePropertyChange(PROPERTY_SPECIES_TOTAL_UNSORTED_COMPUTED_WEIGHT, oldValue, speciesTotalUnsortedComputedWeight);
}
-
+
public Float getSpeciesTotalInertWeight() {
return speciesTotalInertWeight;
}
@@ -473,10 +473,10 @@
setCatchTotalUnsortedComputedWeight(null);
setCatchTotalComputedWeight(null);
}
-
+
@Override
protected CatchBatch newEntity() {
return catchBatch;
}
-
+
}
Modified: 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 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ImportPupitriAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -24,10 +24,8 @@
* #L%
*/
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -38,11 +36,8 @@
*/
public class ImportPupitriAction extends AbstractTuttiAction<EditCatchesUIModel, EditCatchesUI, EditCatchesUIHandler> {
- private static final long serialVersionUID = 1L;
-
public ImportPupitriAction(EditCatchesUIHandler handler) {
super(handler,
- "importPupitri",
"pupitri-import",
_("tutti.action.importPupitri"),
_("tutti.action.importPupitri.tip"),
@@ -50,7 +45,7 @@
}
@Override
- protected void doAction(ActionEvent event) throws Exception {
+ protected void doAction() throws Exception {
//TODO
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SaveCatchBatchAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SaveCatchBatchAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SaveCatchBatchAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -26,13 +26,11 @@
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -43,13 +41,10 @@
*/
public class SaveCatchBatchAction extends AbstractTuttiAction<EditCatchesUIModel, EditCatchesUI, EditCatchesUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(SaveCatchBatchAction.class);
-
/**
* A flag to update ui after create or save the edit catch batch.
*
@@ -59,7 +54,6 @@
public SaveCatchBatchAction(EditCatchesUIHandler handler) {
super(handler,
- "saveCatchBatch",
"save",
_("tutti.action.saveCatchBatch"),
_("tutti.action.saveCatchBatch.tip"),
@@ -72,13 +66,13 @@
}
@Override
- protected void releaseAction(ActionEvent event) {
+ protected void releaseAction() {
updateUI = true;
- super.releaseAction(event);
+ super.releaseAction();
}
@Override
- protected void doAction(ActionEvent event) {
+ public void doAction() {
EditCatchesUIHandler handler = getHandler();
@@ -95,7 +89,7 @@
if (mustSave) {
PersistenceService persistenceService =
- getService(PersistenceService.class);
+ getContext().getPersistenceService();
CatchBatch catchBatch = beanToSave.toBean();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchRowModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchRowModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -27,7 +27,7 @@
import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.referential.Species;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.jaxx 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,10 +22,10 @@
#L%
-->
<JPanel id='homePanel' layout='{new BorderLayout()}'
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<AccidentalBatchUIModel, AccidentalBatchUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<AccidentalBatchUIModel, AccidentalBatchUIHandler>'>
<import>
- fr.ifremer.tutti.ui.swing.TuttiUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
fr.ifremer.tutti.ui.swing.TuttiUIContext
fr.ifremer.tutti.ui.swing.util.editor.LongTextEditorUI
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -31,10 +31,10 @@
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
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.EditCatchesUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.editor.AttachmentCellComponent;
import fr.ifremer.tutti.ui.swing.util.editor.LongTextCellComponent;
import jaxx.runtime.validator.swing.SwingValidator;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -27,7 +27,7 @@
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
import fr.ifremer.tutti.persistence.entities.referential.Species;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import org.apache.commons.collections.CollectionUtils;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchTableModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchTableModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -29,8 +29,6 @@
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import org.jdesktop.swingx.table.TableColumnModelExt;
-import javax.swing.table.TableColumnModel;
-
import static org.nuiton.i18n.I18n.n_;
/**
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,10 +22,10 @@
#L%
-->
<JPanel id='homePanel' layout='{new BorderLayout()}'
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<BenthosBatchUIModel, BenthosBatchUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<BenthosBatchUIModel, BenthosBatchUIHandler>'>
<import>
- fr.ifremer.tutti.ui.swing.TuttiUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
fr.ifremer.tutti.ui.swing.TuttiUIContext
fr.ifremer.tutti.ui.swing.util.editor.LongTextEditorUI
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -31,10 +31,10 @@
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
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.EditCatchesUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.editor.AttachmentCellComponent;
import fr.ifremer.tutti.ui.swing.util.editor.LongTextCellComponent;
import jaxx.runtime.validator.swing.SwingValidator;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchRowModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchRowModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -27,7 +27,7 @@
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.MacroWasteBatch;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchTableModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchTableModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -28,8 +28,6 @@
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import org.jdesktop.swingx.table.TableColumnModelExt;
-import javax.swing.table.TableColumnModel;
-
import static org.nuiton.i18n.I18n.n_;
/**
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUI.jaxx 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,10 +22,10 @@
#L%
-->
<JPanel id='homePanel' layout='{new BorderLayout()}'
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<MacroWasteBatchUIModel, MacroWasteBatchUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<MacroWasteBatchUIModel, MacroWasteBatchUIHandler>'>
<import>
- fr.ifremer.tutti.ui.swing.TuttiUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
fr.ifremer.tutti.ui.swing.TuttiUIContext
fr.ifremer.tutti.ui.swing.util.editor.LongTextEditorUI
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUIHandler.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/macrowaste/MacroWasteBatchUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -30,10 +30,10 @@
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.data.MacroWasteBatch;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
-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.EditCatchesUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.editor.AttachmentCellComponent;
import fr.ifremer.tutti.ui.swing.util.editor.LongTextCellComponent;
import jaxx.runtime.validator.swing.SwingValidator;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchRowModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchRowModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -27,7 +27,7 @@
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.PlanktonBatch;
import fr.ifremer.tutti.persistence.entities.referential.Species;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchTableModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchTableModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -28,8 +28,6 @@
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import org.jdesktop.swingx.table.TableColumnModelExt;
-import javax.swing.table.TableColumnModel;
-
import static org.nuiton.i18n.I18n.n_;
/**
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUI.jaxx 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,10 +22,10 @@
#L%
-->
<JPanel id='homePanel' layout='{new BorderLayout()}'
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<PlanktonBatchUIModel, PlanktonBatchUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<PlanktonBatchUIModel, PlanktonBatchUIHandler>'>
<import>
- fr.ifremer.tutti.ui.swing.TuttiUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
fr.ifremer.tutti.ui.swing.TuttiUIContext
fr.ifremer.tutti.ui.swing.util.editor.LongTextEditorUI
fr.ifremer.tutti.ui.swing.util.editor.AttachmentEditorUI
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -31,10 +31,10 @@
import fr.ifremer.tutti.persistence.entities.data.PlanktonBatch;
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.EditCatchesUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.editor.AttachmentCellComponent;
import fr.ifremer.tutti.ui.swing.util.editor.LongTextCellComponent;
import jaxx.runtime.validator.swing.SwingValidator;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/RemoveSpeciesBatchAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/RemoveSpeciesBatchAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/RemoveSpeciesBatchAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -28,14 +28,12 @@
import com.google.common.collect.Sets;
import fr.ifremer.tutti.persistence.TuttiPersistence;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
-import java.awt.event.ActionEvent;
import java.util.Set;
import static org.nuiton.i18n.I18n._;
@@ -48,8 +46,6 @@
*/
public class RemoveSpeciesBatchAction extends AbstractTuttiAction<SpeciesBatchUIModel, SpeciesBatchUI, SpeciesBatchUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(RemoveSpeciesBatchAction.class);
@@ -58,7 +54,6 @@
public RemoveSpeciesBatchAction(SpeciesBatchUIHandler handler) {
super(handler,
- "removeSpeciesBatch",
"batch-delete",
_("tutti.action.removeSpeciesBatch"),
_("tutti.action.removeSpeciesBatch.tip"),
@@ -69,10 +64,10 @@
}
@Override
- protected void doAction(ActionEvent event) {
+ protected void doAction() {
TuttiPersistence persistenceService =
- getContext().getService(PersistenceService.class);
+ getContext().getPersistenceService();
SpeciesBatchUIHandler handler = getHandler();
@@ -101,7 +96,7 @@
table.setRowSelectionInterval(parentIndex, parentIndex);
// remove all his children
- removeSpeciesSubBatchAction.doAction(event);
+ removeSpeciesSubBatchAction.performAndReleaseAction();
} else {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/RemoveSpeciesSubBatchAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/RemoveSpeciesSubBatchAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/RemoveSpeciesSubBatchAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -28,14 +28,12 @@
import com.google.common.collect.Sets;
import fr.ifremer.tutti.persistence.TuttiPersistence;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
-import java.awt.event.ActionEvent;
import java.util.Set;
import static org.nuiton.i18n.I18n._;
@@ -48,29 +46,24 @@
*/
public class RemoveSpeciesSubBatchAction extends AbstractTuttiAction<SpeciesBatchUIModel, SpeciesBatchUI, SpeciesBatchUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(RemoveSpeciesSubBatchAction.class);
public RemoveSpeciesSubBatchAction(SpeciesBatchUIHandler handler) {
super(handler,
- "removeSpeciesSubBatch",
"batch-delete",
_("tutti.action.removeSpeciesSubBatch"),
_("tutti.action.removeSpeciesSubBatch.tip"),
false
);
-
-
}
@Override
- protected void doAction(ActionEvent event) {
+ protected void doAction() {
TuttiPersistence persistenceService =
- getContext().getService(PersistenceService.class);
+ getContext().getPersistenceService();
SpeciesBatchUIHandler handler = getHandler();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/RenameSpeciesBatchAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/RenameSpeciesBatchAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/RenameSpeciesBatchAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -27,12 +27,11 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
-import java.awt.event.ActionEvent;
import java.util.Collection;
import java.util.List;
@@ -46,8 +45,6 @@
*/
public class RenameSpeciesBatchAction extends AbstractTuttiAction<SpeciesBatchUIModel, SpeciesBatchUI, SpeciesBatchUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log = LogFactory.getLog(RenameSpeciesBatchAction.class);
@@ -55,7 +52,6 @@
public RenameSpeciesBatchAction(SpeciesBatchUIHandler handler) {
super(handler,
- "renameSpeciesBatch",
"batch-rename",
_("tutti.action.renameSpeciesBatch"),
_("tutti.action.renameSpeciesBatch.tip"),
@@ -65,8 +61,8 @@
}
@Override
- protected boolean prepareAction(ActionEvent event) {
- boolean result = super.prepareAction(event);
+ protected boolean prepareAction() {
+ boolean result = super.prepareAction();
SpeciesBatchUIHandler handler = getHandler();
@@ -90,20 +86,20 @@
}
@Override
- protected void releaseAction(ActionEvent event) {
+ protected void releaseAction() {
selectedSpecies = null;
- super.releaseAction(event);
+ super.releaseAction();
}
@Override
- protected void doAction(ActionEvent event) {
+ protected void doAction() {
SpeciesBatchUIHandler handler = getHandler();
SpeciesBatchTableModel tableModel = handler.getTableModel();
JXTable table = handler.getTable();
SpeciesBatchRowModel row = tableModel.getEntry(table.getSelectedRow());
- PersistenceService persistenceService = getService(PersistenceService.class);
+ PersistenceService persistenceService = getContext().getPersistenceService();
persistenceService.changeSpeciesBatchSpecies(row.getId(), selectedSpecies);
Collection<Species> speciesUsed = getModel().getSpeciesUsed()
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SelectSpeciesUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SelectSpeciesUI.jaxx 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SelectSpeciesUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,11 +22,11 @@
#L%
-->
<JPanel layout='{new BorderLayout()}' id='selectSpeciesPopup'
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<SelectSpeciesUIModel, SelectSpeciesUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<SelectSpeciesUIModel, SelectSpeciesUIHandler>'>
<import>
fr.ifremer.tutti.persistence.entities.referential.Species
- fr.ifremer.tutti.ui.swing.TuttiUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
jaxx.runtime.swing.editor.bean.BeanComboBox
</import>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SelectSpeciesUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SelectSpeciesUIHandler.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SelectSpeciesUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -27,14 +27,15 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.referential.Species;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler;
-import fr.ifremer.tutti.ui.swing.TuttiUI;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+
/**
* @author kmorin <kmorin(a)codelutin.com>
* @since 1.0
@@ -60,14 +61,14 @@
initBeanComboBox(ui.getSpeciesCombo(),
Lists.<Species>newArrayList(),
null);
-
+
getModel().addPropertyChangeListener(SelectSpeciesUIModel.PROPERTY_SPECIES,
- new PropertyChangeListener() {
+ new PropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent evt) {
- ui.getSpeciesCombo().getHandler().sortData();
- }
- });
+ public void propertyChange(PropertyChangeEvent evt) {
+ ui.getSpeciesCombo().getHandler().sortData();
+ }
+ });
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SelectSpeciesUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SelectSpeciesUIModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SelectSpeciesUIModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -27,7 +27,7 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.referential.Species;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import java.util.List;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -31,8 +31,8 @@
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyRowModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiComputedOrNotData;
import org.apache.commons.collections.CollectionUtils;
import org.nuiton.util.beans.Binder;
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,10 +22,10 @@
#L%
-->
<JPanel id='homePanel' layout='{new BorderLayout()}'
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<SpeciesBatchUIModel, SpeciesBatchUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<SpeciesBatchUIModel, SpeciesBatchUIHandler>'>
<import>
- fr.ifremer.tutti.ui.swing.TuttiUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
fr.ifremer.tutti.ui.swing.util.editor.LongTextEditorUI
fr.ifremer.tutti.ui.swing.util.editor.AttachmentEditorUI
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -41,7 +41,6 @@
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;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
@@ -54,6 +53,7 @@
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.split.SplitSpeciesBatchUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.split.SplitSpeciesBatchUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.editor.AttachmentCellComponent;
import fr.ifremer.tutti.ui.swing.util.editor.LongTextCellComponent;
@@ -399,13 +399,13 @@
// get loaded protocol
- protocol = TuttiUIUtil.getProtocol(context);
+ protocol = getDataContext().getProtocol();
lengthCaracterics = Lists.newArrayListWithCapacity(
protocol.sizeLengthClassesPmfmId());
Map<String, Caracteristic> allCaractericsById =
- TuttiEntities.splitById(persistenceService.getAllCaracteristic());
+ TuttiEntities.splitById(getDataContext().getCaracteristics());
if (!protocol.isLengthClassesPmfmIdEmpty()) {
for (String id : protocol.getLengthClassesPmfmId()) {
@@ -417,12 +417,12 @@
// use all caracteristics
lengthCaracterics = Lists.newArrayList(
- persistenceService.getAllCaracteristic());
+ getDataContext().getCaracteristics());
}
// use only the referent here, if the user needs a synonym, he will
// click on the button to select another species
- List<Species> speciesList = persistenceService.getAllReferentSpecies();
+ List<Species> speciesList = getDataContext().getReferentSpecies();
SPECIES_REFERENT_CONTEXT_ENTRY.setContextValue(ui, speciesList);
FREQUENCY_LENGTH_CONTEXT_ENTRY.setContextValue(ui, lengthCaracterics);
@@ -452,7 +452,7 @@
// get loaded protocol
- TuttiProtocol protocol = TuttiUIUtil.getProtocol(context);
+ TuttiProtocol protocol = getDataContext().getProtocol();
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/frequency/SpeciesFrequencyRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -29,7 +29,7 @@
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -30,7 +30,6 @@
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import org.jdesktop.swingx.table.TableColumnModelExt;
-import javax.swing.table.TableColumnModel;
import java.util.List;
import java.util.Map;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,12 +22,12 @@
#L%
-->
<JPanel id='homePanel' layout='{new BorderLayout()}'
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<SpeciesFrequencyUIModel, SpeciesFrequencyUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<SpeciesFrequencyUIModel, SpeciesFrequencyUIHandler>'>
<import>
fr.ifremer.tutti.persistence.entities.referential.Caracteristic
- fr.ifremer.tutti.ui.swing.TuttiUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
fr.ifremer.tutti.ui.swing.TuttiUIContext
fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI
fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchRowModel
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -33,7 +33,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.TuttiUI;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
@@ -42,7 +41,7 @@
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.FrequencyCellComponent.FrequencyCellEditor;
import fr.ifremer.tutti.ui.swing.util.Cancelable;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
-import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.validator.swing.SwingValidator;
@@ -190,7 +189,7 @@
if (context.isProtocolFilled()) {
// get loaded protocol
- protocol = TuttiUIUtil.getProtocol(context);
+ protocol = getDataContext().getProtocol();
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/AddSpeciesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/AddSpeciesAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/AddSpeciesAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -29,12 +29,10 @@
import fr.ifremer.tutti.persistence.TuttiPersistence;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.referential.Species;
-import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
import java.util.List;
import java.util.Map;
@@ -48,34 +46,32 @@
*/
public class AddSpeciesAction extends AbstractTuttiAction<CreateSpeciesBatchUIModel, CreateSpeciesBatchUI, CreateSpeciesBatchUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log = LogFactory.getLog(AddSpeciesAction.class);
protected List<Species> allSpecies;
-
+
protected List<Species> referentSpecies;
protected Species selectedSpecies;
public AddSpeciesAction(CreateSpeciesBatchUIHandler handler) {
super(handler,
- "addSpecies",
null,
_("tutti.action.addSpecies.text"),
_("tutti.action.addSpecies.tip"),
false
);
- TuttiPersistence persistenceService = getContext().getService(PersistenceService.class);
+ TuttiPersistence persistenceService =
+ getContext().getPersistenceService();
allSpecies = persistenceService.getAllSpecies();
referentSpecies = persistenceService.getAllReferentSpecies();
}
@Override
- protected boolean prepareAction(ActionEvent event) {
- boolean result = super.prepareAction(event);
+ protected boolean prepareAction() {
+ boolean result = super.prepareAction();
List<Species> availableSpecies = getModel().getAvailableSpecies();
List<Species> species = Lists.newArrayList(allSpecies);
@@ -88,7 +84,7 @@
}
@Override
- protected void doAction(ActionEvent event) {
+ protected void doAction() {
CreateSpeciesBatchUIModel model = getModel();
if (!selectedSpecies.isReferenceTaxon()) {
@@ -100,7 +96,7 @@
String decoratedReferent = decorate(selectedSpecies);
sendMessage(_("tutti.flash.information.species.replaced", decoratedSynonym, decoratedReferent));
}
-
+
List<Species> availableSpecies = Lists.newArrayList(model.getAvailableSpecies());
if (!availableSpecies.contains(selectedSpecies)) {
availableSpecies.add(selectedSpecies);
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,7 +22,7 @@
#L%
-->
<JPanel id='homePanel' layout='{new BorderLayout()}'
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<CreateSpeciesBatchUIModel, CreateSpeciesBatchUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<CreateSpeciesBatchUIModel, CreateSpeciesBatchUIHandler>'>
<import>
fr.ifremer.tutti.persistence.entities.referential.Species
@@ -31,7 +31,7 @@
fr.ifremer.tutti.ui.swing.content.operation.catches.species.SampleCategoryType
fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI
- fr.ifremer.tutti.ui.swing.TuttiUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
fr.ifremer.tutti.ui.swing.TuttiUIContext
org.jdesktop.swingx.JXTable
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -27,20 +27,18 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
import fr.ifremer.tutti.persistence.TuttiPersistence;
-import fr.ifremer.tutti.persistence.entities.TuttiEntities;
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;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SelectSpeciesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SelectSpeciesUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.util.Cancelable;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
@@ -50,9 +48,6 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.List;
-import java.util.Map;
-import jaxx.runtime.JAXXUtil;
-import jaxx.runtime.context.JAXXContextEntryDef;
/**
* Handler of {@link CreateSpeciesBatchUI}.
@@ -73,7 +68,7 @@
public CreateSpeciesBatchUIHandler(TuttiUI parentUi,
CreateSpeciesBatchUI ui) {
super(parentUi.getHandler().getContext(), ui);
- persistenceService = context.getService(PersistenceService.class);
+ this.persistenceService = context.getPersistenceService();
Caracteristic caracteristic =
persistenceService.getSortedUnsortedCaracteristic();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -28,7 +28,7 @@
import com.google.common.collect.Multimap;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchRowModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchRowModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,9 +25,9 @@
*/
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SampleCategory;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SampleCategoryType;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchTableModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchTableModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -28,8 +28,6 @@
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import org.jdesktop.swingx.table.TableColumnModelExt;
-import javax.swing.table.TableColumnModel;
-
import static org.nuiton.i18n.I18n.n_;
/**
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUI.jaxx 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,14 +22,14 @@
#L%
-->
<JPanel id='homePanel' layout='{new BorderLayout()}'
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<SplitSpeciesBatchUIModel, SplitSpeciesBatchUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<SplitSpeciesBatchUIModel, SplitSpeciesBatchUIHandler>'>
<import>
fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI
fr.ifremer.tutti.ui.swing.content.operation.catches.species.SampleCategoryType
fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUI
- fr.ifremer.tutti.ui.swing.TuttiUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
fr.ifremer.tutti.ui.swing.TuttiUIContext
org.jdesktop.swingx.JXTable
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -29,7 +29,6 @@
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
-import fr.ifremer.tutti.ui.swing.TuttiUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SampleCategory;
@@ -38,6 +37,7 @@
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUI;
import fr.ifremer.tutti.ui.swing.util.Cancelable;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.validator.swing.SwingValidator;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicRowModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicRowModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -26,7 +26,7 @@
*/
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import java.io.Serializable;
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -32,10 +32,9 @@
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
-import fr.ifremer.tutti.ui.swing.TuttiUI;
import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
-import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
import jaxx.runtime.swing.editor.bean.BeanComboBox;
@@ -200,7 +199,7 @@
}
model.setCaracteristicMap(caracteristicMap);
- TuttiProtocol protocol = TuttiUIUtil.getProtocol(context);
+ TuttiProtocol protocol = getDataContext().getProtocol();
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/CaracteristicTabUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/CaracteristicTabUIModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -28,7 +28,7 @@
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel;
import java.io.Serializable;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUI.jaxx 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,7 +22,7 @@
#L%
-->
<Table
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<EnvironmentTabUIModel, EnvironmentTabUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<EnvironmentTabUIModel, EnvironmentTabUIHandler>'>
<import>
fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTableModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTableModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -28,8 +28,6 @@
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import org.jdesktop.swingx.table.TableColumnModelExt;
-import javax.swing.table.TableColumnModel;
-
import static org.nuiton.i18n.I18n.n_;
/**
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUI.jaxx 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,7 +22,7 @@
#L%
-->
<Table
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<GearShootingTabUIModel, GearShootingTabUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<GearShootingTabUIModel, GearShootingTabUIHandler>'>
<import>
fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTableModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTableModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -28,8 +28,6 @@
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import org.jdesktop.swingx.table.TableColumnModelExt;
-import javax.swing.table.TableColumnModel;
-
import static org.nuiton.i18n.I18n.n_;
/**
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUI.jaxx 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,7 +22,7 @@
#L%
-->
<Table
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<HydrologyTabUIModel, HydrologyTabUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<HydrologyTabUIModel, HydrologyTabUIHandler>'>
<import>
fr.ifremer.tutti.persistence.entities.referential.Caracteristic
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTableModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTableModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -28,8 +28,6 @@
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import org.jdesktop.swingx.table.TableColumnModelExt;
-import javax.swing.table.TableColumnModel;
-
import static org.nuiton.i18n.I18n.n_;
/**
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/CancelEditProgramAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/CancelEditProgramAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/CancelEditProgramAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -24,11 +24,9 @@
* #L%
*/
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -39,11 +37,8 @@
*/
public class CancelEditProgramAction extends AbstractTuttiAction<EditProgramUIModel, EditProgramUI, EditProgramUIHandler> {
- private static final long serialVersionUID = 1L;
-
public CancelEditProgramAction(EditProgramUIHandler handler) {
super(handler,
- "cancelEditProgram",
"cancel",
_("tutti.action.cancel.editProgram"),
_("tutti.action.cancel.editProgram.tip"),
@@ -52,7 +47,7 @@
}
@Override
- protected void doAction(ActionEvent event) {
+ protected void doAction() {
getContext().setScreen(TuttiScreen.SELECT_CRUISE);
}
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,11 +22,11 @@
#L%
-->
<JPanel id='homePanel' layout='{new BorderLayout()}'
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<EditProgramUIModel, EditProgramUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<EditProgramUIModel, EditProgramUIHandler>'>
<import>
fr.ifremer.tutti.persistence.entities.referential.Zone
- fr.ifremer.tutti.ui.swing.TuttiUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
fr.ifremer.tutti.ui.swing.TuttiUIContext
jaxx.runtime.swing.editor.bean.BeanComboBox
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -26,9 +26,9 @@
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.TuttiScreen;
-import fr.ifremer.tutti.ui.swing.TuttiUI;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -60,7 +60,7 @@
public EditProgramUIHandler(TuttiUI parentUi, EditProgramUI ui) {
super(parentUi.getHandler().getContext(), ui);
- persistenceService = context.getService(PersistenceService.class);
+ this.persistenceService = context.getPersistenceService();
}
@Override
@@ -74,8 +74,8 @@
model.setExistingPrograms(programs);
- String surveyId = context.getProgramId();
- if (surveyId == null) {
+ String programId = context.getProgramId();
+ if (programId == null) {
if (log.isInfoEnabled()) {
log.info("Edit new program");
@@ -83,10 +83,10 @@
} else {
if (log.isInfoEnabled()) {
- log.info("Edit existing program " + surveyId);
+ log.info("Edit existing program " + programId);
}
// load existing program
- Program program = persistenceService.getProgram(surveyId);
+ Program program = persistenceService.getProgram(programId);
model.fromBean(program);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -26,7 +26,7 @@
import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.persistence.entities.referential.Zone;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -28,14 +28,11 @@
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
-import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -44,14 +41,11 @@
*/
public class SaveProgramAction extends AbstractTuttiAction<EditProgramUIModel, EditProgramUI, EditProgramUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log = LogFactory.getLog(SaveProgramAction.class);
public SaveProgramAction(EditProgramUIHandler handler) {
super(handler,
- "saveProgram",
"save",
_("tutti.action.saveProgram"),
_("tutti.action.saveProgram.tip"),
@@ -62,14 +56,12 @@
/**
* If the event source is a TuttiScreen, then the screen changes to the source.
* Otherwise, the screen changes to the home.
- *
- * @param event
*/
@Override
- protected void doAction(ActionEvent event) {
+ protected void doAction() {
TuttiUIContext context = getContext();
PersistenceService persistenceService =
- getService(PersistenceService.class);
+ getContext().getPersistenceService();
EditProgramUIModel model = getModel();
@@ -85,13 +77,14 @@
context.setProgramId(saved.getId());
- TuttiScreen nextScreen;
- if (event.getSource().getClass().isAssignableFrom(TuttiScreen.class)) {
- nextScreen = (TuttiScreen) event.getSource();
- } else {
- nextScreen = TuttiScreen.SELECT_CRUISE;
- }
- context.setScreen(nextScreen);
+ //TODO-TC Make this work again but in another manner
+// TuttiScreen nextScreen;
+// if (event.getSource().getClass().isAssignableFrom(TuttiScreen.class)) {
+// nextScreen = (TuttiScreen) event.getSource();
+// } else {
+// nextScreen = TuttiScreen.SELECT_CRUISE;
+// }
+// context.setScreen(nextScreen);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/AddSpeciesProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/AddSpeciesProtocolAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/AddSpeciesProtocolAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -27,9 +27,8 @@
import com.google.common.base.Preconditions;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.service.DecoratorService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
-import java.awt.event.ActionEvent;
import java.util.Collection;
import static org.nuiton.i18n.I18n._;
@@ -42,11 +41,8 @@
*/
public class AddSpeciesProtocolAction extends AbstractTuttiAction<EditProtocolUIModel, EditProtocolUI, EditProtocolUIHandler> {
- private static final long serialVersionUID = 1L;
-
public AddSpeciesProtocolAction(EditProtocolUIHandler handler) {
super(handler,
- "addSpeciesProtocol",
"add",
null,
_("tutti.action.addSpeciesProtocol.tip"),
@@ -55,7 +51,7 @@
}
@Override
- protected void doAction(ActionEvent event) {
+ protected void doAction() {
EditProtocolUI ui = getUI();
@@ -66,7 +62,7 @@
Preconditions.checkNotNull(
species, "Can't add a speciesProtocol with a null species");
Preconditions.checkArgument(species.isReferenceTaxon(),
- "Can't add a speciesProtocol with a not referent species");
+ "Can't add a speciesProtocol with a not referent species");
Integer taxonId = species.getReferenceTaxonId();
String taxonIdStr = String.valueOf(taxonId);
@@ -74,7 +70,7 @@
// remove all synonyms of this taxon
Collection<Species> allSynonyms = getModel().getAllSynonyms(taxonIdStr);
getModel().getAllSynonyms().removeAll(allSynonyms);
-
+
ui.getSpeciesComboBox().getData().remove(species);
ui.getSpeciesComboBox().getHandler().sortData();
handler.selectFirstInCombo(ui.getSpeciesComboBox());
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CancelEditProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CancelEditProtocolAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CancelEditProtocolAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -24,11 +24,9 @@
* #L%
*/
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
-import java.awt.event.ActionEvent;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -39,11 +37,8 @@
*/
public class CancelEditProtocolAction extends AbstractTuttiAction<EditProtocolUIModel, EditProtocolUI, EditProtocolUIHandler> {
- private static final long serialVersionUID = 1L;
-
public CancelEditProtocolAction(EditProtocolUIHandler handler) {
super(handler,
- "cancelEditProtocol",
"cancel",
_("tutti.action.cancel.editProtocol"),
_("tutti.action.cancel.editProtocol.tip"),
@@ -52,7 +47,7 @@
}
@Override
- protected void doAction(ActionEvent event) {
+ protected void doAction() {
getContext().setScreen(TuttiScreen.SELECT_CRUISE);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesRowModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesRowModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -27,7 +27,7 @@
import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.Species;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -28,8 +28,6 @@
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import org.jdesktop.swingx.table.TableColumnModelExt;
-import javax.swing.table.TableColumnModel;
-
import static org.nuiton.i18n.I18n.n_;
/**
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,12 +22,12 @@
#L%
-->
<JPanel id='homePanel' layout='{new BorderLayout()}'
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<EditProtocolUIModel, EditProtocolUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<EditProtocolUIModel, EditProtocolUIHandler>'>
<import>
fr.ifremer.tutti.persistence.entities.referential.Caracteristic
fr.ifremer.tutti.persistence.entities.referential.Species
- fr.ifremer.tutti.ui.swing.TuttiUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
fr.ifremer.tutti.ui.swing.TuttiUIContext
jaxx.runtime.swing.editor.bean.BeanComboBox
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -27,7 +27,6 @@
import com.ezware.oxbow.swingbits.util.Preconditions;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
-import com.google.common.collect.Multimaps;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
@@ -35,13 +34,12 @@
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.MainUIHandler;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
-import fr.ifremer.tutti.ui.swing.TuttiUI;
import fr.ifremer.tutti.ui.swing.content.home.ImportProtocolAction;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SelectSpeciesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SelectSpeciesUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
-import java.awt.Dimension;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.swing.editor.bean.BeanDoubleList;
import jaxx.runtime.swing.editor.bean.BeanDoubleListModel;
@@ -59,6 +57,7 @@
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
import javax.swing.table.TableColumnModel;
+import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
@@ -80,7 +79,7 @@
LogFactory.getLog(EditProtocolUIHandler.class);
protected SelectSpeciesUI dialog;
-
+
public EditProtocolUIHandler(TuttiUI parentUi, EditProtocolUI ui) {
super(parentUi.getHandler().getContext(), ui);
}
@@ -154,20 +153,20 @@
// load cache data
- List<Species> allSpecies = Lists.newArrayList(persistenceService.getAllSpecies());
+ List<Species> allSpecies = Lists.newArrayList(getDataContext().getSpecies());
model.setAllSpecies(allSpecies);
- Multimap<String, Species> allSpeciesByTaxonId =
+ Multimap<String, Species> allSpeciesByTaxonId =
TuttiEntities.splitByReferenceTaxonId(allSpecies);
model.setAllSpeciesByTaxonId(allSpeciesByTaxonId);
Map<String, Species> allReferentSpeciesByTaxonId = TuttiEntities.splitByTaxonId(
- persistenceService.getAllReferentSpecies());
+ getDataContext().getReferentSpecies());
model.setAllReferentSpeciesByTaxonId(allReferentSpeciesByTaxonId);
List<TuttiProtocol> protocols = persistenceService.getAllProtocol();
model.setExistingProtocols(protocols);
- List<Caracteristic> caracteristics = persistenceService.getAllCaracteristic();
+ List<Caracteristic> caracteristics = getDataContext().getCaracteristics();
model.setCaracteristics(caracteristics);
Map<String, Caracteristic> allCaracteristic = TuttiEntities.splitById(caracteristics);
@@ -274,12 +273,12 @@
initTable(table);
- Collection<Species> referents =
+ Collection<Species> referents =
model.getAllReferentSpeciesByTaxonId().values();
List<Species> speciesList = Lists.newArrayList(referents);
initBeanComboBox(ui.getSpeciesComboBox(), speciesList, null);
-
+
List<EditProtocolSpeciesRowModel> rows;
// build speciesProtocol rows
@@ -322,7 +321,7 @@
// if new protocol can already cancel his creation
model.setModify(model.isCreate());
-
+
dialog = new SelectSpeciesUI(ui);
}
@@ -349,7 +348,7 @@
Species species = allReferentSpeciesByTaxonId.get(taxonIdStr);
// remove it from the combo box
speciesList.remove(species);
-
+
EditProtocolSpeciesRowModel row = getTableModel().createNewRow();
row.setSpecies(species);
row.setLengthStepPmfm(allCaracteristic.get(speciesProtocol.getLengthStepPmfmId()));
@@ -451,7 +450,7 @@
return model.getSelectedSpecies();
}
-
+
//------------------------------------------------------------------------//
//-- Internal methods --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -98,9 +98,9 @@
protected boolean removeSpeciesEnabled;
protected List<Species> allSpecies;
-
+
protected List<Species> allSynonyms;
-
+
protected Multimap<String, Species> allSpeciesByTaxonId;
protected Map<String, Species> allReferentSpeciesByTaxonId;
@@ -255,7 +255,7 @@
public Multimap<String, Species> getAllSpeciesByTaxonId() {
return allSpeciesByTaxonId;
}
-
+
public Collection<Species> getAllSynonyms(String taxonId) {
return allSpeciesByTaxonId.get(taxonId);
}
@@ -267,7 +267,7 @@
public List<Species> getAllSynonyms() {
return allSynonyms;
}
-
+
public Map<String, Species> getAllReferentSpeciesByTaxonId() {
return allReferentSpeciesByTaxonId;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportAllCaracteristicAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportAllCaracteristicAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportAllCaracteristicAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,12 +25,11 @@
*/
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
import java.io.File;
import static org.nuiton.i18n.I18n._;
@@ -43,8 +42,6 @@
*/
public class ExportAllCaracteristicAction extends AbstractTuttiAction<EditProtocolUIModel, EditProtocolUI, EditProtocolUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(ExportAllCaracteristicAction.class);
@@ -53,7 +50,6 @@
public ExportAllCaracteristicAction(EditProtocolUIHandler handler) {
super(handler,
- "exportAllCaracteristic",
"export",
_("tutti.action.exportAllCaracteristic"),
_("tutti.action.exportAllCaracteristic.tip"),
@@ -62,7 +58,7 @@
}
@Override
- protected boolean prepareAction(ActionEvent event) {
+ protected boolean prepareAction() {
// choose file to import
file = TuttiUIUtil.chooseFile(
@@ -74,19 +70,19 @@
);
boolean doAction = file != null;
if (doAction) {
- super.prepareAction(event);
+ super.prepareAction();
}
return doAction;
}
@Override
- protected void releaseAction(ActionEvent event) {
- super.releaseAction(event);
+ protected void releaseAction() {
+ super.releaseAction();
file = null;
}
@Override
- protected void doAction(ActionEvent e) throws Exception {
+ protected void doAction() throws Exception {
if (log.isInfoEnabled()) {
log.info("Will export all caracteristic to file: " + file);
@@ -94,7 +90,7 @@
// export protocol caracteristics
TuttiProtocolImportExportService service =
- getService(TuttiProtocolImportExportService.class);
+ getContext().getTuttiProtocolImportExportService();
service.exportAllCaracteristic(file, getModel().getAllCaracteristic());
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolCaracteristicAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolCaracteristicAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolCaracteristicAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -26,12 +26,11 @@
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
import java.io.File;
import static org.nuiton.i18n.I18n._;
@@ -44,8 +43,6 @@
*/
public class ExportProtocolCaracteristicAction extends AbstractTuttiAction<EditProtocolUIModel, EditProtocolUI, EditProtocolUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(ExportProtocolCaracteristicAction.class);
@@ -54,7 +51,6 @@
public ExportProtocolCaracteristicAction(EditProtocolUIHandler handler) {
super(handler,
- "exportProtocolCaracteristic",
"export",
_("tutti.action.exportProtocolCaracteristic"),
_("tutti.action.exportProtocolCaracteristic.tip"),
@@ -63,7 +59,7 @@
}
@Override
- protected boolean prepareAction(ActionEvent event) {
+ protected boolean prepareAction() {
// choose file to import
file = TuttiUIUtil.chooseFile(
@@ -75,19 +71,19 @@
);
boolean doAction = file != null;
if (doAction) {
- super.prepareAction(event);
+ super.prepareAction();
}
return doAction;
}
@Override
- protected void releaseAction(ActionEvent event) {
- super.releaseAction(event);
+ protected void releaseAction() {
+ super.releaseAction();
file = null;
}
@Override
- protected void doAction(ActionEvent e) throws Exception {
+ protected void doAction() throws Exception {
if (log.isInfoEnabled()) {
log.info("Will export protocol caracteristic to file: " + file);
@@ -98,7 +94,7 @@
// export protocol caracteristics
TuttiProtocolImportExportService service =
- getService(TuttiProtocolImportExportService.class);
+ getContext().getTuttiProtocolImportExportService();
service.exportProtocolCaracteristic(file,
protocol,
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolSpeciesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolSpeciesAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolSpeciesAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -27,12 +27,11 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
import java.io.File;
import java.util.List;
@@ -46,8 +45,6 @@
*/
public class ExportProtocolSpeciesAction extends AbstractTuttiAction<EditProtocolUIModel, EditProtocolUI, EditProtocolUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(ExportProtocolSpeciesAction.class);
@@ -56,7 +53,6 @@
public ExportProtocolSpeciesAction(EditProtocolUIHandler handler) {
super(handler,
- "exportProtocolSpecies",
"export",
_("tutti.action.exportProtocolSpecies"),
_("tutti.action.exportProtocolSpecies.tip"),
@@ -65,7 +61,7 @@
}
@Override
- protected boolean prepareAction(ActionEvent event) {
+ protected boolean prepareAction() {
// choose file to export
file = TuttiUIUtil.chooseFile(
@@ -77,19 +73,19 @@
);
boolean doAction = file != null;
if (doAction) {
- super.prepareAction(event);
+ super.prepareAction();
}
return doAction;
}
@Override
- protected void releaseAction(ActionEvent event) {
- super.releaseAction(event);
+ protected void releaseAction() {
+ super.releaseAction();
file = null;
}
@Override
- protected void doAction(ActionEvent e) throws Exception {
+ protected void doAction() throws Exception {
if (log.isInfoEnabled()) {
log.info("Will export protocol species to file: " + file);
@@ -108,7 +104,7 @@
// import
TuttiProtocolImportExportService service =
- getService(TuttiProtocolImportExportService.class);
+ getContext().getTuttiProtocolImportExportService();
service.exportProtocolSpecies(file,
protocols,
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolCaracteristicAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolCaracteristicAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolCaracteristicAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -26,12 +26,11 @@
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
import java.io.File;
import static org.nuiton.i18n.I18n._;
@@ -44,8 +43,6 @@
*/
public class ImportProtocolCaracteristicAction extends AbstractTuttiAction<EditProtocolUIModel, EditProtocolUI, EditProtocolUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(ImportProtocolCaracteristicAction.class);
@@ -54,7 +51,6 @@
public ImportProtocolCaracteristicAction(EditProtocolUIHandler handler) {
super(handler,
- "importProtocolCaracteristic",
"import",
_("tutti.action.importProtocolCaracteristic"),
_("tutti.action.importProtocolCaracteristic.tip"),
@@ -63,7 +59,7 @@
}
@Override
- protected boolean prepareAction(ActionEvent event) {
+ protected boolean prepareAction() {
// choose file to import
file = TuttiUIUtil.chooseFile(
@@ -75,19 +71,19 @@
);
boolean doAction = file != null;
if (doAction) {
- super.prepareAction(event);
+ super.prepareAction();
}
return doAction;
}
@Override
- protected void releaseAction(ActionEvent event) {
- super.releaseAction(event);
+ protected void releaseAction() {
+ super.releaseAction();
file = null;
}
@Override
- protected void doAction(ActionEvent e) throws Exception {
+ protected void doAction() throws Exception {
if (log.isInfoEnabled()) {
log.info("Will import protocol caracteristic file: " + file);
@@ -100,7 +96,7 @@
TuttiProtocol protocol = model.toBean();
TuttiProtocolImportExportService service =
- getService(TuttiProtocolImportExportService.class);
+ getContext().getTuttiProtocolImportExportService();
service.importProtocolCaracteristic(file,
protocol,
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolSpeciesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolSpeciesAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolSpeciesAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -27,13 +27,12 @@
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import jaxx.runtime.swing.editor.bean.BeanComboBox;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
import java.io.File;
import java.util.List;
@@ -47,8 +46,6 @@
*/
public class ImportProtocolSpeciesAction extends AbstractTuttiAction<EditProtocolUIModel, EditProtocolUI, EditProtocolUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(ImportProtocolSpeciesAction.class);
@@ -57,7 +54,6 @@
public ImportProtocolSpeciesAction(EditProtocolUIHandler handler) {
super(handler,
- "importProtocolSpecies",
"import",
_("tutti.action.importProtocolSpecies"),
_("tutti.action.importProtocolSpecies.tip"),
@@ -66,7 +62,7 @@
}
@Override
- protected boolean prepareAction(ActionEvent event) {
+ protected boolean prepareAction() {
// choose file to import
file = TuttiUIUtil.chooseFile(
@@ -78,19 +74,19 @@
);
boolean doAction = file != null;
if (doAction) {
- super.prepareAction(event);
+ super.prepareAction();
}
return doAction;
}
@Override
- protected void releaseAction(ActionEvent event) {
- super.releaseAction(event);
+ protected void releaseAction() {
+ super.releaseAction();
file = null;
}
@Override
- protected void doAction(ActionEvent e) throws Exception {
+ protected void doAction() throws Exception {
if (log.isInfoEnabled()) {
log.info("Will import protocol species file: " + file);
@@ -104,7 +100,7 @@
// import
TuttiProtocolImportExportService service =
- getService(TuttiProtocolImportExportService.class);
+ getContext().getTuttiProtocolImportExportService();
service.importProtocolSpecies(file,
protocol,
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/RemoveSpeciesProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/RemoveSpeciesProtocolAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/RemoveSpeciesProtocolAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -28,14 +28,12 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.service.DecoratorService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import jaxx.runtime.swing.editor.bean.BeanComboBox;
-import java.awt.event.ActionEvent;
-import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
-import jaxx.runtime.swing.editor.bean.BeanComboBox;
import static org.nuiton.i18n.I18n._;
@@ -47,11 +45,8 @@
*/
public class RemoveSpeciesProtocolAction extends AbstractTuttiAction<EditProtocolUIModel, EditProtocolUI, EditProtocolUIHandler> {
- private static final long serialVersionUID = 1L;
-
public RemoveSpeciesProtocolAction(EditProtocolUIHandler handler) {
super(handler,
- "removeSpeciesProtocol",
"batch-delete",
_("tutti.action.removeSpeciesProtocol"),
_("tutti.action.removeSpeciesProtocol.tip"),
@@ -60,7 +55,7 @@
}
@Override
- protected void doAction(ActionEvent event) {
+ protected void doAction() {
EditProtocolUIHandler handler = getHandler();
int rowIndex = handler.getTable().getSelectedRow();
@@ -77,7 +72,7 @@
BeanComboBox<Species> combo = getUI().getSpeciesComboBox();
combo.getData().add(species);
combo.getHandler().sortData();
-
+
EditProtocolUIModel model = getModel();
Integer taxonId = species.getReferenceTaxonId();
List<Species> allSynonyms = Lists.newArrayList(
@@ -97,7 +92,7 @@
}
return o1.getName().compareTo(o2.getName());
}
-
+
});
// remove the row from the model(do it after treating the comboBox which can be long)
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -30,13 +30,11 @@
import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
-import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
import java.util.List;
import static org.nuiton.i18n.I18n._;
@@ -52,11 +50,8 @@
/** Logger. */
private static final Log log = LogFactory.getLog(SaveProtocolAction.class);
- private static final long serialVersionUID = 1L;
-
public SaveProtocolAction(EditProtocolUIHandler handler) {
super(handler,
- "saveProtocol",
"save",
_("tutti.action.saveProtocol"),
_("tutti.action.saveProtocol.tip"),
@@ -67,16 +62,14 @@
/**
* If the event source is a TuttiScreen, then the screen changes to the source.
* Otherwise, the screen changes to the home.
- *
- * @param event
*/
@Override
- protected void doAction(ActionEvent event) {
+ protected void doAction() {
EditProtocolUIModel model = getModel();
TuttiUIContext context = getContext();
EditProtocolUIHandler handler = getHandler();
PersistenceService persistenceService =
- context.getService(PersistenceService.class);
+ context.getPersistenceService();
TuttiProtocol bean = model.toBean();
@@ -106,13 +99,14 @@
context.setProtocolId(saved.getId());
- TuttiScreen nextScreen;
- if (event.getSource().getClass().isAssignableFrom(TuttiScreen.class)) {
- nextScreen = (TuttiScreen) event.getSource();
- } else {
- nextScreen = TuttiScreen.SELECT_CRUISE;
- }
- context.setScreen(nextScreen);
+ //TODO-TC Make this works again (but in another manner)...
+// TuttiScreen nextScreen;
+// if (event.getSource().getClass().isAssignableFrom(TuttiScreen.class)) {
+// nextScreen = (TuttiScreen) event.getSource();
+// } else {
+// nextScreen = TuttiScreen.SELECT_CRUISE;
+// }
+// context.setScreen(nextScreen);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SelectOtherSpeciesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SelectOtherSpeciesAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SelectOtherSpeciesAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -27,25 +27,23 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.referential.Species;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.species.split.*;
-import java.awt.event.ActionEvent;
-import java.util.Collection;
-import java.util.List;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.species.split.AddSpeciesAction;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+
+import java.util.List;
+
import static org.nuiton.i18n.I18n._;
/**
* Action to select a species which is not in the referent list.
- *
+ *
* @author kmorin <kmorin(a)codelutin.com>
* @since 1.1
*/
public class SelectOtherSpeciesAction extends AbstractTuttiAction<EditProtocolUIModel, EditProtocolUI, EditProtocolUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log = LogFactory.getLog(AddSpeciesAction.class);
@@ -53,7 +51,6 @@
public SelectOtherSpeciesAction(EditProtocolUIHandler handler) {
super(handler,
- "selectOtherSpecies",
null,
_("tutti.action.selectOtherSpecies.text"),
_("tutti.action.selectOtherSpecies.tip"),
@@ -62,8 +59,8 @@
}
@Override
- protected boolean prepareAction(ActionEvent event) {
- boolean result = super.prepareAction(event);
+ protected boolean prepareAction() {
+ boolean result = super.prepareAction();
EditProtocolUIModel model = getModel();
List<Species> species = Lists.newArrayList(model.getAllSynonyms());
@@ -76,7 +73,7 @@
}
@Override
- protected void doAction(ActionEvent event) {
+ protected void doAction() {
String decoratedSynonym = decorate(selectedSpecies);
String taxonId = String.valueOf(selectedSpecies.getReferenceTaxonId());
selectedSpecies = getModel().getAllReferentSpeciesByTaxonId().get(taxonId);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryGearExampleAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,13 +25,12 @@
*/
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
import java.io.File;
import static org.nuiton.i18n.I18n._;
@@ -44,8 +43,6 @@
*/
public class ExportTemporaryGearExampleAction extends AbstractTuttiAction<TuttiUIContext, ManageTemporaryReferentialUI, ManageTemporaryReferentialUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(ExportTemporaryGearExampleAction.class);
@@ -54,7 +51,6 @@
public ExportTemporaryGearExampleAction(ManageTemporaryReferentialUIHandler handler) {
super(handler,
- "exportTemporaryGearExample",
"export",
_("tutti.action.exportTemporaryGearExample"),
_("tutti.action.exportTemporaryGearExample.tip"),
@@ -63,7 +59,7 @@
}
@Override
- protected boolean prepareAction(ActionEvent event) {
+ protected boolean prepareAction() {
// choose file to export
file = TuttiUIUtil.chooseFile(
@@ -75,19 +71,19 @@
);
boolean doAction = file != null;
if (doAction) {
- super.prepareAction(event);
+ super.prepareAction();
}
return doAction;
}
@Override
- protected void releaseAction(ActionEvent event) {
- super.releaseAction(event);
+ protected void releaseAction() {
+ super.releaseAction();
file = null;
}
@Override
- protected void doAction(ActionEvent e) throws Exception {
+ protected void doAction() throws Exception {
if (log.isInfoEnabled()) {
log.info("Will export example gears temporary " +
@@ -95,7 +91,7 @@
}
TuttiReferentialImportExportService service =
- getService(TuttiReferentialImportExportService.class);
+ getContext().getTuttiReferentialImportExportService();
service.exportTemporaryGearExample(file);
sendMessage("Exemple de référentiel temporaire d'engins exporté " +
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryPersonExampleAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,13 +25,12 @@
*/
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
import java.io.File;
import static org.nuiton.i18n.I18n._;
@@ -43,7 +42,6 @@
* @since 1.0
*/
public class ExportTemporaryPersonExampleAction extends AbstractTuttiAction<TuttiUIContext, ManageTemporaryReferentialUI, ManageTemporaryReferentialUIHandler> {
- private static final long serialVersionUID = 1L;
/** Logger. */
@@ -54,7 +52,6 @@
public ExportTemporaryPersonExampleAction(ManageTemporaryReferentialUIHandler handler) {
super(handler,
- "exportTemporaryPersonExample",
"export",
_("tutti.action.exportTemporaryPersonExample"),
_("tutti.action.exportTemporaryPersonExample.tip"),
@@ -63,7 +60,7 @@
}
@Override
- protected boolean prepareAction(ActionEvent event) {
+ protected boolean prepareAction() {
// choose file to export
file = TuttiUIUtil.chooseFile(
@@ -75,19 +72,19 @@
);
boolean doAction = file != null;
if (doAction) {
- super.prepareAction(event);
+ super.prepareAction();
}
return doAction;
}
@Override
- protected void releaseAction(ActionEvent event) {
- super.releaseAction(event);
+ protected void releaseAction() {
+ super.releaseAction();
file = null;
}
@Override
- protected void doAction(ActionEvent e) throws Exception {
+ protected void doAction() throws Exception {
if (log.isInfoEnabled()) {
log.info("Will export example persons temporary " +
@@ -95,7 +92,7 @@
}
TuttiReferentialImportExportService service =
- getService(TuttiReferentialImportExportService.class);
+ getContext().getTuttiReferentialImportExportService();
service.exportTemporaryPersonExample(file);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporarySpeciesExampleAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,13 +25,12 @@
*/
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
import java.io.File;
import static org.nuiton.i18n.I18n._;
@@ -44,8 +43,6 @@
*/
public class ExportTemporarySpeciesExampleAction extends AbstractTuttiAction<TuttiUIContext, ManageTemporaryReferentialUI, ManageTemporaryReferentialUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(ExportTemporarySpeciesExampleAction.class);
@@ -54,7 +51,6 @@
public ExportTemporarySpeciesExampleAction(ManageTemporaryReferentialUIHandler handler) {
super(handler,
- "exportTemporarySpeciesExample",
"export",
_("tutti.action.exportTemporarySpeciesExample"),
_("tutti.action.exportTemporarySpeciesExample.tip"),
@@ -63,7 +59,7 @@
}
@Override
- protected boolean prepareAction(ActionEvent event) {
+ protected boolean prepareAction() {
// choose file to export
file = TuttiUIUtil.chooseFile(
@@ -75,19 +71,19 @@
);
boolean doAction = file != null;
if (doAction) {
- super.prepareAction(event);
+ super.prepareAction();
}
return doAction;
}
@Override
- protected void releaseAction(ActionEvent event) {
- super.releaseAction(event);
+ protected void releaseAction() {
+ super.releaseAction();
file = null;
}
@Override
- protected void doAction(ActionEvent e) throws Exception {
+ protected void doAction() throws Exception {
if (log.isInfoEnabled()) {
log.info("Will export example species temporary " +
@@ -95,7 +91,7 @@
}
TuttiReferentialImportExportService service =
- getService(TuttiReferentialImportExportService.class);
+ getContext().getTuttiReferentialImportExportService();
service.exportTemporarySpeciesExample(file);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ExportTemporaryVesselExampleAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,13 +25,12 @@
*/
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
import java.io.File;
import static org.nuiton.i18n.I18n._;
@@ -44,8 +43,6 @@
*/
public class ExportTemporaryVesselExampleAction extends AbstractTuttiAction<TuttiUIContext, ManageTemporaryReferentialUI, ManageTemporaryReferentialUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(ExportTemporaryVesselExampleAction.class);
@@ -54,7 +51,6 @@
public ExportTemporaryVesselExampleAction(ManageTemporaryReferentialUIHandler handler) {
super(handler,
- "exportTemporaryVesselExample",
"export",
_("tutti.action.exportTemporaryVesselExample"),
_("tutti.action.exportTemporaryVesselExample.tip"),
@@ -63,7 +59,7 @@
}
@Override
- protected boolean prepareAction(ActionEvent event) {
+ protected boolean prepareAction() {
// choose file to export
file = TuttiUIUtil.chooseFile(
@@ -75,19 +71,19 @@
);
boolean doAction = file != null;
if (doAction) {
- super.prepareAction(event);
+ super.prepareAction();
}
return doAction;
}
@Override
- protected void releaseAction(ActionEvent event) {
- super.releaseAction(event);
+ protected void releaseAction() {
+ super.releaseAction();
file = null;
}
@Override
- protected void doAction(ActionEvent e) throws Exception {
+ protected void doAction() throws Exception {
if (log.isInfoEnabled()) {
log.info("Will export example vessels temporary " +
@@ -95,7 +91,7 @@
}
TuttiReferentialImportExportService service =
- getService(TuttiReferentialImportExportService.class);
+ getContext().getTuttiReferentialImportExportService();
service.exportTemporaryVesselExample(file);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryGearAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,13 +25,12 @@
*/
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
import java.io.File;
import static org.nuiton.i18n.I18n._;
@@ -44,8 +43,6 @@
*/
public class ImportTemporaryGearAction extends AbstractTuttiAction<TuttiUIContext, ManageTemporaryReferentialUI, ManageTemporaryReferentialUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(ImportTemporaryGearAction.class);
@@ -54,7 +51,6 @@
public ImportTemporaryGearAction(ManageTemporaryReferentialUIHandler handler) {
super(handler,
- "importTemporaryGear",
"import",
_("tutti.action.importTemporaryGear"),
_("tutti.action.importTemporaryGear.tip"),
@@ -63,7 +59,7 @@
}
@Override
- protected boolean prepareAction(ActionEvent event) {
+ protected boolean prepareAction() {
// choose file to import
file = TuttiUIUtil.chooseFile(
@@ -75,19 +71,19 @@
boolean doAction = file != null;
if (doAction) {
- super.prepareAction(event);
+ super.prepareAction();
}
return doAction;
}
@Override
- protected void releaseAction(ActionEvent event) {
- super.releaseAction(event);
+ protected void releaseAction() {
+ super.releaseAction();
file = null;
}
@Override
- protected void doAction(ActionEvent e) throws Exception {
+ protected void doAction() throws Exception {
if (log.isInfoEnabled()) {
log.info("Will import gear temporary " +
@@ -95,10 +91,13 @@
}
TuttiReferentialImportExportService service =
- getService(TuttiReferentialImportExportService.class);
+ getContext().getTuttiReferentialImportExportService();
service.importTemporaryGear(file);
+ // reset ui cache
+ getDataContext().resetGears();
+
sendMessage("Référentiel temporaire d'engins importé depuis le " +
"fichier " + file + ".");
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryPersonAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,13 +25,12 @@
*/
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
import java.io.File;
import static org.nuiton.i18n.I18n._;
@@ -44,8 +43,6 @@
*/
public class ImportTemporaryPersonAction extends AbstractTuttiAction<TuttiUIContext, ManageTemporaryReferentialUI, ManageTemporaryReferentialUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(ImportTemporaryPersonAction.class);
@@ -54,7 +51,6 @@
public ImportTemporaryPersonAction(ManageTemporaryReferentialUIHandler handler) {
super(handler,
- "importTemporaryPerson",
"import",
_("tutti.action.importTemporaryPerson"),
_("tutti.action.importTemporaryPerson.tip"),
@@ -63,7 +59,7 @@
}
@Override
- protected boolean prepareAction(ActionEvent event) {
+ protected boolean prepareAction() {
// choose file to import
file = TuttiUIUtil.chooseFile(
@@ -75,19 +71,19 @@
boolean doAction = file != null;
if (doAction) {
- super.prepareAction(event);
+ super.prepareAction();
}
return doAction;
}
@Override
- protected void releaseAction(ActionEvent event) {
- super.releaseAction(event);
+ protected void releaseAction() {
+ super.releaseAction();
file = null;
}
@Override
- protected void doAction(ActionEvent e) throws Exception {
+ protected void doAction() throws Exception {
if (log.isInfoEnabled()) {
log.info("Will import person temporary " +
@@ -95,10 +91,13 @@
}
TuttiReferentialImportExportService service =
- getService(TuttiReferentialImportExportService.class);
+ getContext().getTuttiReferentialImportExportService();
service.importTemporaryPerson(file);
+ // reset ui cache
+ getDataContext().resetPersons();
+
sendMessage("Référentiel temporaire de personnes importé depuis le " +
"fichier " + file + ".");
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporarySpeciesAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,13 +25,12 @@
*/
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
import java.io.File;
import static org.nuiton.i18n.I18n._;
@@ -44,8 +43,6 @@
*/
public class ImportTemporarySpeciesAction extends AbstractTuttiAction<TuttiUIContext, ManageTemporaryReferentialUI, ManageTemporaryReferentialUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(ImportTemporarySpeciesAction.class);
@@ -54,7 +51,6 @@
public ImportTemporarySpeciesAction(ManageTemporaryReferentialUIHandler handler) {
super(handler,
- "importTemporarySpecies",
"import",
_("tutti.action.importTemporarySpecies"),
_("tutti.action.importTemporarySpecies.tip"),
@@ -63,7 +59,7 @@
}
@Override
- protected boolean prepareAction(ActionEvent event) {
+ protected boolean prepareAction() {
// choose file to import
file = TuttiUIUtil.chooseFile(
@@ -75,19 +71,19 @@
boolean doAction = file != null;
if (doAction) {
- super.prepareAction(event);
+ super.prepareAction();
}
return doAction;
}
@Override
- protected void releaseAction(ActionEvent event) {
- super.releaseAction(event);
+ protected void releaseAction() {
+ super.releaseAction();
file = null;
}
@Override
- protected void doAction(ActionEvent e) throws Exception {
+ protected void doAction() throws Exception {
if (log.isInfoEnabled()) {
log.info("Will import species temporary " +
@@ -95,10 +91,13 @@
}
TuttiReferentialImportExportService service =
- getService(TuttiReferentialImportExportService.class);
+ getContext().getTuttiReferentialImportExportService();
service.importTemporarySpecies(file);
+ // reset ui cache
+ getDataContext().resetSpecies();
+
sendMessage("Référentiel temporaire d'espèces importé depuis le " +
"fichier " + file + ".");
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ImportTemporaryVesselAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,13 +25,12 @@
*/
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.awt.event.ActionEvent;
import java.io.File;
import static org.nuiton.i18n.I18n._;
@@ -44,8 +43,6 @@
*/
public class ImportTemporaryVesselAction extends AbstractTuttiAction<TuttiUIContext, ManageTemporaryReferentialUI, ManageTemporaryReferentialUIHandler> {
- private static final long serialVersionUID = 1L;
-
/** Logger. */
private static final Log log =
LogFactory.getLog(ImportTemporaryVesselAction.class);
@@ -54,7 +51,6 @@
public ImportTemporaryVesselAction(ManageTemporaryReferentialUIHandler handler) {
super(handler,
- "importTemporaryVessel",
"import",
_("tutti.action.importTemporaryVessel"),
_("tutti.action.importTemporaryVessel.tip"),
@@ -63,7 +59,7 @@
}
@Override
- protected boolean prepareAction(ActionEvent event) {
+ protected boolean prepareAction() {
// choose file to import
file = TuttiUIUtil.chooseFile(
@@ -75,19 +71,19 @@
boolean doAction = file != null;
if (doAction) {
- super.prepareAction(event);
+ super.prepareAction();
}
return doAction;
}
@Override
- protected void releaseAction(ActionEvent event) {
- super.releaseAction(event);
+ protected void releaseAction() {
+ super.releaseAction();
file = null;
}
@Override
- protected void doAction(ActionEvent e) throws Exception {
+ protected void doAction() throws Exception {
if (log.isInfoEnabled()) {
log.info("Will import vessel temporary " +
@@ -95,10 +91,13 @@
}
TuttiReferentialImportExportService service =
- getService(TuttiReferentialImportExportService.class);
+ getContext().getTuttiReferentialImportExportService();
service.importTemporaryVessel(file);
+ // reset ui cache
+ getDataContext().resetVessels();
+
sendMessage("Référentiel temporaire de navires importé depuis le " +
"fichier " + file + ".");
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.jaxx 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -22,11 +22,11 @@
#L%
-->
<JPanel id='manageTemporaryReferentialTopPanel' layout='{new BorderLayout()}'
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<TuttiUIContext, ManageTemporaryReferentialUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<TuttiUIContext, ManageTemporaryReferentialUIHandler>'>
<import>
- fr.ifremer.tutti.ui.swing.TuttiUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
fr.ifremer.tutti.ui.swing.TuttiUIContext
static org.nuiton.i18n.I18n._
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUIHandler.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,8 +25,8 @@
*/
import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -50,7 +50,7 @@
protected ManageTemporaryReferentialUIHandler(TuttiUIContext context,
ManageTemporaryReferentialUI ui) {
super(context, ui);
- this.persistenceService = context.getService(PersistenceService.class);
+ this.persistenceService = context.getPersistenceService();
}
//------------------------------------------------------------------------//
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java (from rev 502, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiBeanUIModel.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -0,0 +1,130 @@
+package fr.ifremer.tutti.ui.swing.util;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ifremer.tutti.persistence.entities.IdAware;
+import fr.ifremer.tutti.service.TuttiTechnicalException;
+import org.jdesktop.beans.AbstractSerializableBean;
+import org.nuiton.util.beans.Binder;
+
+/**
+ * Abstract UI model to edit a bean.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.1
+ */
+public abstract class AbstractTuttiBeanUIModel<E, B extends AbstractTuttiBeanUIModel<E, B>> extends AbstractSerializableBean implements IdAware {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final String PROPERTY_ID = "id";
+
+ public static final String PROPERTY_MODIFY = "modify";
+
+ public static final String PROPERTY_VALID = "valid";
+
+ protected String id;
+
+ protected boolean modify;
+
+ protected boolean valid;
+
+ private final Class<E> entityType;
+
+ private final Binder<E, B> fromBeanBinder;
+
+ private final Binder<B, E> toBeanBinder;
+
+ protected AbstractTuttiBeanUIModel(Class<E> entityType,
+ Binder<E, B> fromBeanBinder,
+ Binder<B, E> toBeanBinder) {
+ this.entityType = entityType;
+ this.fromBeanBinder = fromBeanBinder;
+ this.toBeanBinder = toBeanBinder;
+ }
+
+ public final void fromBean(E bean) {
+ fromBeanBinder.copy(bean, (B) this);
+ }
+
+ public final E toBean() {
+ E result = newEntity();
+ toBeanBinder.copy((B) this, result);
+ return result;
+ }
+
+ protected E newEntity() {
+ try {
+ E result = entityType.newInstance();
+ return result;
+ } catch (Exception e) {
+ throw new TuttiTechnicalException(
+ "Could not instanciate entity of type " +
+ entityType.getName(), e);
+ }
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ Object oldValue = getId();
+ this.id = id;
+ firePropertyChange(PROPERTY_ID, oldValue, id);
+ }
+
+ public String getTitle() {
+ return null;
+ }
+
+ public String getIcon() {
+ return null;
+ }
+
+ public boolean isModify() {
+ return modify;
+ }
+
+ public void setModify(boolean modify) {
+ Object oldValue = isModify();
+ this.modify = modify;
+ firePropertyChange(PROPERTY_MODIFY, oldValue, modify);
+ }
+
+ public boolean isValid() {
+ return valid;
+ }
+
+ public void setValid(boolean valid) {
+ Object oldValue = isValid();
+ this.valid = valid;
+ firePropertyChange(PROPERTY_VALID, oldValue, valid);
+ }
+
+ public boolean isCreate() {
+ return id == null;
+ }
+}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiTabContainerUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiTabContainerUIHandler.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiTabContainerUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,9 +25,6 @@
* #L%
*/
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler;
-import fr.ifremer.tutti.ui.swing.TuttiUI;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java (from rev 502, 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/util/AbstractTuttiUIHandler.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -0,0 +1,635 @@
+package fr.ifremer.tutti.ui.swing.util;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+import fr.ifremer.tutti.persistence.entities.IdAware;
+import fr.ifremer.tutti.service.DecoratorService;
+import fr.ifremer.tutti.ui.swing.AbstractMainUITuttiAction;
+import fr.ifremer.tutti.ui.swing.MainUI;
+import fr.ifremer.tutti.ui.swing.MainUIHandler;
+import fr.ifremer.tutti.ui.swing.TuttiDataContext;
+import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.action.TuttiUIAction;
+import fr.ifremer.tutti.ui.swing.util.editor.SimpleTimeEditor;
+import jaxx.runtime.JAXXUtil;
+import jaxx.runtime.SwingUtil;
+import jaxx.runtime.swing.editor.NumberEditor;
+import jaxx.runtime.swing.editor.bean.BeanComboBox;
+import jaxx.runtime.swing.editor.bean.BeanDoubleList;
+import jaxx.runtime.swing.renderer.DecoratorListCellRenderer;
+import jaxx.runtime.validator.swing.SwingValidator;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.reflect.ConstructorUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jdesktop.swingx.JXDatePicker;
+import org.nuiton.util.decorator.Decorator;
+import org.nuiton.util.decorator.JXPathDecorator;
+import org.nuiton.validator.bean.simple.SimpleBeanValidator;
+
+import javax.swing.AbstractAction;
+import javax.swing.AbstractButton;
+import javax.swing.Action;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JComponent;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JOptionPane;
+import javax.swing.JRootPane;
+import javax.swing.JTextField;
+import javax.swing.KeyStroke;
+import javax.swing.ListCellRenderer;
+import javax.swing.ListSelectionModel;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.text.JTextComponent;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.event.ActionEvent;
+import java.awt.event.FocusAdapter;
+import java.awt.event.FocusEvent;
+import java.awt.event.ItemEvent;
+import java.awt.event.KeyEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.io.Serializable;
+import java.text.ParseException;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * Contract of any UI handler.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.1
+ */
+public abstract class AbstractTuttiUIHandler<M, UI extends TuttiUI<M, ?>> implements UIMessageNotifier {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(AbstractTuttiUIHandler.class);
+
+ public abstract void beforeInitUI();
+
+ public abstract void afterInitUI();
+
+ public abstract void onCloseUI();
+
+ public abstract SwingValidator<M> getValidator();
+
+ /**
+ * Global application context.
+ *
+ * @since 0.1
+ */
+ protected final TuttiUIContext context;
+
+ /**
+ * UI handled.
+ *
+ * @since 0.1
+ */
+ protected final UI ui;
+
+ protected AbstractTuttiUIHandler(TuttiUIContext context, UI ui) {
+ this.context = context;
+ this.ui = ui;
+ }
+
+ //------------------------------------------------------------------------//
+ //-- Public methods --//
+ //------------------------------------------------------------------------//
+
+ public DefaultComboBoxModel newComboModel(Object... items) {
+ return new DefaultComboBoxModel(items);
+ }
+
+ public DefaultComboBoxModel newComboActionModel(Class<?>... actionNames) {
+ List<Object> items = Lists.newArrayListWithCapacity(actionNames.length);
+ for (Class<?> actionName : actionNames) {
+ Action action = createAction((Class<AbstractTuttiAction>) actionName);
+ items.add(action);
+ }
+ return newComboModel(items.toArray());
+ }
+
+ public final M getModel() {
+ return ui.getModel();
+ }
+
+ public final UI getUI() {
+ return ui;
+ }
+
+ @Override
+ public void showInformationMessage(String message) {
+ context.showInformationMessage(message);
+ }
+
+ public TuttiUIContext getContext() {
+ return context;
+ }
+
+ public TuttiDataContext getDataContext() {
+ return getContext().getDataContext();
+ }
+
+ public TuttiApplicationConfig getConfig() {
+ return context.getConfig();
+ }
+
+ /**
+ * Can the UI be closed? It is useful whe the user wants to exit the current
+ * screen but the model is modified: we can then ask the user if he wants to
+ * save or not.
+ *
+ * @param nextScreen the next screen to display
+ * @return {@code true} if UI can be closed, {@code false} otherwise.
+ */
+ public boolean canCloseUI(TuttiScreen nextScreen) {
+ return true;
+ }
+
+ public void setText(KeyEvent event, String property) {
+ JTextComponent field = (JTextComponent) event.getSource();
+ String value = field.getText();
+ TuttiUIUtil.setProperty(getModel(), property, value);
+ }
+
+ public void setBoolean(ItemEvent event, String property) {
+ boolean value = event.getStateChange() == ItemEvent.SELECTED;
+ TuttiUIUtil.setProperty(getModel(), property, value);
+ }
+
+ public void setDate(ActionEvent event, String property) {
+ JXDatePicker field = (JXDatePicker) event.getSource();
+ Date value = field.getDate();
+ TuttiUIUtil.setProperty(getModel(), property, value);
+ }
+
+ public void selectListData(ListSelectionEvent event, String property) {
+ if (!event.getValueIsAdjusting()) {
+ JList list = (JList) event.getSource();
+ ListSelectionModel selectionModel = list.getSelectionModel();
+
+ selectionModel.setValueIsAdjusting(true);
+ try {
+ List selectedList = Lists.newLinkedList();
+
+ for (int index : list.getSelectedIndices()) {
+ Object o = list.getModel().getElementAt(index);
+ selectedList.add(o);
+ }
+ TuttiUIUtil.setProperty(getModel(), property, selectedList);
+ } finally {
+ selectionModel.setValueIsAdjusting(false);
+ }
+ }
+ }
+
+ public void openDialog(TuttiUI ui,
+ TuttiUI dialogContent,
+ String title, Dimension dim) {
+ Frame frame = SwingUtil.getParentContainer(ui, Frame.class);
+
+ JDialog result = new JDialog(frame, true);
+ result.setTitle(title);
+ result.add((Component) dialogContent);
+ result.setResizable(true);
+
+ result.setSize(dim);
+
+ final AbstractTuttiUIHandler handler = dialogContent.getHandler();
+
+ if (handler instanceof Cancelable) {
+
+ // add a auto-close action
+ JRootPane rootPane = result.getRootPane();
+
+ KeyStroke shortcutClosePopup = getConfig().getShortcutClosePopup();
+
+ rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
+ shortcutClosePopup, "close");
+ rootPane.getActionMap().put("close", new AbstractAction() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ ((Cancelable) handler).cancel();
+ }
+ });
+ }
+
+ result.addWindowListener(new WindowAdapter() {
+
+ @Override
+ public void windowClosed(WindowEvent e) {
+ Component ui = (Component) e.getSource();
+ if (log.isInfoEnabled()) {
+ log.info("Destroy ui " + ui);
+ }
+ JAXXUtil.destroy(ui);
+ }
+ });
+ SwingUtil.center(frame, result);
+ result.setVisible(true);
+ }
+
+ public void closeDialog(TuttiUI ui) {
+ SwingUtil.getParentContainer(ui, JDialog.class).setVisible(false);
+ }
+
+ public int askSaveBeforeLeaving(String message) {
+ int i = JOptionPane.showConfirmDialog(
+ getContext().getMainUI(),
+ message,
+ _("tutti.dialog.askSaveBeforeLeaving.title"),
+ JOptionPane.YES_NO_CANCEL_OPTION);
+ return i;
+ }
+
+ public int askCancelEditBeforeLeaving(String message) {
+ int i = JOptionPane.showConfirmDialog(
+ getContext().getMainUI(),
+ message,
+ _("tutti.dialog.askCancelEditBeforeLeaving.title"),
+ JOptionPane.YES_NO_OPTION);
+ return i;
+ }
+ //------------------------------------------------------------------------//
+ //-- Internal methods --//
+ //------------------------------------------------------------------------//
+
+ protected void initUI(TuttiUI ui) {
+
+ for (Map.Entry<String, Object> entry : ui.get$objectMap().entrySet()) {
+ Object component = entry.getValue();
+ if (component instanceof NumberEditor) {
+ initNumberEditor((NumberEditor) component);
+
+ } else if (component instanceof JXDatePicker) {
+ initDatePicker((JXDatePicker) component);
+
+ } else if (component instanceof SimpleTimeEditor) {
+ initTimeEditor((SimpleTimeEditor) component);
+
+ } else if (component instanceof JLabel) {
+ JLabel jLabel = (JLabel) component;
+ Boolean strongStyle = (Boolean) jLabel.getClientProperty("strongStyle");
+ Boolean italicStyle = (Boolean) jLabel.getClientProperty("italicStyle");
+ boolean addHtml = strongStyle != null && strongStyle || italicStyle != null && italicStyle;
+ if (addHtml) {
+ String text = jLabel.getText();
+ if (strongStyle != null && strongStyle) {
+ text = "<strong>" + text + "</strong>";
+ }
+ if (italicStyle != null && italicStyle) {
+ text = "<em>" + text + "</em>";
+ }
+ jLabel.setText("<html>" + text + "</html>");
+ }
+
+ } else if (component instanceof JTextField) {
+ JTextField jTextField = (JTextField) component;
+ Boolean computed = (Boolean) jTextField.getClientProperty("computed");
+ if (computed != null && computed) {
+ Font font = jTextField.getFont().deriveFont(Font.ITALIC);
+ jTextField.setFont(font);
+ jTextField.setEditable(!computed);
+ jTextField.setEnabled(!computed);
+ jTextField.setDisabledTextColor(Color.BLUE);
+ }
+
+ } else if (component instanceof AbstractButton) {
+ AbstractButton abstractButton = (AbstractButton) component;
+ Class<AbstractTuttiAction> actionName = (Class<AbstractTuttiAction>) abstractButton.getClientProperty("tuttiAction");
+ if (actionName != null) {
+ initAction(abstractButton, actionName);
+ }
+ }
+ }
+ }
+
+ protected <A extends AbstractTuttiAction> void initAction(AbstractButton abstractButton,
+ Class<A> actionName) {
+
+ Action action = createAction(actionName);
+ abstractButton.setAction(action);
+ }
+
+ protected <A extends AbstractTuttiAction> TuttiUIAction<A> createAction(Class<A> actionName) {
+ TuttiUIAction result = null;
+ if (actionName != null) {
+ try {
+
+ AbstractTuttiUIHandler handler = this;
+
+ if (AbstractMainUITuttiAction.class.isAssignableFrom(actionName) &&
+ getContext().getMainUI() != null) {
+ handler = getContext().getMainUI().getHandler();
+ }
+
+ // create action
+ AbstractTuttiAction action = ConstructorUtils.invokeConstructor(actionName, handler);
+
+ // create ui action
+ result = new TuttiUIAction(action);
+
+ } catch (Exception e) {
+ throw new RuntimeException(
+ "Could not instanciate action " + actionName, e);
+ }
+ }
+ return result;
+ }
+
+ 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);
+ }
+ }
+
+ public 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é.
+ *
+ * @param comboBox le component graphique à initialiser
+ */
+ protected <E extends Serializable> void initBeanComboBox(
+ BeanComboBox<E> comboBox,
+ 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, decoratorContext);
+
+ if (data == null) {
+ data = Lists.newArrayList();
+ }
+
+ if (log.isInfoEnabled()) {
+ log.info("entity comboBox list [" + beanType.getName() + "] : " +
+ (data == null ? 0 : data.size()));
+ }
+
+ // add data list to combo box
+ comboBox.init((JXPathDecorator<E>) decorator, data);
+
+ comboBox.setSelectedItem(selectedData);
+
+ if (log.isDebugEnabled()) {
+ log.debug("combo [" + beanType.getName() + "] : " +
+ comboBox.getData().size());
+ }
+ }
+
+ /**
+ * Prépare un component de choix d'entités pour un type d'entité donné et
+ * pour un service de persistance donné.
+ *
+ * @param list le component graphique à initialiser
+ * @param data la liste des données à mettre dans la liste de gauche
+ * @param selectedData la liste des données à mettre dans la liste de droite
+ */
+ protected <E extends IdAware> void initBeanList(
+ BeanDoubleList<E> list,
+ List<E> data,
+ List<E> selectedData) {
+
+ Preconditions.checkNotNull(list, "No list!");
+
+ Class<E> beanType = list.getBeanType();
+ Preconditions.checkNotNull(beanType, "No beanType on the double list!");
+
+ DecoratorService decoratorService =
+ context.getDecoratorService();
+ Decorator<E> decorator = decoratorService.getDecoratorByType(beanType);
+
+ if (log.isInfoEnabled()) {
+ log.info("entity list [" + beanType.getName() + "] : " +
+ (data == null ? 0 : data.size()));
+ }
+
+ // add data list to combo box
+ list.init((JXPathDecorator<E>) decorator, data, selectedData);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Jlist [" + beanType.getName() + "] : " +
+ list.getUniverseList().getModel().getSize());
+ }
+ }
+
+ protected void initNumberEditor(NumberEditor editor) {
+ if (log.isDebugEnabled()) {
+ log.debug("init number editor " + editor.getName());
+ }
+ editor.init();
+
+ // Force binding if value is already in model
+ Number model = editor.getModel();
+ if (model != null) {
+ editor.setModel(null);
+ editor.setModel(model);
+ }
+ }
+
+ protected void initTimeEditor(SimpleTimeEditor editor) {
+ if (log.isDebugEnabled()) {
+ log.debug("init time editor " + editor.getName() +
+ " for property " + editor.getModel().getProperty());
+ }
+ editor.init();
+ }
+
+ protected void initDatePicker(final JXDatePicker picker) {
+
+ if (log.isDebugEnabled()) {
+ log.debug("disable JXDatePicker editor" + picker.getName());
+ }
+ String dateFormat = getConfig().getDateFormat();
+ picker.setFormats(dateFormat);
+ picker.getEditor().addFocusListener(new FocusAdapter() {
+
+ @Override
+ public void focusLost(FocusEvent e) {
+ try {
+ picker.commitEdit();
+
+ } catch (ParseException ex) {
+ if (log.isDebugEnabled()) {
+ log.debug("format error", ex);
+ }
+ }
+ }
+
+ });
+ }
+
+ public <O> Decorator<O> getDecorator(Class<O> type, String name) {
+ DecoratorService decoratorService =
+ context.getDecoratorService();
+
+ Preconditions.checkNotNull(type);
+
+ Decorator decorator = decoratorService.getDecoratorByType(type, name);
+ if (decorator == null) {
+
+ if (DecoratorService.LabelAware.class.isAssignableFrom(type)) {
+ decorator = getDecorator(DecoratorService.LabelAware.class, null);
+ }
+ }
+ Preconditions.checkNotNull(decorator);
+ return decorator;
+ }
+
+ protected String decorate(Object object) {
+ String result = "";
+ if (object != null) {
+ getDecorator(object.getClass(), null).toString(object);
+ }
+ return result;
+ }
+
+ protected <O> ListCellRenderer newListCellRender(Class<O> type) {
+
+ return newListCellRender(type, null);
+ }
+
+ protected <O> ListCellRenderer newListCellRender(Class<O> type, String name) {
+
+ Decorator<O> decorator = getDecorator(type, name);
+ return newListCellRender(decorator);
+ }
+
+ protected <O> ListCellRenderer newListCellRender(Decorator<O> decorator) {
+
+ Preconditions.checkNotNull(decorator);
+
+ ListCellRenderer result = new DecoratorListCellRenderer(decorator);
+ return result;
+ }
+
+ protected void listenValidatorValid(SimpleBeanValidator validator,
+ final AbstractTuttiBeanUIModel model) {
+ validator.addPropertyChangeListener(SimpleBeanValidator.VALID_PROPERTY, new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ if (log.isDebugEnabled()) {
+ log.debug("Model [" + model +
+ "] pass to valid state [" +
+ evt.getNewValue() + "]");
+ }
+ model.setValid((Boolean) evt.getNewValue());
+ }
+ });
+ }
+
+ protected void listModelIsModify(AbstractTuttiBeanUIModel model) {
+ model.addPropertyChangeListener(new PropertyChangeListener() {
+
+ final Set<String> excludeProperties = getPropertiesToIgnore();
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ if (!excludeProperties.contains(evt.getPropertyName())) {
+ ((AbstractTuttiBeanUIModel) evt.getSource()).setModify(true);
+ }
+ }
+ });
+ }
+
+ protected Set<String> getPropertiesToIgnore() {
+ return Sets.newHashSet(
+ AbstractTuttiBeanUIModel.PROPERTY_MODIFY,
+ AbstractTuttiBeanUIModel.PROPERTY_VALID);
+ }
+
+ public <B> void selectFirstInCombo(BeanComboBox<B> combo) {
+ List<B> data = combo.getData();
+ B selectedItem = null;
+ if (CollectionUtils.isNotEmpty(data)) {
+ selectedItem = data.get(0);
+ }
+ combo.setSelectedItem(selectedItem);
+ }
+
+ protected void closeUI(TuttiUI ui) {
+ ui.getHandler().onCloseUI();
+ }
+
+ protected <B> void changeValidatorContext(String newContext,
+ SwingValidator<B> validator) {
+ B bean = validator.getBean();
+ validator.setContext(newContext);
+ validator.setBean(bean);
+ }
+}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,7 +25,6 @@
* #L%
*/
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
import jaxx.runtime.SwingUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiCollectionUniqueKeyValidator.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiCollectionUniqueKeyValidator.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiCollectionUniqueKeyValidator.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -34,7 +34,7 @@
/**
* To fix a bug (will be moved back to nuiton-validator) (see
* http://nuiton.org/issues/2545)
- *
+ * <p/>
* TODO Remove this when using nuiton-validator 2.6.10 and reuse the basic validator.
*
* @author tchemit <chemit(a)codelutin.com>
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiErrorHelper.java (from rev 502, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiErrorHelper.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiErrorHelper.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiErrorHelper.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -0,0 +1,91 @@
+package fr.ifremer.tutti.ui.swing.util;
+
+/*
+ * #%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.service.TuttiBusinessException;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import org.jdesktop.swingx.JXErrorPane;
+import org.jdesktop.swingx.error.ErrorInfo;
+import org.jdesktop.swingx.error.ErrorReporter;
+
+import javax.swing.JOptionPane;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * TODO
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class TuttiErrorHelper implements ErrorReporter {
+
+ protected TuttiUIContext context;
+
+ public TuttiErrorHelper(TuttiUIContext context) {
+ this.context = context;
+ }
+
+ /**
+ * Display a user friendly error frame.
+ *
+ * @param message message for user
+ * @param cause exception cause
+ */
+ public void showErrorDialog(String message, Throwable cause) {
+
+ if (cause instanceof TuttiBusinessException) {
+ JOptionPane.showMessageDialog(context.getMainUI(), cause.getMessage(),
+ _("tutti.ui.common.error"),
+ JOptionPane.ERROR_MESSAGE);
+ } else {
+
+ JXErrorPane pane = new JXErrorPane();
+ ErrorInfo info = new ErrorInfo(_("tutti.common.error"),
+ _("tutti.error.errorpane.htmlmessage", message), null, null,
+ cause, null, null);
+ pane.setErrorInfo(info);
+ pane.setErrorReporter(this);
+ JXErrorPane.showDialog(context.getMainUI(), pane);
+ }
+
+ }
+
+ /**
+ * Display a user friendly error frame.
+ *
+ * @param message message for user
+ */
+ public void showErrorDialog(String message) {
+ showErrorDialog(message, null);
+ }
+
+ @Override
+ public void reportError(ErrorInfo errorInfo) throws NullPointerException {
+
+ showErrorDialog(errorInfo.getBasicErrorMessage(), errorInfo.getErrorException());
+ }
+
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.java (from rev 502, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiExceptionHandler.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -0,0 +1,138 @@
+package fr.ifremer.tutti.ui.swing.util;
+
+/*
+ * #%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.service.TuttiTechnicalException;
+import fr.ifremer.tutti.ui.swing.AbstractChangeScreenAction;
+import fr.ifremer.tutti.ui.swing.TuttiScreen;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * Tutti global exception handler.
+ * <p/>
+ * Catch all application uncaught and display it in a custom JoptionPane
+ * or JXErrorPane.
+ * <p/>
+ * See http://stackoverflow.com/a/4448569/1165234 for details.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public class TuttiExceptionHandler implements Thread.UncaughtExceptionHandler {
+
+ private static final Log log =
+ LogFactory.getLog(TuttiExceptionHandler.class);
+
+ public static class TuttiActionException extends RuntimeException {
+
+ private static final long serialVersionUID = 1L;
+
+ private final AbstractTuttiAction action;
+
+ public TuttiActionException(AbstractTuttiAction action,
+ Throwable cause) {
+ super(cause);
+ this.action = action;
+ }
+
+ public AbstractTuttiAction getAction() {
+ return action;
+ }
+ }
+
+ @Override
+ public void uncaughtException(Thread t, Throwable ex) {
+ handleException(t.getName(), ex);
+ }
+
+ public void handle(Throwable thrown) {
+ // for EDT exceptions
+ handleException(Thread.currentThread().getName(), thrown);
+ }
+
+ protected void handleException(String tname, Throwable ex) {
+ if (log.isErrorEnabled()) {
+ log.error("Global application exception [" + tname + "]", ex);
+ }
+
+ Throwable cause = ex;
+
+ if (cause instanceof NullPointerException) {
+
+ // See http://forge.codelutin.com/issues/2055
+ if (ex.getStackTrace().length > 0 &&
+ ex.getStackTrace()[0].getClassName().contains("swing.")) {
+ if (log.isWarnEnabled()) {
+ log.warn("AWT bad error (See http://forge.codelutin.com/issues/2055)", ex);
+ }
+ return;
+ }
+ }
+
+ if (cause instanceof IndexOutOfBoundsException) {
+ // See http://forge.codelutin.com/issues/2055
+ if (ex.getStackTrace().length > 0 &&
+ "convertRowIndexToModel".equals(ex.getStackTrace()[0].getMethodName())) {
+ if (log.isWarnEnabled()) {
+ log.warn("AWT bad error (See http://forge.codelutin.com/issues/2055)", ex);
+ }
+ return;
+ }
+ }
+ if (cause instanceof TuttiTechnicalException) {
+ cause = cause.getCause();
+ }
+
+ boolean backToScreen = false;
+
+ AbstractTuttiAction action = null;
+
+ if (cause instanceof TuttiActionException) {
+
+ TuttiActionException actionException = (TuttiActionException) cause;
+ cause = cause.getCause();
+
+ // close action ui
+
+
+ action = actionException.getAction();
+
+ if (action instanceof AbstractChangeScreenAction) {
+ backToScreen = true;
+ }
+// TuttiUIContext.getApplicationContext().getActionUI().getModel().clear();
+ }
+
+ TuttiUIContext.getErrorHelper().showErrorDialog(cause.getMessage(), ex);
+
+ if (backToScreen) {
+ action.getContext().setScreen(TuttiScreen.SELECT_CRUISE);
+ }
+ }
+
+}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUI.java (from rev 502, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUI.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUI.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUI.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -0,0 +1,135 @@
+package fr.ifremer.tutti.ui.swing.util;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import jaxx.runtime.JAXXObject;
+
+import javax.swing.UIManager;
+import java.awt.Font;
+
+/**
+ * Contract to place on each generated jaxx ui.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.1
+ */
+public interface TuttiUI<M, H extends AbstractTuttiUIHandler<M, ?>> extends JAXXObject {
+
+ M getModel();
+
+ H getHandler();
+
+ /**
+ * Pattern to use for short numeric values in editors with max 1 digits.
+ *
+ * @since 0.2
+ */
+ public static final String INT_1_DIGITS_PATTERN = "\\d{0,1}";
+
+ /**
+ * Pattern to use for short numeric values in editors with max 2 digits.
+ *
+ * @since 0.1
+ */
+ public static final String INT_2_DIGITS_PATTERN = "\\d{0,2}";
+
+ /**
+ * Pattern to use for signed numeric values in editors with max 2 digits.
+ *
+ * @since 1.0
+ */
+ public static final String SIGNED_INT_2_DIGITS_PATTERN = "-?\\d{0,2}";
+
+ /**
+ * Pattern to use for short numeric values in editors with max 3 digits.
+ *
+ * @since 0.1
+ */
+ public static final String INT_3_DIGITS_PATTERN = "\\d{0,3}";
+
+ /**
+ * Pattern to use for singed numeric values in editors with max 3 digits.
+ *
+ * @since 1.0
+ */
+ public static final String SIGNED_INT_3_DIGITS_PATTERN = "-?\\d{0,3}";
+
+ /**
+ * Pattern to use for short numeric values in editors with max 4 digits.
+ *
+ * @since 0.2
+ */
+ public static final String INT_4_DIGITS_PATTERN = "\\d{0,4}";
+
+ /**
+ * Pattern to use for integer numeric values in editors with max 6 digits.
+ *
+ * @since 0.1
+ */
+ public static final String INT_6_DIGITS_PATTERN = "\\d{0,6}";
+
+ /**
+ * Pattern to use for integer numeric values in editors with max 7 digits.
+ *
+ * @since 0.1
+ */
+ public static final String INT_7_DIGITS_PATTERN = "\\d{0,7}";
+
+ /**
+ * Pattern to use for decimal numeric values with 1 decimal digits in
+ * editors.
+ *
+ * @since 0.1
+ */
+ public static final String DECIMAL1_PATTERN = "\\d{0,6}|\\d{1,6}\\.\\d{0,1}";
+
+ /**
+ * Pattern to use for decimal numeric values with 2 decimal digits in
+ * editors.
+ *
+ * @since 0.1
+ */
+ public static final String DECIMAL2_PATTERN = "\\d{0,6}|\\d{1,6}\\.\\d{0,2}";
+
+ /**
+ * Pattern to use for decimal numeric values with 3 decimal digits in
+ * editors.
+ *
+ * @since 0.1
+ */
+ public static final String DECIMAL3_PATTERN = "\\d{0,6}|\\d{1,6}\\.\\d{0,3}";
+
+ /**
+ * Pattern to use for decimal numeric values with 2 digits + 3 decimal digits in
+ * editors.
+ *
+ * @since 1.0
+ */
+ public static final String DECIMAL2_3_PATTERN = "\\d{0,2}|\\d{1,2}\\.\\d{0,3}";
+
+ public static final Font TEXTFIELD_NORMAL_FONT = UIManager.getDefaults().getFont("TextField.font");
+
+ public static final Font TEXTFIELD_COMPUTED_FONT = UIManager.getDefaults().getFont("TextField.font").deriveFont(Font.ITALIC);
+}
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,13 +25,8 @@
*/
import com.google.common.base.Preconditions;
-import fr.ifremer.tutti.persistence.entities.data.Cruise;
-import fr.ifremer.tutti.persistence.entities.data.Program;
-import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.service.TuttiTechnicalException;
-import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import jaxx.runtime.JAXXUtil;
-import jaxx.runtime.context.JAXXContextEntryDef;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.lang3.time.DurationFormatUtils;
import org.apache.commons.logging.Log;
@@ -44,7 +39,6 @@
import javax.swing.UIManager;
import java.awt.Color;
import java.awt.Component;
-import java.awt.Cursor;
import java.io.File;
import java.util.Date;
@@ -65,111 +59,6 @@
// never instanciate util class
}
- private static final JAXXContextEntryDef<Program> PROGRAM_ENTRY =
- JAXXUtil.newContextEntryDef("loadedProgram", Program.class);
-
- private static final JAXXContextEntryDef<Cruise> CRUISE_ENTRY =
- JAXXUtil.newContextEntryDef("loadedCruise", Cruise.class);
-
- 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 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(TuttiUIContext context) {
- return CRUISE_ENTRY.getContextValue(context.getMainUI());
- }
-
- public static TuttiProtocol getProtocol(TuttiUIContext context) {
- return PROTOCOL_ENTRY.getContextValue(context.getMainUI());
- }
-
- public static void setProgram(TuttiUIContext context, Program value) {
- if (value == null) {
-
- PROGRAM_ENTRY.removeContextValue(context.getMainUI());
- } else {
-
- PROGRAM_ENTRY.setContextValue(context.getMainUI(), value);
- }
- }
-
- public static void setCruise(TuttiUIContext context, Cruise value) {
- if (value == null) {
- CRUISE_ENTRY.removeContextValue(context.getMainUI());
- } else {
- CRUISE_ENTRY.setContextValue(context.getMainUI(), value);
- }
- }
-
- public static void setProtocol(TuttiUIContext context, TuttiProtocol value) {
- if (value == null) {
-
- PROTOCOL_ENTRY.removeContextValue(context.getMainUI());
- } else {
- PROTOCOL_ENTRY.setContextValue(context.getMainUI(), value);
- }
- }
-
- // public static JDialog openInDialog(JComponent ui,
-// Frame frame,
-// String title,
-// boolean modal,
-// Action closeAction) {
-// return openInDialog(ui, frame, title, modal, closeAction, null);
-// }
-//
-// public static JDialog openInDialog(JComponent ui,
-// Frame frame,
-// String title,
-// boolean modal,
-// Action closeAction,
-// Dimension dim) {
-//
-// JDialog result = new JDialog(frame, modal);
-// result.setTitle(title);
-// result.add(ui);
-// result.setResizable(true);
-// if (dim == null) {
-// result.setSize(550, 450);
-// } else {
-// result.setSize(dim);
-// }
-// if (closeAction != null) {
-// JRootPane rootPane = result.getRootPane();
-// rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
-// rootPane.getActionMap().put("close", closeAction);
-// }
-// result.addWindowListener(new WindowAdapter() {
-//
-// @Override
-// public void windowClosed(WindowEvent e) {
-// Component ui = (Component) e.getSource();
-// if (log.isInfoEnabled()) {
-// log.info("Destroy ui " + ui);
-// }
-// JAXXUtil.destroy(ui);
-// }
-// });
-// SwingUtil.center(frame, result);
-// result.setVisible(true);
-// return result;
-// }
-
/**
* Choisir un fichier via un sélecteur graphique de fichiers.
*
@@ -242,22 +131,6 @@
return file == null ? incoming : new File(file);
}
- public static void updateBusyState(Component ui, boolean busy) {
- if (busy) {
- // ui bloquee
- if (log.isDebugEnabled()) {
- log.debug("block ui in busy mode");
- }
- ui.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
- } else {
- // ui debloquee
- if (log.isDebugEnabled()) {
- log.debug("unblock ui in none busy mode");
- }
- ui.setCursor(Cursor.getDefaultCursor());
- }
- }
-
public static void showSuccessMessage(Component ui, String message) {
JOptionPane.showMessageDialog(
ui,
@@ -341,24 +214,24 @@
+ Math.cos(eLong - sLong) * Math.cos(eLat) * Math.cos(sLat)));
return d.intValue();
}
-
+
public static String getDistanceInMilles(Float distance) {
String distanceText;
if (distance != null) {
Float distanceInMilles = distance / 1852;
distanceText = String.format("%.3f", distanceInMilles);
-
+
} else {
distanceText = "";
}
return distanceText;
}
-
+
public static String getWeightStringValue(Float weight) {
String textValue;
if (weight != null) {
textValue = String.format("%.3f", weight);
-
+
} else {
textValue = JAXXUtil.getStringValue(weight);
}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java (from rev 502, 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/util/action/AbstractTuttiAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -0,0 +1,174 @@
+package fr.ifremer.tutti.ui.swing.util.action;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Sets;
+import fr.ifremer.tutti.service.DecoratorService;
+import fr.ifremer.tutti.ui.swing.MainUI;
+import fr.ifremer.tutti.ui.swing.TuttiDataContext;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
+import fr.ifremer.tutti.ui.swing.util.TuttiExceptionHandler;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
+import jaxx.runtime.SwingUtil;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jdesktop.beans.AbstractBean;
+import org.nuiton.util.decorator.Decorator;
+
+import javax.swing.AbstractAction;
+import java.awt.event.ActionEvent;
+import java.util.Set;
+import java.util.Timer;
+import java.util.TimerTask;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+/**
+ * TODO
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0
+ */
+public abstract class AbstractTuttiAction<M extends AbstractBean, UI extends TuttiUI<M, ?>, H extends AbstractTuttiUIHandler<M, UI>> {
+
+ protected final H handler;
+
+ protected final String actionName;
+
+ protected final String actionDescription;
+
+ protected final String actionIcon;
+
+ protected final boolean hideBody;
+
+ protected Throwable error;
+
+ protected abstract void doAction() throws Exception;
+
+ protected AbstractTuttiAction(H handler,
+ String actionIcon,
+ String actionName,
+ String actionDescription,
+ boolean hideBody) {
+ this.handler = handler;
+ this.actionName = actionName;
+ this.actionDescription = actionDescription;
+ this.actionIcon = actionIcon;
+ this.hideBody = hideBody;
+ }
+
+ protected boolean prepareAction() {
+ // by default nothing to prepare
+ return true;
+ }
+
+ protected void releaseAction() {
+ error = null;
+ }
+
+ public final void performAndReleaseAction() {
+
+ try {
+ performAction();
+ } finally {
+ releaseAction();
+ }
+ }
+
+ protected void performAction() {
+ try {
+ doAction();
+ } catch (Throwable e) {
+ this.error = e;
+ throw new TuttiExceptionHandler.TuttiActionException(this, e);
+ }
+ }
+
+ public H getHandler() {
+ return handler;
+ }
+
+ public M getModel() {
+ return handler.getModel();
+ }
+
+ public final UI getUI() {
+ return handler.getUI();
+ }
+
+ public TuttiUIContext getContext() {
+ return handler.getContext();
+ }
+
+ protected String getActionName() {
+ return actionName;
+ }
+
+ public String getActionDescription() {
+ return actionDescription;
+ }
+
+ public String getActionIcon() {
+ return actionIcon;
+ }
+
+ public boolean isHideBody() {
+ return hideBody;
+ }
+
+ public TuttiDataContext getDataContext() {
+ return getContext().getDataContext();
+ }
+
+ protected TuttiApplicationConfig getConfig() {
+ return getContext().getConfig();
+ }
+
+ protected void sendMessage(String message) {
+ getContext().showInformationMessage(message);
+ }
+
+ protected <O> Decorator<O> getDecorator(Class<O> type, String name) {
+ Decorator<O> decorator = handler.getDecorator(type, name);
+ Preconditions.checkNotNull(decorator);
+ return decorator;
+ }
+
+ protected String decorate(Object object) {
+ return getDecorator(object.getClass(), null).toString(object);
+ }
+
+ public boolean isFailed() {
+ return error != null;
+ }
+
+ public Throwable getError() {
+ return error;
+ }
+}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionUI.jaxx 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -23,10 +23,10 @@
-->
<JDialog layout='{new BorderLayout()}' width='300' height='200' modal='true'
undecorated='true'
- implements='fr.ifremer.tutti.ui.swing.TuttiUI<TuttiActionUIModel, TuttiActionUIHandler>'>
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<TuttiActionUIModel, TuttiActionUIHandler>'>
<import>
- fr.ifremer.tutti.ui.swing.TuttiUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
fr.ifremer.tutti.ui.swing.TuttiUIContext
javax.swing.border.EmptyBorder
@@ -43,6 +43,14 @@
handler.beforeInitUI();
}
+ public void open(AbstractTuttiAction action) {
+ getModel().setAction(action);
+ }
+
+ public void close() {
+ getModel().clear();
+ }
+
protected void $afterCompleteSetup() {
handler.afterInitUI();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionUIHandler.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,16 +25,15 @@
*/
import fr.ifremer.tutti.persistence.ProgressionModel;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.MainUI;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import javax.swing.SwingUtilities;
import java.awt.Container;
+import java.awt.Cursor;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
@@ -50,7 +49,6 @@
private static final Log log =
LogFactory.getLog(TuttiActionUIHandler.class);
-
public TuttiActionUIHandler(TuttiUIContext context, TuttiActionUI ui) {
super(context, ui);
}
@@ -82,10 +80,34 @@
//------------------------------------------------------------------------//
protected void hideAction() {
- getModel().setProgressionModel(null);
ui.setVisible(false);
}
+ protected void showAction(AbstractTuttiAction action) {
+ ui.getGlobalActionLabel().setText(
+ _("tutti.message.action.running",
+ action.getActionDescription()));
+ ui.pack();
+
+ MainUI mainUI = getContext().getMainUI();
+ if (mainUI != null) {
+ Container component = mainUI.getBody();
+ int width = component.getWidth();
+ int height = component.getHeight();
+ int x;
+ int y;
+ if (height == 0) {
+ x = mainUI.getX() + 5;
+ y = mainUI.getY() + 20;
+ } else {
+ x = mainUI.getX() + (mainUI.getWidth() - width);
+ y = mainUI.getY() + (mainUI.getHeight() - height);
+ }
+ ui.setLocation(x, y);
+ }
+ ui.setVisible(true);
+ }
+
@Override
public void beforeInitUI() {
TuttiActionUIModel model = new TuttiActionUIModel();
@@ -104,35 +126,11 @@
if (action == null || action.isFailed()) {
// stoping action
-
- if (SwingUtilities.isEventDispatchThread()) {
-
- hideAction();
- } else {
- SwingUtilities.invokeLater(new Runnable() {
- @Override
- public void run() {
- hideAction();
- }
- });
- }
+ hideAction();
} else {
// starting action
-
- // new action
- ui.getGlobalActionLabel().setText(
- _("tutti.message.action.running", action.getActionDescription()));
- ui.pack();
-
- MainUI mainUI = getContext().getMainUI();
- if (mainUI != null) {
- Container component = mainUI.getBody();
- int x = mainUI.getX() + (mainUI.getWidth() - component.getWidth());
- int y = mainUI.getY() + (mainUI.getHeight() - component.getHeight());
- ui.setLocation(x, y);
- }
- ui.setVisible(true);
+ showAction(action);
}
}
});
@@ -174,6 +172,8 @@
public void afterInitUI() {
initUI(ui);
+
+ ui.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
}
@Override
@@ -186,7 +186,4 @@
return null;
}
- public void closeAction() {
- getModel().clear();
- }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionUIModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionUIModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -24,8 +24,8 @@
* #L%
*/
+import com.ezware.oxbow.swingbits.util.Preconditions;
import fr.ifremer.tutti.persistence.ProgressionModel;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import org.jdesktop.beans.AbstractSerializableBean;
/**
@@ -59,6 +59,7 @@
}
public void setAction(AbstractTuttiAction action) {
+ Preconditions.checkNotNull(action, "action can not be null");
Object oldValue = getAction();
this.action = action;
firePropertyChange(PROPERTY_ACTION, oldValue, action);
@@ -66,6 +67,9 @@
public void clear() {
setProgressionModel(null);
- setAction(null);
+
+ Object oldValue = getAction();
+ action = null;
+ firePropertyChange(PROPERTY_ACTION, oldValue, null);
}
}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -0,0 +1,228 @@
+package fr.ifremer.tutti.ui.swing.util.action;
+
+import fr.ifremer.tutti.ui.swing.MainUI;
+import fr.ifremer.tutti.ui.swing.util.TuttiExceptionHandler;
+import jaxx.runtime.SwingUtil;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jdesktop.swingx.JXTitledPanel;
+
+import javax.swing.AbstractAction;
+import javax.swing.ImageIcon;
+import javax.swing.JRootPane;
+import javax.swing.SwingUtilities;
+import javax.swing.SwingWorker;
+import java.awt.Cursor;
+import java.awt.event.ActionEvent;
+import java.util.Timer;
+import java.util.TimerTask;
+
+/**
+ * Abstract tutti ui action which launch a {@link AbstractTuttiAction}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.0.2
+ */
+public class TuttiUIAction<A extends AbstractTuttiAction> extends AbstractAction {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(TuttiUIAction.class);
+
+ /**
+ * Timer used to launch timerTask (to open load dialog).
+ *
+ * @since 1.0.2
+ */
+ private static final Timer t = new Timer();
+
+ /**
+ * To deal with errors.
+ *
+ * @since 1.0.2
+ */
+ private static final TuttiExceptionHandler exceptionHandler = new TuttiExceptionHandler();
+
+ /**
+ * Logic Action to perform.
+ *
+ * @since 1.0.2
+ */
+ protected final A action;
+
+ public TuttiUIAction(A action) {
+
+ this.action = action;
+
+ String icon = action.getActionIcon();
+ if (icon != null) {
+ ImageIcon actionIcon = SwingUtil.createActionIcon(icon);
+ putValue(SMALL_ICON, actionIcon);
+ putValue(LARGE_ICON_KEY, actionIcon);
+ }
+ putValue(ACTION_COMMAND_KEY, action.getClass().getName());
+ putValue(NAME, action.getActionName());
+ putValue(SHORT_DESCRIPTION, action.getActionDescription());
+ }
+
+ @Override
+ public final void actionPerformed(final ActionEvent event) {
+
+ if (log.isInfoEnabled()) {
+ log.info("Task [" + this + "] starting");
+ }
+
+ // prepare action
+ boolean doAction = action.prepareAction();
+
+ if (doAction) {
+
+ final TuttiActionSwingWorker<A> worker =
+ new TuttiActionSwingWorker<A>(action);
+
+ SwingUtilities.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+
+ // make ui busy
+ worker.updateBusyState(true);
+
+ }
+ });
+
+ if (log.isInfoEnabled()) {
+ log.info("Before execute of action " + action);
+ }
+
+ // perform and release action
+ worker.execute();
+ if (log.isInfoEnabled()) {
+ log.info("After execute of action " + action);
+ }
+
+ } else {
+
+ // release action
+ action.releaseAction();
+ }
+ }
+
+ // protected void setMnemonic(int key) {
+// putValue(MNEMONIC_KEY, key);
+// }
+
+ protected static class TuttiActionSwingWorker<A extends AbstractTuttiAction> extends SwingWorker<Void, String> {
+
+ protected final TuttiActionUI actionUI;
+
+ protected final A action;
+
+ protected TimerTask timer;
+
+ protected TuttiActionSwingWorker(A action) {
+
+ this.action = action;
+ this.actionUI = action.getContext().getActionUI();
+ }
+
+ @Override
+ protected Void doInBackground() throws Exception {
+
+ if (!isCancelled()) {
+
+ timer = new TimerTask() {
+
+ @Override
+ public void run() {
+ if (isCancelled() || isDone()) {
+
+ if (log.isDebugEnabled()) {
+ log.debug("Task [" + action + "] was already canceled or done, do nothing");
+ }
+ } else {
+
+ if (log.isDebugEnabled()) {
+ log.debug("Task [" + action + "] is started, show waiting dialog");
+ }
+
+ actionUI.open(action);
+
+ }
+ }
+ };
+
+ t.schedule(timer, 1000);
+
+ try {
+
+ action.performAction();
+
+
+ } finally {
+ if (log.isInfoEnabled()) {
+ log.info("Task [" + this + "] done");
+ }
+
+ action.releaseAction();
+ }
+ }
+ return null;
+ }
+
+ @Override
+ protected void done() {
+ super.done();
+
+ // close timer
+
+ if (timer != null) {
+
+ timer.cancel();
+ }
+
+ actionUI.close();
+
+ updateBusyState(false);
+
+ if (action.isFailed()) {
+
+ exceptionHandler.handle(new TuttiExceptionHandler.TuttiActionException(action, action.getError()));
+ }
+ }
+
+ protected void updateBusyState(boolean busy) {
+
+ boolean hideBody = action.isHideBody();
+
+ final MainUI mainUI = action.getContext().getMainUI();
+ JXTitledPanel body = mainUI.getBody();
+ if (busy) {
+ // ui bloquee
+ if (log.isDebugEnabled()) {
+ log.debug("block ui in busy mode");
+ }
+ mainUI.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+ } else {
+ // ui debloquee
+ if (log.isDebugEnabled()) {
+ log.debug("unblock ui in none busy mode");
+ }
+ mainUI.setCursor(Cursor.getDefaultCursor());
+ }
+ if (hideBody) {
+ body.setVisible(!busy);
+ }
+
+// SwingUtilities.invokeLater(
+// new Runnable() {
+// @Override
+// public void run() {
+// mainUI.repaint();
+// }
+// }
+// );
+
+ }
+ }
+}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/AttachmentCellComponent.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/AttachmentCellComponent.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/AttachmentCellComponent.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -26,7 +26,7 @@
import com.google.common.base.Preconditions;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/AttachmentEditorUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/AttachmentEditorUI.jaxx 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/AttachmentEditorUI.jaxx 2013-03-01 20:37:07 UTC (rev 512)
@@ -24,7 +24,7 @@
<Table id='mainPanel'>
<import>
- fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel
+ fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel
fr.ifremer.tutti.persistence.entities.data.Attachment
jaxx.runtime.swing.editor.FileEditor
</import>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/AttachmentEditorUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/AttachmentEditorUIHandler.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/AttachmentEditorUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -26,7 +26,7 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.swing.HBox;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueEditor.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueEditor.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueEditor.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -71,7 +71,7 @@
public CaracteristicValueEditor(int caracteristicColumn, TuttiUIContext context) {
super();
this.caracteristicColumn = caracteristicColumn;
- DecoratorService decoratorService = context.getService(DecoratorService.class);
+ DecoratorService decoratorService = context.getDecoratorService();
decorator = decoratorService.getDecoratorByType(CaracteristicQualitativeValue.class);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueRenderer.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueRenderer.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueRenderer.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -56,7 +56,7 @@
public CaracteristicValueRenderer(int caracteristicColumn, TuttiUIContext context) {
super();
this.caracteristicColumn = caracteristicColumn;
- DecoratorService decoratorService = context.getService(DecoratorService.class);
+ DecoratorService decoratorService = context.getDecoratorService();
decorator = decoratorService.getDecoratorByType(CaracteristicQualitativeValue.class);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/LongTextCellComponent.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/LongTextCellComponent.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/LongTextCellComponent.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,7 +25,7 @@
*/
import com.google.common.base.Preconditions;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/SimpleTimeEditorHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/SimpleTimeEditorHandler.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/SimpleTimeEditorHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -99,7 +99,7 @@
log.debug("date changed : new value " + hours + ":" + minutes);
}
model.setTimeModel(hours * 60 + minutes);
-
+
} else {
model.setTimeModel(null);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/TuttiComputedOrNotDataEditorHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/TuttiComputedOrNotDataEditorHandler.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/TuttiComputedOrNotDataEditorHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -25,8 +25,8 @@
* #L%
*/
-import fr.ifremer.tutti.ui.swing.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.TuttiComputedOrNotData;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import jaxx.runtime.JAXXUtil;
import jaxx.runtime.swing.editor.NumberEditorHandler;
import org.apache.commons.logging.Log;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/TuttiComputedOrNotDataTableCell.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/TuttiComputedOrNotDataTableCell.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/TuttiComputedOrNotDataTableCell.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -24,8 +24,8 @@
* #L%
*/
-import fr.ifremer.tutti.ui.swing.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.TuttiComputedOrNotData;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import jaxx.runtime.JAXXUtil;
import javax.swing.AbstractCellEditor;
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-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -28,12 +28,12 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler;
-import fr.ifremer.tutti.ui.swing.TuttiUI;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchTableModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.swing.JAXXWidgetUtil;
@@ -162,7 +162,7 @@
String... properties) {
super(context, ui);
- this.persistenceService = context.getService(PersistenceService.class);
+ this.persistenceService = context.getPersistenceService();
rowMonitor = new TuttiBeanMonitor<R>(properties);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIModel.java 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIModel.java 2013-03-01 20:37:07 UTC (rev 512)
@@ -26,8 +26,8 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
-import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.environment.EnvironmentRowModel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-03-01 17:26:39 UTC (rev 511)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-03-01 20:37:07 UTC (rev 512)
@@ -16,6 +16,8 @@
tutti.action.cancel.editProgram.tip=Annuler l'édition (ou la création) de la série de campagne
tutti.action.cancel.editProtocol=Annuler
tutti.action.cancel.editProtocol.tip=Annuler l'édition (ou la création) du protocole
+tutti.action.cancelEditCatchBatch=
+tutti.action.cancelEditCatchBatch.tip=
tutti.action.chooseProtocolCaracteristicFile=Choisir le fichier des caractéristiques
tutti.action.chooseProtocolFile=Choisir le fichier de protocole
tutti.action.chooseProtocolSpeciesFile=Choisir le fichier des espèces
1
0
r511 - trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation
by kmorin@users.forge.codelutin.com 01 Mar '13
by kmorin@users.forge.codelutin.com 01 Mar '13
01 Mar '13
Author: kmorin
Date: 2013-03-01 18:26:39 +0100 (Fri, 01 Mar 2013)
New Revision: 511
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/511
Log:
refs #2014 [TRAIT] Cr?\195?\169ation du trait - bug controle "la date de fin doit ?\195?\170tre apr?\195?\168s la date de d?\195?\169but"
Modified:
trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml
trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-error-validation.xml
Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml 2013-03-01 17:12:08 UTC (rev 510)
+++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml 2013-03-01 17:26:39 UTC (rev 511)
@@ -9,15 +9,15 @@
%%
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as
- published by the Free Software Foundation, either version 3 of the
+ published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public
+
+ You should have received a copy of the GNU General Public
License along with this program. If not, see
<http://www.gnu.org/licenses/gpl-3.0.html>.
#L%
@@ -41,7 +41,7 @@
tutti.validator.error.fishingOperation.stationNumber.too.long##${maxLength}
</message>
</field-validator>
-
+
<field-validator type="collectionUniqueKey" short-circuit="true">
<param name="collectionFieldName">existingOperations</param>
<param name="keys">stationNumber, fishingOperationNumber, gearShootingStartDate</param>
@@ -59,7 +59,7 @@
tutti.validator.error.fishingOperation.fishingOperationNumber.required
</message>
</field-validator>
-
+
<field-validator type="collectionUniqueKey" short-circuit="true">
<param name="collectionFieldName">existingOperations</param>
<param name="keys">stationNumber, fishingOperationNumber, gearShootingStartDate</param>
@@ -85,7 +85,7 @@
<field-validator type="required" short-circuit="true">
<message>tutti.validator.error.fishingOperation.date.start.required</message>
</field-validator>
-
+
<field-validator type="collectionUniqueKey" short-circuit="true">
<param name="collectionFieldName">existingOperations</param>
<param name="keys">stationNumber, fishingOperationNumber, gearShootingStartDate</param>
@@ -93,21 +93,21 @@
<param name="nullValueSkipped">true</param>
<message>tutti.validator.error.fishingOperation.existingKey</message>
</field-validator>
-
+
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
- <![CDATA[ gearShootingEndDate == null || !gearShootingStartDate.after(gearShootingEndDate) ]]>
+ <![CDATA[ gearShootingEndDate == null || gearShootingStartDate.before(gearShootingEndDate) ]]>
</param>
<message>tutti.validator.error.fishingOperation.dates.endBeforeStart</message>
</field-validator>
</field>
-
+
<field name="gearShootingEndDate">
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
- <![CDATA[ gearShootingEndDate == null || gearShootingStartDate == null || !gearShootingStartDate.after(gearShootingEndDate) ]]>
+ <![CDATA[ gearShootingEndDate == null || gearShootingStartDate == null || gearShootingStartDate.before(gearShootingEndDate) ]]>
</param>
<message>tutti.validator.error.fishingOperation.dates.endBeforeStart</message>
</field-validator>
Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-error-validation.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-error-validation.xml 2013-03-01 17:12:08 UTC (rev 510)
+++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-error-validation.xml 2013-03-01 17:26:39 UTC (rev 511)
@@ -9,15 +9,15 @@
%%
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as
- published by the Free Software Foundation, either version 3 of the
+ published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public
+
+ You should have received a copy of the GNU General Public
License along with this program. If not, see
<http://www.gnu.org/licenses/gpl-3.0.html>.
#L%
@@ -41,7 +41,7 @@
tutti.validator.error.fishingOperation.stationNumber.too.long##${maxLength}
</message>
</field-validator>
-
+
<field-validator type="collectionUniqueKey" short-circuit="true">
<param name="collectionFieldName">existingOperations</param>
<param name="keys">stationNumber, fishingOperationNumber, gearShootingStartDate</param>
@@ -59,7 +59,7 @@
tutti.validator.error.fishingOperation.fishingOperationNumber.required
</message>
</field-validator>
-
+
<field-validator type="collectionUniqueKey" short-circuit="true">
<param name="collectionFieldName">existingOperations</param>
<param name="keys">stationNumber, fishingOperationNumber, gearShootingStartDate</param>
@@ -79,7 +79,7 @@
</field-validator>
</field>
-
+
<field name='strata'>
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
@@ -88,7 +88,7 @@
<message>tutti.validator.error.fishingOperation.strataLocation.required</message>
</field-validator>
</field>
-
+
<field name='subStrata'>
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
@@ -97,7 +97,7 @@
<message>tutti.validator.error.fishingOperation.strataLocation.required</message>
</field-validator>
</field>
-
+
<field name='location'>
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
@@ -112,7 +112,7 @@
<field-validator type="required" short-circuit="true">
<message>tutti.validator.error.fishingOperation.date.start.required</message>
</field-validator>
-
+
<field-validator type="collectionUniqueKey" short-circuit="true">
<param name="collectionFieldName">existingOperations</param>
<param name="keys">stationNumber, fishingOperationNumber, gearShootingStartDate</param>
@@ -120,68 +120,68 @@
<param name="nullValueSkipped">true</param>
<message>tutti.validator.error.fishingOperation.existingKey</message>
</field-validator>
-
+
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
- <![CDATA[ gearShootingEndDate == null || gearShootingStartDate.compareTo(gearShootingEndDate) < 0 ]]>
+ <![CDATA[ gearShootingEndDate == null || gearShootingStartDate.before(gearShootingEndDate) ]]>
</param>
<message>tutti.validator.error.fishingOperation.dates.endBeforeStart</message>
</field-validator>
-
+
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
<![CDATA[ isDateInCruise(gearShootingStartDate) ]]>
</param>
<message>tutti.validator.error.fishingOperation.dates.startOutOfCruiseDates</message>
</field-validator>
-
+
</field>
<field name="gearShootingEndDate">
-
+
<field-validator type="required" short-circuit="true">
<message>tutti.validator.error.fishingOperation.date.end.required</message>
</field-validator>
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
- <![CDATA[ gearShootingStartDate == null || gearShootingStartDate.compareTo(gearShootingEndDate) < 0 ]]>
+ <![CDATA[ gearShootingStartDate == null || gearShootingStartDate.before(gearShootingEndDate) ]]>
</param>
<message>tutti.validator.error.fishingOperation.dates.endBeforeStart</message>
</field-validator>
-
+
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
<![CDATA[ gearShootingEndDate == null || isDateInCruise(gearShootingEndDate) ]]>
</param>
<message>tutti.validator.error.fishingOperation.dates.startOutOfCruiseDates</message>
</field-validator>
-
+
</field>
<!--gear shooting start latitude validation -->
<field name="gearShootingStartLatitude">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="doubleParams">min:90.0|max:90.0</param>
<param name="expression">
<![CDATA[
- !"DD".equals(coordinateEditorType.toString()) ||
- ( gearShootingStartLatitude != null
- && -doubles.min <= gearShootingStartLatitude
+ !"DD".equals(coordinateEditorType.toString()) ||
+ ( gearShootingStartLatitude != null
+ && -doubles.min <= gearShootingStartLatitude
&& gearShootingStartLatitude <= doubles.max )
]]>
</param>
-
+
<message>tutti.validator.warning.latitude.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<field name="gearShootingStartLatitudeDegree">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="intParams">min:90|max:90</param>
<param name="expression">
@@ -196,20 +196,20 @@
)
]]>
</param>
-
+
<message>tutti.validator.warning.latitude.degree.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<field name="gearShootingStartLatitudeDecimalDegree">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="intParams">min:90|max:90</param>
<param name="expression">
<![CDATA[
- !"DMD".equals(coordinateEditorType.toString()) || (
+ !"DMD".equals(coordinateEditorType.toString()) || (
getGearShootingStartLatitudeDecimalDegree() != null &&
(( -ints.min < getGearShootingStartLatitudeDecimalDegree() && getGearShootingStartLatitudeDecimalDegree() < ints.max )
|| (
@@ -219,97 +219,97 @@
)
]]>
</param>
-
+
<message>tutti.validator.warning.latitude.degree.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<field name="gearShootingStartLatitudeMinute">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="intParams">min:0|max:60</param>
<param name="expression">
<![CDATA[
!"DMS".equals(coordinateEditorType.toString()) ||
- ( getGearShootingStartLatitudeMinute() != null
- && ints.min <= getGearShootingStartLatitudeMinute()
+ ( getGearShootingStartLatitudeMinute() != null
+ && ints.min <= getGearShootingStartLatitudeMinute()
&& getGearShootingStartLatitudeMinute() < ints.max )
]]>
</param>
-
+
<message>tutti.validator.warning.latitude.minute.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<field name="gearShootingStartLatitudeDecimalMinute">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="doubleParams">min:0.0|max:60.0</param>
<param name="expression">
<![CDATA[
!"DMD".equals(coordinateEditorType.toString()) ||
( getGearShootingStartLatitudeDecimalMinute() != null
- && doubles.min <= getGearShootingStartLatitudeDecimalMinute()
+ && doubles.min <= getGearShootingStartLatitudeDecimalMinute()
&& getGearShootingStartLatitudeDecimalMinute() < doubles.max )
]]>
</param>
<message>tutti.validator.warning.latitude.minute.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<field name="gearShootingStartLatitudeSecond">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="intParams">min:0|max:60</param>
<param name="expression">
<![CDATA[
- !"DMS".equals(coordinateEditorType.toString()) ||
+ !"DMS".equals(coordinateEditorType.toString()) ||
( getGearShootingStartLatitudeSecond() != null
- && ints.min <= getGearShootingStartLatitudeSecond()
+ && ints.min <= getGearShootingStartLatitudeSecond()
&& getGearShootingStartLatitudeSecond() < ints.max )
]]>
</param>
-
+
<message>tutti.validator.warning.latitude.second.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<!--gear shooting start longitude validation -->
<field name="gearShootingStartLongitude">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="doubleParams">min:180.0|max:180.0</param>
<param name="expression">
<![CDATA[
!"DD".equals(coordinateEditorType.toString()) ||
- ( gearShootingStartLongitude != null
+ ( gearShootingStartLongitude != null
&& -doubles.min <= gearShootingStartLongitude
&& gearShootingStartLongitude <= doubles.max )
]]>
</param>
-
+
<message>tutti.validator.warning.longitude.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<field name="gearShootingStartLongitudeDegree">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="intParams">min:180|max:180</param>
<param name="expression">
<![CDATA[
- !"DMS".equals(coordinateEditorType.toString()) || (
+ !"DMS".equals(coordinateEditorType.toString()) || (
getGearShootingStartLongitudeDegree() != null &&
((-ints.min < getGearShootingStartLongitudeDegree() && getGearShootingStartLongitudeDegree() < ints.max)
|| (
@@ -319,20 +319,20 @@
)
]]>
</param>
-
+
<message>tutti.validator.warning.longitude.degree.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<field name="gearShootingStartLongitudeDecimalDegree">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="intParams">min:180|max:180</param>
<param name="expression">
<![CDATA[
- !"DMD".equals(coordinateEditorType.toString()) || (
+ !"DMD".equals(coordinateEditorType.toString()) || (
getGearShootingStartLongitudeDecimalDegree() != null &&
(( -ints.min < getGearShootingStartLongitudeDecimalDegree() && getGearShootingStartLongitudeDecimalDegree() < ints.max)
|| (
@@ -342,34 +342,34 @@
)
]]>
</param>
-
+
<message>tutti.validator.warning.longitude.degree.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<field name="gearShootingStartLongitudeMinute">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="intParams">min:0|max:60</param>
<param name="expression">
<![CDATA[
!"DMS".equals(coordinateEditorType.toString()) ||
- ( getGearShootingStartLongitudeMinute() != null
- && ints.min <= getGearShootingStartLongitudeMinute()
+ ( getGearShootingStartLongitudeMinute() != null
+ && ints.min <= getGearShootingStartLongitudeMinute()
&& getGearShootingStartLongitudeMinute() < ints.max )
]]>
</param>
-
+
<message>tutti.validator.warning.longitude.minute.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<field name="gearShootingStartLongitudeDecimalMinute">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="doubleParams">min:0.0|max:60.0</param>
<param name="expression">
@@ -383,57 +383,57 @@
<message>tutti.validator.warning.longitude.minute.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<field name="gearShootingStartLongitudeSecond">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="intParams">min:0|max:60</param>
<param name="expression">
<![CDATA[
!"DMS".equals(coordinateEditorType.toString()) ||
( getGearShootingStartLongitudeSecond() != null
- && ints.min <= getGearShootingStartLongitudeSecond()
+ && ints.min <= getGearShootingStartLongitudeSecond()
&& getGearShootingStartLongitudeSecond() < ints.max )
]]>
</param>
-
+
<message>tutti.validator.warning.longitude.second.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<!--gear shooting end latitude validation -->
-
+
<field name="gearShootingEndLatitude">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="doubleParams">min:90.0|max:90.0</param>
<param name="expression">
<![CDATA[
!"DD".equals(coordinateEditorType.toString()) ||
- ( gearShootingEndLatitude != null
- && -doubles.min <= gearShootingEndLatitude
+ ( gearShootingEndLatitude != null
+ && -doubles.min <= gearShootingEndLatitude
&& gearShootingEndLatitude <= doubles.max )
]]>
</param>
-
+
<message>tutti.validator.warning.latitude.outOfBounds</message>
</field-validator>
-
+
</field>
-
-
+
+
<field name="gearShootingEndLatitudeDegree">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="intParams">min:90|max:90</param>
<param name="expression">
<![CDATA[
- !"DMS".equals(coordinateEditorType.toString()) || (
+ !"DMS".equals(coordinateEditorType.toString()) || (
getGearShootingEndLatitudeDegree() != null &&
(( -ints.min < getGearShootingEndLatitudeDegree() && getGearShootingEndLatitudeDegree() < ints.max)
|| (
@@ -443,20 +443,20 @@
)
]]>
</param>
-
+
<message>tutti.validator.warning.latitude.degree.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<field name="gearShootingEndLatitudeDecimalDegree">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="intParams">min:90|max:90</param>
<param name="expression">
<![CDATA[
- !"DMD".equals(coordinateEditorType.toString()) || (
+ !"DMD".equals(coordinateEditorType.toString()) || (
getGearShootingEndLatitudeDecimalDegree() != null &&
(( -ints.min < getGearShootingEndLatitudeDecimalDegree() && getGearShootingEndLatitudeDecimalDegree() < ints.max)
|| (
@@ -466,98 +466,98 @@
)
]]>
</param>
-
+
<message>tutti.validator.warning.latitude.degree.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<field name="gearShootingEndLatitudeMinute">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="intParams">min:0|max:60</param>
<param name="expression">
<![CDATA[
!"DMS".equals(coordinateEditorType.toString()) ||
- ( getGearShootingEndLatitudeMinute() != null
- && ints.min <= getGearShootingEndLatitudeMinute()
+ ( getGearShootingEndLatitudeMinute() != null
+ && ints.min <= getGearShootingEndLatitudeMinute()
&& getGearShootingEndLatitudeMinute() < ints.max )
]]>
</param>
-
+
<message>tutti.validator.warning.latitude.minute.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<field name="gearShootingEndLatitudeDecimalMinute">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="doubleParams">min:0.0|max:60.0</param>
<param name="expression">
<![CDATA[
!"DMD".equals(coordinateEditorType.toString()) ||
- ( getGearShootingEndLatitudeDecimalMinute() != null
- && doubles.min <= getGearShootingEndLatitudeDecimalMinute()
+ ( getGearShootingEndLatitudeDecimalMinute() != null
+ && doubles.min <= getGearShootingEndLatitudeDecimalMinute()
&& getGearShootingEndLatitudeDecimalMinute() < doubles.max )
]]>
</param>
<message>tutti.validator.warning.latitude.minute.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<field name="gearShootingEndLatitudeSecond">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="intParams">min:0|max:60</param>
<param name="expression">
<![CDATA[
!"DMS".equals(coordinateEditorType.toString()) ||
- ( getGearShootingEndLatitudeSecond() != null
+ ( getGearShootingEndLatitudeSecond() != null
&& ints.min <= getGearShootingEndLatitudeSecond()
&& getGearShootingEndLatitudeSecond() < ints.max )
]]>
</param>
-
+
<message>tutti.validator.warning.latitude.second.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<!--gear shooting end longitude validation -->
-
+
<field name="gearShootingEndLongitude">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="doubleParams">min:180.0|max:180.0</param>
<param name="expression">
<![CDATA[
!"DD".equals(coordinateEditorType.toString()) ||
- ( gearShootingEndLongitude != null
- && -doubles.min <= gearShootingEndLongitude
+ ( gearShootingEndLongitude != null
+ && -doubles.min <= gearShootingEndLongitude
&& gearShootingEndLongitude <= doubles.max )
]]>
</param>
-
+
<message>tutti.validator.warning.longitude.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<field name="gearShootingEndLongitudeDegree">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="intParams">min:180|max:180</param>
<param name="expression">
<![CDATA[
!"DMS".equals(coordinateEditorType.toString()) || (
- getGearShootingEndLongitudeDegree() != null &&
+ getGearShootingEndLongitudeDegree() != null &&
((-ints.min < getGearShootingEndLongitudeDegree() && getGearShootingEndLongitudeDegree() < ints.max)
|| (
( getGearShootingEndLongitudeDegree() == ints.max || getGearShootingEndLongitudeDegree() == -ints.min )
@@ -566,15 +566,15 @@
)
]]>
</param>
-
+
<message>tutti.validator.warning.longitude.degree.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<field name="gearShootingEndLongitudeDecimalDegree">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="intParams">min:180|max:180</param>
<param name="expression">
@@ -589,34 +589,34 @@
)
]]>
</param>
-
+
<message>tutti.validator.warning.longitude.degree.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<field name="gearShootingEndLongitudeMinute">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="intParams">min:0|max:60</param>
<param name="expression">
<![CDATA[
!"DMS".equals(coordinateEditorType.toString()) ||
- ( getGearShootingEndLongitudeMinute() != null
+ ( getGearShootingEndLongitudeMinute() != null
&& ints.min <= getGearShootingEndLongitudeMinute()
&& getGearShootingEndLongitudeMinute() < ints.max )
]]>
</param>
-
+
<message>tutti.validator.warning.longitude.minute.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<field name="gearShootingEndLongitudeDecimalMinute">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="doubleParams">min:0.0|max:60.0</param>
<param name="expression">
@@ -630,26 +630,26 @@
<message>tutti.validator.warning.longitude.minute.outOfBounds</message>
</field-validator>
-
+
</field>
-
+
<field name="gearShootingEndLongitudeSecond">
-
+
<field-validator type="fieldexpressionwithparams">
<param name="intParams">min:0|max:60</param>
<param name="expression">
<![CDATA[
!"DMS".equals(coordinateEditorType.toString()) ||
( getGearShootingEndLongitudeSecond() != null
- && ints.min <= getGearShootingEndLongitudeSecond()
+ && ints.min <= getGearShootingEndLongitudeSecond()
&& getGearShootingEndLongitudeSecond() < ints.max )
]]>
</param>
-
+
<message>tutti.validator.warning.longitude.second.outOfBounds</message>
</field-validator>
-
+
</field>
<field name="trawlDistance">
@@ -659,7 +659,7 @@
</field-validator>
</field>
-
+
<field name="fishingOperationValid">
<field-validator type="required" short-circuit="true">
@@ -667,7 +667,7 @@
</field-validator>
</field>
-
+
<field name="saisisseur">
<field-validator type="fieldexpression" short-circuit="true">
@@ -676,9 +676,9 @@
</param>
<message>tutti.validator.error.fishingOperation.catcher.required</message>
</field-validator>
-
+
</field>
-
+
<field name="vessel">
<field-validator type="required" short-circuit="true">
@@ -694,21 +694,21 @@
</field-validator>
</field>
-
+
<field name="comment">
-
+
<field-validator type="stringlength" short-circuit="true">
<param name="maxLength">2000</param>
<message>tutti.validator.error.comment.too.long##${maxLength}</message>
</field-validator>
-
+
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
<![CDATA[ fishingOperationValid == null || fishingOperationValid || (comment != null && !comment.isEmpty()) ]]>
</param>
<message>tutti.validator.error.fishingOperation.comment.required</message>
</field-validator>
-
+
</field>
</validators>
1
0