branch feature/7528 created (now 40a1f67)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7528 in repository observe. See http://git.codelutin.com/observe.git at 40a1f67 lancement de l'application + connexion aux bases H2 et PG (refs #7528 #7529) This branch includes the following new commits: new 40a1f67 lancement de l'application + connexion aux bases H2 et PG (refs #7528 #7529) The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 40a1f67ee29b06a73bd10c7c926cbd1bbf683f76 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Sep 18 15:28:11 2015 +0200 lancement de l'application + connexion aux bases H2 et PG (refs #7528 #7529) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7528 in repository observe. See http://git.codelutin.com/observe.git commit 40a1f67ee29b06a73bd10c7c926cbd1bbf683f76 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Sep 18 15:28:11 2015 +0200 lancement de l'application + connexion aux bases H2 et PG (refs #7528 #7529) --- observe-application-swing/pom.xml | 1 + .../java/fr/ird/observe/ObserveActionExecutor.java | 22 +- .../main/java/fr/ird/observe/ObserveCLAction.java | 30 +- .../main/java/fr/ird/observe/ObserveConfig.java | 1004 ----- .../fr/ird/observe/ObserveResourceManager.java | 20 +- .../main/java/fr/ird/observe/ObserveRunner.java | 76 +- .../{business => }/ObserveServiceHelper.java | 24 +- ...xt.java => ObserveSwingApplicationContext.java} | 348 +- .../fr/ird/observe/business/IObserveConfig.java | 4 +- .../business/ObserveApplicationContext.java | 9 +- .../ird/observe/business/db/DataSourceConfig.java | 2 +- .../ird/observe/business/db/DataSourceFactory.java | 2 +- .../db/constants/CommonDataSourceConfigParam.java | 1 + .../business/validation/ObserveValidator.java | 6 +- .../validation/ValidationMessageDetector.java | 2 +- .../ObserveApplicationConfigProvider.java | 7 +- .../ObserveSwingApplicationConfig.java | 1152 ++++++ .../ObserveSwingApplicationConfigOption.java} | 217 +- .../ObserveSwingApplicationConfigProvider.java | 37 + .../constantes}/ConnexionStatus.java | 2 +- .../constants => db/constantes}/CreationMode.java | 28 +- .../db/constants => db/constantes}/DbMode.java | 7 +- .../src/main/java/fr/ird/observe/package.html | 2 +- .../main/java/fr/ird/observe/ui/ObserveMainUI.jaxx | 4 +- .../fr/ird/observe/ui/ObserveMainUIHandler.java | 26 +- .../java/fr/ird/observe/ui/ObserveUICallback.java | 12 +- .../src/main/java/fr/ird/observe/ui/UIHelper.java | 18 +- .../actions/ChangeApplicationLanguageAction.java | 12 +- .../observe/ui/actions/ChangeDbLanguageAction.java | 12 +- .../observe/ui/actions/ChangeStorageAction.java | 6 +- .../observe/ui/actions/CloseApplicationAction.java | 6 +- .../fr/ird/observe/ui/actions/CloseHelpAction.java | 8 +- .../ird/observe/ui/actions/CloseStorageAction.java | 4 +- .../fr/ird/observe/ui/actions/GotoSiteAction.java | 8 +- .../ui/actions/ImportStorageFromFileAction.java | 9 +- .../ird/observe/ui/actions/LaunchAdminAction.java | 4 +- .../ui/actions/ReloadApplicationAction.java | 8 +- .../actions/ReloadDefaultConfigurationAction.java | 12 +- .../observe/ui/actions/ReloadResourcesAction.java | 8 +- .../observe/ui/actions/ReloadStorageAction.java | 12 +- .../ui/actions/SaveStorageToFileAction.java | 10 +- .../ird/observe/ui/actions/ShowConfigAction.java | 126 +- .../observe/ui/actions/ShowStorageInfoAction.java | 4 +- .../observe/ui/actions/StartServerModeAction.java | 7 +- .../ui/actions/shared/CloseAndCreateUIAction.java | 6 +- .../ui/actions/shared/CloseOpenUIAction.java | 6 +- .../observe/ui/actions/shared/ReOpenUIAction.java | 5 +- .../java/fr/ird/observe/ui/admin/AdminStep.java | 2 +- .../java/fr/ird/observe/ui/admin/AdminTabUI.jaxx | 6 +- .../fr/ird/observe/ui/admin/AdminTabUIHandler.java | 9 +- .../fr/ird/observe/ui/admin/AdminUILauncher.java | 10 +- .../java/fr/ird/observe/ui/admin/AdminUIModel.java | 31 +- .../observe/ui/admin/config/ConfigUIHandler.java | 2 - .../ui/admin/gps/GPSActivityTableModel.java | 4 +- .../observe/ui/admin/gps/ImportGPSConfigUI.jaxx | 6 +- .../ObsoleteEntityListCellRenderer.java | 4 +- .../ui/admin/validate/ValidateConfigUI.jaxx | 6 +- .../validate/ValidateEntityListCellRenderer.java | 4 +- .../observe/ui/admin/validate/ValidateModel.java | 6 +- .../ui/admin/validate/ValidateUIHandler.java | 2 +- .../java/fr/ird/observe/ui/content/ContentUI.jaxx | 10 +- .../ird/observe/ui/content/ContentUIHandler.java | 10 +- .../observe/ui/content/ContentUIInitializer.java | 12 +- .../impl/longline/LonglineDetailCompositionUI.jaxx | 4 +- .../LonglineDetailCompositionUIHandler.java | 16 +- .../impl/longline/LonglineGlobalCompositionUI.jaxx | 10 +- .../ui/content/open/ContentOpenableUIHandler.java | 1 - .../open/impl/longline/TripLonglineUIHandler.java | 5 +- .../ui/content/open/impl/seine/RouteUIHandler.java | 10 +- .../open/impl/seine/TripSeineUIHandler.java | 4 +- .../ui/content/ref/ContentReferenceUIHandler.java | 13 +- .../ref/ReferentialContentUIInitializer.java | 5 +- .../ui/content/ref/UniqueKeyTableModel.java | 4 +- .../ui/content/table/ContentTableUIHandler.java | 12 +- .../impl/longline/CatchLonglineUIHandler.java | 18 +- .../table/impl/longline/EncounterUIHandler.java | 6 +- .../longline/GearUseFeaturesLonglineUIHandler.java | 12 +- .../table/impl/longline/SensorUsedUIHandler.java | 9 +- .../content/table/impl/longline/TdrUIHandler.java | 16 +- .../impl/seine/GearUseFeaturesSeineUIHandler.java | 12 +- .../table/impl/seine/NonTargetCatchUIHandler.java | 18 +- .../impl/seine/ObjectObservedSpeciesUIHandler.java | 6 +- .../impl/seine/ObjectSchoolEstimateUIHandler.java | 6 +- .../table/impl/seine/SchoolEstimateUIHandler.java | 10 +- .../table/impl/seine/TargetCatchUIHandler.java | 9 +- .../impl/seine/TargetDiscardCatchUIHandler.java | 9 +- .../ird/observe/ui/storage/RemoteUILauncher.java | 3 +- .../ui/storage/StorageBackupUILauncher.java | 6 +- .../ird/observe/ui/storage/StorageUIHandler.java | 587 ++- .../ird/observe/ui/storage/StorageUILauncher.java | 52 +- .../fr/ird/observe/ui/storage/StorageUIModel.java | 767 ++-- .../ird/observe/ui/storage/tabs/ChooseDbModeUI.css | 13 + .../observe/ui/storage/tabs/ChooseDbModeUI.jaxx | 14 +- .../ird/observe/ui/storage/tabs/ConfigDataUI.jaxx | 2 +- .../ui/storage/tabs/ConfigReferentielUI.jaxx | 2 +- .../fr/ird/observe/ui/storage/tabs/ConfigUI.css | 17 + .../fr/ird/observe/ui/storage/tabs/ConfigUI.jaxx | 29 +- .../ui/storage/tabs/StorageTabUIHandler.java | 33 +- .../ui/tree/AbstractObserveTreeCellRenderer.java | 8 +- .../ui/tree/NavigationTreeSelectionModel.java | 4 +- .../fr/ird/observe/ui/tree/ObserveTreeHelper.java | 8 +- .../java/fr/ird/observe/ui/usage/UsagesUI.jaxx | 6 +- .../fr/ird/observe/ui/usage/UsagesUIHandler.java | 4 +- ...ObserveSimpleValidatorMessageTableRenderer.java | 4 +- .../util/ObserveValidatorMessageTableRenderer.java | 4 +- .../observe/ui/util/tripMap/TripMapUIHandler.java | 12 +- .../org.nuiton.config.ApplicationConfigProvider | 2 +- .../observe-application-swing_en_GB.properties | 1803 ++++---- .../observe-application-swing_es_ES.properties | 2105 +++++----- .../observe-application-swing_fr_FR.properties | 4320 ++++++++++---------- .../src/main/resources/observeSwing.conf | 5 + ...glineDetailCompositionValidatorServiceTest.java | 6 +- .../controller/v1/DataSourceServiceController.java | 3 +- observe-entities/pom.xml | 62 +- .../src/main/xmi/observe-common.properties | 2 +- .../src/main/xmi/observe-longline.properties | 2 +- .../src/main/xmi/observe-seine.properties | 2 +- observe-services-configuration-api/pom.xml | 6 + .../configuration/ObserveDataSourceConnection.java | 4 + .../ObserveDataSourceConnectionSupport.java | 13 +- observe-services-configuration-rest/pom.xml | 6 + .../ObserveDataSourceConnectionRest.java | 7 +- observe-services-configuration-topia/pom.xml | 4 +- .../ObserveDataSourceConnectionTopia.java | 7 +- .../fr/ird/observe/services/ObserveJdbcHelper.java | 35 + .../services/service/DataSourceServiceTopia.java | 12 +- .../ObserveDataSourceConnectionTopiaTaiste.java | 3 +- pom.xml | 3 + 128 files changed, 7214 insertions(+), 6448 deletions(-) diff --git a/observe-application-swing/pom.xml b/observe-application-swing/pom.xml index 5d71b8e..9af2045 100644 --- a/observe-application-swing/pom.xml +++ b/observe-application-swing/pom.xml @@ -295,6 +295,7 @@ </resource> <resource> <directory>src/main/resources</directory> + <filtering>true</filtering> <includes> <include>**/*</include> </includes> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveActionExecutor.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveActionExecutor.java index 9ec858c..dd89d5f 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveActionExecutor.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveActionExecutor.java @@ -65,7 +65,7 @@ public class ObserveActionExecutor extends ActionExecutor { return; } - if (ObserveContext.isClosed()) { + if (ObserveSwingApplicationContext.isClosed()) { // l'application est déjà fermée, on ne fait rien return; @@ -77,7 +77,7 @@ public class ObserveActionExecutor extends ActionExecutor { model.setStepState(WizardState.RUNNING); // return; } - ObserveMainUI ui = ObserveContext.get().getObserveMainUI(); + ObserveMainUI ui = ObserveSwingApplicationContext.get().getObserveMainUI(); if (ui != null) { ui.setBusy(true); } @@ -92,7 +92,7 @@ public class ObserveActionExecutor extends ActionExecutor { "] failed with error " + error.getCause(), error); } } - if (ObserveContext.isClosed()) { + if (ObserveSwingApplicationContext.isClosed()) { // l'application est déjà fermée, on ne fait rien return; @@ -104,7 +104,7 @@ public class ObserveActionExecutor extends ActionExecutor { model.setStepState(WizardState.FAILED); return; } - ObserveMainUI ui = ObserveContext.get().getObserveMainUI(); + ObserveMainUI ui = ObserveSwingApplicationContext.get().getObserveMainUI(); if (ui != null) { ui.getStatus().setStatus("Action [" + source.getActionLabel() + "] arrêté à cause d'un erreur " + error.getMessage()); } @@ -115,7 +115,7 @@ public class ObserveActionExecutor extends ActionExecutor { if (log.isDebugEnabled()) { log.debug("Action [" + source.getActionLabel() + "] was canceled"); } - if (ObserveContext.isClosed()) { + if (ObserveSwingApplicationContext.isClosed()) { // l'application est déjà fermée, on ne fait rien return; @@ -125,7 +125,7 @@ public class ObserveActionExecutor extends ActionExecutor { admin.getHandler().getModel().setStepState(WizardState.CANCELED); return; } - ObserveMainUI ui = ObserveContext.get().getObserveMainUI(); + ObserveMainUI ui = ObserveSwingApplicationContext.get().getObserveMainUI(); if (ui != null) { ui.getStatus().setStatus("Action [" + source.getActionLabel() + "] annulée"); } @@ -136,7 +136,7 @@ public class ObserveActionExecutor extends ActionExecutor { if (log.isDebugEnabled()) { log.debug("Action [" + source.getActionLabel() + " ] was done in " + source.getTime()); } - if (ObserveContext.isClosed()) { + if (ObserveSwingApplicationContext.isClosed()) { // l'application est déjà fermée, on ne fait rien return; @@ -154,7 +154,7 @@ public class ObserveActionExecutor extends ActionExecutor { } return; } - ObserveMainUI ui = ObserveContext.get().getObserveMainUI(); + ObserveMainUI ui = ObserveSwingApplicationContext.get().getObserveMainUI(); if (ui != null) { ui.getStatus().setStatus("Action [" + source.getActionLabel() + "] terminée."); } @@ -166,7 +166,7 @@ public class ObserveActionExecutor extends ActionExecutor { if (log.isDebugEnabled()) { log.debug("Action [" + source.getActionLabel() + " ] is consumed (still " + count + " tasks to treat)."); } - if (ObserveContext.isClosed()) { + if (ObserveSwingApplicationContext.isClosed()) { // l'application est déjà fermée, on ne fait rien return; @@ -177,7 +177,7 @@ public class ObserveActionExecutor extends ActionExecutor { log.info("Action [" + source.getActionLabel() + "] terminée à " + new Date(source.getStartTime())); } - ObserveContext context = ObserveContext.get(); + ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); if (log.isDebugEnabled()) { log.debug("Unlock main context " + context); } @@ -190,7 +190,7 @@ public class ObserveActionExecutor extends ActionExecutor { //admin.getHandler().getUi().removePropertyChangeListener(admin.getHandler().getUi()); // return; } - ObserveMainUI ui = ObserveContext.get().getObserveMainUI(); + ObserveMainUI ui = ObserveSwingApplicationContext.get().getObserveMainUI(); if (count < 1 && ui != null) { ui.setBusy(false); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveCLAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveCLAction.java index f35d5de..ea491cd 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveCLAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveCLAction.java @@ -21,6 +21,8 @@ */ package fr.ird.observe; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; +import fr.ird.observe.configuration.ObserveSwingApplicationConfigOption; import fr.ird.observe.ui.ObserveMainUIHandler; import fr.ird.observe.ui.admin.AdminStep; import fr.ird.observe.ui.admin.AdminUILauncher; @@ -45,7 +47,7 @@ import static org.nuiton.i18n.I18n.t; * possibles. * * @author Tony Chemit - chemit@codelutin.com - * @see ObserveConfig + * @see ObserveSwingApplicationConfig * @see ObserveRunner * @since 1.0 */ @@ -167,7 +169,7 @@ public class ObserveCLAction { } /** La configuration de l'application. */ - protected ObserveConfig config; + protected ObserveSwingApplicationConfig config; public ObserveCLAction() { } @@ -197,14 +199,14 @@ public class ObserveCLAction { out.append('\n'); out.append("Options (set with --option <key> <value>:"); out.append('\n'); - for (ObserveConfigOption o : ObserveConfigOption.values()) { + for (ObserveSwingApplicationConfigOption o : ObserveSwingApplicationConfigOption.values()) { out.append("\t"); - out.append(o.key); + out.append(o.getKey()); out.append("("); - out.append(o.defaultValue); + out.append(o.getDefaultValue()); out.append(") :"); - out.append(t(o.description)); + out.append(t(o.getDescription())); out.append('\n'); } @@ -228,7 +230,7 @@ public class ObserveCLAction { public void configure() throws InterruptedException { disableMainUI(); - ObserveContext context = ObserveContext.get(); + ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); ObserveMainUIHandler handler = context.getContextValue(ObserveMainUIHandler.class); @@ -262,7 +264,7 @@ public class ObserveCLAction { return; } - ObserveContext context = ObserveContext.get(); + ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); AdminUILauncher launcher = AdminUILauncher.newLauncher(context, operation); @@ -287,14 +289,14 @@ public class ObserveCLAction { return; } - ObserveContext context = ObserveContext.get(); + ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); // FIXME // getConfig().setOption(AbstractDataSourceMigration.AUTO_MIGRATE, "false"); if (operation == ObstunaAdminAction.UPDATE || operation == ObstunaAdminAction.CREATE) { - getConfig().setOption(ObserveConfigOption.OBSTUNA_CAN_MIGRATE, true); + getConfig().setOption(ObserveSwingApplicationConfigOption.OBSTUNA_CAN_MIGRATE, true); } RemoteUILauncher launcher = operation.newLauncher(context, null); @@ -314,7 +316,7 @@ public class ObserveCLAction { } } else { - ObserveContext.get().setContextValue( + ObserveSwingApplicationContext.get().setContextValue( true, ActionDefinition.H2_SERVER_MODE.name()); } @@ -361,9 +363,9 @@ public class ObserveCLAction { // } } - protected ObserveConfig getConfig() { + protected ObserveSwingApplicationConfig getConfig() { if (config == null) { - config = ObserveContext.get().getConfig(); + config = ObserveSwingApplicationContext.get().getConfig(); } return config; } @@ -385,7 +387,7 @@ public class ObserveCLAction { executor.addAction(action); // on attends la fin de l'opération - ObserveContext context = ObserveContext.get(); + ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); if (log.isDebugEnabled()) { log.debug("Lock main context " + context); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveConfig.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveConfig.java deleted file mode 100644 index b965eea..0000000 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveConfig.java +++ /dev/null @@ -1,1004 +0,0 @@ -/* - * #%L - * ObServe :: Swing - * %% - * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit - * %% - * 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% - */ -package fr.ird.observe; - -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Lists; -import com.google.common.collect.Sets; -import fr.ird.observe.business.IObserveConfig; -import fr.ird.observe.business.db.constants.CreationMode; -import fr.ird.observe.business.db.constants.DbMode; -import fr.ird.observe.ui.UIHelper; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.config.ApplicationConfig; -import org.nuiton.util.version.Version; -import org.nuiton.util.version.Versions; - -import javax.swing.*; -import java.awt.*; -import java.beans.PropertyChangeListener; -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.List; -import java.util.Locale; -import java.util.Properties; -import java.util.Set; - -import static fr.ird.observe.ObserveConfigOption.*; -import static fr.ird.observe.ObserveResourceManager.Resource; -import static org.nuiton.i18n.I18n.t; - -/** - * La configuration de l'application. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.0 - */ -public class ObserveConfig extends ApplicationConfig implements IObserveConfig { - - /** Logger */ - static private Log log = LogFactory.getLog(ObserveConfig.class); - - /** - * un drepeau pour savoir s'il faut lancer l'interface graphique. Cette - * valeur peut être programmées lors des actions. - */ - protected boolean displayMainUI = true; - - /** drapeau pour savoir si une base locale existe */ - protected boolean localStorageExist; - - /** - * drapeau pour savoir si le dump initial a ete chargee depuis la base - * centrale - */ - protected boolean initialDumpExist; - - /** drapeau pour savoir si une source de données est ouverte */ - protected boolean mainStorageOpened; - - /** - * drapeau pour savoir si la source ouverte est locale (attention, lorsqu'il - * n'y a pas de storage d'ouvert, la valeur est null). - */ - protected Boolean mainStorageOpenedLocal; - - /** - * drapeau pour savoir si on peut utiliser des ui dans l'environnement. - * <p/> - * Par defaut, on suppose qu'on peut utiliser l'environnement graphique et - * si on désactive explicitement ou si pas d'environnement graphique - * trouvé. - */ - protected boolean canUseUI = true; - - /** La version de l'application */ - private Version version; - - /** Texte du copyright (calculé dynamiquement). */ - protected String copyrightText; - - /** - * Liste des options qu'on ne peut pas sauvegarder (les mots de passes, - * les options d'admin pour les simples utilisateurs,...). - * - * @since 1.5 - */ - protected String[] unsavables; - - //FIXME - private final ImmutableSet<String> longlinVesselTypeIds = ImmutableSet.copyOf( - Sets.newHashSet("fr.ird.observe.entities.referentiel.VesselType#1239832675735#0.044156847891821505", - "fr.ird.observe.entities.referentiel.VesselType#1239832675736#0.8708229847859869", - "fr.ird.observe.entities.referentiel.VesselType#1239832686137#0.1")); - - private final ImmutableSet<String> seineVesselTypeIds = ImmutableSet.copyOf( - Sets.newHashSet("fr.ird.observe.entities.referentiel.VesselType#1239832675735#0.044156847891821505", - "fr.ird.observe.entities.referentiel.VesselType#1239832675735#0.307197212385357", - "fr.ird.observe.entities.referentiel.VesselType#1239832675735#0.7380146830307519", - "fr.ird.observe.entities.referentiel.VesselType#1239832675735#0.9086075071905084", - "fr.ird.observe.entities.referentiel.VesselType#1239832675737#0.43324169605639407")); - - public ObserveConfig() { - setConfigFileName(CONFIG_FILE.defaultValue); - loadDefaultOptions(ObserveConfigOption.values()); - } - - public boolean containActions(Step action) { - List<Action> list = actions.get(action.ordinal()); - return !(list == null || list.isEmpty()); - } - - public void initConfig(ObserveResourceManager manager) throws IOException { - - Version version = null; - - Properties p = manager.getResource(Resource.application); - - for (Object k : p.keySet()) { - String key = String.valueOf(k); - Object value = p.get(k); - if (log.isDebugEnabled()) { - log.debug("install property [" + k + "] : " + value); - } - String strValue = String.valueOf(value); - if (APPLICATION_VERSION.equals(key)) { - version = Versions.valueOf(strValue); - if (version.isSnapshot()) { - version = Versions.removeSnapshot(version); - } - - } else { - setDefaultOption(key, strValue); - } - } - - if (version == null) { - throw new IllegalStateException("No application.version found in application configuration."); - } - - setVersion(version); - setDefaultOption(VERSION, version.getVersion()); - setDefaultOption(APPLICATION_VERSION, version.getVersion()); - - //TC-200100204 La version de la base n'est pas liéé à la version - // de l'application - //FIXME -// Version dbVersion; -// -// dbVersion = Versions.valueOf(ObserveDAOHelper.getModelVersion()); -// -// setDefaultOption(DB_VERSION, dbVersion.getVersion()); - - // creation des actions disponibles - for (ObserveCLAction.ActionDefinition a : ObserveCLAction.ActionDefinition.values()) { - - for (String alias : a.aliases) { - addActionAlias(alias, a.action); - } - } - } - - @Override - protected void migrateUserConfigurationFile(File oldHomeConfig, - File homeConfig) throws IOException { - super.migrateUserConfigurationFile(oldHomeConfig, homeConfig); - // on previent l'utilisateur que son fichier de configuration a été - // deplacé - JOptionPane.showInternalMessageDialog(null, - t("observe.title.config.migrate"), - t("observe.runner.config.migrate.file", - oldHomeConfig.getName(), - oldHomeConfig, - homeConfig - ), - JOptionPane.WARNING_MESSAGE); - } - - protected void installSaveAction() { - // ajout de l'action de sauvegarde automatique sur certaines propriétés - - List<String> result = new ArrayList<String>(); - - for (ObserveConfigOption option : values()) { - String key = option.getPropertyKey(); - if (key != null) { - // add a listener - if (log.isDebugEnabled()) { - log.debug("register action listener for property " + key); - } - result.add(key); - } - } - - installSaveUserAction(result.toArray(new String[result.size()])); - } - - @Override - public String getCopyrightText() { - if (copyrightText == null) { - Date date = new Date(); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(date); - int year = calendar.get(Calendar.YEAR); - copyrightText = "Version " + getVersion() + " IRD @ 2008-" + year; - } - return copyrightText; - } - - @Override - public boolean isDevMode() { - boolean result = getOptionAsBoolean(DEV_MODE.key); - return result; - } - - @Override - public Version getVersion() { - return version; - } - - @Override - public Version getDbVersion() { - //FIXME -// Version option = getOption(Version.class, DB_VERSION); -// return option; - return null; - } - - @Override - public boolean isAutoPopupNumberEditor() { - boolean result = getOptionAsBoolean(AUTO_POPUP_NUMBER_EDITOR.key); - return result; - } - - @Override - public boolean isShowNumberEditorButton() { - boolean result = getOptionAsBoolean(SHOW_NUMBER_EDITOR_BUTTON.key); - return result; - } - - @Override - public boolean isShowTimeEditorSlider() { - boolean result = getOptionAsBoolean(SHOW_DATE_TIME_EDITOR_SLIDER.key); - return result; - } - - @Override - public boolean isFullScreen() { - boolean result = getOptionAsBoolean(FULL_SCREEN.key); - return result; - } - - public File getDataDirectory() { - File file = getOptionAsFile(ObserveConfigOption.DATA_DIRECTORY.key); - return file; - } - - - @Override - public File getValidationReportDirectory() { - File file = getOptionAsFile(ObserveConfigOption.VALIDATION_REPORT_DIRECTORY.key); - return file; - } - - @Override - public File getLocalDBDirectory() { - File result = getOptionAsFile(DB_DIRECTORY.key); - return result; - } - - @Override - public File getResourcesDirectory() { - File result = getOptionAsFile(RESOURCES_DIRECTORY.key); - return result; - } - - @Override - public File getI18nDirectory() { - File result = getOptionAsFile(I18N_DIRECTORY.key); - return result; - } - - @Override - public void setResourcesDirectory(File newValue) { - setOption(RESOURCES_DIRECTORY, newValue); - } - - @Override - public File getInitialDbDump() { - File result = getOptionAsFile(INITIAL_DB_DUMP.key); - return result; - } - - @Override - public File getBackupDirectory() { - File result = getOptionAsFile(BACKUP_DIRECTORY.key); - return result; - } - - @Override - public File getReportDirectory() { - File result = getOptionAsFile(REPORT_DIRECTORY.key); - return result; - } - - @Override - public File getTmpDirectory() { - File result = getOptionAsFile(TMP_DIRECTORY.key); - return result; - } - - @Override - public File getLogConfigurationFile() { - File result = getOptionAsFile(LOG_CONFIGURATION_FILE.key); - return result; - } - - @Override - public String getH2Login() { - String result = getOption(H2_LOGIN.key); - return result; - } - - @Override - public char[] getH2Password() { - String result = getOption(H2_PASSWORD.key); - char[] r = result.toCharArray(); - return r; - } - - @Override - public int getH2ServerPort() { - Integer port = getOptionAsInt(H2_SERVER_PORT.key); - return port; - } - - @Override - public String getObstunaUrl() { - String result = getOption(OBSTUNA_URL.key); - return result; - } - - @Override - public String getObstunaLogin() { - String result = getOption(OBSTUNA_LOGIN.key); - return result; - } - - @Override - public char[] getObstunaPassword() { - String result = getOption(OBSTUNA_PASSWORD.key); - char[] r = result.toCharArray(); - return r; - } - - @Override - public boolean isObstunaUseSsl() { - boolean result = getOptionAsBoolean(OBSTUNA_USE_SSL_CERT.key); - return result; - } - - @Override - public DbMode getDefaultDbMode() { - DbMode result = getOption(DbMode.class, DEFAULT_DB_MODE.key); - return result; - } - - @Override - public CreationMode getDefaultCreationMode() { - CreationMode result = - getOption(CreationMode.class, DEFAULT_CREATION_MODE.key); - return result; - } - - @Override - public boolean isShowMigrationSql() { - boolean result = getOptionAsBoolean(SHOW_MIGRATION_SQL.key); - return result; - } - - @Override - public boolean isShowMigrationProgression() { - boolean result = getOptionAsBoolean(SHOW_MIGRATION_PROGRESSION.key); - return result; - } - - @Override - public boolean isShowSql() { - boolean result = getOptionAsBoolean(SHOW_SQL.key); - return result; - } - - @Override - public int getDefaultGpsMaxDelay() { - Integer i = getOptionAsInt(DEFAULT_GPS_MAX_DELAY.key); - return i; - } - - @Override - public float getDefaultGpsMaxSpeed() { - double i = getOptionAsDouble(DEFAULT_GPS_MAX_SPEED.key); - return (float) i; - } - - @Override - public boolean isChangeSynchroSrc() { - boolean result = getOptionAsBoolean(CHANGE_SYNCHRO_SRC.key); - return result; - } - - @Override - public boolean isStoreRemoteStorage() { - boolean result = getOptionAsBoolean(STORE_REMOTE_STORAGE.key); - return result; - } - - @Override - public boolean isCanMigrateObstuna() { - boolean result = getOptionAsBoolean(OBSTUNA_CAN_MIGRATE.key); - return result; - } - - @Override - public boolean isCanMigrateH2() { - boolean result = getOptionAsBoolean(H2_CAN_MIGRATE.key); - return result; - } - - @Override - public boolean isLoadLocalStorage() { - boolean result = getOptionAsBoolean(LOAD_LOCAL_STORAGE.key); - return result; - } - - @Override - public Locale getLocale() { - Locale result = getOption(Locale.class, LOCALE.key); - return result; - } - - @Override - public Locale getDbLocale() { - Locale result = getOption(Locale.class, DB_LOCALE.key); - return result; - } - - @Override - public int getNonTargetObservation() { - int value = getOptionAsInt(NON_TARGET_OBSERVATION.key); - return value; - } - - @Override - public int getTargetDiscardsObservation() { - int value = getOptionAsInt(TARGET_DISCARDS_OBSERVATION.key); - return value; - } - - @Override - public int getSamplesObservation() { - int value = getOptionAsInt(SAMPLES_OBSERVATION.key); - return value; - } - - @Override - public int getObjectsObservation() { - int value = getOptionAsInt(OBJECTS_OBSERVATION.key); - return value; - } - - @Override - public int getDetailledActivitiesObservation() { - int value = getOptionAsInt(DETAILLED_ACTIVITIES_OBSERVATION.key); - return value; - } - - @Override - public int getMammalsObservation() { - int value = getOptionAsInt(MAMMALS_OBSERVATION.key); - return value; - } - - @Override - public int getBirdsObservation() { - int value = getOptionAsInt(BIRDS_OBSERVATION.key); - return value; - } - - @Override - public int getBaitObservation() { - int value = getOptionAsInt(BAIT_OBSERVATION.key); - return value; - } - - @Override - public boolean isDisplayMainUI() { - return displayMainUI; - } - - @Override - public boolean isCanUseUI() { - return canUseUI; - } - - @Override - public boolean isLocalStorageExist() { - return localStorageExist; - } - - @Override - public boolean isInitialDumpExist() { - return initialDumpExist; - } - - @Override - public boolean isMainStorageOpened() { - return mainStorageOpened; - } - - @Override - public Boolean getMainStorageOpenedLocal() { - return mainStorageOpenedLocal; - } - - public void setLocalStorageExist(boolean newValue) { - localStorageExist = newValue; - // always force propagation - firePropertyChange(PROPERTY_LOCAL_STORAGE_EXIST, newValue); - } - - public void setInitialDumpExist(boolean newValue) { - initialDumpExist = newValue; - // always force propagation - firePropertyChange(PROPERTY_INITIAL_DUMP_EXIST, newValue); - } - - public void setMainStorageOpened(boolean newValue) { - mainStorageOpened = newValue; - if (!newValue) { - // on force la reinitialisation - setMainStorageOpenedLocal(null); - } - // always force propagation - firePropertyChange(PROPERTY_MAIN_STORAGE_OPENED, newValue); - } - - public void setMainStorageOpenedLocal(Boolean newValue) { - mainStorageOpenedLocal = newValue; - // always force propagation - firePropertyChange(PROPERTY_MAIN_STORAGE_OPENED + "Local", newValue); - } - - public void setDisplayMainUI(boolean b) { - displayMainUI = b; - } - - public void setCanUseUI(boolean canUseUI) { - this.canUseUI = canUseUI; - if (!canUseUI) { - // on ne pourra pas lancer l'ui principale - setDisplayMainUI(false); - } - } - - @Override - public void setAutoPopupNumberEditor(boolean newValue) { - setOption(AUTO_POPUP_NUMBER_EDITOR, newValue); - } - - @Override - public void setShowNumberEditorButton(boolean newValue) { - setOption(SHOW_NUMBER_EDITOR_BUTTON, newValue); - } - - @Override - public void setShowTimeEditorSlider(boolean newValue) { - setOption(SHOW_DATE_TIME_EDITOR_SLIDER, newValue); - } - - @Override - public void setFullScreen(boolean newValue) { - setOption(FULL_SCREEN, newValue); - } - - @Override - public void setChangeSynchroSrc(boolean newValue) { - setOption(CHANGE_SYNCHRO_SRC, newValue); - } - - @Override - public void setStoreRemoteStorage(boolean newValue) { - setOption(STORE_REMOTE_STORAGE, newValue); - } - - @Override - public void setLoadLocalStorage(boolean newValue) { - setOption(LOAD_LOCAL_STORAGE, newValue); - } - - @Override - public void setDefaultDbMode(DbMode newValue) { - setOption(DEFAULT_DB_MODE, newValue); - } - - @Override - public void setDefaultCreationMode(CreationMode newValue) { - setOption(DEFAULT_CREATION_MODE, newValue); - } - - @Override - public void setDefaultGpsMaxDelay(int newValue) { - setOption(DEFAULT_GPS_MAX_DELAY, newValue); - } - - @Override - public void setDefaultGpsMaxSpeed(float newValue) { - setOption(DEFAULT_GPS_MAX_SPEED, newValue); - } - - @Override - public void setLocale(Locale newValue) { - setOption(LOCALE, newValue); - } - - @Override - public void setDbLocale(Locale newValue) { - setOption(DB_LOCALE, newValue); - } - - @Override - public void setCanMigrateObstuna(Boolean newValue) { - setOption(OBSTUNA_CAN_MIGRATE, newValue); - } - - @Override - public void setCanMigrateH2(Boolean newValue) { - setOption(H2_CAN_MIGRATE, newValue); - } - - @Override - public void setNonTargetObservation(int newValue) { - setOption(NON_TARGET_OBSERVATION, newValue); - } - - @Override - public void setTargetDiscardsObservation(int newValue) { - setOption(TARGET_DISCARDS_OBSERVATION, newValue); - } - - @Override - public void setSamplesObservation(int newValue) { - setOption(SAMPLES_OBSERVATION, newValue); - } - - @Override - public void setObjectsObservation(int newValue) { - setOption(OBJECTS_OBSERVATION, newValue); - } - - @Override - public void setDetailledActivitiesObservation(int newValue) { - setOption(DETAILLED_ACTIVITIES_OBSERVATION, newValue); - } - - @Override - public void setMammalsObservation(int newValue) { - setOption(MAMMALS_OBSERVATION, newValue); - } - - @Override - public void setBirdsObservation(int newValue) { - setOption(BIRDS_OBSERVATION, newValue); - } - - @Override - public void setBaitObservation(int newValue) { - setOption(BAIT_OBSERVATION, newValue); - } - - @Override - public void setShowMigrationSql(boolean showMigrationSql) { - setOption(SHOW_MIGRATION_SQL, showMigrationSql); - } - - @Override - public void setShowMigrationProgression(boolean showMigrationProgression) { - setOption(SHOW_MIGRATION_PROGRESSION, showMigrationProgression); - } - - @Override - public void setShowSql(boolean showSql) { - setOption(SHOW_SQL, showSql); - } - - @Override - public String getSpeciesListSeineNonTargetCatchId() { - String value = getOption(SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID.key); - return value; - } - - @Override - public String getSpeciesListSeineTargetCatchId() { - String value = getOption(SPECIES_LIST_SEINE_TARGET_CATCH_ID.key); - return value; - } - - @Override - public String getSpeciesListSeineSchoolEstimateId() { - String value = getOption(SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID.key); - return value; - } - - @Override - public String getSpeciesListSeineObjectObservedSpeciesId() { - String value = getOption(SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID.key); - return value; - } - - @Override - public String getSpeciesListSeineObjectSchoolEstimateId() { - String value = getOption(SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID.key); - return value; - } - - @Override - public String getSpeciesListLonglineCatchId() { - String value = getOption(SPECIES_LIST_LONGLINE_CATCH_ID.key); - return value; - } - - @Override - public String getSpeciesListLonglineEncounterId() { - String value = getOption(SPECIES_LIST_LONGLINE_ENCOUNTER_ID.key); - return value; - } - - @Override - public String getSpeciesListLonglineDepredatorId() { - String value = getOption(SPECIES_LIST_LONGLINE_DEPREDATOR_ID.key); - return value; - } - - @Override - public void setSpeciesListSeineNonTargetCatchId(String speciesListSeineNonTargetCatchId) { - setOption(SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID, speciesListSeineNonTargetCatchId); - } - - @Override - public void setSpeciesListSeineTargetCatchId(String speciesListSeineTargetCatchId) { - setOption(SPECIES_LIST_SEINE_TARGET_CATCH_ID, speciesListSeineTargetCatchId); - } - - @Override - public void setSpeciesListSeineSchoolEstimateId(String speciesListSeineSchoolEstimateId) { - setOption(SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID, speciesListSeineSchoolEstimateId); - } - - @Override - public void setSpeciesListSeineObjectObservedSpeciesId(String speciesListSeineObjectObservedSpeciesId) { - setOption(SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID, speciesListSeineObjectObservedSpeciesId); - } - - @Override - public void setSpeciesListSeineObjectSchoolEstimateId(String speciesListseineObjectSchoolEstimateId) { - setOption(SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID, speciesListseineObjectSchoolEstimateId); - } - - @Override - public void setSpeciesListLonglineCatchId(String speciesListLonglineCatchId) { - setOption(SPECIES_LIST_LONGLINE_CATCH_ID, speciesListLonglineCatchId); - } - - @Override - public void setSpeciesListLonglineEncounterId(String speciesListLonglineEncounterId) { - setOption(SPECIES_LIST_LONGLINE_ENCOUNTER_ID, speciesListLonglineEncounterId); - } - - @Override - public void setSpeciesListLonglineDepredatorId(String speciesListLonglineDepredatorId) { - setOption(SPECIES_LIST_LONGLINE_DEPREDATOR_ID, speciesListLonglineDepredatorId); - } - - public Color getMapBackgroundColor() { - Color result = getOptionAsColor(MAP_BACKGROUND_COLOR.key); - return result; - } - - public List<File> getMapLayerFiles() { - List<File> layers = Lists.newLinkedList(); - - for (ObserveConfigOption layerOption : ObserveConfigOption.MAP_LAYERS) { - File layerFile = getOptionAsFile(layerOption.key); - if (layerFile != null && layerFile.exists()) { - layers.add(layerFile); - } - } - return layers; - } - - public File getMapStyleFile() { - File result = getOptionAsFile(ObserveConfigOption.MAP_STYLE_FILE.key); - return result; - } - - public String[] getUnsavables() { - if (unsavables == null) { - List<String> tmp = new ArrayList<String>(); - tmp.add(OBSTUNA_PASSWORD.getKey()); -// tmp.add(OBSTUNA_SSL_CERTIFICAT_PASSWORD.getKey()); - tmp.add(H2_PASSWORD.getKey()); - tmp.add(OBSTUNA_CAN_MIGRATE.getKey()); - -// if (!ObserveRunner.isAdmin()) { -// // toutes les options dite admin ne sont pas sauvables -// -// for (ObserveConfigOption option : values()) { -// if (option.isAdmin()) { -// -// // ne pas ajouter les options d'admin pour le simple utilisateur -// tmp.add(option.key); -// } -// } -// } - unsavables = tmp.toArray(new String[tmp.size()]); - } - return unsavables; - } - - @Override - public void saveForUser(String... excludeKeys) { - if (log.isInfoEnabled()) { - log.info(t("observe.message.save.configuration", getUserConfigFile())); - } - super.saveForUser(getUnsavables()); - } - - //FIXME -// @Override -// public void fromStorageConfig(H2DataSourceConfig config) { -// setOption(SHOW_MIGRATION_PROGRESSION, config.isShowMigrationProgression()); -// setOption(SHOW_MIGRATION_SQL, config.isShowMigrationSql()); -// saveForUser(); -// } - -// @Override -// public void fromStorageConfig(PGDataSourceConfig config) { -// setOption(OBSTUNA_URL.getKey(), config.getUrl()); -// setOption(OBSTUNA_LOGIN.getKey(), config.getLogin()); -// setOption(OBSTUNA_PASSWORD.getKey(), -// new String(config.getPassword())); -// boolean useSsl = config.isUseSsl(); -// setOption(OBSTUNA_USE_SSL_CERT, useSsl); -//// if (useSsl) { -//// setOption(OBSTUNA_SSL_CERTIFICAT_FILE, -//// config.getSslCertificatFile().getAbsolutePath()); -//// setOption(OBSTUNA_SSL_CERTIFICAT_PASSWORD, -//// new String(config.getSslCertificatPassword())); -//// } else { -//// setOption(OBSTUNA_SSL_CERTIFICAT_FILE.key, ""); -//// setOption(OBSTUNA_SSL_CERTIFICAT_PASSWORD, EMPTY_CHAR_ARRAY); -//// } -// setOption(SHOW_MIGRATION_PROGRESSION, config.isShowMigrationProgression()); -// setOption(SHOW_MIGRATION_SQL, config.isShowMigrationSql()); -// //TODO-TC20100311 : on devrait pas regarder si l'utilisateur veut sauver -// //TODO-TC20100311 : la configuration ? -// saveForUser(); -// } - - //FIXME -// @Override -// public H2DataSourceConfig toH2StorageConfig(String label) { -// H2DataSourceConfig result; -// result = DataSourceFactory.newH2Config( -// label, -// CommonDataSourceConfigParam.LOGIN, getH2Login(), -// CommonDataSourceConfigParam.PASSWORD, getH2Password(), -// CommonDataSourceConfigParam.CAN_MIGRATE, isCanMigrateH2(), -// CommonDataSourceConfigParam.SHOW_MIGRATION_PROGRESSION, isShowMigrationProgression(), -// CommonDataSourceConfigParam.SHOW_MIGRATION_SQL, isShowMigrationSql(), -// H2DataSourceConfigParam.DIRECTORY, getLocalDBDirectory() -// ); -// return result; -// } - - //FIXME -// @Override -// public PGDataSourceConfig toPostgresStorageConfig(String label) { -// PGDataSourceConfig result; -// result = DataSourceFactory.newPGConfig( -// label, -// PGDataSourceConfigParam.URL, getObstunaUrl(), -// CommonDataSourceConfigParam.LOGIN, getObstunaLogin(), -// CommonDataSourceConfigParam.PASSWORD, getObstunaPassword(), -// CommonDataSourceConfigParam.CAN_MIGRATE, isCanMigrateObstuna(), -// CommonDataSourceConfigParam.SHOW_MIGRATION_PROGRESSION, isShowMigrationProgression(), -// CommonDataSourceConfigParam.SHOW_MIGRATION_SQL, isShowMigrationSql(), -// PGDataSourceConfigParam.USE_SSL, isObstunaUseSsl() -// ); -// return result; -// } - - public void removeJaxxPropertyChangeListener() { - List<String> tmp = new ArrayList<String>(); - for (ObserveConfigOption option : values()) { - String propertyName = option.getPropertyKey(); - if (propertyName != null) { - tmp.add(propertyName); - } - } - if (log.isDebugEnabled()) { - log.debug("property names to seek for options : " + tmp); - } - String[] propertyNames = tmp.toArray( - new String[tmp.size()]); - - PropertyChangeListener[] toRemove = - UIHelper.findJaxxPropertyChangeListener( - propertyNames, - getPropertyChangeListeners()); - if (toRemove == null || toRemove.length == 0) { - return; - } - if (log.isDebugEnabled()) { - log.debug("before remove : " + getPropertyChangeListeners().length); - log.debug("toRemove : " + toRemove.length); - } - for (PropertyChangeListener listener : toRemove) { - removePropertyChangeListener(listener); - } - if (log.isDebugEnabled()) { - log.debug("after remove : " + getPropertyChangeListeners().length); - } - } - - public void setOption(ObserveConfigOption option, Object newValue) { - String key = option.getKey(); - Object oldValue = getOption(key); - String value = String.valueOf(newValue); - setOption(key, value); - if (log.isDebugEnabled()) { - log.debug("set option " + key + " value : " + value); - } - String propertyName = option.getPropertyKey(); - if (propertyName != null) { - // l'option est javabeans, declanchement d'un changement - if (log.isTraceEnabled()) { - log.trace("fires config change from option " + key); - } - firePropertyChange(propertyName, oldValue, newValue); - } - } - - void setVersion(Version version) { - this.version = version; - } - - public Set<String> getSeineVesselTypeIds() { - return seineVesselTypeIds; - } - - public Set<String> getLonglineVesselTypeIds() { - return longlinVesselTypeIds; - } - - @Override - public String replaceRecursiveOptions(String option) { - return super.replaceRecursiveOptions(option); - } - - ////////////////////////////////////////////////// - // Toutes les étapes d'actions - ////////////////////////////////////////////////// - - public enum Step { - - AfterInit, BeforeExit - } - - protected void firePropertyChange(String propertyName, Object newValue) { - pcs.firePropertyChange(propertyName, null, newValue); - } -} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveResourceManager.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveResourceManager.java index 3cd0908..2ae8455 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveResourceManager.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveResourceManager.java @@ -21,6 +21,8 @@ */ package fr.ird.observe; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; +import fr.ird.observe.configuration.ObserveSwingApplicationConfigOption; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -236,9 +238,9 @@ public class ObserveResourceManager { * @return le fichier * @throws IOException pour tout problème de création de répertoire */ - protected File createDirectory(ObserveConfig config, - ObserveConfigOption option) throws IOException { - File dir = config.getOptionAsFile(option.key); + protected File createDirectory(ObserveSwingApplicationConfig config, + ObserveSwingApplicationConfigOption option) throws IOException { + File dir = config.getOptionAsFile(option.getKey()); createDirectory(dir); return dir; } @@ -251,10 +253,10 @@ public class ObserveResourceManager { * @param options les options qui représentent des répertoires ou fichiers. * @throws IOException pour tout problème de création de répertoire */ - protected void createParentDirectory(ObserveConfig config, - ObserveConfigOption... options) throws IOException { - for (ObserveConfigOption option : options) { - File dir = config.getOptionAsFile(option.key).getParentFile(); + protected void createParentDirectory(ObserveSwingApplicationConfig config, + ObserveSwingApplicationConfigOption... options) throws IOException { + for (ObserveSwingApplicationConfigOption option : options) { + File dir = config.getOptionAsFile(option.getKey()).getParentFile(); createDirectory(dir); } } @@ -306,9 +308,9 @@ public class ObserveResourceManager { } } - public File unzipToDirectory(Resource resource, ObserveConfig config, ObserveConfigOption option, String message) throws IOException { + public File unzipToDirectory(Resource resource, ObserveSwingApplicationConfig config, ObserveSwingApplicationConfigOption option, String message) throws IOException { - File dir = config.getOptionAsFile(option.key); + File dir = config.getOptionAsFile(option.getKey()); createDirectory(dir); InputStream inputStream = openInternalStream(resource.getUrl()); try { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveRunner.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveRunner.java index b7cd96e..3a844fa 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveRunner.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveRunner.java @@ -22,9 +22,9 @@ package fr.ird.observe; import com.google.common.base.Preconditions; -import fr.ird.observe.business.ObserveServiceHelper; import fr.ird.observe.business.ObserveTechnicalException; import fr.ird.observe.business.converter.FloatConverter; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.ObserveMainUIHandler; import fr.ird.observe.ui.UIHelper; @@ -62,7 +62,7 @@ import java.util.Locale; import java.util.Map; import java.util.Properties; -import static fr.ird.observe.ObserveConfigOption.*; +import static fr.ird.observe.configuration.ObserveSwingApplicationConfigOption.*; import static fr.ird.observe.ObserveResourceManager.Resource; import static org.nuiton.i18n.I18n.t; @@ -192,7 +192,7 @@ public abstract class ObserveRunner extends ApplicationRunner { // 1 - preparation de la configuration - ObserveConfig config = initConfig(); + ObserveSwingApplicationConfig config = initConfig(); if (log.isInfoEnabled()) { log.info(t("observe.runner.config.loaded", config.getVersion())); @@ -240,7 +240,7 @@ public abstract class ObserveRunner extends ApplicationRunner { } } - protected void initLog(ObserveConfig config) throws IOException { + protected void initLog(ObserveSwingApplicationConfig config) throws IOException { File logFile = config.getLogConfigurationFile(); Preconditions.checkState(logFile.exists(), "Le fichier de configuration des logs %s n'existe pas.", logFile); @@ -281,7 +281,7 @@ public abstract class ObserveRunner extends ApplicationRunner { Arrays.toString(args))); } - ObserveContext context = ObserveContext.get(); + ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); if (log.isDebugEnabled()) { log.debug("Will use context : " + context); @@ -289,20 +289,19 @@ public abstract class ObserveRunner extends ApplicationRunner { UIHelper.checkJAXXContextEntries( context, - ObserveContext.CONFIG_ENTRY_DEF, - ObserveContext.ACTIONS_ENTRY_DEF, - //FIXME -// ObserveContext.DATA_SERVICE_ENTRY_DEF, - ObserveContext.DECORATOR_SERVICE_ENTRY_DEF + ObserveSwingApplicationContext.CONFIG_ENTRY_DEF, + ObserveSwingApplicationContext.ACTIONS_ENTRY_DEF, + ObserveSwingApplicationContext.SERVICE_MAIN_FACTORY_ENTRY_DEF, + ObserveSwingApplicationContext.DECORATOR_SERVICE_ENTRY_DEF ); // 1 - launch commandline actions - ObserveConfig config = context.getConfig(); + ObserveSwingApplicationConfig config = context.getConfig(); - if (config.containActions(ObserveConfig.Step.AfterInit)) { + if (config.containActions(ObserveSwingApplicationConfig.Step.AfterInit)) { - config.doAction(ObserveConfig.Step.AfterInit.ordinal()); + config.doAction(ObserveSwingApplicationConfig.Step.AfterInit.ordinal()); if (log.isInfoEnabled()) { log.info("Operation terminées..."); @@ -369,7 +368,7 @@ public abstract class ObserveRunner extends ApplicationRunner { if (log.isDebugEnabled()) { log.debug("Will close context..."); } - ObserveContext.get().close(); + ObserveSwingApplicationContext.get().close(); } } @@ -404,9 +403,9 @@ public abstract class ObserveRunner extends ApplicationRunner { } } - protected ObserveConfig initConfig() throws Exception { + protected ObserveSwingApplicationConfig initConfig() throws Exception { - ObserveConfig config = new ObserveConfig(); + ObserveSwingApplicationConfig config = new ObserveSwingApplicationConfig(); // init config (load application configuration) config.initConfig(resourceManager); @@ -420,7 +419,7 @@ public abstract class ObserveRunner extends ApplicationRunner { return config; } - protected void initUserDirectories(ObserveConfig config) throws IOException { + protected void initUserDirectories(ObserveSwingApplicationConfig config) throws IOException { // 1 - user data directory @@ -507,15 +506,14 @@ public abstract class ObserveRunner extends ApplicationRunner { } - protected void detectLocalDataBase(ObserveConfig config) throws IOException { - //FIXME -// boolean hasLocalStorage = ObserveServiceHelper.isLocalStorageExists(config); -// config.setLocalStorageExist(hasLocalStorage); -// if (!hasLocalStorage) { -// if (log.isInfoEnabled()) { -// log.info(t("observe.init.no.local.db.detected", config.getLocalDBDirectory())); -// } -// } + protected void detectLocalDataBase(ObserveSwingApplicationConfig config) throws IOException { + boolean hasLocalStorage = config.getLocalDBDirectory().exists(); + config.setLocalStorageExist(hasLocalStorage); + if (!hasLocalStorage) { + if (log.isInfoEnabled()) { + log.info(t("observe.init.no.local.db.detected", config.getLocalDBDirectory())); + } + } boolean hasInitialDb = ObserveServiceHelper.isInitialDbExists(config); config.setInitialDumpExist(hasInitialDb); @@ -527,7 +525,7 @@ public abstract class ObserveRunner extends ApplicationRunner { } } - protected void initI18n(ObserveConfig config) { + protected void initI18n(ObserveSwingApplicationConfig config) { I18n.close(); @@ -562,7 +560,7 @@ public abstract class ObserveRunner extends ApplicationRunner { } } - protected void initUIConfiguration(ObserveConfig config) throws IOException { + protected void initUIConfiguration(ObserveSwingApplicationConfig config) throws IOException { // prepare ui look&feel and load ui properties try { @@ -588,7 +586,7 @@ public abstract class ObserveRunner extends ApplicationRunner { } } - public void loadUIConfig(ObserveConfig config) { + public void loadUIConfig(ObserveSwingApplicationConfig config) { // chargement de la configuration des uis File dir = config.getResourcesDirectory(); @@ -630,26 +628,22 @@ public abstract class ObserveRunner extends ApplicationRunner { * @return le context applicatif * @throws IllegalStateException si un contexte applicatif a déja été positionné. */ - public ObserveContext initContext(ObserveConfig config) throws Exception { + public ObserveSwingApplicationContext initContext(ObserveSwingApplicationConfig config) throws Exception { if (ObserveServiceHelper.isInit()) { throw new IllegalStateException( "there is an already application context registred."); } - ObserveContext instance = new ObserveContext(); + ObserveSwingApplicationContext instance = new ObserveSwingApplicationContext(); // add config - ObserveContext.CONFIG_ENTRY_DEF.setContextValue(instance, config); - - // add dataService - //FIXME -// instance.getDataService(); + ObserveSwingApplicationContext.CONFIG_ENTRY_DEF.setContextValue(instance, config); - // add data context - instance.getDataContext(); + // add service main factory + instance.getObserveServiceMainFactory(); // add actions - ObserveContext.ACTIONS_ENTRY_DEF.setContextValue(instance, new ObserveCLAction()); + ObserveSwingApplicationContext.ACTIONS_ENTRY_DEF.setContextValue(instance, new ObserveCLAction()); // referencement du context applicatif sur le helper de service ObserveServiceHelper.set(instance); @@ -660,8 +654,8 @@ public abstract class ObserveRunner extends ApplicationRunner { return instance; } - protected ObserveMainUI startUI(ObserveContext context, - ObserveConfig config) { + protected ObserveMainUI startUI(ObserveSwingApplicationContext context, + ObserveSwingApplicationConfig config) { ObserveMainUIHandler uiHandler = context.getContextValue(ObserveMainUIHandler.class); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/ObserveServiceHelper.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveServiceHelper.java similarity index 91% rename from observe-application-swing/src/main/java/fr/ird/observe/business/ObserveServiceHelper.java rename to observe-application-swing/src/main/java/fr/ird/observe/ObserveServiceHelper.java index 522c131..ab50553 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/business/ObserveServiceHelper.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveServiceHelper.java @@ -19,11 +19,13 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.business; +package fr.ird.observe; +import fr.ird.observe.business.DecoratorService; import fr.ird.observe.business.gps.GPSService; import fr.ird.observe.business.validation.ValidationContext; import fr.ird.observe.business.validation.ValidationService; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -35,7 +37,7 @@ public class ObserveServiceHelper { private static Log log = LogFactory.getLog(ObserveServiceHelper.class); /** Le context applicatif. */ - public static ObserveApplicationContext context; + public static ObserveSwingApplicationContext context; /** Un drapeau pour savoir quand l'application est en cours de fermeture. */ protected static boolean closed; @@ -53,7 +55,7 @@ public class ObserveServiceHelper { * @return l'instance partagé du contexte. * @throws IllegalStateException si le contexte n'a pas été initialisé */ - public static ObserveApplicationContext get() throws IllegalStateException { + public static ObserveSwingApplicationContext get() throws IllegalStateException { checkInit(); return context; } @@ -71,7 +73,7 @@ public class ObserveServiceHelper { return context != null; } - public static void set(ObserveApplicationContext context) { + public static void set(ObserveSwingApplicationContext context) { if (isInit()) { throw new IllegalStateException( "application context already registred."); @@ -131,7 +133,7 @@ public class ObserveServiceHelper { public static ValidationContext getValidationContext() { checkInit(); - ObserveApplicationContext context = get(); + ObserveSwingApplicationContext context = get(); ValidationContext dataContext = context.getValidationContext(); return dataContext; } @@ -143,7 +145,7 @@ public class ObserveServiceHelper { */ public static GPSService getGPSService() { checkInit(); - ObserveApplicationContext context = get(); + ObserveSwingApplicationContext context = get(); GPSService service = context.getGPSService(); return service; } @@ -182,7 +184,7 @@ public class ObserveServiceHelper { */ public static DecoratorService getDecoratorService() { checkInit(); - ObserveApplicationContext context = get(); + ObserveSwingApplicationContext context = get(); DecoratorService service = context.getDecoratorService(); return service; } @@ -198,7 +200,7 @@ public class ObserveServiceHelper { */ //FIXME // public static DataSource newEmptyTempStorage( -// IObserveConfig config, +// ObserveSwingApplicationConfig config, // String label, // String prefixName) throws IOException { // String dbfileName = (prefixName == null ? "tmp_" : prefixName + "_") @@ -253,7 +255,7 @@ public class ObserveServiceHelper { * @see DataSource */ //FIXME -// public static H2DataSource newLocalStorageService(IObserveConfig config) throws IOException, IllegalStateException { +// public static H2DataSource newLocalStorageService(ObserveSwingApplicationConfig config) throws IOException, IllegalStateException { // // // H2DataSourceConfig c = @@ -279,7 +281,7 @@ public class ObserveServiceHelper { * @throws IOException si pb d'IO */ //FIXME -// public static boolean isLocalStorageExists(IObserveConfig config) throws IOException { +// public static boolean isLocalStorageExists(ObserveSwingApplicationConfig config) throws IOException { // // // build a local storage service config // H2DataSourceConfig storageConfig = config.toH2StorageConfig( @@ -302,7 +304,7 @@ public class ObserveServiceHelper { * @param config la configuration à utiliser * @return {@code true} si le dump existe, {@code false} sinon. */ - public static boolean isInitialDbExists(IObserveConfig config) { + public static boolean isInitialDbExists(ObserveSwingApplicationConfig config) { boolean dbExists = config.getInitialDbDump().exists(); return dbExists; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveContext.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java similarity index 60% rename from observe-application-swing/src/main/java/fr/ird/observe/ObserveContext.java rename to observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java index df5267a..decdfb3 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveContext.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java @@ -21,10 +21,23 @@ */ package fr.ird.observe; -import fr.ird.observe.business.ObserveApplicationContext; -import fr.ird.observe.business.ObserveServiceHelper; +import fr.ird.observe.business.BinderService; +import fr.ird.observe.business.DecoratorService; +import fr.ird.observe.business.db.DataContext; import fr.ird.observe.business.db.DataSource; -import fr.ird.observe.business.db.constants.DbMode; +import fr.ird.observe.business.gps.GPSService; +import fr.ird.observe.business.validation.ObserveValidator; +import fr.ird.observe.business.validation.ValidationContext; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; +import fr.ird.observe.db.constantes.DbMode; +import fr.ird.observe.services.ObserveDataSourceConfigurationMainFactory; +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.ObserveServiceInitializer; +import fr.ird.observe.services.ObserveServiceMainFactory; +import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; +import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationAndConnection; +import fr.ird.observe.services.configuration.ObserveDataSourceConnection; +import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.ObserveMainUIHandler; import fr.ird.observe.ui.ObserveUIMode; @@ -44,18 +57,24 @@ import fr.ird.observe.ui.actions.shared.SaveEditUIAction; import fr.ird.observe.ui.actions.shared.SelectNodeUIAction; import fr.ird.observe.ui.actions.shared.SelectOpenNodeUIAction; import fr.ird.observe.ui.content.ContentUI; -import fr.ird.observe.ui.tree.ObserveTreeHelper; +import jaxx.runtime.JAXXUtil; +import jaxx.runtime.context.DefaultApplicationContext; import jaxx.runtime.context.JAXXContextEntryDef; import jaxx.runtime.swing.CardLayout2; import jaxx.runtime.swing.ErrorDialogUI; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.cfg.Environment; +import org.nuiton.decorator.Decorator; -import javax.swing.*; -import java.awt.*; +import javax.swing.ActionMap; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import java.awt.Component; +import java.io.File; import java.util.Arrays; import java.util.List; +import java.util.Locale; import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; @@ -71,14 +90,62 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class ObserveContext extends ObserveApplicationContext { +public class ObserveSwingApplicationContext extends DefaultApplicationContext { /** Logger */ - static private Log log = LogFactory.getLog(ObserveContext.class); + static private Log log = LogFactory.getLog(ObserveSwingApplicationContext.class); - //------------------------------------------- - // UI instances - //------------------------------------------- + /** the jaxx context entry to store the config */ + public static final JAXXContextEntryDef<ObserveSwingApplicationConfig> CONFIG_ENTRY_DEF = + JAXXUtil.newContextEntryDef(ObserveSwingApplicationConfig.class); + + /** the jaxx context entry to store the decorator service */ + public static final JAXXContextEntryDef<DecoratorService> DECORATOR_SERVICE_ENTRY_DEF = + JAXXUtil.newContextEntryDef(DecoratorService.class); + + /** the jaxx context entry to store the service main factory */ + public static final JAXXContextEntryDef<ObserveServiceMainFactory> SERVICE_MAIN_FACTORY_ENTRY_DEF = + JAXXUtil.newContextEntryDef(ObserveServiceMainFactory.class); + + /** the jaxx context entry to store the data source configuration factory */ + public static final JAXXContextEntryDef<ObserveDataSourceConfigurationMainFactory> DATA_SOURCE_CONFIGURATION_FACTORY_ENTRY_DEF = + JAXXUtil.newContextEntryDef(ObserveDataSourceConfigurationMainFactory.class); + + /** the jaxx context entry to store the data source configuration */ + public static final JAXXContextEntryDef<ObserveDataSourceConfiguration> DATA_SOURCE_CONFIGURATION_ENTRY_DEF = + JAXXUtil.newContextEntryDef(ObserveDataSourceConfiguration.class); + + /** the jaxx context entry to store the data source connexion */ + public static final JAXXContextEntryDef<ObserveDataSourceConnection> DATA_SOURCE_CONNECTION_ENTRY_DEF = + JAXXUtil.newContextEntryDef(ObserveDataSourceConnection.class); + + /** the jaxx context entry to store the decorator service */ + public static final JAXXContextEntryDef<BinderService> BINDER_SERVICE_ENTRY_DEF = + JAXXUtil.newContextEntryDef(BinderService.class); + + /** the jaxx context entry to store the gps service */ + public static final JAXXContextEntryDef<GPSService> GPS_SERVICE_ENTRY_DEF = + JAXXUtil.newContextEntryDef(GPSService.class); + + //FIXME +// /** the jaxx context entry to store the consolidate data service */ +// public static final JAXXContextEntryDef<ConsolidateDataService> CONSOLIDATE_DATA_SERVICE_ENTRY_DEF = +// JAXXUtil.newContextEntryDef(ConsolidateDataService.class); + //FIXME +// /** the jaxx context entry to store the data service */ +// public static final JAXXContextEntryDef<DataService> DATA_SERVICE_ENTRY_DEF = +// JAXXUtil.newContextEntryDef(DataService.class); + + /** the jaxx context entry to store the data service */ + public static final JAXXContextEntryDef<DataContext> DATA_CONTEXT_ENTRY_DEF = + JAXXUtil.newContextEntryDef(DataContext.class); + + /** the jaxx context entry to store the data source (says the ui data source) */ + public static final JAXXContextEntryDef<DataSource> DATA_SOURCE_ENTRY_DEF = + JAXXUtil.newContextEntryDef(DataSource.class); + + public static final JAXXContextEntryDef<ValidationContext> VALIDATION_CONTEXT_ENTRY_DEF = + JAXXUtil.newContextEntryDef(ValidationContext.class); /** the jaxx context entry to store the main ui */ private static final JAXXContextEntryDef<ObserveMainUI> MAIN_UI_ENTRY_DEF = @@ -96,26 +163,255 @@ public class ObserveContext extends ObserveApplicationContext { public static final JAXXContextEntryDef<List<String>> NODE_TO_RESELECT_ENTRY_DEF = UIHelper.newListContextEntryDef("nodeToReselect"); + public <O> Decorator<O> getDecorator(Class<O> clazz) { + DecoratorService provider = getDecoratorService(); + Decorator<O> value = provider.getDecoratorByType(clazz); + return value; + } + + public <O> Decorator<O> getDecorator(Class<O> clazz, String name) { + DecoratorService provider = getDecoratorService(); + Decorator<O> value = provider.getDecoratorByType(clazz, name); + return value; + } + + public ObserveSwingApplicationConfig getConfig() { + return CONFIG_ENTRY_DEF.getContextValue(this); + } + + + + public final DataSource getDataSource() { + DataSource dataSource = DATA_SOURCE_ENTRY_DEF.getContextValue(this); + return dataSource; + } + + public final void setDataSource(DataSource source) { + if (source == null) { + DATA_SOURCE_ENTRY_DEF.removeContextValue(this); + } else { + DATA_SOURCE_ENTRY_DEF.setContextValue(this, source); + } + } + + public final DecoratorService getDecoratorService() { + DecoratorService decoratorService = + DECORATOR_SERVICE_ENTRY_DEF.getContextValue(this); + if (decoratorService == null) { + + // initialisation du service de décoration + // initialisation + ObserveSwingApplicationConfig config = getConfig(); + ReferentialLocale loc = ReferentialLocale.FR; + if (config != null) { + Locale dbLocale = config.getDbLocale(); + if (dbLocale != null) { + loc = ReferentialLocale.valueOf(dbLocale); + } + } + decoratorService = new DecoratorService(loc); + DECORATOR_SERVICE_ENTRY_DEF.setContextValue(this, decoratorService); + } + return decoratorService; + } + + public final ObserveServiceMainFactory getObserveServiceMainFactory() { + + ObserveServiceMainFactory serviceMainFactory = SERVICE_MAIN_FACTORY_ENTRY_DEF.getContextValue(this); + + if (serviceMainFactory == null) { + + serviceMainFactory = ObserveServiceMainFactory.get(); + + SERVICE_MAIN_FACTORY_ENTRY_DEF.setContextValue(this, serviceMainFactory); + + } + + return serviceMainFactory; + } + + public final ObserveDataSourceConfigurationMainFactory getObserveDataSourceConfigurationMainFactory() { + + ObserveDataSourceConfigurationMainFactory configurationMainFactory = DATA_SOURCE_CONFIGURATION_FACTORY_ENTRY_DEF.getContextValue(this); + + if (configurationMainFactory == null) { + + configurationMainFactory = new ObserveDataSourceConfigurationMainFactory(); + + DATA_SOURCE_CONFIGURATION_FACTORY_ENTRY_DEF.setContextValue(this, configurationMainFactory); + + } + + return configurationMainFactory; + } + + public final void setObserveDataSourceConfiguration(ObserveDataSourceConfiguration sourceConfiguration) { + DATA_SOURCE_CONFIGURATION_ENTRY_DEF.setContextValue(this, sourceConfiguration); + } + + public final ObserveDataSourceConfiguration getObserveDataSourceConfiguration() { + return DATA_SOURCE_CONFIGURATION_ENTRY_DEF.getContextValue(this); + } + + public final void setObserveDataSourceConnection(ObserveDataSourceConnection connection) { + DATA_SOURCE_CONNECTION_ENTRY_DEF.setContextValue(this, connection); + } + + public final ObserveDataSourceConnection getObserveDataSourceConnection() { + return DATA_SOURCE_CONNECTION_ENTRY_DEF.getContextValue(this); + } + + public <S extends ObserveService> S newService(ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType) { + + return newService(dataSourceConfiguration, null, serviceType); + } + + public <S extends ObserveService> S newService(ObserveDataSourceConfiguration dataSourceConfiguration, ObserveDataSourceConnection dataSourceConnection, Class<S> serviceType) { + + ObserveServiceInitializer observeServiceInitializer = getObserveServiceInitializer(dataSourceConfiguration, dataSourceConnection); + + ObserveServiceMainFactory serviceFactory = getObserveServiceMainFactory(); + + return serviceFactory.newService(observeServiceInitializer, serviceType); + } + + public ObserveServiceInitializer getObserveServiceInitializer() { + + ObserveDataSourceConnection connection = getObserveDataSourceConnection(); + + ObserveDataSourceConfiguration configuration = getObserveDataSourceConfiguration(); + + ObserveServiceInitializer serviceInitializer = getObserveServiceInitializer(configuration, connection); + + return serviceInitializer; + } + + protected ObserveServiceInitializer getObserveServiceInitializer(ObserveDataSourceConfiguration dataSourceConfiguration, ObserveDataSourceConnection dataSourceConnection) { + + Locale locale = getConfig().getLocale(); + + File tmpDirectory = getConfig().getTmpDirectory(); + + ReferentialLocale referentialLocale = ReferentialLocale.valueOf(locale); + + ObserveDataSourceConfigurationAndConnection configurationAndConnection = new ObserveDataSourceConfigurationAndConnection(dataSourceConfiguration, dataSourceConnection); + + ObserveServiceInitializer observeServiceInitializer = ObserveServiceInitializer.create( + locale, + referentialLocale, + tmpDirectory, + configurationAndConnection + ); + + return observeServiceInitializer; + } + + public <S extends ObserveService> S newService(Class<S> serviceType) { + + ObserveServiceMainFactory serviceFactory = getObserveServiceMainFactory(); + + S service = serviceFactory.newService(getObserveServiceInitializer(), serviceType); + + return service; + } + + public final BinderService getBinderService() { + BinderService service = BINDER_SERVICE_ENTRY_DEF.getContextValue(this); + if (service == null) { + service = new BinderService(); + BINDER_SERVICE_ENTRY_DEF.setContextValue(this, service); + } + return service; + } + + public final GPSService getGPSService() { + GPSService service = + GPS_SERVICE_ENTRY_DEF.getContextValue(this); + if (service == null) { + service = new GPSService(); + GPS_SERVICE_ENTRY_DEF.setContextValue(this, service); + } + return service; + } + + //FIXME +// public ConsolidateDataService getConsolidateDataService() { +// +// ConsolidateDataService service = +// CONSOLIDATE_DATA_SERVICE_ENTRY_DEF.getContextValue(this); +// if (service == null) { +// service = new ConsolidateDataService(); +// CONSOLIDATE_DATA_SERVICE_ENTRY_DEF.setContextValue(this, service); +// } +// return service; +// } + + public final DataContext getDataContext() { + DataContext result = DATA_CONTEXT_ENTRY_DEF.getContextValue(this); + if (result == null) { + result = new DataContext(); + DATA_CONTEXT_ENTRY_DEF.setContextValue(this, result); + } + return result; + } + + public final ValidationContext getValidationContext() { + ValidationContext result = + VALIDATION_CONTEXT_ENTRY_DEF.getContextValue(this); + if (result == null) { + result = new ValidationContext(); + ObserveValidator.setValidationContext(result); + result.setDataContext(getDataContext()); + VALIDATION_CONTEXT_ENTRY_DEF.setContextValue(this, result); + } + return result; + } + + /** + * close the application's context. + * + * @throws Exception if any pb while closing + */ + public void close() throws Exception { + if (log.isDebugEnabled()) { + log.debug("closing context " + this); + } + + // fermeture du context de données + if (getDataSource() != null) { + setDataSource(null); + } + + getValidationContext().closeDataSource(); + + // fermeture des services de persistances ouverts + //FIXME +// DataSourceFactory.dispose(); + + // fermeture du context principal + clear(); + + //FIXME +// ObserveServiceHelper.close(); + } + + + //------------------------------------------- + // UI instances + //------------------------------------------- + /** * Récupération du contexte applicatif. * * @return l'instance partagé du contexte. * @throws IllegalStateException si le contexte n'a pas été initialisé */ - public static ObserveContext get() throws IllegalStateException { - //FIXME -// return (ObserveContext) ObserveServiceHelper.get(); - return null; + public static ObserveSwingApplicationContext get() throws IllegalStateException { + return ObserveServiceHelper.get(); } public static boolean isClosed() { - //FIXME -// return ObserveServiceHelper.isClosed(); - return false; - } - - public ObserveConfig getConfig() { - return (ObserveConfig) super.getConfig(); + return ObserveServiceHelper.isClosed(); } public ObserveMainUI getObserveMainUI() { @@ -207,7 +503,7 @@ public class ObserveContext extends ObserveApplicationContext { /** Un objet pour bloquer le context */ protected final Object lock = new Object(); - public ObserveContext() { + public ObserveSwingApplicationContext() { } @SuppressWarnings({"UnconditionalWait", "WaitOrAwaitWithoutTimeout", "WaitNotInLoop"}) @@ -231,7 +527,7 @@ public class ObserveContext extends ObserveApplicationContext { ObserveRunner.getRunner().setReload(true); } - public void initStorage(ObserveConfig config, + public void initStorage(ObserveSwingApplicationConfig config, ObserveMainUI mainUI, boolean askToCreate) { try { @@ -264,7 +560,7 @@ public class ObserveContext extends ObserveApplicationContext { } } - protected void createStorage(ObserveConfig config, + protected void createStorage(ObserveSwingApplicationConfig config, ObserveMainUIHandler uiHandler) { int reponse = UIHelper.askUser( @@ -471,7 +767,7 @@ public class ObserveContext extends ObserveApplicationContext { // // // toutes les données sont chargées, on peut declarer le service // // comme ouvert dans la configuration -// ObserveConfig config = getConfig(); +// ObserveSwingApplicationConfig config = getConfig(); // config.setMainStorageOpened(true); // config.setMainStorageOpenedLocal(source instanceof H2DataSource); // diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/IObserveConfig.java b/observe-application-swing/src/main/java/fr/ird/observe/business/IObserveConfig.java index 282c604..3d0322a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/business/IObserveConfig.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/IObserveConfig.java @@ -21,8 +21,8 @@ */ package fr.ird.observe.business; -import fr.ird.observe.business.db.constants.CreationMode; -import fr.ird.observe.business.db.constants.DbMode; +import fr.ird.observe.db.constantes.CreationMode; +import fr.ird.observe.db.constantes.DbMode; import org.nuiton.util.version.Version; import java.beans.PropertyChangeListener; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/ObserveApplicationContext.java b/observe-application-swing/src/main/java/fr/ird/observe/business/ObserveApplicationContext.java index 7f1f2b2..eb604d8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/business/ObserveApplicationContext.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/ObserveApplicationContext.java @@ -21,6 +21,7 @@ */ package fr.ird.observe.business; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.business.db.DataContext; import fr.ird.observe.business.db.DataSource; import fr.ird.observe.business.gps.GPSService; @@ -50,8 +51,8 @@ public class ObserveApplicationContext extends DefaultApplicationContext { static private Log log = LogFactory.getLog(ObserveApplicationContext.class); /** the jaxx context entry to store the config */ - public static final JAXXContextEntryDef<IObserveConfig> CONFIG_ENTRY_DEF = - JAXXUtil.newContextEntryDef(IObserveConfig.class); + public static final JAXXContextEntryDef<ObserveSwingApplicationConfig> CONFIG_ENTRY_DEF = + JAXXUtil.newContextEntryDef(ObserveSwingApplicationConfig.class); /** the jaxx context entry to store the decorator service */ public static final JAXXContextEntryDef<DecoratorService> DECORATOR_SERVICE_ENTRY_DEF = @@ -97,7 +98,7 @@ public class ObserveApplicationContext extends DefaultApplicationContext { return value; } - public IObserveConfig getConfig() { + public ObserveSwingApplicationConfig getConfig() { return CONFIG_ENTRY_DEF.getContextValue(this); } @@ -121,7 +122,7 @@ public class ObserveApplicationContext extends DefaultApplicationContext { // initialisation du service de décoration // initialisation - IObserveConfig config = getConfig(); + ObserveSwingApplicationConfig config = getConfig(); ReferentialLocale loc = ReferentialLocale.FR; if (config != null) { Locale dbLocale = config.getDbLocale(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceConfig.java b/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceConfig.java index 7ce6315..ead8e9a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceConfig.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceConfig.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.business.db; -import fr.ird.observe.business.db.constants.CreationMode; +import fr.ird.observe.db.constantes.CreationMode; import fr.ird.observe.business.db.constants.DataPolicy; import fr.ird.observe.business.db.constants.DataSourceState; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceFactory.java b/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceFactory.java index 39838fb..6846264 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceFactory.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/db/DataSourceFactory.java @@ -85,7 +85,7 @@ public class DataSourceFactory { // }; //FIXME -// public static Version getDbVersion() { +// public static Version getModelVersion() { // if (ObserveServiceHelper.context != null) { // ApplicationConfig config; // config = ObserveServiceHelper.context.getContextValue(ApplicationConfig.class); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/CommonDataSourceConfigParam.java b/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/CommonDataSourceConfigParam.java index a41bd4d..3aa71f6 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/CommonDataSourceConfigParam.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/CommonDataSourceConfigParam.java @@ -23,6 +23,7 @@ package fr.ird.observe.business.db.constants; import fr.ird.observe.business.db.DataSourceConfig; import fr.ird.observe.business.db.DataSourceConfigParam; +import fr.ird.observe.db.constantes.CreationMode; import org.hibernate.cfg.Environment; import org.nuiton.topia.migration.TopiaMigrationEngine; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/validation/ObserveValidator.java b/observe-application-swing/src/main/java/fr/ird/observe/business/validation/ObserveValidator.java index 39d1af5..621740d 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/business/validation/ObserveValidator.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/validation/ObserveValidator.java @@ -23,8 +23,8 @@ package fr.ird.observe.business.validation; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.util.ValueStack; -import fr.ird.observe.business.ObserveApplicationContext; -import fr.ird.observe.business.ObserveServiceHelper; +import fr.ird.observe.ObserveServiceHelper; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.DataSourceFactory; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.logging.Log; @@ -111,7 +111,7 @@ public class ObserveValidator<B> extends SwingValidator<B> { if (log.isDebugEnabled()) { log.debug("No validation context registred, try in application context..."); } - ObserveApplicationContext rootContext; + ObserveSwingApplicationContext rootContext; rootContext = ObserveServiceHelper.get(); if (rootContext == null) { throw new IllegalStateException( diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/validation/ValidationMessageDetector.java b/observe-application-swing/src/main/java/fr/ird/observe/business/validation/ValidationMessageDetector.java index 6d0b462..0898862 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/business/validation/ValidationMessageDetector.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/business/validation/ValidationMessageDetector.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.business.validation; -import fr.ird.observe.business.ObserveServiceHelper; +import fr.ird.observe.ObserveServiceHelper; import fr.ird.observe.business.db.DataContext; import fr.ird.observe.services.dto.IdDto; import org.apache.commons.logging.Log; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveApplicationConfigProvider.java b/observe-application-swing/src/main/java/fr/ird/observe/configuration/ObserveApplicationConfigProvider.java similarity index 90% rename from observe-application-swing/src/main/java/fr/ird/observe/ObserveApplicationConfigProvider.java rename to observe-application-swing/src/main/java/fr/ird/observe/configuration/ObserveApplicationConfigProvider.java index 95171d1..3408e52 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveApplicationConfigProvider.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/configuration/ObserveApplicationConfigProvider.java @@ -19,8 +19,9 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe; +package fr.ird.observe.configuration; +import fr.ird.observe.ObserveCLAction; import org.nuiton.config.ApplicationConfigProvider; import org.nuiton.config.ConfigActionDef; import org.nuiton.config.ConfigOptionDef; @@ -39,7 +40,7 @@ public class ObserveApplicationConfigProvider implements ApplicationConfigProvid @Override public String getName() { - return "observe"; + return "observeSwing"; } @Override @@ -49,7 +50,7 @@ public class ObserveApplicationConfigProvider implements ApplicationConfigProvid @Override public ConfigOptionDef[] getOptions() { - return ObserveConfigOption.values(); + return ObserveSwingApplicationConfigOption.values(); } @Override diff --git a/observe-application-swing/src/main/java/fr/ird/observe/configuration/ObserveSwingApplicationConfig.java b/observe-application-swing/src/main/java/fr/ird/observe/configuration/ObserveSwingApplicationConfig.java new file mode 100644 index 0000000..499bfe8 --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/configuration/ObserveSwingApplicationConfig.java @@ -0,0 +1,1152 @@ +/* + * #%L + * ObServe :: Swing + * %% + * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit + * %% + * 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% + */ +package fr.ird.observe.configuration; + +import com.google.common.base.Charsets; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; +import fr.ird.observe.ObserveCLAction; +import fr.ird.observe.ObserveResourceManager; +import fr.ird.observe.ObserveSwingApplicationContext; +import fr.ird.observe.db.constantes.CreationMode; +import fr.ird.observe.db.constantes.DbMode; +import fr.ird.observe.services.ObserveDataSourceConfigurationMainFactory; +import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationRest; +import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationTopiaH2; +import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationTopiaPG; +import fr.ird.observe.ui.UIHelper; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.config.ApplicationConfig; +import org.nuiton.config.ApplicationConfigHelper; +import org.nuiton.config.ApplicationConfigProvider; +import org.nuiton.util.version.Version; +import org.nuiton.util.version.Versions; + +import javax.swing.JOptionPane; +import java.awt.Color; +import java.beans.PropertyChangeListener; +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.Locale; +import java.util.Properties; +import java.util.Set; + +import static fr.ird.observe.ObserveResourceManager.Resource; +import static org.nuiton.i18n.I18n.t; + +/** + * La configuration de l'application. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 1.0 + */ +public class ObserveSwingApplicationConfig extends ApplicationConfig { + + + /** + * le fichier de configuration de l'application avec les informations sur le + * projet (version, license,...) et la configuration des ui (icons, ...) + */ + public static final String APPLICATION_PROPERTIES = "/observe.properties"; + + /** le lastName du repertoire ou sont les donnees de l'application */ + public static final String USER_DIRECTORY_FILENAME = ".observe"; + + /** le pattern du fichier de sauvegarde d'une base locale */ + public static final String BACKUP_DB_PATTERN = "obstuna-local-%1$tF--%1$tk-%1$tM-%1$tS.sql.gz"; + + /** le pattern du fichier de sauvegarde d'une base access importée */ + public static final String ACCESS_DB_PATTERN = "import-access-%1$tF--%1$tk-%1$tM-%1$tS.sql.gz"; + + /** le pattern du fichier de rapport après validation */ + public static final String REPORT_PATTERN = "report-%1$tF--%1$tk-%1$tM-%1$tS.sql.gz"; + + public static final String DB_NAME = "obstuna"; + + /** + * La version de l'application. + */ + public static final String APPLICATION_VERSION = "application.version"; + + public static final String VERSION = "version"; + + public static final String PROPERTY_DEFAULT_DB_MODE = "defaultDbMode"; + + public static final String PROPERTY_DEFAULT_CREATION_MODE = "defaultCreationMode"; + + public static final String PROPERTY_SPECIES_LIST_SEINE_TARGET_CATCH_ID = "speciesListSeineTargetCatchId"; + + public static final String PROPERTY_SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID = "speciesListSeineSchoolEstimateId"; + + public static final String PROPERTY_SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID = "speciesListSeineObjectSchoolEstimateId"; + + public static final String PROPERTY_SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID = "speciesListSeineNonTargetCatchId"; + + public static final String PROPERTY_SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID = "speciesListSeineObjectObservedSpeciesId"; + + public static final String PROPERTY_SPECIES_LIST_LONGLINE_CATCH_ID = "speciesListLonglineCatchId"; + + public static final String PROPERTY_SPECIES_LIST_LONGLINE_ENCOUNTER_ID = "speciesListLonglineEncounterId"; + + public static final String PROPERTY_SPECIES_LIST_LONGLINE_DEPREDATOR_ID = "speciesListLonglineDepredatorId"; + + public static final String PROPERTY_VERSION = "version"; + + public static final String PROPERTY_DB_VERSION = "dbVersion"; + + public static final String PROPERTY_AUTO_POPUP_NUMBER_EDITOR = "autoPopupNumberEditor"; + + public static final String PROPERTY_SHOW_NUMBER_EDITOR_BUTTON = "showNumberEditorButton"; + + public static final String PROPERTY_SHOW_DATE_TIME_EDITOR_SLIDER= "showTimeEditorSlider"; + + public static final String PROPERTY_LOCAL_STORAGE_EXIST = "localStorageExist"; + + public static final String PROPERTY_INITIAL_DUMP_EXIST = "initialDumpExist"; + + public static final String PROPERTY_MAIN_STORAGE_OPENED = "mainStorageOpened"; + + public static final String PROPERTY_STORE_REMOTE_STORAGE = "storeRemoteStorage"; + + public static final String PROPERTY_DEFAULT_GPS_MAX_DELAY = "defaultGpsMaxDelay"; + + public static final String PROPERTY_DEFAULT_GPS_MAX_SPEED = "defaultGpsMaxSpeed"; + + public static final String PROPERTY_CHANGE_SYNCHRO_SRC = "changeSynchroSrc"; + + public static final String PROPERTY_NON_TARGET_OBSERVATION = "nonTargetObservation"; + + public static final String PROPERTY_TARGET_DISCARDS_OBSERVATION = "targetDiscardsObservation"; + + public static final String PROPERTY_SAMPLES_OBSERVATION = "samplesObservation"; + + public static final String PROPERTY_OBJECTS_OBSERVATION = "objectsObservation"; + + public static final String PROPERTY_DETAILLED_ACTIVITIES_OBSERVATION = "detailledActivitiesObservation"; + + public static final String PROPERTY_MAMMALS_OBSERVATION = "mammalsObservation"; + + public static final String PROPERTY_BIRDS_OBSERVATION = "birdsObservation"; + + public static final String PROPERTY_BAIT_OBSERVATION = "baitObservation"; + + public static final String PROPERTY_RESOURCES_DIRECTORY = "resourcesDirectory"; + + public static final String PROPERTY_LOCALE = "locale"; + + public static final String PROPERTY_DB_LOCALE = "dbLocale"; + + public static final String PROPERTY_CAN_MIGRATE_OBSTUNA = "canMigrateObstuna"; + + public static final String PROPERTY_CAN_MIGRATE_H2 = "canMigrateH2"; + + public static final String PROPERTY_MAIN_STORAGE_OPENED_LOCAL = "mainStorageOpenedLocal"; + + public static final String PROPERTY_COPYRIGHT_TEXT = "copyrightText"; + + public static final String PROPERTY_FULL_SCREEN = "fullScreen"; + + public static final String PROPERTY_LOCAL_DBDIRECTORY = "localDBDirectory"; + + public static final String PROPERTY_I18N_DIRECTORY = "i18nDirectory"; + + public static final String PROPERTY_INITIAL_DB_DUMP = "initialDbDump"; + + public static final String PROPERTY_BACKUP_DIRECTORY = "backupDirectory"; + + public static final String PROPERTY_REPORT_DIRECTORY = "reportDirectory"; + + public static final String PROPERTY_MAP_DIRECTORY = "mapDirectory"; + + public static final String PROPERTY_TMP_DIRECTORY = "tmpDirectory"; + + public static final String PROPERTY_DISPLAY_MAIN_UI = "displayMainUI"; + + public static final String PROPERTY_CAN_USE_UI = "canUseUI"; + + public static final String PROPERTY_ADJUSTING = "adjusting"; + + public static final String PROPERTY_H2_LOGIN = "h2Login"; + + public static final String PROPERTY_H2_PASSWORD = "h2Password"; + + public static final String PROPERTY_OBSTUNA_URL = "obstunaUrl"; + + public static final String PROPERTY_OBSTUNA_LOGIN = "obstunaLogin"; + + public static final String PROPERTY_OBSTUNA_PASSWORD = "obstunaPassword"; + + public static final String PROPERTY_OBSTUNA_USE_SSL = "obstunaUseSsl"; + + public static final String PROPERTY_LOAD_LOCAL_STORAGE = "loadLocalStorage"; + + public static final String PROPERTY_SHOW_MIGRATION_PROGRESSION = "showMigrationProgression"; + + public static final String PROPERTY_SHOW_MIGRATION_SQL = "showMigrationSql"; + + public static final String PROPERTY_VALIDATION_REPORT_DIRECTORY = "validationReportDirectory"; + + public static final String PROPERTY_SHOW_SQL = "showSql"; + + public static final String PROPERTY_H2_SERVER_PORT = "h2ServerPort"; + + public static final String PROPERTY_DEV_MODE = "devMode"; + + /** Logger */ + static private Log log = LogFactory.getLog(ObserveSwingApplicationConfig.class); + + protected static final String DEFAULT_OBSERVE_SWING_CONFIGURATION_FILENAME = "observeSwing.conf"; + + /** + * un drepeau pour savoir s'il faut lancer l'interface graphique. Cette + * valeur peut être programmées lors des actions. + */ + protected boolean displayMainUI = true; + + /** drapeau pour savoir si une base locale existe */ + protected boolean localStorageExist; + + /** + * drapeau pour savoir si le dump initial a ete chargee depuis la base + * centrale + */ + protected boolean initialDumpExist; + + /** drapeau pour savoir si une source de données est ouverte */ + protected boolean mainStorageOpened; + + /** + * drapeau pour savoir si la source ouverte est locale (attention, lorsqu'il + * n'y a pas de storage d'ouvert, la valeur est null). + */ + protected Boolean mainStorageOpenedLocal; + + /** + * drapeau pour savoir si on peut utiliser des ui dans l'environnement. + * <p/> + * Par defaut, on suppose qu'on peut utiliser l'environnement graphique et + * si on désactive explicitement ou si pas d'environnement graphique + * trouvé. + */ + protected boolean canUseUI = true; + + /** La version de l'application */ + private Version version; + + /** Texte du copyright (calculé dynamiquement). */ + protected String copyrightText; + + /** + * Liste des options qu'on ne peut pas sauvegarder (les mots de passes, + * les options d'admin pour les simples utilisateurs,...). + * + * @since 1.5 + */ + protected String[] unsavables; + + //FIXME + private final ImmutableSet<String> longlinVesselTypeIds = ImmutableSet.copyOf( + Sets.newHashSet("fr.ird.observe.entities.referentiel.VesselType#1239832675735#0.044156847891821505", + "fr.ird.observe.entities.referentiel.VesselType#1239832675736#0.8708229847859869", + "fr.ird.observe.entities.referentiel.VesselType#1239832686137#0.1")); + + private final ImmutableSet<String> seineVesselTypeIds = ImmutableSet.copyOf( + Sets.newHashSet("fr.ird.observe.entities.referentiel.VesselType#1239832675735#0.044156847891821505", + "fr.ird.observe.entities.referentiel.VesselType#1239832675735#0.307197212385357", + "fr.ird.observe.entities.referentiel.VesselType#1239832675735#0.7380146830307519", + "fr.ird.observe.entities.referentiel.VesselType#1239832675735#0.9086075071905084", + "fr.ird.observe.entities.referentiel.VesselType#1239832675737#0.43324169605639407")); + + public ObserveSwingApplicationConfig() { + this(DEFAULT_OBSERVE_SWING_CONFIGURATION_FILENAME); + } + + public ObserveSwingApplicationConfig(String confFileName) { + setEncoding(Charsets.UTF_8.name()); + setConfigFileName(confFileName); + ApplicationConfigProvider applicationConfigProvider = ApplicationConfigHelper.getProvider(getClass().getClassLoader(), ObserveSwingApplicationConfigProvider.OBSERVE_SWING_CONFIGURATION_PROVIDER_NAME); + loadDefaultOptions(applicationConfigProvider.getOptions()); + } + + public boolean containActions(Step action) { + List<Action> list = actions.get(action.ordinal()); + return !(list == null || list.isEmpty()); + } + + public void initConfig(ObserveResourceManager manager) throws IOException { + + Version version = null; + + Properties p = manager.getResource(Resource.application); + + for (Object k : p.keySet()) { + String key = String.valueOf(k); + Object value = p.get(k); + if (log.isDebugEnabled()) { + log.debug("install property [" + k + "] : " + value); + } + String strValue = String.valueOf(value); + if (APPLICATION_VERSION.equals(key)) { + version = Versions.valueOf(strValue); + if (version.isSnapshot()) { + version = Versions.removeSnapshot(version); + } + + } else { + setDefaultOption(key, strValue); + } + } + + if (version == null) { + throw new IllegalStateException("No application.version found in application configuration."); + } + + setVersion(version); + setDefaultOption(VERSION, version.getVersion()); + setDefaultOption(APPLICATION_VERSION, version.getVersion()); + + // creation des actions disponibles + for (ObserveCLAction.ActionDefinition a : ObserveCLAction.ActionDefinition.values()) { + + for (String alias : a.aliases) { + addActionAlias(alias, a.action); + } + } + + if (log.isInfoEnabled()) { + String message = getConfigurationDescription(); + log.info(message); + } + } + + @Override + protected void migrateUserConfigurationFile(File oldHomeConfig, + File homeConfig) throws IOException { + super.migrateUserConfigurationFile(oldHomeConfig, homeConfig); + // on previent l'utilisateur que son fichier de configuration a été + // deplacé + JOptionPane.showInternalMessageDialog(null, + t("observe.title.config.migrate"), + t("observe.runner.config.migrate.file", + oldHomeConfig.getName(), + oldHomeConfig, + homeConfig + ), + JOptionPane.WARNING_MESSAGE); + } + + public void installSaveAction() { + // ajout de l'action de sauvegarde automatique sur certaines propriétés + + List<String> result = new ArrayList<String>(); + + for (ObserveSwingApplicationConfigOption option : ObserveSwingApplicationConfigOption.values()) { + String key = option.getPropertyKey(); + if (key != null) { + // add a listener + if (log.isDebugEnabled()) { + log.debug("register action listener for property " + key); + } + result.add(key); + } + } + + installSaveUserAction(result.toArray(new String[result.size()])); + } + + public String getCopyrightText() { + if (copyrightText == null) { + Date date = new Date(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + int year = calendar.get(Calendar.YEAR); + copyrightText = "Version " + getVersion() + " IRD @ 2008-" + year; + } + return copyrightText; + } + + public boolean isDevMode() { + boolean result = getOptionAsBoolean(ObserveSwingApplicationConfigOption.DEV_MODE.key); + return result; + } + + public Version getVersion() { + return version; + } + + public Version getModelVersion() { + Version result = getOption(Version.class, ObserveSwingApplicationConfigOption.MODEL_VERSION.key); + return result; + } + + public boolean isAutoPopupNumberEditor() { + boolean result = getOptionAsBoolean(ObserveSwingApplicationConfigOption.AUTO_POPUP_NUMBER_EDITOR.key); + return result; + } + + public boolean isShowNumberEditorButton() { + boolean result = getOptionAsBoolean(ObserveSwingApplicationConfigOption.SHOW_NUMBER_EDITOR_BUTTON.key); + return result; + } + + public boolean isShowTimeEditorSlider() { + boolean result = getOptionAsBoolean(ObserveSwingApplicationConfigOption.SHOW_DATE_TIME_EDITOR_SLIDER.key); + return result; + } + + public boolean isFullScreen() { + boolean result = getOptionAsBoolean(ObserveSwingApplicationConfigOption.FULL_SCREEN.key); + return result; + } + + public File getDataDirectory() { + File file = getOptionAsFile(ObserveSwingApplicationConfigOption.DATA_DIRECTORY.key); + return file; + } + + public File getValidationReportDirectory() { + File file = getOptionAsFile(ObserveSwingApplicationConfigOption.VALIDATION_REPORT_DIRECTORY.key); + return file; + } + + public File getLocalDBDirectory() { + File result = getOptionAsFile(ObserveSwingApplicationConfigOption.DB_DIRECTORY.key); + return result; + } + + public File getResourcesDirectory() { + File result = getOptionAsFile(ObserveSwingApplicationConfigOption.RESOURCES_DIRECTORY.key); + return result; + } + + public File getI18nDirectory() { + File result = getOptionAsFile(ObserveSwingApplicationConfigOption.I18N_DIRECTORY.key); + return result; + } + + public void setResourcesDirectory(File newValue) { + setOption(ObserveSwingApplicationConfigOption.RESOURCES_DIRECTORY, newValue); + } + + public File getInitialDbDump() { + File result = getOptionAsFile(ObserveSwingApplicationConfigOption.INITIAL_DB_DUMP.key); + return result; + } + + public File getBackupDirectory() { + File result = getOptionAsFile(ObserveSwingApplicationConfigOption.BACKUP_DIRECTORY.key); + return result; + } + + public File getReportDirectory() { + File result = getOptionAsFile(ObserveSwingApplicationConfigOption.REPORT_DIRECTORY.key); + return result; + } + + public File getTmpDirectory() { + File result = getOptionAsFile(ObserveSwingApplicationConfigOption.TMP_DIRECTORY.key); + return result; + } + + public File getLogConfigurationFile() { + File result = getOptionAsFile(ObserveSwingApplicationConfigOption.LOG_CONFIGURATION_FILE.key); + return result; + } + + public String getH2Login() { + String result = getOption(ObserveSwingApplicationConfigOption.H2_LOGIN.key); + return result; + } + + public char[] getH2Password() { + String result = getOption(ObserveSwingApplicationConfigOption.H2_PASSWORD.key); + char[] r = result.toCharArray(); + return r; + } + + public int getH2ServerPort() { + Integer port = getOptionAsInt(ObserveSwingApplicationConfigOption.H2_SERVER_PORT.key); + return port; + } + + public String getObstunaUrl() { + String result = getOption(ObserveSwingApplicationConfigOption.OBSTUNA_URL.key); + return result; + } + + public void setObstunaUrl(String jdbcUrl) { + setOption(ObserveSwingApplicationConfigOption.OBSTUNA_URL.key, jdbcUrl); + } + + public String getObstunaLogin() { + String result = getOption(ObserveSwingApplicationConfigOption.OBSTUNA_LOGIN.key); + return result; + } + + public void setObstunaLogin(String login) { + setOption(ObserveSwingApplicationConfigOption.OBSTUNA_LOGIN.key, login); + } + + public char[] getObstunaPassword() { + String result = getOption(ObserveSwingApplicationConfigOption.OBSTUNA_PASSWORD.key); + char[] r = result.toCharArray(); + return r; + } + + public void setObstunaPassword(char[] password) { + setOption(ObserveSwingApplicationConfigOption.OBSTUNA_PASSWORD.key, new String(password)); + } + + public boolean isObstunaUseSsl() { + boolean result = getOptionAsBoolean(ObserveSwingApplicationConfigOption.OBSTUNA_USE_SSL_CERT.key); + return result; + } + + public void setObstunaUseSsl(boolean useSsl) { + setOption(ObserveSwingApplicationConfigOption.OBSTUNA_USE_SSL_CERT, useSsl); + } + + public URL getServerUrl() { + URL result = (URL) getOption(ObserveSwingApplicationConfigOption.SERVER_URL); + return result; + } + + public void setServerUrl(URL serverUrl) { + setOption(ObserveSwingApplicationConfigOption.SERVER_URL, serverUrl); + } + + public String getServerLogin() { + String result = getOption(ObserveSwingApplicationConfigOption.SERVER_LOGIN.key); + return result; + } + + public void setServerLogin(String serverLoginl) { + setOption(ObserveSwingApplicationConfigOption.SERVER_LOGIN.key, serverLoginl); + } + + public char[] getServerPassword() { + String result = getOption(ObserveSwingApplicationConfigOption.SERVER_PASSWORD.key); + char[] r = result.toCharArray(); + return r; + } + + public void setServerPassword(char[] password) { + setOption(ObserveSwingApplicationConfigOption.SERVER_PASSWORD.key, new String(password)); + } + + public String getServerDataBaseName() { + String result = getOption(ObserveSwingApplicationConfigOption.SERVER_DATABASE_NAME.key); + return result; + } + + public void setServerDataBaseName(String dataBaseName) { + setOption(ObserveSwingApplicationConfigOption.SERVER_DATABASE_NAME.key, dataBaseName); + } + + public DbMode getDefaultDbMode() { + DbMode result = getOption(DbMode.class, ObserveSwingApplicationConfigOption.DEFAULT_DB_MODE.key); + return result; + } + + public CreationMode getDefaultCreationMode() { + CreationMode result = + getOption(CreationMode.class, ObserveSwingApplicationConfigOption.DEFAULT_CREATION_MODE.key); + return result; + } + + public boolean isShowMigrationSql() { + boolean result = getOptionAsBoolean(ObserveSwingApplicationConfigOption.SHOW_MIGRATION_SQL.key); + return result; + } + + public boolean isShowMigrationProgression() { + boolean result = getOptionAsBoolean(ObserveSwingApplicationConfigOption.SHOW_MIGRATION_PROGRESSION.key); + return result; + } + + public boolean isShowSql() { + boolean result = getOptionAsBoolean(ObserveSwingApplicationConfigOption.SHOW_SQL.key); + return result; + } + + public int getDefaultGpsMaxDelay() { + Integer i = getOptionAsInt(ObserveSwingApplicationConfigOption.DEFAULT_GPS_MAX_DELAY.key); + return i; + } + + public float getDefaultGpsMaxSpeed() { + double i = getOptionAsDouble(ObserveSwingApplicationConfigOption.DEFAULT_GPS_MAX_SPEED.key); + return (float) i; + } + + public boolean isChangeSynchroSrc() { + boolean result = getOptionAsBoolean(ObserveSwingApplicationConfigOption.CHANGE_SYNCHRO_SRC.key); + return result; + } + + public boolean isStoreRemoteStorage() { + boolean result = getOptionAsBoolean(ObserveSwingApplicationConfigOption.STORE_REMOTE_STORAGE.key); + return result; + } + + public boolean isCanMigrateObstuna() { + boolean result = getOptionAsBoolean(ObserveSwingApplicationConfigOption.OBSTUNA_CAN_MIGRATE.key); + return result; + } + + public boolean isCanMigrateH2() { + boolean result = getOptionAsBoolean(ObserveSwingApplicationConfigOption.H2_CAN_MIGRATE.key); + return result; + } + + public boolean isLoadLocalStorage() { + boolean result = getOptionAsBoolean(ObserveSwingApplicationConfigOption.LOAD_LOCAL_STORAGE.key); + return result; + } + + public Locale getLocale() { + Locale result = getOption(Locale.class, ObserveSwingApplicationConfigOption.LOCALE.key); + return result; + } + + public Locale getDbLocale() { + Locale result = getOption(Locale.class, ObserveSwingApplicationConfigOption.DB_LOCALE.key); + return result; + } + + public int getNonTargetObservation() { + int value = getOptionAsInt(ObserveSwingApplicationConfigOption.NON_TARGET_OBSERVATION.key); + return value; + } + + public int getTargetDiscardsObservation() { + int value = getOptionAsInt(ObserveSwingApplicationConfigOption.TARGET_DISCARDS_OBSERVATION.key); + return value; + } + + public int getSamplesObservation() { + int value = getOptionAsInt(ObserveSwingApplicationConfigOption.SAMPLES_OBSERVATION.key); + return value; + } + + public int getObjectsObservation() { + int value = getOptionAsInt(ObserveSwingApplicationConfigOption.OBJECTS_OBSERVATION.key); + return value; + } + + public int getDetailledActivitiesObservation() { + int value = getOptionAsInt(ObserveSwingApplicationConfigOption.DETAILLED_ACTIVITIES_OBSERVATION.key); + return value; + } + + public int getMammalsObservation() { + int value = getOptionAsInt(ObserveSwingApplicationConfigOption.MAMMALS_OBSERVATION.key); + return value; + } + + public int getBirdsObservation() { + int value = getOptionAsInt(ObserveSwingApplicationConfigOption.BIRDS_OBSERVATION.key); + return value; + } + + public int getBaitObservation() { + int value = getOptionAsInt(ObserveSwingApplicationConfigOption.BAIT_OBSERVATION.key); + return value; + } + + public boolean isDisplayMainUI() { + return displayMainUI; + } + + public boolean isCanUseUI() { + return canUseUI; + } + + public boolean isLocalStorageExist() { + return localStorageExist; + } + + public boolean isInitialDumpExist() { + return initialDumpExist; + } + + public boolean isMainStorageOpened() { + return mainStorageOpened; + } + + public Boolean getMainStorageOpenedLocal() { + return mainStorageOpenedLocal; + } + + public void setLocalStorageExist(boolean newValue) { + localStorageExist = newValue; + // always force propagation + firePropertyChange(PROPERTY_LOCAL_STORAGE_EXIST, newValue); + } + + public void setInitialDumpExist(boolean newValue) { + initialDumpExist = newValue; + // always force propagation + firePropertyChange(PROPERTY_INITIAL_DUMP_EXIST, newValue); + } + + public void setMainStorageOpened(boolean newValue) { + mainStorageOpened = newValue; + if (!newValue) { + // on force la reinitialisation + setMainStorageOpenedLocal(null); + } + // always force propagation + firePropertyChange(PROPERTY_MAIN_STORAGE_OPENED, newValue); + } + + public void setMainStorageOpenedLocal(Boolean newValue) { + mainStorageOpenedLocal = newValue; + // always force propagation + firePropertyChange(PROPERTY_MAIN_STORAGE_OPENED + "Local", newValue); + } + + public void setDisplayMainUI(boolean b) { + displayMainUI = b; + } + + public void setCanUseUI(boolean canUseUI) { + this.canUseUI = canUseUI; + if (!canUseUI) { + // on ne pourra pas lancer l'ui principale + setDisplayMainUI(false); + } + } + + public void setAutoPopupNumberEditor(boolean newValue) { + setOption(ObserveSwingApplicationConfigOption.AUTO_POPUP_NUMBER_EDITOR, newValue); + } + + public void setShowNumberEditorButton(boolean newValue) { + setOption(ObserveSwingApplicationConfigOption.SHOW_NUMBER_EDITOR_BUTTON, newValue); + } + + public void setShowTimeEditorSlider(boolean newValue) { + setOption(ObserveSwingApplicationConfigOption.SHOW_DATE_TIME_EDITOR_SLIDER, newValue); + } + + public void setFullScreen(boolean newValue) { + setOption(ObserveSwingApplicationConfigOption.FULL_SCREEN, newValue); + } + + public void setChangeSynchroSrc(boolean newValue) { + setOption(ObserveSwingApplicationConfigOption.CHANGE_SYNCHRO_SRC, newValue); + } + + public void setStoreRemoteStorage(boolean newValue) { + setOption(ObserveSwingApplicationConfigOption.STORE_REMOTE_STORAGE, newValue); + } + + public void setLoadLocalStorage(boolean newValue) { + setOption(ObserveSwingApplicationConfigOption.LOAD_LOCAL_STORAGE, newValue); + } + + public void setDefaultDbMode(DbMode newValue) { + setOption(ObserveSwingApplicationConfigOption.DEFAULT_DB_MODE, newValue); + } + + public void setDefaultCreationMode(CreationMode newValue) { + setOption(ObserveSwingApplicationConfigOption.DEFAULT_CREATION_MODE, newValue); + } + + public void setDefaultGpsMaxDelay(int newValue) { + setOption(ObserveSwingApplicationConfigOption.DEFAULT_GPS_MAX_DELAY, newValue); + } + + public void setDefaultGpsMaxSpeed(float newValue) { + setOption(ObserveSwingApplicationConfigOption.DEFAULT_GPS_MAX_SPEED, newValue); + } + + public void setLocale(Locale newValue) { + setOption(ObserveSwingApplicationConfigOption.LOCALE, newValue); + } + + public void setDbLocale(Locale newValue) { + setOption(ObserveSwingApplicationConfigOption.DB_LOCALE, newValue); + } + + public void setCanMigrateObstuna(Boolean newValue) { + setOption(ObserveSwingApplicationConfigOption.OBSTUNA_CAN_MIGRATE, newValue); + } + + public void setCanMigrateH2(Boolean newValue) { + setOption(ObserveSwingApplicationConfigOption.H2_CAN_MIGRATE, newValue); + } + + public void setNonTargetObservation(int newValue) { + setOption(ObserveSwingApplicationConfigOption.NON_TARGET_OBSERVATION, newValue); + } + + public void setTargetDiscardsObservation(int newValue) { + setOption(ObserveSwingApplicationConfigOption.TARGET_DISCARDS_OBSERVATION, newValue); + } + + public void setSamplesObservation(int newValue) { + setOption(ObserveSwingApplicationConfigOption.SAMPLES_OBSERVATION, newValue); + } + + public void setObjectsObservation(int newValue) { + setOption(ObserveSwingApplicationConfigOption.OBJECTS_OBSERVATION, newValue); + } + + public void setDetailledActivitiesObservation(int newValue) { + setOption(ObserveSwingApplicationConfigOption.DETAILLED_ACTIVITIES_OBSERVATION, newValue); + } + + public void setMammalsObservation(int newValue) { + setOption(ObserveSwingApplicationConfigOption.MAMMALS_OBSERVATION, newValue); + } + + public void setBirdsObservation(int newValue) { + setOption(ObserveSwingApplicationConfigOption.BIRDS_OBSERVATION, newValue); + } + + public void setBaitObservation(int newValue) { + setOption(ObserveSwingApplicationConfigOption.BAIT_OBSERVATION, newValue); + } + + public void setShowMigrationSql(boolean showMigrationSql) { + setOption(ObserveSwingApplicationConfigOption.SHOW_MIGRATION_SQL, showMigrationSql); + } + + public void setShowMigrationProgression(boolean showMigrationProgression) { + setOption(ObserveSwingApplicationConfigOption.SHOW_MIGRATION_PROGRESSION, showMigrationProgression); + } + + public void setShowSql(boolean showSql) { + setOption(ObserveSwingApplicationConfigOption.SHOW_SQL, showSql); + } + + public String getSpeciesListSeineNonTargetCatchId() { + String value = getOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID.key); + return value; + } + + public String getSpeciesListSeineTargetCatchId() { + String value = getOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_TARGET_CATCH_ID.key); + return value; + } + + public String getSpeciesListSeineSchoolEstimateId() { + String value = getOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID.key); + return value; + } + + public String getSpeciesListSeineObjectObservedSpeciesId() { + String value = getOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID.key); + return value; + } + + public String getSpeciesListSeineObjectSchoolEstimateId() { + String value = getOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID.key); + return value; + } + + public String getSpeciesListLonglineCatchId() { + String value = getOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_LONGLINE_CATCH_ID.key); + return value; + } + + public String getSpeciesListLonglineEncounterId() { + String value = getOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_LONGLINE_ENCOUNTER_ID.key); + return value; + } + + public String getSpeciesListLonglineDepredatorId() { + String value = getOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_LONGLINE_DEPREDATOR_ID.key); + return value; + } + + public void setSpeciesListSeineNonTargetCatchId(String speciesListSeineNonTargetCatchId) { + setOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID, speciesListSeineNonTargetCatchId); + } + + public void setSpeciesListSeineTargetCatchId(String speciesListSeineTargetCatchId) { + setOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_TARGET_CATCH_ID, speciesListSeineTargetCatchId); + } + + public void setSpeciesListSeineSchoolEstimateId(String speciesListSeineSchoolEstimateId) { + setOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID, speciesListSeineSchoolEstimateId); + } + + public void setSpeciesListSeineObjectObservedSpeciesId(String speciesListSeineObjectObservedSpeciesId) { + setOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID, speciesListSeineObjectObservedSpeciesId); + } + + public void setSpeciesListSeineObjectSchoolEstimateId(String speciesListseineObjectSchoolEstimateId) { + setOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID, speciesListseineObjectSchoolEstimateId); + } + + public void setSpeciesListLonglineCatchId(String speciesListLonglineCatchId) { + setOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_LONGLINE_CATCH_ID, speciesListLonglineCatchId); + } + + public void setSpeciesListLonglineEncounterId(String speciesListLonglineEncounterId) { + setOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_LONGLINE_ENCOUNTER_ID, speciesListLonglineEncounterId); + } + + public void setSpeciesListLonglineDepredatorId(String speciesListLonglineDepredatorId) { + setOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_LONGLINE_DEPREDATOR_ID, speciesListLonglineDepredatorId); + } + + public Color getMapBackgroundColor() { + Color result = getOptionAsColor(ObserveSwingApplicationConfigOption.MAP_BACKGROUND_COLOR.key); + return result; + } + + public List<File> getMapLayerFiles() { + List<File> layers = Lists.newLinkedList(); + + for (ObserveSwingApplicationConfigOption layerOption : ObserveSwingApplicationConfigOption.MAP_LAYERS) { + File layerFile = getOptionAsFile(layerOption.key); + if (layerFile != null && layerFile.exists()) { + layers.add(layerFile); + } + } + return layers; + } + + public File getMapStyleFile() { + File result = getOptionAsFile(ObserveSwingApplicationConfigOption.MAP_STYLE_FILE.key); + return result; + } + + public String[] getUnsavables() { + if (unsavables == null) { + List<String> tmp = new ArrayList<String>(); + tmp.add(ObserveSwingApplicationConfigOption.OBSTUNA_PASSWORD.getKey()); +// tmp.add(OBSTUNA_SSL_CERTIFICAT_PASSWORD.getKey()); + tmp.add(ObserveSwingApplicationConfigOption.H2_PASSWORD.getKey()); + tmp.add(ObserveSwingApplicationConfigOption.OBSTUNA_CAN_MIGRATE.getKey()); + +// if (!ObserveRunner.isAdmin()) { +// // toutes les options dite admin ne sont pas sauvables +// +// for (ObserveSwingApplicationConfigOption option : values()) { +// if (option.isAdmin()) { +// +// // ne pas ajouter les options d'admin pour le simple utilisateur +// tmp.add(option.key); +// } +// } +// } + unsavables = tmp.toArray(new String[tmp.size()]); + } + return unsavables; + } + + public void saveForUser(String... excludeKeys) { + if (log.isInfoEnabled()) { + log.info(t("observe.message.save.configuration", getUserConfigFile())); + } + super.saveForUser(getUnsavables()); + } + + + public void fromStorageConfig(ObserveDataSourceConfigurationTopiaH2 config) { + setShowMigrationProgression(config.isShowMigrationProgression()); + setShowMigrationSql(config.isShowMigrationSql()); + saveForUser(); + } + + public void fromStorageConfig(ObserveDataSourceConfigurationTopiaPG config) { + setObstunaUrl(config.getJdbcUrl()); + setObstunaLogin(config.getUsername()); + setObstunaPassword(config.getPassword()); + setObstunaUseSsl(config.isUseSsl()); +// if (useSsl) { +// setOption(OBSTUNA_SSL_CERTIFICAT_FILE, +// config.getSslCertificatFile().getAbsolutePath()); +// setOption(OBSTUNA_SSL_CERTIFICAT_PASSWORD, +// new String(config.getSslCertificatPassword())); +// } else { +// setOption(OBSTUNA_SSL_CERTIFICAT_FILE.key, ""); +// setOption(OBSTUNA_SSL_CERTIFICAT_PASSWORD, EMPTY_CHAR_ARRAY); +// } + setShowMigrationProgression(config.isShowMigrationProgression()); + setShowMigrationSql(config.isShowMigrationSql()); + //TODO-TC20100311 : on devrait pas regarder si l'utilisateur veut sauver + //TODO-TC20100311 : la configuration ? + saveForUser(); + } + + public void fromStorageConfig(ObserveDataSourceConfigurationRest config) { + setServerUrl(config.getServerUrl()); + setServerLogin(config.getLogin()); + setServerPassword(config.getPassword()); + setServerDataBaseName(config.getOptionalDatabaseName().orNull()); + saveForUser(); + } + + + public ObserveDataSourceConfigurationTopiaH2 getDataSourceConfigurationH2(String label) { + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + ObserveDataSourceConfigurationMainFactory configurationMainFactory = applicationContext.getObserveDataSourceConfigurationMainFactory(); + + File dbDirectory = new File(getLocalDBDirectory(), DB_NAME); + + ObserveDataSourceConfigurationTopiaH2 result = configurationMainFactory.createObserveDataSourceConfigurationTopiaH2( + label, + dbDirectory, + DB_NAME, + getH2Login(), + getH2Password(), + isShowMigrationProgression(), + isShowMigrationSql() + ); + return result; + } + + public ObserveDataSourceConfigurationTopiaPG getDataSourceConfigurationPG(String label) { + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + ObserveDataSourceConfigurationMainFactory configurationMainFactory = applicationContext.getObserveDataSourceConfigurationMainFactory(); + + ObserveDataSourceConfigurationTopiaPG result = configurationMainFactory.createObserveDataSourceConfigurationTopiaPG( + label, + getObstunaUrl(), + getUsername(), + getObstunaPassword(), + isObstunaUseSsl(), + isShowMigrationProgression(), + isShowMigrationSql() + ); + return result; + } + + public ObserveDataSourceConfigurationRest getDataSourceConfigurationRest(String label) { + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + ObserveDataSourceConfigurationMainFactory configurationMainFactory = applicationContext.getObserveDataSourceConfigurationMainFactory(); + + ObserveDataSourceConfigurationRest result = configurationMainFactory.createObserveDataSourceConfigurationRest( + label, + getServerUrl(), + getServerLogin(), + getServerPassword(), + getServerDataBaseName() + ); + return result; + } + + public void removeJaxxPropertyChangeListener() { + List<String> tmp = new ArrayList<String>(); + for (ObserveSwingApplicationConfigOption option : ObserveSwingApplicationConfigOption.values()) { + String propertyName = option.getPropertyKey(); + if (propertyName != null) { + tmp.add(propertyName); + } + } + if (log.isDebugEnabled()) { + log.debug("property names to seek for options : " + tmp); + } + String[] propertyNames = tmp.toArray( + new String[tmp.size()]); + + PropertyChangeListener[] toRemove = + UIHelper.findJaxxPropertyChangeListener( + propertyNames, + getPropertyChangeListeners()); + if (toRemove == null || toRemove.length == 0) { + return; + } + if (log.isDebugEnabled()) { + log.debug("before remove : " + getPropertyChangeListeners().length); + log.debug("toRemove : " + toRemove.length); + } + for (PropertyChangeListener listener : toRemove) { + removePropertyChangeListener(listener); + } + if (log.isDebugEnabled()) { + log.debug("after remove : " + getPropertyChangeListeners().length); + } + } + + public void setOption(ObserveSwingApplicationConfigOption option, Object newValue) { + String key = option.getKey(); + Object oldValue = getOption(key); + String value = String.valueOf(newValue); + setOption(key, value); + if (log.isDebugEnabled()) { + log.debug("set option " + key + " value : " + value); + } + String propertyName = option.getPropertyKey(); + if (propertyName != null) { + // l'option est javabeans, declanchement d'un changement + if (log.isTraceEnabled()) { + log.trace("fires config change from option " + key); + } + firePropertyChange(propertyName, oldValue, newValue); + } + } + + void setVersion(Version version) { + this.version = version; + } + + public Set<String> getSeineVesselTypeIds() { + return seineVesselTypeIds; + } + + public Set<String> getLonglineVesselTypeIds() { + return longlinVesselTypeIds; + } + + public String replaceRecursiveOptions(String option) { + return super.replaceRecursiveOptions(option); + } + + public String getConfigurationDescription() { + StringBuilder builder = new StringBuilder(); + builder.append("\n====================================================================================================================="); + builder.append("\n=== Observe Swing configuration ====================================================================================="); + builder.append(String.format("\n=== %1$-40s = %2$s", "Filename", getConfigFileName())); + for (ObserveSwingApplicationConfigOption option : ObserveSwingApplicationConfigOption.orderedByNameValues()) { + builder.append(String.format("\n=== %1$-40s = %2$s", option.getKey(), getOption(option))); + } + builder.append("\n====================================================================================================================="); + return builder.toString(); + } + + ////////////////////////////////////////////////// + // Toutes les étapes d'actions + ////////////////////////////////////////////////// + + public enum Step { + + AfterInit, BeforeExit + } + + protected void firePropertyChange(String propertyName, Object newValue) { + pcs.firePropertyChange(propertyName, null, newValue); + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveConfigOption.java b/observe-application-swing/src/main/java/fr/ird/observe/configuration/ObserveSwingApplicationConfigOption.java similarity index 75% rename from observe-application-swing/src/main/java/fr/ird/observe/ObserveConfigOption.java rename to observe-application-swing/src/main/java/fr/ird/observe/configuration/ObserveSwingApplicationConfigOption.java index ab551f1..8c5a421 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveConfigOption.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/configuration/ObserveSwingApplicationConfigOption.java @@ -19,17 +19,21 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe; +package fr.ird.observe.configuration; import com.google.common.collect.ImmutableList; -import fr.ird.observe.business.IObserveConfig; -import fr.ird.observe.business.db.constants.CreationMode; -import fr.ird.observe.business.db.constants.DbMode; +import com.google.common.collect.Lists; +import fr.ird.observe.db.constantes.CreationMode; +import fr.ird.observe.db.constantes.DbMode; import org.nuiton.config.ApplicationConfig; import org.nuiton.config.ConfigOptionDef; +import org.nuiton.util.version.Version; import java.awt.Color; import java.io.File; +import java.net.URL; +import java.util.Collections; +import java.util.Comparator; import java.util.List; import java.util.Locale; @@ -43,13 +47,13 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 1.2 */ -public enum ObserveConfigOption implements ConfigOptionDef { +public enum ObserveSwingApplicationConfigOption implements ConfigOptionDef { /** le lastName du fichier de configuration (sans le prefix .) */ CONFIG_FILE( ApplicationConfig.CONFIG_FILE_NAME, n("observe.config.configFileName.description"), - "observe-admin-config", + ObserveSwingApplicationConfig.DEFAULT_OBSERVE_SWING_CONFIGURATION_FILENAME, String.class, true, true @@ -57,7 +61,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** flag pour afficher automatiquement la popup du clavier numerique */ DEV_MODE( - "observe." + IObserveConfig.PROPERTY_DEV_MODE, + "observe." + ObserveSwingApplicationConfig.PROPERTY_DEV_MODE, n("observe.config.devMode"), "true", Boolean.class, @@ -65,6 +69,16 @@ public enum ObserveConfigOption implements ConfigOptionDef { true ), + /** version du modèle de données */ + MODEL_VERSION( + "observe.model.version", + n("observe.model.version"), + null, + Version.class, + true, + true + ), + // directories /** le repertoire ou est stoquee la base locale */ @@ -113,7 +127,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** le repertoire ou sont stockees toutes les ressources de l'utilisateur */ RESOURCES_DIRECTORY( "resources.directory", - IObserveConfig.PROPERTY_RESOURCES_DIRECTORY, + ObserveSwingApplicationConfig.PROPERTY_RESOURCES_DIRECTORY, n("observe.config.defaultResourcesDirectory.description"), "${data.directory}/resources-${version}", File.class, @@ -124,7 +138,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** le repertoire ou sont stockees les traduction i18n de l'utilisateur */ I18N_DIRECTORY( "i18n.directory", - IObserveConfig.PROPERTY_I18N_DIRECTORY, + ObserveSwingApplicationConfig.PROPERTY_I18N_DIRECTORY, n("observe.config.defaultI18nDirectory.description"), "${resources.directory}/i18n", File.class, @@ -135,7 +149,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** le repertoire ou sont stockees les reports de l'utilisateur */ REPORT_DIRECTORY( "report.directory", - IObserveConfig.PROPERTY_REPORT_DIRECTORY, + ObserveSwingApplicationConfig.PROPERTY_REPORT_DIRECTORY, n("observe.config.defaultReportDirectory.description"), "${resources.directory}/report", File.class, @@ -146,7 +160,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** le repertoire ou sont stockees les cartes de l'utilisateur */ MAP_DIRECTORY( "map.directory", - IObserveConfig.PROPERTY_MAP_DIRECTORY, + ObserveSwingApplicationConfig.PROPERTY_MAP_DIRECTORY, n("observe.config.defaultMapDirectory.description"), "${resources.directory}/map", File.class, @@ -157,7 +171,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** le repertoire ou sont stockees les reports de validation de l'utilisateur */ VALIDATION_REPORT_DIRECTORY( "validation.report.directory", - IObserveConfig.PROPERTY_VALIDATION_REPORT_DIRECTORY, + ObserveSwingApplicationConfig.PROPERTY_VALIDATION_REPORT_DIRECTORY, n("observe.config.defaultValidationReportDirectory.description"), "${data.directory}/validation-report", File.class, @@ -279,12 +293,54 @@ public enum ObserveConfigOption implements ConfigOptionDef { false ), + // Rest server config + + /** url du serveur restflag pour mettre a jour obstuna */ + SERVER_URL( + "server.url", + n("observe.config.server.url.description"), + null, + URL.class, + false, + false + ), + + /** url du serveur restflag pour mettre a jour obstuna */ + SERVER_LOGIN( + "server.login", + n("observe.config.server.login.description"), + "", + String.class, + false, + false + ), + + /** url du serveur restflag pour mettre a jour obstuna */ + SERVER_PASSWORD( + "server.password", + n("observe.config.server.password.description"), + "", + String.class, + false, + false + ), + + /** url du serveur restflag pour mettre a jour obstuna */ + SERVER_DATABASE_NAME( + "server.dataBaseName", + n("observe.config.server.dataBaseName.description"), + "", + String.class, + false, + false + ), + // change storage options /** le mode de connexion par defaut */ DEFAULT_DB_MODE( - IObserveConfig.PROPERTY_DEFAULT_DB_MODE, - IObserveConfig.PROPERTY_DEFAULT_DB_MODE, + ObserveSwingApplicationConfig.PROPERTY_DEFAULT_DB_MODE, + ObserveSwingApplicationConfig.PROPERTY_DEFAULT_DB_MODE, n("observe.config.defaultDbMode"), DbMode.USE_LOCAL.name(), DbMode.class, @@ -294,8 +350,8 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** le mode de creation par defaut de base locale */ DEFAULT_CREATION_MODE( - IObserveConfig.PROPERTY_DEFAULT_CREATION_MODE, - IObserveConfig.PROPERTY_DEFAULT_CREATION_MODE, + ObserveSwingApplicationConfig.PROPERTY_DEFAULT_CREATION_MODE, + ObserveSwingApplicationConfig.PROPERTY_DEFAULT_CREATION_MODE, n("observe.config.defaultCreationMode"), CreationMode.IMPORT_EXTERNAL_DUMP.name(), CreationMode.class, @@ -305,8 +361,8 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** flag pour sauvegarder le paramétrage de la connexion a obstuna */ STORE_REMOTE_STORAGE( - "ui." + IObserveConfig.PROPERTY_STORE_REMOTE_STORAGE, - IObserveConfig.PROPERTY_STORE_REMOTE_STORAGE, + "ui." + ObserveSwingApplicationConfig.PROPERTY_STORE_REMOTE_STORAGE, + ObserveSwingApplicationConfig.PROPERTY_STORE_REMOTE_STORAGE, n("observe.config.ui.storeRemoteStorage"), "true", Boolean.class, @@ -316,8 +372,8 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** flag pour charge ou non la base locale au démarrage */ LOAD_LOCAL_STORAGE( - "ui." + IObserveConfig.PROPERTY_LOAD_LOCAL_STORAGE, - IObserveConfig.PROPERTY_LOAD_LOCAL_STORAGE, + "ui." + ObserveSwingApplicationConfig.PROPERTY_LOAD_LOCAL_STORAGE, + ObserveSwingApplicationConfig.PROPERTY_LOAD_LOCAL_STORAGE, n("observe.config.ui.loadLocalStorage"), "true", Boolean.class, @@ -327,8 +383,8 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** pour afficher la progression de la migration dans les logs */ SHOW_MIGRATION_PROGRESSION( - IObserveConfig.PROPERTY_SHOW_MIGRATION_PROGRESSION, - IObserveConfig.PROPERTY_SHOW_MIGRATION_PROGRESSION, + ObserveSwingApplicationConfig.PROPERTY_SHOW_MIGRATION_PROGRESSION, + ObserveSwingApplicationConfig.PROPERTY_SHOW_MIGRATION_PROGRESSION, n("observe.config.showMigrationProgression"), "true", Boolean.class, @@ -338,8 +394,8 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** pour affichier les requetes sql lors de la migration dans les logs */ SHOW_MIGRATION_SQL( - IObserveConfig.PROPERTY_SHOW_MIGRATION_SQL, - IObserveConfig.PROPERTY_SHOW_MIGRATION_SQL, + ObserveSwingApplicationConfig.PROPERTY_SHOW_MIGRATION_SQL, + ObserveSwingApplicationConfig.PROPERTY_SHOW_MIGRATION_SQL, n("observe.config.showMigrationSql"), "true", Boolean.class, @@ -348,8 +404,8 @@ public enum ObserveConfigOption implements ConfigOptionDef { ), /** pour affichier toutes les requetes sql dans les logs */ SHOW_SQL( - IObserveConfig.PROPERTY_SHOW_SQL, - IObserveConfig.PROPERTY_SHOW_SQL, + ObserveSwingApplicationConfig.PROPERTY_SHOW_SQL, + ObserveSwingApplicationConfig.PROPERTY_SHOW_SQL, n("observe.config.showSql"), "false", Boolean.class, @@ -360,8 +416,8 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** temps maximum autorise en deux points gps */ DEFAULT_GPS_MAX_DELAY( - IObserveConfig.PROPERTY_DEFAULT_GPS_MAX_DELAY, - IObserveConfig.PROPERTY_DEFAULT_GPS_MAX_DELAY, + ObserveSwingApplicationConfig.PROPERTY_DEFAULT_GPS_MAX_DELAY, + ObserveSwingApplicationConfig.PROPERTY_DEFAULT_GPS_MAX_DELAY, n("observe.config.defaultGpsMaxDelay"), "60", Integer.class, @@ -371,8 +427,8 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** vitesse maximum (en noeud) entre deux points gps */ DEFAULT_GPS_MAX_SPEED( - IObserveConfig.PROPERTY_DEFAULT_GPS_MAX_SPEED, - IObserveConfig.PROPERTY_DEFAULT_GPS_MAX_SPEED, + ObserveSwingApplicationConfig.PROPERTY_DEFAULT_GPS_MAX_SPEED, + ObserveSwingApplicationConfig.PROPERTY_DEFAULT_GPS_MAX_SPEED, n("observe.config.defaultGpsMaxSpeed"), "25.0f", Float.class, @@ -384,8 +440,8 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** flag pour autoriser le choix de la base source */ CHANGE_SYNCHRO_SRC( - "ui." + IObserveConfig.PROPERTY_CHANGE_SYNCHRO_SRC, - IObserveConfig.PROPERTY_CHANGE_SYNCHRO_SRC, + "ui." + ObserveSwingApplicationConfig.PROPERTY_CHANGE_SYNCHRO_SRC, + ObserveSwingApplicationConfig.PROPERTY_CHANGE_SYNCHRO_SRC, n("observe.config.ui.changeSynchroSrc"), "false", Boolean.class, @@ -397,8 +453,8 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** flag pour voir le boutton d'affichage de la popup de clavier numerique) */ SHOW_NUMBER_EDITOR_BUTTON( - "ui." + IObserveConfig.PROPERTY_SHOW_NUMBER_EDITOR_BUTTON, - IObserveConfig.PROPERTY_SHOW_NUMBER_EDITOR_BUTTON, + "ui." + ObserveSwingApplicationConfig.PROPERTY_SHOW_NUMBER_EDITOR_BUTTON, + ObserveSwingApplicationConfig.PROPERTY_SHOW_NUMBER_EDITOR_BUTTON, n("observe.config.ui.showNumberEditorButton"), "true", Boolean.class, @@ -408,8 +464,8 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** flag pour afficher automatiquement la popup du clavier numerique */ AUTO_POPUP_NUMBER_EDITOR( - "ui." + IObserveConfig.PROPERTY_AUTO_POPUP_NUMBER_EDITOR, - IObserveConfig.PROPERTY_AUTO_POPUP_NUMBER_EDITOR, + "ui." + ObserveSwingApplicationConfig.PROPERTY_AUTO_POPUP_NUMBER_EDITOR, + ObserveSwingApplicationConfig.PROPERTY_AUTO_POPUP_NUMBER_EDITOR, n("observe.config.ui.autoPopupNumberEditor"), "false", Boolean.class, @@ -419,8 +475,8 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** flag pour voir la réglette d'affichage des heures dans l'éditeur des temps */ SHOW_DATE_TIME_EDITOR_SLIDER( - "ui." + IObserveConfig.PROPERTY_SHOW_DATE_TIME_EDITOR_SLIDER, - IObserveConfig.PROPERTY_SHOW_DATE_TIME_EDITOR_SLIDER, + "ui." + ObserveSwingApplicationConfig.PROPERTY_SHOW_DATE_TIME_EDITOR_SLIDER, + ObserveSwingApplicationConfig.PROPERTY_SHOW_DATE_TIME_EDITOR_SLIDER, n("observe.config.ui.showTimeEditorSlider"), "true", Boolean.class, @@ -430,8 +486,8 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** flag pour lancer l'application en mode plein ecran */ FULL_SCREEN( - "ui." + IObserveConfig.PROPERTY_FULL_SCREEN, - IObserveConfig.PROPERTY_FULL_SCREEN, + "ui." + ObserveSwingApplicationConfig.PROPERTY_FULL_SCREEN, + ObserveSwingApplicationConfig.PROPERTY_FULL_SCREEN, n("observe.config.ui.fullscreen"), "false", Boolean.class, @@ -441,8 +497,8 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** locale a utiliser dans l'application */ LOCALE( - "ui." + IObserveConfig.PROPERTY_LOCALE, - IObserveConfig.PROPERTY_LOCALE, + "ui." + ObserveSwingApplicationConfig.PROPERTY_LOCALE, + ObserveSwingApplicationConfig.PROPERTY_LOCALE, n("observe.config.ui.locale"), Locale.FRANCE.toString(), Locale.class, @@ -452,8 +508,8 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** locale du referentiel */ DB_LOCALE( - "db." + IObserveConfig.PROPERTY_LOCALE, - IObserveConfig.PROPERTY_DB_LOCALE, + "db." + ObserveSwingApplicationConfig.PROPERTY_LOCALE, + ObserveSwingApplicationConfig.PROPERTY_DB_LOCALE, n("observe.config.db.locale"), Locale.FRANCE.toString(), Locale.class, @@ -466,7 +522,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** la valeur maximale de qualification des observations faune associe */ NON_TARGET_OBSERVATION( "observation.fauneAssociee", - IObserveConfig.PROPERTY_NON_TARGET_OBSERVATION, + ObserveSwingApplicationConfig.PROPERTY_NON_TARGET_OBSERVATION, n("observe.config.observation.fauneAssociee"), "1", Integer.class, @@ -477,7 +533,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** la valeur maximale de qualification des observations rejet thons */ TARGET_DISCARDS_OBSERVATION( "observation.rejetsThons", - IObserveConfig.PROPERTY_TARGET_DISCARDS_OBSERVATION, + ObserveSwingApplicationConfig.PROPERTY_TARGET_DISCARDS_OBSERVATION, n("observe.config.observation.rejetsThons"), "1", Integer.class, @@ -488,7 +544,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** la valeur maximale de qualification des observations mensuration */ SAMPLES_OBSERVATION( "observation.mensurations", - IObserveConfig.PROPERTY_SAMPLES_OBSERVATION, + ObserveSwingApplicationConfig.PROPERTY_SAMPLES_OBSERVATION, n("observe.config.observation.mensurations"), "1", Integer.class, @@ -499,7 +555,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** la valeur maximale de qualification des observations objet flottant */ OBJECTS_OBSERVATION( "observation.floatingObject", - IObserveConfig.PROPERTY_OBJECTS_OBSERVATION, + ObserveSwingApplicationConfig.PROPERTY_OBJECTS_OBSERVATION, n("observe.config.observation.floatingObject"), "1", Integer.class, @@ -510,7 +566,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** la valeur maximale de qualification des observations activitys detaillees */ DETAILLED_ACTIVITIES_OBSERVATION( "observation.activitysDetaillees", - IObserveConfig.PROPERTY_DETAILLED_ACTIVITIES_OBSERVATION, + ObserveSwingApplicationConfig.PROPERTY_DETAILLED_ACTIVITIES_OBSERVATION, n("observe.config.observation.activitysDetaillees"), "1", Integer.class, @@ -521,7 +577,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** la valeur maximale de qualification des observations mammiferes */ MAMMALS_OBSERVATION( "observation.mammiferes", - IObserveConfig.PROPERTY_MAMMALS_OBSERVATION, + ObserveSwingApplicationConfig.PROPERTY_MAMMALS_OBSERVATION, n("observe.config.observation.mammiferes"), "1", Integer.class, @@ -532,7 +588,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** la valeur maximale de qualification des observations oiseaux */ BIRDS_OBSERVATION( "observation.oiseaux", - IObserveConfig.PROPERTY_BIRDS_OBSERVATION, + ObserveSwingApplicationConfig.PROPERTY_BIRDS_OBSERVATION, n("observe.config.observation.oiseaux"), "1", Integer.class, @@ -543,7 +599,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** la valeur maximale de qualification des observations gleure */ BAIT_OBSERVATION( "observation.gleure", - IObserveConfig.PROPERTY_BAIT_OBSERVATION, + ObserveSwingApplicationConfig.PROPERTY_BAIT_OBSERVATION, n("observe.config.observation.gleure"), "1", Integer.class, @@ -555,7 +611,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** le type de liste d'espèces pour les captures cibles (seine) */ SPECIES_LIST_SEINE_TARGET_CATCH_ID( "speciesList.seine.targetCatch", - IObserveConfig.PROPERTY_SPECIES_LIST_SEINE_TARGET_CATCH_ID, + ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_SEINE_TARGET_CATCH_ID, n("observe.config.speciesList.seine.targetCatch"), "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.1", // espece thon String.class, @@ -566,7 +622,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** le type de liste d'espèce pour les Estimation banc (seine) */ SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID( "speciesList.seine.schoolEstimate", - IObserveConfig.PROPERTY_SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID, + ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID, n("observe.config.speciesList.seine.schoolEstimate"), "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.1", // espece thons String.class, @@ -577,7 +633,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** le type de liste d'espèces pour les Estimation banc objet (seine) */ SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID( "speciesList.seine.objectSchoolEstimate", - IObserveConfig.PROPERTY_SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID, + ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID, n("observe.config.speciesList.seine.objectSchoolEstimate"), "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.1", // espece thon String.class, @@ -588,7 +644,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** le type de liste d'espèces pour les captures non cibles (seine) */ SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID( "speciesList.seine.nonTargetCatch", - IObserveConfig.PROPERTY_SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID, + ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID, n("observe.config.speciesList.seine.nonTargetCatch"), "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.2", // espece faune String.class, @@ -599,7 +655,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** le type de liste d'espèces pour les Faune observée (seine) */ SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID( "speciesList.seine.objectObservedSpecies", - IObserveConfig.PROPERTY_SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID, + ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID, n("observe.config.speciesList.seine.objectObservedSpecies"), "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.2", // espece faune String.class, @@ -610,7 +666,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** le type de liste d'espèces pour les captures (longline) */ SPECIES_LIST_LONGLINE_CATCH_ID( "speciesList.longline.catch", - IObserveConfig.PROPERTY_SPECIES_LIST_LONGLINE_CATCH_ID, + ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_LONGLINE_CATCH_ID, n("observe.config.speciesList.longline.catch"), "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.3", // catch String.class, @@ -621,7 +677,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** le type de liste d'espèces pour les rencontres (longline) */ SPECIES_LIST_LONGLINE_ENCOUNTER_ID( "speciesList.longline.encounter", - IObserveConfig.PROPERTY_SPECIES_LIST_LONGLINE_ENCOUNTER_ID, + ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_LONGLINE_ENCOUNTER_ID, n("observe.config.speciesList.longline.encounter"), "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.4", // encounter String.class, @@ -631,7 +687,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { /** le type de liste d'espèces pour les deprédations (longline) */ SPECIES_LIST_LONGLINE_DEPREDATOR_ID( "speciesList.longline.depredator", - IObserveConfig.PROPERTY_SPECIES_LIST_LONGLINE_DEPREDATOR_ID, + ObserveSwingApplicationConfig.PROPERTY_SPECIES_LIST_LONGLINE_DEPREDATOR_ID, n("observe.config.speciesList.longline.encounter"), "fr.ird.observe.entities.referentiel.SpeciesList#1239832675370#0.5", // encounter String.class, @@ -747,7 +803,7 @@ public enum ObserveConfigOption implements ConfigOptionDef { false, false); - public static List<ObserveConfigOption> MAP_LAYERS = ImmutableList.of(MAP_LAYER_1, MAP_LAYER_2, MAP_LAYER_3, + public static List<ObserveSwingApplicationConfigOption> MAP_LAYERS = ImmutableList.of(MAP_LAYER_1, MAP_LAYER_2, MAP_LAYER_3, MAP_LAYER_4, MAP_LAYER_5, MAP_LAYER_6, MAP_LAYER_7, MAP_LAYER_8, MAP_LAYER_9, MAP_LAYER_10); /** @@ -784,22 +840,22 @@ public enum ObserveConfigOption implements ConfigOptionDef { // */ // protected boolean admin; - ObserveConfigOption(String key, - String description, - String defaultValue, - Class<?> type, - boolean _transient, - boolean _final) { + ObserveSwingApplicationConfigOption(String key, + String description, + String defaultValue, + Class<?> type, + boolean _transient, + boolean _final) { this(key, null, description, defaultValue, type, _transient, _final); } - ObserveConfigOption(String key, - String propertyKey, - String description, - String defaultValue, - Class<?> type, - boolean _transient, - boolean _final) { + ObserveSwingApplicationConfigOption(String key, + String propertyKey, + String description, + String defaultValue, + Class<?> type, + boolean _transient, + boolean _final) { this.key = key; this.description = description; this.defaultValue = defaultValue; @@ -866,4 +922,17 @@ public enum ObserveConfigOption implements ConfigOptionDef { return propertyKey; } + public static ImmutableList<ObserveSwingApplicationConfigOption> orderedByNameValues() { + + List<ObserveSwingApplicationConfigOption> values = Lists.newArrayList(values()); + Collections.sort(values, new Comparator<ObserveSwingApplicationConfigOption>() { + + @Override + public int compare(ObserveSwingApplicationConfigOption o1, ObserveSwingApplicationConfigOption o2) { + return o1.getKey().compareTo(o2.getKey()); + } + }); + return ImmutableList.copyOf(values); + + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/configuration/ObserveSwingApplicationConfigProvider.java b/observe-application-swing/src/main/java/fr/ird/observe/configuration/ObserveSwingApplicationConfigProvider.java new file mode 100644 index 0000000..3e8550c --- /dev/null +++ b/observe-application-swing/src/main/java/fr/ird/observe/configuration/ObserveSwingApplicationConfigProvider.java @@ -0,0 +1,37 @@ +package fr.ird.observe.configuration; + +import org.nuiton.config.ApplicationConfigProvider; +import org.nuiton.config.ConfigActionDef; +import org.nuiton.config.ConfigOptionDef; + +import java.util.Locale; + +import static org.nuiton.i18n.I18n.l; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class ObserveSwingApplicationConfigProvider implements ApplicationConfigProvider { + + public static final String OBSERVE_SWING_CONFIGURATION_PROVIDER_NAME = "observeSwing"; + + @Override + public String getName() { + return OBSERVE_SWING_CONFIGURATION_PROVIDER_NAME; + } + + @Override + public String getDescription(Locale locale) { + return l(locale, "observeweb.configuration.description"); + } + + @Override + public ConfigOptionDef[] getOptions() { + return ObserveSwingApplicationConfigOption.values(); + } + + @Override + public ConfigActionDef[] getActions() { + return new ConfigActionDef[0]; + } +} diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/ConnexionStatus.java b/observe-application-swing/src/main/java/fr/ird/observe/db/constantes/ConnexionStatus.java similarity index 97% rename from observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/ConnexionStatus.java rename to observe-application-swing/src/main/java/fr/ird/observe/db/constantes/ConnexionStatus.java index 5ec2f9b..ef25fcf 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/ConnexionStatus.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/db/constantes/ConnexionStatus.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.business.db.constants; +package fr.ird.observe.db.constantes; import static org.nuiton.i18n.I18n.n; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/CreationMode.java b/observe-application-swing/src/main/java/fr/ird/observe/db/constantes/CreationMode.java similarity index 72% rename from observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/CreationMode.java rename to observe-application-swing/src/main/java/fr/ird/observe/db/constantes/CreationMode.java index c7be632..51471f8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/CreationMode.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/db/constantes/CreationMode.java @@ -19,7 +19,9 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.business.db.constants; +package fr.ird.observe.db.constantes; + +import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import static org.nuiton.i18n.I18n.n; @@ -61,6 +63,14 @@ public enum CreationMode { IMPORT_REMOTE_STORAGE( n("observe.storage.creationMode.importRemoteStorage"), n("observe.storage.creationMode.importRemoteStorage.description") + ), + /** + * creer une nouvelle base vide et importer le referentiel via une base + * distante. + */ + IMPORT_SERVER_STORAGE( + n("observe.storage.creationMode.importServerStorage"), + n("observe.storage.creationMode.importServerStorage.description") ); private final String label; @@ -79,4 +89,20 @@ public enum CreationMode { public String getDescription() { return description; } + + public static CreationMode valueOf(DataSourceCreateConfigurationDto createConfigurationDto) { + CreationMode result = EMPTY; + + if (createConfigurationDto != null) { + if (createConfigurationDto.isImportData()) { + result = IMPORT_INTERNAL_DUMP; + } else if (createConfigurationDto.isImportDatabase()) { + result = IMPORT_REMOTE_STORAGE; + } else if (createConfigurationDto.isImportReferential()) { + result = IMPORT_EXTERNAL_DUMP; + } + } + + return result; + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/DbMode.java b/observe-application-swing/src/main/java/fr/ird/observe/db/constantes/DbMode.java similarity index 88% rename from observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/DbMode.java rename to observe-application-swing/src/main/java/fr/ird/observe/db/constantes/DbMode.java index 31d697e..a7a2876 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/business/db/constants/DbMode.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/db/constantes/DbMode.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.business.db.constants; +package fr.ird.observe.db.constantes; import static org.nuiton.i18n.I18n.n; @@ -44,6 +44,11 @@ public enum DbMode { USE_REMOTE( n("observe.storage.dbMode.useRemote"), n("observe.storage.dbMode.useRemote.description") + ), + /** Pour utiliser une un serveur web distante */ + USE_SERVER( + n("observe.storage.dbMode.useServer"), + n("observe.storage.dbMode.useServer.description") ); private final String label; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/package.html b/observe-application-swing/src/main/java/fr/ird/observe/package.html index 797e554..061a248 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/package.html +++ b/observe-application-swing/src/main/java/fr/ird/observe/package.html @@ -24,7 +24,7 @@ <h1>Paquetage principal fr.ird.observe</h1> Le paquetage contenant la classe de lancement de l'application (ObserveMain), la -configuration (ObserveConfig) et le +configuration (ObserveSwingApplicationConfig) et le contexte applicatif (ObserveContext), ainsi que des services (non ui) : - DecoratorProvider un provider de décorateurs. diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUI.jaxx index dda06dc..54f7e60 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUI.jaxx @@ -24,7 +24,7 @@ onWindowClosing='new fr.ird.observe.ui.actions.CloseApplicationAction(this).run()'> <import> - fr.ird.observe.ObserveConfig + fr.ird.observe.configuration.ObserveSwingApplicationConfig fr.ird.observe.business.db.DataContext fr.ird.observe.services.dto.seine.RouteDto @@ -70,7 +70,7 @@ <JMenu id="navigationMoveTripAction"/> </JPopupMenu> - <ObserveConfig id='config' initializer='getContextValue(ObserveConfig.class)'/> + <ObserveSwingApplicationConfig id='config' initializer='getContextValue(ObserveSwingApplicationConfig.class)'/> <ObserveMainUIHandler id='handler' initializer='getContextValue(ObserveMainUIHandler.class)'/> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUIHandler.java index 6dd8bb9..18a645c 100755 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUIHandler.java @@ -21,14 +21,12 @@ */ package fr.ird.observe.ui; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.DecoratorService; -import fr.ird.observe.ObserveConfig; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.business.db.DataContext; import fr.ird.observe.business.db.DataSource; import fr.ird.observe.services.dto.AbstractObserveDto; -import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUI; @@ -87,7 +85,7 @@ public class ObserveMainUIHandler { public void changeNavigationNode(ObserveMainUI ui, TreeSelectionEvent event) { - DataSource source = ObserveContext.get().getDataSource(); + DataSource source = ObserveSwingApplicationContext.get().getDataSource(); if (source == null || !source.isOpen()) { // no open data source @@ -187,7 +185,7 @@ public class ObserveMainUIHandler { * @param config la configuration a utiliser * @return l'ui instancie et initialisee mais non visible encore */ - public ObserveMainUI initUI(ObserveContext context, ObserveConfig config) { + public ObserveMainUI initUI(ObserveSwingApplicationContext context, ObserveSwingApplicationConfig config) { SwingValidatorMessageTableModel errorModel = new ObserveSwingValidatorMessageTableModel(); @@ -269,7 +267,7 @@ public class ObserveMainUIHandler { public static final String H2_SERVER_URL_PATTERN = "jdbc:h2:%s/%s/obstuna"; public static DataSource getStorage() { - DataSource source = ObserveContext.get().getDataSource(); + DataSource source = ObserveSwingApplicationContext.get().getDataSource(); return source; } @@ -278,7 +276,7 @@ public class ObserveMainUIHandler { // } public static void restartEdit() { - ContentUI<?> selectedUI = ObserveContext.get().getSelectedContentUI(); + ContentUI<?> selectedUI = ObserveSwingApplicationContext.get().getSelectedContentUI(); if (selectedUI == null) { // pas d'écran selectionne @@ -312,7 +310,7 @@ public class ObserveMainUIHandler { * @param rootContext le contexte applicatif * @param config la configuration a utiliser */ - protected void reloadUI(ObserveContext rootContext, ObserveConfig config) { + protected void reloadUI(ObserveSwingApplicationContext rootContext, ObserveSwingApplicationConfig config) { // must remove all properties listener on config config.removeJaxxPropertyChangeListener(); @@ -396,7 +394,7 @@ public class ObserveMainUIHandler { if (ui.getConfig().isMainStorageOpened()) { - DataSource service = ObserveContext.get().getDataSource(); + DataSource service = ObserveSwingApplicationContext.get().getDataSource(); //FIXME // if (service instanceof H2DataSource) { // icon = (Icon) ui.storageStatus.getClientProperty("localIcon"); @@ -412,7 +410,7 @@ public class ObserveMainUIHandler { protected String updateStorageSatutText(ObserveMainUI ui, boolean isOpened) { String text; if (ui.getConfig().isMainStorageOpened()) { - DataSource service = ObserveContext.get().getDataSource(); + DataSource service = ObserveSwingApplicationContext.get().getDataSource(); text = service.getShortLabel(); } else { text = t("observe.message.db.none.loaded"); @@ -423,7 +421,7 @@ public class ObserveMainUIHandler { protected String updateStorageStatutToolTipText(ObserveMainUI ui, boolean isOpened) { String text; if (ui.getConfig().isMainStorageOpened()) { - DataSource source = ObserveContext.get().getDataSource(); + DataSource source = ObserveSwingApplicationContext.get().getDataSource(); text = t("observe.message.loaded.tip", source.getLabel()); } else { text = t("observe.message.db.none.loaded.tip"); @@ -474,7 +472,7 @@ public class ObserveMainUIHandler { if (context instanceof ObserveMainUI) { return (ObserveMainUI) context; } - ObserveMainUI ui = ObserveContext.get().getObserveMainUI(); + ObserveMainUI ui = ObserveSwingApplicationContext.get().getObserveMainUI(); return ui; } @@ -519,7 +517,7 @@ public class ObserveMainUIHandler { if (selectedNode.equals(o) || !selectedNode.isNodeAncestor(o)) { return; } - boolean canChange = ObserveContext.get().closeSelectedContentUI(ui); + boolean canChange = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); if (!canChange) { throw new ExpandVetoException(event, "Can not collapse node " + event.getPath()); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveUICallback.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveUICallback.java index e2879ef..57804cc 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveUICallback.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveUICallback.java @@ -22,8 +22,8 @@ package fr.ird.observe.ui; * #L% */ -import fr.ird.observe.ObserveConfig; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.ui.actions.CloseApplicationAction; import fr.ird.observe.ui.actions.ReloadStorageAction; import org.apache.commons.logging.Log; @@ -48,7 +48,7 @@ public enum ObserveUICallback implements Runnable { if (log.isInfoEnabled()) { log.info("will reload application"); } - ObserveContext context = ObserveContext.get(); + ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); ObserveMainUIHandler handler = new ObserveMainUIHandler(); ObserveMainUI ui = handler.getUI(context); context.askReload(); @@ -62,10 +62,10 @@ public enum ObserveUICallback implements Runnable { if (log.isInfoEnabled()) { log.info("will reload ui"); } - ObserveContext context = ObserveContext.get(); + ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); ObserveMainUIHandler handler = new ObserveMainUIHandler(); ObserveMainUI ui = handler.getUI(context); - ObserveConfig config = ui.getConfig(); + ObserveSwingApplicationConfig config = ui.getConfig(); handler.reloadUI(context, config); } }, @@ -77,7 +77,7 @@ public enum ObserveUICallback implements Runnable { log.info("will reload db"); } - ObserveContext context = ObserveContext.get(); + ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); ObserveMainUIHandler handler = new ObserveMainUIHandler(); ObserveMainUI ui = handler.getUI(context); new ReloadStorageAction(ui).run(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/UIHelper.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/UIHelper.java index c48df86..046404d 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/UIHelper.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/UIHelper.java @@ -21,8 +21,8 @@ */ package fr.ird.observe.ui; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.DecoratorService; -import fr.ird.observe.ObserveContext; import fr.ird.observe.services.dto.AbstractObserveDto; import fr.ird.observe.ui.util.table.ObserveBooleanTableCellRenderer; import jaxx.runtime.FileChooserUtil; @@ -133,7 +133,7 @@ public class UIHelper extends SwingUtil { public static void displayInfo(String text) { - ObserveMainUI ui = ObserveContext.get().getObserveMainUI(); + ObserveMainUI ui = ObserveSwingApplicationContext.get().getObserveMainUI(); if (ui == null) { JOptionPane.showMessageDialog(null, text); } else { @@ -143,7 +143,7 @@ public class UIHelper extends SwingUtil { public static void displayWarning(String title, String text) { - ObserveMainUI ui = ObserveContext.get().getObserveMainUI(); + ObserveMainUI ui = ObserveSwingApplicationContext.get().getObserveMainUI(); JOptionPane.showMessageDialog(ui, text, title, JOptionPane.WARNING_MESSAGE); } @@ -170,9 +170,9 @@ public class UIHelper extends SwingUtil { Object[] options, int defaultOption) { if (parent == null) { - ObserveContext tx = ObserveContext.get(); + ObserveSwingApplicationContext tx = ObserveSwingApplicationContext.get(); if (tx != null) { - parent = ObserveContext.get().getObserveMainUI(); + parent = ObserveSwingApplicationContext.get().getObserveMainUI(); } } int response = JOptionPane.showOptionDialog( @@ -294,7 +294,7 @@ public class UIHelper extends SwingUtil { Class<E> beanClass, E bean, String extraMessage) { - ObserveMainUI mainUI = ObserveContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); if (parent == null) { // on cherche l'ui principale @@ -304,7 +304,7 @@ public class UIHelper extends SwingUtil { if (mainUI != null) { mainUI.setBusy(true); } - DecoratorService decoratorService = ObserveContext.get().getDecoratorService(); + DecoratorService decoratorService = ObserveSwingApplicationContext.get().getDecoratorService(); Decorator<E> decorator = decoratorService.getDecoratorByType(beanClass); String beanStr; String messageDelete = null; @@ -344,13 +344,13 @@ public class UIHelper extends SwingUtil { public static DecoratorTableCellRenderer newDecorateTableCellRenderer( TableCellRenderer renderer, Class<?> entityClass) { - Decorator<?> decorator = ObserveContext.get().getDecorator(entityClass); + Decorator<?> decorator = ObserveSwingApplicationContext.get().getDecorator(entityClass); return new DecoratorTableCellRenderer(renderer, decorator); } public static DecoratorTableCellRenderer newDecorateTableCellRenderer( TableCellRenderer renderer, Class<?> entityClass, String context) { - Decorator<?> decorator = ObserveContext.get().getDecorator(entityClass, context); + Decorator<?> decorator = ObserveSwingApplicationContext.get().getDecorator(entityClass, context); return new DecoratorTableCellRenderer(renderer, decorator); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeApplicationLanguageAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeApplicationLanguageAction.java index b9a9aa0..34cfd6e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeApplicationLanguageAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeApplicationLanguageAction.java @@ -22,9 +22,9 @@ package fr.ird.observe.ui.actions; * #L% */ -import fr.ird.observe.ObserveConfig; -import fr.ird.observe.ObserveConfigOption; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; +import fr.ird.observe.configuration.ObserveSwingApplicationConfigOption; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.ObserveUICallback; import jaxx.runtime.SwingUtil; @@ -68,12 +68,12 @@ public class ChangeApplicationLanguageAction extends AbstractAction { if (log.isInfoEnabled()) { log.info("ObServe changing application language..."); } - boolean canContinue = ObserveContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); if (canContinue) { - ObserveConfig config = ui.getConfig(); + ObserveSwingApplicationConfig config = ui.getConfig(); // sauvegarde de la nouvelle locale - config.setOption(ObserveConfigOption.LOCALE, newLocale); + config.setOption(ObserveSwingApplicationConfigOption.LOCALE, newLocale); ObserveUICallback.ui.run(); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeDbLanguageAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeDbLanguageAction.java index 47d49d9..f8f52ac 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeDbLanguageAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeDbLanguageAction.java @@ -22,9 +22,9 @@ package fr.ird.observe.ui.actions; * #L% */ -import fr.ird.observe.ObserveConfig; -import fr.ird.observe.ObserveConfigOption; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; +import fr.ird.observe.configuration.ObserveSwingApplicationConfigOption; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.ui.*; import fr.ird.observe.ui.ObserveUICallback; @@ -68,14 +68,14 @@ public class ChangeDbLanguageAction extends AbstractAction { if (log.isInfoEnabled()) { log.info("ObServe changing db language..."); } - boolean canContinue = ObserveContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); if (!canContinue) { return; } - ObserveConfig config = ui.getConfig(); + ObserveSwingApplicationConfig config = ui.getConfig(); // sauvegarde de la nouvelle locale - config.setOption(ObserveConfigOption.DB_LOCALE, newLocale.getLocale()); + config.setOption(ObserveSwingApplicationConfigOption.DB_LOCALE, newLocale.getLocale()); ObserveUICallback.ui.run(); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeStorageAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeStorageAction.java index 1a1e6d3..ff7de1e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeStorageAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ChangeStorageAction.java @@ -22,8 +22,8 @@ package fr.ird.observe.ui.actions; * #L% */ -import fr.ird.observe.ObserveContext; -import fr.ird.observe.business.db.constants.DbMode; +import fr.ird.observe.ObserveSwingApplicationContext; +import fr.ird.observe.db.constantes.DbMode; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.storage.StorageUILauncher; import jaxx.runtime.SwingUtil; @@ -79,7 +79,7 @@ public class ChangeStorageAction extends AbstractAction { public void run() { - boolean canContinue = ObserveContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); if (canContinue) { if (log.isInfoEnabled()) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseApplicationAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseApplicationAction.java index 5f77c4b..d6b2578 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseApplicationAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseApplicationAction.java @@ -22,15 +22,15 @@ package fr.ird.observe.ui.actions; * #L% */ -import fr.ird.observe.ObserveContext; import fr.ird.observe.ObserveRunner; +import fr.ird.observe.ObserveSwingApplicationContext; +import fr.ird.observe.ui.ObserveMainUI; import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.AbstractAction; import java.awt.event.ActionEvent; -import fr.ird.observe.ui.*; import static org.nuiton.i18n.I18n.t; @@ -70,7 +70,7 @@ public class CloseApplicationAction extends AbstractAction { if (log.isInfoEnabled()) { log.info("ObServe quitting..."); } - boolean canContinue = ObserveContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); if (canContinue) { try { ui.dispose(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseHelpAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseHelpAction.java index e0813c7..7e8c02d 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseHelpAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseHelpAction.java @@ -22,13 +22,15 @@ package fr.ird.observe.ui.actions; * #L% */ -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.ui.ObserveMainUI; +import fr.ird.observe.ui.ObserveUIMode; import jaxx.runtime.SwingUtil; import javax.swing.AbstractAction; import java.awt.event.ActionEvent; -import fr.ird.observe.ui.*; + import static org.nuiton.i18n.I18n.t; /** @@ -59,7 +61,7 @@ public class CloseHelpAction extends AbstractAction { if (oldMode == null) { // on regarde si une base est chargee - DataSource mainStorage = ObserveContext.get().getDataSource(); + DataSource mainStorage = ObserveSwingApplicationContext.get().getDataSource(); if (mainStorage == null) { oldMode = ObserveUIMode.NO_DB; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseStorageAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseStorageAction.java index e6f2149..504a0f0 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseStorageAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/CloseStorageAction.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.actions; * #L% */ -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.DataSource; import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.ui.ObserveMainUI; @@ -70,7 +70,7 @@ public class CloseStorageAction extends AbstractAction { public void run() { - boolean canContinue = ObserveContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); if (canContinue) { ui.setBusy(true); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/GotoSiteAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/GotoSiteAction.java index 39d04f2..e0f1b04 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/GotoSiteAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/GotoSiteAction.java @@ -22,7 +22,9 @@ package fr.ird.observe.ui.actions; * #L% */ -import fr.ird.observe.ObserveConfig; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; +import fr.ird.observe.ui.ObserveMainUI; +import fr.ird.observe.ui.UIHelper; import jaxx.runtime.SwingUtil; import jaxx.runtime.swing.ErrorDialogUI; import org.apache.commons.logging.Log; @@ -32,7 +34,7 @@ import javax.swing.AbstractAction; import java.awt.Desktop; import java.awt.event.ActionEvent; import java.net.URL; -import fr.ird.observe.ui.*; + import static org.nuiton.i18n.I18n.t; /** @@ -62,7 +64,7 @@ public class GotoSiteAction extends AbstractAction { @Override public void actionPerformed(ActionEvent e) { - ObserveConfig config = ui.getConfig(); + ObserveSwingApplicationConfig config = ui.getConfig(); URL siteURL = config.getOptionAsURL("application.site.url"); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ImportStorageFromFileAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ImportStorageFromFileAction.java index 32ad905..e466ab7 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ImportStorageFromFileAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ImportStorageFromFileAction.java @@ -22,9 +22,9 @@ package fr.ird.observe.ui.actions; * #L% */ -import fr.ird.observe.ObserveContext; -import fr.ird.observe.business.db.constants.CreationMode; -import fr.ird.observe.business.db.constants.DbMode; +import fr.ird.observe.ObserveSwingApplicationContext; +import fr.ird.observe.db.constantes.CreationMode; +import fr.ird.observe.db.constantes.DbMode; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.storage.StorageStep; import fr.ird.observe.ui.storage.StorageUI; @@ -62,7 +62,7 @@ public class ImportStorageFromFileAction extends AbstractAction { @Override public void actionPerformed(ActionEvent e) { - boolean canContinue = ObserveContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); if (canContinue) { new StorageUILauncher(ui, ui, t("observe.title.import.localDB")) { @@ -74,6 +74,7 @@ public class ImportStorageFromFileAction extends AbstractAction { model.setCanCreateLocalService(true); model.setCanUseLocalService(false); model.setCanUseRemoteService(false); + model.setCanUseServerService(false); model.setDbMode(DbMode.CREATE_LOCAL); model.setCreationMode(CreationMode.IMPORT_EXTERNAL_DUMP); if (model.isLocalStorageExist()) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/LaunchAdminAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/LaunchAdminAction.java index 06628e2..7f155ac 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/LaunchAdminAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/LaunchAdminAction.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.actions; * #L% */ -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.admin.AdminStep; import fr.ird.observe.ui.admin.AdminUILauncher; @@ -64,7 +64,7 @@ public class LaunchAdminAction extends AbstractAction { @Override public void actionPerformed(ActionEvent event) { - boolean canContinue = ObserveContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); if (canContinue) { if (log.isInfoEnabled()) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadApplicationAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadApplicationAction.java index 2587b54..92f4d2a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadApplicationAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadApplicationAction.java @@ -22,14 +22,16 @@ package fr.ird.observe.ui.actions; * #L% */ -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; +import fr.ird.observe.ui.ObserveMainUI; +import fr.ird.observe.ui.ObserveUICallback; import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.AbstractAction; import java.awt.event.ActionEvent; -import fr.ird.observe.ui.*; + import static org.nuiton.i18n.I18n.t; /** @@ -62,7 +64,7 @@ public class ReloadApplicationAction extends AbstractAction { if (log.isInfoEnabled()) { log.info("ObServe reloading..."); } - boolean canContinue = ObserveContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); if (canContinue) { ObserveUICallback.application.run(); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadDefaultConfigurationAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadDefaultConfigurationAction.java index eb15a47..aae5805 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadDefaultConfigurationAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadDefaultConfigurationAction.java @@ -22,8 +22,10 @@ package fr.ird.observe.ui.actions; * #L% */ -import fr.ird.observe.ObserveConfig; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; +import fr.ird.observe.ui.ObserveMainUI; +import fr.ird.observe.ui.ObserveUICallback; import jaxx.runtime.SwingUtil; import org.apache.commons.io.FileUtils; import org.apache.commons.logging.Log; @@ -33,7 +35,7 @@ import javax.swing.AbstractAction; import java.awt.event.ActionEvent; import java.io.File; import java.io.IOException; -import fr.ird.observe.ui.*; + import static org.nuiton.i18n.I18n.t; /** @@ -67,9 +69,9 @@ public class ReloadDefaultConfigurationAction extends AbstractAction { log.info("ObServe reloading default configuration..."); } - boolean canContinue = ObserveContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); if (canContinue) { - ObserveConfig config = ui.getConfig(); + ObserveSwingApplicationConfig config = ui.getConfig(); File directory = config.getResourcesDirectory(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadResourcesAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadResourcesAction.java index c7fcb31..64d573e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadResourcesAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadResourcesAction.java @@ -23,8 +23,8 @@ package fr.ird.observe.ui.actions; */ import fr.ird.observe.business.DecoratorService; -import fr.ird.observe.ObserveConfig; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.ObserveRunner; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.ObserveUICallback; @@ -72,9 +72,9 @@ public class ReloadResourcesAction extends AbstractAction { log.info("ObServe reloading resources..."); } - boolean canContinue = ObserveContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); if (canContinue) { - ObserveConfig config = ui.getConfig(); + ObserveSwingApplicationConfig config = ui.getConfig(); File directory = config.getResourcesDirectory(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadStorageAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadStorageAction.java index 9b337a8..dc5c598 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadStorageAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ReloadStorageAction.java @@ -22,12 +22,13 @@ package fr.ird.observe.ui.actions; * #L% */ -import fr.ird.observe.ObserveConfig; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.DataSource; import fr.ird.observe.business.db.DataSourceConfig; import fr.ird.observe.business.db.DataSourceException; -import fr.ird.observe.business.db.DataSourceFactory; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; +import fr.ird.observe.ui.ObserveMainUI; +import fr.ird.observe.ui.ObserveMainUIHandler; import jaxx.runtime.SwingUtil; import jaxx.runtime.swing.ErrorDialogUI; import org.apache.commons.logging.Log; @@ -37,7 +38,6 @@ import javax.swing.AbstractAction; import java.awt.event.ActionEvent; import static org.nuiton.i18n.I18n.t; -import fr.ird.observe.ui.*; /** * Created on 1/17/15. * @@ -72,7 +72,7 @@ public class ReloadStorageAction extends AbstractAction { public void run() { - boolean canContinue = ObserveContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); DataSource storage = ObserveMainUIHandler.getStorage(); @@ -99,7 +99,7 @@ public class ReloadStorageAction extends AbstractAction { } } - ObserveConfig appConfig = ObserveContext.get().getConfig(); + ObserveSwingApplicationConfig appConfig = ObserveSwingApplicationContext.get().getConfig(); //FIXME // if (config instanceof H2DataSourceConfig) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/SaveStorageToFileAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/SaveStorageToFileAction.java index 5d453ae..83123cc 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/SaveStorageToFileAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/SaveStorageToFileAction.java @@ -22,16 +22,18 @@ package fr.ird.observe.ui.actions; * #L% */ -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.DataSource; -import fr.ird.observe.ui.storage.StorageBackupUILauncher; +import fr.ird.observe.ui.ObserveMainUI; +import fr.ird.observe.ui.ObserveMainUIHandler; +import fr.ird.observe.ui.UIHelper; import jaxx.runtime.SwingUtil; import javax.swing.AbstractAction; import javax.swing.JOptionPane; import java.awt.event.ActionEvent; -import static org.nuiton.i18n.I18n.t;import fr.ird.observe.ui.*; +import static org.nuiton.i18n.I18n.t; /** * Created on 1/17/15. @@ -57,7 +59,7 @@ public class SaveStorageToFileAction extends AbstractAction { @Override public void actionPerformed(ActionEvent e) { - boolean canContinue = ObserveContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); if (canContinue) { // on teste que l'utilisateur peut lire-ecrire sur la source de données diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowConfigAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowConfigAction.java index 87917e6..5bd0238 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowConfigAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowConfigAction.java @@ -22,20 +22,18 @@ package fr.ird.observe.ui.actions; * #L% */ -import fr.ird.observe.ObserveConfig; -import fr.ird.observe.ObserveConfigOption; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; +import fr.ird.observe.configuration.ObserveSwingApplicationConfigOption; import fr.ird.observe.business.ObserveTechnicalException; import fr.ird.observe.business.db.DataSource; import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.services.dto.referential.SpeciesListDto; import fr.ird.observe.ui.ObserveMainUI; -import fr.ird.observe.ui.ObserveMainUIHandler; import fr.ird.observe.ui.ObserveUICallback; import jaxx.runtime.SwingUtil; import jaxx.runtime.swing.config.ConfigUIHelper; import jaxx.runtime.swing.config.model.ConfigUIModelBuilder; -import jaxx.runtime.swing.config.model.MainCallBackFinalizer; import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; @@ -93,12 +91,12 @@ public class ShowConfigAction extends AbstractAction { if (log.isInfoEnabled()) { log.info("ObServe opening configuration ui..."); } - boolean canContinue = ObserveContext.get().closeSelectedContentUI(ui); + boolean canContinue = ObserveSwingApplicationContext.get().closeSelectedContentUI(ui); if (canContinue) { - DataSource dataSource = ObserveContext.get().getDataSource(); + DataSource dataSource = ObserveSwingApplicationContext.get().getDataSource(); - ObserveConfig config = ui.getConfig(); + ObserveSwingApplicationConfig config = ui.getConfig(); ObserveConfigUIBuilder helper; @@ -116,7 +114,7 @@ public class ShowConfigAction extends AbstractAction { } - protected ObserveConfigUIBuilder buildUI(ObserveConfig config, DataSource dataSource) throws DataSourceException { + protected ObserveConfigUIBuilder buildUI(ObserveSwingApplicationConfig config, DataSource dataSource) throws DataSourceException { //FIXME // SpeciesListTableCellEditor editor; @@ -209,13 +207,13 @@ public class ShowConfigAction extends AbstractAction { n("observe.config.category.directories"), n("observe.config.category.directories.description")); - helper.addOption(ObserveConfigOption.CONFIG_FILE); - helper.addOption(ObserveConfigOption.DATA_DIRECTORY); - helper.addOption(ObserveConfigOption.DB_DIRECTORY); - helper.addOption(ObserveConfigOption.BACKUP_DIRECTORY); - helper.addOption(ObserveConfigOption.TMP_DIRECTORY); - helper.addOption(ObserveConfigOption.VALIDATION_REPORT_DIRECTORY); - helper.addOption(ObserveConfigOption.RESOURCES_DIRECTORY, ObserveUICallback.application); + helper.addOption(ObserveSwingApplicationConfigOption.CONFIG_FILE); + helper.addOption(ObserveSwingApplicationConfigOption.DATA_DIRECTORY); + helper.addOption(ObserveSwingApplicationConfigOption.DB_DIRECTORY); + helper.addOption(ObserveSwingApplicationConfigOption.BACKUP_DIRECTORY); + helper.addOption(ObserveSwingApplicationConfigOption.TMP_DIRECTORY); + helper.addOption(ObserveSwingApplicationConfigOption.VALIDATION_REPORT_DIRECTORY); + helper.addOption(ObserveSwingApplicationConfigOption.RESOURCES_DIRECTORY, ObserveUICallback.application); } @@ -224,10 +222,10 @@ public class ShowConfigAction extends AbstractAction { helper.addCategory(n("observe.config.category.h2"), n("observe.config.category.h2.description")); - helper.addOption(ObserveConfigOption.H2_LOGIN); - helper.addOption(ObserveConfigOption.H2_PASSWORD); - helper.addOption(ObserveConfigOption.H2_CAN_MIGRATE); - helper.addOption(ObserveConfigOption.H2_SERVER_PORT); + helper.addOption(ObserveSwingApplicationConfigOption.H2_LOGIN); + helper.addOption(ObserveSwingApplicationConfigOption.H2_PASSWORD); + helper.addOption(ObserveSwingApplicationConfigOption.H2_CAN_MIGRATE); + helper.addOption(ObserveSwingApplicationConfigOption.H2_SERVER_PORT); } @@ -236,12 +234,12 @@ public class ShowConfigAction extends AbstractAction { helper.addCategory(n("observe.config.category.obstuna"), n("observe.config.category.obstuna.description")); - helper.addOption(ObserveConfigOption.OBSTUNA_URL); - helper.addOption(ObserveConfigOption.OBSTUNA_LOGIN); - helper.addOption(ObserveConfigOption.OBSTUNA_USE_SSL_CERT); -// helper.addOption(ObserveConfigOption.OBSTUNA_SSL_CERTIFICAT_FILE); + helper.addOption(ObserveSwingApplicationConfigOption.OBSTUNA_URL); + helper.addOption(ObserveSwingApplicationConfigOption.OBSTUNA_LOGIN); + helper.addOption(ObserveSwingApplicationConfigOption.OBSTUNA_USE_SSL_CERT); +// helper.addOption(ObserveSwingApplicationConfigOption.OBSTUNA_SSL_CERTIFICAT_FILE); - helper.addOption(ObserveConfigOption.OBSTUNA_CAN_MIGRATE, ObserveUICallback.db); + helper.addOption(ObserveSwingApplicationConfigOption.OBSTUNA_CAN_MIGRATE, ObserveUICallback.db); } @@ -251,12 +249,12 @@ public class ShowConfigAction extends AbstractAction { n("observe.config.category.changeStorage"), n("observe.config.category.changeStorage.description")); - helper.addOption(ObserveConfigOption.DEFAULT_DB_MODE); - helper.addOption(ObserveConfigOption.DEFAULT_CREATION_MODE); - helper.addOption(ObserveConfigOption.STORE_REMOTE_STORAGE); - helper.addOption(ObserveConfigOption.SHOW_MIGRATION_PROGRESSION); - helper.addOption(ObserveConfigOption.SHOW_MIGRATION_SQL); - helper.addOption(ObserveConfigOption.SHOW_SQL, ObserveUICallback.application); + helper.addOption(ObserveSwingApplicationConfigOption.DEFAULT_DB_MODE); + helper.addOption(ObserveSwingApplicationConfigOption.DEFAULT_CREATION_MODE); + helper.addOption(ObserveSwingApplicationConfigOption.STORE_REMOTE_STORAGE); + helper.addOption(ObserveSwingApplicationConfigOption.SHOW_MIGRATION_PROGRESSION); + helper.addOption(ObserveSwingApplicationConfigOption.SHOW_MIGRATION_SQL); + helper.addOption(ObserveSwingApplicationConfigOption.SHOW_SQL, ObserveUICallback.application); } @@ -265,8 +263,8 @@ public class ShowConfigAction extends AbstractAction { helper.addCategory(n("observe.config.category.gps"), n("observe.config.category.gps.description")); - helper.addOption(ObserveConfigOption.DEFAULT_GPS_MAX_DELAY); - helper.addOption(ObserveConfigOption.DEFAULT_GPS_MAX_SPEED); + helper.addOption(ObserveSwingApplicationConfigOption.DEFAULT_GPS_MAX_DELAY); + helper.addOption(ObserveSwingApplicationConfigOption.DEFAULT_GPS_MAX_SPEED); } @@ -275,8 +273,8 @@ public class ShowConfigAction extends AbstractAction { helper.addCategory(n("observe.config.category.synchro"), n("observe.config.category.synchro.description")); - helper.addOption(ObserveConfigOption.CHANGE_SYNCHRO_SRC); - helper.addOption(ObserveConfigOption.H2_CAN_MIGRATE); + helper.addOption(ObserveSwingApplicationConfigOption.CHANGE_SYNCHRO_SRC); + helper.addOption(ObserveSwingApplicationConfigOption.H2_CAN_MIGRATE); } @@ -287,14 +285,14 @@ public class ShowConfigAction extends AbstractAction { n("observe.config.category.observation.description"), ObserveUICallback.ui.name()); - helper.addOption(ObserveConfigOption.DETAILLED_ACTIVITIES_OBSERVATION); - helper.addOption(ObserveConfigOption.NON_TARGET_OBSERVATION); - helper.addOption(ObserveConfigOption.BAIT_OBSERVATION); - helper.addOption(ObserveConfigOption.MAMMALS_OBSERVATION); - helper.addOption(ObserveConfigOption.SAMPLES_OBSERVATION); - helper.addOption(ObserveConfigOption.OBJECTS_OBSERVATION); - helper.addOption(ObserveConfigOption.BIRDS_OBSERVATION); - helper.addOption(ObserveConfigOption.TARGET_DISCARDS_OBSERVATION); + helper.addOption(ObserveSwingApplicationConfigOption.DETAILLED_ACTIVITIES_OBSERVATION); + helper.addOption(ObserveSwingApplicationConfigOption.NON_TARGET_OBSERVATION); + helper.addOption(ObserveSwingApplicationConfigOption.BAIT_OBSERVATION); + helper.addOption(ObserveSwingApplicationConfigOption.MAMMALS_OBSERVATION); + helper.addOption(ObserveSwingApplicationConfigOption.SAMPLES_OBSERVATION); + helper.addOption(ObserveSwingApplicationConfigOption.OBJECTS_OBSERVATION); + helper.addOption(ObserveSwingApplicationConfigOption.BIRDS_OBSERVATION); + helper.addOption(ObserveSwingApplicationConfigOption.TARGET_DISCARDS_OBSERVATION); } @@ -305,11 +303,11 @@ public class ShowConfigAction extends AbstractAction { n("observe.config.category.speciesList.seine.description"), ObserveUICallback.ui.name()); - helper.addSpeciesListOption(ObserveConfigOption.SPECIES_LIST_SEINE_TARGET_CATCH_ID); - helper.addSpeciesListOption(ObserveConfigOption.SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID); - helper.addSpeciesListOption(ObserveConfigOption.SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID); - helper.addSpeciesListOption(ObserveConfigOption.SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID); - helper.addSpeciesListOption(ObserveConfigOption.SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID); + helper.addSpeciesListOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_TARGET_CATCH_ID); + helper.addSpeciesListOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID); + helper.addSpeciesListOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID); + helper.addSpeciesListOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID); + helper.addSpeciesListOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID); } @@ -321,8 +319,8 @@ public class ShowConfigAction extends AbstractAction { n("observe.config.category.speciesList.longline.description"), ObserveUICallback.ui.name()); - helper.addSpeciesListOption(ObserveConfigOption.SPECIES_LIST_LONGLINE_CATCH_ID); - helper.addSpeciesListOption(ObserveConfigOption.SPECIES_LIST_LONGLINE_ENCOUNTER_ID); + helper.addSpeciesListOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_LONGLINE_CATCH_ID); + helper.addSpeciesListOption(ObserveSwingApplicationConfigOption.SPECIES_LIST_LONGLINE_ENCOUNTER_ID); } @@ -333,11 +331,11 @@ public class ShowConfigAction extends AbstractAction { n("observe.config.category.map.description"), ObserveUICallback.ui.name()); - helper.addOption(ObserveConfigOption.MAP_BACKGROUND_COLOR); - for (ObserveConfigOption layerOption : ObserveConfigOption.MAP_LAYERS) { + helper.addOption(ObserveSwingApplicationConfigOption.MAP_BACKGROUND_COLOR); + for (ObserveSwingApplicationConfigOption layerOption : ObserveSwingApplicationConfigOption.MAP_LAYERS) { helper.addOption(layerOption); } - helper.addOption(ObserveConfigOption.MAP_STYLE_FILE); + helper.addOption(ObserveSwingApplicationConfigOption.MAP_STYLE_FILE); } @@ -346,13 +344,13 @@ public class ShowConfigAction extends AbstractAction { helper.addCategory(n("observe.config.category.other"), n("observe.config.category.other.description")); - helper.addOption(ObserveConfigOption.SHOW_NUMBER_EDITOR_BUTTON); - helper.addOption(ObserveConfigOption.AUTO_POPUP_NUMBER_EDITOR); - helper.addOption(ObserveConfigOption.SHOW_DATE_TIME_EDITOR_SLIDER); - helper.addOption(ObserveConfigOption.LOAD_LOCAL_STORAGE, ObserveUICallback.application); -// helper.addOption(ObserveConfigOption.FULL_SCREEN, ObserveUICallback.ui); - helper.addOption(ObserveConfigOption.LOCALE, ObserveUICallback.ui); - helper.addOption(ObserveConfigOption.DB_LOCALE, ObserveUICallback.ui); + helper.addOption(ObserveSwingApplicationConfigOption.SHOW_NUMBER_EDITOR_BUTTON); + helper.addOption(ObserveSwingApplicationConfigOption.AUTO_POPUP_NUMBER_EDITOR); + helper.addOption(ObserveSwingApplicationConfigOption.SHOW_DATE_TIME_EDITOR_SLIDER); + helper.addOption(ObserveSwingApplicationConfigOption.LOAD_LOCAL_STORAGE, ObserveUICallback.application); +// helper.addOption(ObserveSwingApplicationConfigOption.FULL_SCREEN, ObserveUICallback.ui); + helper.addOption(ObserveSwingApplicationConfigOption.LOCALE, ObserveUICallback.ui); + helper.addOption(ObserveSwingApplicationConfigOption.DB_LOCALE, ObserveUICallback.ui); } @@ -366,7 +364,7 @@ public class ShowConfigAction extends AbstractAction { SpeciesListsTableCellRenderer renderer; - protected ObserveConfigUIBuilder(ObserveConfig config, + protected ObserveConfigUIBuilder(ObserveSwingApplicationConfig config, SpeciesListTableCellEditor speciesListTableCellEditor, SpeciesListsTableCellRenderer speciesListsTableCellRenderer) { super(config); @@ -380,7 +378,7 @@ public class ShowConfigAction extends AbstractAction { // add the option super.addOption(option); - String beanProperty = ((ObserveConfigOption) option).getPropertyKey(); + String beanProperty = ((ObserveSwingApplicationConfigOption) option).getPropertyKey(); if (StringUtils.isNotEmpty(beanProperty)) { setOptionPropertyName(beanProperty); @@ -390,7 +388,7 @@ public class ShowConfigAction extends AbstractAction { } - public ConfigUIModelBuilder addOption(ObserveConfigOption option, ObserveUICallback callBack) { + public ConfigUIModelBuilder addOption(ObserveSwingApplicationConfigOption option, ObserveUICallback callBack) { addOption(option); setOptionCallBack(callBack.name()); @@ -411,7 +409,7 @@ public class ShowConfigAction extends AbstractAction { } - protected ConfigUIModelBuilder addSpeciesListOption(ObserveConfigOption option) { + protected ConfigUIModelBuilder addSpeciesListOption(ObserveSwingApplicationConfigOption option) { addOption(option) .setOptionPropertyName(option.getPropertyKey()) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowStorageInfoAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowStorageInfoAction.java index ff0c395..346fd9e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowStorageInfoAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/ShowStorageInfoAction.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.actions; * #L% */ -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import jaxx.runtime.SwingUtil; import fr.ird.observe.ui.*; import javax.swing.AbstractAction; @@ -57,7 +57,7 @@ public class ShowStorageInfoAction extends AbstractAction { String text; if (ui.getConfig().isMainStorageOpened()) { - text = ObserveContext.get().getDataSource().toString(); + text = ObserveSwingApplicationContext.get().getDataSource().toString(); } else { text = t("observe.message.db.none.loaded"); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/StartServerModeAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/StartServerModeAction.java index 45d2fa2..2d36f0a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/StartServerModeAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/StartServerModeAction.java @@ -22,19 +22,16 @@ package fr.ird.observe.ui.actions; * #L% */ -import fr.ird.observe.ObserveConfig; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.ui.ObserveMainUI; -import fr.ird.observe.ui.ObserveMainUIHandler; import fr.ird.observe.ui.ObserveUIMode; import jaxx.runtime.SwingUtil; -import jaxx.runtime.swing.ErrorDialogUI; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.AbstractAction; import java.awt.event.ActionEvent; import java.io.File; -import java.sql.SQLException; import static org.nuiton.i18n.I18n.t; @@ -74,7 +71,7 @@ public class StartServerModeAction extends AbstractAction { if (log.isInfoEnabled()) { log.info("Will start server mode..."); } - ObserveConfig config = ui.getConfig(); + ObserveSwingApplicationConfig config = ui.getConfig(); File dbDirectory = new File(config.getLocalDBDirectory(), "obstuna"); String h2Login = config.getH2Login(); String h2Password = new String(config.getH2Password()); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/CloseAndCreateUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/CloseAndCreateUIAction.java index 250ed34..0a9f397 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/CloseAndCreateUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/CloseAndCreateUIAction.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.actions.shared; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.ui.ObserveMainUI; @@ -103,7 +103,7 @@ public class CloseAndCreateUIAction extends AbstractUIAction { // recuperation de l'écran associé ActivitySeineUI selectedUI = (ActivitySeineUI) - ObserveContext.get().getSelectedContentUI(); + ObserveSwingApplicationContext.get().getSelectedContentUI(); // fermeture de l'activity et création d'une nouvelle selectedUI.closeAndCreateData(); @@ -139,7 +139,7 @@ public class CloseAndCreateUIAction extends AbstractUIAction { // recuperation de l'écran associé ActivityLonglineUI selectedUI = (ActivityLonglineUI) - ObserveContext.get().getSelectedContentUI(); + ObserveSwingApplicationContext.get().getSelectedContentUI(); // fermeture de l'activity et création d'une nouvelle selectedUI.closeAndCreateData(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/CloseOpenUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/CloseOpenUIAction.java index d9941cb..5855416 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/CloseOpenUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/CloseOpenUIAction.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.actions.shared; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.ui.ObserveMainUI; @@ -108,7 +108,7 @@ public class CloseOpenUIAction extends AbstractUIAction { // recuperation de l'écran associé ActivitySeineUI selectedUI = (ActivitySeineUI) - ObserveContext.get().getSelectedContentUI(); + ObserveSwingApplicationContext.get().getSelectedContentUI(); // fermeture de l'activity selectedUI.closeData(); @@ -150,7 +150,7 @@ public class CloseOpenUIAction extends AbstractUIAction { // recuperation de l'écran associé ActivityLonglineUI selectedUI = (ActivityLonglineUI) - ObserveContext.get().getSelectedContentUI(); + ObserveSwingApplicationContext.get().getSelectedContentUI(); // fermeture de l'activity selectedUI.closeData(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/ReOpenUIAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/ReOpenUIAction.java index c457766..00ca65b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/ReOpenUIAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/shared/ReOpenUIAction.java @@ -21,8 +21,7 @@ */ package fr.ird.observe.ui.actions.shared; -import fr.ird.observe.ObserveContext; -import fr.ird.observe.services.dto.AbstractObserveDto; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.content.ContentUI; @@ -94,7 +93,7 @@ public class ReOpenUIAction extends AbstractUIAction { treeHelper.selectNode(node); openUI = (ContentOpenableUI<?>) - ObserveContext.get().getSelectedContentUI(); + ObserveSwingApplicationContext.get().getSelectedContentUI(); } else { throw new IllegalStateException("The action " + ACTION_NAME + " can not be executed from ui " + ui); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminStep.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminStep.java index f1bf638..395f0bf 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminStep.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminStep.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.admin; -import fr.ird.observe.business.db.constants.DbMode; +import fr.ird.observe.db.constantes.DbMode; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.admin.config.ConfigUI; import fr.ird.observe.ui.admin.config.SelectDataUI; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUI.jaxx index 5170c4a..1f9553d 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUI.jaxx @@ -28,7 +28,7 @@ implements='jaxx.runtime.swing.wizard.WizardStepUI<AdminStep, AdminUIModel>, java.beans.PropertyChangeListener'> <import> - fr.ird.observe.ObserveConfig + fr.ird.observe.configuration.ObserveSwingApplicationConfig fr.ird.observe.ui.UIHelper fr.ird.observe.ui.admin.* fr.ird.observe.ui.storage.StorageUIModel @@ -52,8 +52,8 @@ <StorageUIModel id='centralSourceModel' initializer='getModel().getCentralSourceModel()'/> - <ObserveConfig id='observeConfig' - initializer='getContextValue(ObserveConfig.class)'/> + <ObserveSwingApplicationConfig id='observeConfig' + initializer='getContextValue(ObserveSwingApplicationConfig.class)'/> <AdminTabUIHandler id='handler' initializer='null'/> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUIHandler.java index 1177f43..ba2a818 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUIHandler.java @@ -21,9 +21,9 @@ */ package fr.ird.observe.ui.admin; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.BinderService; import fr.ird.observe.business.DecoratorService; -import fr.ird.observe.ObserveContext; import fr.ird.observe.ObserveRunner; import fr.ird.observe.business.SendMessageAble; import fr.ird.observe.business.db.DataSource; @@ -39,7 +39,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.JTree; -import javax.swing.tree.TreeModel; import java.io.PrintWriter; import java.io.StringWriter; import java.util.concurrent.Callable; @@ -142,7 +141,7 @@ public class AdminTabUIHandler implements SendMessageAble { public final DecoratorService getDecoratorService() { if (decoratorService == null) { - decoratorService = ObserveContext.get().getDecoratorService(); + decoratorService = ObserveSwingApplicationContext.get().getDecoratorService(); } return decoratorService; } @@ -157,14 +156,14 @@ public class AdminTabUIHandler implements SendMessageAble { public final BinderService getBinderService() { if (binderService == null) { - binderService = ObserveContext.get().getBinderService(); + binderService = ObserveSwingApplicationContext.get().getBinderService(); } return binderService; } public final GPSService getGpsService() { if (gpsService == null) { - gpsService = ObserveContext.get().getGPSService(); + gpsService = ObserveSwingApplicationContext.get().getGPSService(); } return gpsService; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUILauncher.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUILauncher.java index d8dd3d9..cc33110 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUILauncher.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUILauncher.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.admin; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.DataSource; import fr.ird.observe.business.db.DataSourceConfig; import fr.ird.observe.ui.ObserveMainUI; @@ -136,7 +136,7 @@ public class AdminUILauncher extends WizardUILancher<AdminStep, AdminUIModel, Ad protected Component getParent(AdminUI ui) { - ObserveMainUI mainUI = ObserveContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); ImageIcon icon = (ImageIcon) ui.getClientProperty("icon"); if (mainUI == null) { // pas de fenetre detectee @@ -178,7 +178,7 @@ public class AdminUILauncher extends WizardUILancher<AdminStep, AdminUIModel, Ad protected void start(final AdminUI ui) { super.start(ui); - ObserveMainUI mainUI = ObserveContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); String title = (String) ui.getClientProperty("title"); @@ -245,7 +245,7 @@ public class AdminUILauncher extends WizardUILancher<AdminStep, AdminUIModel, Ad if (log.isInfoEnabled()) { log.info("After dispose."); } - ObserveContext.get().releaseLock(); + ObserveSwingApplicationContext.get().releaseLock(); return; } @@ -277,7 +277,7 @@ public class AdminUILauncher extends WizardUILancher<AdminStep, AdminUIModel, Ad // (PGDataSourceConfig) sourceConfig); // on attache la source a l'ui - ObserveContext.get().prepareMainStorage(source); + ObserveSwingApplicationContext.get().prepareMainStorage(source); source.doOpen(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java index 467e13c..cfa086b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java @@ -21,14 +21,14 @@ */ package fr.ird.observe.ui.admin; -import fr.ird.observe.ObserveConfig; import fr.ird.observe.business.db.DataSource; import fr.ird.observe.business.db.DataSourceConfig; import fr.ird.observe.business.db.DataSourceException; -import fr.ird.observe.business.db.constants.DbMode; import fr.ird.observe.business.report.model.Report; import fr.ird.observe.business.validation.ValidationModelMode; import fr.ird.observe.business.validation.ValidatorsMap; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; +import fr.ird.observe.db.constantes.DbMode; import fr.ird.observe.ui.admin.consolidate.ConsolidateModel; import fr.ird.observe.ui.admin.export.ExportModel; import fr.ird.observe.ui.admin.gps.ImportGPSModel; @@ -48,7 +48,6 @@ import org.nuiton.validator.NuitonValidatorScope; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; -import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.EnumSet; @@ -104,7 +103,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { // protected DataService dataService; /** configuration de l'application */ - protected ObserveConfig config; + protected ObserveSwingApplicationConfig config; /** selection des donnees a valider */ //FIXME @@ -425,7 +424,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { // return dataService; // } - public ObserveConfig getConfig() { + public ObserveSwingApplicationConfig getConfig() { return config; } @@ -496,7 +495,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { storageHandler = ui.getContextValue(StorageUIHandler.class); //FIXME // dataService = ui.getContextValue(DataService.class); - config = ui.getContextValue(ObserveConfig.class); + config = ui.getContextValue(ObserveSwingApplicationConfig.class); // demarrage du modèle : on fixe ici une fois pour toute les liste // des onglets visibles @@ -631,6 +630,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { centralSourceModel.setCanCreateLocalService(false); centralSourceModel.setCanUseLocalService(false); centralSourceModel.setCanUseRemoteService(true); + centralSourceModel.setCanUseServerService(true); centralSourceModel.start(DbMode.USE_REMOTE); if (log.isDebugEnabled()) { @@ -716,6 +716,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { localSourceModel.setCanCreateLocalService(modes.contains(DbMode.CREATE_LOCAL)); localSourceModel.setCanUseLocalService(modes.contains(DbMode.USE_LOCAL)); localSourceModel.setCanUseRemoteService(modes.contains(DbMode.USE_REMOTE)); + localSourceModel.setCanUseServerService(modes.contains(DbMode.USE_SERVER)); if (previousSource == null) { @@ -1320,17 +1321,13 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { protected DataSource createService(StorageUIModel model) { - try { - DataSource service = storageHandler.newServiceFromModel( - model, - false, - n("observe.storage.label.local"), - n("observe.storage.label.remote") - ); - return service; - } catch (IOException e) { - throw new IllegalStateException("Could not create service for " + model, e); - } + // FIXME +// ObserveDataSourceConfiguration service = storageHandler.newDataSourceConfigurationFromModel( +// model, +// n("observe.storage.label.local") +// ); +// return service; + return null; } protected void doOpenSource(DataSource source) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/config/ConfigUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/config/ConfigUIHandler.java index 6151069..5a00e47 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/config/ConfigUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/config/ConfigUIHandler.java @@ -21,8 +21,6 @@ */ package fr.ird.observe.ui.admin.config; -import fr.ird.observe.business.db.DataSourceConfig; -import fr.ird.observe.business.db.constants.DbMode; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.admin.AdminStep; import fr.ird.observe.ui.admin.AdminTabUI; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/gps/GPSActivityTableModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/gps/GPSActivityTableModel.java index 65b0701..e53268f 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/gps/GPSActivityTableModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/gps/GPSActivityTableModel.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.admin.gps; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.gps.GPSPoint; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import org.nuiton.decorator.Decorator; @@ -74,7 +74,7 @@ public class GPSActivityTableModel extends AbstractTableModel { public GPSActivityTableModel() { selected = new HashSet<Integer>(); - decorator = ObserveContext.get().getDecorator(ActivitySeineDto.class, + decorator = ObserveSwingApplicationContext.get().getDecorator(ActivitySeineDto.class, "gps-activity"); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/gps/ImportGPSConfigUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/gps/ImportGPSConfigUI.jaxx index bf0179c..f33cc10 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/gps/ImportGPSConfigUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/gps/ImportGPSConfigUI.jaxx @@ -26,7 +26,7 @@ <Table id="importGPSConfig"> <import> - fr.ird.observe.ObserveConfig + fr.ird.observe.configuration.ObserveSwingApplicationConfig fr.ird.observe.ui.admin.AdminUIModel jaxx.runtime.swing.editor.NumberEditor @@ -43,8 +43,8 @@ <ImportGPSModel id='gpsModel' initializer='model.getImportGPSModel()'/> - <ObserveConfig id='config' - initializer='getContextValue(ObserveConfig.class)'/> + <ObserveSwingApplicationConfig id='config' + initializer='getContextValue(ObserveSwingApplicationConfig.class)'/> <script><![CDATA[ public void destroy() { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/synchronize/ObsoleteEntityListCellRenderer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/synchronize/ObsoleteEntityListCellRenderer.java index 23b99d5..2ddca0a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/synchronize/ObsoleteEntityListCellRenderer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/synchronize/ObsoleteEntityListCellRenderer.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.admin.synchronize; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.DecoratorService; import fr.ird.observe.services.dto.AbstractObserveDto; import org.nuiton.decorator.Decorator; @@ -41,7 +41,7 @@ public class ObsoleteEntityListCellRenderer extends DefaultListCellRenderer { public DecoratorService getDecoratorService() { if (decoratorService == null) { - decoratorService = ObserveContext.get().getDecoratorService(); + decoratorService = ObserveSwingApplicationContext.get().getDecoratorService(); } return decoratorService; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateConfigUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateConfigUI.jaxx index f7e4b0f..b71b533 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateConfigUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateConfigUI.jaxx @@ -26,7 +26,7 @@ <JPanel id="validateConfig"> <import> - fr.ird.observe.ObserveConfig + fr.ird.observe.configuration.ObserveSwingApplicationConfig fr.ird.observe.ui.admin.AdminUIModel fr.ird.observe.business.validation.ValidationModelMode @@ -46,8 +46,8 @@ <ValidateModel id='validateModel' initializer='model.getValidateModel()'/> - <ObserveConfig id='config' - initializer='getContextValue(ObserveConfig.class)'/> + <ObserveSwingApplicationConfig id='config' + initializer='getContextValue(ObserveSwingApplicationConfig.class)'/> <ButtonGroup id='validateContentModel' onStateChanged='validateModel.setModelMode((ValidationModelMode) validateContentModel.getSelectedValue())'/> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateEntityListCellRenderer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateEntityListCellRenderer.java index baf70db..a2ee341 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateEntityListCellRenderer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateEntityListCellRenderer.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.admin.validate; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.DecoratorService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -81,7 +81,7 @@ public class ValidateEntityListCellRenderer extends DefaultListCellRenderer impl public DecoratorService getService() { if (service == null) { - service = ObserveContext.get().getDecoratorService(); + service = ObserveSwingApplicationContext.get().getDecoratorService(); } return service; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateModel.java index 9ba477c..bbef147 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateModel.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.admin.validate; -import fr.ird.observe.ObserveConfig; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.business.validation.ValidationModelMode; import fr.ird.observe.business.validation.ValidationService; import fr.ird.observe.business.validation.ValidatorsMap; @@ -97,10 +97,10 @@ public class ValidateModel extends AdminActionModel { /** * @return le lastName par defaut du fichier de sauvegarde de la base locale * (expression calculée à partir de la date courante et du pattern - * {@link ObserveConfig#REPORT_PATTERN}). + * {@link ObserveSwingApplicationConfig#REPORT_PATTERN}). */ public String getDefaultReportFilename() { - return String.format(ObserveConfig.REPORT_PATTERN, new Date()); + return String.format(ObserveSwingApplicationConfig.REPORT_PATTERN, new Date()); } public String getContextName() { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateUIHandler.java index 497decf..5ee046b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/validate/ValidateUIHandler.java @@ -23,7 +23,7 @@ package fr.ird.observe.ui.admin.validate; import com.google.common.base.Charsets; import fr.ird.observe.business.DecoratorService; -import fr.ird.observe.business.ObserveServiceHelper; +import fr.ird.observe.ObserveServiceHelper; import fr.ird.observe.business.db.DataSource; import fr.ird.observe.business.validation.ValidationContext; import fr.ird.observe.business.validation.ValidationMessageDetector; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUI.jaxx index 90dfd90..04e5c42 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUI.jaxx @@ -36,8 +36,8 @@ <import> fr.ird.observe.business.db.DataContext fr.ird.observe.business.db.DataSource - fr.ird.observe.ObserveConfig - fr.ird.observe.ObserveContext + fr.ird.observe.configuration.ObserveSwingApplicationConfig + fr.ird.observe.ObserveSwingApplicationContext fr.ird.observe.ui.actions.shared.GoUpUIAction fr.ird.observe.ui.actions.shared.GoDownUIAction fr.ird.observe.ui.tree.ObserveTreeHelper @@ -54,8 +54,8 @@ javax.swing.UIManager </import> - <ObserveConfig id='config' - initializer='getContextValue(ObserveConfig.class)'/> + <ObserveSwingApplicationConfig id='config' + initializer='getContextValue(ObserveSwingApplicationConfig.class)'/> <SwingValidatorMessageTableModel id='errorTableModel' initializer='getContextValue(SwingValidatorMessageTableModel.class)'/> @@ -65,7 +65,7 @@ <!--initializer='getContextValue(DataService.class)'/>--> <DataSource id='dataSource' - initializer='ObserveContext.get().getDataSource()'/> + initializer='ObserveSwingApplicationContext.get().getDataSource()'/> <DataContext id='dataContext' javaBean='getContextValue(DataContext.class)'/> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java index 403dac5..1092d20 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java @@ -21,10 +21,10 @@ */ package fr.ird.observe.ui.content; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.BinderService; import fr.ird.observe.business.DecoratorService; -import fr.ird.observe.business.ObserveServiceHelper; +import fr.ird.observe.ObserveServiceHelper; import fr.ird.observe.business.ObserveTechnicalException; import fr.ird.observe.business.db.DataContext; import fr.ird.observe.business.db.DataSource; @@ -339,12 +339,12 @@ public abstract class ContentUIHandler<E extends AbstractObserveDto> { } public DecoratorService getDecoratorService() { - DecoratorService result = ObserveContext.get().getDecoratorService(); + DecoratorService result = ObserveSwingApplicationContext.get().getDecoratorService(); return result; } public BinderService getBinderService() { - return ObserveContext.get().getBinderService(); + return ObserveSwingApplicationContext.get().getBinderService(); } protected DataSource getDataSource() { @@ -763,7 +763,7 @@ public abstract class ContentUIHandler<E extends AbstractObserveDto> { updateToolbarActions(); - ActionMap actionMap = ObserveContext.get().getActionMap(); + ActionMap actionMap = ObserveSwingApplicationContext.get().getActionMap(); for (String name : ui.get$objectMap().keySet()) { Object o = ui.getObjectById(name); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java index 2e7fdae..c026403 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIInitializer.java @@ -24,7 +24,7 @@ package fr.ird.observe.ui.content; import com.google.common.base.Predicate; import com.google.common.collect.Lists; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.DecoratorService; import fr.ird.observe.business.db.DataSource; import fr.ird.observe.business.db.DataSourceException; @@ -185,7 +185,7 @@ public class ContentUIInitializer<E extends AbstractObserveDto, UI extends Obser log.debug("ui " + getClass()); } - ActionMap actionMap = ObserveContext.get().getActionMap(); + ActionMap actionMap = ObserveSwingApplicationContext.get().getActionMap(); // initialisation des éditeurs @@ -193,7 +193,7 @@ public class ContentUIInitializer<E extends AbstractObserveDto, UI extends Obser Set<String> doNotBlockComponentIds = new HashSet<String>(); - DecoratorService decoratorService = ObserveContext.get().getDecoratorService(); + DecoratorService decoratorService = ObserveSwingApplicationContext.get().getDecoratorService(); for (String name : ui.get$objectMap().keySet()) { Object o = ui.getObjectById(name); @@ -625,7 +625,7 @@ public class ContentUIInitializer<E extends AbstractObserveDto, UI extends Obser Class<E> entityClass, FilterableDoubleList<E> list) throws DataSourceException { - ObserveContext tx = ObserveContext.get(); + ObserveSwingApplicationContext tx = ObserveSwingApplicationContext.get(); // init list Decorator<E> decorator = tx.getDecorator(entityClass); @@ -685,7 +685,7 @@ public class ContentUIInitializer<E extends AbstractObserveDto, UI extends Obser Class<E> entityClass, BeanListHeader<E> list) throws DataSourceException { - ObserveContext tx = ObserveContext.get(); + ObserveSwingApplicationContext tx = ObserveSwingApplicationContext.get(); // init list Decorator<E> decorator = tx.getDecorator(entityClass); @@ -745,7 +745,7 @@ public class ContentUIInitializer<E extends AbstractObserveDto, UI extends Obser Class<E> entityClass, BeanComboBox<E> comboBox) throws DataSourceException { - ObserveContext context = ObserveContext.get(); + ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); // init combobox Decorator<E> decorator = context.getDecorator(entityClass); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUI.jaxx index 115c5f0..14a70be 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUI.jaxx @@ -24,7 +24,7 @@ contentTitle='{n("observe.longlineDetailComposition.title")}'> <import> - fr.ird.observe.ObserveContext + fr.ird.observe.ObserveSwingApplicationContext fr.ird.observe.services.dto.longline.SetLonglineDto fr.ird.observe.ui.actions.shared.ResetEditUIAction fr.ird.observe.ui.actions.shared.SaveEditUIAction @@ -174,7 +174,7 @@ <Table fill="both" constraints='BorderLayout.NORTH'> <row> <cell weightx="1" fill="both" weighty="1"> - <BranchlineUI id="branchlineDetailUI" constructorParams="ObserveContext.get().getObserveMainUI()"/> + <BranchlineUI id="branchlineDetailUI" constructorParams="ObserveSwingApplicationContext.get().getObserveMainUI()"/> </cell> </row> </Table> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUIHandler.java index c4fd323..be72bc5 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionUIHandler.java @@ -22,11 +22,9 @@ package fr.ird.observe.ui.content.impl.longline; * #L% */ -import fr.ird.observe.ObserveContext; -import fr.ird.observe.business.ObserveTechnicalException; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.DataContext; import fr.ird.observe.business.db.DataSource; -import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.entities.longline.SectionTemplate; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; @@ -54,10 +52,8 @@ import javax.swing.event.TableModelListener; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; -import java.util.Collections; import java.util.LinkedHashSet; import java.util.List; -import java.util.Map; import static org.nuiton.i18n.I18n.t; @@ -785,7 +781,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong } - ObserveMainUI mainUI = ObserveContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); int response = UIHelper.askUser(mainUI, t("observe.title.delete"), t("observe.sections.delete.message"), @@ -835,7 +831,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong // log.info("Delete: " + data); // } - ObserveMainUI mainUI = ObserveContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); int response = UIHelper.askUser(mainUI, t("observe.title.delete"), t("observe.sectionTemplate.delete.message"), @@ -877,7 +873,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong // // boolean accept = UIHelper.confirmForEntityDelete(ui, Section.class, selectedSection); - ObserveMainUI mainUI = ObserveContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); mainUI.setBusy(false); //FIXME @@ -965,7 +961,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong } boolean accept = UIHelper.confirmForEntityDelete(ui, BasketDto.class, selectedBasket); - ObserveMainUI mainUI = ObserveContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); mainUI.setBusy(false); if (!accept) { @@ -1073,7 +1069,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong } boolean accept = UIHelper.confirmForEntityDelete(ui, BranchlineDto.class, selectedBranchline); - ObserveMainUI mainUI = ObserveContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); mainUI.setBusy(false); if (!accept) { return; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineGlobalCompositionUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineGlobalCompositionUI.jaxx index 586b563..eb9c810 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineGlobalCompositionUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineGlobalCompositionUI.jaxx @@ -24,7 +24,7 @@ contentTitle='{n("observe.longlineGlobalComposition.title")}'> <import> - fr.ird.observe.ObserveContext + fr.ird.observe.ObserveSwingApplicationContext fr.ird.observe.services.dto.CommentableDto fr.ird.observe.services.dto.longline.SetLonglineDto fr.ird.observe.services.dto.referential.longline.MitigationTypeDto @@ -77,7 +77,7 @@ <tab id='floatlinesCompositionTab'> <JPanel id="floatlinesCompositionPanel" layout='{new BorderLayout()}'> <FloatlinesCompositionUI id="floatlinesCompositionUI" - constructorParams="ObserveContext.get().getObserveMainUI()"/> + constructorParams="ObserveSwingApplicationContext.get().getObserveMainUI()"/> </JPanel> </tab> @@ -85,7 +85,7 @@ <tab id='branchlinesCompositionTab'> <JPanel id="branchlinesCompositionPanel" layout='{new BorderLayout()}'> <BranchlinesCompositionUI id="branchlinesCompositionUI" - constructorParams="ObserveContext.get().getObserveMainUI()"/> + constructorParams="ObserveSwingApplicationContext.get().getObserveMainUI()"/> </JPanel> </tab> @@ -93,7 +93,7 @@ <tab id='hooksCompositionTab'> <JPanel id="hooksCompositionPanel" layout='{new BorderLayout()}'> <HooksCompositionUI id="hooksCompositionUI" - constructorParams="ObserveContext.get().getObserveMainUI()"/> + constructorParams="ObserveSwingApplicationContext.get().getObserveMainUI()"/> </JPanel> </tab> @@ -101,7 +101,7 @@ <tab id='baitsCompositionTab'> <JPanel id="baitsCompositionPanel" layout='{new BorderLayout()}'> <BaitsCompositionUI id="baitsCompositionUI" - constructorParams="ObserveContext.get().getObserveMainUI()"/> + constructorParams="ObserveSwingApplicationContext.get().getObserveMainUI()"/> </JPanel> </tab> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java index 6b9e413..3ccdb75 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java @@ -21,7 +21,6 @@ */ package fr.ird.observe.ui.content.open; -import fr.ird.observe.business.ObserveServiceHelper; import fr.ird.observe.business.db.DataSource; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.OpenableDto; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java index fb08b00..c50b765 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java @@ -22,11 +22,10 @@ package fr.ird.observe.ui.content.open.impl.longline; * #L% */ -import fr.ird.observe.ObserveConfig; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.business.db.DataContext; import fr.ird.observe.business.db.DataSource; import fr.ird.observe.business.db.constants.DataContextType; -import fr.ird.observe.services.dto.longline.ActivityLonglineDtos; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.open.ContentOpenableUIHandler; @@ -97,7 +96,7 @@ public class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLongline TripLonglineUI ui = getUi(); TripMapUI tripMap = ui.getTripMap(); - ObserveConfig config = ui.getContextValue(ObserveConfig.class); + ObserveSwingApplicationConfig config = ui.getContextValue(ObserveSwingApplicationConfig.class); tripMap.getHandler().setConfig(config); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java index d121325..a5145d4 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java @@ -21,11 +21,8 @@ */ package fr.ird.observe.ui.content.open.impl.seine; -import fr.ird.observe.ObserveContext; -import fr.ird.observe.business.ObserveTechnicalException; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.DataContext; -import fr.ird.observe.business.db.DataSource; -import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.referential.seine.VesselActivitySeineDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; @@ -36,14 +33,11 @@ import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.open.ContentOpenableUIHandler; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; -import org.apache.commons.lang3.time.DateUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.util.DateUtil; import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JOptionPane; -import java.util.Date; import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; @@ -461,7 +455,7 @@ public class RouteUIHandler extends ContentOpenableUIHandler<RouteDto> { // on recupère l'écran d'édition ActivitySeineUI selectedUI = (ActivitySeineUI) - ObserveContext.get().getSelectedContentUI(); + ObserveSwingApplicationContext.get().getSelectedContentUI(); // on recupère l'activity de fin de veille VesselActivitySeineDto vesselActivitySeine = null; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java index 7c964ae..9b4e2d7 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.content.open.impl.seine; -import fr.ird.observe.ObserveConfig; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.business.db.DataContext; import fr.ird.observe.business.db.DataSource; import fr.ird.observe.business.db.constants.DataContextType; @@ -96,7 +96,7 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto> { TripSeineUI ui = getUi(); TripMapUI tripMap = ui.getTripMap(); - ObserveConfig config = ui.getContextValue(ObserveConfig.class); + ObserveSwingApplicationConfig config = ui.getContextValue(ObserveSwingApplicationConfig.class); tripMap.getHandler().setConfig(config); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIHandler.java index e3c78ff..f0e9145 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIHandler.java @@ -21,9 +21,9 @@ */ package fr.ird.observe.ui.content.ref; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.DecoratorService; -import fr.ird.observe.business.ObserveServiceHelper; +import fr.ird.observe.ObserveServiceHelper; import fr.ird.observe.business.db.DataContext; import fr.ird.observe.business.db.DataSource; import fr.ird.observe.business.validation.ValidationContext; @@ -35,7 +35,6 @@ import fr.ird.observe.services.dto.referential.VesselSizeCategoryDto; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIHandler; -import fr.ird.observe.ui.tree.ObserveTreeHelper; import fr.ird.observe.ui.usage.UsagesUI; import fr.ird.observe.ui.util.SpringUtilities; import jaxx.runtime.JAXXContext; @@ -48,14 +47,12 @@ import org.nuiton.decorator.Decorator; import javax.swing.*; import javax.swing.border.TitledBorder; -import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.TableCellRenderer; import java.awt.*; import java.beans.Introspector; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.Map; @@ -103,7 +100,7 @@ public class ContentReferenceUIHandler<E extends ReferentialDto> extends Content E entity, Map<Class<? extends IdDto>, List<? extends IdDto>> usages) { - DecoratorService service = ObserveContext.get().getDecoratorService(); + DecoratorService service = ObserveSwingApplicationContext.get().getDecoratorService(); Decorator<?> decorator = service.getDecoratorByType(entity.getClass()); String type = DecoratorService.getEntityLabel(entity.getClass()); type = t(type); @@ -131,7 +128,7 @@ public class ContentReferenceUIHandler<E extends ReferentialDto> extends Content E entity, Map<Class<? extends IdDto>, List<? extends IdDto>> usages) { - DecoratorService service = ObserveContext.get().getDecoratorService(); + DecoratorService service = ObserveSwingApplicationContext.get().getDecoratorService(); Decorator<?> decorator = service.getDecoratorByType(entity.getClass()); String type = DecoratorService.getEntityLabel(entity.getClass()); type = t(type); @@ -322,7 +319,7 @@ public class ContentReferenceUIHandler<E extends ReferentialDto> extends Content // } // return; // } - DecoratorService dService = ObserveContext.get().getDecoratorService(); + DecoratorService dService = ObserveSwingApplicationContext.get().getDecoratorService(); Decorator<?> decorator = dService.getDecoratorByType(bean.getClass()); String type = DecoratorService.getEntityLabel(bean.getClass()); type = t(type); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferentialContentUIInitializer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferentialContentUIInitializer.java index 3d2430b..de348d8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferentialContentUIInitializer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferentialContentUIInitializer.java @@ -23,12 +23,11 @@ package fr.ird.observe.ui.content.ref; */ import com.google.common.base.Predicate; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.DecoratorService; -import fr.ird.observe.ObserveContext; import fr.ird.observe.business.db.DataSource; import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.services.dto.AbstractObserveDto; -import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.ui.content.ContentUIInitializer; import fr.ird.observe.ui.content.ObserveContentUI; @@ -79,7 +78,7 @@ public class ReferentialContentUIInitializer<E extends ReferentialDto, UI extend // TopiaEntityBinder<E> loador ) throws DataSourceException { - ObserveContext tx = ObserveContext.get(); + ObserveSwingApplicationContext tx = ObserveSwingApplicationContext.get(); // init list Decorator<E> decorator = tx.getDecorator(entityClass); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/UniqueKeyTableModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/UniqueKeyTableModel.java index 53349e0..6fa1640 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/UniqueKeyTableModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/UniqueKeyTableModel.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.content.ref; import fr.ird.observe.business.DecoratorService; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import javax.swing.table.AbstractTableModel; import java.util.List; @@ -53,7 +53,7 @@ public class UniqueKeyTableModel extends AbstractTableModel { public DecoratorService getDecoratorService() { if (decoratorService == null) { - decoratorService = ObserveContext.get().getDecoratorService(); + decoratorService = ObserveSwingApplicationContext.get().getDecoratorService(); } return decoratorService; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java index 031cef8..06bfdd8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java @@ -21,20 +21,16 @@ */ package fr.ird.observe.ui.content.table; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.DataContext; import fr.ird.observe.business.db.DataSource; import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.AbstractObserveDto; import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIHandler; -import fr.ird.observe.ui.content.ObserveContentUI; import fr.ird.observe.ui.tree.ObserveNode; -import jaxx.runtime.swing.ErrorDialogUI; -import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.validator.NuitonValidatorScope; @@ -45,11 +41,7 @@ import javax.swing.SwingUtilities; import javax.swing.event.ListSelectionEvent; import javax.swing.table.DefaultTableCellRenderer; import java.awt.Rectangle; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; import java.util.List; -import java.util.Map; import java.util.Set; import static org.nuiton.i18n.I18n.n; @@ -356,7 +348,7 @@ public abstract class ContentTableUIHandler<E extends AbstractObserveDto, D exte } finally { // always reset busy model to false - ObserveContext.get().getObserveMainUI().setBusy(false); + ObserveSwingApplicationContext.get().getObserveMainUI().setBusy(false); } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java index 8e74724..6b9825e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java @@ -23,12 +23,8 @@ package fr.ird.observe.ui.content.table.impl.longline; */ import fr.ird.observe.business.DecoratorService; -import fr.ird.observe.ObserveConfig; -import fr.ird.observe.ObserveContext; -import fr.ird.observe.business.ObserveTechnicalException; -import fr.ird.observe.business.db.DataContext; -import fr.ird.observe.business.db.DataSource; -import fr.ird.observe.business.db.DataSourceException; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.longline.BasketDto; @@ -44,11 +40,9 @@ import fr.ird.observe.services.dto.referential.longline.HealthnessDto; import fr.ird.observe.services.dto.referential.longline.SizeMeasureTypeDto; import fr.ird.observe.services.dto.referential.longline.WeightMeasureTypeDto; import fr.ird.observe.ui.UIHelper; -import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIInitializer; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIHandler; -import jaxx.runtime.context.JAXXContextEntryDef; import jaxx.runtime.validator.swing.SwingValidator; import jaxx.runtime.validator.swing.SwingValidatorMessage; import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; @@ -65,8 +59,6 @@ import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableCellRenderer; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; -import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -388,7 +380,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineDto UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, SizeMeasureTypeDto.class)); UIHelper.setTableColumnRenderer(table, 1, UIHelper.newEmptyNumberTableCellRenderer(renderer)); - Decorator<SizeMeasureTypeDto> decorator = ObserveContext.get().getDecorator(SizeMeasureTypeDto.class); + Decorator<SizeMeasureTypeDto> decorator = ObserveSwingApplicationContext.get().getDecorator(SizeMeasureTypeDto.class); //FIXME // List<SizeMeasureTypeDto> list; @@ -419,7 +411,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineDto UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, WeightMeasureTypeDto.class)); UIHelper.setTableColumnRenderer(table, 1, UIHelper.newEmptyNumberTableCellRenderer(renderer)); - Decorator<WeightMeasureTypeDto> decorator = ObserveContext.get().getDecorator(WeightMeasureTypeDto.class); + Decorator<WeightMeasureTypeDto> decorator = ObserveSwingApplicationContext.get().getDecorator(WeightMeasureTypeDto.class); //FIXME // List<WeightMeasureType> list; @@ -457,7 +449,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineDto public void initUI() throws Exception { // add a listPredicate to get only species from the correct configured speciesList - ObserveConfig config = getUi().getContextValue(ObserveConfig.class); + ObserveSwingApplicationConfig config = getUi().getContextValue(ObserveSwingApplicationConfig.class); { String speciesListId = config.getSpeciesListLonglineCatchId(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/EncounterUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/EncounterUIHandler.java index 7dc101d..9ade682 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/EncounterUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/EncounterUIHandler.java @@ -22,9 +22,7 @@ package fr.ird.observe.ui.content.table.impl.longline; * #L% */ -import fr.ird.observe.ObserveConfig; -import fr.ird.observe.business.db.DataContext; -import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.EncounterDto; @@ -100,7 +98,7 @@ public class EncounterUIHandler extends ContentTableUIHandler<ActivityLonglineDt public void initUI() throws Exception { // add a listPredicate to get only species from the correct configured speciesList - ObserveConfig config = getUi().getContextValue(ObserveConfig.class); + ObserveSwingApplicationConfig config = getUi().getContextValue(ObserveSwingApplicationConfig.class); String speciesListId = config.getSpeciesListLonglineEncounterId(); prepareSpeciesList(speciesListId, getUi().getSpecies() , n("observe.error.speciesList.longline.encounter.notFound")); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java index bf68ba1..7308f70 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java @@ -22,11 +22,8 @@ package fr.ird.observe.ui.content.table.impl.longline; * #L% */ -import fr.ird.observe.ObserveContext; -import fr.ird.observe.business.ObserveTechnicalException; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.DataContext; -import fr.ird.observe.business.db.DataSource; -import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto; import fr.ird.observe.services.dto.longline.GearUseFeaturesMeasurementLonglineDto; @@ -36,7 +33,6 @@ import fr.ird.observe.services.dto.referential.GearDto; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; -import fr.ird.observe.ui.content.ContentUIInitializer; import fr.ird.observe.ui.content.table.ContentTableUIHandler; import fr.ird.observe.ui.content.table.impl.seine.GearUseFeatureMeasurementCellEditor; import fr.ird.observe.ui.content.table.impl.seine.GearUseFeatureMeasurementCellRenderer; @@ -64,8 +60,6 @@ import java.awt.Insets; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -246,7 +240,7 @@ public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<Trip table.getTableHeader().setReorderingAllowed(false); - Decorator<GearCaracteristicDto> decorator = ObserveContext.get().getDecorator(GearCaracteristicDto.class); + Decorator<GearCaracteristicDto> decorator = ObserveSwingApplicationContext.get().getDecorator(GearCaracteristicDto.class); //FIXME // List<GearCaracteristic> list; @@ -373,7 +367,7 @@ public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<Trip log.info("Delete: " + data); } - ObserveMainUI mainUI = ObserveContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); int response = UIHelper.askUser(mainUI, t("observe.title.delete"), t("observe.measurement.delete.message"), diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/SensorUsedUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/SensorUsedUIHandler.java index 83ee3ca..8902005 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/SensorUsedUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/SensorUsedUIHandler.java @@ -25,11 +25,8 @@ package fr.ird.observe.ui.content.table.impl.longline; import com.google.common.base.Predicate; import com.google.common.io.FileWriteMode; import com.google.common.io.Files; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.ObserveTechnicalException; -import fr.ird.observe.business.db.DataContext; -import fr.ird.observe.business.db.DataSource; -import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.SensorUsedDto; @@ -147,7 +144,7 @@ public class SensorUsedUIHandler extends ContentTableUIHandler<ActivityLonglineD getTableEditBean().setData(serialBlob); getTableEditBean().setDataFilename(file.getName()); - ObserveMainUI mainUI = ObserveContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); mainUI.getStatus().setStatus(t("observe.sensorUsed.message.data.imported", file)); } catch (IOException e) { @@ -225,7 +222,7 @@ public class SensorUsedUIHandler extends ContentTableUIHandler<ActivityLonglineD IOUtils.copy(binaryStream, outputstream); outputstream.close(); - ObserveMainUI mainUI = ObserveContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); mainUI.getStatus().setStatus(t("observe.sensorUsed.message.data.exported", file)); } catch (IOException e) { throw new ObserveTechnicalException("Could not save binary data to " + file, e); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java index 5632352..4c657f7 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java @@ -25,22 +25,17 @@ package fr.ird.observe.ui.content.table.impl.longline; import com.google.common.base.Predicate; import com.google.common.io.FileWriteMode; import com.google.common.io.Files; -import fr.ird.observe.ObserveConfig; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.business.ObserveTechnicalException; -import fr.ird.observe.business.db.DataContext; -import fr.ird.observe.business.db.DataSource; -import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.services.dto.longline.TdrDto; import fr.ird.observe.services.dto.referential.longline.SensorBrandDto; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.UIHelper; -import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIHandler; -import jaxx.runtime.context.JAXXContextEntryDef; import jaxx.runtime.swing.HidorButton; import jaxx.runtime.validator.swing.SwingValidatorMessage; import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; @@ -68,7 +63,6 @@ import java.io.OutputStream; import java.sql.SQLException; import java.util.Date; import java.util.HashSet; -import java.util.List; import java.util.Set; import static org.nuiton.i18n.I18n.n; @@ -208,7 +202,7 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLonglineDto, TdrDto> public void initUI() throws Exception { // add a listPredicate to get only species from the correct configured speciesList - ObserveConfig config = getUi().getContextValue(ObserveConfig.class); + ObserveSwingApplicationConfig config = getUi().getContextValue(ObserveSwingApplicationConfig.class); String speciesListId = config.getSpeciesListLonglineCatchId(); prepareSpeciesList(speciesListId, getUi().getSpecies(), n("observe.error.speciesList.longline.catch.notFound")); @@ -329,7 +323,7 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLonglineDto, TdrDto> getTableEditBean().setData(serialBlob); getTableEditBean().setDataFilename(file.getName()); - ObserveMainUI mainUI = ObserveContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); mainUI.getStatus().setStatus(t("observe.tdr.message.data.imported", file)); } catch (IOException e) { @@ -407,7 +401,7 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLonglineDto, TdrDto> IOUtils.copy(binaryStream, outputstream); outputstream.close(); - ObserveMainUI mainUI = ObserveContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); mainUI.getStatus().setStatus(t("observe.sensorUsed.message.data.exported", file)); } catch (IOException e) { throw new ObserveTechnicalException("Could not save binary data to " + file, e); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java index f353f88..c5f665e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java @@ -22,11 +22,8 @@ package fr.ird.observe.ui.content.table.impl.seine; * #L% */ -import fr.ird.observe.ObserveContext; -import fr.ird.observe.business.ObserveTechnicalException; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.DataContext; -import fr.ird.observe.business.db.DataSource; -import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.referential.GearCaracteristicDto; import fr.ird.observe.services.dto.referential.GearDto; @@ -36,7 +33,6 @@ import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; -import fr.ird.observe.ui.content.ContentUIInitializer; import fr.ird.observe.ui.content.table.ContentTableUIHandler; import fr.ird.observe.ui.util.table.AutotSelectRowAndShowPopupActionSupport; import fr.ird.observe.ui.util.table.EditableTableModelSupport; @@ -62,8 +58,6 @@ import java.awt.Insets; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -244,7 +238,7 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei table.getTableHeader().setReorderingAllowed(false); - Decorator<GearCaracteristicDto> decorator = ObserveContext.get().getDecorator(GearCaracteristicDto.class); + Decorator<GearCaracteristicDto> decorator = ObserveSwingApplicationContext.get().getDecorator(GearCaracteristicDto.class); //FIXME // List<GearCaracteristicDto> list; @@ -371,7 +365,7 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei log.info("Delete: " + data); } - ObserveMainUI mainUI = ObserveContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); int response = UIHelper.askUser(mainUI, t("observe.title.delete"), t("observe.measurement.delete.message"), diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java index 637a5db..5fe1c28 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java @@ -62,8 +62,8 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeineDto, UIHelper.newListContextEntryDef("NonTargetCatchUI-all-taille-to-delete"); /** - * Ecoute les modifications de la propriété {@link NonTargetCatch#getTotalCount()}, - * et repasser alors le flag {@link NonTargetCatch#getTotalCountComputedSource()} à + * Ecoute les modifications de la propriété {@link NonTargetCatchDto#getTotalCount()}, + * et repasser alors le flag {@link NonTargetCatchDto#getTotalCountComputedSource()} à * {@code null}. * * @since 3.0 @@ -77,8 +77,8 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeineDto, }; /** - * Ecoute les modifications de la propriété {@link NonTargetCatch#getCatchWeight()}, - * et repasser alors le flag {@link NonTargetCatch#getCatchWeightComputedSource()} à + * Ecoute les modifications de la propriété {@link NonTargetCatchDto#getCatchWeight()}, + * et repasser alors le flag {@link NonTargetCatchDto#getCatchWeightComputedSource()} à * {@code null}. * * @since 3.0 @@ -92,8 +92,8 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeineDto, }; /** - * Ecoute les modifications de la propriété {@link NonTargetCatch#getMeanWeight()}, - * et repasser alors le flag {@link NonTargetCatch#getMeanWeightComputedSource()} à + * Ecoute les modifications de la propriété {@link NonTargetCatchDto#getMeanWeight()}, + * et repasser alors le flag {@link NonTargetCatchDto#getMeanWeightComputedSource()} à * {@code null}. * * @since 3.0 @@ -107,8 +107,8 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeineDto, }; /** - * Ecoute les modifications de la propriété {@link NonTargetCatch#getMeanLength()}, - * et repasser alors le flag {@link NonTargetCatch#getMeanLengthComputedSource()} à + * Ecoute les modifications de la propriété {@link NonTargetCatchDto#getMeanLength()}, + * et repasser alors le flag {@link NonTargetCatchDto#getMeanLengthComputedSource()} à * {@code null}. * * @since 3.0 @@ -215,7 +215,7 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeineDto, // Ocean ocean = dataService.getTripOcean( // dataSource, dataContext.getSelectedTripId()); // -// ObserveConfig config = getUi().getContextValue(ObserveConfig.class); +// ObserveSwingApplicationConfig config = getUi().getContextValue(ObserveSwingApplicationConfig.class); // String speciesListId = config.getSpeciesListSeineNonTargetCatchId(); // // // get all species diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectObservedSpeciesUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectObservedSpeciesUIHandler.java index 35d3ef9..9c66c55 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectObservedSpeciesUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectObservedSpeciesUIHandler.java @@ -21,9 +21,7 @@ */ package fr.ird.observe.ui.content.table.impl.seine; -import fr.ird.observe.ObserveConfig; -import fr.ird.observe.business.db.DataContext; -import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.seine.SpeciesStatusDto; @@ -95,7 +93,7 @@ public class ObjectObservedSpeciesUIHandler extends ContentTableUIHandler<Floati public void initUI() throws Exception { // add a listPredicate to get only species from the correct configured speciesList - ObserveConfig config = getUi().getContextValue(ObserveConfig.class); + ObserveSwingApplicationConfig config = getUi().getContextValue(ObserveSwingApplicationConfig.class); String speciesListId = config.getSpeciesListSeineObjectObservedSpeciesId(); prepareSpeciesList(speciesListId, getUi().getSpecies(),n("observe.error.speciesList.seine.objectObservedSpecies.notFound")); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectSchoolEstimateUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectSchoolEstimateUIHandler.java index 1051615..ce07ed8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectSchoolEstimateUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectSchoolEstimateUIHandler.java @@ -21,9 +21,7 @@ */ package fr.ird.observe.ui.content.table.impl.seine; -import fr.ird.observe.ObserveConfig; -import fr.ird.observe.business.db.DataContext; -import fr.ird.observe.business.db.DataSource; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.seine.FloatingObjectDto; @@ -91,7 +89,7 @@ public class ObjectSchoolEstimateUIHandler extends ContentTableUIHandler<Floatin public void initUI() throws Exception { // add a listPredicate to get only species from the correct configured speciesList - ObserveConfig config = getUi().getContextValue(ObserveConfig.class); + ObserveSwingApplicationConfig config = getUi().getContextValue(ObserveSwingApplicationConfig.class); String speciesListId = config.getSpeciesListSeineObjectSchoolEstimateId(); prepareSpeciesList(speciesListId, getUi().getSpecies(), n("observe.error.speciesList.seine.objectSchoolEstimate.notFound")); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/SchoolEstimateUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/SchoolEstimateUIHandler.java index c03b629..6900298 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/SchoolEstimateUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/SchoolEstimateUIHandler.java @@ -21,17 +21,11 @@ */ package fr.ird.observe.ui.content.table.impl.seine; -import fr.ird.observe.ObserveConfig; -import fr.ird.observe.business.db.DataContext; -import fr.ird.observe.business.db.DataSource; -import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.business.db.constants.DataContextType; -import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.seine.SchoolEstimateDto; import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.ui.UIHelper; -import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIHandler; import jaxx.runtime.context.JAXXContextEntryDef; @@ -41,8 +35,6 @@ import org.apache.commons.logging.LogFactory; import javax.swing.JComponent; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; -import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import static org.nuiton.i18n.I18n.n; @@ -87,7 +79,7 @@ public class SchoolEstimateUIHandler extends ContentTableUIHandler<SetSeineDto, // dataSource, dataContext.getSelectedTripId()); // // // get all species from the configured speciesList -// ObserveConfig config = getUi().getContextValue(ObserveConfig.class); +// ObserveSwingApplicationConfig config = getUi().getContextValue(ObserveSwingApplicationConfig.class); // String speciesListId = config.getSpeciesListSeineSchoolEstimateId(); // // List<Species> allSpecies = diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetCatchUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetCatchUIHandler.java index 6b26d43..b1d5c17 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetCatchUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetCatchUIHandler.java @@ -21,10 +21,6 @@ */ package fr.ird.observe.ui.content.table.impl.seine; -import fr.ird.observe.business.DecoratorService; -import fr.ird.observe.ObserveConfig; -import fr.ird.observe.business.db.DataContext; -import fr.ird.observe.business.db.DataSource; import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.referential.SpeciesDto; @@ -33,13 +29,11 @@ import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.services.dto.seine.TargetCatchDto; import fr.ird.observe.services.dto.seine.TargetLengthDto; import fr.ird.observe.ui.UIHelper; -import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIHandler; import jaxx.runtime.JAXXContext; import jaxx.runtime.context.JAXXContextEntryDef; import jaxx.runtime.swing.editor.bean.BeanComboBox; -import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; @@ -51,7 +45,6 @@ import javax.swing.table.DefaultTableCellRenderer; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashSet; @@ -155,7 +148,7 @@ public class TargetCatchUIHandler extends ContentTableUIHandler<SetSeineDto, Tar // weightCategoryTopiaExecutor)); // // // Keep only weight categories for the species -// ObserveConfig config = getUi().getContextValue(ObserveConfig.class); +// ObserveSwingApplicationConfig config = getUi().getContextValue(ObserveSwingApplicationConfig.class); // String speciesListId = config.getSpeciesListSeineTargetCatchId(); // // java.util.Set<String> speciesIds = loadSpeciesList(speciesListId, n("observe.error.speciesList.seine.targetCatch.notFound")); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java index c106650..3ac2140 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java @@ -21,10 +21,6 @@ */ package fr.ird.observe.ui.content.table.impl.seine; -import fr.ird.observe.business.DecoratorService; -import fr.ird.observe.ObserveConfig; -import fr.ird.observe.business.db.DataContext; -import fr.ird.observe.business.db.DataSource; import fr.ird.observe.business.db.DataSourceException; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.referential.SpeciesDto; @@ -34,13 +30,11 @@ import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.services.dto.seine.TargetCatchDto; import fr.ird.observe.services.dto.seine.TargetLengthDto; import fr.ird.observe.ui.UIHelper; -import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIHandler; import jaxx.runtime.JAXXContext; import jaxx.runtime.context.JAXXContextEntryDef; import jaxx.runtime.swing.editor.bean.BeanComboBox; -import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; @@ -52,7 +46,6 @@ import javax.swing.table.DefaultTableCellRenderer; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashSet; @@ -213,7 +206,7 @@ public class TargetDiscardCatchUIHandler extends ContentTableUIHandler<SetSeineD // ); // // // filtre sur la liste d'espèce configuree -// ObserveConfig config = getUi().getContextValue(ObserveConfig.class); +// ObserveSwingApplicationConfig config = getUi().getContextValue(ObserveSwingApplicationConfig.class); // String speciesListId = config.getSpeciesListSeineTargetCatchId(); // java.util.Set<String> speciesIds = loadSpeciesList(speciesListId, n("observe.error.speciesList.seine.targetCatch.notFound")); // diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/RemoteUILauncher.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/RemoteUILauncher.java index c6dc554..a3aedde 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/RemoteUILauncher.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/RemoteUILauncher.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.storage; -import fr.ird.observe.business.db.constants.DbMode; +import fr.ird.observe.db.constantes.DbMode; import fr.ird.observe.business.util.SecurityModel; import jaxx.runtime.JAXXContext; import jaxx.runtime.swing.ErrorDialogUI; @@ -62,6 +62,7 @@ public abstract class RemoteUILauncher extends StorageUILauncher { model.setCanCreateLocalService(false); model.setCanUseLocalService(false); model.setCanUseRemoteService(true); + model.setCanUseServerService(true); model.setDbMode(DbMode.USE_REMOTE); model.setAdminAction(action); // model.setPgInstall(new PGInstall() { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageBackupUILauncher.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageBackupUILauncher.java index 5950b3f..88987e4 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageBackupUILauncher.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageBackupUILauncher.java @@ -21,9 +21,9 @@ */ package fr.ird.observe.ui.storage; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.DataSource; -import fr.ird.observe.business.db.constants.DbMode; +import fr.ird.observe.db.constantes.DbMode; import jaxx.runtime.JAXXContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -110,7 +110,7 @@ public class StorageBackupUILauncher extends StorageUILauncher { } protected DataSource getStorage() { - DataSource source = ObserveContext.get().getDataSource(); + DataSource source = ObserveSwingApplicationContext.get().getDataSource(); return source; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java index d90ca8e..beb5204 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java @@ -22,24 +22,29 @@ package fr.ird.observe.ui.storage; import com.google.common.base.Preconditions; -import fr.ird.observe.business.DecoratorService; import fr.ird.observe.ObserveActionExecutor; -import fr.ird.observe.ObserveConfig; -import fr.ird.observe.ObserveContext; import fr.ird.observe.ObserveRunner; +import fr.ird.observe.ObserveSwingApplicationContext; +import fr.ird.observe.business.DecoratorService; import fr.ird.observe.business.db.DataSource; import fr.ird.observe.business.db.DataSourceConfig; import fr.ird.observe.business.db.DataSourceException; -import fr.ird.observe.business.db.DataSourceFactory; -import fr.ird.observe.business.db.constants.CreationMode; -import fr.ird.observe.business.db.constants.DbMode; import fr.ird.observe.business.util.SecurityModel; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; +import fr.ird.observe.db.constantes.ConnexionStatus; +import fr.ird.observe.db.constantes.CreationMode; +import fr.ird.observe.db.constantes.DbMode; +import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; +import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationTopiaH2; +import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationTopiaPG; +import fr.ird.observe.services.configuration.ObserveDataSourceConnection; +import fr.ird.observe.services.service.DataSourceDumpProducerService; +import fr.ird.observe.services.service.DataSourceService; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.storage.tabs.RolesTableModel; import fr.ird.observe.ui.storage.tabs.SelectDataUI; import fr.ird.observe.ui.storage.tabs.StorageTabUI; -import fr.ird.observe.ui.tree.DataSelectionTreeCellRenderer; import jaxx.runtime.JAXXContext; import jaxx.runtime.context.DefaultApplicationContext.AutoLoad; import jaxx.runtime.swing.ErrorDialogUI; @@ -47,7 +52,6 @@ import jaxx.runtime.swing.wizard.WizardUILancher; import org.apache.commons.io.FileUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.decorator.Decorator; import org.nuiton.util.version.Version; import javax.swing.JTabbedPane; @@ -56,11 +60,9 @@ import java.awt.Window; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; -import java.sql.SQLException; import java.util.Date; -import java.util.List; -import java.util.Map; import java.util.Set; import static org.nuiton.i18n.I18n.n; @@ -82,45 +84,26 @@ public class StorageUIHandler { private static final Log log = LogFactory.getLog(StorageUIHandler.class); /** - * Service de replication. - * <p/> - * Note: le service est sans état et donc peut rester en état du handler. - */ - //FIXME -// protected ReplicationService replicationService = -// ObserveServiceHelper.newReplicationService(); - - /** * Prépare une service de persistance à partir d'un modèle. * <p/> * Le service ne sera pas ouvert. * * @param model le modèle de la source de données - * @param isMain pour savoir si cela sera le service persistant - * principal * @param localLabel le label de la source si local - * @param remoteLabel le label de la source si distant * @return le service de persistance initialisé mais non ouvert. - * @throws IOException si une erreur pendant la configuration du service */ - public DataSource newServiceFromModel(StorageUIModel model, - boolean isMain, - String localLabel, - String remoteLabel) - throws IOException { + public ObserveDataSourceConfiguration newDataSourceConfigurationFromModel( + StorageUIModel model, + String localLabel) { - DataSource mainStorage = null; + ObserveDataSourceConfiguration mainConfiguration = null; - //FIXME -// switch (model.getDbMode()) { -// case CREATE_LOCAL: -// case USE_LOCAL: -// H2DataSourceConfig h2Config = model.toH2StorageConfig(localLabel); -// if (model.getDbMode() == DbMode.USE_LOCAL) { -// h2Config.setCreationMode(null); -// } -// H2DataSource h2Service = -// DataSourceFactory.newService(h2Config); + switch (model.getDbMode()) { + case CREATE_LOCAL: + case USE_LOCAL: + mainConfiguration = model.toH2StorageConfig(localLabel); + + // FIXME // h2Service.addDataSourceListener( // new DataSourceListenerAdapter() { // @@ -138,25 +121,17 @@ public class StorageUIHandler { // s.getConfig().setCreationMode(null); // } // }); -// -// mainStorage = h2Service; -// -// break; -// case USE_REMOTE: -// -// PGDataSourceConfig pgConfig = -// model.toPostgresStorageConfig(remoteLabel); -// PGDataSource pgservice = -// DataSourceFactory.newService(pgConfig); -// mainStorage = pgservice; -// break; -// } -// - if (isMain) { - // preparation du storage principal - ObserveContext.get().prepareMainStorage(mainStorage); + + break; + case USE_REMOTE: + mainConfiguration = model.toPGStorageConfig(localLabel); + break; + case USE_SERVER: + mainConfiguration = model.toRestStorageConfig(localLabel); + break; } - return mainStorage; + + return mainConfiguration; } public void initUI(final StorageUI ui) { @@ -226,10 +201,10 @@ public class StorageUIHandler { ui.CONFIRM.init(); // recuperation de la source de données en cours d'utilisation - DataSource source = ui.getContextValue(DataSource.class); + ObserveDataSourceConfiguration dataSourceConfiguration = ui.getContextValue(ObserveDataSourceConfiguration.class); // chargement du modèle - model.init(ui, source); + model.init(ui, dataSourceConfiguration); } public void start(StorageUI ui) { @@ -258,7 +233,7 @@ public class StorageUIHandler { if (StorageStep.CONFIG == newStep) { // on redemande un test de connexion a chaque fois - model.setConnexionStatus(null); + model.setConnexionStatus(ConnexionStatus.UNTESTED); } @@ -278,9 +253,8 @@ public class StorageUIHandler { if (StorageStep.SELECT_DATA == newStep && mustRecompute) { - if (ObstunaAdminAction.CREATE == ui.getModel().getAdminAction() ) { - //FIXME -// && model.getSelectDataModel() == null) { + if (ObstunaAdminAction.CREATE == ui.getModel().getAdminAction() + && model.getSelectDataModel().isEmpty()) { // récupération des données possibles à importer initSelectData(ui); @@ -325,7 +299,7 @@ public class StorageUIHandler { } }; } - ObserveMainUI mainUI = ObserveContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); if (mainUI == null) { if (log.isWarnEnabled()) { log.warn("Launch standalone apply action " + action); @@ -343,7 +317,7 @@ public class StorageUIHandler { Runnable action = WizardUILancher.CANCEL_DEF.getContextValue(ui); - ObserveMainUI mainUI = ObserveContext.get().getObserveMainUI(); + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); if (mainUI == null) { if (log.isWarnEnabled()) { log.warn("Launch standalone cancel action " + action); @@ -365,209 +339,204 @@ public class StorageUIHandler { * @param model le model++ du storage a creer ou utiliser */ public void doChangeStorage(JAXXContext context, StorageUIModel model) { + ObserveSwingApplicationContext observeContext = ObserveSwingApplicationContext.get(); - //FIXME -// ObserveConfig config = context.getContextValue(ObserveConfig.class); -// // faut-il detruire la base locale ? -// boolean destroyLocalBase = -// config.isLocalStorageExist() && -// model.getDbMode() == DbMode.CREATE_LOCAL; -// -// if (log.isDebugEnabled()) { -// log.debug(">>> should destroy local db ? " + destroyLocalBase); -// } -// -// DataSource mainStorage = ObserveContext.get().getDataSource(); -// -// H2DataSource localStorage = null; -// if (mainStorage instanceof H2DataSource) { -// localStorage = (H2DataSource) mainStorage; -// } -// H2DataSourceConfig localConfig; -// -// boolean localDbIsSane = true; -// if (destroyLocalBase || model.isDoBackup()) { -// if (localStorage == null) { -// try { -// localConfig = config.toH2StorageConfig( -// n("observe.storage.label.local")); -// -// // la base ne doit pas etre mise a jour dans ce cas -// localConfig.setCanMigrate(false); -// -// // on charge un storage sur la base locale -// localStorage = DataSourceFactory.newService( -// localConfig); -// localStorage.doOpen(); -// } catch (Exception e) { -// // on a pas reussi à ouvrir la base locale -// // cela ne doit pas empécher de continuer -// // il faut juste supprimer physiquement le repertoire -// // de la base -// Exception e2 = new Exception(t("observe.error.storage.could.not.load.local.db", e.getMessage()), e); -// ErrorDialogUI.showError(e2); -// if (log.isErrorEnabled()) { -// log.error(e2.getMessage(), e2); -// } -// -// // on conserve l'état -// localDbIsSane = false; -// -// // pour la suite on fait comme si il n'y a pas de local storage -// localStorage = null; -// } -// } -// } -// -// if (model.isDoBackup()) { -// if (!localDbIsSane) { -// -// // la base locale n'est pas saine, on doit arrêter l'objectOperation -// // de changement de base sous peine de perdre la base. -// Exception e = new Exception(t("observe.error.storage.could.not.backup.unsane.local.db")); -// ErrorDialogUI.showError(e); -// return; -// } -// // effectue la backup de la base locale existante -// File f = model.getBackupFile(); -// if (log.isDebugEnabled()) { -// log.debug(">>> do backup with " + localStorage + " in " + f); -// } -// try { -// backupLocalDatabase(localStorage, f); -// } catch (Exception e) { -// ErrorDialogUI.showError(e); -// if (log.isErrorEnabled()) { -// log.error(e.getMessage(), e); -// } -// return; -// } -// } -// -// if (destroyLocalBase) { -// if (log.isDebugEnabled()) { -// log.debug(">>> destroy local db " + localStorage); -// } -// if (!localDbIsSane) { -// // la base locale n'est pas saine, on va supprimer directement -// // le dossier de la base -// File localDBDirectory = config.getLocalDBDirectory(); -// if (log.isInfoEnabled()) { -// log.info(">>> destroy local db directory " + localDBDirectory); -// } -// try { -// FileUtils.deleteDirectory(localDBDirectory); -// } catch (IOException e) { -// ErrorDialogUI.showError(e); -// if (log.isErrorEnabled()) { -// log.error(e.getMessage(), e); -// } -// } -// } else { -// try { -// localStorage.doClose(true); -// } catch (Exception e) { -// ErrorDialogUI.showError(e); -// if (log.isErrorEnabled()) { -// log.error(e.getMessage(), e); -// } -// return; -// } -// } -// } -// -// // suppression du storage precedent -// if (mainStorage != null && mainStorage.isOpen()) { -// try { -// if (log.isDebugEnabled()) { -// log.debug(">>> close main storage " + mainStorage); -// } -// // on doit fermer le storage en cours d'utilisation -// mainStorage.doClose(false); -// -// } catch (DataSourceException ex) { -// ErrorDialogUI.showError(ex); -// } -// } -// -// // suppression du storage local -// if (localStorage != null && localStorage.isOpen()) { -// // ce cas peut arriver lorsque l'on fait juste une backup -// // sans vouloir supprimer la base locale -// try { -// if (log.isDebugEnabled()) { -// log.debug(">>> close local storage " + localStorage); -// } -// // on doit fermer le storage local ouvert -// localStorage.doClose(false); -// -// } catch (DataSourceException ex) { -// ErrorDialogUI.showError(ex); -// } -// } -// -// localStorage = null; -// -// if (log.isDebugEnabled()) { -// log.debug("Will create new storage..."); -// } -// -// // preparation du nouveau storage -// -// try { -// -// mainStorage = newServiceFromModel( -// model, -// true, -// "observe.storage.label.local", -// "observe.storage.label.remote" -// ); -// -// // ouverture du nouveau storage -// mainStorage.doOpen(); -// -// if (log.isInfoEnabled()) { -// log.info(">>> main storage opened " + mainStorage.getLabel()); -// } -// -// if (model.isStoreRemoteConfig()) { -// storeRemoteConfig(context, model); -// } -// if (model.getDbMode() == DbMode.CREATE_LOCAL && -// model.getCreationMode() == -// CreationMode.IMPORT_REMOTE_STORAGE) { -// // si on a creer la base locale a partir d'un import d'une base -// // distante, on sauvegarde la base locale comme dump initial -// // il s'agit d'un dump du référentiel -// File f = config.getInitialDbDump(); -// if (f.exists()) { -// // on supprime le dump sql de la base embarquée -// if (!f.delete()) { -// throw new IllegalStateException("could not delete " + -// f); -// } -// } -// if (log.isInfoEnabled()) { -// log.info(">>> create initial dump with " + localStorage + -// " in " + f); -// } -// try { -// backupLocalDatabase(mainStorage, f); -// config.setInitialDumpExist(true); -// } catch (Exception e) { -// ErrorDialogUI.showError(e); -// if (log.isErrorEnabled()) { -// log.error(e.getMessage(), e); -// } -// } -// } -// } catch (Exception ex) { -// ErrorDialogUI.showError(ex); -// if (log.isErrorEnabled()) { -// log.error(ex.getMessage(), ex); -// } -// throw new RuntimeException(ex); -// } + ObserveSwingApplicationConfig config = observeContext.getConfig(); + + // faut-il detruire la base locale ? + boolean destroyLocalBase = + config.isLocalStorageExist() && + model.getDbMode() == DbMode.CREATE_LOCAL; + + if (log.isDebugEnabled()) { + log.debug(">>> should destroy local db ? " + destroyLocalBase); + } + + ObserveDataSourceConfiguration sourceConfiguration = observeContext.getObserveDataSourceConfiguration(); + ObserveDataSourceConnection localConnection = observeContext.getObserveDataSourceConnection(); + + ObserveDataSourceConfigurationTopiaH2 localConfiguration = null; + + if (sourceConfiguration instanceof ObserveDataSourceConfigurationTopiaH2) { + localConfiguration = (ObserveDataSourceConfigurationTopiaH2) sourceConfiguration; + } + + DataSourceService localDataSourceService = null; + + + boolean localDbIsSane = true; + if (destroyLocalBase || model.isDoBackup()) { + if (localConfiguration == null) { + try { + localConfiguration = config.getDataSourceConfigurationH2(n("observe.storage.label.local")); + + // la base ne doit pas etre mise a jour dans ce cas + localConfiguration.setCanMigrate(false); + + // on charge un storage sur la base locale + localDataSourceService = observeContext.newService(localConfiguration, DataSourceService.class); + localConnection = localDataSourceService.open(localConfiguration); + } catch (Exception e) { + // on a pas reussi à ouvrir la base locale + // cela ne doit pas empécher de continuer + // il faut juste supprimer physiquement le repertoire + // de la base + Exception e2 = new Exception(t("observe.error.storage.could.not.load.local.db", e.getMessage()), e); + ErrorDialogUI.showError(e2); + if (log.isErrorEnabled()) { + log.error(e2.getMessage(), e2); + } + + // on conserve l'état + localDbIsSane = false; + + // pour la suite on fait comme si il n'y a pas de local storage + localDataSourceService = null; + } + } + } + + if (model.isDoBackup()) { + if (!localDbIsSane) { + + // la base locale n'est pas saine, on doit arrêter l'objectOperation + // de changement de base sous peine de perdre la base. + Exception e = new Exception(t("observe.error.storage.could.not.backup.unsane.local.db")); + ErrorDialogUI.showError(e); + return; + } + // effectue la backup de la base locale existante + File f = model.getBackupFile(); + if (log.isDebugEnabled()) { + log.debug(">>> do backup with " + localConfiguration + " in " + f); + } + try { + DataSourceDumpProducerService dumpProducerService = observeContext.newService(localConfiguration, localConnection, DataSourceDumpProducerService.class); + backupLocalDatabase(dumpProducerService, f); + } catch (Exception e) { + ErrorDialogUI.showError(e); + if (log.isErrorEnabled()) { + log.error(e.getMessage(), e); + } + return; + } + } + + if (destroyLocalBase) { + if (log.isDebugEnabled()) { + log.debug(">>> destroy local db " + localConfiguration); + } + if (!localDbIsSane) { + // la base locale n'est pas saine, on va supprimer directement + // le dossier de la base + File localDBDirectory = config.getLocalDBDirectory(); + if (log.isInfoEnabled()) { + log.info(">>> destroy local db directory " + localDBDirectory); + } + try { + FileUtils.deleteDirectory(localDBDirectory); + } catch (IOException e) { + ErrorDialogUI.showError(e); + if (log.isErrorEnabled()) { + log.error(e.getMessage(), e); + } + } + } else { + try { + localDataSourceService.destroy(); + } catch (Exception e) { + ErrorDialogUI.showError(e); + if (log.isErrorEnabled()) { + log.error(e.getMessage(), e); + } + return; + } + } + } + + // suppression du storage precedent + if (sourceConfiguration != null) { + if (log.isDebugEnabled()) { + log.debug(">>> close main storage " + sourceConfiguration); + } + // on doit fermer le storage en cours d'utilisation + DataSourceService dataSourceService = observeContext.newService(DataSourceService.class); + dataSourceService.close(); + } + + // suppression du storage local + if (localConfiguration != null && localConfiguration != sourceConfiguration) { + // ce cas peut arriver lorsque l'on fait juste une backup + // sans vouloir supprimer la base locale + if (log.isDebugEnabled()) { + log.debug(">>> close local storage " + localConfiguration); + } + // on doit fermer le storage local ouvert + localDataSourceService.close(); + } + + localConfiguration = null; + + if (log.isDebugEnabled()) { + log.debug("Will create new storage..."); + } + + // preparation du nouveau storage + + try { + + sourceConfiguration = newDataSourceConfigurationFromModel(model, t("observe.storage.label.local")); + + // ouverture du nouveau storage + DataSourceService dataSourceService = observeContext.newService(sourceConfiguration, DataSourceService.class); + ObserveDataSourceConnection sourceConnection = dataSourceService.open(sourceConfiguration); + + observeContext.setObserveDataSourceConfiguration(sourceConfiguration); + observeContext.setObserveDataSourceConnection(sourceConnection); + + if (log.isInfoEnabled()) { + log.info(">>> main storage opened " + sourceConfiguration.getLabel()); + } + + if (model.isStoreRemoteConfig()) { + storeRemoteConfig(context, model); + } + if (model.getDbMode() == DbMode.CREATE_LOCAL && + model.getCreationMode() == + CreationMode.IMPORT_REMOTE_STORAGE) { + // si on a creer la base locale a partir d'un import d'une base + // distante, on sauvegarde la base locale comme dump initial + // il s'agit d'un dump du référentiel + File f = config.getInitialDbDump(); + if (f.exists()) { + // on supprime le dump sql de la base embarquée + if (!f.delete()) { + throw new IllegalStateException("could not delete " + + f); + } + } + if (log.isInfoEnabled()) { + log.info(">>> create initial dump with " + localConfiguration + + " in " + f); + } + try { + DataSourceDumpProducerService dumpProducerService = observeContext.newService(DataSourceDumpProducerService.class); + backupLocalDatabase(dumpProducerService, f); + config.setInitialDumpExist(true); + } catch (Exception e) { + ErrorDialogUI.showError(e); + if (log.isErrorEnabled()) { + log.error(e.getMessage(), e); + } + } + } + } catch (Exception ex) { + ErrorDialogUI.showError(ex); + if (log.isErrorEnabled()) { + log.error(ex.getMessage(), ex); + } + throw new RuntimeException(ex); + } } /** @@ -578,31 +547,29 @@ public class StorageUIHandler { * @param model le model de la source de données */ public void storeRemoteConfig(JAXXContext context, StorageUIModel model) { - ObserveConfig config = context.getContextValue(ObserveConfig.class); + ObserveSwingApplicationConfig config = context.getContextValue(ObserveSwingApplicationConfig.class); // on sauvegarde dans le parametrage dans la configuration de // l'application - //FIXME -// PGDataSourceConfig remoteConfig = model.toPostgresStorageConfig(""); -// config.fromStorageConfig(remoteConfig); + ObserveDataSourceConfigurationTopiaPG configurationTopiaPG = model.toPGStorageConfig(""); + config.fromStorageConfig(configurationTopiaPG); } /** * @return le lastName par defaut du fichier de sauvegarde de la base locale * (expression calculée à partir de la date courante et du pattern - * {@link ObserveConfig#BACKUP_DB_PATTERN}). + * {@link ObserveSwingApplicationConfig#BACKUP_DB_PATTERN}). */ public String getDefaultBackupFilename() { - return String.format(ObserveConfig.BACKUP_DB_PATTERN, new Date()); + return String.format(ObserveSwingApplicationConfig.BACKUP_DB_PATTERN, new Date()); } /** * Effectue une sauvegarde de la base locale vers le fichier choisi. - * - * @param service le service locale qui encapsule la base locale + * @param dumpProducerService le service de dump * @param dst le fichier de sauvegarde */ - public void backupLocalDatabase(DataSource service, File dst) { + public void backupLocalDatabase(DataSourceDumpProducerService dumpProducerService, File dst) { if (dst == null) { throw new IllegalArgumentException( "file where to backup can not be null"); @@ -610,51 +577,18 @@ public class StorageUIHandler { if (log.isDebugEnabled()) { log.debug(dst); } - //FIXME -// if (service instanceof H2DataSource) { -// // le service offre le service -// try { -// service.storeDB(dst); -// } catch (DataSourceException ex) { -// ErrorDialogUI.showError(ex); -// } -// } else { -// // on doit dumper la base distante dans une base h2 et en faire -// // la sauvegarde -// ObserveConfig config = ObserveContext.get().getConfig(); -// -// DataSource tempStorage = null; -// try { -// tempStorage = ObserveServiceHelper.newEmptyTempStorage( -// config, -// t("observe.storage.label.backup"), -// "tmpBackup_" + dst.getName() -// ); -// -// tempStorage.doOpen(); -// replicationService.replicateReferentiel(service, tempStorage); -// replicationService.replicateAllData(service, tempStorage); -// -// tempStorage.storeDB(dst); -// } catch (Exception e) { -// ErrorDialogUI.showError(e); -// if (log.isErrorEnabled()) { -// log.error(e); -// } -// } finally { -// if (tempStorage != null) { -// try { -// tempStorage.doClose(true); -// } catch (DataSourceException e) { -// ErrorDialogUI.showError(e); -// if (log.isErrorEnabled()) { -// log.error(e); -// } -// } -// } -// } -// } + byte[] dataDump = dumpProducerService.getAllDataDump(); + + try (FileOutputStream outputStream = new FileOutputStream(dst)) { + + outputStream.write(dataDump); + } catch (Exception e) { + ErrorDialogUI.showError(e); + if (log.isErrorEnabled()) { + log.error(e); + } + } } /** @@ -677,7 +611,8 @@ public class StorageUIHandler { if (log.isInfoEnabled()) { log.info("will export all datas."); } - backupLocalDatabase(service, dst); + // FIXME + //backupLocalDatabase(service, dst); return; } if (dst == null) { @@ -693,7 +628,7 @@ public class StorageUIHandler { // on doit dumper la base distante dans une base h2 et en faire // la sauvegarde - ObserveConfig config = ObserveContext.get().getConfig(); + ObserveSwingApplicationConfig config = ObserveSwingApplicationContext.get().getConfig(); String[] mareeIds = new String[marees.size()]; @@ -790,7 +725,7 @@ public class StorageUIHandler { protected DecoratorService getDecoratorService() { DecoratorService decoratorService = - ObserveContext.get().getDecoratorService(); + ObserveSwingApplicationContext.get().getDecoratorService(); return decoratorService; } @@ -1142,7 +1077,7 @@ public class StorageUIHandler { addTag("h3", sb, t("observe.storage.report.action.migrate") + " :"); addOpenTag("ul", sb); if (model.isCanMigrate()) { - Version version = model.getDbVersion(); + Version version = model.getModleVersion(); addTag("li", sb, t("observe.storage.report.can.migrate", version)); if (model.isShowMigrationProgression()) { addTag("li", sb, t("observe.storage.showMigrationProgression")); @@ -1222,7 +1157,7 @@ public class StorageUIHandler { dataSource.doOpen(); Version importServiceDbVersion = dataSource.getDbVersion(); - Version currentDbVersion = model.getDbVersion(); + Version currentDbVersion = model.getModleVersion(); if (importServiceDbVersion.before(currentDbVersion)) { throw new IllegalStateException("Import db version (" + importServiceDbVersion + ") is not compatible with the current database version (" + currentDbVersion + ")"); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUILauncher.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUILauncher.java index b8dd96f..1095c7f 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUILauncher.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUILauncher.java @@ -21,9 +21,9 @@ */ package fr.ird.observe.ui.storage; -import fr.ird.observe.ObserveConfig; -import fr.ird.observe.ObserveContext; -import fr.ird.observe.business.db.constants.DbMode; +import fr.ird.observe.ObserveSwingApplicationContext; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; +import fr.ird.observe.db.constantes.DbMode; import fr.ird.observe.ui.ObserveMainUIHandler; import fr.ird.observe.ui.UIHelper; import jaxx.runtime.JAXXContext; @@ -152,36 +152,22 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod model.setExcludeSteps( Arrays.asList(StorageStep.SELECT_DATA, - StorageStep.BACKUP, - StorageStep.CONFIG_REFERENTIEL, - StorageStep.CONFIG_DATA, - StorageStep.ROLES) + StorageStep.BACKUP, + StorageStep.CONFIG_REFERENTIEL, + StorageStep.CONFIG_DATA, + StorageStep.ROLES) ); - model.setCanCreateLocalService(false); - model.setCanUseLocalService(false); - model.setCanUseRemoteService(false); - - switch (mode) { - - case USE_LOCAL: - model.setCanUseLocalService(true); - break; - - case CREATE_LOCAL: - model.setCanCreateLocalService(true); - break; - - case USE_REMOTE: - model.setCanUseRemoteService(true); - break; - } + model.setCanCreateLocalService(DbMode.CREATE_LOCAL.equals(mode)); + model.setCanUseLocalService(DbMode.USE_LOCAL.equals(mode)); + model.setCanUseRemoteService(DbMode.USE_REMOTE.equals(mode)); + model.setCanUseServerService(DbMode.USE_SERVER.equals(mode)); model.updateUniverse(); model.setDbMode(mode); } else { - ObserveConfig config = - rootContext.getContextValue(ObserveConfig.class); + ObserveSwingApplicationConfig config = + rootContext.getContextValue(ObserveSwingApplicationConfig.class); Boolean localOpened = config.getMainStorageOpenedLocal(); if (model.isLocalStorageExist() && localOpened != null && localOpened) { if (log.isDebugEnabled()) { @@ -191,6 +177,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod } model.setCanCreateLocalService(true); model.setCanUseRemoteService(true); + model.setCanUseServerService(true); } model.updateUniverse(); } @@ -223,7 +210,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod final StorageUIModel model) { if (mainUI == null) { - mainUI = ObserveContext.get().getObserveMainUI(); + mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); } addStorageUIHandler(context); StorageUILauncher launcher = new StorageUILauncher( @@ -239,6 +226,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod model.setCanCreateLocalService(false); model.setCanUseLocalService(false); model.setCanUseRemoteService(true); + model.setCanUseServerService(true); model.setExcludeSteps(Arrays.asList( StorageStep.CHOOSE_DB_MODE, @@ -299,7 +287,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod final StorageUIModel model) { if (mainUI == null) { - mainUI = ObserveContext.get().getObserveMainUI(); + mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); } addStorageUIHandler(context); @@ -342,6 +330,10 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod nbModes++; mode = DbMode.USE_REMOTE; } + if (model.isCanUseServerService()) { + nbModes++; + mode = DbMode.USE_SERVER; + } if (nbModes == 1) { @@ -392,7 +384,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod final StorageUIModel model) { if (mainUI == null) { - mainUI = ObserveContext.get().getObserveMainUI(); + mainUI = ObserveSwingApplicationContext.get().getObserveMainUI(); } addStorageUIHandler(context); StorageUILauncher launcher = new StorageUILauncher( diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java index bcfc154..dfbdd55 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java @@ -21,15 +21,27 @@ */ package fr.ird.observe.ui.storage; -import fr.ird.observe.ObserveConfig; -import fr.ird.observe.ObserveContext; +import com.google.common.collect.Sets; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.DataSource; import fr.ird.observe.business.db.DataSourceConfig; import fr.ird.observe.business.db.DataSourceException; -import fr.ird.observe.business.db.constants.ConnexionStatus; -import fr.ird.observe.business.db.constants.CreationMode; -import fr.ird.observe.business.db.constants.DbMode; import fr.ird.observe.business.util.SecurityModel; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; +import fr.ird.observe.db.constantes.ConnexionStatus; +import fr.ird.observe.db.constantes.CreationMode; +import fr.ird.observe.db.constantes.DbMode; +import fr.ird.observe.services.ObserveDataSourceConfigurationMainFactory; +import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; +import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationRest; +import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationTopiaH2; +import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationTopiaPG; +import fr.ird.observe.services.configuration.ObserveDataSourceConnection; +import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.service.DataSourceService; +import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; +import fr.ird.observe.services.service.DatabaseNotFoundException; import jaxx.runtime.JAXXContext; import jaxx.runtime.context.JAXXContextEntryDef; import jaxx.runtime.swing.wizard.WizardModel; @@ -79,6 +91,8 @@ public class StorageUIModel extends WizardModel<StorageStep> { public static final String REMOTE_URL_ROPERTY_NAME = "remoteUrl"; + public static final String SERVER_DATABASE_PROPERTY_NAME = "serverDatabase"; + public static final String REMOTE_LOGIN_ROPERTY_NAME = "remoteLogin"; public static final String REMOTE_PASSWORD_PROPERTY_NAME = "remotePassword"; @@ -101,6 +115,8 @@ public class StorageUIModel extends WizardModel<StorageStep> { private static final String CAN_USE_REMOTE_SERVICE_PROPERTY_NAME = "canUseRemoteService"; + private static final String CAN_USE_SERVER_SERVICE_PROPERTY_NAME = "canUseServerService"; + public static final String REFERENTIEL_IMPORT_MODE_PROPERTY_NAME = "referentielImportMode"; public static final String DATA_IMPORT_MODE_PROPERTY_NAME = "dataImportMode"; @@ -136,7 +152,10 @@ public class StorageUIModel extends WizardModel<StorageStep> { protected boolean storeRemoteConfig; /** le storage precedemment utilise */ - protected DataSource previousService; + protected ObserveDataSourceConfiguration previousDataSourceConfiguration; + + protected ConnexionStatus connexionStatus; + protected String connexionStatusError; /** un drapeau pour definir si on peut utiliser la base locale */ protected boolean canUseLocalService = true; @@ -147,23 +166,39 @@ public class StorageUIModel extends WizardModel<StorageStep> { /** un drapeau pour savoir si on a le droit d'utiliser une connexion distante */ protected boolean canUseRemoteService = true; + /** un drapeau pour savoir si on a le droit d'utiliser un serveur distant */ + protected boolean canUseServerService = true; + /** le modèle de sélection de données (utilisé pour les exports) */ - //FIXME -// protected DataSelectionModel selectDataModel; + protected Set<ReferenceDto> selectDataModel; /** le modèle de sécurité (utilisé pour la mise à jour sécurité sur base distante) */ protected SecurityModel securityModel; /** la configuration d'une base locale */ - //FIXME -// protected H2DataSourceConfig h2Config; + protected ObserveDataSourceConfigurationTopiaH2 h2Config; /** la configuration d'une base distante */ - //FIXME -// protected PGDataSourceConfig pgConfig; + protected ObserveDataSourceConfigurationTopiaPG pgConfig; + + /** la configuration d'un serveur web */ + protected ObserveDataSourceConfigurationRest restConfig; + + /** Les information de connextion a la base**/ + protected ObserveDataSourceConnection connection; + + /** le fichier d'import des donné */ + protected File dumpFile; + + + /** le mode de creation d'une base */ + protected CreationMode creationMode; + + /** la configuration pour impoter les données */ + protected ObserveDataSourceConfiguration importDataConfig; /** la configuration de l'application */ - protected ObserveConfig config; + protected ObserveSwingApplicationConfig config; /** l'action d'administration de base obstuna */ protected ObstunaAdminAction adminAction; @@ -188,22 +223,47 @@ public class StorageUIModel extends WizardModel<StorageStep> { */ protected CreationMode dataImportMode; - /** l'installateur de base obstuna */ - //FIXME -// protected PGInstall pgInstall; - public StorageUIModel() { super(StorageStep.class, - StorageStep.CHOOSE_DB_MODE, - StorageStep.BACKUP, - StorageStep.CONFIRM + StorageStep.CHOOSE_DB_MODE, + StorageStep.BACKUP, + StorageStep.CONFIRM ); - -//FIXME -// pgConfig = new PGDataSourceConfig(I18n.n("observe.storage.label.remote")); -// h2Config = new H2DataSourceConfig(I18n.n("observe.storage.label.local")); -// h2Config.setImportConfig(pgConfig); + selectDataModel = Sets.newHashSet(); securityModel = new SecurityModel(); + + connexionStatus = ConnexionStatus.UNTESTED; + + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + ObserveDataSourceConfigurationMainFactory configurationMainFactory = applicationContext.getObserveDataSourceConfigurationMainFactory(); + + h2Config = configurationMainFactory.createObserveDataSourceConfigurationTopiaH2( + n("observe.storage.label.remote"), + null, + ObserveSwingApplicationConfig.DB_NAME, + "", + EMPTY_PASSWORD, + false, + false + ); + + pgConfig = configurationMainFactory.createObserveDataSourceConfigurationTopiaPG( + n("observe.storage.label.local"), + "", + "", + EMPTY_PASSWORD, + false, + false, + false + ); + + restConfig = configurationMainFactory.createObserveDataSourceConfigurationRest( + n("observe.storage.label.rest"), + null, + "", + EMPTY_PASSWORD, + null + ); } /** @@ -213,9 +273,9 @@ public class StorageUIModel extends WizardModel<StorageStep> { * @param context le context applicatif * @param source le service existant */ - public void init(JAXXContext context, DataSource source) { + public void init(JAXXContext context, ObserveDataSourceConfiguration source) { - config = context.getContextValue(ObserveConfig.class); + config = context.getContextValue(ObserveSwingApplicationConfig.class); JAXXContextEntryDef<StorageUIModel> entryDef = WizardUILancher.newModelEntry(StorageUIModel.class); @@ -237,10 +297,6 @@ public class StorageUIModel extends WizardModel<StorageStep> { StorageUIHandler storageUIHandler = context.getContextValue(StorageUIHandler.class); - //FIXME -// DataSelectionModel dataModel = -// context.getContextValue(DataSelectionModel.class); - // ajout paramétrage depuis la configuration boolean isLocalStorageExist = config.isLocalStorageExist(); @@ -256,6 +312,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { log.debug("can use local storage ? " + isCanUseLocalService()); log.debug("can create local storage ? " + isCanCreateLocalService()); log.debug("can use remote storage ? " + isCanUseRemoteService()); + log.debug("can use server storage ? " + isCanUseServerService()); log.debug("previous service ? " + source); } @@ -266,7 +323,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { setShowMigrationProgression(config.isShowMigrationProgression()); setShowMigrationSql(config.isShowMigrationSql()); setDoBackup(false); - setPreviousService(source); + setPreviousDataSourceConfiguration(source); if (log.isDebugEnabled()) { log.debug("canMigrate ? " + isCanMigrate()); @@ -274,6 +331,11 @@ public class StorageUIModel extends WizardModel<StorageStep> { CreationMode mode = config.getDefaultCreationMode(); + // on initialise les configuration avec les valeurs par defaul + h2Config = config.getDataSourceConfigurationH2(n("observe.storage.label.remote")); + pgConfig = config.getDataSourceConfigurationPG(n("observe.storage.label.local")); + restConfig = config.getDataSourceConfigurationRest(n("observe.storage.label.rest")); + if (source != null) { // on initialise le modèle à partir d'un service existant @@ -282,40 +344,29 @@ public class StorageUIModel extends WizardModel<StorageStep> { log.debug("from a previous service " + source); } - // on sélectionne ce service - DataSourceConfig previousConfig = source.getConfig(); + if (source instanceof ObserveDataSourceConfigurationTopiaH2) { - //FIXME -// if (previousConfig instanceof H2DataSourceConfig) { -// -// // on copie la configuration distante de la configuration -// fromStorageConfig(config.toPostgresStorageConfig(pgConfig.getLabel())); -// -// // on est actuellement connecte sur une base locale -// fromStorageConfig((H2DataSourceConfig) previousConfig); -// -// } else { -// -// // on copie la configuration locale de la configuration -// fromStorageConfig( -// config.toH2StorageConfig(pgConfig.getLabel())); -// -// if (!isLocalStorageExist) { -// // aucune base locale, on positionne le mode de création -// // de base locale par défaut. -// -// setCreationMode(mode); -// } -// -// // on est sur une base distante -// //FIXME -// fromStorageConfig((PGDataSourceConfig) previousConfig); -// } + // on est actuellement connecte sur une base locale + fromStorageConfig((ObserveDataSourceConfigurationTopiaH2) source); + + } else if (source instanceof ObserveDataSourceConfigurationTopiaPG){ + + if (!isLocalStorageExist) { + // aucune base locale, on positionne le mode de création + // de base locale par défaut. + + setCreationMode(mode); + } + + // on est sur une base distante + fromStorageConfig((ObserveDataSourceConfigurationTopiaPG) source); + + } else if (source instanceof ObserveDataSourceConfigurationRest){ + + // on est sur une base distante + fromStorageConfig((ObserveDataSourceConfigurationRest) source); + } - //FIXME -// if (dataModel != null) { -// setSelectDataModel(dataModel); -// } return; } @@ -323,14 +374,6 @@ public class StorageUIModel extends WizardModel<StorageStep> { log.debug("no service found, using default configuration"); } - // aucun service de persistance ouvert, - // on utilise la configuration par defaut - // ce cas ne devrait arriver uniquement tant qu'aucune - // base locale est crée -//FIXME -// fromStorageConfig(config.toH2StorageConfig(pgConfig.getLabel())); - -// fromStorageConfig(config.toPostgresStorageConfig(pgConfig.getLabel())); DbMode newDbMode = config.getDefaultDbMode(); if (getAdminAction() != null) { @@ -343,6 +386,8 @@ public class StorageUIModel extends WizardModel<StorageStep> { mode = CreationMode.IMPORT_EXTERNAL_DUMP; } else if (isCanUseRemoteService()) { mode = CreationMode.IMPORT_REMOTE_STORAGE; + } else if (isCanUseServerService()) { + mode = CreationMode.IMPORT_SERVER_STORAGE; } } if (log.isDebugEnabled()) { @@ -369,7 +414,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { "previousConfig parameter can not be null in method initFromPreviousConfig"); } - config = context.getContextValue(ObserveConfig.class); + config = context.getContextValue(ObserveSwingApplicationConfig.class); StorageUIHandler storageUIHandler = context.getContextValue(StorageUIHandler.class); @@ -384,6 +429,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { log.debug("can use local storage ? " + isCanUseLocalService()); log.debug("can create local storage ? " + isCanCreateLocalService()); log.debug("can use remote storage ? " + isCanUseRemoteService()); + log.debug("can use server storage ? " + isCanUseServerService()); log.debug("previous service ? " + previousConfig); } @@ -399,31 +445,27 @@ public class StorageUIModel extends WizardModel<StorageStep> { log.debug("canMigrate ? " + isCanMigrate()); } - // on initialise le modèle à partir de la configuration existante -//FIXME -// if (previousConfig instanceof H2DataSourceConfig) { -// -// // on copie la configuration distante de la configuration -// fromStorageConfig(config.toPostgresStorageConfig(pgConfig.getLabel())); -// -// // on est actuellement connecte sur une base locale -// fromStorageConfig((H2DataSourceConfig) previousConfig); -// -// } else { -// -// // on copie la configuration locale de la configuration -// fromStorageConfig( -// config.toH2StorageConfig(pgConfig.getLabel())); -// -// if (!isLocalStorageExist) { -// -// // aucune base locale, on ne peut pas utiliser la base locale -// setCanUseLocalService(false); -// } -// -// // on est sur une base distante -// fromStorageConfig((PGDataSourceConfig) previousConfig); -// } + if (previousConfig instanceof ObserveDataSourceConfigurationTopiaH2) { + + // on est actuellement connecte sur une base locale + fromStorageConfig((ObserveDataSourceConfigurationTopiaH2) previousConfig); + + } else if (previousConfig instanceof ObserveDataSourceConfigurationTopiaPG){ + + if (!isLocalStorageExist) { + + // aucune base locale, on ne peut pas utiliser la base locale + setCanUseLocalService(false); + } + + // on est sur une base distante + fromStorageConfig((ObserveDataSourceConfigurationTopiaPG) previousConfig); + + } else if (previousConfig instanceof ObserveDataSourceConfigurationRest){ + + // on est sur une base distante + fromStorageConfig((ObserveDataSourceConfigurationRest) previousConfig); + } } /** @@ -432,9 +474,9 @@ public class StorageUIModel extends WizardModel<StorageStep> { */ public void initFromModel() { - JAXXContext context = ObserveContext.get(); + JAXXContext context = ObserveSwingApplicationContext.get(); - config = context.getContextValue(ObserveConfig.class); + config = context.getContextValue(ObserveSwingApplicationConfig.class); // ajout paramétrage depuis la configuration @@ -451,6 +493,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { log.debug("can use local storage ? " + isCanUseLocalService()); log.debug("can create local storage ? " + isCanCreateLocalService()); log.debug("can use remote storage ? " + isCanUseRemoteService()); + log.debug("can use server storage ? " + isCanUseServerService()); } setStoreRemoteConfig(config.isStoreRemoteStorage()); @@ -458,7 +501,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { setShowMigrationProgression(config.isShowMigrationProgression()); setShowMigrationSql(config.isShowMigrationSql()); setDoBackup(false); - setPreviousService(null); + setPreviousDataSourceConfiguration(null); if (log.isDebugEnabled()) { log.debug("canMigrate ? " + isCanMigrate()); @@ -474,10 +517,10 @@ public class StorageUIModel extends WizardModel<StorageStep> { // on utilise la configuration par defaut // ce cas ne devrait arriver uniquement tant qu'aucune // base locale est crée -//FIXME -// fromStorageConfig(config.toH2StorageConfig(pgConfig.getLabel())); -// -// fromStorageConfig(config.toPostgresStorageConfig(pgConfig.getLabel())); + h2Config = config.getDataSourceConfigurationH2(n("observe.storage.label.remote")); + pgConfig = config.getDataSourceConfigurationPG(n("observe.storage.label.local")); + restConfig = config.getDataSourceConfigurationRest(n("observe.storage.label.rest")); + DbMode newDbMode = config.getDefaultDbMode(); if (getAdminAction() != null) { @@ -490,6 +533,8 @@ public class StorageUIModel extends WizardModel<StorageStep> { mode = CreationMode.IMPORT_EXTERNAL_DUMP; } else if (isCanUseRemoteService()) { mode = CreationMode.IMPORT_REMOTE_STORAGE; + } else if (isCanUseServerService()) { + mode = CreationMode.IMPORT_SERVER_STORAGE; } } if (log.isDebugEnabled()) { @@ -512,6 +557,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { centralSourceModel.setCanCreateLocalService(false); centralSourceModel.setCanUseLocalService(false); centralSourceModel.setCanUseRemoteService(true); + centralSourceModel.setCanUseServerService(true); centralSourceModel.start(DbMode.USE_REMOTE); if (log.isDebugEnabled()) { @@ -548,6 +594,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { dataSourceModel.setCanCreateLocalService(false); dataSourceModel.setCanUseLocalService(false); dataSourceModel.setCanUseRemoteService(true); + dataSourceModel.setCanUseServerService(true); dataSourceModel.start(DbMode.USE_REMOTE); if (log.isDebugEnabled()) { @@ -594,16 +641,15 @@ public class StorageUIModel extends WizardModel<StorageStep> { start(); firePropertyChange(DB_MODE_PROPERTY_NAME, getDbMode()); firePropertyChange(CREATION_MODE_PROPERTY_NAME, getCreationMode()); - //FIXME -// firePropertyChange(DUMP_FILE_PROPERTY_NAME, h2Config.getDbDump()); + firePropertyChange(DUMP_FILE_PROPERTY_NAME, getDumpFile()); firePropertyChange(BACKUP_FILE_PROPERTY_NAME, getBackupFile()); firePropertyChange(DO_BACKUP_PROPERTY_NAME, isDoBackup()); firePropertyChange(CAN_USE_LOCALE_SERVICE_PROPERTY_NAME, isCanUseLocalService()); firePropertyChange(CAN_CREATE_LOCALE_SERVICE_PROPERTY_NAME, isCanCreateLocalService()); firePropertyChange(CAN_USE_REMOTE_SERVICE_PROPERTY_NAME, isCanUseRemoteService()); - //FIXME -// firePropertyChange(CONNEXION_STATUS_PROPERTY_NAME, pgConfig.getConnexionStatus()); - firePropertyChange(PREVIOUS_SERVICE_PROPERTY_NAME, getPreviousService()); + firePropertyChange(CAN_USE_SERVER_SERVICE_PROPERTY_NAME, isCanUseServerService()); + firePropertyChange(CONNEXION_STATUS_PROPERTY_NAME, getConnexionStatus()); + firePropertyChange(PREVIOUS_SERVICE_PROPERTY_NAME, getPreviousDataSourceConfiguration()); firePropertyChange(LOCAL_STORAGE_EXIST_PROPERTY_NAME, isLocalStorageExist()); firePropertyChange(STORE_REMOTE_CONFIG_PROPERTY_NAME, isStoreRemoteConfig()); firePropertyChange(REMOTE_URL_ROPERTY_NAME, getRemoteUrl()); @@ -627,6 +673,10 @@ public class StorageUIModel extends WizardModel<StorageStep> { return canUseRemoteService; } + public boolean isCanUseServerService() { + return canUseServerService; + } + public SecurityModel getSecurityModel() { return securityModel; } @@ -634,10 +684,10 @@ public class StorageUIModel extends WizardModel<StorageStep> { public ObstunaAdminAction getAdminAction() { return adminAction; } -//FIXME -// public PGInstall getPgInstall() { -// return pgInstall; -// } + + public Set<ReferenceDto> getSelectDataModel() { + return selectDataModel; + } public CreationMode getReferentielImportMode() { return referentielImportMode; @@ -665,9 +715,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { String params; txt = n("observe.storage.label.import.referentiel"); if (getDbMode() == DbMode.CREATE_LOCAL) { - //FIXME -// params = getH2Config().getDataDirectory().getAbsolutePath(); - params= null; + params = getH2Config().getDirectory().getAbsolutePath(); } else { params = getRemoteUrl(); } @@ -697,9 +745,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { String params; txt = n("observe.storage.label.import.data"); if (getDbMode() == DbMode.CREATE_LOCAL) { - //FIXME -// params = getH2Config().getDataDirectory().getAbsolutePath(); - params = null; + params = getH2Config().getDirectory().getAbsolutePath(); } else { params = getRemoteUrl(); } @@ -740,8 +786,6 @@ public class StorageUIModel extends WizardModel<StorageStep> { // when doing an admin mode we do not choose db mode, we always work on remote universe.add(StorageStep.CHOOSE_DB_MODE); } -//FIXME -// h2Config.setImportConfig(null); boolean canBackup = localStorageExist; switch (dbMode) { @@ -755,20 +799,25 @@ public class StorageUIModel extends WizardModel<StorageStep> { break; //case IMPORT_LOCAL_STORAGE: case IMPORT_REMOTE_STORAGE: - //FIXME -// h2Config.setImportConfig(pgConfig); + importDataConfig = pgConfig; + universe.add(StorageStep.CONFIG); + case IMPORT_SERVER_STORAGE: + importDataConfig = restConfig; universe.add(StorageStep.CONFIG); } } break; + case USE_LOCAL: + // pas de backup si on veut utiliser la base locale + canBackup = false; + break; case USE_REMOTE: canBackup = false; universe.add(StorageStep.CONFIG); break; - case USE_LOCAL: - - // pas de backup si on veut utiliser la base locale + case USE_SERVER: canBackup = false; + universe.add(StorageStep.CONFIG); break; } if (canBackup) { @@ -819,18 +868,18 @@ public class StorageUIModel extends WizardModel<StorageStep> { validate = false; } else if (!isCanCreateLocalService() && dbMode.equals(DbMode.CREATE_LOCAL)) { validate = false; + } else if (!isCanUseServerService() && dbMode.equals(DbMode.USE_SERVER)) { + validate = false; } } if (validate && isLocal()) { if (dbMode == DbMode.CREATE_LOCAL) { - //FIXME -// validate = h2Config.getCreationMode() != null; + validate = getCreationMode() != null; } } break; case CONFIG: if (dbMode == DbMode.USE_REMOTE) { - //FIXME // validate = pgConfig.isValid(); //FIXME Il faut savoir si l'utilisateur est le //FIXME propriétaire de la base @@ -995,40 +1044,44 @@ public class StorageUIModel extends WizardModel<StorageStep> { } public boolean isLocal() { - return dbMode != null && dbMode != DbMode.USE_REMOTE; + return dbMode != null && (dbMode == DbMode.CREATE_LOCAL || dbMode == DbMode.USE_LOCAL); } public boolean isRemote() { return dbMode != null && dbMode == DbMode.USE_REMOTE; } + public boolean isServer() { + return dbMode != null && dbMode == DbMode.USE_SERVER; + } + public boolean isCanMigrate() { boolean result = false; if (dbMode != null) { switch (dbMode) { case USE_LOCAL: case CREATE_LOCAL: - //FIXME -// result = h2Config.isCanMigrate(); + result = h2Config.isCanMigrate(); break; case USE_REMOTE: - //FIXME -// result = pgConfig.isCanMigrate(); + result = pgConfig.isCanMigrate(); + break; + case USE_SERVER: + result = false; + break; } } return result; } public String getLabel() { - //FIXME -// String txt; -// if (dbMode == DbMode.CREATE_LOCAL) { -// txt = h2Config.getLabel(); -// } else { -// txt = pgConfig.getLabel(); -// } -// return txt; - return null; + String txt; + if (dbMode == DbMode.CREATE_LOCAL) { + txt = h2Config.getLabel(); + } else { + txt = pgConfig.getLabel(); + } + return txt; } public boolean isLocalStorageExist() { @@ -1047,19 +1100,19 @@ public class StorageUIModel extends WizardModel<StorageStep> { return doBackup; } - public Version getDbVersion() { - return config == null ? Version.VZERO : config.getDbVersion(); + public Version getModleVersion() { + return config == null ? Version.VZERO : config.getModelVersion(); } public DbMode getDbMode() { return dbMode; } - public DataSource getPreviousService() { - return previousService; + public ObserveDataSourceConfiguration getPreviousDataSourceConfiguration() { + return previousDataSourceConfiguration; } - public ObserveConfig getConfig() { + public ObserveSwingApplicationConfig getConfig() { return config; } @@ -1130,8 +1183,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { if (oldValue != dataImportMode) { // reset selected data to import - //FIXME -// setSelectDataModel(null); + selectDataModel.clear(); updateUniverse(); } @@ -1147,19 +1199,17 @@ public class StorageUIModel extends WizardModel<StorageStep> { } public void setShowMigrationSql(boolean showMigrationSql) { - //FIXME -// boolean oldValue = pgConfig.isShowMigrationSql(); -// pgConfig.setShowMigrationSql(showMigrationSql); -// h2Config.setShowMigrationSql(showMigrationSql); -// firePropertyChange(SHOW_MIGRATION_SQL_PROPERTY_NAME, oldValue, showMigrationSql); + boolean oldValue = pgConfig.isShowMigrationSql(); + pgConfig.setShowMigrationSql(showMigrationSql); + h2Config.setShowMigrationSql(showMigrationSql); + firePropertyChange(SHOW_MIGRATION_SQL_PROPERTY_NAME, oldValue, showMigrationSql); } public void setShowMigrationProgression(boolean showMigrationProgression) { - //FIXME -// boolean oldValue = pgConfig.isShowMigrationProgression(); -// pgConfig.setShowMigrationProgression(showMigrationProgression); -// h2Config.setShowMigrationProgression(showMigrationProgression); -// firePropertyChange(SHOW_MIGRATION_PROGRESSION_PROPERTY_NAME, oldValue, showMigrationProgression); + boolean oldValue = pgConfig.isShowMigrationProgression(); + pgConfig.setShowMigrationProgression(showMigrationProgression); + h2Config.setShowMigrationProgression(showMigrationProgression); + firePropertyChange(SHOW_MIGRATION_PROGRESSION_PROPERTY_NAME, oldValue, showMigrationProgression); } // ---------------------------------------------------------- @@ -1167,48 +1217,16 @@ public class StorageUIModel extends WizardModel<StorageStep> { // ---------------------------------------------------------- public CreationMode getCreationMode() { - CreationMode result = null; - if (dbMode != null) { - switch (dbMode) { - case USE_LOCAL: - case CREATE_LOCAL: - //FIXME -// result = h2Config.getCreationMode(); - break; - case USE_REMOTE: - //FIXME -// result = pgConfig.getCreationMode(); - } - } - return result; + return creationMode; } public File getDumpFile() { - //FIXME -// URL dbDump = h2Config.getDbDump(); -// if (dbDump == null) { -// return new File(""); -// } -// // on remplace les %20 par des speciess car dans l'uri les caracteres -// // sont encodes -// File file = new File(dbDump.getFile().replaceAll("%20", " ")); -// file = new File(file.getAbsolutePath()); -// return file; - return null; + return dumpFile; } public void setCreationMode(CreationMode creationMode) { CreationMode oldValue = getCreationMode(); - if (dbMode != null) { - switch (dbMode) { - case CREATE_LOCAL: - - // seul cas ou on peut propager le mode de creation - //FIXME -// h2Config.setCreationMode(creationMode); - break; - } - } + this.creationMode = creationMode; firePropertyChange(CREATION_MODE_PROPERTY_NAME, oldValue, creationMode); if (oldValue != creationMode) { updateUniverse(); @@ -1226,32 +1244,10 @@ public class StorageUIModel extends WizardModel<StorageStep> { } public void setDumpFile(File dumpFile) { - try { - File oldValue = getDumpFile(); - URL url = null; - if (dumpFile != null) { - url = dumpFile.toURI().toURL(); - if (log.isDebugEnabled()) { - log.debug("dumpFile : " + dumpFile + " (exist ? : " + - dumpFile.exists() + ')'); - log.debug("dumpFile url : " + url); - } - String filePath = url.getFile().replaceAll("%20", " "); - if (log.isDebugEnabled()) { - log.debug("dumpFile file from url : " + filePath + - " (exist ? : " + new File(filePath).exists() + ')'); - } - } - //FIXME -// h2Config.setDbDump(dumpFile == null ? null : url); - firePropertyChange(DUMP_FILE_PROPERTY_NAME, oldValue, dumpFile); - validate(); - } catch (MalformedURLException ex) { - // shoudl never happens - if (log.isWarnEnabled()) { - log.warn(ex); - } - } + File oldValue = this.dumpFile; + this.dumpFile = dumpFile; + firePropertyChange(DUMP_FILE_PROPERTY_NAME, oldValue, dumpFile); + validate(); } // ---------------------------------------------------------- @@ -1259,60 +1255,88 @@ public class StorageUIModel extends WizardModel<StorageStep> { // ---------------------------------------------------------- public String getRemoteLogin() { - //FIXME -// return pgConfig.getLogin(); - return null; + String login = ""; + if (dbMode != null) { + switch (dbMode) { + case USE_REMOTE: + login = pgConfig.getUsername(); + break; + case USE_SERVER: + login = restConfig.getLogin(); + break; + } + } + return login; } public char[] getRemotePassword() { - //FIXME -// return pgConfig.getPassword(); - return null; + char[] password = EMPTY_PASSWORD; + if (dbMode != null) { + switch (dbMode) { + case USE_REMOTE: + password = pgConfig.getPassword(); + break; + case USE_SERVER: + password = restConfig.getPassword(); + break; + } + } + return password; } public String getRemoteUrl() { - //FIXME -// return pgConfig.getUrl(); - return null; + String url = ""; + if (dbMode != null) { + switch (dbMode) { + case USE_REMOTE: + url = pgConfig.getJdbcUrl(); + break; + case USE_SERVER: + url = restConfig.getServerUrl().toString(); + break; + } + } + return url; } public boolean isUseSsl() { - //FIXME -// return pgConfig.isUseSsl(); - return false; + return pgConfig.isUseSsl(); + } + + public String getServerDatabase() { + return restConfig.getOptionalDatabaseName().orNull(); } public ConnexionStatus getConnexionStatus() { - //FIXME -// return pgConfig.getConnexionStatus(); - return null; + return connexionStatus; } - public void setPreviousService(DataSource previousService) { - this.previousService = previousService; + public void setPreviousDataSourceConfiguration(ObserveDataSourceConfiguration previousDataSourceConfiguration) { + this.previousDataSourceConfiguration = previousDataSourceConfiguration; } - //FIXME -// public H2DataSourceConfig getH2Config() { -// return h2Config; -// } -// - //FIXME -// public PGDataSourceConfig getPgConfig() { -// return pgConfig; -// } + public ObserveDataSourceConfigurationTopiaH2 getH2Config() { + return h2Config; + } + + public ObserveDataSourceConfigurationTopiaPG getPgConfig() { + return pgConfig; + } + + public ObserveDataSourceConfigurationRest getRestConfig() { + return restConfig; + } public void setRemoteLogin(String remoteLogin) { String oldValue = getRemoteLogin(); - //FIXME -// pgConfig.setLogin(remoteLogin); + + pgConfig.setUsername(remoteLogin); firePgConfigChanged(REMOTE_LOGIN_ROPERTY_NAME, oldValue, remoteLogin); } public void setRemotePassword(char[] remotePassword) { char[] oldValue = getRemotePassword(); - //FIXME -// pgConfig.setPassword(remotePassword); + pgConfig.setPassword(remotePassword); firePgConfigChanged(REMOTE_PASSWORD_PROPERTY_NAME, oldValue, remotePassword); } @@ -1326,7 +1350,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { public void setCanCreateLocalService(boolean canCreateLocalService) { this.canCreateLocalService = canCreateLocalService; firePgConfigChanged(CAN_CREATE_LOCALE_SERVICE_PROPERTY_NAME, null, - canCreateLocalService); + canCreateLocalService); } public void setCanUseRemoteService(boolean canUseRemoteService) { @@ -1334,58 +1358,85 @@ public class StorageUIModel extends WizardModel<StorageStep> { firePropertyChange(CAN_USE_REMOTE_SERVICE_PROPERTY_NAME, null, canUseRemoteService); } + public void setCanUseServerService(boolean canUseServerService) { + this.canUseServerService = canUseServerService; + firePropertyChange(CAN_USE_SERVER_SERVICE_PROPERTY_NAME, null, canUseServerService); + } + public void setRemoteUrl(String remoteUrl) { String oldValue = getRemoteUrl(); - //FIXME -// pgConfig.setUrl(remoteUrl); + if (dbMode != null) { + switch (dbMode) { + case USE_REMOTE: + pgConfig.setJdbcUrl(remoteUrl); + break; + case USE_SERVER: + URL url = null; + try { + url = new URL(remoteUrl); + } catch (MalformedURLException e) { + } + restConfig.setServerUrl(url); + break; + } + } firePgConfigChanged(REMOTE_URL_ROPERTY_NAME, oldValue, remoteUrl); } public void setUseSsl(boolean useSsl) { - //FIXME -// boolean oldValue = pgConfig.isUseSsl(); -// pgConfig.setUseSsl(useSsl); -// firePgConfigChanged(USE_SSL_PROPERTY_NAME, oldValue, useSsl); + boolean oldValue = pgConfig.isUseSsl(); + pgConfig.setUseSsl(useSsl); + firePgConfigChanged(USE_SSL_PROPERTY_NAME, oldValue, useSsl); + } + + public void setServerDatabase(String database) { + String oldValue = getServerDatabase(); + restConfig.setOptionalDatabaseName(database); + firePgConfigChanged(SERVER_DATABASE_PROPERTY_NAME, oldValue, database); } // ---------------------------------------------------------- // -- StorageConfigSupport implementation methods // ---------------------------------------------------------- - //FIXME -// public void fromStorageConfig(H2DataSourceConfig config) { -// setDbMode(config.isStorageExists() ? DbMode.USE_LOCAL : DbMode.CREATE_LOCAL); -// config.copyTo(h2Config); -// } -// - //FIXME -// public void fromStorageConfig(PGDataSourceConfig config) { -// setDbMode(DbMode.USE_REMOTE); -// config.copyTo(pgConfig); -// } + public void fromStorageConfig(ObserveDataSourceConfigurationTopiaH2 sourceConfig) { -// public H2DataSourceConfig toH2StorageConfig(String label) { -// -// H2DataSourceConfig result = h2Config.clone(); -// result.setShortLabel(label); -// + setDbMode(sourceConfig.getDatabaseFile().exists() ? DbMode.USE_LOCAL : DbMode.CREATE_LOCAL); + h2Config = sourceConfig; + } + + public void fromStorageConfig(ObserveDataSourceConfigurationTopiaPG sourceConfig) { + setDbMode(DbMode.USE_REMOTE); + pgConfig = sourceConfig; + } + + public void fromStorageConfig(ObserveDataSourceConfigurationRest sourceConfig) { + setDbMode(DbMode.USE_SERVER); + restConfig = sourceConfig; + } + + public DataSourceCreateConfigurationDto getCreationConfigurationDto() { + + DataSourceCreateConfigurationDto createConfigurationDto = null; + // FIXME // if (getDbMode() == DbMode.CREATE_LOCAL) { -// -// CreationMode m = result.getCreationMode(); -// -// switch (m) { +// switch (getCreationMode()) { // case EMPTY: // case IMPORT_EXTERNAL_DUMP: // // rien a faire // break; // case IMPORT_INTERNAL_DUMP: +// +// createConfigurationDto = new DataSourceCreateConfigurationDto(); +// +// // try { // result.setDbDump( // config.getInitialDbDump().toURI().toURL()); // } catch (MalformedURLException ex) { // throw new IllegalArgumentException( // "can not build url for initialDbDump for " + -// "reason " + ex.getMessage(), ex); +// "reason " + ex.getMessage(), ex); // } // break; // case IMPORT_LOCAL_STORAGE: @@ -1397,31 +1448,57 @@ public class StorageUIModel extends WizardModel<StorageStep> { // n("observe.storage.label.import.remote")); // break; // } -// } -// return result; -// } // - //FIXME -// public PGDataSourceConfig toPostgresStorageConfig(String label) { -// if (log.isDebugEnabled()) { -// log.debug("before clone pg : policy = " + pgConfig.getPolicy()); -// } -// PGDataSourceConfig result = pgConfig.clone(); -// if (log.isDebugEnabled()) { -// log.debug("after clone pg : policy = " + result.getPolicy()); +// // } -// result.setShortLabel(label); -// return result; -// } + return createConfigurationDto; + } -// public DataSelectionModel getSelectDataModel() { -// return selectDataModel; -// } + public ObserveDataSourceConfigurationTopiaH2 toH2StorageConfig(String label) { - // FIXME -// public void setSelectDataModel(DataSelectionModel selectDataModel) { -// this.selectDataModel = selectDataModel; -// } + ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); + ObserveDataSourceConfigurationMainFactory configurationFactory = context.getObserveDataSourceConfigurationMainFactory(); + ObserveDataSourceConfigurationTopiaH2 result = configurationFactory.createObserveDataSourceConfigurationTopiaH2( + label, + h2Config.getDirectory(), + h2Config.getDbName(), + h2Config.getUsername(), + h2Config.getPassword(), + h2Config.isShowMigrationProgression(), + h2Config.isShowMigrationSql() + ); + return result; + } + + public ObserveDataSourceConfigurationTopiaPG toPGStorageConfig(String label) { + + ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); + ObserveDataSourceConfigurationMainFactory configurationFactory = context.getObserveDataSourceConfigurationMainFactory(); + ObserveDataSourceConfigurationTopiaPG result = configurationFactory.createObserveDataSourceConfigurationTopiaPG( + label, + pgConfig.getJdbcUrl(), + pgConfig.getUsername(), + pgConfig.getPassword(), + pgConfig.isUseSsl(), + pgConfig.isShowMigrationProgression(), + pgConfig.isShowMigrationSql() + ); + return result; + } + + public ObserveDataSourceConfigurationRest toRestStorageConfig(String label) { + + ObserveSwingApplicationContext context = ObserveSwingApplicationContext.get(); + ObserveDataSourceConfigurationMainFactory configurationFactory = context.getObserveDataSourceConfigurationMainFactory(); + ObserveDataSourceConfigurationRest result = configurationFactory.createObserveDataSourceConfigurationRest( + label, + restConfig.getServerUrl(), + restConfig.getLabel(), + restConfig.getPassword(), + restConfig.getOptionalDatabaseName().orNull() + ); + return result; + } protected void copyTo(StorageUIModel dst) { dst.setLocalStorageExist(isLocalStorageExist()); @@ -1429,11 +1506,11 @@ public class StorageUIModel extends WizardModel<StorageStep> { dst.setBackupFile(getBackupFile()); dst.setDoBackup(isDoBackup()); dst.setStoreRemoteConfig(isStoreRemoteConfig()); - //FIXME -// dst.setPreviousService(getPreviousService()); + dst.setPreviousDataSourceConfiguration(getPreviousDataSourceConfiguration()); dst.setCanCreateLocalService(isCanCreateLocalService()); dst.setCanUseLocalService(isCanUseLocalService()); dst.setCanUseRemoteService(isCanUseRemoteService()); + dst.setCanUseServerService(isCanUseServerService()); //FIXME // pgConfig.copyTo(dst.pgConfig); //FIXME @@ -1449,12 +1526,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { public void firePgConfigChanged(String propertyName, Object oldValue, Object newValue) { - if (!CONNEXION_STATUS_PROPERTY_NAME.equals(propertyName)) { - firePropertyChange(propertyName, oldValue, newValue); - } - // always invalidate test when modification, so notify listeners -// firePropertyChange(CONNEXION_STATUS_PROPERTY_NAME, -// pgConfig.getConnexionStatus()); + firePropertyChange(propertyName, oldValue, newValue); validate(); } @@ -1465,34 +1537,55 @@ public class StorageUIModel extends WizardModel<StorageStep> { * {@code false} sinon. */ public boolean testRemote() { - //FIXME tchemit 2010-08-18 : should do this in a thread to be able to stop test if too long - //FIXME -// boolean result = getPgConfig().canConnect(); -// if (log.isDebugEnabled()) { -// log.debug("result : " + result); -// } -// firePgConfigChanged(CONNEXION_STATUS_PROPERTY_NAME, null, pgConfig.getConnexionStatus()); -// -// if (result && !getPgConfig().isCanMigrate()) { -// -// // must check version (can't migrate remote db) -// result = getPgConfig().checkVersion(getDbVersion()); -// -// if (!result) { -// -// // can't use this remote db -// pgConfig.setConnexionStatus(ConnexionStatus.FAILED); -// -// firePgConfigChanged(CONNEXION_STATUS_PROPERTY_NAME, null, pgConfig.getConnexionStatus()); -// } -// } -// return result; - return false; + + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + DataSourceService dataSourceService = applicationContext.newService(pgConfig, DataSourceService.class); + + boolean result = false; + connexionStatusError = ""; + + try { + dataSourceService.checkCanConnect(pgConfig); + + ObserveDataSourceConnection dataSourceConnection = dataSourceService.open(pgConfig); + + if (dataSourceConnection.getVersion().equals(getModleVersion())) { + + setConnexionStatus(ConnexionStatus.SUCCESS); + + result = true; + + } else { + + connexionStatusError = t("observe.storage.error.dbVersionMismatch", dataSourceConnection.getVersion(), getModleVersion()); + + setConnexionStatus(ConnexionStatus.FAILED); + + } + + } catch (DatabaseNotFoundException e) { + + connexionStatusError = e.getMessage(); + + setConnexionStatus(ConnexionStatus.FAILED); + + } catch (DatabaseConnexionNotAuthorizedException e) { + + connexionStatusError = e.getMessage(); + + setConnexionStatus(ConnexionStatus.FAILED); + } + + return result; + } + + public String getConnexionStatusError() { + return connexionStatusError; } public boolean isPgConfigVersionMatch() { //FIXME -// return getDbVersion().equals(pgConfig.getVersion()); +// return getModleVersion().equals(pgConfig.getVersion()); return false; } @@ -1520,15 +1613,15 @@ public class StorageUIModel extends WizardModel<StorageStep> { } public void setConnexionStatus(ConnexionStatus connexionStatus) { - //FIXME -// pgConfig.setConnexionStatus(connexionStatus); - firePgConfigChanged(CONNEXION_STATUS_PROPERTY_NAME, null, connexionStatus); + ConnexionStatus oldValue = this.connexionStatus; + this.connexionStatus = connexionStatus; + firePgConfigChanged(CONNEXION_STATUS_PROPERTY_NAME, oldValue, connexionStatus); } public void checkImportDbVersion(DataSource importDatasource) throws DataSourceException { Version importServiceDbVersion = importDatasource.getDbVersion(); - Version currentDbVersion = getDbVersion(); + Version currentDbVersion = getModleVersion(); if (importServiceDbVersion.before(currentDbVersion)) { throw new IllegalStateException("Import db version (" + importServiceDbVersion + ") is not compatible with the current database version (" + currentDbVersion + ")"); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ChooseDbModeUI.css b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ChooseDbModeUI.css index bade66a..2d4ff4d 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ChooseDbModeUI.css +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ChooseDbModeUI.css @@ -53,6 +53,13 @@ selected:{model.getDbMode() == DbMode.USE_REMOTE}; } +#useServerMode { + value:{DbMode.USE_SERVER}; + text:{DbMode.USE_SERVER.getLabel()}; + enabled:{model.isCanUseServerService()}; + selected:{model.getDbMode() == DbMode.USE_SERVER}; +} + #dbModeContent { layout:{new GridLayout(0,1)}; border:{new TitledBorder(t("observe.storage.step.dbMode.detail"))}; @@ -103,6 +110,12 @@ selected:{model.getCreationMode() == CreationMode.IMPORT_REMOTE_STORAGE}; } +#importServerStorageMode { + value:{CreationMode.IMPORT_SERVER_STORAGE}; + text:{CreationMode.IMPORT_SERVER_STORAGE.getLabel()}; + selected:{model.getCreationMode() == CreationMode.IMPORT_SERVER_STORAGE}; +} + #migrationContent { layout:{new GridLayout(0,1)}; border:{new TitledBorder(t("observe.storage.report.action.migrate"))}; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ChooseDbModeUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ChooseDbModeUI.jaxx index 9dbfa89..7b93e02 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ChooseDbModeUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ChooseDbModeUI.jaxx @@ -26,19 +26,19 @@ <StorageTabUI> <import> - fr.ird.observe.ObserveConfig + fr.ird.observe.configuration.ObserveSwingApplicationConfig fr.ird.observe.ui.UIHelper fr.ird.observe.ui.storage.StorageStep - fr.ird.observe.business.db.constants.DbMode - fr.ird.observe.business.db.constants.CreationMode + fr.ird.observe.db.constantes.DbMode + fr.ird.observe.db.constantes.CreationMode </import> <StorageStep id='step' initializer='StorageStep.CHOOSE_DB_MODE'/> <fr.ird.observe.ui.storage.StorageUIModel id='model'/> - <ObserveConfig id='config' - initializer="getContextValue(ObserveConfig.class)"/> + <ObserveSwingApplicationConfig id='config' + initializer="getContextValue(ObserveSwingApplicationConfig.class)"/> <ButtonGroup id='dbMode' onStateChanged='getModel().setDbMode((DbMode) dbMode.getSelectedValue())'/> @@ -57,7 +57,7 @@ public void init() { protected String updateMigrationPolicy(boolean canMigrate) { if (canMigrate) { - return t("observe.storage.report.can.migrate", config.getDbVersion()); + return t("observe.storage.report.can.migrate", config.getModelVersion()); } else { return t("observe.storage.report.can.not.migrate"); } @@ -75,6 +75,7 @@ protected String updateCreationModeContent(DbMode mode) { <JPanel id='dbModeContent' constraints='BorderLayout.NORTH'> <JRadioButton id="useLocalMode" styleClass='dbMode'/> <JRadioButton id="useRemoteMode" styleClass='dbMode'/> + <JRadioButton id="useServerMode" styleClass='dbMode'/> <JRadioButton id="createLocalMode" styleClass='dbMode'/> </JPanel> @@ -85,6 +86,7 @@ protected String updateCreationModeContent(DbMode mode) { <JRadioButton id="importExternalDumpMode" styleClass='creationMode'/> <JRadioButton id="importLocalStorageMode" styleClass='creationMode'/> <JRadioButton id="importRemoteStorageMode" styleClass='creationMode'/> + <JRadioButton id="importServerStorageMode" styleClass='creationMode'/> </JPanel> <JLabel id='noCreateMode' constraints='"noCreateMode"'/> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ConfigDataUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ConfigDataUI.jaxx index 80748d1..a84758a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ConfigDataUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ConfigDataUI.jaxx @@ -26,7 +26,7 @@ <StorageTabUI> <import> - fr.ird.observe.business.db.constants.CreationMode + fr.ird.observe.db.constantes.CreationMode fr.ird.observe.ui.storage.StorageStep javax.swing.Icon diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ConfigReferentielUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ConfigReferentielUI.jaxx index 0d95cb0..fa263fe 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ConfigReferentielUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ConfigReferentielUI.jaxx @@ -26,7 +26,7 @@ <StorageTabUI> <import> - fr.ird.observe.business.db.constants.CreationMode + fr.ird.observe.db.constantes.CreationMode fr.ird.observe.ui.storage.StorageStep javax.swing.Icon diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ConfigUI.css b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ConfigUI.css index 5ff68f6..aee7ca0 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ConfigUI.css +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ConfigUI.css @@ -52,6 +52,14 @@ layout:{new GridLayout()}; } +#USE_SERVER { + _description:{n("observe.storage.useServerStorage.description")}; +} + +#USE_SERVER_content { + layout:{new GridLayout()}; +} + #remoteConfig { layout:{new BorderLayout()}; } @@ -68,6 +76,15 @@ text:{model.getRemotePassword()==null ? "" : new String(model.getRemotePassword())}; } +#serverDataBaseLabel { + visible: {DbMode.USE_SERVER.equals(model.getDbMode())}; +} + +#serverDataBase { + visible: {DbMode.USE_SERVER.equals(model.getDbMode())}; + text:{model.getServerDatabase()}; +} + #remoteUseSsl { text:"observe.storage.remote.useSll"; selected:{model.isUseSsl()}; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ConfigUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ConfigUI.jaxx index db7d07e..57d82df 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ConfigUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/ConfigUI.jaxx @@ -28,7 +28,8 @@ <import> fr.ird.observe.ui.storage.StorageStep - fr.ird.observe.business.db.constants.ConnexionStatus + fr.ird.observe.db.constantes.ConnexionStatus + fr.ird.observe.db.constantes.DbMode; java.awt.Color java.awt.Dimension @@ -133,6 +134,22 @@ public void init() { </row> </Table> + <!-- configurer connexion au server base distante --> + <Table id='USE_SERVER' + constraints='"USE_SERVER"' fill='both'> + <row> + <cell> + <JLabel text='observe.storage.useServerStorage.config'/> + </cell> + </row> + <row> + <cell weighty='1' weightx='1'> + <JPanel id='USE_SERVERE_content' + minimumSize='{new Dimension(20,300)}'/> + </cell> + </row> + </Table> + <JPanel constraints='"$$hideme$$"' visible='false'> <JPanel id='remoteConfig'> <Table constraints='BorderLayout.CENTER' @@ -165,6 +182,16 @@ public void init() { </cell> </row> <row> + <cell anchor='west'> + <JLabel id="serverDataBaseLabel" + text='observe.storage.server.dataBase'/> + </cell> + <cell weightx='1' fill="both" anchor='east'> + <JTextField id="serverDataBase" + onKeyReleased='getModel().setServerDatabase(((JTextField)event.getSource()).getText())'/> + </cell> + </row> + <row> <cell columns='2'> <JCheckBox id="remoteUseSsl" onActionPerformed='getModel().setUseSsl(((JCheckBox)event.getSource()).isSelected())'/> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/StorageTabUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/StorageTabUIHandler.java index fbe5620..51f0182 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/StorageTabUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/tabs/StorageTabUIHandler.java @@ -21,13 +21,11 @@ */ package fr.ird.observe.ui.storage.tabs; -import com.google.common.base.Preconditions; -import fr.ird.observe.ObserveConfig; import fr.ird.observe.business.db.DataSource; -import fr.ird.observe.business.db.DataSourceConfig; -import fr.ird.observe.business.db.constants.ConnexionStatus; -import fr.ird.observe.business.db.constants.CreationMode; -import fr.ird.observe.business.db.constants.DbMode; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; +import fr.ird.observe.db.constantes.ConnexionStatus; +import fr.ird.observe.db.constantes.CreationMode; +import fr.ird.observe.db.constantes.DbMode; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.storage.StorageStep; import fr.ird.observe.ui.storage.StorageUIHandler; @@ -343,25 +341,10 @@ public class StorageTabUIHandler { text = t(text); break; case SUCCESS: - //FIXME -// text = t(text, ui.model.getPgConfig().toString()); + text = t(text, ui.model.getPgConfig().toString()); break; case FAILED: - - //FIXME -// if (ui.model.getPgConfig().getConnexionError() != null) { -// // real connexion error -// text = t(text, ui.model.getPgConfig().getConnexionError().getMessage()); -// } else { -// -// // remote version mismatch -// Preconditions.checkState(!ui.model.isPgConfigVersionMatch()); -// -// String error = t("observe.storage.error.dbVersionMismatch", ui.model.getPgConfig().getVersion(), ui.model.getDbVersion()); -// -// text = t(text, error); -// } - + text = t(text, ui.model.getConnexionStatusError()); break; } return text; @@ -435,7 +418,7 @@ public class StorageTabUIHandler { protected String updateInternalDumpModeLabel(ChooseDbModeUI ui, boolean dumpExist) { - File f = ui.getContextValue(ObserveConfig.class).getInitialDbDump(); + File f = ui.getContextValue(ObserveSwingApplicationConfig.class).getInitialDbDump(); String text; if (f.exists()) { text = t("observe.storage.internalDump.last.modified", new Date(f.lastModified())); @@ -447,7 +430,7 @@ public class StorageTabUIHandler { protected String updateCanMigrateLabel(ChooseDbModeUI ui, boolean canMigrate) { - String text = t("observe.storage.action.canMigrate", ui.getModel().getDbVersion()); + String text = t("observe.storage.action.canMigrate", ui.getModel().getModleVersion()); return text; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/AbstractObserveTreeCellRenderer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/AbstractObserveTreeCellRenderer.java index 852ce65..6cd33fb 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/AbstractObserveTreeCellRenderer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/AbstractObserveTreeCellRenderer.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.tree; import com.google.common.base.Preconditions; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.DecoratorService; import fr.ird.observe.business.db.DataContext; import fr.ird.observe.business.db.DataSource; @@ -99,7 +99,7 @@ public abstract class AbstractObserveTreeCellRenderer extends AbstractNavTreeCel if (decoratorService == null) { // on récupère le service commun - decoratorService = ObserveContext.get().getDecoratorService(); + decoratorService = ObserveSwingApplicationContext.get().getDecoratorService(); } return decoratorService; } @@ -109,7 +109,7 @@ public abstract class AbstractObserveTreeCellRenderer extends AbstractNavTreeCel ObserveDataProvider provider = (ObserveDataProvider) super.getDataProvider(); if (provider == null) { - DataSource source = ObserveContext.get().getDataSource(); + DataSource source = ObserveSwingApplicationContext.get().getDataSource(); if (source != null) { provider = new ObserveDataProvider(source); setDataProvider(provider); @@ -324,7 +324,7 @@ public abstract class AbstractObserveTreeCellRenderer extends AbstractNavTreeCel log.trace("[" + node + "] Content class to use : " + contentClass); log.trace("[" + node + "] Parent Content class to use : " + parentContentClass); } - DataContext dataContext = ObserveContext.get().getDataContext(); + DataContext dataContext = ObserveSwingApplicationContext.get().getDataContext(); String nodeId = node.getId(); if (ProgramDto.class.equals(contentClass)) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/NavigationTreeSelectionModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/NavigationTreeSelectionModel.java index d0e5b46..8adcd91 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/NavigationTreeSelectionModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/NavigationTreeSelectionModel.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.tree; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -105,7 +105,7 @@ public class NavigationTreeSelectionModel extends DefaultTreeSelectionModel { } if (canChange && !isSelectionEmpty()) { - canChange = ObserveContext.get().closeSelectedContentUI(); + canChange = ObserveSwingApplicationContext.get().closeSelectedContentUI(); } return canChange; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveTreeHelper.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveTreeHelper.java index cb0a1f4..40d05e6 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveTreeHelper.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveTreeHelper.java @@ -22,8 +22,8 @@ package fr.ird.observe.ui.tree; import com.google.common.base.Preconditions; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.DecoratorService; -import fr.ird.observe.ObserveContext; import fr.ird.observe.business.db.DataContext; import fr.ird.observe.business.db.DataSource; import fr.ird.observe.services.dto.OpenableDto; @@ -121,7 +121,7 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { protected ObserveDataProvider getDataProvider() { ObserveDataProvider provider = (ObserveDataProvider) super.getDataProvider(); if (provider == null) { - DataSource source = ObserveContext.get().getDataSource(); + DataSource source = ObserveSwingApplicationContext.get().getDataSource(); if (source != null) { provider = new ObserveDataProvider(source); setDataProvider(provider); @@ -320,7 +320,7 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { JTree tree = getUI(); - List<String> selectedIds = ObserveContext.get().getNodesToReselect(); + List<String> selectedIds = ObserveSwingApplicationContext.get().getNodesToReselect(); if (CollectionUtils.isNotEmpty(selectedIds)) { if (log.isDebugEnabled()) { log.debug("will select previous ids " + selectedIds); @@ -364,7 +364,7 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { } finally { // nettoyage du context - ObserveContext.get().setNodesToReselect(null); + ObserveSwingApplicationContext.get().setNodesToReselect(null); } // navigation tree should acquire focus diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/usage/UsagesUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/usage/UsagesUI.jaxx index b64d064..a2e144b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/usage/UsagesUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/usage/UsagesUI.jaxx @@ -26,7 +26,7 @@ Interface graphique pour afficher la liste des usages d'une entitee donnee. <JPanel id='usagePanel' layout='{new BorderLayout()}'> <import> - fr.ird.observe.ObserveContext + fr.ird.observe.ObserveSwingApplicationContext fr.ird.observe.ui.UIHelper fr.ird.observe.services.dto.AbstractObserveDto @@ -55,10 +55,6 @@ protected UsagesUIHandler getHandler() { return handler; } -protected ObserveContext getObserveContext() { - return ObserveContext.get(); -} - void $afterCompleteSetup() { } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/usage/UsagesUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/usage/UsagesUIHandler.java index c68c0c8..34996a2 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/usage/UsagesUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/usage/UsagesUIHandler.java @@ -21,8 +21,8 @@ */ package fr.ird.observe.ui.usage; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.DecoratorService; -import fr.ird.observe.ObserveContext; import fr.ird.observe.services.dto.AbstractObserveDto; import fr.ird.observe.services.dto.referential.ReferentialDto; import org.apache.commons.logging.Log; @@ -122,7 +122,7 @@ public class UsagesUIHandler { typetitle = t(typetitle, typeTitle, size); pane.setColumnHeaderView(new JLabel(typetitle)); List<String> data = new ArrayList<String>(size); - Decorator<?> decorator = ObserveContext.get().getDecorator(type); + Decorator<?> decorator = ObserveSwingApplicationContext.get().getDecorator(type); if (decorator == null) { throw new NullPointerException( "could not find decorator for type " + type); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/util/ObserveSimpleValidatorMessageTableRenderer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/ObserveSimpleValidatorMessageTableRenderer.java index 1e38bc2..7c3b6ca 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/util/ObserveSimpleValidatorMessageTableRenderer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/ObserveSimpleValidatorMessageTableRenderer.java @@ -23,7 +23,7 @@ package fr.ird.observe.ui.util; */ import fr.ird.observe.business.DecoratorService; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import jaxx.runtime.validator.swing.SimpleBeanValidatorMessageTableModel; import jaxx.runtime.validator.swing.SimpleBeanValidatorMessageTableRenderer; import org.nuiton.validator.NuitonValidatorScope; @@ -48,7 +48,7 @@ public class ObserveSimpleValidatorMessageTableRenderer extends SimpleBeanValida public DecoratorService getDecoratorService() { if (decoratorService == null) { - decoratorService = ObserveContext.get().getDecoratorService(); + decoratorService = ObserveSwingApplicationContext.get().getDecoratorService(); } return decoratorService; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/util/ObserveValidatorMessageTableRenderer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/ObserveValidatorMessageTableRenderer.java index 93ffa04..fbe9ee8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/util/ObserveValidatorMessageTableRenderer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/ObserveValidatorMessageTableRenderer.java @@ -23,7 +23,7 @@ package fr.ird.observe.ui.util; */ import fr.ird.observe.business.DecoratorService; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; import jaxx.runtime.validator.swing.SwingValidatorMessage; import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; import jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer; @@ -51,7 +51,7 @@ public class ObserveValidatorMessageTableRenderer extends SwingValidatorMessageT public DecoratorService getDecoratorService() { if (decoratorService == null) { - decoratorService = ObserveContext.get().getDecoratorService(); + decoratorService = ObserveSwingApplicationContext.get().getDecoratorService(); } return decoratorService; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUIHandler.java index c899950..fa442ba 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUIHandler.java @@ -22,8 +22,8 @@ package fr.ird.observe.ui.util.tripMap; * #L% */ -import fr.ird.observe.ObserveConfig; -import fr.ird.observe.ObserveContext; +import fr.ird.observe.ObserveSwingApplicationContext; +import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.business.ObserveTechnicalException; import fr.ird.observe.business.db.DataSource; import fr.ird.observe.entities.tripMap.TripMapPoint; @@ -69,7 +69,7 @@ public class TripMapUIHandler { protected TripMapUI view; - private ObserveConfig config; + private ObserveSwingApplicationConfig config; protected ReferencedEnvelope tripArea; protected boolean rendererRunning; @@ -94,7 +94,7 @@ public class TripMapUIHandler { } - public void setConfig(ObserveConfig config) { + public void setConfig(ObserveSwingApplicationConfig config) { this.config = config; JMapPane mapPane = getObserveMapPane(); @@ -111,7 +111,7 @@ public class TripMapUIHandler { try { ((CardLayout) view.getLayout()).first(view); - ObserveContext.get().getObserveMainUI().setBusy(true); + ObserveSwingApplicationContext.get().getObserveMainUI().setBusy(true); ObserveMapPane mapPane = getObserveMapPane(); @@ -158,7 +158,7 @@ public class TripMapUIHandler { } catch (Exception e) { throw new ObserveTechnicalException("Unable to load trip map activity points", e); } finally { - ObserveContext.get().getObserveMainUI().setBusy(false); + ObserveSwingApplicationContext.get().getObserveMainUI().setBusy(false); } } diff --git a/observe-application-swing/src/main/resources/META-INF/services/org.nuiton.config.ApplicationConfigProvider b/observe-application-swing/src/main/resources/META-INF/services/org.nuiton.config.ApplicationConfigProvider index 4fe9aed..9b7d106 100644 --- a/observe-application-swing/src/main/resources/META-INF/services/org.nuiton.config.ApplicationConfigProvider +++ b/observe-application-swing/src/main/resources/META-INF/services/org.nuiton.config.ApplicationConfigProvider @@ -1 +1 @@ -fr.ird.observe.ObserveApplicationConfigProvider \ No newline at end of file +fr.ird.observe.configuration.ObserveApplicationConfigProvider \ No newline at end of file diff --git a/observe-application-swing/src/main/resources/i18n/observe-application-swing_en_GB.properties b/observe-application-swing/src/main/resources/i18n/observe-application-swing_en_GB.properties index eeccb53..0c79ab5 100644 --- a/observe-application-swing/src/main/resources/i18n/observe-application-swing_en_GB.properties +++ b/observe-application-swing/src/main/resources/i18n/observe-application-swing_en_GB.properties @@ -1,9 +1,9 @@ nuitonutil.error.convertor.noValue= nuitonutil.error.float.convertor= nuitonutil.error.no.convertor= -observe.about.message= -observe.about.translate.content= -observe.about.translate.title= +observe.about.message=<h3>ObServe</h3><a href\="http\://www.ird.fr/informatique-scientifique/projets/observe/">Système d'Information, d'Observation et de Suivi des pêches thonières tropicales de surface.</a><hr/><p>Application de saisie des données observateurs et de consultation de telles données depuis une base <i>Obstuna</i>.</p> <p>Ce projet a été initiée en 2008 par l'unité US 007-OSIRIS de <a href\="http\://www.ird.fr">l'IRD</a> dans le cadre d'un <a href\="http\://www.ird.fr/infor [...] +observe.about.translate.content=<h2>Comment traduire ObServe</h2>Vous pouvez nous aider à traduire l'application.<hr/><br/><ul><li>Récupérer le fichier <a href\="%s">observe-i18n.csv</a> dans le répertoire <strong>i18n</strong></li><li>ouvrez le avec un tableur avec les options suivantes \: <ul><li>caractère séparateur \: <strong><i>|</i></strong></li><li>encoding <strong><i>UTF-8</i></strong></li><li>texte encapsulé par des <strong><i>"</i></strong></li></ul></li><li>Traduisez, Améliore [...] +observe.about.translate.title=translate ObServe observe.action.HookSize.create.tip= observe.action.HookSize.delete.tip= observe.action.HookSize.detail.tip= @@ -14,21 +14,21 @@ observe.action.HookType.delete.tip= observe.action.HookType.detail.tip= observe.action.HookType.modify.tip= observe.action.HookType.save.tip= -observe.action.about= -observe.action.about.tip= -observe.action.add.floatingObject= -observe.action.add.floatingObject.tip= -observe.action.add.set= -observe.action.add.set.tip= -observe.action.add.setLongline= -observe.action.add.setLongline.tip= -observe.action.admin.cancel= -observe.action.admin.close= -observe.action.apply= -observe.action.auto.copy.to.clipboard= -observe.action.auto.copy.to.clipboard.tip= -observe.action.back.to.list= -observe.action.back.to.list.tip= +observe.action.about=About +observe.action.about.tip=About ObServe... +observe.action.add.floatingObject=Add FAD +observe.action.add.floatingObject.tip=Add a FAD to the activity +observe.action.add.set=Add a Set +observe.action.add.set.tip=Add the set to the activity +observe.action.add.setLongline=Add the fishing operation +observe.action.add.setLongline.tip=Add the fishing operation associated with this activity +observe.action.admin.cancel=Cancel wizard +observe.action.admin.close=Close wizard +observe.action.apply=Apply +observe.action.auto.copy.to.clipboard=Automatic copy in clipboard +observe.action.auto.copy.to.clipboard.tip=Copy automaticly in clipboard with report result +observe.action.back.to.list=Back to list +observe.action.back.to.list.tip=Go back to the list observe.action.baitHaulingStatus.create.tip= observe.action.baitHaulingStatus.delete.tip= observe.action.baitHaulingStatus.detail.tip= @@ -44,36 +44,36 @@ observe.action.baitType.delete.tip= observe.action.baitType.detail.tip= observe.action.baitType.modify.tip= observe.action.baitType.save.tip= -observe.action.cancel= -observe.action.cancel.create.tip= +observe.action.cancel=Cancel +observe.action.cancel.create.tip=Cancel object creation observe.action.catchFateLongline.create.tip= observe.action.catchFateLongline.delete.tip= observe.action.catchFateLongline.detail.tip= observe.action.catchFateLongline.modify.tip= observe.action.catchFateLongline.save.tip= -observe.action.change.storage= -observe.action.change.storage.tip= -observe.action.choose.db.dump= -observe.action.choose.db.dump.description= -observe.action.choose.db.dump.directory= -observe.action.choose.importGPS= -observe.action.choose.importGPS.description= -observe.action.choose.report.directory= -observe.action.choose.reportFile= -observe.action.choose.reportFile.description= +observe.action.change.storage=Change storage +observe.action.change.storage.tip=To change current storage +observe.action.choose.db.dump=Choose the backup +observe.action.choose.db.dump.description=Database backup (*.sql.gz) +observe.action.choose.db.dump.directory=Choose the backup directory +observe.action.choose.importGPS=Use this file +observe.action.choose.importGPS.description=GPS File (*.gpx) +observe.action.choose.report.directory=Choose reports directory +observe.action.choose.reportFile=Choose the reports directory +observe.action.choose.reportFile.description=Report's file (*.properties) observe.action.choose.sensorUsed.exportData= observe.action.choose.sensorUsed.importData= observe.action.choose.tdr.exportData= observe.action.choose.tdr.importData= -observe.action.close= -observe.action.close.activity.tip= -observe.action.close.maree.tip= -observe.action.close.open= +observe.action.close=Close +observe.action.close.activity.tip=Close the opened activity +observe.action.close.maree.tip=Clse the opened maree +observe.action.close.open=Close observe.action.close.open.tip= -observe.action.close.route.tip= -observe.action.close.storage= -observe.action.close.storage.tip= -observe.action.close.synchro.tip= +observe.action.close.route.tip=Close road +observe.action.close.storage=Close storage +observe.action.close.storage.tip=Close current storage +observe.action.close.synchro.tip=close window observe.action.closeAndCreate= observe.action.closeAndCreate.activity= observe.action.closeAndCreate.activity.tip= @@ -82,20 +82,20 @@ observe.action.closeAndCreate.maree.tip= observe.action.closeAndCreate.route= observe.action.closeAndCreate.route.tip= observe.action.closeAndCreate.tip= -observe.action.commandline.configure.ui= -observe.action.commandline.create.id= -observe.action.commandline.disable.main.ui= -observe.action.commandline.help= -observe.action.commandline.help.ui= -observe.action.commandline.launch.admin.ui= +observe.action.commandline.configure.ui=Configure application +observe.action.commandline.create.id=Générer des topiaIds.\nDeux paramètres sont nécessaires \: le FQN de la classe et le nombre d'id à générer. +observe.action.commandline.disable.main.ui=Do NOT launch main gui +observe.action.commandline.help=Show help +observe.action.commandline.help.ui=Show gui help +observe.action.commandline.launch.admin.ui=Launch a administration task observe.action.commandline.launch.h2.server.mode= observe.action.commandline.launch.obstuna.admin.ui= -observe.action.commandline.use.jmx= -observe.action.configuration= -observe.action.configuration.tip= -observe.action.configure= -observe.action.continue= -observe.action.copy= +observe.action.commandline.use.jmx=Add JMX support +observe.action.configuration=Preferences +observe.action.configuration.tip=Change preferences +observe.action.configure=Configure +observe.action.continue=Continue +observe.action.copy=Copy observe.action.copy.column.headers= observe.action.copy.column.headers.tip= observe.action.copy.row.headers= @@ -105,23 +105,23 @@ observe.action.country.delete.tip= observe.action.country.detail.tip= observe.action.country.modify.tip= observe.action.country.save.tip= -observe.action.create= -observe.action.create.activity= -observe.action.create.activity.tip= +observe.action.create=Create +observe.action.create.activity=Create a new activity +observe.action.create.activity.tip=Create a new activity observe.action.create.entry.tip= -observe.action.create.gearUseFeaturesLongline= -observe.action.create.gearUseFeaturesLongline.tip= -observe.action.create.gearUseFeaturesSeine= -observe.action.create.gearUseFeaturesSeine.tip= -observe.action.create.maree= -observe.action.create.maree.tip= +observe.action.create.gearUseFeaturesLongline=Create a new gear use feature +observe.action.create.gearUseFeaturesLongline.tip=Create a new gear use feature +observe.action.create.gearUseFeaturesSeine=Create a new gear use feature +observe.action.create.gearUseFeaturesSeine.tip=Create a new gear use feature +observe.action.create.maree=Create a new maree +observe.action.create.maree.tip=Create a new maree observe.action.create.nonTargetCatch= observe.action.create.nonTargetCatch.tip= observe.action.create.nonTargetSample= observe.action.create.nonTargetSample.tip= observe.action.create.objectObservedSpecies= observe.action.create.objectObservedSpecies.tip= -observe.action.create.route= +observe.action.create.route=Create a new road observe.action.create.route.tip= observe.action.create.schoolEstimate= observe.action.create.schoolEstimate.tip= @@ -133,81 +133,81 @@ observe.action.create.targetSample= observe.action.create.targetSample.tip= observe.action.create.targetSampleCapture= observe.action.create.targetSampleCapture.tip= -observe.action.db.locale.es.tip= -observe.action.db.locale.fr.tip= -observe.action.db.locale.uk.tip= -observe.action.delete= +observe.action.db.locale.es.tip=Change database language in spanish +observe.action.db.locale.fr.tip=Change database language in french +observe.action.db.locale.uk.tip=Change database language in english +observe.action.delete=Delete observe.action.delete.activity.tip= observe.action.delete.entry.tip= observe.action.delete.floatingObject.tip= observe.action.delete.maree.tip= observe.action.delete.route.tip= observe.action.delete.set.tip= -observe.action.delete.tip= -observe.action.detail= +observe.action.delete.tip=Delete +observe.action.detail=Details observe.action.detectionMode.create.tip= observe.action.detectionMode.delete.tip= observe.action.detectionMode.detail.tip= observe.action.detectionMode.modify.tip= observe.action.detectionMode.save.tip= -observe.action.do.backup= -observe.action.do.backup.tip= +observe.action.do.backup=Backup local database +observe.action.do.backup.tip=Make a backup of local database before applying modifications. observe.action.encounterType.create.tip= observe.action.encounterType.delete.tip= observe.action.encounterType.detail.tip= observe.action.encounterType.modify.tip= observe.action.encounterType.save.tip= -observe.action.exit= -observe.action.exit.tip= -observe.action.fpaZone.create.tip= -observe.action.fpaZone.delete.tip= -observe.action.fpaZone.detail.tip= -observe.action.fpaZone.modify.tip= -observe.action.fpaZone.save.tip= -observe.action.gear.create.tip= -observe.action.gear.delete.tip= -observe.action.gear.detail.tip= -observe.action.gear.modify.tip= -observe.action.gear.save.tip= -observe.action.gearCaracteristic.create.tip= -observe.action.gearCaracteristic.delete.tip= -observe.action.gearCaracteristic.detail.tip= -observe.action.gearCaracteristic.modify.tip= -observe.action.gearCaracteristic.save.tip= -observe.action.gearCaracteristicType.create.tip= -observe.action.gearCaracteristicType.delete.tip= -observe.action.gearCaracteristicType.detail.tip= -observe.action.gearCaracteristicType.modify.tip= -observe.action.gearCaracteristicType.save.tip= -observe.action.goDown= -observe.action.goDown.tip= -observe.action.goUp= -observe.action.goUp.tip= -observe.action.goto.next.stage= -observe.action.goto.next.stage.tip= -observe.action.goto.open.activity= -observe.action.goto.open.activity.short= -observe.action.goto.open.activity.tip= -observe.action.goto.open.maree= -observe.action.goto.open.other.activity= -observe.action.goto.open.other.activity.tip= -observe.action.goto.open.other.maree= -observe.action.goto.open.other.maree.tip= -observe.action.goto.open.other.route= -observe.action.goto.open.other.route.tip= -observe.action.goto.open.program.short= -observe.action.goto.open.program.tip= -observe.action.goto.open.route= -observe.action.goto.open.route.short= -observe.action.goto.open.route.tip= -observe.action.goto.open.set.short= +observe.action.exit=Quit +observe.action.exit.tip=quit Observe +observe.action.fpaZone.create.tip=Create an FPA zone +observe.action.fpaZone.delete.tip=Delete the selected FPA zone +observe.action.fpaZone.detail.tip=View details about the selected FPA zone +observe.action.fpaZone.modify.tip=Edit the selected FPA zone +observe.action.fpaZone.save.tip=Save modifications +observe.action.gear.create.tip=Create an gear +observe.action.gear.delete.tip=Delete the selected gear +observe.action.gear.detail.tip=View details about the selected gear +observe.action.gear.modify.tip=Edit the selected gear +observe.action.gear.save.tip=Save modifications +observe.action.gearCaracteristic.create.tip=Create an gear caracteristic +observe.action.gearCaracteristic.delete.tip=Delete the selected gear caracteristic +observe.action.gearCaracteristic.detail.tip=View details about the selected gear caracteristic +observe.action.gearCaracteristic.modify.tip=Edit the selected gear caracteristic +observe.action.gearCaracteristic.save.tip=Save modifications +observe.action.gearCaracteristicType.create.tip=Create an gear caracteristic type +observe.action.gearCaracteristicType.delete.tip=Delete the selected gear caracteristic type +observe.action.gearCaracteristicType.detail.tip=View details about the selected gear caracteristic type +observe.action.gearCaracteristicType.modify.tip=Edit the selected gear caracteristic type +observe.action.gearCaracteristicType.save.tip=Save modifications +observe.action.goDown=Down... +observe.action.goDown.tip=Go down in navigation tree +observe.action.goUp=Up... +observe.action.goUp.tip=Go up in navigation tree +observe.action.goto.next.stage=Next step +observe.action.goto.next.stage.tip=Go to next step +observe.action.goto.open.activity=Go to opened activity +observe.action.goto.open.activity.short=Open activity +observe.action.goto.open.activity.tip=Go to opened activity +observe.action.goto.open.maree=Got to opened trip +observe.action.goto.open.other.activity=Go to opened activity in other road +observe.action.goto.open.other.activity.tip=Got to opened activity in other road +observe.action.goto.open.other.maree=Go to opened trip in other program +observe.action.goto.open.other.maree.tip=Got to opened trip in other program +observe.action.goto.open.other.route=Go to opened road in other trip +observe.action.goto.open.other.route.tip=Go to opened road in other trip +observe.action.goto.open.program.short=Open program +observe.action.goto.open.program.tip=Go to opened program +observe.action.goto.open.route=Go to opened route +observe.action.goto.open.route.short=Open route +observe.action.goto.open.route.tip=Go to opened route +observe.action.goto.open.set.short=Open set observe.action.goto.open.set.tip= -observe.action.goto.open.trip.short= -observe.action.goto.open.trip.tip= -observe.action.goto.previous.stage= -observe.action.goto.previous.stage.tip= -observe.action.goto.referentiel.short= -observe.action.goto.referentiel.tip= +observe.action.goto.open.trip.short=Open trip +observe.action.goto.open.trip.tip=go to opened trip +observe.action.goto.previous.stage=Previous step +observe.action.goto.previous.stage.tip=go to previous step +observe.action.goto.referentiel.short=Referentiel +observe.action.goto.referentiel.tip=Go to referentiel observe.action.goto.selected.activity= observe.action.goto.selected.activity.tip= observe.action.goto.selected.maree= @@ -239,8 +239,8 @@ observe.action.hookType.delete.tip= observe.action.hookType.detail.tip= observe.action.hookType.modify.tip= observe.action.hookType.save.tip= -observe.action.info.storage= -observe.action.info.storage.tip= +observe.action.info.storage=Storage details +observe.action.info.storage.tip=Show storage informations observe.action.itemHorizontalPosition.create.tip= observe.action.itemHorizontalPosition.delete.tip= observe.action.itemHorizontalPosition.detail.tip= @@ -271,14 +271,14 @@ observe.action.lineType.delete.tip= observe.action.lineType.detail.tip= observe.action.lineType.modify.tip= observe.action.lineType.save.tip= -observe.action.load.from.file= -observe.action.load.from.file.tip= -observe.action.locale.es= -observe.action.locale.es.tip= -observe.action.locale.fr= -observe.action.locale.fr.tip= -observe.action.locale.uk= -observe.action.locale.uk.tip= +observe.action.load.from.file=Import backup +observe.action.load.from.file.tip=Load a storage from a database backup +observe.action.locale.es=Spain +observe.action.locale.es.tip=Change application's language in spanish +observe.action.locale.fr=French +observe.action.locale.fr.tip=Change application's language in french +observe.action.locale.uk=English +observe.action.locale.uk.tip=Change application's language in english observe.action.maturityStatus.create.tip= observe.action.maturityStatus.delete.tip= observe.action.maturityStatus.detail.tip= @@ -289,8 +289,8 @@ observe.action.mitigationType.delete.tip= observe.action.mitigationType.detail.tip= observe.action.mitigationType.modify.tip= observe.action.mitigationType.save.tip= -observe.action.modify= -observe.action.new.entry= +observe.action.modify=Modify +observe.action.new.entry=Add observe.action.new.entry.tip= observe.action.objectFate.create.tip= observe.action.objectFate.delete.tip= @@ -351,15 +351,15 @@ observe.action.reasonForNullSet.delete.tip= observe.action.reasonForNullSet.detail.tip= observe.action.reasonForNullSet.modify.tip= observe.action.reasonForNullSet.save.tip= -observe.action.reload.application= -observe.action.reload.storage= -observe.action.reload.storage.tip= -observe.action.reload.ui= -observe.action.reloadDefaultConfiguration= -observe.action.reloadDefaultConfiguration.tip= -observe.action.reloadResources= -observe.action.reloadResources.tip= -observe.action.reopen= +observe.action.reload.application=reload application +observe.action.reload.storage=Reload storage +observe.action.reload.storage.tip=Reload current storage +observe.action.reload.ui=Reload GUI +observe.action.reloadDefaultConfiguration=Reload default resources +observe.action.reloadDefaultConfiguration.tip=Reload default resources +observe.action.reloadResources=Reload i18n +observe.action.reloadResources.tip=Reload i18n translations +observe.action.reopen=Re-open observe.action.reopen.activity.tip= observe.action.reopen.maree.tip= observe.action.reopen.route.tip= @@ -370,7 +370,7 @@ observe.action.reopen.selected.maree.tip= observe.action.reopen.selected.route= observe.action.reopen.selected.route.tip= observe.action.reopen.tip= -observe.action.reset= +observe.action.reset=Reset observe.action.reset.entry.tip= observe.action.reset.ersId.tip= observe.action.reset.formsUrl.tip= @@ -379,18 +379,18 @@ observe.action.reset.new.entry.tip= observe.action.reset.picturesReferences.tip= observe.action.reset.reportsUrl.tip= observe.action.reset.supportVesselName.tip= -observe.action.reset.tip= +observe.action.reset.tip=Cancel modifications observe.action.reset.well.tip= -observe.action.restart.application= -observe.action.restart.application.tip= -observe.action.save= -observe.action.save.all.tip= -observe.action.save.entry.tip= -observe.action.save.tip= -observe.action.save.to.file= -observe.action.save.to.file.tip= -observe.action.selectNode= -observe.action.selectNode.tip= +observe.action.restart.application=Restart +observe.action.restart.application.tip=Restart application +observe.action.save=Save +observe.action.save.all.tip=Save all modifications +observe.action.save.entry.tip=Save modifications +observe.action.save.tip=Save modifications +observe.action.save.to.file=Backup storage +observe.action.save.to.file.tip=Make a backup of opened storage +observe.action.selectNode=Select a node +observe.action.selectNode.tip=Select a node observe.action.sensorBrand.create.tip= observe.action.sensorBrand.delete.tip= observe.action.sensorBrand.detail.tip= @@ -416,12 +416,12 @@ observe.action.sex.delete.tip= observe.action.sex.detail.tip= observe.action.sex.modify.tip= observe.action.sex.save.tip= -observe.action.show.technical.informations.tip= -observe.action.show.unique.keys.tip= -observe.action.show.usages.tip= +observe.action.show.technical.informations.tip=Show technical informations +observe.action.show.unique.keys.tip=Show all natural ids for this type of object +observe.action.show.usages.tip=Show all usages of this object observe.action.showConfig.title= -observe.action.site= -observe.action.site.tip= +observe.action.site=Site +observe.action.site.tip=Go to ObServe's website observe.action.sizeMeasureType.create.tip= observe.action.sizeMeasureType.delete.tip= observe.action.sizeMeasureType.detail.tip= @@ -464,24 +464,24 @@ observe.action.stop.h2.web.server= observe.action.stop.h2.web.server.tip= observe.action.stop.server.mode= observe.action.stop.server.mode.tip= -observe.action.storage.apply= -observe.action.storage.apply.tip= -observe.action.storage.applyAction= -observe.action.storage.cancel= -observe.action.storage.cancel.tip= +observe.action.storage.apply=Apply +observe.action.storage.apply.tip=Apply configured storage +observe.action.storage.applyAction=Change storage +observe.action.storage.cancel=Cancel change storage +observe.action.storage.cancel.tip=Cancel change of storage observe.action.surroundingActivity.create.tip= observe.action.surroundingActivity.delete.tip= observe.action.surroundingActivity.detail.tip= observe.action.surroundingActivity.modify.tip= observe.action.surroundingActivity.save.tip= -observe.action.synchro.apply.modifications= -observe.action.synchro.cancel.tip= -observe.action.synchro.copy.tip= -observe.action.synchro.launch.operation= -observe.action.synchro.prepare.operation= -observe.action.synchro.report.reset.tip= -observe.action.test.remote= -observe.action.test.remote.tip= +observe.action.synchro.apply.modifications=Apply modifications +observe.action.synchro.cancel.tip=Cancel +observe.action.synchro.copy.tip=Copy result of report in clipboard +observe.action.synchro.launch.operation=Launch operation < %1$S > +observe.action.synchro.prepare.operation=Prepare operation < %1$s > +observe.action.synchro.report.reset.tip=Reset selected report. +observe.action.test.remote=Test connexion +observe.action.test.remote.tip=Click here to validate remote connexion observe.action.transmittingBuoyOperation.create.tip= observe.action.transmittingBuoyOperation.delete.tip= observe.action.transmittingBuoyOperation.detail.tip= @@ -507,9 +507,9 @@ observe.action.vesselActivityLongline.delete.tip= observe.action.vesselActivityLongline.detail.tip= observe.action.vesselActivityLongline.modify.tip= observe.action.vesselActivityLongline.save.tip= -observe.action.vesselActivitySeine.create.tip= -observe.action.vesselActivitySeine.delete.tip= -observe.action.vesselActivitySeine.detail.tip= +observe.action.vesselActivitySeine.create.tip=Create a new boat activity +observe.action.vesselActivitySeine.delete.tip=Delete selected boat activity +observe.action.vesselActivitySeine.detail.tip=Show detail of selected boat activity observe.action.vesselActivitySeine.modify.tip= observe.action.vesselActivitySeine.save.tip= observe.action.vesselSizeCategory.create.tip= @@ -537,34 +537,34 @@ observe.action.wind.delete.tip= observe.action.wind.detail.tip= observe.action.wind.modify.tip= observe.action.wind.save.tip= -observe.activityLongline.coordinate= -observe.activityLongline.fpaZone= -observe.activityLongline.message.active.found= -observe.activityLongline.message.active.found.for.other.trip= -observe.activityLongline.message.creating= -observe.activityLongline.message.no.active.found= -observe.activityLongline.message.no.active.found.for.other.trip= -observe.activityLongline.message.not.open= -observe.activityLongline.message.updating= -observe.activityLongline.seaSurfaceTemperature= -observe.activityLongline.timeStamp= -observe.activityLongline.title= -observe.activityLongline.vesselActivityLongline= -observe.activityLonglines.title= -observe.activityObservedSystem.availableObservedSystem= -observe.activityObservedSystem.selectedObservedSystem= -observe.activitySeine.message.active.found= -observe.activitySeine.message.active.found.for.other.route= -observe.activitySeine.message.creating= -observe.activitySeine.message.no.active.found= -observe.activitySeine.message.no.active.found.for.other.route= -observe.activitySeine.message.not.open= -observe.activitySeine.message.updating= -observe.activitySeine.tab.general= -observe.activitySeine.tab.measurements= -observe.activitySeine.title= +observe.activityLongline.coordinate=Coordinates +observe.activityLongline.fpaZone=FPA Zone +observe.activityLongline.message.active.found=An activity is opened. +observe.activityLongline.message.active.found.for.other.trip=An activity is opened in another trip. +observe.activityLongline.message.creating=Creating an activity +observe.activityLongline.message.no.active.found=No opened activity found, you can create a new one, or open an existing one. +observe.activityLongline.message.no.active.found.for.other.trip=No opened activity found on current trip. +observe.activityLongline.message.not.open=Activity is not opened, no edit possible. +observe.activityLongline.message.updating=Updating an activity +observe.activityLongline.seaSurfaceTemperature=SST (°c) +observe.activityLongline.timeStamp=timestamp +observe.activityLongline.title=Activity +observe.activityLongline.vesselActivityLongline=Vessel activity +observe.activityLonglines.title=Activities +observe.activityObservedSystem.availableObservedSystem=Available observed systems +observe.activityObservedSystem.selectedObservedSystem=Selected observed systems +observe.activitySeine.message.active.found=An activity is opened. +observe.activitySeine.message.active.found.for.other.route=An activity is opened in another route. +observe.activitySeine.message.creating=Creating an activity +observe.activitySeine.message.no.active.found=No opened activity found, you can create a new one, or open an existing one. +observe.activitySeine.message.no.active.found.for.other.route=No opened activity found on current route. +observe.activitySeine.message.not.open=Activity is not opened, no edit possible. +observe.activitySeine.message.updating=Updating an activity +observe.activitySeine.tab.general=General caracteristics +observe.activitySeine.tab.measurements=Measurements +observe.activitySeine.title=Activity observe.activitySeineObservedSystem.title= -observe.activitySeines.title= +observe.activitySeines.title=Activities observe.admin.resume.no.operation.done= observe.admin.resume.operation.canceled= observe.admin.resume.operation.done= @@ -572,162 +572,162 @@ observe.admin.resume.operation.failed= observe.admin.resume.operation.need.fix= observe.admin.resume.operation.not.started= observe.admin.resume.operation.running= -observe.application.config= -observe.baitsComposition.action.create= -observe.baitsComposition.action.create.tip= -observe.baitsComposition.baitSettingStatus= -observe.baitsComposition.baitType= -observe.baitsComposition.individualSize= -observe.baitsComposition.individualWeight= -observe.baitsComposition.proportion= -observe.baitsComposition.proportionSum= -observe.baitsComposition.table.baitSettingStatus= -observe.baitsComposition.table.baitSettingStatus.tip= -observe.baitsComposition.table.baitType= -observe.baitsComposition.table.baitType.tip= -observe.baitsComposition.table.individualSize= -observe.baitsComposition.table.individualSize.tip= -observe.baitsComposition.table.individualWeight= -observe.baitsComposition.table.individualWeight.tip= -observe.baitsComposition.table.proportion= -observe.baitsComposition.table.proportion.tip= -observe.baitsComposition.title= -observe.basket.cant.delete.message= -observe.basket.cant.delete.title= +observe.application.config=ObServe Configuration +observe.baitsComposition.action.create=Insert this bait +observe.baitsComposition.action.create.tip=Insert this bait +observe.baitsComposition.baitSettingStatus=Bait setting status +observe.baitsComposition.baitType=Bait type +observe.baitsComposition.individualSize=Size +observe.baitsComposition.individualWeight=Weight +observe.baitsComposition.proportion=Proportion +observe.baitsComposition.proportionSum=Proportion sum +observe.baitsComposition.table.baitSettingStatus=Status +observe.baitsComposition.table.baitSettingStatus.tip=Bait setting status +observe.baitsComposition.table.baitType=Type +observe.baitsComposition.table.baitType.tip=Bait type +observe.baitsComposition.table.individualSize=Size +observe.baitsComposition.table.individualSize.tip=Individual size +observe.baitsComposition.table.individualWeight=Weight +observe.baitsComposition.table.individualWeight.tip=Individual weight +observe.baitsComposition.table.proportion=Proportion +observe.baitsComposition.table.proportion.tip=Proportion +observe.baitsComposition.title=Baits +observe.basket.cant.delete.message=The current basket can not be deleted since it used by other data. +observe.basket.cant.delete.title=Can't delete basket observe.basket.invalid.nextFloatline1Length= -observe.branchLine.cant.delete.message= -observe.branchLine.cant.delete.title= -observe.branchline.baitHaulingStatus= -observe.branchline.baitSettingStatus= -observe.branchline.baitType= -observe.branchline.comment= -observe.branchline.depthRecorder= -observe.branchline.hookLost= -observe.branchline.hookOffset= -observe.branchline.hookSize= -observe.branchline.hookType= +observe.branchLine.cant.delete.message=The current branchline can not be deleted since it used by other data. +observe.branchLine.cant.delete.title=Can't delete branchline +observe.branchline.baitHaulingStatus=Bait hauling status +observe.branchline.baitSettingStatus=Bait setting status +observe.branchline.baitType=Bait type +observe.branchline.comment=Comment +observe.branchline.depthRecorder=Depth recorder +observe.branchline.hookLost=Hook lost +observe.branchline.hookOffset=Hook offset +observe.branchline.hookSize=Hook size +observe.branchline.hookType=Hook type observe.branchline.message.modified= observe.branchline.message.modified.but.invalid= -observe.branchline.snapWeight= -observe.branchline.swivelWeight= +observe.branchline.snapWeight=Snap weight (kg) +observe.branchline.swivelWeight=Swivel weight (kg) observe.branchline.tab.general= observe.branchline.tab.hookAndBait= -observe.branchline.timeSinceContact= -observe.branchline.timer= -observe.branchline.timerTimeOnBoard= -observe.branchline.title= -observe.branchline.topType= -observe.branchline.traceCutOff= -observe.branchline.tracelineType= -observe.branchline.weightedSnap= -observe.branchline.weightedSwivel= -observe.branchlinesComposition.action.create= -observe.branchlinesComposition.action.create.tip= -observe.branchlinesComposition.length= -observe.branchlinesComposition.proportion= -observe.branchlinesComposition.proportionSum= -observe.branchlinesComposition.table.length= -observe.branchlinesComposition.table.length.tip= -observe.branchlinesComposition.table.proportion= -observe.branchlinesComposition.table.proportion.tip= -observe.branchlinesComposition.table.topType= -observe.branchlinesComposition.table.topType.tip= -observe.branchlinesComposition.table.tracelineType= -observe.branchlinesComposition.table.tracelineType.tip= -observe.branchlinesComposition.title= -observe.branchlinesComposition.topType= -observe.branchlinesComposition.tracelineType= -observe.broughtOnDeck.comment= -observe.catchLongline.acquisitionMode= -observe.catchLongline.acquisitionMode.grouped= -observe.catchLongline.acquisitionMode.individual= -observe.catchLongline.action.create= -observe.catchLongline.action.create.tip= +observe.branchline.timeSinceContact=Time since contact +observe.branchline.timer=Timer +observe.branchline.timerTimeOnBoard=Time on board +observe.branchline.title=Branchline detail +observe.branchline.topType=Top part type +observe.branchline.traceCutOff=Trace cut off +observe.branchline.tracelineType=Traceline type +observe.branchline.weightedSnap=Weighted snap +observe.branchline.weightedSwivel=Weighted swivel +observe.branchlinesComposition.action.create=Insert this branchline +observe.branchlinesComposition.action.create.tip=Insert this branchline +observe.branchlinesComposition.length=Length +observe.branchlinesComposition.proportion=Proportion +observe.branchlinesComposition.proportionSum=Proportion sum +observe.branchlinesComposition.table.length=Length +observe.branchlinesComposition.table.length.tip=Length +observe.branchlinesComposition.table.proportion=Proportion +observe.branchlinesComposition.table.proportion.tip=Proportion +observe.branchlinesComposition.table.topType=Top part type +observe.branchlinesComposition.table.topType.tip=Top part type +observe.branchlinesComposition.table.tracelineType=Traceline type +observe.branchlinesComposition.table.tracelineType.tip=Traceline type +observe.branchlinesComposition.title=Branchlines +observe.branchlinesComposition.topType=Top part type +observe.branchlinesComposition.tracelineType=Traceline type +observe.broughtOnDeck.comment=Only species brought on deck can be sampled +observe.catchLongline.acquisitionMode=Acquisition mode +observe.catchLongline.acquisitionMode.grouped=Batch +observe.catchLongline.acquisitionMode.individual=Individual +observe.catchLongline.action.create=Insert this catch +observe.catchLongline.action.create.tip=Insert this catch observe.catchLongline.action.new= observe.catchLongline.action.new.tip= -observe.catchLongline.action.reset.photoReferences.tip= -observe.catchLongline.availablePredator= -observe.catchLongline.basket= -observe.catchLongline.beatDiameter= -observe.catchLongline.branchline= -observe.catchLongline.catchFateLongline= -observe.catchLongline.catchHealthness= -observe.catchLongline.comment= -observe.catchLongline.count= -observe.catchLongline.depredated= -observe.catchLongline.discardHealthness= -observe.catchLongline.gonadeWeight= -observe.catchLongline.hookPosition= -observe.catchLongline.hookWhenDiscarded= -observe.catchLongline.locationOnLongline= -observe.catchLongline.maturityStatus= -observe.catchLongline.photoReferences= -observe.catchLongline.predator= +observe.catchLongline.action.reset.photoReferences.tip=Reset photo references +observe.catchLongline.availablePredator=Avaiable predators +observe.catchLongline.basket=Bakset +observe.catchLongline.beatDiameter=Beat diameter +observe.catchLongline.branchline=Branchline +observe.catchLongline.catchFateLongline=Fate +observe.catchLongline.catchHealthness=Catch healthness +observe.catchLongline.comment=Comment +observe.catchLongline.count=Count +observe.catchLongline.depredated=Depredated +observe.catchLongline.discardHealthness=Discard healthness +observe.catchLongline.gonadeWeight=Gonade weigth (g) +observe.catchLongline.hookPosition=Hook position +observe.catchLongline.hookWhenDiscarded=Discarded with hook +observe.catchLongline.locationOnLongline=Location on longline +observe.catchLongline.maturityStatus=Sexual maturity +observe.catchLongline.photoReferences=Photo references +observe.catchLongline.predator=Predators observe.catchLongline.resetBranchline= observe.catchLongline.resetBranchline.tip= observe.catchLongline.saveBranchline= observe.catchLongline.saveBranchline.tip= -observe.catchLongline.section= -observe.catchLongline.selectedPredator= -observe.catchLongline.sex= -observe.catchLongline.speciesCatch= -observe.catchLongline.stomacFullness= +observe.catchLongline.section=Section +observe.catchLongline.selectedPredator=Selected predators +observe.catchLongline.sex=Sex +observe.catchLongline.speciesCatch=Species +observe.catchLongline.stomacFullness=Stomac fullness observe.catchLongline.tab.branchline= -observe.catchLongline.tab.caracteristics= -observe.catchLongline.tab.depredated= -observe.catchLongline.tab.foodAndSexual= -observe.catchLongline.tab.sizeMeasures= -observe.catchLongline.tab.weightMeasures= -observe.catchLongline.title= -observe.catchLongline.totalWeight= -observe.catchlongline.table.acquisitionMode= -observe.catchlongline.table.acquisitionMode.tip= +observe.catchLongline.tab.caracteristics=Caracteristics +observe.catchLongline.tab.depredated=Depredation +observe.catchLongline.tab.foodAndSexual=Food and sexual maturity +observe.catchLongline.tab.sizeMeasures=Sizes +observe.catchLongline.tab.weightMeasures=Weights +observe.catchLongline.title=Catches +observe.catchLongline.totalWeight=Total weight (kg) +observe.catchlongline.table.acquisitionMode=Acquisition mode +observe.catchlongline.table.acquisitionMode.tip=Acquisition mode observe.catchlongline.table.basketHaulingId= observe.catchlongline.table.basketHaulingId.tip= observe.catchlongline.table.branchlineHaulingId= observe.catchlongline.table.branchlineHaulingId.tip= -observe.catchlongline.table.catchFateLongline= -observe.catchlongline.table.catchFateLongline.tip= -observe.catchlongline.table.catchHealthness= -observe.catchlongline.table.catchHealthness.tip= -observe.catchlongline.table.comment= -observe.catchlongline.table.comment.tip= -observe.catchlongline.table.count= -observe.catchlongline.table.count.tip= -observe.catchlongline.table.depredated= -observe.catchlongline.table.depredated.tip= -observe.catchlongline.table.discardHealthness= -observe.catchlongline.table.discardHealthness.tip= +observe.catchlongline.table.catchFateLongline=Fate +observe.catchlongline.table.catchFateLongline.tip=Fate +observe.catchlongline.table.catchHealthness=Catch healthness +observe.catchlongline.table.catchHealthness.tip=Catch healthness +observe.catchlongline.table.comment=Comment +observe.catchlongline.table.comment.tip=Comment +observe.catchlongline.table.count=Count +observe.catchlongline.table.count.tip=Count +observe.catchlongline.table.depredated=Depredated +observe.catchlongline.table.depredated.tip=Depredated +observe.catchlongline.table.discardHealthness=Discard healthness +observe.catchlongline.table.discardHealthness.tip=Discard healthness observe.catchlongline.table.sectionHaulingId= observe.catchlongline.table.sectionHaulingId.tip= -observe.catchlongline.table.size= -observe.catchlongline.table.size.tip= -observe.catchlongline.table.sizeMeasureType= -observe.catchlongline.table.sizeMeasureType.tip= -observe.catchlongline.table.speciesCatch= -observe.catchlongline.table.speciesCatch.tip= -observe.catchlongline.table.weight= -observe.catchlongline.table.weight.tip= -observe.catchlongline.table.weightMeasureType= -observe.catchlongline.table.weightMeasureType.tip= -observe.choice.cancel= -observe.choice.confirm.delete= -observe.choice.continue= -observe.choice.create.fin.veille.activity= +observe.catchlongline.table.size=Size (cm) +observe.catchlongline.table.size.tip=Size (cm) +observe.catchlongline.table.sizeMeasureType=Measure type +observe.catchlongline.table.sizeMeasureType.tip=Measure type +observe.catchlongline.table.speciesCatch=Species +observe.catchlongline.table.speciesCatch.tip=Species +observe.catchlongline.table.weight=Measure (kg) +observe.catchlongline.table.weight.tip=Measure (kg) +observe.catchlongline.table.weightMeasureType=Measure type +observe.catchlongline.table.weightMeasureType.tip=Measure type +observe.choice.cancel=Cancel +observe.choice.confirm.delete=Confirm delete +observe.choice.continue=Continue +observe.choice.create.fin.veille.activity=Create end activity observe.choice.create.fin.veille.activity.and.continue= -observe.choice.createLocalStorage= -observe.choice.doNotSave= -observe.choice.doNothing= +observe.choice.createLocalStorage=Create local storage +observe.choice.doNotSave=Do not save +observe.choice.doNothing=Do nothing observe.choice.not.create.fin.veille.activity.and.continue= -observe.choice.quit= -observe.choice.save= -observe.choice.useRemoteStorage= +observe.choice.quit=Quit +observe.choice.save=Save +observe.choice.useRemoteStorage=Use a remote storage observe.common.acquisitionMode= observe.common.acquisitionMode.count= observe.common.acquisitionMode.individu= -observe.common.activities= -observe.common.activities.list= -observe.common.activity= +observe.common.activities=Activities +observe.common.activities.list=List of activities +observe.common.activity=Activity observe.common.activityLongline= observe.common.activitySeine= observe.common.baitHaulingStatus= @@ -736,7 +736,7 @@ observe.common.baitSettingStatus= observe.common.baitType= observe.common.baitsComposition= observe.common.basket= -observe.common.birdsObservation= +observe.common.birdsObservation=Birds observe.common.boolean.false= observe.common.boolean.null= observe.common.boolean.true= @@ -756,8 +756,8 @@ observe.common.catchWeight= observe.common.catchWeightComputed.computed.tip= observe.common.catchWeightComputed.observed.tip= observe.common.changeDate= -observe.common.code= -observe.common.codeAndStatus= +observe.common.code=Code +observe.common.codeAndStatus=Code / Status observe.common.coefficients= observe.common.comment= observe.common.comment.activity= @@ -774,7 +774,7 @@ observe.common.currentFpaZone= observe.common.dataEntryOperator= observe.common.date= observe.common.daysAtSeaCount= -observe.common.departureHarbour= +observe.common.departureHarbour=Departure harbour observe.common.description= observe.common.detailledActivitiesObservation= observe.common.detectionMode= @@ -800,7 +800,7 @@ observe.common.gaugeLabel= observe.common.gear= observe.common.gearCaracteristic= observe.common.gearCaracteristicType= -observe.common.gearType= +observe.common.gearType=Gear caracteristic type observe.common.gearUseFeaturesLongline= observe.common.gearUseFeaturesSeine= observe.common.gender= @@ -835,9 +835,9 @@ observe.common.label5= observe.common.label6= observe.common.label7= observe.common.label8= -observe.common.landingHarbour= +observe.common.landingHarbour=Landing harbour observe.common.lastName= -observe.common.latitude= +observe.common.latitude=Latitude observe.common.length= observe.common.length.computed.tip= observe.common.length.inf= @@ -850,7 +850,7 @@ observe.common.lightsticksColor= observe.common.lightsticksType= observe.common.lineType= observe.common.locode= -observe.common.longitude= +observe.common.longitude=Longitude observe.common.lowerValueUpperValue= observe.common.mammalsObservation= observe.common.maturityStatus= @@ -885,12 +885,12 @@ observe.common.objectOperation= observe.common.objectSchoolEstimate= observe.common.objectType= observe.common.objectsObservation= -observe.common.observedSystem= +observe.common.observedSystem=Observed system observe.common.observedSystemDistance= observe.common.observer= observe.common.observerLabel= observe.common.obsolete.entity= -observe.common.ocean= +observe.common.ocean=Ocean observe.common.ocean/label1= observe.common.ocean/label2= observe.common.ocean/label3= @@ -925,7 +925,7 @@ observe.common.reasonForNullSet= observe.common.reportsUrl= observe.common.resume= observe.common.route= -observe.common.routes.list= +observe.common.routes.list=List of routes observe.common.samplesObservation= observe.common.schoolEstimate= observe.common.schoolType= @@ -960,7 +960,7 @@ observe.common.settingShape= observe.common.sex= observe.common.sizeMeasure= observe.common.sizeMeasureType= -observe.common.species= +observe.common.species=Species observe.common.species/scientificLabel= observe.common.speciesFate= observe.common.speciesFaune= @@ -973,7 +973,7 @@ observe.common.startDate= observe.common.startDateFinProgram= observe.common.startDateFinValidite= observe.common.startLogValue= -observe.common.status= +observe.common.status=Status observe.common.step.description= observe.common.stomacFullness= observe.common.storage.not.valid= @@ -1004,12 +1004,12 @@ observe.common.transmittingBuoyType= observe.common.tripLongline= observe.common.tripSeine= observe.common.tripType= -observe.common.trips.list= +observe.common.trips.list=List of trips observe.common.typeTransmittingBuoyOperation= observe.common.undefined= observe.common.undefined.tip= observe.common.uri= -observe.common.vessel= +observe.common.vessel=Boat observe.common.vessel/label1= observe.common.vessel/label2= observe.common.vessel/label3= @@ -1019,7 +1019,7 @@ observe.common.vessel/label6= observe.common.vessel/label7= observe.common.vessel/label8= observe.common.vesselActivityLongline= -observe.common.vesselActivitySeine= +observe.common.vesselActivitySeine=Boat Activity observe.common.vesselActivitySeine.comment= observe.common.vesselActivitySeine/label1= observe.common.vesselActivitySeine/label2= @@ -1045,48 +1045,48 @@ observe.common.well= observe.common.wind= observe.common.yearService= observe.comon.exist.on.remote= -observe.config.category.changeStorage= -observe.config.category.changeStorage.description= -observe.config.category.directories= -observe.config.category.directories.description= -observe.config.category.gps= -observe.config.category.gps.description= -observe.config.category.h2= -observe.config.category.h2.description= +observe.config.category.changeStorage=Data sources +observe.config.category.changeStorage.description=To change Data sources +observe.config.category.directories=Directories +observe.config.category.directories.description=Directories used by application +observe.config.category.gps=GPS +observe.config.category.gps.description=GPS Configuration +observe.config.category.h2=Local data source +observe.config.category.h2.description=Configuration of local data source observe.config.category.map= observe.config.category.map.description= observe.config.category.observation= observe.config.category.observation.description= -observe.config.category.obstuna= -observe.config.category.obstuna.description= -observe.config.category.other= -observe.config.category.other.description= +observe.config.category.obstuna=Remote data source +observe.config.category.obstuna.description=Configuration of remote data source +observe.config.category.other=Other... +observe.config.category.other.description=Other properties observe.config.category.speciesList.longline= observe.config.category.speciesList.longline.description= observe.config.category.speciesList.seine= observe.config.category.speciesList.seine.description= -observe.config.category.synchro= -observe.config.category.synchro.description= -observe.config.configFileName.description= -observe.config.db.locale= -observe.config.defaultBackupDirectory.description= -observe.config.defaultCreationMode= -observe.config.defaultDataDirectory.description= -observe.config.defaultDbMode= +observe.config.category.synchro=Admin Tasks +observe.config.category.synchro.description=Administrations tasks to perform on data sources +observe.config.configFileName.description=Configuration filename +observe.config.db.locale=Language of data source +observe.config.defaultBackupDirectory.description=Default directory where are stored backup of data sources +observe.config.defaultCreationMode=Default creation mode of new local data source +observe.config.defaultDataDirectory.description=Default user directory +observe.config.defaultDbMode=Err \:509 observe.config.defaultGpsMaxDelay= -observe.config.defaultGpsMaxSpeed= -observe.config.defaultI18nDirectory.description= -observe.config.defaultInitialDbDump.description= -observe.config.defaultLocalDbDirectory.description= +observe.config.defaultGpsMaxSpeed=Maximum speed +observe.config.defaultI18nDirectory.description=Default i18n directory where to store i18n resources +observe.config.defaultInitialDbDump.description=Default location of initial database +observe.config.defaultLocalDbDirectory.description=Default directory where to store local data source observe.config.defaultMapDirectory.description= -observe.config.defaultReportDirectory.description= -observe.config.defaultResourcesDirectory.description= -observe.config.defaultTmpDirectory.description= -observe.config.defaultValidationReportDirectory.description= -observe.config.devMode= -observe.config.h2.can.migrate.description= -observe.config.h2.login.description= -observe.config.h2.password.description= +observe.config.defaultReportDirectory.description=Default directory where to store report definition files +observe.config.defaultResourcesDirectory.description=Default user resources directory +observe.config.defaultTmpDirectory.description=Default temporary directory used by application and clean at each launch. +observe.config.defaultValidationReportDirectory.description=Default validation report directory +observe.config.devMode=Dev mode +observe.config.h2.can.migrate.description=Flag to know if you can migrate h2 data sources +observe.config.h2.login.description=H2 Login +observe.config.h2.password.description=H2 Password observe.config.h2.serverPort.description= observe.config.logConfigurationFile.description= observe.config.map.background.description= @@ -1109,14 +1109,18 @@ observe.config.observation.mammiferes= observe.config.observation.mensurations= observe.config.observation.oiseaux= observe.config.observation.rejetsThons= -observe.config.obstuna.login.description= -observe.config.obstuna.password.description= -observe.config.obstuna.url.description= -observe.config.obstuna.useSsl.description= -observe.config.pg.can.migrate.description= -observe.config.showMigrationProgression= -observe.config.showMigrationSql= -observe.config.showSql= +observe.config.obstuna.login.description=Remote login +observe.config.obstuna.password.description=Remote password +observe.config.obstuna.url.description=URL of remote data source +observe.config.obstuna.useSsl.description=Flag sets to true when your are using remote with ssl +observe.config.pg.can.migrate.description=Flat sets to true when you can migrate remote data sources +observe.config.server.dataBaseName.description= +observe.config.server.login.description= +observe.config.server.password.description= +observe.config.server.url.description= +observe.config.showMigrationProgression=Show migration progression +observe.config.showMigrationSql=Show migration sql queries +observe.config.showSql=Show sql observe.config.speciesList.longline.catch= observe.config.speciesList.longline.encounter= observe.config.speciesList.seine.nonTargetCatch= @@ -1124,32 +1128,32 @@ observe.config.speciesList.seine.objectObservedSpecies= observe.config.speciesList.seine.objectSchoolEstimate= observe.config.speciesList.seine.schoolEstimate= observe.config.speciesList.seine.targetCatch= -observe.config.ui.autoPopupNumberEditor= -observe.config.ui.changeSynchroSrc= -observe.config.ui.fullscreen= -observe.config.ui.loadLocalStorage= -observe.config.ui.locale= -observe.config.ui.showNumberEditorButton= -observe.config.ui.showTimeEditorSlider= -observe.config.ui.storeRemoteStorage= +observe.config.ui.autoPopupNumberEditor=Flag sets to true when number editor show automaticly popup +observe.config.ui.changeSynchroSrc=Flag sets to true if you can change local source in admin tasks +observe.config.ui.fullscreen=Flag sets to true to lauch application in full screen mode +observe.config.ui.loadLocalStorage=Flag sets to true to load local data source when application starts +observe.config.ui.locale=Application's language +observe.config.ui.showNumberEditorButton=Flag sets to true to show button to invoke popup on number's editors +observe.config.ui.showTimeEditorSlider=Show timer slider +observe.config.ui.storeRemoteStorage=Flag sets to true to store in config a remote connexion (except passwords) observe.content.mode.create.tip= observe.content.mode.read.tip= observe.content.mode.update.tip= -observe.encounter.action.create= -observe.encounter.action.create.tip= -observe.encounter.count= -observe.encounter.distance= -observe.encounter.encounterType= -observe.encounter.species= -observe.encounter.table.count= -observe.encounter.table.count.tip= -observe.encounter.table.distance= -observe.encounter.table.distance.tip= -observe.encounter.table.encouterType= -observe.encounter.table.encouterType.tip= -observe.encounter.table.species= -observe.encounter.table.species.tip= -observe.encounter.title= +observe.encounter.action.create=Insert this encounter +observe.encounter.action.create.tip=Insert this encounter +observe.encounter.count=Count +observe.encounter.distance=Distance (m) +observe.encounter.encounterType=Type +observe.encounter.species=species +observe.encounter.table.count=Count +observe.encounter.table.count.tip=Count +observe.encounter.table.distance=Distance (m) +observe.encounter.table.distance.tip=Distance (m) +observe.encounter.table.encouterType=Type +observe.encounter.table.encouterType.tip=Type +observe.encounter.table.species=Species +observe.encounter.table.species.tip=Species +observe.encounter.title=Encounters observe.entity.message.updating= observe.error.can.not.create.directory= observe.error.no.activity.6= @@ -1162,104 +1166,104 @@ observe.error.speciesList.seine.objectSchoolEstimate.notFound= observe.error.speciesList.seine.targetCatch.notFound= observe.error.storage.could.not.backup.unsane.local.db= observe.error.storage.could.not.load.local.db= -observe.floatingObject.message.creating= -observe.floatingObject.message.updating= -observe.floatingObject.title= +observe.floatingObject.message.creating=Creating a floating object +observe.floatingObject.message.updating=updating a floating object +observe.floatingObject.title=DCP observe.floatingObjectTransmittingBuoyOperation.title= -observe.floatlinesComposition.action.create= -observe.floatlinesComposition.action.create.tip= -observe.floatlinesComposition.length= -observe.floatlinesComposition.lineType= -observe.floatlinesComposition.proportion= -observe.floatlinesComposition.proportionSum= -observe.floatlinesComposition.table.length= -observe.floatlinesComposition.table.length.tip= -observe.floatlinesComposition.table.lineType= -observe.floatlinesComposition.table.lineType.tip= -observe.floatlinesComposition.table.proportion= -observe.floatlinesComposition.table.proportion.tip= -observe.floatlinesComposition.title= -observe.gear.availableGearCaracteristic= -observe.gear.gearCaracteristic= -observe.gear.gearCaracteristicType= -observe.gear.selectedGearCaracteristic= -observe.gear.tab.gearCaracteristic= -observe.gear.tab.general= -observe.gear.unit= -observe.gearUseFeaturesLongline.action.deleteSelectedMeasurement= -observe.gearUseFeaturesLongline.action.deleteSelectedMeasurement.tip= -observe.gearUseFeaturesLongline.comment= -observe.gearUseFeaturesLongline.gear= -observe.gearUseFeaturesLongline.number= -observe.gearUseFeaturesLongline.tab.general= -observe.gearUseFeaturesLongline.tab.measurements= -observe.gearUseFeaturesLongline.table.comment= -observe.gearUseFeaturesLongline.table.comment.tip= -observe.gearUseFeaturesLongline.table.gear= -observe.gearUseFeaturesLongline.table.gear.tip= -observe.gearUseFeaturesLongline.table.gearCaracteristic= -observe.gearUseFeaturesLongline.table.gearCaracteristic.tip= -observe.gearUseFeaturesLongline.table.number= -observe.gearUseFeaturesLongline.table.number.tip= -observe.gearUseFeaturesLongline.table.usedInTrip= -observe.gearUseFeaturesLongline.table.usedInTrip.tip= -observe.gearUseFeaturesLongline.table.value= -observe.gearUseFeaturesLongline.table.value.tip= -observe.gearUseFeaturesLongline.title= -observe.gearUseFeaturesLongline.usedInTrip= -observe.gearUseFeaturesSeine.action.deleteSelectedMeasurement= -observe.gearUseFeaturesSeine.action.deleteSelectedMeasurement.tip= -observe.gearUseFeaturesSeine.comment= -observe.gearUseFeaturesSeine.gear= -observe.gearUseFeaturesSeine.number= -observe.gearUseFeaturesSeine.tab.general= -observe.gearUseFeaturesSeine.tab.measurements= -observe.gearUseFeaturesSeine.table.comment= -observe.gearUseFeaturesSeine.table.comment.tip= -observe.gearUseFeaturesSeine.table.gear= -observe.gearUseFeaturesSeine.table.gear.tip= -observe.gearUseFeaturesSeine.table.gearCaracteristic= -observe.gearUseFeaturesSeine.table.gearCaracteristic.tip= -observe.gearUseFeaturesSeine.table.number= -observe.gearUseFeaturesSeine.table.number.tip= -observe.gearUseFeaturesSeine.table.usedInTrip= -observe.gearUseFeaturesSeine.table.usedInTrip.tip= -observe.gearUseFeaturesSeine.table.value= -observe.gearUseFeaturesSeine.table.value.tip= -observe.gearUseFeaturesSeine.title= -observe.gearUseFeaturesSeine.usedInTrip= +observe.floatlinesComposition.action.create=Insert this floatline +observe.floatlinesComposition.action.create.tip=Insert this floatline +observe.floatlinesComposition.length=Length +observe.floatlinesComposition.lineType=Line type +observe.floatlinesComposition.proportion=Proportion +observe.floatlinesComposition.proportionSum=Proportion sum +observe.floatlinesComposition.table.length=Length +observe.floatlinesComposition.table.length.tip=Length +observe.floatlinesComposition.table.lineType=Type +observe.floatlinesComposition.table.lineType.tip=Line type +observe.floatlinesComposition.table.proportion=Proportion +observe.floatlinesComposition.table.proportion.tip=Proportion +observe.floatlinesComposition.title=Floatines +observe.gear.availableGearCaracteristic=Available caracteristics +observe.gear.gearCaracteristic=Gear caracteristic +observe.gear.gearCaracteristicType=Gear caracteristic type +observe.gear.selectedGearCaracteristic=Selected caracteristics +observe.gear.tab.gearCaracteristic=Caracteristics of the gear +observe.gear.tab.general=General caracteristics +observe.gear.unit=Unit +observe.gearUseFeaturesLongline.action.deleteSelectedMeasurement=Delete selected measurement +observe.gearUseFeaturesLongline.action.deleteSelectedMeasurement.tip=Delete selected measurement +observe.gearUseFeaturesLongline.comment=Comment +observe.gearUseFeaturesLongline.gear=Gear +observe.gearUseFeaturesLongline.number=Number +observe.gearUseFeaturesLongline.tab.general=General +observe.gearUseFeaturesLongline.tab.measurements=Measurements +observe.gearUseFeaturesLongline.table.comment=Comment +observe.gearUseFeaturesLongline.table.comment.tip=Comment +observe.gearUseFeaturesLongline.table.gear=Gear +observe.gearUseFeaturesLongline.table.gear.tip=Gear +observe.gearUseFeaturesLongline.table.gearCaracteristic=Caracteristic +observe.gearUseFeaturesLongline.table.gearCaracteristic.tip=Gear caracteristic +observe.gearUseFeaturesLongline.table.number=Number +observe.gearUseFeaturesLongline.table.number.tip=Number +observe.gearUseFeaturesLongline.table.usedInTrip=Used +observe.gearUseFeaturesLongline.table.usedInTrip.tip=Used in trip +observe.gearUseFeaturesLongline.table.value=Value +observe.gearUseFeaturesLongline.table.value.tip=Caracteristic value +observe.gearUseFeaturesLongline.title=Gears +observe.gearUseFeaturesLongline.usedInTrip=Used in trip +observe.gearUseFeaturesSeine.action.deleteSelectedMeasurement=Delete selected measurement +observe.gearUseFeaturesSeine.action.deleteSelectedMeasurement.tip=Delete selected measurement +observe.gearUseFeaturesSeine.comment=Comment +observe.gearUseFeaturesSeine.gear=Gear +observe.gearUseFeaturesSeine.number=Number +observe.gearUseFeaturesSeine.tab.general=General +observe.gearUseFeaturesSeine.tab.measurements=Measurements +observe.gearUseFeaturesSeine.table.comment=Comment +observe.gearUseFeaturesSeine.table.comment.tip=Comment +observe.gearUseFeaturesSeine.table.gear=Gear +observe.gearUseFeaturesSeine.table.gear.tip=Gear +observe.gearUseFeaturesSeine.table.gearCaracteristic=Caracteristic +observe.gearUseFeaturesSeine.table.gearCaracteristic.tip=Gear caracteristic +observe.gearUseFeaturesSeine.table.number=Number +observe.gearUseFeaturesSeine.table.number.tip=Number +observe.gearUseFeaturesSeine.table.usedInTrip=Used +observe.gearUseFeaturesSeine.table.usedInTrip.tip=Used in trip +observe.gearUseFeaturesSeine.table.value=Value +observe.gearUseFeaturesSeine.table.value.tip=Caracteristic value +observe.gearUseFeaturesSeine.title=Gears +observe.gearUseFeaturesSeine.usedInTrip=Used in trip observe.harbour.coordinates= observe.harbour.locode= observe.harbour.name= -observe.hooksComposition.action.create= -observe.hooksComposition.action.create.tip= -observe.hooksComposition.hookOffset= -observe.hooksComposition.hookSize= -observe.hooksComposition.hookType= -observe.hooksComposition.proportion= -observe.hooksComposition.proportionSum= -observe.hooksComposition.table.hookOffset= -observe.hooksComposition.table.hookOffset.tip= -observe.hooksComposition.table.hookSize= -observe.hooksComposition.table.hookSize.tip= -observe.hooksComposition.table.hookType= -observe.hooksComposition.table.hookType.tip= -observe.hooksComposition.table.proportion= -observe.hooksComposition.table.proportion.tip= -observe.hooksComposition.title= -observe.info.selected.validators= -observe.info.validation.credentials= -observe.init.local.db.detected= -observe.init.no.initial.dump.detected= -observe.init.no.local.db.detected= -observe.init.storage.done= -observe.label.coefficients.info= +observe.hooksComposition.action.create=Insert this hook +observe.hooksComposition.action.create.tip=Insert this hook +observe.hooksComposition.hookOffset=Offset +observe.hooksComposition.hookSize=Size +observe.hooksComposition.hookType=Type +observe.hooksComposition.proportion=Proportion +observe.hooksComposition.proportionSum=Proportion sum +observe.hooksComposition.table.hookOffset=Offset +observe.hooksComposition.table.hookOffset.tip=Offset +observe.hooksComposition.table.hookSize=Size +observe.hooksComposition.table.hookSize.tip=Size +observe.hooksComposition.table.hookType=Type +observe.hooksComposition.table.hookType.tip=Type +observe.hooksComposition.table.proportion=Proportion +observe.hooksComposition.table.proportion.tip=Proportion +observe.hooksComposition.title=Hooks +observe.info.selected.validators=You must select at least one validator to continue. +observe.info.validation.credentials=To validate referentiel (resp. data), You must have rw credentials. +observe.init.local.db.detected=%1$s detected. +observe.init.no.initial.dump.detected=Internal data source %1$s not detected. +observe.init.no.local.db.detected=Local data source %1$s not detected. +observe.init.storage.done=Init of Persistent Service done. +observe.label.coefficients.info=TODO Expliquer la syntaxe des coefficients observe.label.lengthWeightFormula.info= -observe.label.usage.data.title= -observe.label.usage.referentiel.title= +observe.label.usage.data.title=Data '%1$s' (%2$d occurrences) +observe.label.usage.referentiel.title=Referentiel '%1$s' (%2$d occurrences) observe.label.weightLengthFormula.info= -observe.lengthWeightParameter.tab.general= -observe.lengthWeightParameter.tab.other= +observe.lengthWeightParameter.tab.general=General caracteristics +observe.lengthWeightParameter.tab.other=Other caracteristics observe.list.HookSize= observe.list.HookType= observe.list.baitHaulingStatus= @@ -1321,83 +1325,88 @@ observe.list.vesselType= observe.list.weightCategory= observe.list.weightMeasureType= observe.list.wind= -observe.longlineDetailComposition.action.deleteAllSections= -observe.longlineDetailComposition.action.deleteAllSections.tip= -observe.longlineDetailComposition.action.deleteSelectedBasket= -observe.longlineDetailComposition.action.deleteSelectedBasket.tip= -observe.longlineDetailComposition.action.deleteSelectedBranchline= -observe.longlineDetailComposition.action.deleteSelectedBranchline.tip= -observe.longlineDetailComposition.action.deleteSelectedSection= -observe.longlineDetailComposition.action.deleteSelectedSection.tip= -observe.longlineDetailComposition.action.deleteSelectedSectionTemplate= -observe.longlineDetailComposition.action.deleteSelectedSectionTemplate.tip= -observe.longlineDetailComposition.action.generateAllSections= -observe.longlineDetailComposition.action.generateAllSections.tip= -observe.longlineDetailComposition.action.insertAfterSelectedBasket= -observe.longlineDetailComposition.action.insertAfterSelectedBasket.tip= -observe.longlineDetailComposition.action.insertAfterSelectedBranchline= -observe.longlineDetailComposition.action.insertAfterSelectedBranchline.tip= -observe.longlineDetailComposition.action.insertAfterSelectedSection= -observe.longlineDetailComposition.action.insertAfterSelectedSection.tip= -observe.longlineDetailComposition.action.insertBeforeSelectedBasket= -observe.longlineDetailComposition.action.insertBeforeSelectedBasket.tip= -observe.longlineDetailComposition.action.insertBeforeSelectedBranchline= -observe.longlineDetailComposition.action.insertBeforeSelectedBranchline.tip= -observe.longlineDetailComposition.action.insertBeforeSelectedSection= -observe.longlineDetailComposition.action.insertBeforeSelectedSection.tip= -observe.longlineDetailComposition.baskets= -observe.longlineDetailComposition.basketsTable.floatline1Length= -observe.longlineDetailComposition.basketsTable.floatline1Length.tip= -observe.longlineDetailComposition.basketsTable.floatline2Length= -observe.longlineDetailComposition.basketsTable.floatline2Length.tip= -observe.longlineDetailComposition.basketsTable.haulingIdentifier= -observe.longlineDetailComposition.basketsTable.haulingIdentifier.tip= -observe.longlineDetailComposition.basketsTable.settingIdentifier= -observe.longlineDetailComposition.basketsTable.settingIdentifier.tip= -observe.longlineDetailComposition.branchlines= -observe.longlineDetailComposition.branchlinesTable.branchlineLength= -observe.longlineDetailComposition.branchlinesTable.branchlineLength.tip= -observe.longlineDetailComposition.branchlinesTable.haulingIdentifier= -observe.longlineDetailComposition.branchlinesTable.haulingIdentifier.tip= -observe.longlineDetailComposition.branchlinesTable.settingIdentifier= -observe.longlineDetailComposition.branchlinesTable.settingIdentifier.tip= -observe.longlineDetailComposition.branchlinesTable.tracelineLength= -observe.longlineDetailComposition.branchlinesTable.tracelineLength.tip= -observe.longlineDetailComposition.canGenerate= +observe.longlineDetailComposition.action.deleteAllSections=Remove all +observe.longlineDetailComposition.action.deleteAllSections.tip=Remove all sections - baskets - branchlines +observe.longlineDetailComposition.action.deleteSelectedBasket=Delete basket +observe.longlineDetailComposition.action.deleteSelectedBasket.tip=Delete selected basket +observe.longlineDetailComposition.action.deleteSelectedBranchline=Delete branchline +observe.longlineDetailComposition.action.deleteSelectedBranchline.tip=Delete selected branchline +observe.longlineDetailComposition.action.deleteSelectedSection=Delete section +observe.longlineDetailComposition.action.deleteSelectedSection.tip=Delete selected section +observe.longlineDetailComposition.action.deleteSelectedSectionTemplate=Delete section template +observe.longlineDetailComposition.action.deleteSelectedSectionTemplate.tip=Delete selected section template +observe.longlineDetailComposition.action.generateAllSections=Generate all +observe.longlineDetailComposition.action.generateAllSections.tip=Generate all sections - baskets and branchlines +observe.longlineDetailComposition.action.insertAfterSelectedBasket=Insert after +observe.longlineDetailComposition.action.insertAfterSelectedBasket.tip=Insert after selected basket +observe.longlineDetailComposition.action.insertAfterSelectedBranchline=Insert after +observe.longlineDetailComposition.action.insertAfterSelectedBranchline.tip=Insert after selected branchline +observe.longlineDetailComposition.action.insertAfterSelectedSection=Insert after +observe.longlineDetailComposition.action.insertAfterSelectedSection.tip=Insert after selected section +observe.longlineDetailComposition.action.insertBeforeSelectedBasket=Insert before +observe.longlineDetailComposition.action.insertBeforeSelectedBasket.tip=Insert before selected basket +observe.longlineDetailComposition.action.insertBeforeSelectedBranchline=Insert before +observe.longlineDetailComposition.action.insertBeforeSelectedBranchline.tip=Insert before selected branchline +observe.longlineDetailComposition.action.insertBeforeSelectedSection=Insert before +observe.longlineDetailComposition.action.insertBeforeSelectedSection.tip=Insert before selected section +observe.longlineDetailComposition.baskets=Baskets +observe.longlineDetailComposition.basketsTable.floatline1Length=Floatline 1 length (m) +observe.longlineDetailComposition.basketsTable.floatline1Length.tip=Floatline 1 length (m) +observe.longlineDetailComposition.basketsTable.floatline2Length=Floatline 2 length (m) +observe.longlineDetailComposition.basketsTable.floatline2Length.tip=Floatline 2 length (m) +observe.longlineDetailComposition.basketsTable.haulingIdentifier=Hauling Id +observe.longlineDetailComposition.basketsTable.haulingIdentifier.tip=Hauling Identifier +observe.longlineDetailComposition.basketsTable.settingIdentifier=Setting Identifier +observe.longlineDetailComposition.basketsTable.settingIdentifier.tip=Setting Id +observe.longlineDetailComposition.branchlines=Branchlines +observe.longlineDetailComposition.branchlinesTable.branchlineLength=Branchline length (m) +observe.longlineDetailComposition.branchlinesTable.branchlineLength.tip=Branchline length (m) +observe.longlineDetailComposition.branchlinesTable.haulingIdentifier=Hauling Id +observe.longlineDetailComposition.branchlinesTable.haulingIdentifier.tip=Hauling Identifier +observe.longlineDetailComposition.branchlinesTable.settingIdentifier=Setting Identifier +observe.longlineDetailComposition.branchlinesTable.settingIdentifier.tip=Setting Id +observe.longlineDetailComposition.branchlinesTable.tracelineLength=Traceline length (m) +observe.longlineDetailComposition.branchlinesTable.tracelineLength.tip=Traceline length (m) +observe.longlineDetailComposition.canGenerate=Can generate observe.longlineDetailComposition.firstTemplate.template.notCompilant.basketCount= -observe.longlineDetailComposition.message.updating= -observe.longlineDetailComposition.sectionTemplatesTable.identifier= -observe.longlineDetailComposition.sectionTemplatesTable.identifier.tip= -observe.longlineDetailComposition.sectionTemplatesTable.value= -observe.longlineDetailComposition.sectionTemplatesTable.value.tip= -observe.longlineDetailComposition.sections= -observe.longlineDetailComposition.sectionsTable.haulingIdentifier= -observe.longlineDetailComposition.sectionsTable.haulingIdentifier.tip= -observe.longlineDetailComposition.sectionsTable.settingIdentifier= -observe.longlineDetailComposition.sectionsTable.settingIdentifier.tip= -observe.longlineDetailComposition.sectionsTable.template= -observe.longlineDetailComposition.sectionsTable.template.tip= -observe.longlineDetailComposition.tab.branchlineDetail= -observe.longlineDetailComposition.tab.composition= -observe.longlineDetailComposition.tab.generate= -observe.longlineDetailComposition.title= +observe.longlineDetailComposition.message.updating=Updating composition details +observe.longlineDetailComposition.sectionTemplatesTable.identifier=Identifier +observe.longlineDetailComposition.sectionTemplatesTable.identifier.tip=Unique section template identifier +observe.longlineDetailComposition.sectionTemplatesTable.value=Value +observe.longlineDetailComposition.sectionTemplatesTable.value.tip=Template value +observe.longlineDetailComposition.sections=Sections +observe.longlineDetailComposition.sectionsTable.haulingIdentifier=Hauling Id +observe.longlineDetailComposition.sectionsTable.haulingIdentifier.tip=Hauling Identifier +observe.longlineDetailComposition.sectionsTable.settingIdentifier=Setting Id +observe.longlineDetailComposition.sectionsTable.settingIdentifier.tip=Setting Identifier +observe.longlineDetailComposition.sectionsTable.template=Template +observe.longlineDetailComposition.sectionsTable.template.tip=Template used to generate baskets floatline lengths +observe.longlineDetailComposition.tab.branchlineDetail=Branchline detail +observe.longlineDetailComposition.tab.composition=Composition +observe.longlineDetailComposition.tab.generate=generation +observe.longlineDetailComposition.title=Detailed composition observe.longlineDetailComposition.title.section.cant.use.firstTemplate= -observe.longlineGlobalComposition.availableMitigationType= -observe.longlineGlobalComposition.message.updating= -observe.longlineGlobalComposition.mitigationType= -observe.longlineGlobalComposition.selectedMitigationType= -observe.longlineGlobalComposition.tab.baitsComposition= -observe.longlineGlobalComposition.tab.branchlinesComposition= -observe.longlineGlobalComposition.tab.floatlinesComposition= -observe.longlineGlobalComposition.tab.hooksComposition= -observe.longlineGlobalComposition.tab.mitigationType= -observe.longlineGlobalComposition.title= +observe.longlineGlobalComposition.availableMitigationType=Available mitigations +observe.longlineGlobalComposition.message.updating=Updating global composition +observe.longlineGlobalComposition.mitigationType=Mitigation +observe.longlineGlobalComposition.selectedMitigationType=Selected mitigations +observe.longlineGlobalComposition.tab.baitsComposition=Baits +observe.longlineGlobalComposition.tab.branchlinesComposition=Branchlines +observe.longlineGlobalComposition.tab.floatlinesComposition=Floatines +observe.longlineGlobalComposition.tab.hooksComposition=Hooks +observe.longlineGlobalComposition.tab.mitigationType=Mitigation +observe.longlineGlobalComposition.title=Global composition observe.map.action.exportPng= observe.map.action.exportPng.tip= observe.map.action.zoomIt= observe.map.action.zoomIt.tip= observe.map.east= +observe.map.export.chooseFile.image= observe.map.export.chooseFile.ok= +observe.map.export.chooseFile.overwrite= +observe.map.export.chooseFile.overwrite.cancel= +observe.map.export.chooseFile.overwrite.ok= +observe.map.export.chooseFile.overwrite.title= observe.map.export.chooseFile.png= observe.map.export.chooseFile.title= observe.map.export.overwrite= @@ -1426,19 +1435,19 @@ observe.map.seine.activity.schollType.object= observe.map.seine.harbour.departure= observe.map.seine.harbour.landing= observe.map.south= -observe.map.waitLoading= +observe.map.waitLoading=< Please wait while loading the map > observe.map.west= observe.measurement.delete.message= -observe.menu.actions= -observe.menu.application.locale= -observe.menu.configuration= -observe.menu.configuration.tip= -observe.menu.db.locale= -observe.menu.file= -observe.menu.help= -observe.menu.locale= -observe.menu.navigation= -observe.menu.storage= +observe.menu.actions=Actions +observe.menu.application.locale=Application +observe.menu.configuration=Configuration +observe.menu.configuration.tip=To configure application +observe.menu.db.locale=Storage +observe.menu.file=File +observe.menu.help=Help +observe.menu.locale=Languages +observe.menu.navigation=Navigation +observe.menu.storage=Storage observe.message.can.not.write.data= observe.message.cant.add.echantillonRejetThon= observe.message.cant.add.echantillonTargetCatch= @@ -1446,14 +1455,14 @@ observe.message.cant.add.nonTargetSample= observe.message.consolidate.operation.done= observe.message.consolidate.save.changes= observe.message.creating.referentiel= -observe.message.db.closed= -observe.message.db.loaded= -observe.message.db.loading= -observe.message.db.none.loaded= -observe.message.db.none.loaded.tip= -observe.message.delete= -observe.message.delete.directory= -observe.message.delete.new= +observe.message.db.closed=%1$s was closed +observe.message.db.loaded=%1$s was loaded +observe.message.db.loading=%1$s loading... +observe.message.db.none.loaded=< No data source loaded > +observe.message.db.none.loaded.tip=No data source loaded... +observe.message.delete=Confirm to delete object\:\n\n '%1$s' - '%2$s'\n +observe.message.delete.directory=Delete directory %1$s +observe.message.delete.new=Confirm to delete object\:\n\n '%1$s'\n observe.message.detected.accepted.interval= observe.message.detected.rejected.interval= observe.message.exportData.delete.remote.maree= @@ -1484,7 +1493,7 @@ observe.message.no.accepted.intervalle.detected= observe.message.no.activity.detected= observe.message.no.activity.for.route= observe.message.no.activity.for.trip= -observe.message.no.local.db.found= +observe.message.no.local.db.found=Local data source does not exist (location %1$s).\n\nYou can create it or connect to a remote data source. observe.message.no.open.maree.detected= observe.message.no.report.selected= observe.message.no.route.detected= @@ -1498,7 +1507,7 @@ observe.message.quit.valid.edit= observe.message.referentiel.editable= observe.message.referentiel.home= observe.message.referentiel.no.editable= -observe.message.save.configuration= +observe.message.save.configuration=Save configuration in file %1$s observe.message.select.report= observe.message.server.info= observe.message.show.usage.for.delete= @@ -1536,8 +1545,9 @@ observe.message.validation.start.maree= observe.message.validation.start.referentiel= observe.message.validation.use.storage= observe.message.warning.will.be.delete= -observe.navigationMenu.moveTrip= -observe.navigationMenu.noAction= +observe.model.version= +observe.navigationMenu.moveTrip=Change program +observe.navigationMenu.noAction=< No action > observe.nonTargetCatch.message.table.will.delete.nonTargetSample= observe.nonTargetCatch.table.catchWeight= observe.nonTargetCatch.table.catchWeight.tip= @@ -1582,9 +1592,9 @@ observe.obstuna.action.security= observe.obstuna.action.security.description= observe.obstuna.action.update= observe.obstuna.action.update.description= -observe.person.country= -observe.program.tab.general= -observe.program.tab.observations= +observe.person.country=Nationality +observe.program.tab.general=General caracteristics +observe.program.tab.observations=Observations observe.route.message.active.found= observe.route.message.active.found.for.other.trip= observe.route.message.creating= @@ -1592,8 +1602,8 @@ observe.route.message.no.active.found= observe.route.message.no.active.found.for.other.trip= observe.route.message.not.open= observe.route.message.updating= -observe.route.title= -observe.routes.title= +observe.route.title=Route +observe.routes.title=Routes observe.runner.config.loaded= observe.runner.config.migrate.file= observe.runner.context.loaded= @@ -1618,10 +1628,10 @@ observe.schoolEstimate.table.speciesThon= observe.schoolEstimate.table.speciesThon.tip= observe.schoolEstimate.table.weight= observe.schoolEstimate.table.weight.tip= -observe.section.cant.delete.message= -observe.section.cant.delete.title= -observe.sectionTemplate.delete.message= -observe.sections.delete.message= +observe.section.cant.delete.message=The current section can not be deleted since it used by other data. +observe.section.cant.delete.title=Can't delete section +observe.sectionTemplate.delete.message=Confirm to delete current template. +observe.sections.delete.message=Confirm to delete all sections. observe.security.referentiel= observe.security.referentiel.tip= observe.security.role= @@ -1632,78 +1642,78 @@ observe.security.unused= observe.security.unused.tip= observe.security.utilisateur= observe.security.utilisateur.tip= -observe.sensorUsed.action.create= -observe.sensorUsed.action.create.tip= -observe.sensorUsed.action.reset.dataLocation.tip= -observe.sensorUsed.action.reset.sensorSerialNo.tip= -observe.sensorUsed.data= -observe.sensorUsed.dataLocation= -observe.sensorUsed.dataLocation.tip= -observe.sensorUsed.delete.data.message= -observe.sensorUsed.deleteData= -observe.sensorUsed.deleteData.tip= -observe.sensorUsed.exportData= -observe.sensorUsed.exportData.tip= -observe.sensorUsed.importData= -observe.sensorUsed.importData.tip= -observe.sensorUsed.message.data.exported= -observe.sensorUsed.message.data.imported= -observe.sensorUsed.sensorBrand= -observe.sensorUsed.sensorDataFormat= -observe.sensorUsed.sensorSerialNo= -observe.sensorUsed.sensorType= -observe.sensorUsed.table.data= -observe.sensorUsed.table.data.tip= -observe.sensorUsed.table.dataLocation= -observe.sensorUsed.table.dataLocation.tip= -observe.sensorUsed.table.sensorBrand= -observe.sensorUsed.table.sensorBrand.tip= -observe.sensorUsed.table.sensorDataFormat= -observe.sensorUsed.table.sensorDataFormat.tip= -observe.sensorUsed.table.sensorSerialNo= -observe.sensorUsed.table.sensorSerialNo.tip= -observe.sensorUsed.table.sensorType= -observe.sensorUsed.table.sensorType.tip= -observe.sensorUsed.title= -observe.setLongline.action.reset.homeId.tip= -observe.setLongline.basketsPerSectionCount= -observe.setLongline.branchlinesPerBasketCount= -observe.setLongline.haulingBreaks= -observe.setLongline.haulingDirectionSameAsSetting= -observe.setLongline.haulingEndCoordinates= -observe.setLongline.haulingEndTimeStamp= -observe.setLongline.haulingStartCoordinates= -observe.setLongline.haulingStartTimeStamp= -observe.setLongline.homeId= -observe.setLongline.lightsticksColor= -observe.setLongline.lightsticksPerBasketCount= -observe.setLongline.lightsticksType= -observe.setLongline.lineType= -observe.setLongline.maxDepthTargeted= -observe.setLongline.message.creating= -observe.setLongline.message.updating= -observe.setLongline.monitored= -observe.setLongline.number= -observe.setLongline.settingEndCoordinates= -observe.setLongline.settingEndTimeStamp= -observe.setLongline.settingShape= -observe.setLongline.settingStartCoordinates= -observe.setLongline.settingStartTimeStamp= -observe.setLongline.settingVesselSpeed= -observe.setLongline.shooterSpeed= -observe.setLongline.shooterUsed= -observe.setLongline.snapWeight= -observe.setLongline.swivelWeight= -observe.setLongline.tab.hauling= -observe.setLongline.tab.setting= -observe.setLongline.tab.settingCaracteristics= -observe.setLongline.timeBetweenHooks= -observe.setLongline.title= -observe.setLongline.totalBasketsCount= -observe.setLongline.totalHooksCount= -observe.setLongline.totalSectionsCount= -observe.setLongline.weightedSnap= -observe.setLongline.weightedSwivel= +observe.sensorUsed.action.create=Insert the sensor +observe.sensorUsed.action.create.tip=Insert this new sensor used +observe.sensorUsed.action.reset.dataLocation.tip=Reset data location +observe.sensorUsed.action.reset.sensorSerialNo.tip=Reset serial no +observe.sensorUsed.data=Data +observe.sensorUsed.dataLocation=Data location +observe.sensorUsed.dataLocation.tip=Data file location +observe.sensorUsed.delete.data.message=Confirm to delete the data file +observe.sensorUsed.deleteData=Delete +observe.sensorUsed.deleteData.tip=Delete the data file +observe.sensorUsed.exportData=Export +observe.sensorUsed.exportData.tip=Export data file +observe.sensorUsed.importData=Import +observe.sensorUsed.importData.tip=Import the data file +observe.sensorUsed.message.data.exported=the data file was exported at %s. +observe.sensorUsed.message.data.imported=the data file %s was imported +observe.sensorUsed.sensorBrand=Brand +observe.sensorUsed.sensorDataFormat=Data format +observe.sensorUsed.sensorSerialNo=Serial no +observe.sensorUsed.sensorType=Type +observe.sensorUsed.table.data=Data +observe.sensorUsed.table.data.tip=Data +observe.sensorUsed.table.dataLocation=Data location +observe.sensorUsed.table.dataLocation.tip=Data location +observe.sensorUsed.table.sensorBrand=Brand +observe.sensorUsed.table.sensorBrand.tip=Sensor brand +observe.sensorUsed.table.sensorDataFormat=Data format +observe.sensorUsed.table.sensorDataFormat.tip=Data format +observe.sensorUsed.table.sensorSerialNo=Serial no +observe.sensorUsed.table.sensorSerialNo.tip=Sensor serial no +observe.sensorUsed.table.sensorType=Type +observe.sensorUsed.table.sensorType.tip=Sensor type +observe.sensorUsed.title=Sensors ursed +observe.setLongline.action.reset.homeId.tip=Reset home id +observe.setLongline.basketsPerSectionCount=Baskets per section count +observe.setLongline.branchlinesPerBasketCount=Hooks per basket count +observe.setLongline.haulingBreaks=Number of cuts +observe.setLongline.haulingDirectionSameAsSetting=Direction same as setting +observe.setLongline.haulingEndCoordinates=Hauling end coordinates +observe.setLongline.haulingEndTimeStamp=End timestamp +observe.setLongline.haulingStartCoordinates=Hauling start coordinates +observe.setLongline.haulingStartTimeStamp=Start timestamp +observe.setLongline.homeId=Home id +observe.setLongline.lightsticksColor=Lightsticks color +observe.setLongline.lightsticksPerBasketCount=lightsticks per basket count +observe.setLongline.lightsticksType=Lightsticks type +observe.setLongline.lineType=Line type +observe.setLongline.maxDepthTargeted=Max depth targeted (m) +observe.setLongline.message.creating=Creating fishing operation +observe.setLongline.message.updating=Updating fishing operation +observe.setLongline.monitored=Monitored +observe.setLongline.number=Number +observe.setLongline.settingEndCoordinates=Setting end coordinates +observe.setLongline.settingEndTimeStamp=End timestamp +observe.setLongline.settingShape=Setting shape +observe.setLongline.settingStartCoordinates=Setting start coordinates +observe.setLongline.settingStartTimeStamp=Start timestamp +observe.setLongline.settingVesselSpeed=Vessel spped (kts) +observe.setLongline.shooterSpeed=Shooter speed (kts) +observe.setLongline.shooterUsed=Shooter used +observe.setLongline.snapWeight=Snap weight (kg) +observe.setLongline.swivelWeight=swivel weight (kg) +observe.setLongline.tab.hauling=Hauling +observe.setLongline.tab.setting=Setting +observe.setLongline.tab.settingCaracteristics=Caracteristics +observe.setLongline.timeBetweenHooks=time between hooks +observe.setLongline.title=Fishing operation +observe.setLongline.totalBasketsCount=Total baskets count +observe.setLongline.totalHooksCount=Total hooks count +observe.setLongline.totalSectionsCount=Total sections count +observe.setLongline.weightedSnap=Weighted snap +observe.setLongline.weightedSwivel=Weighted swvel observe.setSeine.currentDirection= observe.setSeine.currentMeasureDepth= observe.setSeine.currentSpeed= @@ -1727,18 +1737,18 @@ observe.setSeine.sonarUsed= observe.setSeine.sonarUsedAvantSet= observe.setSeine.startTime= observe.setSeine.supportVesselName= -observe.setSeine.tab.general= -observe.setSeine.tab.measurements= +observe.setSeine.tab.general=General caracteristics +observe.setSeine.tab.measurements=Measurements observe.setSeine.targetDiscarded= -observe.setSeine.title= -observe.species.availableOcean= -observe.species.selectedOcean= -observe.species.tab.general= -observe.species.tab.other= -observe.speciesList.availableSpecies= -observe.speciesList.selectedSpecies= -observe.speciesList.tab.general= -observe.speciesList.tab.species= +observe.setSeine.title=Set +observe.species.availableOcean=Available oceans +observe.species.selectedOcean=Selected oceans +observe.species.tab.general=General caracteristics +observe.species.tab.other=Other caracteristics +observe.speciesList.availableSpecies=Available species +observe.speciesList.selectedSpecies=Selected species +observe.speciesList.tab.general=General caracteristics +observe.speciesList.tab.species=Species observe.storage.action.canMigrate= observe.storage.connexionStatut.failed= observe.storage.connexionStatut.failed.description= @@ -1754,6 +1764,8 @@ observe.storage.creationMode.importLocalStorage= observe.storage.creationMode.importLocalStorage.description= observe.storage.creationMode.importRemoteStorage= observe.storage.creationMode.importRemoteStorage.description= +observe.storage.creationMode.importServerStorage= +observe.storage.creationMode.importServerStorage.description= observe.storage.creationMode.internalDump= observe.storage.creationMode.internalDump.description= observe.storage.dataPolicy.readData= @@ -1770,6 +1782,8 @@ observe.storage.dbMode.useLocal= observe.storage.dbMode.useLocal.description= observe.storage.dbMode.useRemote= observe.storage.dbMode.useRemote.description= +observe.storage.dbMode.useServer= +observe.storage.dbMode.useServer.description= observe.storage.error.dbVersionMismatch= observe.storage.importExternalDump.config= observe.storage.importExternalDump.description= @@ -1791,9 +1805,10 @@ observe.storage.label.import.data= observe.storage.label.import.local= observe.storage.label.import.referentiel= observe.storage.label.import.remote= -observe.storage.label.local= +observe.storage.label.local=Local database observe.storage.label.reference.import.db= observe.storage.label.remote= +observe.storage.label.rest= observe.storage.label.synchro= observe.storage.label.synchro.incoming= observe.storage.label.synchro.referentiel= @@ -1847,6 +1862,7 @@ observe.storage.required.rw.on.data= observe.storage.security.administrateur= observe.storage.selected.dbMode= observe.storage.selectedCreationMode= +observe.storage.server.dataBase= observe.storage.showMigrationProgression= observe.storage.showMigrationSql= observe.storage.step.backup= @@ -1872,13 +1888,19 @@ observe.storage.store.remote.config= observe.storage.store.remote.config.tip= observe.storage.useRemoteStorage.config= observe.storage.useRemoteStorage.description= +observe.storage.useServerStorage.config= +observe.storage.useServerStorage.description= observe.synchro.add.object= observe.synchro.common.activity= +observe.synchro.common.exist= observe.synchro.common.latitude= observe.synchro.common.longitude= +observe.synchro.common.maree= +observe.synchro.common.program= observe.synchro.common.quadrant= observe.synchro.common.reference= observe.synchro.common.select= +observe.synchro.common.selected= observe.synchro.common.vitesse= observe.synchro.config.data.mode= observe.synchro.config.data.storage= @@ -2030,67 +2052,67 @@ observe.targetSample.table.speciesThon= observe.targetSample.table.speciesThon.tip= observe.targetSample.table.totalWeight= observe.targetSample.table.totalWeight.tip= -observe.tdr.action.create= -observe.tdr.action.create.tip= -observe.tdr.action.reset.dataLocation.tip= -observe.tdr.action.reset.homeId.tip= -observe.tdr.action.reset.serialNo.tip= -observe.tdr.availableSpecies= -observe.tdr.basket= -observe.tdr.branchline= -observe.tdr.data= -observe.tdr.dataLocation= -observe.tdr.dataLocation.tip= -observe.tdr.delete.data.message= -observe.tdr.deleteData= -observe.tdr.deleteData.tip= -observe.tdr.deployementEnd= -observe.tdr.deployementStart= +observe.tdr.action.create=Insert this recorder +observe.tdr.action.create.tip=Insert this recorder +observe.tdr.action.reset.dataLocation.tip=Reset data location +observe.tdr.action.reset.homeId.tip=Reset homeId +observe.tdr.action.reset.serialNo.tip=Reset serail no +observe.tdr.availableSpecies=Available species +observe.tdr.basket=Basket +observe.tdr.branchline=Branchline +observe.tdr.data=Data +observe.tdr.dataLocation=Data location +observe.tdr.dataLocation.tip=Data location +observe.tdr.delete.data.message=Confirm to delete saved data +observe.tdr.deleteData=Delete +observe.tdr.deleteData.tip=Delete data +observe.tdr.deployementEnd=Deployement end +observe.tdr.deployementStart=Deployement start observe.tdr.enableTimestamp= observe.tdr.enableTimestamp.tip= -observe.tdr.exportData= -observe.tdr.exportData.tip= -observe.tdr.fishingEnd= -observe.tdr.fishingEndDepth= -observe.tdr.fishingStart= -observe.tdr.fishingStartDepth= -observe.tdr.floatline1Length= -observe.tdr.floatline2Length= -observe.tdr.homeId= -observe.tdr.importData= -observe.tdr.importData.tip= -observe.tdr.itemHorizontalPosition= -observe.tdr.itemVerticalPosition= -observe.tdr.locationOnLongline= -observe.tdr.maxFishingDepth= -observe.tdr.meanDeployementDepth= -observe.tdr.meanFishingDepth= -observe.tdr.medianDeployementDepth= -observe.tdr.medianFishingDepth= -observe.tdr.message.data.imported= -observe.tdr.minFishingDepth= -observe.tdr.section= -observe.tdr.selectedSpecies= -observe.tdr.sensorBrand= -observe.tdr.serialNo= -observe.tdr.species= -observe.tdr.tab.caracteristics= -observe.tdr.tab.keyData= +observe.tdr.exportData=Export +observe.tdr.exportData.tip=Export data +observe.tdr.fishingEnd=Fishing End +observe.tdr.fishingEndDepth=Depth at fishing end (m) +observe.tdr.fishingStart=Fishing start +observe.tdr.fishingStartDepth=Depth at fishing start (m) +observe.tdr.floatline1Length=Floatline 1 length (m) +observe.tdr.floatline2Length=Floatline 2 ength (m) +observe.tdr.homeId=Home id +observe.tdr.importData=Import +observe.tdr.importData.tip=Import data +observe.tdr.itemHorizontalPosition=Element position on main line +observe.tdr.itemVerticalPosition=Element position on branchline +observe.tdr.locationOnLongline=Location on longline +observe.tdr.maxFishingDepth=Maximum fishing depth (m) +observe.tdr.meanDeployementDepth=Mean deployement depth (m) +observe.tdr.meanFishingDepth=Maximum fishing depth (m) +observe.tdr.medianDeployementDepth=Median deployement depth (m) +observe.tdr.medianFishingDepth=Median fishing depth (m) +observe.tdr.message.data.imported=Data file (%s) was imported. +observe.tdr.minFishingDepth=Minimum fishing depth (m) +observe.tdr.section=Section +observe.tdr.selectedSpecies=Selected species +observe.tdr.sensorBrand=Brand +observe.tdr.serialNo=Serial No +observe.tdr.species=Species +observe.tdr.tab.caracteristics=Caracteristics +observe.tdr.tab.keyData=Data keys observe.tdr.tab.localisation= -observe.tdr.tab.species= -observe.tdr.tab.timestamp= -observe.tdr.table.data= -observe.tdr.table.homeId= -observe.tdr.table.homeId.tip= -observe.tdr.table.sensorBrand= -observe.tdr.table.sensorBrand.tip= -observe.tdr.table.serialNo= -observe.tdr.table.serialNo.tip= -observe.tdr.title= -observe.title.about= -observe.title.can.not.delete.referentiel= +observe.tdr.tab.species=Associated species +observe.tdr.tab.timestamp=Timestamps +observe.tdr.table.data=Data +observe.tdr.table.homeId=Home id +observe.tdr.table.homeId.tip=Home id +observe.tdr.table.sensorBrand=Brand +observe.tdr.table.sensorBrand.tip=Brand +observe.tdr.table.serialNo=Serial no +observe.tdr.table.serialNo.tip=Serial no +observe.tdr.title=Depth recorders +observe.title.about=About +observe.title.can.not.delete.referentiel=Impossible to delete a referentiel data... observe.title.can.not.export.obstuna= -observe.title.change.storage= +observe.title.change.storage=Change storage observe.title.choose.db.dump= observe.title.choose.db.dump.directory= observe.title.choose.importGPS= @@ -2167,153 +2189,153 @@ observe.title.content.vesselx= observe.title.content.weightCategory= observe.title.content.weightMeasureTypes= observe.title.content.windSpeeds= -observe.title.create.local.db= -observe.title.delete= -observe.title.error.dialog= -observe.title.exportData= -observe.title.exportData.tip= +observe.title.create.local.db=Loading local database +observe.title.delete=Confirm a delete +observe.title.error.dialog=An error occurs\! +observe.title.exportData=Export datas +observe.title.exportData.tip=Export datas to Obstuna observe.title.h2.server.parameters= -observe.title.import.localDB= -observe.title.importGPS= -observe.title.importGPS.tip= -observe.title.load.remote.db= -observe.title.need.confirm= -observe.title.need.confirm.to.desactivate.referentiel= -observe.title.no.local.db.found= -observe.title.report= -observe.title.report.tip= -observe.title.save.localDB= -observe.title.save.remoteDB= -observe.title.show.usage= +observe.title.import.localDB=Import a local database from a backup +observe.title.importGPS=GPS Import +observe.title.importGPS.tip=Import a GPS file +observe.title.load.remote.db=Load remote database +observe.title.need.confirm=Need a confirmation... +observe.title.need.confirm.to.desactivate.referentiel=Need a confirmation to disable a referentiel data... +observe.title.no.local.db.found=No local database found. +observe.title.report=Help to generat reports +observe.title.report.tip=Help to generate reports +observe.title.save.localDB=Save local storage to a file +observe.title.save.remoteDB=Save remote database to a file +observe.title.show.usage=Show usages observe.title.speciesList.not.found= -observe.title.storage.info= -observe.title.synchronize= -observe.title.synchronize.tip= -observe.title.technical.informations= -observe.title.unique.key= -observe.title.validate= -observe.title.validate.tip= -observe.title.welcome.admin= -observe.tree.activityLongline= -observe.tree.activityLongline.unsaved= -observe.tree.activitySeine= -observe.tree.activitySeine.unsaved= -observe.tree.baitHaulingStatus= -observe.tree.baitSettingStatus= -observe.tree.baitType= -observe.tree.catchFateLongline= -observe.tree.catchLongline= -observe.tree.country= -observe.tree.detectionMode= -observe.tree.encounter= +observe.title.storage.info=Storage details +observe.title.synchronize=Synchronize +observe.title.synchronize.tip=Synchronize objectOperation on local database +observe.title.technical.informations=Technical information of %1$s +observe.title.unique.key=Unique keys used in a referentiel +observe.title.validate=Validate datas +observe.title.validate.tip=Validate datas of a storage +observe.title.welcome.admin=Observe Admin +observe.tree.activityLongline=Activity +observe.tree.activityLongline.unsaved=New activity +observe.tree.activitySeine=Activity +observe.tree.activitySeine.unsaved=New activity +observe.tree.baitHaulingStatus=Bait hauling status +observe.tree.baitSettingStatus=Bait setting status +observe.tree.baitType=Bait type +observe.tree.catchFateLongline=Catch fate +observe.tree.catchLongline=Catches +observe.tree.country=Country +observe.tree.detectionMode=Detection mode +observe.tree.encounter=Encounter observe.tree.encounterType= -observe.tree.floatingObject.unsaved= -observe.tree.fpaZone= -observe.tree.gear= -observe.tree.gearCaracteristic= -observe.tree.gearCaracteristicType= +observe.tree.floatingObject.unsaved=New DCP +observe.tree.fpaZone=Fpa zone +observe.tree.gear=Gear +observe.tree.gearCaracteristic=Gear caracteristic +observe.tree.gearCaracteristicType=Gear caracteristic type observe.tree.gearUseFeaturesLongline= -observe.tree.gearUseFeaturesSeine= -observe.tree.harbour= -observe.tree.healthness= -observe.tree.hookPosition= -observe.tree.hookSize= -observe.tree.hookType= -observe.tree.itemHorizontalPosition= -observe.tree.itemVerticalPosition= -observe.tree.lengthWeightParameter= -observe.tree.lightsticksColor= -observe.tree.lightsticksType= -observe.tree.lineType= -observe.tree.longlineDetailComposition= -observe.tree.longlineGlobalComposition= -observe.tree.maturityStatus= -observe.tree.mitigationType= -observe.tree.nonTargetCatch= -observe.tree.nonTargetSample= -observe.tree.objectFate= -observe.tree.objectObservedSpecies= -observe.tree.objectOperation= -observe.tree.objectSchoolEstimate= -observe.tree.objectType= -observe.tree.observedSystem= -observe.tree.ocean= -observe.tree.organism= -observe.tree.person= -observe.tree.program= -observe.tree.reasonForDiscard= -observe.tree.reasonForNoFishing= -observe.tree.reasonForNullSet= -observe.tree.reference.common= -observe.tree.reference.longline= -observe.tree.reference.seine= -observe.tree.route= -observe.tree.route.unsaved= -observe.tree.schoolEstimate= -observe.tree.sensorBrand= -observe.tree.sensorDataFormat= -observe.tree.sensorType= -observe.tree.sensorUsed= +observe.tree.gearUseFeaturesSeine=GearUseFeaturesSeine +observe.tree.harbour=Harbour +observe.tree.healthness=Healthness +observe.tree.hookPosition=Hook position +observe.tree.hookSize=Hook size +observe.tree.hookType=Hook type +observe.tree.itemHorizontalPosition=Item horizontal position +observe.tree.itemVerticalPosition=Item vertical position +observe.tree.lengthWeightParameter=Length-weight relationship +observe.tree.lightsticksColor=Lightsticks color +observe.tree.lightsticksType=Lightsticks type +observe.tree.lineType=Line type +observe.tree.longlineDetailComposition=Detailed composition +observe.tree.longlineGlobalComposition=Global composition +observe.tree.maturityStatus=Maturity status +observe.tree.mitigationType=Mitigation type +observe.tree.nonTargetCatch=Non target catch +observe.tree.nonTargetSample=Non target sample +observe.tree.objectFate=ObjectFate +observe.tree.objectObservedSpecies=Object observed species +observe.tree.objectOperation=Object operation +observe.tree.objectSchoolEstimate=Object school estimate +observe.tree.objectType=Object type +observe.tree.observedSystem=Observed system +observe.tree.ocean=Ocean +observe.tree.organism=Organisme +observe.tree.person=Person +observe.tree.program=Program +observe.tree.reasonForDiscard=Reason for discard +observe.tree.reasonForNoFishing=Reason for no fishing +observe.tree.reasonForNullSet=Reason for null set +observe.tree.reference.common=Common Referential +observe.tree.reference.longline=Longline Referential +observe.tree.reference.seine=Seine Referential +observe.tree.route=Road +observe.tree.route.unsaved=New route +observe.tree.schoolEstimate=School estimate +observe.tree.sensorBrand=Sensor brand +observe.tree.sensorDataFormat=Sensor data format +observe.tree.sensorType=Sensor type +observe.tree.sensorUsed=Sensor used observe.tree.setLongline= -observe.tree.setLongline.unsaved= +observe.tree.setLongline.unsaved=New fishing operation observe.tree.setSeine= -observe.tree.setSeine.unsaved= -observe.tree.settingShape= -observe.tree.sex= -observe.tree.sizeMeasureType= -observe.tree.species= -observe.tree.speciesFate= -observe.tree.speciesGroup= -observe.tree.speciesList= -observe.tree.speciesStatus= -observe.tree.stomacFullness= -observe.tree.surroundingActivity= -observe.tree.targetCatch= -observe.tree.targetDiscarded= -observe.tree.targetSample= -observe.tree.targetSampleCapture= -observe.tree.tdr= -observe.tree.transmittingBuoyOperation= -observe.tree.transmittingBuoyType= -observe.tree.tripLongline.unsaved= -observe.tree.tripSeine.unsaved= -observe.tree.tripType= -observe.tree.vessel= -observe.tree.vesselActivityLongline= -observe.tree.vesselActivitySeine= -observe.tree.vesselSizeCategory= -observe.tree.vesselType= -observe.tree.weightCategory= -observe.tree.weightMeasureType= -observe.tree.wind= -observe.tripLongline.captain= -observe.tripLongline.dataEntryOperator= -observe.tripLongline.endDate= -observe.tripLongline.homeId= -observe.tripLongline.message.active.found= -observe.tripLongline.message.active.found.for.other.program= -observe.tripLongline.message.creating= -observe.tripLongline.message.no.active.found= -observe.tripLongline.message.not.open= -observe.tripLongline.message.updating= -observe.tripLongline.observer= -observe.tripLongline.ocean= -observe.tripLongline.startDate= +observe.tree.setSeine.unsaved=New set +observe.tree.settingShape=Setting shape +observe.tree.sex=Sex +observe.tree.sizeMeasureType=Size measure type +observe.tree.species=Species +observe.tree.speciesFate=Species fate +observe.tree.speciesGroup=Species group +observe.tree.speciesList=Species list +observe.tree.speciesStatus=Species status +observe.tree.stomacFullness=Stomac fullness +observe.tree.surroundingActivity=Surrounding activity +observe.tree.targetCatch=Target catch +observe.tree.targetDiscarded=Target discarded +observe.tree.targetSample=Target sample +observe.tree.targetSampleCapture=Target sample capture +observe.tree.tdr=TDR +observe.tree.transmittingBuoyOperation=Transmitting buoy operation +observe.tree.transmittingBuoyType=Transmitting buoy type +observe.tree.tripLongline.unsaved=New trip +observe.tree.tripSeine.unsaved=New trip +observe.tree.tripType=Trip type +observe.tree.vessel=Boat +observe.tree.vesselActivityLongline=Boat activity +observe.tree.vesselActivitySeine=Boat Activity +observe.tree.vesselSizeCategory=Boat size category +observe.tree.vesselType=Boat type +observe.tree.weightCategory=Weight category +observe.tree.weightMeasureType=Weight measure type +observe.tree.wind=Wind +observe.tripLongline.captain=Capitain +observe.tripLongline.dataEntryOperator=Data entry operator +observe.tripLongline.endDate=End date +observe.tripLongline.homeId=Home id +observe.tripLongline.message.active.found=A trip is opened. +observe.tripLongline.message.active.found.for.other.program=A trip is opened in another program. +observe.tripLongline.message.creating=Creating a trip +observe.tripLongline.message.no.active.found=No opened trip found, you can create a new one or open an existing one. +observe.tripLongline.message.not.open=Current trip is not opened, no edit possible. +observe.tripLongline.message.updating=Updating a trip +observe.tripLongline.observer=Observer +observe.tripLongline.ocean=Ocean +observe.tripLongline.startDate=Start date observe.tripLongline.tab.general= observe.tripLongline.tab.map= -observe.tripLongline.title= -observe.tripLongline.totalFishingOperationsNumber= -observe.tripLongline.tripType= -observe.tripLongline.vessel= -observe.tripSeine.message.active.found= -observe.tripSeine.message.active.found.for.other.program= -observe.tripSeine.message.creating= -observe.tripSeine.message.no.active.found= -observe.tripSeine.message.not.open= -observe.tripSeine.message.updating= -observe.tripSeine.tab.general= -observe.tripSeine.tab.map= -observe.tripSeine.title= +observe.tripLongline.title=Trip +observe.tripLongline.totalFishingOperationsNumber=Total fishing operation count +observe.tripLongline.tripType=Trip type +observe.tripLongline.vessel=Vessel +observe.tripSeine.message.active.found=A trip is opened. +observe.tripSeine.message.active.found.for.other.program=A trip is opened in another program. +observe.tripSeine.message.creating=Creating a trip +observe.tripSeine.message.no.active.found=No opened trip found, you can create a new one or open an existing one. +observe.tripSeine.message.not.open=Current trip is not opened, no edit possible. +observe.tripSeine.message.updating=Updating a trip +observe.tripSeine.tab.general=Caracteristics +observe.tripSeine.tab.map=Map +observe.tripSeine.title=Trip observe.validation.model.type.all= observe.validation.model.type.all.description= observe.validation.model.type.data= @@ -2325,11 +2347,12 @@ observe.validation.report.entities.with.messages= observe.validation.report.entity= observe.validation.report.scopes= observe.validation.report.title= -observe.vessel.tab.general= -observe.vessel.tab.other= -observe.view.message= -observe.view.navigation= +observe.vessel.tab.general=General caracteristics +observe.vessel.tab.other=Other caracteristics +observe.view.message=Messages +observe.view.navigation=Navigation observe.view.server= -observe.warning.nimbus.landf= -observe.warning.no.ui= +observe.warning.nimbus.landf=Could not use Look and Fell Nimbus, need at least version 1.6u10 of java. +observe.warning.no.ui=No gui environment found +observeweb.configuration.description= ui.main.body.synchro.action.copy.to.clipBoard= diff --git a/observe-application-swing/src/main/resources/i18n/observe-application-swing_es_ES.properties b/observe-application-swing/src/main/resources/i18n/observe-application-swing_es_ES.properties index eeccb53..14f800b 100644 --- a/observe-application-swing/src/main/resources/i18n/observe-application-swing_es_ES.properties +++ b/observe-application-swing/src/main/resources/i18n/observe-application-swing_es_ES.properties @@ -1,9 +1,9 @@ nuitonutil.error.convertor.noValue= nuitonutil.error.float.convertor= nuitonutil.error.no.convertor= -observe.about.message= -observe.about.translate.content= -observe.about.translate.title= +observe.about.message=<h3>ObServe</h3><a href\="http\://www.ird.fr/informatique-scientifique/projets/observe/">Système d'Information, d'Observation et de Suivi des pêches thonières tropicales de surface.</a><hr/><p>Aplicación de adquisición Application de datos de observadores y de consulta de estos datos desde una base <i>Obstuna</i>.</p> <p>Este projecto se ha iniciado en 2009 por la unidad US 007-OSIRIS del <a href\="http\://www.ird.fr">IRD</a> dentro del marco de <a href\="http\://ww [...] +observe.about.translate.content=<h2>Comment traduire ObServe</h2>Vous pouvez nous aider à traduire l'application.<hr/><br/><ul><li>Récupérer le fichier <a href\="%s">observe-i18n.csv</a> dans le répertoire <strong>i18n</strong></li><li>ouvrez le avec un tableur avec les options suivantes \: <ul><li>caractère séparateur \: <strong><i>|</i></strong></li><li>encoding <strong><i>UTF-8</i></strong></li><li>texte encapsulé par des <strong><i>"</i></strong></li></ul></li><li>Traduisez, Améliore [...] +observe.about.translate.title=Traducir ObServe observe.action.HookSize.create.tip= observe.action.HookSize.delete.tip= observe.action.HookSize.detail.tip= @@ -14,21 +14,21 @@ observe.action.HookType.delete.tip= observe.action.HookType.detail.tip= observe.action.HookType.modify.tip= observe.action.HookType.save.tip= -observe.action.about= -observe.action.about.tip= -observe.action.add.floatingObject= -observe.action.add.floatingObject.tip= -observe.action.add.set= -observe.action.add.set.tip= -observe.action.add.setLongline= -observe.action.add.setLongline.tip= -observe.action.admin.cancel= -observe.action.admin.close= -observe.action.apply= -observe.action.auto.copy.to.clipboard= -observe.action.auto.copy.to.clipboard.tip= -observe.action.back.to.list= -observe.action.back.to.list.tip= +observe.action.about=A cerca de +observe.action.about.tip=A cerca de ObServe... +observe.action.add.floatingObject=Añadir un DCP +observe.action.add.floatingObject.tip=Añadir un objeto flotante a la actividad +observe.action.add.set=Añadir un lance +observe.action.add.set.tip=Añadir el lance de la actividad +observe.action.add.setLongline=Añadir la operación de pesca +observe.action.add.setLongline.tip=Añadir la operación de pesca asociada a esta actividad +observe.action.admin.cancel=Anular el asintente +observe.action.admin.close=Cerrar el asistente +observe.action.apply=Aplicar +observe.action.auto.copy.to.clipboard=Copia automatica al portapapeles +observe.action.auto.copy.to.clipboard.tip=Puesta a punto automáticamente el contenido del portapapeles con los resultados +observe.action.back.to.list=Volver a la lista +observe.action.back.to.list.tip=Volver a la lista de datos observe.action.baitHaulingStatus.create.tip= observe.action.baitHaulingStatus.delete.tip= observe.action.baitHaulingStatus.detail.tip= @@ -44,121 +44,121 @@ observe.action.baitType.delete.tip= observe.action.baitType.detail.tip= observe.action.baitType.modify.tip= observe.action.baitType.save.tip= -observe.action.cancel= -observe.action.cancel.create.tip= +observe.action.cancel=Cancelar +observe.action.cancel.create.tip=Cancelar la creación del objeto observe.action.catchFateLongline.create.tip= observe.action.catchFateLongline.delete.tip= observe.action.catchFateLongline.detail.tip= observe.action.catchFateLongline.modify.tip= observe.action.catchFateLongline.save.tip= -observe.action.change.storage= -observe.action.change.storage.tip= -observe.action.choose.db.dump= -observe.action.choose.db.dump.description= -observe.action.choose.db.dump.directory= -observe.action.choose.importGPS= -observe.action.choose.importGPS.description= -observe.action.choose.report.directory= -observe.action.choose.reportFile= -observe.action.choose.reportFile.description= +observe.action.change.storage=Cambiar el origen de datos +observe.action.change.storage.tip=Para cambiar el origen de datos de la aplicación +observe.action.choose.db.dump=Elegir la copia de seguridad +observe.action.choose.db.dump.description=Copia de seguridad de la base (*.sql.gz) +observe.action.choose.db.dump.directory=Elegir el directorio de la copia de seguridad +observe.action.choose.importGPS=Usar este archivo +observe.action.choose.importGPS.description=Archivo GPS (*.gpx) +observe.action.choose.report.directory=Elegir el directorio de los informes +observe.action.choose.reportFile=Elegir el archivo de definición de informe +observe.action.choose.reportFile.description=Archivo de definición (*.properties) observe.action.choose.sensorUsed.exportData= observe.action.choose.sensorUsed.importData= observe.action.choose.tdr.exportData= observe.action.choose.tdr.importData= -observe.action.close= -observe.action.close.activity.tip= -observe.action.close.maree.tip= -observe.action.close.open= -observe.action.close.open.tip= -observe.action.close.route.tip= -observe.action.close.storage= -observe.action.close.storage.tip= -observe.action.close.synchro.tip= -observe.action.closeAndCreate= -observe.action.closeAndCreate.activity= -observe.action.closeAndCreate.activity.tip= -observe.action.closeAndCreate.maree= -observe.action.closeAndCreate.maree.tip= -observe.action.closeAndCreate.route= -observe.action.closeAndCreate.route.tip= +observe.action.close=Cerrar +observe.action.close.activity.tip=Cierre de la actividad abierta +observe.action.close.maree.tip=Cierre de la marea abierta +observe.action.close.open=Cierre +observe.action.close.open.tip=Cierre de los datos abiertos +observe.action.close.route.tip=Cierre de la ruta abierta +observe.action.close.storage=Cerrar el origen de datos +observe.action.close.storage.tip=Cerrar el origen de datos usado actualmente +observe.action.close.synchro.tip=Cerrar la ventana +observe.action.closeAndCreate=Cerrar y crear +observe.action.closeAndCreate.activity=Actividad siguiente +observe.action.closeAndCreate.activity.tip=Cierre de la actividad actual y creación de una nueva +observe.action.closeAndCreate.maree=Marea siguiente +observe.action.closeAndCreate.maree.tip=Cierre de la marea actual y creación de una nueva +observe.action.closeAndCreate.route=Ruta siguiente +observe.action.closeAndCreate.route.tip=Cierre de la ruta actual y creación de una nueva observe.action.closeAndCreate.tip= -observe.action.commandline.configure.ui= +observe.action.commandline.configure.ui=Configurara la aplicación observe.action.commandline.create.id= -observe.action.commandline.disable.main.ui= -observe.action.commandline.help= -observe.action.commandline.help.ui= -observe.action.commandline.launch.admin.ui= -observe.action.commandline.launch.h2.server.mode= -observe.action.commandline.launch.obstuna.admin.ui= -observe.action.commandline.use.jmx= -observe.action.configuration= -observe.action.configuration.tip= -observe.action.configure= -observe.action.continue= -observe.action.copy= -observe.action.copy.column.headers= -observe.action.copy.column.headers.tip= -observe.action.copy.row.headers= -observe.action.copy.row.headers.tip= -observe.action.country.create.tip= -observe.action.country.delete.tip= -observe.action.country.detail.tip= -observe.action.country.modify.tip= -observe.action.country.save.tip= -observe.action.create= -observe.action.create.activity= -observe.action.create.activity.tip= -observe.action.create.entry.tip= +observe.action.commandline.disable.main.ui=No ejecutar la interfaz grafica +observe.action.commandline.help=Mostrar la ayuda +observe.action.commandline.help.ui=Mostrar el manual de usuario (modo grafico) +observe.action.commandline.launch.admin.ui=Ejecutar una operación de administración +observe.action.commandline.launch.h2.server.mode=Ejecutar ObServe en modo servidor +observe.action.commandline.launch.obstuna.admin.ui=Ejecutar una operación de administración sobre Obstuna +observe.action.commandline.use.jmx=Mostrar el soporte JMX +observe.action.configuration=Configuración +observe.action.configuration.tip=Modificar la configuración +observe.action.configure=Configurar +observe.action.continue=Continuar +observe.action.copy=Copiar en el portapeles +observe.action.copy.column.headers=Copiar los encabezados de columnas +observe.action.copy.column.headers.tip=Añadir al resultado las cabeceras de columna +observe.action.copy.row.headers=Copiar las cabeceras de linea +observe.action.copy.row.headers.tip=Añadir al resultado las cabeceras de linea (ej. la primera columna) +observe.action.country.create.tip=Crear un nuevo país +observe.action.country.delete.tip=Eliminar el país seleccionado +observe.action.country.detail.tip=Ver los detalles del país seleccionado +observe.action.country.modify.tip=Modificar el país seleccionado +observe.action.country.save.tip=Guardar las modificaciones del país +observe.action.create=Crear +observe.action.create.activity=Crear una nueva actividad +observe.action.create.activity.tip=Crear una nueva actividad para la ruta actual +observe.action.create.entry.tip=Crear una nueva entrada observe.action.create.gearUseFeaturesLongline= observe.action.create.gearUseFeaturesLongline.tip= observe.action.create.gearUseFeaturesSeine= observe.action.create.gearUseFeaturesSeine.tip= -observe.action.create.maree= -observe.action.create.maree.tip= -observe.action.create.nonTargetCatch= -observe.action.create.nonTargetCatch.tip= -observe.action.create.nonTargetSample= -observe.action.create.nonTargetSample.tip= +observe.action.create.maree=Crear nueva marea +observe.action.create.maree.tip=Crear nueva marea para el programa actual +observe.action.create.nonTargetCatch=Insertar esta especie/peso/objectFate +observe.action.create.nonTargetCatch.tip=Insertar esta especie/peso/objectFate +observe.action.create.nonTargetSample=Insertar este muestreo +observe.action.create.nonTargetSample.tip=Insertar muestreo de fauna asociada observe.action.create.objectObservedSpecies= -observe.action.create.objectObservedSpecies.tip= -observe.action.create.route= -observe.action.create.route.tip= -observe.action.create.schoolEstimate= -observe.action.create.schoolEstimate.tip= -observe.action.create.targetCatch= -observe.action.create.targetCatch.tip= -observe.action.create.targetDiscarded= -observe.action.create.targetDiscarded.tip= -observe.action.create.targetSample= -observe.action.create.targetSample.tip= -observe.action.create.targetSampleCapture= -observe.action.create.targetSampleCapture.tip= -observe.action.db.locale.es.tip= -observe.action.db.locale.fr.tip= -observe.action.db.locale.uk.tip= -observe.action.delete= -observe.action.delete.activity.tip= -observe.action.delete.entry.tip= -observe.action.delete.floatingObject.tip= -observe.action.delete.maree.tip= -observe.action.delete.route.tip= -observe.action.delete.set.tip= -observe.action.delete.tip= -observe.action.detail= -observe.action.detectionMode.create.tip= -observe.action.detectionMode.delete.tip= -observe.action.detectionMode.detail.tip= -observe.action.detectionMode.modify.tip= -observe.action.detectionMode.save.tip= -observe.action.do.backup= -observe.action.do.backup.tip= +observe.action.create.objectObservedSpecies.tip=Insertar la especie de fauna observada +observe.action.create.route=Crear una nueva ruta +observe.action.create.route.tip=Crear nueva ruta para la marea actual +observe.action.create.schoolEstimate=Insertar estimación +observe.action.create.schoolEstimate.tip=Insertar la nueva estimación en la tabla +observe.action.create.targetCatch=Insertar esta captura/categoria +observe.action.create.targetCatch.tip=Insertar esta captura/categoria +observe.action.create.targetDiscarded=Insertar descarte/categoría/razón +observe.action.create.targetDiscarded.tip=Insertar descarte/categoría/razón +observe.action.create.targetSample=Insertar muestreo +observe.action.create.targetSample.tip=Insertar muestreo de atún descartado +observe.action.create.targetSampleCapture=Insertar muestreo +observe.action.create.targetSampleCapture.tip=Insertar muestreo de atún capturado +observe.action.db.locale.es.tip=Cambia el idioma del referencial al español +observe.action.db.locale.fr.tip=Cambiar el idioma del referencial al francés +observe.action.db.locale.uk.tip=Cambiar el idioma del referencial al inglés +observe.action.delete=Eliminar +observe.action.delete.activity.tip=Eliminar la actividad +observe.action.delete.entry.tip=Cancelar la edición de la entrada actual +observe.action.delete.floatingObject.tip=Eliminar el objeto flotante actual +observe.action.delete.maree.tip=Eliminar la marea +observe.action.delete.route.tip=Eliminar la ruta +observe.action.delete.set.tip=Eliminar el lance +observe.action.delete.tip=Eliminar +observe.action.detail=Ver detalles +observe.action.detectionMode.create.tip=Crear un nuevo modo de detección +observe.action.detectionMode.delete.tip=Eliminar el modo de detección seleccionado +observe.action.detectionMode.detail.tip=Ver los detalles del modo de detección seleccionado +observe.action.detectionMode.modify.tip=Modificar el modo de detección seleccionado +observe.action.detectionMode.save.tip=Guardar las modificaciones del modo de detección +observe.action.do.backup=Guardar la base local +observe.action.do.backup.tip=Hacer copia de seguridad de la base local antes de aplicar los cambios observe.action.encounterType.create.tip= observe.action.encounterType.delete.tip= observe.action.encounterType.detail.tip= observe.action.encounterType.modify.tip= observe.action.encounterType.save.tip= -observe.action.exit= -observe.action.exit.tip= +observe.action.exit=Salir +observe.action.exit.tip=Salir de ObServe observe.action.fpaZone.create.tip= observe.action.fpaZone.delete.tip= observe.action.fpaZone.detail.tip= @@ -179,41 +179,41 @@ observe.action.gearCaracteristicType.delete.tip= observe.action.gearCaracteristicType.detail.tip= observe.action.gearCaracteristicType.modify.tip= observe.action.gearCaracteristicType.save.tip= -observe.action.goDown= -observe.action.goDown.tip= -observe.action.goUp= -observe.action.goUp.tip= -observe.action.goto.next.stage= -observe.action.goto.next.stage.tip= -observe.action.goto.open.activity= -observe.action.goto.open.activity.short= -observe.action.goto.open.activity.tip= -observe.action.goto.open.maree= -observe.action.goto.open.other.activity= -observe.action.goto.open.other.activity.tip= -observe.action.goto.open.other.maree= -observe.action.goto.open.other.maree.tip= -observe.action.goto.open.other.route= -observe.action.goto.open.other.route.tip= -observe.action.goto.open.program.short= -observe.action.goto.open.program.tip= -observe.action.goto.open.route= -observe.action.goto.open.route.short= -observe.action.goto.open.route.tip= -observe.action.goto.open.set.short= -observe.action.goto.open.set.tip= -observe.action.goto.open.trip.short= -observe.action.goto.open.trip.tip= -observe.action.goto.previous.stage= -observe.action.goto.previous.stage.tip= -observe.action.goto.referentiel.short= -observe.action.goto.referentiel.tip= -observe.action.goto.selected.activity= -observe.action.goto.selected.activity.tip= -observe.action.goto.selected.maree= -observe.action.goto.selected.maree.tip= -observe.action.goto.selected.route= -observe.action.goto.selected.route.tip= +observe.action.goDown=Descender hacia ... +observe.action.goDown.tip=Descender hacia etapas porteriores +observe.action.goUp=Ascender hacia... +observe.action.goUp.tip=Ascender hacia etapas anteriores +observe.action.goto.next.stage=Siguiente +observe.action.goto.next.stage.tip=Etapa siguiente +observe.action.goto.open.activity=Acceder a la actividad abierta +observe.action.goto.open.activity.short=Actividad abierta +observe.action.goto.open.activity.tip=Acceder a la actividad abierta +observe.action.goto.open.maree=Acceder a la marea abierta +observe.action.goto.open.other.activity=Acceder a la actividad abierta en otra ruta +observe.action.goto.open.other.activity.tip=Accder a la actividad abierta (en otra ruta) +observe.action.goto.open.other.maree=Acceder a la marea abierta en otro programa +observe.action.goto.open.other.maree.tip=Acceder a la marea abierta (en otro programa) +observe.action.goto.open.other.route=Acceder a la ruta abierta en otra marea +observe.action.goto.open.other.route.tip=Acceder a la route abierta (en otre marea) +observe.action.goto.open.program.short=Programa abierto +observe.action.goto.open.program.tip=Acceder al programa abierto +observe.action.goto.open.route=Acceder a la route abierta +observe.action.goto.open.route.short=Ruta abierta +observe.action.goto.open.route.tip=Acceder a la ruta abierta +observe.action.goto.open.set.short=Lance abierto +observe.action.goto.open.set.tip=Acceder al lance abierto +observe.action.goto.open.trip.short=Marea abierta +observe.action.goto.open.trip.tip=Acceder a la marea abierta +observe.action.goto.previous.stage=Anterior +observe.action.goto.previous.stage.tip=Acceder a la etapa anterior +observe.action.goto.referentiel.short=Referencial +observe.action.goto.referentiel.tip=Acceder al referencial +observe.action.goto.selected.activity=Acceder a la actividad +observe.action.goto.selected.activity.tip=Acceder a la actividad seleccionada +observe.action.goto.selected.maree=Acceder a la marea +observe.action.goto.selected.maree.tip=Acceder a la marea seleccionada +observe.action.goto.selected.route=Acceder a la ruta +observe.action.goto.selected.route.tip=Acceder a la ruta seleccionada observe.action.harbour.create.tip= observe.action.harbour.delete.tip= observe.action.harbour.detail.tip= @@ -239,8 +239,8 @@ observe.action.hookType.delete.tip= observe.action.hookType.detail.tip= observe.action.hookType.modify.tip= observe.action.hookType.save.tip= -observe.action.info.storage= -observe.action.info.storage.tip= +observe.action.info.storage=Información del origen de datos +observe.action.info.storage.tip=Ver las informaciones del origen de datos actualmente usado observe.action.itemHorizontalPosition.create.tip= observe.action.itemHorizontalPosition.delete.tip= observe.action.itemHorizontalPosition.detail.tip= @@ -251,11 +251,11 @@ observe.action.itemVerticalPosition.delete.tip= observe.action.itemVerticalPosition.detail.tip= observe.action.itemVerticalPosition.modify.tip= observe.action.itemVerticalPosition.save.tip= -observe.action.lengthWeightParameter.create.tip= -observe.action.lengthWeightParameter.delete.tip= -observe.action.lengthWeightParameter.detail.tip= -observe.action.lengthWeightParameter.modify.tip= -observe.action.lengthWeightParameter.save.tip= +observe.action.lengthWeightParameter.create.tip=Crear un nuevo valor de talla-peso +observe.action.lengthWeightParameter.delete.tip=Eliminar el valor de talla-peso seleccionado +observe.action.lengthWeightParameter.detail.tip=Ver los detalles de los valores talla-peso +observe.action.lengthWeightParameter.modify.tip=Modificar los valores talla-peso +observe.action.lengthWeightParameter.save.tip=Guardar las modificaciones de los valores talla-peso observe.action.lightsticksColor.create.tip= observe.action.lightsticksColor.delete.tip= observe.action.lightsticksColor.detail.tip= @@ -271,14 +271,14 @@ observe.action.lineType.delete.tip= observe.action.lineType.detail.tip= observe.action.lineType.modify.tip= observe.action.lineType.save.tip= -observe.action.load.from.file= -observe.action.load.from.file.tip= -observe.action.locale.es= -observe.action.locale.es.tip= -observe.action.locale.fr= -observe.action.locale.fr.tip= -observe.action.locale.uk= -observe.action.locale.uk.tip= +observe.action.load.from.file=Importar una copia de seguridad +observe.action.load.from.file.tip=Cargar una base local desde una copia de seguridad +observe.action.locale.es=Español +observe.action.locale.es.tip=Cambiar el idioma de la applicación al español +observe.action.locale.fr=Francés +observe.action.locale.fr.tip=Cambiar el idioma de la applicación al francés +observe.action.locale.uk=Inglés +observe.action.locale.uk.tip=Cambiar el idioma de la applicación al inglés observe.action.maturityStatus.create.tip= observe.action.maturityStatus.delete.tip= observe.action.maturityStatus.detail.tip= @@ -289,108 +289,108 @@ observe.action.mitigationType.delete.tip= observe.action.mitigationType.detail.tip= observe.action.mitigationType.modify.tip= observe.action.mitigationType.save.tip= -observe.action.modify= -observe.action.new.entry= -observe.action.new.entry.tip= -observe.action.objectFate.create.tip= -observe.action.objectFate.delete.tip= -observe.action.objectFate.detail.tip= -observe.action.objectFate.modify.tip= -observe.action.objectFate.save.tip= -observe.action.objectOperation.create.tip= -observe.action.objectOperation.delete.tip= -observe.action.objectOperation.detail.tip= -observe.action.objectOperation.modify.tip= -observe.action.objectOperation.save.tip= -observe.action.objectType.create.tip= -observe.action.objectType.delete.tip= -observe.action.objectType.detail.tip= -observe.action.objectType.modify.tip= -observe.action.objectType.save.tip= -observe.action.observedSystem.create.tip= -observe.action.observedSystem.delete.tip= -observe.action.observedSystem.detail.tip= -observe.action.observedSystem.modify.tip= -observe.action.observedSystem.save.tip= -observe.action.ocean.create.tip= -observe.action.ocean.delete.tip= -observe.action.ocean.detail.tip= -observe.action.ocean.modify.tip= -observe.action.ocean.save.tip= -observe.action.open.screen= -observe.action.openLink.formsUrl.tip= -observe.action.openLink.reportsUrl.tip= -observe.action.organism.create.tip= -observe.action.organism.delete.tip= -observe.action.organism.detail.tip= -observe.action.organism.modify.tip= -observe.action.organism.save.tip= -observe.action.person.create.tip= -observe.action.person.delete.tip= -observe.action.person.detail.tip= -observe.action.person.modify.tip= -observe.action.person.save.tip= -observe.action.program.create.tip= -observe.action.program.delete.tip= -observe.action.program.detail.tip= -observe.action.program.modify.tip= -observe.action.program.save.tip= -observe.action.quitHelp.tip= -observe.action.reasonForDiscard.create.tip= -observe.action.reasonForDiscard.delete.tip= -observe.action.reasonForDiscard.detail.tip= -observe.action.reasonForDiscard.modify.tip= -observe.action.reasonForDiscard.save.tip= -observe.action.reasonForNoFishing.create.tip= -observe.action.reasonForNoFishing.delete.tip= -observe.action.reasonForNoFishing.detail.tip= -observe.action.reasonForNoFishing.modify.tip= -observe.action.reasonForNoFishing.save.tip= -observe.action.reasonForNullSet.create.tip= -observe.action.reasonForNullSet.delete.tip= -observe.action.reasonForNullSet.detail.tip= -observe.action.reasonForNullSet.modify.tip= -observe.action.reasonForNullSet.save.tip= -observe.action.reload.application= -observe.action.reload.storage= -observe.action.reload.storage.tip= -observe.action.reload.ui= -observe.action.reloadDefaultConfiguration= -observe.action.reloadDefaultConfiguration.tip= -observe.action.reloadResources= -observe.action.reloadResources.tip= -observe.action.reopen= -observe.action.reopen.activity.tip= -observe.action.reopen.maree.tip= -observe.action.reopen.route.tip= -observe.action.reopen.selected.activity= -observe.action.reopen.selected.activity.tip= -observe.action.reopen.selected.maree= -observe.action.reopen.selected.maree.tip= -observe.action.reopen.selected.route= -observe.action.reopen.selected.route.tip= -observe.action.reopen.tip= -observe.action.reset= -observe.action.reset.entry.tip= -observe.action.reset.ersId.tip= -observe.action.reset.formsUrl.tip= +observe.action.modify=Modificar +observe.action.new.entry=Nuevo +observe.action.new.entry.tip=Crear una nueva entrada +observe.action.objectFate.create.tip=Crear un nuevo devenir de objeto +observe.action.objectFate.delete.tip=Eliminar el devenir de objeto seleccionado +observe.action.objectFate.detail.tip=Ver detalles de devenir de objeto seleccionado +observe.action.objectFate.modify.tip=Modificar el devenir de objeto seleccionado +observe.action.objectFate.save.tip=Guardar modificaciones de devenir de objeto +observe.action.objectOperation.create.tip=Crear una nueva operación de objeto +observe.action.objectOperation.delete.tip=Eliminar la operación de objeto seleccionada +observe.action.objectOperation.detail.tip=Ver los detalles de la operación de objeto seleccionada +observe.action.objectOperation.modify.tip=Modificar la operación de objeto seleccionada +observe.action.objectOperation.save.tip=Guardar las modificaciones de la operación de objeto +observe.action.objectType.create.tip=Crera un nuevo tipo de objeto +observe.action.objectType.delete.tip=Eliminar el tipo de objeto seleccionado +observe.action.objectType.detail.tip=Ver los detalles del tipo de objeto seleccionado +observe.action.objectType.modify.tip=Modificar el tipo de objeto seleccionado +observe.action.objectType.save.tip=Guardar las modificaciones de tipo de objeto +observe.action.observedSystem.create.tip=Crear un nuevo sistema observado +observe.action.observedSystem.delete.tip=Eliminar el sistema observado seleccionado +observe.action.observedSystem.detail.tip=Ver los detalles del sistema observado seleccionado +observe.action.observedSystem.modify.tip=Modificar el sistema observado seleccionado +observe.action.observedSystem.save.tip=Guardar las modificaciones del sistema observado +observe.action.ocean.create.tip=Crear un nuevo océano +observe.action.ocean.delete.tip=Eliminar el océano seleccionado +observe.action.ocean.detail.tip=Ver los detalles del océano seleccionado +observe.action.ocean.modify.tip=Modificar el océano seleccionado +observe.action.ocean.save.tip=Guardar las modificaciones del océano +observe.action.open.screen=Abrir pantalla <%1$s> +observe.action.openLink.formsUrl.tip=Acceder a los formularios en un navegador web +observe.action.openLink.reportsUrl.tip=Acceder a los informes en un navegador web +observe.action.organism.create.tip=Crear un nuevo organismo +observe.action.organism.delete.tip=Eliminar el organismo seleccionado +observe.action.organism.detail.tip=Ver los detalles del organismo +observe.action.organism.modify.tip=Modificar el organismo seleccionado +observe.action.organism.save.tip=Guardar las modificaciones del organismo +observe.action.person.create.tip=Crear un nuevo observador +observe.action.person.delete.tip=Eliminar el observador seleccionado +observe.action.person.detail.tip=Ver los detalles del observador seleccionado +observe.action.person.modify.tip=Modificar el observador seleccionado +observe.action.person.save.tip=Guardar las modificaciones del observador +observe.action.program.create.tip=Crear un nuevo programa +observe.action.program.delete.tip=Eliminar el programa seleccionado +observe.action.program.detail.tip=Ver los detalles del programa seleccionado +observe.action.program.modify.tip=Modificar el programa seleccionado +observe.action.program.save.tip=Guardar las modificaciones del programa +observe.action.quitHelp.tip=Salir de la pantalla de ayuda +observe.action.reasonForDiscard.create.tip=Crear una nueva razón de descarte +observe.action.reasonForDiscard.delete.tip=Eliminar la razón de descarte seleccionada +observe.action.reasonForDiscard.detail.tip=Ver los detalles de la razón de descarte seleccionada +observe.action.reasonForDiscard.modify.tip=Modificar la razón de descarte seleccionada +observe.action.reasonForDiscard.save.tip=Guardar las modificaciones de la razón de descarte +observe.action.reasonForNoFishing.create.tip=Crear un nueva causa de non coup de senne +observe.action.reasonForNoFishing.delete.tip=Eliminar la causa del lance nulo seleccionado +observe.action.reasonForNoFishing.detail.tip=Ver los detalles de la cause del lance nulo seleccionado +observe.action.reasonForNoFishing.modify.tip=Modificar la cuasa del lance nulo seleccionado +observe.action.reasonForNoFishing.save.tip=Guardar las modificaciones +observe.action.reasonForNullSet.create.tip=Crear una nueva causa de lance nulo +observe.action.reasonForNullSet.delete.tip=Eliminar la causa de lance nulo seleccionada +observe.action.reasonForNullSet.detail.tip=Ver los detalles de la causa de lance nulo seleccionado +observe.action.reasonForNullSet.modify.tip=Modificar la causa de lance nulo seleccionado +observe.action.reasonForNullSet.save.tip=Guardar las modificaciones de la causa de lance nulo +observe.action.reload.application=Reinicializar la aplicación +observe.action.reload.storage=Recargar el origen de datos +observe.action.reload.storage.tip=Cerrar y reabrir el origen de datos +observe.action.reload.ui=Recargar la interfaz gráfica +observe.action.reloadDefaultConfiguration=Configuración por defecto +observe.action.reloadDefaultConfiguration.tip=Restablecer la configuración por defecto +observe.action.reloadResources=Recargar las traducciones +observe.action.reloadResources.tip=Recargar las traducciones i18n +observe.action.reopen=Reabrir +observe.action.reopen.activity.tip=Reabrir la actividad +observe.action.reopen.maree.tip=Reabrir la marea +observe.action.reopen.route.tip=Reabrir la ruta +observe.action.reopen.selected.activity=Reabrir la actividad +observe.action.reopen.selected.activity.tip=Reabrir la actividad seleccionada +observe.action.reopen.selected.maree=Reabrir la marea +observe.action.reopen.selected.maree.tip=Reabrir la marea seleccionada +observe.action.reopen.selected.route=Reabrir la ruta +observe.action.reopen.selected.route.tip=Reabrir la ruta seleccionada +observe.action.reopen.tip=Reabrir la base de datos +observe.action.reset=Cancelar +observe.action.reset.entry.tip=Cancelar la introducción de datos actual. +observe.action.reset.ersId.tip=Reiniciar Id ERS +observe.action.reset.formsUrl.tip=Reiniciar la URL de los formularios observe.action.reset.homeId.tip= -observe.action.reset.new.entry.tip= +observe.action.reset.new.entry.tip=Cancelar la creación de la entrada observe.action.reset.picturesReferences.tip= -observe.action.reset.reportsUrl.tip= +observe.action.reset.reportsUrl.tip=Reiniciar la URL de los informes observe.action.reset.supportVesselName.tip= -observe.action.reset.tip= +observe.action.reset.tip=Cancelar las modificaciones observe.action.reset.well.tip= -observe.action.restart.application= -observe.action.restart.application.tip= -observe.action.save= -observe.action.save.all.tip= -observe.action.save.entry.tip= -observe.action.save.tip= -observe.action.save.to.file= -observe.action.save.to.file.tip= -observe.action.selectNode= -observe.action.selectNode.tip= +observe.action.restart.application=Reiniciar +observe.action.restart.application.tip=Reiniciar la aplicación +observe.action.save=Grabar +observe.action.save.all.tip=Guardar todas las modificaciones +observe.action.save.entry.tip=Guardar la edición en curso - Sauver l'entrée en cours d'édition +observe.action.save.tip=Guardar las modificaciones +observe.action.save.to.file=Guardar la base de datos +observe.action.save.to.file.tip=Hacer una copia de seguridad de la base de datos abierta +observe.action.selectNode=Seleccionar el nodo +observe.action.selectNode.tip=Seleccionar el nodo observe.action.sensorBrand.create.tip= observe.action.sensorBrand.delete.tip= observe.action.sensorBrand.detail.tip= @@ -416,136 +416,136 @@ observe.action.sex.delete.tip= observe.action.sex.detail.tip= observe.action.sex.modify.tip= observe.action.sex.save.tip= -observe.action.show.technical.informations.tip= -observe.action.show.unique.keys.tip= -observe.action.show.usages.tip= -observe.action.showConfig.title= -observe.action.site= -observe.action.site.tip= +observe.action.show.technical.informations.tip=Ver la información técnica +observe.action.show.unique.keys.tip=Ver la tabla de todas las claves métier usadas por este refencial +observe.action.show.usages.tip=Ver todos los usos de este referencial +observe.action.showConfig.title=Configuración +observe.action.site=Sitio web +observe.action.site.tip=Acceder al sitio web de la apliación observe.action.sizeMeasureType.create.tip= observe.action.sizeMeasureType.delete.tip= observe.action.sizeMeasureType.detail.tip= observe.action.sizeMeasureType.modify.tip= observe.action.sizeMeasureType.save.tip= -observe.action.species.create.tip= -observe.action.species.delete.tip= -observe.action.species.detail.tip= -observe.action.species.modify.tip= -observe.action.species.save.tip= -observe.action.speciesFate.create.tip= -observe.action.speciesFate.delete.tip= -observe.action.speciesFate.detail.tip= -observe.action.speciesFate.modify.tip= -observe.action.speciesFate.save.tip= -observe.action.speciesGroupSpecies.create.tip= -observe.action.speciesGroupSpecies.delete.tip= -observe.action.speciesGroupSpecies.detail.tip= -observe.action.speciesGroupSpecies.modify.tip= -observe.action.speciesGroupSpecies.save.tip= +observe.action.species.create.tip=Crear una nueva especie de fauna +observe.action.species.delete.tip=Eliminar la especie de fauna seleccionada +observe.action.species.detail.tip=Ver detalles de la especie de fauna seleccionada +observe.action.species.modify.tip=Modificar la especie de fauna seleccionada +observe.action.species.save.tip=Guardar las modificaciones de especie de fauna +observe.action.speciesFate.create.tip=Crear un nuevo objectFate de fauna +observe.action.speciesFate.delete.tip=Eliminar el objectFate de fauna seleccionado +observe.action.speciesFate.detail.tip=Ver detalles de objectFate de fauna seleccionado +observe.action.speciesFate.modify.tip=Modificar el objectFate de fauna seleccionado +observe.action.speciesFate.save.tip=Guardar las modificaciones de objectFate de fauna +observe.action.speciesGroupSpecies.create.tip=Crear un nuevo grupo de especie de fauna +observe.action.speciesGroupSpecies.delete.tip=Eliminar un grupo de especie de fauna seleccionada +observe.action.speciesGroupSpecies.detail.tip=Ver los detalles del grupo de especie de faune seleccionada +observe.action.speciesGroupSpecies.modify.tip=Modificar el grupo de especie de fauna seleccionada +observe.action.speciesGroupSpecies.save.tip=Guardar las modificaciones del grupo de especie de fauna observe.action.speciesList.create.tip= observe.action.speciesList.delete.tip= observe.action.speciesList.detail.tip= observe.action.speciesList.modify.tip= -observe.action.speciesStatus.create.tip= -observe.action.speciesStatus.delete.tip= -observe.action.speciesStatus.detail.tip= -observe.action.speciesStatus.modify.tip= -observe.action.speciesStatus.save.tip= -observe.action.start.h2.web.server= -observe.action.start.h2.web.server.tip= -observe.action.start.server.mode= -observe.action.start.server.mode.tip= +observe.action.speciesStatus.create.tip=Crear un nuevo estado de especie +observe.action.speciesStatus.delete.tip=Eliminar el estado de especie seleccionado +observe.action.speciesStatus.detail.tip=Ver los detalles de estado de especie seleccionado +observe.action.speciesStatus.modify.tip=Modificar el estado de especie seleccionado +observe.action.speciesStatus.save.tip=Guardar las modificaciones de estado de especie +observe.action.start.h2.web.server=Iniciar modo servidor Web (H2) +observe.action.start.h2.web.server.tip=Puesta en marcha del servidor web H2 +observe.action.start.server.mode=Iniciar modo servidor +observe.action.start.server.mode.tip=Puesta en marcha de la base local en modo servidor observe.action.stomacFullness.create.tip= observe.action.stomacFullness.delete.tip= observe.action.stomacFullness.detail.tip= observe.action.stomacFullness.modify.tip= observe.action.stomacFullness.save.tip= -observe.action.stop.h2.web.server= -observe.action.stop.h2.web.server.tip= -observe.action.stop.server.mode= -observe.action.stop.server.mode.tip= -observe.action.storage.apply= -observe.action.storage.apply.tip= -observe.action.storage.applyAction= -observe.action.storage.cancel= -observe.action.storage.cancel.tip= -observe.action.surroundingActivity.create.tip= -observe.action.surroundingActivity.delete.tip= -observe.action.surroundingActivity.detail.tip= -observe.action.surroundingActivity.modify.tip= -observe.action.surroundingActivity.save.tip= -observe.action.synchro.apply.modifications= -observe.action.synchro.cancel.tip= -observe.action.synchro.copy.tip= -observe.action.synchro.launch.operation= -observe.action.synchro.prepare.operation= -observe.action.synchro.report.reset.tip= -observe.action.test.remote= -observe.action.test.remote.tip= -observe.action.transmittingBuoyOperation.create.tip= -observe.action.transmittingBuoyOperation.delete.tip= -observe.action.transmittingBuoyOperation.detail.tip= -observe.action.transmittingBuoyOperation.modify.tip= -observe.action.transmittingBuoyOperation.save.tip= -observe.action.transmittingBuoyType.create.tip= -observe.action.transmittingBuoyType.delete.tip= -observe.action.transmittingBuoyType.detail.tip= -observe.action.transmittingBuoyType.modify.tip= -observe.action.transmittingBuoyType.save.tip= +observe.action.stop.h2.web.server=Terminar modo servidor Web (H2) +observe.action.stop.h2.web.server.tip=Parar el servidor web H2 +observe.action.stop.server.mode=Terminar modo servidor +observe.action.stop.server.mode.tip=Parar el modo servidor de la base local +observe.action.storage.apply=Utilizar +observe.action.storage.apply.tip=Utilizar el origen de datos configuarado +observe.action.storage.applyAction=Cambiar el origen de datos +observe.action.storage.cancel=Cancelar el cambio del origen de datos +observe.action.storage.cancel.tip=Cancelar el cambio del origen de datos +observe.action.surroundingActivity.create.tip=Crear una nueva actividad circundante +observe.action.surroundingActivity.delete.tip=Eliminar la actividad circundante seleccionada +observe.action.surroundingActivity.detail.tip=Ver los detalles de la actividad circundante seleccionada +observe.action.surroundingActivity.modify.tip=Modificar la actividad circundante seleccionada +observe.action.surroundingActivity.save.tip=Guardar las modificaciones de la actividad circundante +observe.action.synchro.apply.modifications=Aplicar las modificaciones +observe.action.synchro.cancel.tip=Cancelar +observe.action.synchro.copy.tip=Copiar el informe en el portapapeles +observe.action.synchro.launch.operation=Comenzar la operación < %1$s > +observe.action.synchro.prepare.operation=Prepara la operación <%1$s> +observe.action.synchro.report.reset.tip=Deseleccionar el informe actual +observe.action.test.remote=Comprobar la conexión +observe.action.test.remote.tip=Pulsar para comprobar la conexión con el servidor remoto +observe.action.transmittingBuoyOperation.create.tip=Crear una nueva operación de baliza +observe.action.transmittingBuoyOperation.delete.tip=Eliminar la operación de baliza seleccionada +observe.action.transmittingBuoyOperation.detail.tip=Ver los detalles de la operación de baliza seleccionada +observe.action.transmittingBuoyOperation.modify.tip=Modificar la operación de baliza seleccionada +observe.action.transmittingBuoyOperation.save.tip=Guardar las modificaciones de operación de baliza +observe.action.transmittingBuoyType.create.tip=Crear un nuevo tipo de baliza +observe.action.transmittingBuoyType.delete.tip=Eliminar el tipo de baliza seleccionado +observe.action.transmittingBuoyType.detail.tip=Ver los detalles del tipo de baliza seleccionado +observe.action.transmittingBuoyType.modify.tip=Modificar el tipo de baliza seleccionado +observe.action.transmittingBuoyType.save.tip=Guardar las modificaciones del tipo de baliza observe.action.tripType.create.tip= observe.action.tripType.delete.tip= observe.action.tripType.detail.tip= observe.action.tripType.modify.tip= observe.action.tripType.save.tip= -observe.action.vessel.create.tip= -observe.action.vessel.delete.tip= -observe.action.vessel.detail.tip= -observe.action.vessel.modify.tip= -observe.action.vessel.save.tip= +observe.action.vessel.create.tip=Crear un nuevo barco +observe.action.vessel.delete.tip=Eliminar el barco seleccionado +observe.action.vessel.detail.tip=Ver los detalles del barco seleccionado +observe.action.vessel.modify.tip=Modificar el barco seleccionado +observe.action.vessel.save.tip=Guardar las modificaciones del barco observe.action.vesselActivityLongline.create.tip= observe.action.vesselActivityLongline.delete.tip= observe.action.vesselActivityLongline.detail.tip= observe.action.vesselActivityLongline.modify.tip= observe.action.vesselActivityLongline.save.tip= -observe.action.vesselActivitySeine.create.tip= -observe.action.vesselActivitySeine.delete.tip= -observe.action.vesselActivitySeine.detail.tip= -observe.action.vesselActivitySeine.modify.tip= -observe.action.vesselActivitySeine.save.tip= -observe.action.vesselSizeCategory.create.tip= -observe.action.vesselSizeCategory.delete.tip= -observe.action.vesselSizeCategory.detail.tip= -observe.action.vesselSizeCategory.modify.tip= -observe.action.vesselSizeCategory.save.tip= -observe.action.vesselType.create.tip= -observe.action.vesselType.delete.tip= -observe.action.vesselType.detail.tip= -observe.action.vesselType.modify.tip= -observe.action.vesselType.save.tip= -observe.action.weightCategory.create.tip= -observe.action.weightCategory.delete.tip= -observe.action.weightCategory.detail.tip= -observe.action.weightCategory.modify.tip= -observe.action.weightCategory.save.tip= +observe.action.vesselActivitySeine.create.tip=Crear una nueva actividad del barco +observe.action.vesselActivitySeine.delete.tip=Eliminar la actividad del barco seleccionada +observe.action.vesselActivitySeine.detail.tip=Ver los detalles de la actividad del barco seleccionada +observe.action.vesselActivitySeine.modify.tip=Modificar la actividad del barco seleccionada +observe.action.vesselActivitySeine.save.tip=Guardar las modificaciones de la actividad del barco +observe.action.vesselSizeCategory.create.tip=Crear una nueva categoria de barco +observe.action.vesselSizeCategory.delete.tip=Eliminar la categoria de barco seleccionada +observe.action.vesselSizeCategory.detail.tip=Ver los detalles de la categoria de barco seleccionada +observe.action.vesselSizeCategory.modify.tip=Modificar el barco seleccionado +observe.action.vesselSizeCategory.save.tip=Guardar las modificaciones de la categoria de barco +observe.action.vesselType.create.tip=Crear un nuevo tipo de barco +observe.action.vesselType.delete.tip=Eliminar el tipo de barco seleccioando +observe.action.vesselType.detail.tip=Ver los detalles del tipo de barco seleccionado +observe.action.vesselType.modify.tip=Modificar el tipo de barco seleccionado +observe.action.vesselType.save.tip=Guardar las modificaciones del tipo de barco +observe.action.weightCategory.create.tip=Crear una nueva categoria de peso +observe.action.weightCategory.delete.tip=Eliminar la categoriea de peso seleccionada +observe.action.weightCategory.detail.tip=Ver los detalles de la categoria de peso seleccionada +observe.action.weightCategory.modify.tip=Modificar la categoria de peso seleccionada +observe.action.weightCategory.save.tip=Guardar las modificaciones de la categoria de peso observe.action.weightMeasureType.create.tip= observe.action.weightMeasureType.delete.tip= observe.action.weightMeasureType.detail.tip= observe.action.weightMeasureType.modify.tip= observe.action.weightMeasureType.save.tip= -observe.action.wind.create.tip= -observe.action.wind.delete.tip= -observe.action.wind.detail.tip= -observe.action.wind.modify.tip= -observe.action.wind.save.tip= +observe.action.wind.create.tip=Crear una nueva velocidad de viento +observe.action.wind.delete.tip=Eliminar la velocidad de viento seleccionada +observe.action.wind.detail.tip=Ver los detalles de velocidad de viento seleccionados +observe.action.wind.modify.tip=Modificar la velocidad de viento seleccionada +observe.action.wind.save.tip=Guardar las modificaciones de velocidad de viento observe.activityLongline.coordinate= observe.activityLongline.fpaZone= -observe.activityLongline.message.active.found= -observe.activityLongline.message.active.found.for.other.trip= -observe.activityLongline.message.creating= -observe.activityLongline.message.no.active.found= -observe.activityLongline.message.no.active.found.for.other.trip= -observe.activityLongline.message.not.open= -observe.activityLongline.message.updating= +observe.activityLongline.message.active.found=Actividad abierta +observe.activityLongline.message.active.found.for.other.trip=Existe una actividad abierta en otra ruta. +observe.activityLongline.message.creating=Actividad en proceso de creación. +observe.activityLongline.message.no.active.found=Ninguna actividad abierta, puede crear una nueva o reabrir una. +observe.activityLongline.message.no.active.found.for.other.trip=Ninguna actividad abierta en esta ruta. +observe.activityLongline.message.not.open=La actividad no está abierta, imposible modificar. +observe.activityLongline.message.updating=Se está modificando la actividad actual. observe.activityLongline.seaSurfaceTemperature= observe.activityLongline.timeStamp= observe.activityLongline.title= @@ -553,26 +553,26 @@ observe.activityLongline.vesselActivityLongline= observe.activityLonglines.title= observe.activityObservedSystem.availableObservedSystem= observe.activityObservedSystem.selectedObservedSystem= -observe.activitySeine.message.active.found= -observe.activitySeine.message.active.found.for.other.route= -observe.activitySeine.message.creating= -observe.activitySeine.message.no.active.found= -observe.activitySeine.message.no.active.found.for.other.route= -observe.activitySeine.message.not.open= -observe.activitySeine.message.updating= +observe.activitySeine.message.active.found=Actividad abierta +observe.activitySeine.message.active.found.for.other.route=Existe una actividad abierta en otra ruta. +observe.activitySeine.message.creating=Actividad en proceso de creación. +observe.activitySeine.message.no.active.found=Ninguna actividad abierta, puede crear una nueva o reabrir una. +observe.activitySeine.message.no.active.found.for.other.route=Ninguna actividad abierta en esta ruta. +observe.activitySeine.message.not.open=La actividad no está abierta, imposible modificar. +observe.activitySeine.message.updating=Se está modificando la actividad actual. observe.activitySeine.tab.general= observe.activitySeine.tab.measurements= observe.activitySeine.title= observe.activitySeineObservedSystem.title= observe.activitySeines.title= -observe.admin.resume.no.operation.done= -observe.admin.resume.operation.canceled= -observe.admin.resume.operation.done= -observe.admin.resume.operation.failed= -observe.admin.resume.operation.need.fix= -observe.admin.resume.operation.not.started= -observe.admin.resume.operation.running= -observe.application.config= +observe.admin.resume.no.operation.done=Ninguna operación realizada +observe.admin.resume.operation.canceled=operación cancelada +observe.admin.resume.operation.done=operacion realizada +observe.admin.resume.operation.failed=la operación no realizada +observe.admin.resume.operation.need.fix=la operación nesista correcciones +observe.admin.resume.operation.not.started=operación no empezada +observe.admin.resume.operation.running=operación en curso... +observe.application.config=Configuración de ObServe observe.baitsComposition.action.create= observe.baitsComposition.action.create.tip= observe.baitsComposition.baitSettingStatus= @@ -637,7 +637,7 @@ observe.branchlinesComposition.table.tracelineType.tip= observe.branchlinesComposition.title= observe.branchlinesComposition.topType= observe.branchlinesComposition.tracelineType= -observe.broughtOnDeck.comment= +observe.broughtOnDeck.comment=Sólo las especies subidas a bordo se pueden muestrear. observe.catchLongline.acquisitionMode= observe.catchLongline.acquisitionMode.grouped= observe.catchLongline.acquisitionMode.individual= @@ -657,7 +657,7 @@ observe.catchLongline.count= observe.catchLongline.depredated= observe.catchLongline.discardHealthness= observe.catchLongline.gonadeWeight= -observe.catchLongline.hookPosition= +observe.catchLongline.hookPosition=Posición del gancho observe.catchLongline.hookWhenDiscarded= observe.catchLongline.locationOnLongline= observe.catchLongline.maturityStatus= @@ -710,93 +710,93 @@ observe.catchlongline.table.weight= observe.catchlongline.table.weight.tip= observe.catchlongline.table.weightMeasureType= observe.catchlongline.table.weightMeasureType.tip= -observe.choice.cancel= -observe.choice.confirm.delete= -observe.choice.continue= -observe.choice.create.fin.veille.activity= -observe.choice.create.fin.veille.activity.and.continue= -observe.choice.createLocalStorage= -observe.choice.doNotSave= -observe.choice.doNothing= -observe.choice.not.create.fin.veille.activity.and.continue= -observe.choice.quit= -observe.choice.save= -observe.choice.useRemoteStorage= -observe.common.acquisitionMode= -observe.common.acquisitionMode.count= -observe.common.acquisitionMode.individu= -observe.common.activities= +observe.choice.cancel=Cancelar +observe.choice.confirm.delete=Eliminar +observe.choice.continue=Continuar +observe.choice.create.fin.veille.activity=Crear la actividad de fin de guardia +observe.choice.create.fin.veille.activity.and.continue=Crear la actividad de fin de guardia y continuar +observe.choice.createLocalStorage=Crear la base local +observe.choice.doNotSave=No grabar +observe.choice.doNothing=No hacer nada +observe.choice.not.create.fin.veille.activity.and.continue=No crear la actividad de fin de guardia y continuar +observe.choice.quit=Cerrar +observe.choice.save=Grabar +observe.choice.useRemoteStorage=Usar la base de datos remota +observe.common.acquisitionMode=Modo de entrada de datos +observe.common.acquisitionMode.count=Entrada por grupo de tallas +observe.common.acquisitionMode.individu=Entrada por individuo +observe.common.activities=Actividades observe.common.activities.list= -observe.common.activity= +observe.common.activity=Actividad observe.common.activityLongline= observe.common.activitySeine= observe.common.baitHaulingStatus= -observe.common.baitObservation= +observe.common.baitObservation=Carnada observe.common.baitSettingStatus= observe.common.baitType= observe.common.baitsComposition= observe.common.basket= -observe.common.birdsObservation= -observe.common.boolean.false= -observe.common.boolean.null= -observe.common.boolean.true= +observe.common.birdsObservation=Pájaros +observe.common.boolean.false=No +observe.common.boolean.null=Indeterminado +observe.common.boolean.true=Si observe.common.branchline= observe.common.branchlineLength= observe.common.branchlinesComposition= -observe.common.brand= +observe.common.brand=Marca observe.common.brandName= -observe.common.broughtOnDeck= -observe.common.capacity= -observe.common.capacityLabel= +observe.common.broughtOnDeck=Izado a bordo +observe.common.capacity=Capacidad de transporte +observe.common.capacityLabel=Texto capacidad observe.common.captain= -observe.common.caracteristics= +observe.common.caracteristics=Características observe.common.catchFateLongline= observe.common.catchLongline= -observe.common.catchWeight= -observe.common.catchWeightComputed.computed.tip= -observe.common.catchWeightComputed.observed.tip= -observe.common.changeDate= -observe.common.code= -observe.common.codeAndStatus= -observe.common.coefficients= -observe.common.comment= -observe.common.comment.activity= -observe.common.comment.floatingObject= -observe.common.comment.nonTargetCatch= -observe.common.comment.nonTargetSample= -observe.common.comment.set= -observe.common.comment.targetCatch= -observe.common.comment.targetDiscarded= -observe.common.comment.targetSample= -observe.common.count= -observe.common.country= +observe.common.catchWeight=Peso estimado (en t) +observe.common.catchWeightComputed.computed.tip=Peso estimado calculado +observe.common.catchWeightComputed.observed.tip=Peso estimado observado +observe.common.changeDate=Fecha de carga +observe.common.code=Identificación +observe.common.codeAndStatus=Código +observe.common.coefficients=Coeficientes +observe.common.comment=Comentarios +observe.common.comment.activity=Comentario de la actividad +observe.common.comment.floatingObject=Comentarios de objeto +observe.common.comment.nonTargetCatch=Comentarios de otras especies +observe.common.comment.nonTargetSample=Comentarios de muestreo de otras especies +observe.common.comment.set=Comentarios del lance +observe.common.comment.targetCatch=Comentarios de captura +observe.common.comment.targetDiscarded=Comentarios de descarte +observe.common.comment.targetSample=Comentarios de muestreo de atún +observe.common.count=Número +observe.common.country=País observe.common.currentFpaZone= observe.common.dataEntryOperator= -observe.common.date= -observe.common.daysAtSeaCount= +observe.common.date=Día de observación +observe.common.daysAtSeaCount=Numero de días en el mar observe.common.departureHarbour= -observe.common.description= -observe.common.detailledActivitiesObservation= -observe.common.detectionMode= -observe.common.directory= +observe.common.description=Descripción +observe.common.detailledActivitiesObservation=Actividades detalladas +observe.common.detectionMode=Modo de detección +observe.common.directory=Carpeta observe.common.encounter= observe.common.encounterType= -observe.common.endDate= -observe.common.endLogValue= -observe.common.equation= -observe.common.ersId= +observe.common.endDate=Fecha de fin +observe.common.endLogValue=Corredera de tarde (millas) +observe.common.equation=Relación talla-peso +observe.common.ersId=Id ERS observe.common.faoCode= -observe.common.file= -observe.common.firstName= -observe.common.flagCountry= +observe.common.file=Archivo +observe.common.firstName=Número +observe.common.flagCountry=Badera observe.common.floatingObject= observe.common.floatline1Length= observe.common.floatline2Length= observe.common.floatlineLengths= observe.common.floatlinesComposition= -observe.common.formsUrl= +observe.common.formsUrl=URL de los formularios observe.common.fpaZone= -observe.common.gaugeLabel= +observe.common.gaugeLabel=Texto «Capacidad» observe.common.gear= observe.common.gearCaracteristic= observe.common.gearCaracteristicType= @@ -804,8 +804,8 @@ observe.common.gearType= observe.common.gearUseFeaturesLongline= observe.common.gearUseFeaturesSeine= observe.common.gender= -observe.common.generateReport= -observe.common.global.progression.description= +observe.common.generateReport=Generar un informe de validación +observe.common.global.progression.description=Progresión global observe.common.gps.activity= observe.common.gps.gpsPoint= observe.common.gps.gpsPointInterval= @@ -813,84 +813,84 @@ observe.common.gpsPointInterval= observe.common.harbour= observe.common.haulingIdentifier= observe.common.healthness= -observe.common.heureobservation= +observe.common.heureobservation=Hora de la observación observe.common.homeId= -observe.common.homeIdFAOWormsId= +observe.common.homeIdFAOWormsId=Código 3L / FAO / Worms observe.common.hookPosition= observe.common.hookSize= observe.common.hookType= observe.common.hooksComposition= observe.common.id= observe.common.inconnu= -observe.common.iso2Code= -observe.common.iso3Code= +observe.common.iso2Code=Código ISO-2 +observe.common.iso3Code=Código ISO-3 observe.common.itemHorizontalPosition= observe.common.itemVerticalPosition= -observe.common.keelCodeFlotte= -observe.common.label1= -observe.common.label2= -observe.common.label3= -observe.common.label4= -observe.common.label5= -observe.common.label6= -observe.common.label7= -observe.common.label8= +observe.common.keelCodeFlotte=Código de Quilla / Flota +observe.common.label1=Texto en inglés +observe.common.label2=Texto en francés +observe.common.label3=Nombre +observe.common.label4=Texto 4 +observe.common.label5=Texto 5 +observe.common.label6=Texto 6 +observe.common.label7=Texto 7 +observe.common.label8=Texto 8 observe.common.landingHarbour= -observe.common.lastName= -observe.common.latitude= -observe.common.length= -observe.common.length.computed.tip= -observe.common.length.inf= -observe.common.length.observed.tip= -observe.common.lengthMeasureType= -observe.common.lengthWeightFormula= +observe.common.lastName=Nombre +observe.common.latitude=Latitude +observe.common.length=Longitud eslora total +observe.common.length.computed.tip=Longitud calculada +observe.common.length.inf=Longitud (cm inf.) +observe.common.length.observed.tip=Longitud observada +observe.common.lengthMeasureType=Tipo de medida +observe.common.lengthWeightFormula=Relación de peso observe.common.lengthWeightParameter= -observe.common.libelles= +observe.common.libelles=Textos observe.common.lightsticksColor= observe.common.lightsticksType= observe.common.lineType= observe.common.locode= -observe.common.longitude= +observe.common.longitude=Longitude observe.common.lowerValueUpperValue= -observe.common.mammalsObservation= +observe.common.mammalsObservation=Mamiferos observe.common.maturityStatus= -observe.common.meanLength= -observe.common.meanLengthComputed.computed.tip= -observe.common.meanLengthComputed.observed.tip= -observe.common.meanValues= -observe.common.meanWeight= -observe.common.meanWeightComputed.computed.tip= -observe.common.meanWeightComputed.observed.tip= -observe.common.measureType= -observe.common.measureType.ld1= -observe.common.measureType.lf= -observe.common.measureType.unknown= -observe.common.minLengthMax= -observe.common.minWeightMax= +observe.common.meanLength=Talla media (en cm) +observe.common.meanLengthComputed.computed.tip=La talla media se ha calculado +observe.common.meanLengthComputed.observed.tip=La talla media se ha observado +observe.common.meanValues=Valores medios +observe.common.meanWeight=Peso medio (en Kg) +observe.common.meanWeightComputed.computed.tip=El peso medio se calculó +observe.common.meanWeightComputed.observed.tip=El peso medio se observó +observe.common.measureType=Tipo de medida +observe.common.measureType.ld1=LD1 +observe.common.measureType.lf=LF +observe.common.measureType.unknown=Desconocido +observe.common.minLengthMax=Talla min-max (en cm) +observe.common.minWeightMax=Peso min-max (en Kg) observe.common.mitigationType= observe.common.name= -observe.common.needComment= +observe.common.needComment=Se requiere un comentario observe.common.nextFpaZone= -observe.common.no.balise= +observe.common.no.balise=Ninguna baliza observe.common.nocode= -observe.common.nonCoupSenne= -observe.common.nonTargetCatch= +observe.common.nonCoupSenne=Razón de no lance +observe.common.nonTargetCatch=Fauna asociada conservada o descartada observe.common.nonTargetLength= -observe.common.nonTargetObservation= -observe.common.nonTargetSample= +observe.common.nonTargetObservation=Fauna asociada +observe.common.nonTargetSample=Muestreo fauna asociada observe.common.none= -observe.common.objectFate= +observe.common.objectFate=Devenir de objeto observe.common.objectObservedSpecies= -observe.common.objectOperation= +observe.common.objectOperation=Operación sobre la baliza observe.common.objectSchoolEstimate= -observe.common.objectType= -observe.common.objectsObservation= -observe.common.observedSystem= -observe.common.observedSystemDistance= +observe.common.objectType=Tipo de objeto +observe.common.objectsObservation=Objeto flotante +observe.common.observedSystem=Sistema observado +observe.common.observedSystemDistance=Distancia al sistema observado (millas con 1 decimal) observe.common.observer= observe.common.observerLabel= -observe.common.obsolete.entity= -observe.common.ocean= +observe.common.obsolete.entity=El referencial %1$s está desactivado. +observe.common.ocean=Océano observe.common.ocean/label1= observe.common.ocean/label2= observe.common.ocean/label3= @@ -901,53 +901,53 @@ observe.common.ocean/label7= observe.common.ocean/label8= observe.common.oceanForSpecies= observe.common.oldCode3L= -observe.common.operation.resume= -observe.common.organism= -observe.common.ownership= +observe.common.operation.resume=Resumen de operaciones +observe.common.organism=Organismo +observe.common.ownership=Pertenece a observe.common.person= -observe.common.picturesReferences= -observe.common.power= +observe.common.picturesReferences=Referencia de foto +observe.common.power=Potencia del motor principal observe.common.previousFpaZone= observe.common.program= -observe.common.program.observation.value.0= -observe.common.program.observation.value.1= -observe.common.program.observation.value.2= -observe.common.program.observation.value.3= -observe.common.program.observation.value.4= -observe.common.program.observation.value.5= -observe.common.program.observation.value.6= -observe.common.program.observation.value.7= -observe.common.program.observation.value.8= -observe.common.program.observation.value.9= -observe.common.reasonForDiscard= +observe.common.program.observation.value.0=no observado +observe.common.program.observation.value.1=observado +observe.common.program.observation.value.2=valor 2 no definido +observe.common.program.observation.value.3=valor 3 no definido +observe.common.program.observation.value.4=valor 4 no definido +observe.common.program.observation.value.5=valor 5 no definido +observe.common.program.observation.value.6=valor 6 no definido +observe.common.program.observation.value.7=valor 7 no definido +observe.common.program.observation.value.8=valor 8 no definido +observe.common.program.observation.value.9=valor 9 no definido +observe.common.reasonForDiscard=Razon de descarte observe.common.reasonForNoFishing= observe.common.reasonForNullSet= -observe.common.reportsUrl= -observe.common.resume= +observe.common.reportsUrl=URL del informe +observe.common.resume=Resumen de la configuración observe.common.route= -observe.common.routes.list= -observe.common.samplesObservation= -observe.common.schoolEstimate= -observe.common.schoolType= -observe.common.scientificLabel= -observe.common.seaSurfaceTemperature= -observe.common.searchMaximum= +observe.common.routes.list=Lista de rutas +observe.common.samplesObservation=Medidas +observe.common.schoolEstimate=Estimación del banco +observe.common.schoolType=Tipo de banco +observe.common.scientificLabel=Texto científico +observe.common.seaSurfaceTemperature=Temperatura en superficie (°) +observe.common.searchMaximum=Velocidad máxima de prospección observe.common.section= -observe.common.select.gps.import.file= -observe.common.select.gps.import.file.tip= -observe.common.select.gps.maxDelay= -observe.common.select.gps.maxDelay.tip= -observe.common.select.gps.maxSpeed= -observe.common.select.gps.maxSpeed.tip= -observe.common.select.report.file= -observe.common.select.report.file.tip= -observe.common.select.validate.context= -observe.common.select.validate.context.tip= -observe.common.select.validate.mode= -observe.common.select.validate.mode.tip= -observe.common.select.validate.scope= -observe.common.select.validate.scope.tip= -observe.common.selected.validators= +observe.common.select.gps.import.file=Importar archivo +observe.common.select.gps.import.file.tip=Elegir el archivo de trace GPS a importar +observe.common.select.gps.maxDelay=Tiempos máximos (mn) +observe.common.select.gps.maxDelay.tip=Demora máxima permitida entre 2 puntos gps (en minutos) +observe.common.select.gps.maxSpeed=Velocidad máxima (nd) +observe.common.select.gps.maxSpeed.tip=Velocidad maxima permitida entre 2 puntos (en nudos) +observe.common.select.report.file=Archivo de definición de informes +observe.common.select.report.file.tip=Elegir el archivo de definición de informes +observe.common.select.validate.context=Contexto de validación +observe.common.select.validate.context.tip=Elegir el contexto de validación +observe.common.select.validate.mode=Tipo de datos a validar +observe.common.select.validate.mode.tip=Elegir el tipo de datos a validar +observe.common.select.validate.scope=Nivel de validación +observe.common.select.validate.scope.tip=Elegir el o los niveles de validación +observe.common.selected.validators=Número de validadores detectados \: %1$s observe.common.sensorBrand= observe.common.sensorDataFormat= observe.common.sensorPosition= @@ -957,45 +957,45 @@ observe.common.setLongline= observe.common.setSeine= observe.common.settingIdentifier= observe.common.settingShape= -observe.common.sex= +observe.common.sex=Sexo observe.common.sizeMeasure= observe.common.sizeMeasureType= -observe.common.species= +observe.common.species=Especie observe.common.species/scientificLabel= -observe.common.speciesFate= -observe.common.speciesFaune= -observe.common.speciesGroup= +observe.common.speciesFate=Devenir de fauna +observe.common.speciesFaune=Especie de fauna +observe.common.speciesGroup=Grupo de especie de fauna observe.common.speciesList= -observe.common.speciesStatus= -observe.common.speciesThon= -observe.common.speedRange= -observe.common.startDate= -observe.common.startDateFinProgram= -observe.common.startDateFinValidite= -observe.common.startLogValue= -observe.common.status= -observe.common.step.description= +observe.common.speciesStatus=Estado de especie +observe.common.speciesThon=Especie +observe.common.speedRange=Texto velocidad del viento +observe.common.startDate=Fecha de comienzo +observe.common.startDateFinProgram=Comienzo - Fin de programa +observe.common.startDateFinValidite=Comienzo - Fin de validez +observe.common.startLogValue=Corredera de mañana (millas) +observe.common.status=Estado +observe.common.step.description=Descripción de la etapa observe.common.stomacFullness= -observe.common.storage.not.valid= -observe.common.supportVesselName= -observe.common.surroundingActivity= -observe.common.taille= -observe.common.taillePoids.caracteristics= -observe.common.targetCatch= -observe.common.targetDiscarded= -observe.common.targetDiscardsObservation= +observe.common.storage.not.valid=Origen de datos no configurada +observe.common.supportVesselName=Nombre del supply +observe.common.surroundingActivity=Actividad circundante +observe.common.taille=Talla (cm) +observe.common.taillePoids.caracteristics=Características Talla-Peso +observe.common.targetCatch=Captura de atún +observe.common.targetDiscarded=Descarte de atún +observe.common.targetDiscardsObservation=Descartes de atún observe.common.targetLength= -observe.common.targetSample= -observe.common.targetSampleCapture= +observe.common.targetSample=Muestreo atún descartado +observe.common.targetSampleCapture=Muestreo atún capturado observe.common.tdr= observe.common.tdrRecord= observe.common.time= -observe.common.topiaCreateDate= -observe.common.topiaId= -observe.common.topiaVersion= -observe.common.totalCount= -observe.common.totalCountComputed.computed.tip= -observe.common.totalCountComputed.observed.tip= +observe.common.topiaCreateDate=Fecha de creación +observe.common.topiaId=Técnicas de identificación +observe.common.topiaVersion=Versión +observe.common.totalCount=Número estimado +observe.common.totalCountComputed.computed.tip=El número estimado se calculo +observe.common.totalCountComputed.observed.tip=El número estimado se observo observe.common.totalWeight= observe.common.tracelineLength= observe.common.transmittingBuoy= @@ -1004,12 +1004,12 @@ observe.common.transmittingBuoyType= observe.common.tripLongline= observe.common.tripSeine= observe.common.tripType= -observe.common.trips.list= -observe.common.typeTransmittingBuoyOperation= -observe.common.undefined= -observe.common.undefined.tip= -observe.common.uri= -observe.common.vessel= +observe.common.trips.list=Lista de mareas +observe.common.typeTransmittingBuoyOperation=Tipo de operación sobre baliza +observe.common.undefined=- +observe.common.undefined.tip=< no definido > +observe.common.uri=URI +observe.common.vessel=Barco observe.common.vessel/label1= observe.common.vessel/label2= observe.common.vessel/label3= @@ -1019,8 +1019,8 @@ observe.common.vessel/label6= observe.common.vessel/label7= observe.common.vessel/label8= observe.common.vesselActivityLongline= -observe.common.vesselActivitySeine= -observe.common.vesselActivitySeine.comment= +observe.common.vesselActivitySeine=Actividad del barco +observe.common.vesselActivitySeine.comment=Solo la actividad %1$s permite introducir un lance observe.common.vesselActivitySeine/label1= observe.common.vesselActivitySeine/label2= observe.common.vesselActivitySeine/label3= @@ -1029,65 +1029,65 @@ observe.common.vesselActivitySeine/label5= observe.common.vesselActivitySeine/label6= observe.common.vesselActivitySeine/label7= observe.common.vesselActivitySeine/label8= -observe.common.vesselSizeCategory= -observe.common.vesselSpeed= -observe.common.vesselType= -observe.common.waveHeight= -observe.common.weight= -observe.common.weight.computed.tip= -observe.common.weight.ind= -observe.common.weight.observed.tip= -observe.common.weightCategory= -observe.common.weightLengthFormula= +observe.common.vesselSizeCategory=Capacidad +observe.common.vesselSpeed=Velocidad del barco (nd) +observe.common.vesselType=Pesquería +observe.common.waveHeight=Texto descriptivo de «altura media de la ola» +observe.common.weight=Peso (en t) +observe.common.weight.computed.tip=Peso calculado +observe.common.weight.ind=Peso del ejemplar (en Kg) +observe.common.weight.observed.tip=Peso observado +observe.common.weightCategory=Categoría de peso +observe.common.weightLengthFormula=Relación de tallas observe.common.weightMeasure= observe.common.weightMeasureType= -observe.common.well= -observe.common.wind= -observe.common.yearService= -observe.comon.exist.on.remote= -observe.config.category.changeStorage= -observe.config.category.changeStorage.description= -observe.config.category.directories= -observe.config.category.directories.description= -observe.config.category.gps= -observe.config.category.gps.description= -observe.config.category.h2= -observe.config.category.h2.description= +observe.common.well=Cuba +observe.common.wind=Fuerza del viento +observe.common.yearService=año de entrada en servicio +observe.comon.exist.on.remote=%1$s (ya existente) +observe.config.category.changeStorage=Origen de datos +observe.config.category.changeStorage.description=Opciones de cambio del origen de datos +observe.config.category.directories=Directorios +observe.config.category.directories.description=Directorios de la aplicación +observe.config.category.gps=GPS +observe.config.category.gps.description=Configuración GPS +observe.config.category.h2=Base local +observe.config.category.h2.description=Configuración de la base locale observe.config.category.map= observe.config.category.map.description= -observe.config.category.observation= -observe.config.category.observation.description= -observe.config.category.obstuna= -observe.config.category.obstuna.description= -observe.config.category.other= -observe.config.category.other.description= +observe.config.category.observation=Calificacion de las observaciones +observe.config.category.observation.description=Gestion de los indicadores de calificación de los programas +observe.config.category.obstuna=Base remota +observe.config.category.obstuna.description=Configuración de la base remota +observe.config.category.other=Otro +observe.config.category.other.description=Otras opciones observe.config.category.speciesList.longline= observe.config.category.speciesList.longline.description= observe.config.category.speciesList.seine= observe.config.category.speciesList.seine.description= -observe.config.category.synchro= -observe.config.category.synchro.description= -observe.config.configFileName.description= -observe.config.db.locale= -observe.config.defaultBackupDirectory.description= -observe.config.defaultCreationMode= -observe.config.defaultDataDirectory.description= -observe.config.defaultDbMode= -observe.config.defaultGpsMaxDelay= -observe.config.defaultGpsMaxSpeed= -observe.config.defaultI18nDirectory.description= -observe.config.defaultInitialDbDump.description= -observe.config.defaultLocalDbDirectory.description= +observe.config.category.synchro=Acciones sobre la base +observe.config.category.synchro.description=Configuración de acciones sobre la base +observe.config.configFileName.description=Nombre del archivo de configuración +observe.config.db.locale=Idioma del referencial +observe.config.defaultBackupDirectory.description=Carpeta por defecto para copia de seguridad de bases locales +observe.config.defaultCreationMode=Modo de creación de la base local por defecto +observe.config.defaultDataDirectory.description=Directorio por defecto de los recursos de usuario de la aplicación +observe.config.defaultDbMode=Modo de conexión creado por defecto +observe.config.defaultGpsMaxDelay=Número de minutos máximos por defectro entre 2 puntos gps +observe.config.defaultGpsMaxSpeed=Velocidad máxima por defecto entre 2 puntos pgs +observe.config.defaultI18nDirectory.description=Directorio por defecto de recursos de traducción de la aplicación +observe.config.defaultInitialDbDump.description=Base empotrada creada durante la primera importación de una base remota +observe.config.defaultLocalDbDirectory.description=Directorio de almacenamiento de la base local observe.config.defaultMapDirectory.description= -observe.config.defaultReportDirectory.description= -observe.config.defaultResourcesDirectory.description= -observe.config.defaultTmpDirectory.description= -observe.config.defaultValidationReportDirectory.description= +observe.config.defaultReportDirectory.description=Directorio por defecto de los informes de la aplicación +observe.config.defaultResourcesDirectory.description=Directorio de almacenamiento de los recursos de usuario como las traducciones o la consultas de informes +observe.config.defaultTmpDirectory.description=Directorio temporal por defecto +observe.config.defaultValidationReportDirectory.description=Directorio por defecto de almacenamiento de los informes de validación observe.config.devMode= -observe.config.h2.can.migrate.description= -observe.config.h2.login.description= -observe.config.h2.password.description= -observe.config.h2.serverPort.description= +observe.config.h2.can.migrate.description=Autorizar la actualización de las bases locales (h2) +observe.config.h2.login.description=Login h2 +observe.config.h2.password.description=Contraseña h2 +observe.config.h2.serverPort.description=Puerto del servidor h2 observe.config.logConfigurationFile.description= observe.config.map.background.description= observe.config.map.layer1.description= @@ -1101,22 +1101,26 @@ observe.config.map.layer7.description= observe.config.map.layer8.description= observe.config.map.layer9.description= observe.config.map.style.description= -observe.config.observation.activitysDetaillees= -observe.config.observation.fauneAssociee= -observe.config.observation.floatingObject= -observe.config.observation.gleure= -observe.config.observation.mammiferes= -observe.config.observation.mensurations= -observe.config.observation.oiseaux= -observe.config.observation.rejetsThons= -observe.config.obstuna.login.description= -observe.config.obstuna.password.description= -observe.config.obstuna.url.description= -observe.config.obstuna.useSsl.description= -observe.config.pg.can.migrate.description= -observe.config.showMigrationProgression= -observe.config.showMigrationSql= -observe.config.showSql= +observe.config.observation.activitysDetaillees=Observación de actividades detalladas +observe.config.observation.fauneAssociee=Observación de Fauna asociada +observe.config.observation.floatingObject=Observación de objetos flotantes +observe.config.observation.gleure=Observación de carnada +observe.config.observation.mammiferes=Observación de mamiferos +observe.config.observation.mensurations=Observación de mendiciones +observe.config.observation.oiseaux=Observaciones de pájaros +observe.config.observation.rejetsThons=Observación de descartes de atún +observe.config.obstuna.login.description=Nombre de usuario para conectarse a la base Obstuna +observe.config.obstuna.password.description=Contraseña para conectarse a la base Obstuna +observe.config.obstuna.url.description=Url de conexión a la base Obstuna +observe.config.obstuna.useSsl.description=Drapeau pour permettre l'utilisation du mode ssl pour la connexion à Obstuna +observe.config.pg.can.migrate.description=Autorizar la actualización de las bases remotas (debe ser el propietario de la base) +observe.config.server.dataBaseName.description= +observe.config.server.login.description= +observe.config.server.password.description= +observe.config.server.url.description= +observe.config.showMigrationProgression=Mostar los logs de actualización de una base de datos +observe.config.showMigrationSql=Mostrar en los logs las consultas realizadas durante la actualización de una base de datos +observe.config.showSql=Mostrar en los los todas las consultas sql ejecutadas observe.config.speciesList.longline.catch= observe.config.speciesList.longline.encounter= observe.config.speciesList.seine.nonTargetCatch= @@ -1124,17 +1128,17 @@ observe.config.speciesList.seine.objectObservedSpecies= observe.config.speciesList.seine.objectSchoolEstimate= observe.config.speciesList.seine.schoolEstimate= observe.config.speciesList.seine.targetCatch= -observe.config.ui.autoPopupNumberEditor= -observe.config.ui.changeSynchroSrc= -observe.config.ui.fullscreen= -observe.config.ui.loadLocalStorage= -observe.config.ui.locale= -observe.config.ui.showNumberEditorButton= +observe.config.ui.autoPopupNumberEditor=Para mostrar automáticamente el editor numérico durante la edición de un número +observe.config.ui.changeSynchroSrc=Pour autoriser la sélection de la base source dans les opérations sur base +observe.config.ui.fullscreen=Para mostrar en modo pantalla completa la aplicación +observe.config.ui.loadLocalStorage=Cambiar la base local al iniciar la aplicación +observe.config.ui.locale=Idioma de la aplicación (fr_FR, en_GB o es_ES) +observe.config.ui.showNumberEditorButton=Para mostrar el botón que permite usar el editor numérico a la izquierda de cada campo numérico observe.config.ui.showTimeEditorSlider= -observe.config.ui.storeRemoteStorage= -observe.content.mode.create.tip= -observe.content.mode.read.tip= -observe.content.mode.update.tip= +observe.config.ui.storeRemoteStorage=Para activar la copia de seguridad de la configuración del origen de datos remota +observe.content.mode.create.tip=Objeto en proceso de creación +observe.content.mode.read.tip=Objeto no se puede editar +observe.content.mode.update.tip=Objeto en proceso de edición observe.encounter.action.create= observe.encounter.action.create.tip= observe.encounter.count= @@ -1150,10 +1154,10 @@ observe.encounter.table.encouterType.tip= observe.encounter.table.species= observe.encounter.table.species.tip= observe.encounter.title= -observe.entity.message.updating= -observe.error.can.not.create.directory= -observe.error.no.activity.6= -observe.error.open.first.db= +observe.entity.message.updating=Se está modificando el objeto actual '%1$s'. +observe.error.can.not.create.directory=¡Imposible crear el directorio %1$s\! +observe.error.no.activity.6=La actividad con código 6 no se ha encontrado en la base de datos. +observe.error.open.first.db=La base está siendo utilizada por otra aplicación.\nPor favor, cierre la aplicación H2 y vuelva a intentarlo. observe.error.speciesList.longline.catch.notFound= observe.error.speciesList.longline.depredator.notFound= observe.error.speciesList.longline.encounter.notFound= @@ -1162,8 +1166,8 @@ observe.error.speciesList.seine.objectSchoolEstimate.notFound= observe.error.speciesList.seine.targetCatch.notFound= observe.error.storage.could.not.backup.unsane.local.db= observe.error.storage.could.not.load.local.db= -observe.floatingObject.message.creating= -observe.floatingObject.message.updating= +observe.floatingObject.message.creating=Objeto en proceso de creación. +observe.floatingObject.message.updating=Se está modificando el objeto flotante actual. observe.floatingObject.title= observe.floatingObjectTransmittingBuoyOperation.title= observe.floatlinesComposition.action.create= @@ -1222,6 +1226,8 @@ observe.gearUseFeaturesSeine.table.gearCaracteristic= observe.gearUseFeaturesSeine.table.gearCaracteristic.tip= observe.gearUseFeaturesSeine.table.number= observe.gearUseFeaturesSeine.table.number.tip= +observe.gearUseFeaturesSeine.table.size= +observe.gearUseFeaturesSeine.table.size.tip= observe.gearUseFeaturesSeine.table.usedInTrip= observe.gearUseFeaturesSeine.table.usedInTrip.tip= observe.gearUseFeaturesSeine.table.value= @@ -1247,17 +1253,17 @@ observe.hooksComposition.table.hookType.tip= observe.hooksComposition.table.proportion= observe.hooksComposition.table.proportion.tip= observe.hooksComposition.title= -observe.info.selected.validators= -observe.info.validation.credentials= -observe.init.local.db.detected= -observe.init.no.initial.dump.detected= -observe.init.no.local.db.detected= -observe.init.storage.done= -observe.label.coefficients.info= -observe.label.lengthWeightFormula.info= -observe.label.usage.data.title= -observe.label.usage.referentiel.title= -observe.label.weightLengthFormula.info= +observe.info.selected.validators=Es necesario seleccionar un validador para continuar. +observe.info.validation.credentials=Para validar el referencial (resp. los datos), debe tener los derechos de lectura y escritura correspondientes. +observe.init.local.db.detected=%1$s detectado. +observe.init.no.initial.dump.detected=Base empotrada %1$s no detectada. +observe.init.no.local.db.detected=Base local %1$s no detectada. +observe.init.storage.done=Inicialización del servicio de persistencia terminado. +observe.label.coefficients.info=Los coeficientes de relaciones son de la forma lastName\=valor y están separados por \: (ejemplo \: a\=1\:b\=2\:c\=3) +observe.label.lengthWeightFormula.info=La relación talla-peso permite calcular el peso a partir de la talla, debe contener la variable L +observe.label.usage.data.title=Datos '%1$s' (%2$d ocurrencias) +observe.label.usage.referentiel.title=Referencial '%1$s' (%2$d ocurrencias) +observe.label.weightLengthFormula.info=la relación talla-peso permite calcular la talla a partir del peso, debe contener la varible P observe.lengthWeightParameter.tab.general= observe.lengthWeightParameter.tab.other= observe.list.HookSize= @@ -1266,8 +1272,8 @@ observe.list.baitHaulingStatus= observe.list.baitSettingStatus= observe.list.baitType= observe.list.catchFateLongline= -observe.list.country= -observe.list.detectionMode= +observe.list.country=Paíises registrados +observe.list.detectionMode=Modos de detección registradas observe.list.encounterType= observe.list.fpaZone= observe.list.gear= @@ -1280,47 +1286,47 @@ observe.list.hookSize= observe.list.hookType= observe.list.itemHorizontalPosition= observe.list.itemVerticalPosition= -observe.list.lengthWeightParameter= +observe.list.lengthWeightParameter=Parámetros talla-peso de Fauna observe.list.lightsticksColor= observe.list.lightsticksType= observe.list.lineType= observe.list.maturityStatus= observe.list.mitigationType= -observe.list.objectFate= -observe.list.objectOperation= -observe.list.objectType= -observe.list.observedSystem= -observe.list.ocean= -observe.list.operation= -observe.list.organism= -observe.list.person= -observe.list.program= -observe.list.reasonForDiscard= -observe.list.reasonForNoFishing= -observe.list.reasonForNullSet= +observe.list.objectFate=Devenir de objetos registrados +observe.list.objectOperation=Operaciones con objeto registradas +observe.list.objectType=Tipos de objeto registrado +observe.list.observedSystem=Sistemas observados registrados +observe.list.ocean=Océanos registrados +observe.list.operation=Operaciones de baliza registradas +observe.list.organism=Organismos registrados +observe.list.person=Observadores registrados +observe.list.program=Programas registrados +observe.list.reasonForDiscard=Razones de descarte registradas +observe.list.reasonForNoFishing=Causas de no pesca registradas +observe.list.reasonForNullSet=Causas de lance nulo registradas observe.list.sensorBrand= observe.list.sensorDataFormat= observe.list.sensorType= observe.list.settingShape= -observe.list.sex= +observe.list.sex=Sexo registradas observe.list.sizeMeasureType= -observe.list.speciesFate= -observe.list.speciesFaune= -observe.list.speciesGroupSpecies= +observe.list.speciesFate=Devenir de fauna registrados +observe.list.speciesFaune=Especies de fauna registradas +observe.list.speciesGroupSpecies=Grupos de especies de fauna registradas observe.list.speciesList= -observe.list.speciesStatus= +observe.list.speciesStatus=Estado de especies registradas observe.list.stomacFullness= -observe.list.surroundingActivity= +observe.list.surroundingActivity=Lista de actividades circundantes observe.list.transmittingBuoyType= observe.list.tripType= -observe.list.vessel= +observe.list.vessel=Lista de barcos registrados observe.list.vesselActivityLongline= observe.list.vesselActivitySeine= -observe.list.vesselSizeCategory= -observe.list.vesselType= -observe.list.weightCategory= +observe.list.vesselSizeCategory=Lista de categorías de barcos registrados +observe.list.vesselType=Tipos de barco registrados +observe.list.weightCategory=Categorías de peso registradas observe.list.weightMeasureType= -observe.list.wind= +observe.list.wind=Fuerzas de viento registradas observe.longlineDetailComposition.action.deleteAllSections= observe.longlineDetailComposition.action.deleteAllSections.tip= observe.longlineDetailComposition.action.deleteSelectedBasket= @@ -1397,7 +1403,12 @@ observe.map.action.exportPng.tip= observe.map.action.zoomIt= observe.map.action.zoomIt.tip= observe.map.east= +observe.map.export.chooseFile.image= observe.map.export.chooseFile.ok= +observe.map.export.chooseFile.overwrite= +observe.map.export.chooseFile.overwrite.cancel= +observe.map.export.chooseFile.overwrite.ok= +observe.map.export.chooseFile.overwrite.title= observe.map.export.chooseFile.png= observe.map.export.chooseFile.title= observe.map.export.overwrite= @@ -1429,209 +1440,210 @@ observe.map.south= observe.map.waitLoading= observe.map.west= observe.measurement.delete.message= -observe.menu.actions= -observe.menu.application.locale= -observe.menu.configuration= -observe.menu.configuration.tip= -observe.menu.db.locale= -observe.menu.file= -observe.menu.help= -observe.menu.locale= -observe.menu.navigation= -observe.menu.storage= -observe.message.can.not.write.data= -observe.message.cant.add.echantillonRejetThon= -observe.message.cant.add.echantillonTargetCatch= -observe.message.cant.add.nonTargetSample= -observe.message.consolidate.operation.done= -observe.message.consolidate.save.changes= -observe.message.creating.referentiel= -observe.message.db.closed= -observe.message.db.loaded= -observe.message.db.loading= -observe.message.db.none.loaded= -observe.message.db.none.loaded.tip= -observe.message.delete= -observe.message.delete.directory= -observe.message.delete.new= -observe.message.detected.accepted.interval= -observe.message.detected.rejected.interval= -observe.message.exportData.delete.remote.maree= -observe.message.exportData.not.possible= -observe.message.exportData.operation.needFix= -observe.message.exportData.prepare.data= -observe.message.exportData.replicate.maree= -observe.message.goto.site= -observe.message.h2.server.login= -observe.message.h2.server.password= -observe.message.h2.server.url= -observe.message.help.usage= -observe.message.historical.data= -observe.message.importGPS.apply.point= -observe.message.importGPS.apply.points= -observe.message.importGPS.detect.point= -observe.message.importGPS.detect.points= -observe.message.importGPS.detected.point= -observe.message.importGPS.no.activity.selected= -observe.message.importGPS.no.detected.point= -observe.message.importGPS.no.invalid.interval= -observe.message.importGPS.nothing.to.do= -observe.message.importGPS.operation.needFix= -observe.message.importGPS.prepare.importFile= -observe.message.loaded.tip= -observe.message.need.fin.veille.activity= -observe.message.no.accepted.intervalle.detected= -observe.message.no.activity.detected= +observe.menu.actions=Acciones +observe.menu.application.locale=Aplicación +observe.menu.configuration=Configuración +observe.menu.configuration.tip=Menú de configuración +observe.menu.db.locale=Referencial +observe.menu.file=Archivo +observe.menu.help=Ayuda +observe.menu.locale=Idiomas +observe.menu.navigation=Navegación +observe.menu.storage=Origen de datos +observe.message.can.not.write.data=No tiene autorización para escribir los datos de observadores en este origen de datos. +observe.message.cant.add.echantillonRejetThon=Imposible añadir los muestreos de descartes de atunes (no hay descartes de atunes izados a bordo). +observe.message.cant.add.echantillonTargetCatch=Imposible añadir los muestreos de atunes (no hay captura de atunes) +observe.message.cant.add.nonTargetSample=Imposible añadir los muestreos (no hay descartes de fauna +observe.message.consolidate.operation.done=Operación de calculo de datos terminada en %1$s. +observe.message.consolidate.save.changes=Guardar las modificaciones de la(s) %1$s marea(s) modificada(s). +observe.message.creating.referentiel=Objeto en proceso de creación. +observe.message.db.closed=%1$s ha sido cerrado +observe.message.db.loaded=%1$s cargado +observe.message.db.loading=%1$s cargando +observe.message.db.none.loaded=No hay origen de datos cargado +observe.message.db.none.loaded.tip=No hay origen de datos cargado... +observe.message.delete=Confirmar la eliminación del objeto \:\n\n '%1$s' - '%2$s'\n +observe.message.delete.directory=Eliminación del directorio %1$s +observe.message.delete.new=Confirme la eliminación del objeto \:\n\n '%1$s'\n +observe.message.detected.accepted.interval=Intervalo de punto gps aceptado detectado \: %1$s +observe.message.detected.rejected.interval=Intervalo de punto gps rechazado detectado \: %1$s +observe.message.exportData.delete.remote.maree=Eliminación de la marea (%1$s) del programa (%2$s) de la base remota. +observe.message.exportData.not.possible=La exportación no es posible (vea el mensaje anterior). +observe.message.exportData.operation.needFix=Seleccione las mareas a exportar. +observe.message.exportData.prepare.data=Preparación de los datos a exportar... +observe.message.exportData.replicate.maree=Duplicación de la marea (%1$s) del programa (%2$s) hacia la base remota. +observe.message.goto.site=Acceder al sitio de d'Observe (%1$s) +observe.message.h2.server.login=Iniciar sesión +observe.message.h2.server.password=Contraseña +observe.message.h2.server.url=Url de acceso al servidor +observe.message.help.usage=Ayuda de Observe v %1$s +observe.message.historical.data=Datos históricos (puede cerrarse incluso sin validar) +observe.message.importGPS.apply.point=Integrar datos gps %1$s en %2$s +observe.message.importGPS.apply.points=Integar los datos gps en actividad seleccionada de la marea abierta +observe.message.importGPS.detect.point=Detección del punto gps de la actividad %1$s +observe.message.importGPS.detect.points=Detección de puntos gps para las actividades de la marea abierta +observe.message.importGPS.detected.point=Punto gps detectadao %1$s +observe.message.importGPS.no.activity.selected=Ninguna actividad seleccionada +observe.message.importGPS.no.detected.point=No detectado punto gps de la actividad. +observe.message.importGPS.no.invalid.interval=<No se utiliza ningún intervalo de puntos.> +observe.message.importGPS.nothing.to.do=Ningún dato a importar +observe.message.importGPS.operation.needFix=Se requieren correcciones para la importación GPS +observe.message.importGPS.prepare.importFile=Preparación de importación GPS \:\n - archivo a usar \: %1$s \n - tiempo máximo \: %2$s\n - velocidad máxima \: %3$s +observe.message.loaded.tip=La %1$s cargada,\n\nPuede cargar la base haciendo clic aquí. +observe.message.need.fin.veille.activity=Ninguna actividad de fin de guardia registrada en la ruta a cerrar.\n Puede \:\n\n\t- Cancelar el cierre y continuar con la ruta\n\t- Crear la actividad de fin de guardia e ir a ella.\n\t- Crear la actividad de fin de guardia y a continuación cerra la ruta\n\t- Continuar con el cierra de la ruta sin crear la actividad de fin de guardia. +observe.message.no.accepted.intervalle.detected=No se detecta ningún intervalo aceptable de punto gps +observe.message.no.activity.detected=No se encuentra actividad en la marea abierta. observe.message.no.activity.for.route= observe.message.no.activity.for.trip= -observe.message.no.local.db.found= -observe.message.no.open.maree.detected= -observe.message.no.report.selected= -observe.message.no.route.detected= -observe.message.no.route.for.maree= -observe.message.no.species.selected= -observe.message.no.trip.for.program= -observe.message.no.usage.for.entity= -observe.message.no.validation.detected= -observe.message.quit.invalid.edit= -observe.message.quit.valid.edit= -observe.message.referentiel.editable= -observe.message.referentiel.home= -observe.message.referentiel.no.editable= -observe.message.save.configuration= -observe.message.select.report= -observe.message.server.info= -observe.message.show.usage.for.delete= -observe.message.show.usage.for.delete2= -observe.message.show.usage.for.desactivated= -observe.message.show.usage.for.desactivated2= -observe.message.show.usage.for.desactivated3= -observe.message.show.usages= -observe.message.synchro.build.diff= -observe.message.synchro.create.temporary.db.to.resolve.obsoletes= -observe.message.synchro.local.modification= -observe.message.synchro.no.local.modification= -observe.message.synchro.no.referentiel.conflict= -observe.message.synchro.obsolete.data.to.duplicate= -observe.message.synchro.operation.canceled= -observe.message.synchro.operation.done= -observe.message.synchro.operation.failed= -observe.message.synchro.operation.needFix= -observe.message.synchro.ref.is.updtodate= -observe.message.synchro.referentiel.was.added= -observe.message.synchro.referentiel.was.modified= -observe.message.synchro.referentiel.was.removed= -observe.message.table.editBean.modified= -observe.message.table.editBean.modified.but.invalid= +observe.message.no.local.db.found=No existe la base local (ruta %1$s).\n\nPuede crear la base local o conectase a una base remota. +observe.message.no.open.maree.detected=No se encuentra ninguna marea abierta. +observe.message.no.report.selected=Ningún informe seleccionado +observe.message.no.route.detected=Ninguna ruta detectada en la marea abierta +observe.message.no.route.for.maree=Ninguna ruta en la marea actual +observe.message.no.species.selected=Ninguna especie seleccionada +observe.message.no.trip.for.program=Ninguna marea para el programa actual +observe.message.no.usage.for.entity=Ningún usuario encontrado. +observe.message.no.validation.detected=Ningún validador encontrado. +observe.message.quit.invalid.edit=¡Datos no validos, no se pueden guardar\!\n\nNota\: Si continúa se cancelarán todas las modificaciones. +observe.message.quit.valid.edit=¡Los datos han sido modificados y son válidos\! +observe.message.referentiel.editable=El referencial es editable. +observe.message.referentiel.home=< Referencial > +observe.message.referentiel.no.editable=No tiene permisos para editar el referencial. +observe.message.save.configuration=Guardar la configuración en el archivo %1$s +observe.message.select.report=Seleccione informe +observe.message.server.info=Inforamción modo servidor +observe.message.show.usage.for.delete=El referencial %1$s "%2$s" no se puede eliminar. +observe.message.show.usage.for.delete2=Los objetos están usando actualmente las referencias que se enumeran a continuación. +observe.message.show.usage.for.desactivated=El referencial %1$s "%2$s" se desactivará. +observe.message.show.usage.for.desactivated2=Los objetos están usando actualmente las referencias que se enumeran a continuación.. +observe.message.show.usage.for.desactivated3=Estos objetos deben usar otro referencial (no desactivado) para poder actualizarse. +observe.message.show.usages=Listas de usos de referenciales %1$s \: '%2$s' +observe.message.synchro.build.diff=Construcción del diferencial de referenciales desde\: %1$s +observe.message.synchro.create.temporary.db.to.resolve.obsoletes=Se han detectado elementos obsoletos, para resolverso se creará una base temporal +observe.message.synchro.local.modification=Los datos que han sido modificados en la base local deben ser guardados. +observe.message.synchro.no.local.modification=No se han modificado datos en la base local, no es necesario guardar. +observe.message.synchro.no.referentiel.conflict=El referencial de la base local no está actualizado (pero conflicto detectado). +observe.message.synchro.obsolete.data.to.duplicate=Elemento a recopiar en la base temporal +observe.message.synchro.operation.canceled=Operación cancelada +observe.message.synchro.operation.done=Operación terminada el %1$td/%1$tm/%1$tY à %1$tH\:%1$tM\:%1$tS +observe.message.synchro.operation.failed=Error en la operación +observe.message.synchro.operation.needFix=La operación requiere corecciones. +observe.message.synchro.ref.is.updtodate=El referencial de la base local está actualizado, no se requieren correciones. +observe.message.synchro.referentiel.was.added=Se han añadido los datos al referencial remoto (%1$d objeto(s)) +observe.message.synchro.referentiel.was.modified=Se han modificado los datos en el referencial remoto (%1$d objeto(s)) +observe.message.synchro.referentiel.was.removed=Se han eliminado datos del referencial remoto (%1$d objeto(s)) +observe.message.table.editBean.modified=El registro actual se ha modificado y es válido. +observe.message.table.editBean.modified.but.invalid=El registro actual se ha modificado pero no es válido. observe.message.updating.floatingObject= -observe.message.updating.referentiel= -observe.message.validation.detected= -observe.message.validation.not.save.report= -observe.message.validation.nothing.to.do= -observe.message.validation.operation.done= -observe.message.validation.operation.needFix= -observe.message.validation.prepare.validators= -observe.message.validation.save.report= -observe.message.validation.start.maree= -observe.message.validation.start.referentiel= -observe.message.validation.use.storage= -observe.message.warning.will.be.delete= +observe.message.updating.referentiel=Se está actualizando el objeto. +observe.message.validation.detected=Se ha encontrado el validador para el tipo %1$s +observe.message.validation.not.save.report=No hay informe que guardar. +observe.message.validation.nothing.to.do=Los datos son válidos y no necesitan corrección. +observe.message.validation.operation.done=Ha terminado la operación de validación de %1$td/%1$tm/%1$tY à %1$tH\:%1$tM\:%1$ts. +observe.message.validation.operation.needFix=Los datos no son válidos y necesitan ser corregidos. +observe.message.validation.prepare.validators=Detección de validadores +observe.message.validation.save.report=El informe de validación se ha guardado en el archivo %1$s +observe.message.validation.start.maree=Validación de la marea '%1$s' (%2$s) +observe.message.validation.start.referentiel=Validación del referencial de tipo '%1$s' (%2$s entidades) +observe.message.validation.use.storage=Se realizará la validación de %1$s +observe.message.warning.will.be.delete=%1$s\n\nAtención, la exportación reemplazará la marea existente. +observe.model.version= observe.navigationMenu.moveTrip= observe.navigationMenu.noAction= -observe.nonTargetCatch.message.table.will.delete.nonTargetSample= -observe.nonTargetCatch.table.catchWeight= -observe.nonTargetCatch.table.catchWeight.tip= -observe.nonTargetCatch.table.comment= -observe.nonTargetCatch.table.comment.tip= -observe.nonTargetCatch.table.deleteExtraMessage= -observe.nonTargetCatch.table.meanLength= -observe.nonTargetCatch.table.meanLength.tip= -observe.nonTargetCatch.table.meanWeight= -observe.nonTargetCatch.table.meanWeight.tip= -observe.nonTargetCatch.table.reasonForDiscard= -observe.nonTargetCatch.table.reasonForDiscard.tip= -observe.nonTargetCatch.table.speciesFate= -observe.nonTargetCatch.table.speciesFate.tip= -observe.nonTargetCatch.table.speciesFaune= -observe.nonTargetCatch.table.speciesFaune.tip= -observe.nonTargetCatch.table.totalCount= -observe.nonTargetCatch.table.totalCount.tip= -observe.nonTargetSample.table.count= -observe.nonTargetSample.table.count.tip= -observe.nonTargetSample.table.gender= -observe.nonTargetSample.table.gender.tip= -observe.nonTargetSample.table.length= -observe.nonTargetSample.table.length.tip= -observe.nonTargetSample.table.meanWeight= -observe.nonTargetSample.table.meanWeight.tip= -observe.nonTargetSample.table.picturesReferences= -observe.nonTargetSample.table.picturesReferences.tip= -observe.nonTargetSample.table.speciesFaune= -observe.nonTargetSample.table.speciesFaune.tip= -observe.objectObservedSpecies.table.count= -observe.objectObservedSpecies.table.count.tip= -observe.objectObservedSpecies.table.speciesFaune= -observe.objectObservedSpecies.table.speciesFaune.tip= -observe.objectObservedSpecies.table.speciesStatus= -observe.objectObservedSpecies.table.speciesStatus.tip= -observe.obstuna.action.create= -observe.obstuna.action.create.description= -observe.obstuna.action.drop= -observe.obstuna.action.drop.description= -observe.obstuna.action.security= -observe.obstuna.action.security.description= -observe.obstuna.action.update= -observe.obstuna.action.update.description= -observe.person.country= +observe.nonTargetCatch.message.table.will.delete.nonTargetSample=¡Confirmar la eliminación de los objetos de la copia de seguridad.\!\n\n Las especies siguientes no estarán disponibles en los muestreos\:\n%1$s\nComo consecuencia se suprimiràn los muestreos siguientes \:\n%2$s +observe.nonTargetCatch.table.catchWeight=Peso +observe.nonTargetCatch.table.catchWeight.tip=Peso estimados (en t) +observe.nonTargetCatch.table.comment=Comentario +observe.nonTargetCatch.table.comment.tip=Comentario +observe.nonTargetCatch.table.deleteExtraMessage=\nLa eliminación de una captura de fauna puede tener como consecuencia la eliminación de muestreo(s) de la especie. +observe.nonTargetCatch.table.meanLength=Talla +observe.nonTargetCatch.table.meanLength.tip=Talla media (en cm) +observe.nonTargetCatch.table.meanWeight=Peso medio +observe.nonTargetCatch.table.meanWeight.tip=Peso medio (en Kg) +observe.nonTargetCatch.table.reasonForDiscard=Razón del descarte +observe.nonTargetCatch.table.reasonForDiscard.tip=Razón del descarte +observe.nonTargetCatch.table.speciesFate=Devenir +observe.nonTargetCatch.table.speciesFate.tip=Devenir de fauna +observe.nonTargetCatch.table.speciesFaune=Especie +observe.nonTargetCatch.table.speciesFaune.tip=Especie +observe.nonTargetCatch.table.totalCount=Número +observe.nonTargetCatch.table.totalCount.tip=Número estimado +observe.nonTargetSample.table.count=Grupo de tallas +observe.nonTargetSample.table.count.tip=Grupo de tallas +observe.nonTargetSample.table.gender=Sexo +observe.nonTargetSample.table.gender.tip=Sexo +observe.nonTargetSample.table.length=Talla +observe.nonTargetSample.table.length.tip=Talla +observe.nonTargetSample.table.meanWeight=Peso +observe.nonTargetSample.table.meanWeight.tip=Peso del individuo +observe.nonTargetSample.table.picturesReferences=Ref. a foto +observe.nonTargetSample.table.picturesReferences.tip=Referencia a foto +observe.nonTargetSample.table.speciesFaune=Especie +observe.nonTargetSample.table.speciesFaune.tip=Especie +observe.objectObservedSpecies.table.count=Número +observe.objectObservedSpecies.table.count.tip=Número +observe.objectObservedSpecies.table.speciesFaune=Especie +observe.objectObservedSpecies.table.speciesFaune.tip=Especie +observe.objectObservedSpecies.table.speciesStatus=Estado +observe.objectObservedSpecies.table.speciesStatus.tip=Estado +observe.obstuna.action.create=Creación de Obstuna +observe.obstuna.action.create.description=Creación de una nueva base remota Obstuna +observe.obstuna.action.drop=Destrucción de Obstuna +observe.obstuna.action.drop.description=Destrucción de una base remota Obstuna +observe.obstuna.action.security=Actualización de seguridad de Obstuna +observe.obstuna.action.security.description=Actualización de securidad de una base remota Obstuna +observe.obstuna.action.update=Actualización de Obstuna +observe.obstuna.action.update.description=Actualización de una base remota Obstuna +observe.person.country=Nacionalidad observe.program.tab.general= observe.program.tab.observations= -observe.route.message.active.found= -observe.route.message.active.found.for.other.trip= -observe.route.message.creating= -observe.route.message.no.active.found= +observe.route.message.active.found=Ruta abierta. +observe.route.message.active.found.for.other.trip=Existe una ruta abierta en otra marea. +observe.route.message.creating=Ruta en proceso de creación. +observe.route.message.no.active.found=Ninguna ruta abierta, puede crear una nueva o reabrir una. observe.route.message.no.active.found.for.other.trip= -observe.route.message.not.open= -observe.route.message.updating= +observe.route.message.not.open=la ruta actual no está abierta, no se pueden hacer modificaciones. +observe.route.message.updating=Se está modificando la ruta actual. observe.route.title= observe.routes.title= -observe.runner.config.loaded= -observe.runner.config.migrate.file= -observe.runner.context.loaded= +observe.runner.config.loaded=Configuración de Observe v. %1$s cargada. +observe.runner.config.migrate.file=El fichero de configuración %1$s ha sido reemplazado por \n%2$s\nvers\n%3$s +observe.runner.context.loaded=Finlazada la inicialización del contexto en %1$s. observe.runner.copy.default.logConfigurationFile.file= observe.runner.copy.default.map.file= -observe.runner.copy.default.report.file= -observe.runner.copy.default.ui.file= -observe.runner.create.directory= -observe.runner.exists.directory= -observe.runner.i18n.loaded= -observe.runner.init= -observe.runner.load.database= -observe.runner.loaded= -observe.runner.loading.ui.configuration= -observe.runner.quit.withno.ui= -observe.runner.start= -observe.runner.ui.loaded= -observe.runner.user.directories.loaded= -observe.schoolEstimate.table.meanWeight= -observe.schoolEstimate.table.meanWeight.tip= -observe.schoolEstimate.table.speciesThon= -observe.schoolEstimate.table.speciesThon.tip= -observe.schoolEstimate.table.weight= -observe.schoolEstimate.table.weight.tip= +observe.runner.copy.default.report.file=Creación del archivo de informes %1$s. +observe.runner.copy.default.ui.file=Creación del archivo de - Création du fichier de cosmétique %1$s. +observe.runner.create.directory=Creación del directorio %1$s +observe.runner.exists.directory=El directorio %1$s existe. +observe.runner.i18n.loaded=Servicio de traducción cargado en el idioma %1$s. +observe.runner.init=Inicialización d'ObServe %1$s %2$s +observe.runner.load.database=Cargando el origen de datos +observe.runner.loaded=Se ha cargado ObServe v %1$s +observe.runner.loading.ui.configuration=Chargement du fichier de cosmétique %1$s +observe.runner.quit.withno.ui=Cierre de la aplicación sin abrir la interfaz gráfica +observe.runner.start=Inicio de ObServe %1$s %2$s +observe.runner.ui.loaded=Finalizada la inicialización de la interfaz gráfica +observe.runner.user.directories.loaded=Se ha inicializado el directorio del usuario (%1$s). +observe.schoolEstimate.table.meanWeight=Peso medio (en Kg) +observe.schoolEstimate.table.meanWeight.tip=Peso medio (en Kg) +observe.schoolEstimate.table.speciesThon=Especie +observe.schoolEstimate.table.speciesThon.tip=Especie de atún (no se puede modificar una vez se haya creado la estimación) +observe.schoolEstimate.table.weight=Peso (en t) +observe.schoolEstimate.table.weight.tip=Peso (en t) observe.section.cant.delete.message= observe.section.cant.delete.title= observe.sectionTemplate.delete.message= observe.sections.delete.message= -observe.security.referentiel= -observe.security.referentiel.tip= -observe.security.role= -observe.security.role.tip= -observe.security.technicien= -observe.security.technicien.tip= -observe.security.unused= -observe.security.unused.tip= -observe.security.utilisateur= -observe.security.utilisateur.tip= +observe.security.referentiel=Referencial +observe.security.referentiel.tip=Tiene permiso de solo lectura sobre el referencial (ningún permiso sobre los datos) +observe.security.role=Rol +observe.security.role.tip=Nombre del rol de la base +observe.security.technicien=Técnico +observe.security.technicien.tip=El rol tiene todos los permisos sobre el referencial y los datos +observe.security.unused=No utilizado +observe.security.unused.tip=No usar este rol +observe.security.utilisateur=Usuario +observe.security.utilisateur.tip=El rol tiene permisos de lectura sobre el referencial y los datos observe.sensorUsed.action.create= observe.sensorUsed.action.create.tip= observe.sensorUsed.action.reset.dataLocation.tip= @@ -1666,7 +1678,7 @@ observe.sensorUsed.table.sensorType= observe.sensorUsed.table.sensorType.tip= observe.sensorUsed.title= observe.setLongline.action.reset.homeId.tip= -observe.setLongline.basketsPerSectionCount= +observe.setLongline.basketsPerSectionCount=Número de cestas por sección observe.setLongline.branchlinesPerBasketCount= observe.setLongline.haulingBreaks= observe.setLongline.haulingDirectionSameAsSetting= @@ -1680,7 +1692,7 @@ observe.setLongline.lightsticksPerBasketCount= observe.setLongline.lightsticksType= observe.setLongline.lineType= observe.setLongline.maxDepthTargeted= -observe.setLongline.message.creating= +observe.setLongline.message.creating=Lance en proceso de creación. observe.setLongline.message.updating= observe.setLongline.monitored= observe.setLongline.number= @@ -1710,12 +1722,12 @@ observe.setSeine.currentSpeed= observe.setSeine.endPursingTimeStamp= observe.setSeine.endSetTimeStamp= observe.setSeine.maxGearDepth= -observe.setSeine.message.creating= -observe.setSeine.message.information.schoolType= -observe.setSeine.message.no.nonTargetDiscarded= -observe.setSeine.message.no.targetCatch= -observe.setSeine.message.no.targetDiscarded= -observe.setSeine.message.updating= +observe.setSeine.message.creating=Lance en proceso de creación. +observe.setSeine.message.information.schoolType=Tipo de banco calculado a partir de los sistemas observados de su actividad. +observe.setSeine.message.no.nonTargetDiscarded=El lance no tiene descartes de fauna. +observe.setSeine.message.no.targetCatch=Para los muestreos de atunes capturados, se necesita al menos una captura. +observe.setSeine.message.no.targetDiscarded=Para muestreos de atunes, se necesita al menos un descarte de atún izado a bordo. +observe.setSeine.message.updating=Se está modificando el lance actual. observe.setSeine.nonTargetDiscarded= observe.setSeine.reasonForNullSet= observe.setSeine.schoolMeanDepth= @@ -1724,7 +1736,7 @@ observe.setSeine.schoolTopDepth= observe.setSeine.schoolType= observe.setSeine.schoolType.not.fill= observe.setSeine.sonarUsed= -observe.setSeine.sonarUsedAvantSet= +observe.setSeine.sonarUsedAvantSet=Utilización del sonar antes del lance observe.setSeine.startTime= observe.setSeine.supportVesselName= observe.setSeine.tab.general= @@ -1739,7 +1751,7 @@ observe.speciesList.availableSpecies= observe.speciesList.selectedSpecies= observe.speciesList.tab.general= observe.speciesList.tab.species= -observe.storage.action.canMigrate= +observe.storage.action.canMigrate=Actualización de la base (versión actual %1$s) observe.storage.connexionStatut.failed= observe.storage.connexionStatut.failed.description= observe.storage.connexionStatut.success= @@ -1754,6 +1766,8 @@ observe.storage.creationMode.importLocalStorage= observe.storage.creationMode.importLocalStorage.description= observe.storage.creationMode.importRemoteStorage= observe.storage.creationMode.importRemoteStorage.description= +observe.storage.creationMode.importServerStorage= +observe.storage.creationMode.importServerStorage.description= observe.storage.creationMode.internalDump= observe.storage.creationMode.internalDump.description= observe.storage.dataPolicy.readData= @@ -1770,148 +1784,158 @@ observe.storage.dbMode.useLocal= observe.storage.dbMode.useLocal.description= observe.storage.dbMode.useRemote= observe.storage.dbMode.useRemote.description= -observe.storage.error.dbVersionMismatch= -observe.storage.importExternalDump.config= -observe.storage.importExternalDump.description= +observe.storage.dbMode.useServer= +observe.storage.dbMode.useServer.description= +observe.storage.error.dbVersionMismatch=La versión de la base remota (%s)no es compatible con la versión del modelo (%s). +observe.storage.importExternalDump.config=Selección de la copia de seguridad a utilizar +observe.storage.importExternalDump.description=Seleccione el archivo de una copia de seguridad (*.sql.gz). observe.storage.importExternalDumpData.config= -observe.storage.importExternalDumpReferentiel.config= -observe.storage.importRemoteStorage.config= -observe.storage.importRemoteStorage.description= +observe.storage.importExternalDumpReferentiel.config=Seleccione la copia de seguridad que contiene el referencial a importar +observe.storage.importRemoteStorage.config=Seleccione la base remota a importar +observe.storage.importRemoteStorage.description=Configurar la conección hacia una base remota.\nAntes de continuar, debe validad la conexión. observe.storage.importRemoteStorageData.config= -observe.storage.importRemoteStorageReferentiel.config= -observe.storage.internalDump.last.modified= -observe.storage.internalDump.not.exist= -observe.storage.label.backup= +observe.storage.importRemoteStorageReferentiel.config=Escoja la base remota que contenga el referencial a importar +observe.storage.internalDump.last.modified=(última importación \: %1$td/%1$tm/%1$tY à %1$tH\:%1$tM) +observe.storage.internalDump.not.exist=No hay base de embarque. +observe.storage.label.backup=Base temporal para backup observe.storage.label.data.import.db= observe.storage.label.db.to.create= observe.storage.label.db.to.drop= observe.storage.label.db.to.update= observe.storage.label.db.to.update.security= observe.storage.label.import.data= -observe.storage.label.import.local= -observe.storage.label.import.referentiel= -observe.storage.label.import.remote= -observe.storage.label.local= +observe.storage.label.import.local=Base local de importación +observe.storage.label.import.referentiel=Base remota de importación +observe.storage.label.import.remote=Base remota de importación +observe.storage.label.local=Base local observe.storage.label.reference.import.db= -observe.storage.label.remote= -observe.storage.label.synchro= -observe.storage.label.synchro.incoming= -observe.storage.label.synchro.referentiel= -observe.storage.locale.db= +observe.storage.label.remote=Base remota +observe.storage.label.rest= +observe.storage.label.synchro=Base de sincronización +observe.storage.label.synchro.incoming=Base origen <%1$s> +observe.storage.label.synchro.referentiel=Base central <%1$s> +observe.storage.locale.db=(local) observe.storage.message.provider.detected= -observe.storage.no.creationMode= -observe.storage.no.creationMode.required= -observe.storage.no.dbMode= +observe.storage.no.creationMode=No se ha seleccionado ningún modo de creación +observe.storage.no.creationMode.required=No requerido. +observe.storage.no.dbMode=Ningún tipo de origen de datos seleccionado observe.storage.noImportData.config= -observe.storage.noImportReferentiel.config= -observe.storage.remote.db= -observe.storage.remote.login= -observe.storage.remote.password= -observe.storage.remote.url= -observe.storage.remote.useSll= -observe.storage.report.action.backup.local= -observe.storage.report.action.backup.remote= -observe.storage.report.action.connect.local= -observe.storage.report.action.connect.remote= -observe.storage.report.action.create.local= +observe.storage.noImportReferentiel.config=Sin configuración +observe.storage.remote.db=(remoto) +observe.storage.remote.login=Login +observe.storage.remote.password=Contraseña +observe.storage.remote.url=Url +observe.storage.remote.useSll=¿modo ssl? +observe.storage.report.action.backup.local=Copia de seguridad de la base local +observe.storage.report.action.backup.remote=Copia de seguridad de la base remota +observe.storage.report.action.connect.local=Conexión a una base local +observe.storage.report.action.connect.remote=Conexión a una base remota +observe.storage.report.action.create.local=Creación de la base local observe.storage.report.action.data.import.backup= -observe.storage.report.action.import.backup= -observe.storage.report.action.import.internal= +observe.storage.report.action.import.backup=Importar de una copia de seguridad \: +observe.storage.report.action.import.internal=Importar de el último referencial \: observe.storage.report.action.import.remote.data= -observe.storage.report.action.import.remote.referentiel= -observe.storage.report.action.migrate= +observe.storage.report.action.import.remote.referentiel=Imporatar el referencial de una base remota \: +observe.storage.report.action.migrate=Politica de actualización observe.storage.report.action.no.data.import= -observe.storage.report.action.no.referentiel.import= -observe.storage.report.action.referentiel.import.backup= -observe.storage.report.can.migrate= -observe.storage.report.can.not.migrate= -observe.storage.report.no.create.mode= -observe.storage.report.security.owner= -observe.storage.report.security.readers= -observe.storage.report.security.referentiels= -observe.storage.report.security.techniciens= -observe.storage.report.selected.all.data= +observe.storage.report.action.no.referentiel.import=No importar referencial +observe.storage.report.action.referentiel.import.backup=Importar referencial desde una copia de seguridad +observe.storage.report.can.migrate=Actualizar si es necesario (version actual \: %1$s) +observe.storage.report.can.not.migrate=No es posible actualizar +observe.storage.report.no.create.mode=No se requiere modo de creación de la base +observe.storage.report.security.owner=Propietario \: %1$s +observe.storage.report.security.readers=Lecturas \: %1$s +observe.storage.report.security.referentiels=Teferenciales \: %1$s +observe.storage.report.security.techniciens=Técnicos \: %1$s +observe.storage.report.selected.all.data=Se han exportado todos los datos del observador (%1$s marea(s)). observe.storage.report.selected.all.data.to.import= -observe.storage.report.selected.backup.file= -observe.storage.report.selected.data= +observe.storage.report.selected.backup.file=Ruta de la copia de seguridad \: +observe.storage.report.selected.data=%1$s marea(s) exportada observe.storage.report.selected.data.for.import= -observe.storage.report.selected.data.referentiel= -observe.storage.report.selected.data.to.export= +observe.storage.report.selected.data.referentiel=Se exportará el referencial +observe.storage.report.selected.data.to.export=Datos a exportar \: observe.storage.report.selected.data.to.import= -observe.storage.report.selected.localStorageFile= -observe.storage.report.selected.no.data= +observe.storage.report.selected.localStorageFile=Ruta de la base local \: +observe.storage.report.selected.no.data=No hay datos del observador par exportar observe.storage.report.selected.no.data.to.import= -observe.storage.report.selected.remoteStorage= -observe.storage.report.selected.security= -observe.storage.required.rw.on.data= -observe.storage.security.administrateur= -observe.storage.selected.dbMode= -observe.storage.selectedCreationMode= -observe.storage.showMigrationProgression= -observe.storage.showMigrationSql= -observe.storage.step.backup= -observe.storage.step.backup.description= -observe.storage.step.config= -observe.storage.step.config.description= +observe.storage.report.selected.remoteStorage=Información sobre la conexión remota a usar \: +observe.storage.report.selected.security=Seguridad +observe.storage.required.rw.on.data=No tiene los permisos necesarios para realizar esta operación.\n\nDebe tener permios de lectura y escritura de los datos del obaservador. +observe.storage.security.administrateur=Propietario de la base +observe.storage.selected.dbMode=Tipo de origen de datos seleccionado +observe.storage.selectedCreationMode=Modo de creación seleccionada +observe.storage.server.dataBase= +observe.storage.showMigrationProgression=Mostrar el progreso de las actualizaciones +observe.storage.showMigrationSql=Mostrar las consultas sql de las actualizaciones +observe.storage.step.backup=Copia de seguridad +observe.storage.step.backup.description=Guardadar la base local antes de cambiar el origen de datos +observe.storage.step.config=Configuracion +observe.storage.step.config.description=Configurar el origen de datos seleccionado observe.storage.step.configData= observe.storage.step.configData.description= -observe.storage.step.configReferentiel= -observe.storage.step.configReferentiel.description= -observe.storage.step.confirm= -observe.storage.step.confirm.description= -observe.storage.step.creationMode= -observe.storage.step.dbMode= -observe.storage.step.dbMode.description= -observe.storage.step.dbMode.detail= -observe.storage.step.label= -observe.storage.step.roles= -observe.storage.step.roles.description= -observe.storage.step.selectData= -observe.storage.step.selectData.description= -observe.storage.store.remote.config= -observe.storage.store.remote.config.tip= -observe.storage.useRemoteStorage.config= -observe.storage.useRemoteStorage.description= -observe.synchro.add.object= -observe.synchro.common.activity= -observe.synchro.common.latitude= -observe.synchro.common.longitude= -observe.synchro.common.quadrant= -observe.synchro.common.reference= -observe.synchro.common.select= -observe.synchro.common.vitesse= +observe.storage.step.configReferentiel=Referencial +observe.storage.step.configReferentiel.description=Configurar la importación del referencial +observe.storage.step.confirm=Resumén +observe.storage.step.confirm.description=Resumén de las operaciones a efectuar. +observe.storage.step.creationMode=Creación de la base local +observe.storage.step.dbMode=Modo +observe.storage.step.dbMode.description=Elegir el modo de conexión +observe.storage.step.dbMode.detail=Tipo de origen de datos +observe.storage.step.label=Etapa %1$d/%2$d \: %3$s +observe.storage.step.roles=Seguridad +observe.storage.step.roles.description=Configuración de la seguridad +observe.storage.step.selectData=Selección de datos +observe.storage.step.selectData.description=Seleccionar los datos a exportar en la copia de seguridad +observe.storage.store.remote.config=Mantener la configuración +observe.storage.store.remote.config.tip=Mantener los parámetros de configuración del origen de datos remota (excepto la contraseña por motivos de seguridad) +observe.storage.useRemoteStorage.config=Configurar la base remota a usar +observe.storage.useRemoteStorage.description=Configure la conexión a la base remota\nAntes de continuar, debe validar la conexión. +observe.storage.useServerStorage.config= +observe.storage.useServerStorage.description= +observe.synchro.add.object=Añadir el referencial %1$s +observe.synchro.common.activity=Actividad +observe.synchro.common.exist=Mareas en la base remota +observe.synchro.common.latitude=Latitud +observe.synchro.common.longitude=Longitud +observe.synchro.common.maree=Marea +observe.synchro.common.program=Programa +observe.synchro.common.quadrant=Cuadrante +observe.synchro.common.reference=Referencia +observe.synchro.common.select=... +observe.synchro.common.selected=Marea a exportar +observe.synchro.common.vitesse=Velocidad observe.synchro.config.data.mode= observe.synchro.config.data.storage= observe.synchro.config.export.required.read.data= observe.synchro.config.export.required.read.referentiel= -observe.synchro.config.export.required.write.data= -observe.synchro.config.importGPS= -observe.synchro.config.referentiel.mode= -observe.synchro.config.referentiel.storage= -observe.synchro.config.report= -observe.synchro.config.source.storage= -observe.synchro.config.validate= -observe.synchro.config.validation.report= -observe.synchro.configuration= -observe.synchro.continue.with.no.save.report= +observe.synchro.config.export.required.write.data=Debe tener derechos de escritura sobre los datos de la base remota +observe.synchro.config.importGPS=Configurar el archivo de importación GPS +observe.synchro.config.referentiel.mode=Modo de importación del referencial +observe.synchro.config.referentiel.storage=Configuración de la base de referencia +observe.synchro.config.report=Configuración de los imformes +observe.synchro.config.source.storage=Configuración de la base origen +observe.synchro.config.validate=Configuración de la validación +observe.synchro.config.validation.report=Informe de validación +observe.synchro.configuration=Configuración de las operaciones +observe.synchro.continue.with.no.save.report=Continuar sin guardar el informe observe.synchro.import.data.fromBackup= observe.synchro.import.data.fromRemoteStorage= -observe.synchro.importGPS.invalidIntervals.list= -observe.synchro.message.all.obsolete.entities.fixed= -observe.synchro.message.need.save.for.synchro.operation= -observe.synchro.message.need.save.for.validation.operation= -observe.synchro.message.obsolete.entities.fixed= -observe.synchro.message.obsolote.entity.ref.found= -observe.synchro.message.obsolote.entity.refs.found= -observe.synchro.message.saveLocal.skip= +observe.synchro.importGPS.invalidIntervals.list=Lista de los intervalos de puntos gps no usables +observe.synchro.message.all.obsolete.entities.fixed=No hay mas referencias a los objetos obsoletos. +observe.synchro.message.need.save.for.synchro.operation=La operación de sincronización de referenciales ha generado cambios +observe.synchro.message.need.save.for.validation.operation=la operación de validación de datos ha generado modificaciones. +observe.synchro.message.obsolete.entities.fixed=Los referenciales %1$s han sido eliminados +observe.synchro.message.obsolote.entity.ref.found=%1$s \: "%2$s" (1 referncia) +observe.synchro.message.obsolote.entity.refs.found=%1$s \: "%2$s" (%3$d referencias) +observe.synchro.message.saveLocal.skip=No es necesario realizar copia de seguidad de la base local observe.synchro.no.data.import= -observe.synchro.no.local.storage= -observe.synchro.no.referentiel.import= -observe.synchro.no.remote.storage= -observe.synchro.obsolete.entities.list= -observe.synchro.obsolete.entity.fix= -observe.synchro.obsolete.entity.label= -observe.synchro.obsolete.entity.to.change.label= +observe.synchro.no.local.storage=No hay base origen definida +observe.synchro.no.referentiel.import=No importar el referencial +observe.synchro.no.remote.storage=No hay base de referencia definida +observe.synchro.obsolete.entities.list=La lista de entidades de referenciales está obsoleta +observe.synchro.obsolete.entity.fix=Cambiar las referencias del objeto seleccionado +observe.synchro.obsolete.entity.label=%1$s \: "%2$s" +observe.synchro.obsolete.entity.to.change.label=Objeto obsoleto observe.synchro.operation.canceled= observe.synchro.operation.consolidate= observe.synchro.operation.consolidate.description= @@ -2194,27 +2218,27 @@ observe.title.unique.key= observe.title.validate= observe.title.validate.tip= observe.title.welcome.admin= -observe.tree.activityLongline= +observe.tree.activityLongline=Actividad observe.tree.activityLongline.unsaved= -observe.tree.activitySeine= +observe.tree.activitySeine=Actividad observe.tree.activitySeine.unsaved= observe.tree.baitHaulingStatus= observe.tree.baitSettingStatus= observe.tree.baitType= observe.tree.catchFateLongline= observe.tree.catchLongline= -observe.tree.country= -observe.tree.detectionMode= +observe.tree.country=País +observe.tree.detectionMode=Modo de detección observe.tree.encounter= observe.tree.encounterType= -observe.tree.floatingObject.unsaved= +observe.tree.floatingObject.unsaved=Nuevo DCP observe.tree.fpaZone= observe.tree.gear= observe.tree.gearCaracteristic= observe.tree.gearCaracteristicType= observe.tree.gearUseFeaturesLongline= observe.tree.gearUseFeaturesSeine= -observe.tree.harbour= +observe.tree.harbour=Puerto observe.tree.healthness= observe.tree.hookPosition= observe.tree.hookSize= @@ -2229,63 +2253,63 @@ observe.tree.longlineDetailComposition= observe.tree.longlineGlobalComposition= observe.tree.maturityStatus= observe.tree.mitigationType= -observe.tree.nonTargetCatch= -observe.tree.nonTargetSample= -observe.tree.objectFate= +observe.tree.nonTargetCatch=Fauna asociada conservada o descartada +observe.tree.nonTargetSample=Muestreo fauna asociada +observe.tree.objectFate=Devenir de objeto observe.tree.objectObservedSpecies= -observe.tree.objectOperation= +observe.tree.objectOperation=Operación sobre la baliza observe.tree.objectSchoolEstimate= -observe.tree.objectType= -observe.tree.observedSystem= -observe.tree.ocean= -observe.tree.organism= -observe.tree.person= -observe.tree.program= -observe.tree.reasonForDiscard= -observe.tree.reasonForNoFishing= -observe.tree.reasonForNullSet= +observe.tree.objectType=Tipo de objeto +observe.tree.observedSystem=Sistema observado +observe.tree.ocean=Océano +observe.tree.organism=Organismo +observe.tree.person=Observador +observe.tree.program=Programa +observe.tree.reasonForDiscard=Razon de descarte +observe.tree.reasonForNoFishing=Razón de no lance de Cerco +observe.tree.reasonForNullSet=Causa de lance nulo observe.tree.reference.common= observe.tree.reference.longline= observe.tree.reference.seine= -observe.tree.route= -observe.tree.route.unsaved= -observe.tree.schoolEstimate= +observe.tree.route=Ruta +observe.tree.route.unsaved=Nueva ruta +observe.tree.schoolEstimate=Estimación del banco observe.tree.sensorBrand= observe.tree.sensorDataFormat= observe.tree.sensorType= observe.tree.sensorUsed= observe.tree.setLongline= -observe.tree.setLongline.unsaved= +observe.tree.setLongline.unsaved=Nuevo Lance observe.tree.setSeine= -observe.tree.setSeine.unsaved= +observe.tree.setSeine.unsaved=Nuevo Lance observe.tree.settingShape= -observe.tree.sex= +observe.tree.sex=Sexo observe.tree.sizeMeasureType= -observe.tree.species= -observe.tree.speciesFate= -observe.tree.speciesGroup= +observe.tree.species=Especie +observe.tree.speciesFate=Devenir de fauna +observe.tree.speciesGroup=Grupo de especie de fauna observe.tree.speciesList= -observe.tree.speciesStatus= +observe.tree.speciesStatus=Estado de especie observe.tree.stomacFullness= -observe.tree.surroundingActivity= -observe.tree.targetCatch= -observe.tree.targetDiscarded= -observe.tree.targetSample= -observe.tree.targetSampleCapture= +observe.tree.surroundingActivity=Actividad circundante +observe.tree.targetCatch=Captura de atún +observe.tree.targetDiscarded=Descarte de atún +observe.tree.targetSample=Muestreo atún descartado +observe.tree.targetSampleCapture=Muestreo atún capturado observe.tree.tdr= observe.tree.transmittingBuoyOperation= observe.tree.transmittingBuoyType= -observe.tree.tripLongline.unsaved= -observe.tree.tripSeine.unsaved= +observe.tree.tripLongline.unsaved=Nueva marea +observe.tree.tripSeine.unsaved=Nueva marea observe.tree.tripType= -observe.tree.vessel= +observe.tree.vessel=Barco observe.tree.vesselActivityLongline= -observe.tree.vesselActivitySeine= -observe.tree.vesselSizeCategory= -observe.tree.vesselType= -observe.tree.weightCategory= +observe.tree.vesselActivitySeine=Actividad del barco +observe.tree.vesselSizeCategory=Capacidad +observe.tree.vesselType=Pesquería +observe.tree.weightCategory=Categoría de peso observe.tree.weightMeasureType= -observe.tree.wind= +observe.tree.wind=Fuerza del viento observe.tripLongline.captain= observe.tripLongline.dataEntryOperator= observe.tripLongline.endDate= @@ -2312,7 +2336,7 @@ observe.tripSeine.message.no.active.found= observe.tripSeine.message.not.open= observe.tripSeine.message.updating= observe.tripSeine.tab.general= -observe.tripSeine.tab.map= +observe.tripSeine.tab.map=Mapa observe.tripSeine.title= observe.validation.model.type.all= observe.validation.model.type.all.description= @@ -2332,4 +2356,5 @@ observe.view.navigation= observe.view.server= observe.warning.nimbus.landf= observe.warning.no.ui= +observeweb.configuration.description= ui.main.body.synchro.action.copy.to.clipBoard= diff --git a/observe-application-swing/src/main/resources/i18n/observe-application-swing_fr_FR.properties b/observe-application-swing/src/main/resources/i18n/observe-application-swing_fr_FR.properties index eeccb53..5e32df1 100644 --- a/observe-application-swing/src/main/resources/i18n/observe-application-swing_fr_FR.properties +++ b/observe-application-swing/src/main/resources/i18n/observe-application-swing_fr_FR.properties @@ -1,9 +1,9 @@ nuitonutil.error.convertor.noValue= nuitonutil.error.float.convertor= nuitonutil.error.no.convertor= -observe.about.message= -observe.about.translate.content= -observe.about.translate.title= +observe.about.message=<h3>ObServe</h3><a href\="http\://www.ird.fr/informatique-scientifique/projets/observe/">Système d'Information, d'Observation et de Suivi des pêches thonières tropicales de surface.</a><hr/><p>Application de saisie des données observateurs et de consultation de telles données depuis une base <i>Obstuna</i>.</p> <p>Ce projet a été initiée en 2008 par l'unité US 007-OSIRIS de <a href\="http\://www.ird.fr">l'IRD</a> dans le cadre d'un <a href\="http\://www.ird.fr/infor [...] +observe.about.translate.content=<h2>Comment traduire ObServe</h2>Vous pouvez nous aider à traduire l'application.<hr/><br/><ul><li>Récupérer le fichier <a href\="%s">observe-i18n.csv</a> dans le répertoire <strong>i18n</strong></li><li>ouvrez le avec un tableur avec les options suivantes \: <ul><li>caractère séparateur \: <strong><i>|</i></strong></li><li>encoding <strong><i>UTF-8</i></strong></li><li>texte encapsulé par des <strong><i>"</i></strong></li></ul></li><li>Traduisez, Améliore [...] +observe.about.translate.title=Traduire ObServe observe.action.HookSize.create.tip= observe.action.HookSize.delete.tip= observe.action.HookSize.detail.tip= @@ -14,798 +14,798 @@ observe.action.HookType.delete.tip= observe.action.HookType.detail.tip= observe.action.HookType.modify.tip= observe.action.HookType.save.tip= -observe.action.about= -observe.action.about.tip= -observe.action.add.floatingObject= -observe.action.add.floatingObject.tip= -observe.action.add.set= -observe.action.add.set.tip= -observe.action.add.setLongline= -observe.action.add.setLongline.tip= -observe.action.admin.cancel= -observe.action.admin.close= -observe.action.apply= -observe.action.auto.copy.to.clipboard= -observe.action.auto.copy.to.clipboard.tip= -observe.action.back.to.list= -observe.action.back.to.list.tip= -observe.action.baitHaulingStatus.create.tip= -observe.action.baitHaulingStatus.delete.tip= -observe.action.baitHaulingStatus.detail.tip= -observe.action.baitHaulingStatus.modify.tip= -observe.action.baitHaulingStatus.save.tip= -observe.action.baitSettingStatus.create.tip= -observe.action.baitSettingStatus.delete.tip= -observe.action.baitSettingStatus.detail.tip= -observe.action.baitSettingStatus.modify.tip= -observe.action.baitSettingStatus.save.tip= -observe.action.baitType.create.tip= -observe.action.baitType.delete.tip= -observe.action.baitType.detail.tip= -observe.action.baitType.modify.tip= -observe.action.baitType.save.tip= -observe.action.cancel= -observe.action.cancel.create.tip= -observe.action.catchFateLongline.create.tip= -observe.action.catchFateLongline.delete.tip= -observe.action.catchFateLongline.detail.tip= -observe.action.catchFateLongline.modify.tip= -observe.action.catchFateLongline.save.tip= -observe.action.change.storage= -observe.action.change.storage.tip= -observe.action.choose.db.dump= -observe.action.choose.db.dump.description= -observe.action.choose.db.dump.directory= -observe.action.choose.importGPS= -observe.action.choose.importGPS.description= -observe.action.choose.report.directory= -observe.action.choose.reportFile= -observe.action.choose.reportFile.description= -observe.action.choose.sensorUsed.exportData= -observe.action.choose.sensorUsed.importData= -observe.action.choose.tdr.exportData= -observe.action.choose.tdr.importData= -observe.action.close= -observe.action.close.activity.tip= -observe.action.close.maree.tip= -observe.action.close.open= -observe.action.close.open.tip= -observe.action.close.route.tip= -observe.action.close.storage= -observe.action.close.storage.tip= -observe.action.close.synchro.tip= -observe.action.closeAndCreate= -observe.action.closeAndCreate.activity= -observe.action.closeAndCreate.activity.tip= -observe.action.closeAndCreate.maree= -observe.action.closeAndCreate.maree.tip= -observe.action.closeAndCreate.route= -observe.action.closeAndCreate.route.tip= -observe.action.closeAndCreate.tip= -observe.action.commandline.configure.ui= -observe.action.commandline.create.id= -observe.action.commandline.disable.main.ui= -observe.action.commandline.help= -observe.action.commandline.help.ui= -observe.action.commandline.launch.admin.ui= -observe.action.commandline.launch.h2.server.mode= -observe.action.commandline.launch.obstuna.admin.ui= -observe.action.commandline.use.jmx= -observe.action.configuration= -observe.action.configuration.tip= -observe.action.configure= -observe.action.continue= -observe.action.copy= -observe.action.copy.column.headers= -observe.action.copy.column.headers.tip= -observe.action.copy.row.headers= -observe.action.copy.row.headers.tip= -observe.action.country.create.tip= -observe.action.country.delete.tip= -observe.action.country.detail.tip= -observe.action.country.modify.tip= -observe.action.country.save.tip= -observe.action.create= -observe.action.create.activity= -observe.action.create.activity.tip= -observe.action.create.entry.tip= -observe.action.create.gearUseFeaturesLongline= -observe.action.create.gearUseFeaturesLongline.tip= -observe.action.create.gearUseFeaturesSeine= -observe.action.create.gearUseFeaturesSeine.tip= -observe.action.create.maree= -observe.action.create.maree.tip= -observe.action.create.nonTargetCatch= -observe.action.create.nonTargetCatch.tip= -observe.action.create.nonTargetSample= -observe.action.create.nonTargetSample.tip= -observe.action.create.objectObservedSpecies= -observe.action.create.objectObservedSpecies.tip= -observe.action.create.route= -observe.action.create.route.tip= -observe.action.create.schoolEstimate= -observe.action.create.schoolEstimate.tip= -observe.action.create.targetCatch= -observe.action.create.targetCatch.tip= -observe.action.create.targetDiscarded= -observe.action.create.targetDiscarded.tip= -observe.action.create.targetSample= -observe.action.create.targetSample.tip= -observe.action.create.targetSampleCapture= -observe.action.create.targetSampleCapture.tip= -observe.action.db.locale.es.tip= -observe.action.db.locale.fr.tip= -observe.action.db.locale.uk.tip= -observe.action.delete= -observe.action.delete.activity.tip= -observe.action.delete.entry.tip= -observe.action.delete.floatingObject.tip= -observe.action.delete.maree.tip= -observe.action.delete.route.tip= -observe.action.delete.set.tip= -observe.action.delete.tip= -observe.action.detail= -observe.action.detectionMode.create.tip= -observe.action.detectionMode.delete.tip= -observe.action.detectionMode.detail.tip= -observe.action.detectionMode.modify.tip= -observe.action.detectionMode.save.tip= -observe.action.do.backup= -observe.action.do.backup.tip= -observe.action.encounterType.create.tip= -observe.action.encounterType.delete.tip= -observe.action.encounterType.detail.tip= -observe.action.encounterType.modify.tip= -observe.action.encounterType.save.tip= -observe.action.exit= -observe.action.exit.tip= -observe.action.fpaZone.create.tip= -observe.action.fpaZone.delete.tip= -observe.action.fpaZone.detail.tip= -observe.action.fpaZone.modify.tip= -observe.action.fpaZone.save.tip= -observe.action.gear.create.tip= -observe.action.gear.delete.tip= -observe.action.gear.detail.tip= -observe.action.gear.modify.tip= -observe.action.gear.save.tip= -observe.action.gearCaracteristic.create.tip= -observe.action.gearCaracteristic.delete.tip= -observe.action.gearCaracteristic.detail.tip= -observe.action.gearCaracteristic.modify.tip= -observe.action.gearCaracteristic.save.tip= -observe.action.gearCaracteristicType.create.tip= -observe.action.gearCaracteristicType.delete.tip= -observe.action.gearCaracteristicType.detail.tip= -observe.action.gearCaracteristicType.modify.tip= -observe.action.gearCaracteristicType.save.tip= -observe.action.goDown= -observe.action.goDown.tip= -observe.action.goUp= -observe.action.goUp.tip= -observe.action.goto.next.stage= -observe.action.goto.next.stage.tip= -observe.action.goto.open.activity= -observe.action.goto.open.activity.short= -observe.action.goto.open.activity.tip= -observe.action.goto.open.maree= -observe.action.goto.open.other.activity= -observe.action.goto.open.other.activity.tip= -observe.action.goto.open.other.maree= -observe.action.goto.open.other.maree.tip= -observe.action.goto.open.other.route= -observe.action.goto.open.other.route.tip= -observe.action.goto.open.program.short= -observe.action.goto.open.program.tip= -observe.action.goto.open.route= -observe.action.goto.open.route.short= -observe.action.goto.open.route.tip= -observe.action.goto.open.set.short= -observe.action.goto.open.set.tip= -observe.action.goto.open.trip.short= -observe.action.goto.open.trip.tip= -observe.action.goto.previous.stage= -observe.action.goto.previous.stage.tip= -observe.action.goto.referentiel.short= -observe.action.goto.referentiel.tip= -observe.action.goto.selected.activity= -observe.action.goto.selected.activity.tip= -observe.action.goto.selected.maree= -observe.action.goto.selected.maree.tip= -observe.action.goto.selected.route= -observe.action.goto.selected.route.tip= -observe.action.harbour.create.tip= -observe.action.harbour.delete.tip= -observe.action.harbour.detail.tip= -observe.action.harbour.modify.tip= -observe.action.harbour.save.tip= -observe.action.healthness.create.tip= -observe.action.healthness.delete.tip= -observe.action.healthness.detail.tip= -observe.action.healthness.modify.tip= -observe.action.healthness.save.tip= -observe.action.hookPosition.create.tip= -observe.action.hookPosition.delete.tip= -observe.action.hookPosition.detail.tip= -observe.action.hookPosition.modify.tip= -observe.action.hookPosition.save.tip= -observe.action.hookSize.create.tip= -observe.action.hookSize.delete.tip= -observe.action.hookSize.detail.tip= -observe.action.hookSize.modify.tip= -observe.action.hookSize.save.tip= -observe.action.hookType.create.tip= -observe.action.hookType.delete.tip= -observe.action.hookType.detail.tip= -observe.action.hookType.modify.tip= -observe.action.hookType.save.tip= -observe.action.info.storage= -observe.action.info.storage.tip= -observe.action.itemHorizontalPosition.create.tip= -observe.action.itemHorizontalPosition.delete.tip= -observe.action.itemHorizontalPosition.detail.tip= -observe.action.itemHorizontalPosition.modify.tip= -observe.action.itemHorizontalPosition.save.tip= -observe.action.itemVerticalPosition.create.tip= -observe.action.itemVerticalPosition.delete.tip= -observe.action.itemVerticalPosition.detail.tip= -observe.action.itemVerticalPosition.modify.tip= -observe.action.itemVerticalPosition.save.tip= -observe.action.lengthWeightParameter.create.tip= -observe.action.lengthWeightParameter.delete.tip= -observe.action.lengthWeightParameter.detail.tip= -observe.action.lengthWeightParameter.modify.tip= -observe.action.lengthWeightParameter.save.tip= -observe.action.lightsticksColor.create.tip= -observe.action.lightsticksColor.delete.tip= -observe.action.lightsticksColor.detail.tip= -observe.action.lightsticksColor.modify.tip= -observe.action.lightsticksColor.save.tip= -observe.action.lightsticksType.create.tip= -observe.action.lightsticksType.delete.tip= -observe.action.lightsticksType.detail.tip= -observe.action.lightsticksType.modify.tip= -observe.action.lightsticksType.save.tip= -observe.action.lineType.create.tip= -observe.action.lineType.delete.tip= -observe.action.lineType.detail.tip= -observe.action.lineType.modify.tip= -observe.action.lineType.save.tip= -observe.action.load.from.file= -observe.action.load.from.file.tip= -observe.action.locale.es= -observe.action.locale.es.tip= -observe.action.locale.fr= -observe.action.locale.fr.tip= -observe.action.locale.uk= -observe.action.locale.uk.tip= -observe.action.maturityStatus.create.tip= -observe.action.maturityStatus.delete.tip= -observe.action.maturityStatus.detail.tip= -observe.action.maturityStatus.modify.tip= -observe.action.maturityStatus.save.tip= -observe.action.mitigationType.create.tip= -observe.action.mitigationType.delete.tip= -observe.action.mitigationType.detail.tip= -observe.action.mitigationType.modify.tip= -observe.action.mitigationType.save.tip= -observe.action.modify= -observe.action.new.entry= -observe.action.new.entry.tip= -observe.action.objectFate.create.tip= -observe.action.objectFate.delete.tip= -observe.action.objectFate.detail.tip= -observe.action.objectFate.modify.tip= -observe.action.objectFate.save.tip= -observe.action.objectOperation.create.tip= -observe.action.objectOperation.delete.tip= -observe.action.objectOperation.detail.tip= -observe.action.objectOperation.modify.tip= -observe.action.objectOperation.save.tip= -observe.action.objectType.create.tip= -observe.action.objectType.delete.tip= -observe.action.objectType.detail.tip= -observe.action.objectType.modify.tip= -observe.action.objectType.save.tip= -observe.action.observedSystem.create.tip= -observe.action.observedSystem.delete.tip= -observe.action.observedSystem.detail.tip= -observe.action.observedSystem.modify.tip= -observe.action.observedSystem.save.tip= -observe.action.ocean.create.tip= -observe.action.ocean.delete.tip= -observe.action.ocean.detail.tip= -observe.action.ocean.modify.tip= -observe.action.ocean.save.tip= -observe.action.open.screen= -observe.action.openLink.formsUrl.tip= -observe.action.openLink.reportsUrl.tip= -observe.action.organism.create.tip= -observe.action.organism.delete.tip= -observe.action.organism.detail.tip= -observe.action.organism.modify.tip= -observe.action.organism.save.tip= -observe.action.person.create.tip= -observe.action.person.delete.tip= -observe.action.person.detail.tip= -observe.action.person.modify.tip= -observe.action.person.save.tip= -observe.action.program.create.tip= -observe.action.program.delete.tip= -observe.action.program.detail.tip= -observe.action.program.modify.tip= -observe.action.program.save.tip= -observe.action.quitHelp.tip= -observe.action.reasonForDiscard.create.tip= -observe.action.reasonForDiscard.delete.tip= -observe.action.reasonForDiscard.detail.tip= -observe.action.reasonForDiscard.modify.tip= -observe.action.reasonForDiscard.save.tip= -observe.action.reasonForNoFishing.create.tip= -observe.action.reasonForNoFishing.delete.tip= -observe.action.reasonForNoFishing.detail.tip= -observe.action.reasonForNoFishing.modify.tip= -observe.action.reasonForNoFishing.save.tip= -observe.action.reasonForNullSet.create.tip= -observe.action.reasonForNullSet.delete.tip= -observe.action.reasonForNullSet.detail.tip= -observe.action.reasonForNullSet.modify.tip= -observe.action.reasonForNullSet.save.tip= -observe.action.reload.application= -observe.action.reload.storage= -observe.action.reload.storage.tip= -observe.action.reload.ui= -observe.action.reloadDefaultConfiguration= -observe.action.reloadDefaultConfiguration.tip= -observe.action.reloadResources= -observe.action.reloadResources.tip= -observe.action.reopen= -observe.action.reopen.activity.tip= -observe.action.reopen.maree.tip= -observe.action.reopen.route.tip= -observe.action.reopen.selected.activity= -observe.action.reopen.selected.activity.tip= -observe.action.reopen.selected.maree= -observe.action.reopen.selected.maree.tip= -observe.action.reopen.selected.route= -observe.action.reopen.selected.route.tip= -observe.action.reopen.tip= -observe.action.reset= -observe.action.reset.entry.tip= -observe.action.reset.ersId.tip= -observe.action.reset.formsUrl.tip= -observe.action.reset.homeId.tip= -observe.action.reset.new.entry.tip= -observe.action.reset.picturesReferences.tip= -observe.action.reset.reportsUrl.tip= -observe.action.reset.supportVesselName.tip= -observe.action.reset.tip= -observe.action.reset.well.tip= -observe.action.restart.application= -observe.action.restart.application.tip= -observe.action.save= -observe.action.save.all.tip= -observe.action.save.entry.tip= -observe.action.save.tip= -observe.action.save.to.file= -observe.action.save.to.file.tip= -observe.action.selectNode= -observe.action.selectNode.tip= -observe.action.sensorBrand.create.tip= -observe.action.sensorBrand.delete.tip= -observe.action.sensorBrand.detail.tip= -observe.action.sensorBrand.modify.tip= -observe.action.sensorBrand.save.tip= -observe.action.sensorDataFormat.create.tip= -observe.action.sensorDataFormat.delete.tip= -observe.action.sensorDataFormat.detail.tip= -observe.action.sensorDataFormat.modify.tip= -observe.action.sensorDataFormat.save.tip= -observe.action.sensorType.create.tip= -observe.action.sensorType.delete.tip= -observe.action.sensorType.detail.tip= -observe.action.sensorType.modify.tip= -observe.action.sensorType.save.tip= -observe.action.settingShape.create.tip= -observe.action.settingShape.delete.tip= -observe.action.settingShape.detail.tip= -observe.action.settingShape.modify.tip= -observe.action.settingShape.save.tip= -observe.action.sex.create.tip= -observe.action.sex.delete.tip= -observe.action.sex.detail.tip= -observe.action.sex.modify.tip= -observe.action.sex.save.tip= -observe.action.show.technical.informations.tip= -observe.action.show.unique.keys.tip= -observe.action.show.usages.tip= -observe.action.showConfig.title= -observe.action.site= -observe.action.site.tip= -observe.action.sizeMeasureType.create.tip= -observe.action.sizeMeasureType.delete.tip= -observe.action.sizeMeasureType.detail.tip= -observe.action.sizeMeasureType.modify.tip= -observe.action.sizeMeasureType.save.tip= -observe.action.species.create.tip= -observe.action.species.delete.tip= -observe.action.species.detail.tip= -observe.action.species.modify.tip= -observe.action.species.save.tip= -observe.action.speciesFate.create.tip= -observe.action.speciesFate.delete.tip= -observe.action.speciesFate.detail.tip= -observe.action.speciesFate.modify.tip= -observe.action.speciesFate.save.tip= -observe.action.speciesGroupSpecies.create.tip= -observe.action.speciesGroupSpecies.delete.tip= -observe.action.speciesGroupSpecies.detail.tip= -observe.action.speciesGroupSpecies.modify.tip= -observe.action.speciesGroupSpecies.save.tip= -observe.action.speciesList.create.tip= -observe.action.speciesList.delete.tip= -observe.action.speciesList.detail.tip= -observe.action.speciesList.modify.tip= -observe.action.speciesStatus.create.tip= -observe.action.speciesStatus.delete.tip= -observe.action.speciesStatus.detail.tip= -observe.action.speciesStatus.modify.tip= -observe.action.speciesStatus.save.tip= -observe.action.start.h2.web.server= -observe.action.start.h2.web.server.tip= -observe.action.start.server.mode= -observe.action.start.server.mode.tip= -observe.action.stomacFullness.create.tip= -observe.action.stomacFullness.delete.tip= -observe.action.stomacFullness.detail.tip= -observe.action.stomacFullness.modify.tip= -observe.action.stomacFullness.save.tip= -observe.action.stop.h2.web.server= -observe.action.stop.h2.web.server.tip= -observe.action.stop.server.mode= -observe.action.stop.server.mode.tip= -observe.action.storage.apply= -observe.action.storage.apply.tip= -observe.action.storage.applyAction= -observe.action.storage.cancel= -observe.action.storage.cancel.tip= -observe.action.surroundingActivity.create.tip= -observe.action.surroundingActivity.delete.tip= -observe.action.surroundingActivity.detail.tip= -observe.action.surroundingActivity.modify.tip= -observe.action.surroundingActivity.save.tip= -observe.action.synchro.apply.modifications= -observe.action.synchro.cancel.tip= -observe.action.synchro.copy.tip= -observe.action.synchro.launch.operation= -observe.action.synchro.prepare.operation= -observe.action.synchro.report.reset.tip= -observe.action.test.remote= -observe.action.test.remote.tip= -observe.action.transmittingBuoyOperation.create.tip= -observe.action.transmittingBuoyOperation.delete.tip= -observe.action.transmittingBuoyOperation.detail.tip= -observe.action.transmittingBuoyOperation.modify.tip= -observe.action.transmittingBuoyOperation.save.tip= -observe.action.transmittingBuoyType.create.tip= -observe.action.transmittingBuoyType.delete.tip= -observe.action.transmittingBuoyType.detail.tip= -observe.action.transmittingBuoyType.modify.tip= -observe.action.transmittingBuoyType.save.tip= -observe.action.tripType.create.tip= -observe.action.tripType.delete.tip= -observe.action.tripType.detail.tip= -observe.action.tripType.modify.tip= -observe.action.tripType.save.tip= -observe.action.vessel.create.tip= -observe.action.vessel.delete.tip= -observe.action.vessel.detail.tip= -observe.action.vessel.modify.tip= -observe.action.vessel.save.tip= -observe.action.vesselActivityLongline.create.tip= -observe.action.vesselActivityLongline.delete.tip= -observe.action.vesselActivityLongline.detail.tip= -observe.action.vesselActivityLongline.modify.tip= -observe.action.vesselActivityLongline.save.tip= -observe.action.vesselActivitySeine.create.tip= -observe.action.vesselActivitySeine.delete.tip= -observe.action.vesselActivitySeine.detail.tip= -observe.action.vesselActivitySeine.modify.tip= -observe.action.vesselActivitySeine.save.tip= -observe.action.vesselSizeCategory.create.tip= -observe.action.vesselSizeCategory.delete.tip= -observe.action.vesselSizeCategory.detail.tip= -observe.action.vesselSizeCategory.modify.tip= -observe.action.vesselSizeCategory.save.tip= -observe.action.vesselType.create.tip= -observe.action.vesselType.delete.tip= -observe.action.vesselType.detail.tip= -observe.action.vesselType.modify.tip= -observe.action.vesselType.save.tip= -observe.action.weightCategory.create.tip= -observe.action.weightCategory.delete.tip= -observe.action.weightCategory.detail.tip= -observe.action.weightCategory.modify.tip= -observe.action.weightCategory.save.tip= -observe.action.weightMeasureType.create.tip= -observe.action.weightMeasureType.delete.tip= -observe.action.weightMeasureType.detail.tip= -observe.action.weightMeasureType.modify.tip= -observe.action.weightMeasureType.save.tip= -observe.action.wind.create.tip= -observe.action.wind.delete.tip= -observe.action.wind.detail.tip= -observe.action.wind.modify.tip= -observe.action.wind.save.tip= -observe.activityLongline.coordinate= -observe.activityLongline.fpaZone= -observe.activityLongline.message.active.found= -observe.activityLongline.message.active.found.for.other.trip= -observe.activityLongline.message.creating= -observe.activityLongline.message.no.active.found= -observe.activityLongline.message.no.active.found.for.other.trip= -observe.activityLongline.message.not.open= -observe.activityLongline.message.updating= -observe.activityLongline.seaSurfaceTemperature= -observe.activityLongline.timeStamp= -observe.activityLongline.title= -observe.activityLongline.vesselActivityLongline= -observe.activityLonglines.title= -observe.activityObservedSystem.availableObservedSystem= -observe.activityObservedSystem.selectedObservedSystem= -observe.activitySeine.message.active.found= -observe.activitySeine.message.active.found.for.other.route= -observe.activitySeine.message.creating= -observe.activitySeine.message.no.active.found= -observe.activitySeine.message.no.active.found.for.other.route= -observe.activitySeine.message.not.open= -observe.activitySeine.message.updating= -observe.activitySeine.tab.general= -observe.activitySeine.tab.measurements= -observe.activitySeine.title= -observe.activitySeineObservedSystem.title= -observe.activitySeines.title= -observe.admin.resume.no.operation.done= -observe.admin.resume.operation.canceled= -observe.admin.resume.operation.done= -observe.admin.resume.operation.failed= -observe.admin.resume.operation.need.fix= -observe.admin.resume.operation.not.started= -observe.admin.resume.operation.running= -observe.application.config= -observe.baitsComposition.action.create= -observe.baitsComposition.action.create.tip= -observe.baitsComposition.baitSettingStatus= -observe.baitsComposition.baitType= -observe.baitsComposition.individualSize= -observe.baitsComposition.individualWeight= -observe.baitsComposition.proportion= -observe.baitsComposition.proportionSum= -observe.baitsComposition.table.baitSettingStatus= -observe.baitsComposition.table.baitSettingStatus.tip= -observe.baitsComposition.table.baitType= -observe.baitsComposition.table.baitType.tip= -observe.baitsComposition.table.individualSize= -observe.baitsComposition.table.individualSize.tip= -observe.baitsComposition.table.individualWeight= -observe.baitsComposition.table.individualWeight.tip= -observe.baitsComposition.table.proportion= -observe.baitsComposition.table.proportion.tip= -observe.baitsComposition.title= -observe.basket.cant.delete.message= -observe.basket.cant.delete.title= -observe.basket.invalid.nextFloatline1Length= -observe.branchLine.cant.delete.message= -observe.branchLine.cant.delete.title= -observe.branchline.baitHaulingStatus= -observe.branchline.baitSettingStatus= -observe.branchline.baitType= -observe.branchline.comment= -observe.branchline.depthRecorder= -observe.branchline.hookLost= -observe.branchline.hookOffset= -observe.branchline.hookSize= -observe.branchline.hookType= -observe.branchline.message.modified= -observe.branchline.message.modified.but.invalid= -observe.branchline.snapWeight= -observe.branchline.swivelWeight= -observe.branchline.tab.general= -observe.branchline.tab.hookAndBait= -observe.branchline.timeSinceContact= -observe.branchline.timer= -observe.branchline.timerTimeOnBoard= -observe.branchline.title= -observe.branchline.topType= -observe.branchline.traceCutOff= -observe.branchline.tracelineType= -observe.branchline.weightedSnap= -observe.branchline.weightedSwivel= -observe.branchlinesComposition.action.create= -observe.branchlinesComposition.action.create.tip= -observe.branchlinesComposition.length= -observe.branchlinesComposition.proportion= -observe.branchlinesComposition.proportionSum= -observe.branchlinesComposition.table.length= -observe.branchlinesComposition.table.length.tip= -observe.branchlinesComposition.table.proportion= -observe.branchlinesComposition.table.proportion.tip= -observe.branchlinesComposition.table.topType= -observe.branchlinesComposition.table.topType.tip= -observe.branchlinesComposition.table.tracelineType= -observe.branchlinesComposition.table.tracelineType.tip= -observe.branchlinesComposition.title= -observe.branchlinesComposition.topType= -observe.branchlinesComposition.tracelineType= -observe.broughtOnDeck.comment= -observe.catchLongline.acquisitionMode= -observe.catchLongline.acquisitionMode.grouped= -observe.catchLongline.acquisitionMode.individual= -observe.catchLongline.action.create= -observe.catchLongline.action.create.tip= -observe.catchLongline.action.new= -observe.catchLongline.action.new.tip= -observe.catchLongline.action.reset.photoReferences.tip= -observe.catchLongline.availablePredator= -observe.catchLongline.basket= -observe.catchLongline.beatDiameter= -observe.catchLongline.branchline= -observe.catchLongline.catchFateLongline= -observe.catchLongline.catchHealthness= -observe.catchLongline.comment= -observe.catchLongline.count= -observe.catchLongline.depredated= -observe.catchLongline.discardHealthness= -observe.catchLongline.gonadeWeight= -observe.catchLongline.hookPosition= -observe.catchLongline.hookWhenDiscarded= -observe.catchLongline.locationOnLongline= -observe.catchLongline.maturityStatus= -observe.catchLongline.photoReferences= -observe.catchLongline.predator= -observe.catchLongline.resetBranchline= -observe.catchLongline.resetBranchline.tip= -observe.catchLongline.saveBranchline= -observe.catchLongline.saveBranchline.tip= -observe.catchLongline.section= -observe.catchLongline.selectedPredator= -observe.catchLongline.sex= -observe.catchLongline.speciesCatch= -observe.catchLongline.stomacFullness= -observe.catchLongline.tab.branchline= -observe.catchLongline.tab.caracteristics= -observe.catchLongline.tab.depredated= -observe.catchLongline.tab.foodAndSexual= -observe.catchLongline.tab.sizeMeasures= -observe.catchLongline.tab.weightMeasures= -observe.catchLongline.title= -observe.catchLongline.totalWeight= -observe.catchlongline.table.acquisitionMode= -observe.catchlongline.table.acquisitionMode.tip= -observe.catchlongline.table.basketHaulingId= -observe.catchlongline.table.basketHaulingId.tip= -observe.catchlongline.table.branchlineHaulingId= -observe.catchlongline.table.branchlineHaulingId.tip= -observe.catchlongline.table.catchFateLongline= -observe.catchlongline.table.catchFateLongline.tip= -observe.catchlongline.table.catchHealthness= -observe.catchlongline.table.catchHealthness.tip= -observe.catchlongline.table.comment= -observe.catchlongline.table.comment.tip= -observe.catchlongline.table.count= -observe.catchlongline.table.count.tip= -observe.catchlongline.table.depredated= -observe.catchlongline.table.depredated.tip= -observe.catchlongline.table.discardHealthness= -observe.catchlongline.table.discardHealthness.tip= -observe.catchlongline.table.sectionHaulingId= -observe.catchlongline.table.sectionHaulingId.tip= -observe.catchlongline.table.size= -observe.catchlongline.table.size.tip= -observe.catchlongline.table.sizeMeasureType= -observe.catchlongline.table.sizeMeasureType.tip= -observe.catchlongline.table.speciesCatch= -observe.catchlongline.table.speciesCatch.tip= -observe.catchlongline.table.weight= -observe.catchlongline.table.weight.tip= -observe.catchlongline.table.weightMeasureType= -observe.catchlongline.table.weightMeasureType.tip= -observe.choice.cancel= -observe.choice.confirm.delete= -observe.choice.continue= -observe.choice.create.fin.veille.activity= -observe.choice.create.fin.veille.activity.and.continue= -observe.choice.createLocalStorage= -observe.choice.doNotSave= -observe.choice.doNothing= -observe.choice.not.create.fin.veille.activity.and.continue= -observe.choice.quit= -observe.choice.save= -observe.choice.useRemoteStorage= -observe.common.acquisitionMode= -observe.common.acquisitionMode.count= -observe.common.acquisitionMode.individu= -observe.common.activities= -observe.common.activities.list= -observe.common.activity= +observe.action.about=À propos +observe.action.about.tip=À propos d'ObServe... +observe.action.add.floatingObject=Ajouter un DCP +observe.action.add.floatingObject.tip=Ajouter un objet flottant à l'activité +observe.action.add.set=Ajouter la calée +observe.action.add.set.tip=Ajouter la calée de l'activité +observe.action.add.setLongline=Ajouter l'opération de pêche +observe.action.add.setLongline.tip=Ajouter l'opération de pêche associée à cette activité +observe.action.admin.cancel=Annulation de l'assistant +observe.action.admin.close=Fermeture de l'assistant +observe.action.apply=Appliquer +observe.action.auto.copy.to.clipboard=Copie automatique dans le presse-papier +observe.action.auto.copy.to.clipboard.tip=Mettre à jour automatiquement le contenu du presse-papier avec les résultats +observe.action.back.to.list=Retour à la liste +observe.action.back.to.list.tip=Retour à la liste des données +observe.action.baitHaulingStatus.create.tip=Créer un nouveau status de l'appât au virage +observe.action.baitHaulingStatus.delete.tip=Supprimer le status de l'appât au virage sélectionné +observe.action.baitHaulingStatus.detail.tip=Voir les détails du status de l'appât au virage sélectionné +observe.action.baitHaulingStatus.modify.tip=Modifier le status de l'appât au virage sélectionné +observe.action.baitHaulingStatus.save.tip=Sauver les modifications du status de l'appât au virage +observe.action.baitSettingStatus.create.tip=Créer un nouveau status de l'appât au filage +observe.action.baitSettingStatus.delete.tip=Supprimer le status de l'appât au filage sélectionné +observe.action.baitSettingStatus.detail.tip=Voir les détails du status de l'appât au filage sélectionné +observe.action.baitSettingStatus.modify.tip=Modifier le status de l'appât au filage sélectionné +observe.action.baitSettingStatus.save.tip=Sauver les modifications du status de l'appât au filage +observe.action.baitType.create.tip=Créer un nouveau type d'appât +observe.action.baitType.delete.tip=Supprimer le type d'appât sélectionné +observe.action.baitType.detail.tip=Voir les détails du type d'appât sélectionné +observe.action.baitType.modify.tip=Modifier le type d'appât sélectionné +observe.action.baitType.save.tip=Sauver les modifications du type d'appât +observe.action.cancel=Annuler +observe.action.cancel.create.tip=Annuler la création de l'objet +observe.action.catchFateLongline.create.tip=Créer un nouveau devenir capture +observe.action.catchFateLongline.delete.tip=Supprimer le devenir capture sélectionné +observe.action.catchFateLongline.detail.tip=Voir les détails du devenir capture sélectionné +observe.action.catchFateLongline.modify.tip=Modifier le devenir capture sélectionné +observe.action.catchFateLongline.save.tip=Sauver les modifications du devenir capture +observe.action.change.storage=Changer la source de données +observe.action.change.storage.tip=Pour changer la source de données de l'application +observe.action.choose.db.dump=Choisir la sauvegarde +observe.action.choose.db.dump.description=Sauvegarde de base (*.sql.gz) +observe.action.choose.db.dump.directory=Choisir le répertoire de sauvegarde +observe.action.choose.importGPS=Utiliser ce fichier +observe.action.choose.importGPS.description=Fichier GPS (*.gpx) +observe.action.choose.report.directory=Choisir le répertoire des rapports +observe.action.choose.reportFile=Choisir le fichier de définition de report +observe.action.choose.reportFile.description=Fichier de définition (*.properties) +observe.action.choose.sensorUsed.exportData=Exporter le fichier de données +observe.action.choose.sensorUsed.importData=Importer le fichier de données +observe.action.choose.tdr.exportData=Exporter le fichier de données +observe.action.choose.tdr.importData=Importer le fichier de données +observe.action.close=Fermer +observe.action.close.activity.tip=Clôturer l'activité ouverte +observe.action.close.maree.tip=Clôturer la marée ouverte +observe.action.close.open=Clôturer +observe.action.close.open.tip=Clotûrer la données ouverte +observe.action.close.route.tip=Clôturer la route ouverte +observe.action.close.storage=Fermer la source de données +observe.action.close.storage.tip=Fermer la source de données actuellement utilisée +observe.action.close.synchro.tip=Fermer la fenêtre +observe.action.closeAndCreate=Clôturer et créer +observe.action.closeAndCreate.activity=Activité suivante +observe.action.closeAndCreate.activity.tip=Clôturer l'activite courante et en créer une nouvelle +observe.action.closeAndCreate.maree=Marée suivante +observe.action.closeAndCreate.maree.tip=Clôturer la marée courante et en créer une nouvelle +observe.action.closeAndCreate.route=Route suivante +observe.action.closeAndCreate.route.tip=Clôturer la route courante et en créer une nouvelle +observe.action.closeAndCreate.tip=Clôturer l'élément courant et en créer un nouveau +observe.action.commandline.configure.ui=Configurer l'application +observe.action.commandline.create.id=Générer des topiaIds.\nDeux paramètres sont nécessaires\:\n\tLe FQN de la classe\n\tLe nombre d'id à générer. +observe.action.commandline.disable.main.ui=Ne pas lancer l'interface graphique +observe.action.commandline.help=Afficher l'aide +observe.action.commandline.help.ui=Afficher le manuel utilisateur (mode graphique) +observe.action.commandline.launch.admin.ui=Lancer une opération d'administration +observe.action.commandline.launch.h2.server.mode=Lancer ObServe en mode serveur +observe.action.commandline.launch.obstuna.admin.ui=Lancer une opération d'administration sur Obstuna +observe.action.commandline.use.jmx=Ajouter le support JMX +observe.action.configuration=Configuration +observe.action.configuration.tip=Modifier la configuration +observe.action.configure=Configurer +observe.action.continue=Continuer +observe.action.copy=Copier dans le presse-papier +observe.action.copy.column.headers=Copier les entêtes de colonne +observe.action.copy.column.headers.tip=Ajoute dans le résultat les entêtes de colonne (i.e la première ligne) +observe.action.copy.row.headers=Copier les entêtes de ligne +observe.action.copy.row.headers.tip=Ajoute dans le résultat les entêtes de ligne (i.e la première colonne) +observe.action.country.create.tip=Créer un nouveau pays +observe.action.country.delete.tip=Supprimer le pays sélectionné +observe.action.country.detail.tip=Voir les détails du pays sélectionné +observe.action.country.modify.tip=Modifier le pays sélectionné +observe.action.country.save.tip=Sauver les modifications du pays +observe.action.create=Créer +observe.action.create.activity=Créer une nouvelle activité +observe.action.create.activity.tip=Créer une nouvelle activité pour la route courante +observe.action.create.entry.tip=Créer une nouvelle entrée +observe.action.create.gearUseFeaturesLongline=Créer un équipement +observe.action.create.gearUseFeaturesLongline.tip=Créer un nouvel équipement +observe.action.create.gearUseFeaturesSeine=Créer un équipement +observe.action.create.gearUseFeaturesSeine.tip=Créer un nouvel équipement +observe.action.create.maree=Créer une nouvelle marée +observe.action.create.maree.tip=Créer une nouvelle marée pour le programme courant +observe.action.create.nonTargetCatch=Insérer cette espèce / poids / devenir +observe.action.create.nonTargetCatch.tip=Insérer cette espèce / poids / devenir +observe.action.create.nonTargetSample=Insérer cet échantillon +observe.action.create.nonTargetSample.tip=Insérer cet échantillon de faune accessoire +observe.action.create.objectObservedSpecies=Insérer +observe.action.create.objectObservedSpecies.tip=Insérer l'espèce faune observée +observe.action.create.route=Créer une nouvelle route +observe.action.create.route.tip=Créer une nouvelle route pour la marée courante +observe.action.create.schoolEstimate=Insérer cette estimation +observe.action.create.schoolEstimate.tip=Insérer la nouvelle estimation dans la table +observe.action.create.targetCatch=Insérer cette capture / catégorie +observe.action.create.targetCatch.tip=Insérer cette capture / catégorie +observe.action.create.targetDiscarded=Insérer ce rejet / catégorie / raison +observe.action.create.targetDiscarded.tip=Insérer ce rejet / catégorie / raison +observe.action.create.targetSample=Insérer cet échantillon +observe.action.create.targetSample.tip=Insérer cet échantillon de thon rejeté +observe.action.create.targetSampleCapture=Insérer cet échantillon +observe.action.create.targetSampleCapture.tip=Insérer cet échantillon de thon capturé +observe.action.db.locale.es.tip=Changer la langue du référentiel en espagnol +observe.action.db.locale.fr.tip=Changer la langue du référentiel en français +observe.action.db.locale.uk.tip=Changer la langue du référentiel en anglais +observe.action.delete=Supprimer +observe.action.delete.activity.tip=Supprimer l'activité +observe.action.delete.entry.tip=Supprimer l'entrée en cours d'édition +observe.action.delete.floatingObject.tip=Supprimer l'objet flottant courant +observe.action.delete.maree.tip=Supprimer la marée +observe.action.delete.route.tip=Supprimer la route +observe.action.delete.set.tip=Supprimer la calée +observe.action.delete.tip=Supprimer +observe.action.detail=Voir les détails +observe.action.detectionMode.create.tip=Créer un nouveau mode détection +observe.action.detectionMode.delete.tip=Supprimer le mode de détection sélectionné +observe.action.detectionMode.detail.tip=Voir les détails du mode détection sélectionné +observe.action.detectionMode.modify.tip=Modifier le mode de détection sélectionné +observe.action.detectionMode.save.tip=Sauver les modifications du mode de détection +observe.action.do.backup=Sauver la base locale +observe.action.do.backup.tip=Effectuer une sauvegarde dela base locale avant d'appliquer les changements +observe.action.encounterType.create.tip=Créer un nouveau type de rencontre +observe.action.encounterType.delete.tip=Supprimer le type de rencontre sélectionné +observe.action.encounterType.detail.tip=Voir les détails du type de rencontre sélectionné +observe.action.encounterType.modify.tip=Modifier le type de rencontre sélectionné +observe.action.encounterType.save.tip=Sauver les modifications du type de rencontre +observe.action.exit=Quitter +observe.action.exit.tip=Quitter ObServe +observe.action.fpaZone.create.tip=Créer une nouvelle zone FPA +observe.action.fpaZone.delete.tip=Supprimer la zone FPA sélectionnée +observe.action.fpaZone.detail.tip=Voir les détails de la zone FPA sélectionnée +observe.action.fpaZone.modify.tip=Modifier la zone FPA sélectionnée +observe.action.fpaZone.save.tip=Sauver les modifications de la zone FPA +observe.action.gear.create.tip=Créer un nouvel équipment +observe.action.gear.delete.tip=Supprimer l'équipment sélectionné +observe.action.gear.detail.tip=Voir les détails de l'équipment sélectionné +observe.action.gear.modify.tip=Modifier l'équipment sélectionné +observe.action.gear.save.tip=Sauver les modifications de l'équipment +observe.action.gearCaracteristic.create.tip=Créer une nouvelle caractéristique +observe.action.gearCaracteristic.delete.tip=Supprimer la caractéristique sélectionnée +observe.action.gearCaracteristic.detail.tip=Voir les détails de la caractéristique sélectionnée +observe.action.gearCaracteristic.modify.tip=Modifier la caractéristique sélectionnée +observe.action.gearCaracteristic.save.tip=Sauver les modifications de la caractéristique +observe.action.gearCaracteristicType.create.tip=Créer un nouveau type de caractéristique +observe.action.gearCaracteristicType.delete.tip=Supprimer le type de caractéristique sélectionné +observe.action.gearCaracteristicType.detail.tip=Voir les détails du type de caractéristique sélectionné +observe.action.gearCaracteristicType.modify.tip=Modifier le type de caractéristique sélectionné +observe.action.gearCaracteristicType.save.tip=Sauver les modifications du type de caractéristique +observe.action.goDown=Descendre vers ... +observe.action.goDown.tip=Descendre dans la navigation +observe.action.goUp=Remonter vers ... +observe.action.goUp.tip=Remonter dans la navigation +observe.action.goto.next.stage=Suivant +observe.action.goto.next.stage.tip=Accéder à l'étape suivante +observe.action.goto.open.activity=Accéder à l'activité ouverte +observe.action.goto.open.activity.short=Activité ouverte +observe.action.goto.open.activity.tip=Accéder à l'activité ouverte +observe.action.goto.open.maree=Accéder à la marée ouverte +observe.action.goto.open.other.activity=Accéder à l'activité ouverte dans une autre route +observe.action.goto.open.other.activity.tip=Accéder à l'activité ouverte (dans une autre route) +observe.action.goto.open.other.maree=Accéder à la marée ouverte dans un autre program +observe.action.goto.open.other.maree.tip=Accéder à la marée ouverte (dans un autre program) +observe.action.goto.open.other.route=Accéder à la route ouverte dans une autre marée +observe.action.goto.open.other.route.tip=Accéder à la route ouverte (dans une autre marée) +observe.action.goto.open.program.short=Program ouvert +observe.action.goto.open.program.tip=Accéder au programme ouvert +observe.action.goto.open.route=Accéder à la route ouverte +observe.action.goto.open.route.short=Route ouverte +observe.action.goto.open.route.tip=Accéder à la route ouverte +observe.action.goto.open.set.short=Calée ouverte +observe.action.goto.open.set.tip=Accéder à la calée ouverte +observe.action.goto.open.trip.short=Marée ouverte +observe.action.goto.open.trip.tip=Accéder à la marée ouverte +observe.action.goto.previous.stage=Précédent +observe.action.goto.previous.stage.tip=Accèder à l'étape précédente +observe.action.goto.referentiel.short=Référentiel +observe.action.goto.referentiel.tip=Accéder au référentiel +observe.action.goto.selected.activity=Accéder à l'activité +observe.action.goto.selected.activity.tip=Accéder à l'activité sélectionnée +observe.action.goto.selected.maree=Accéder à la marée +observe.action.goto.selected.maree.tip=Accéder à la marée sélectionnée +observe.action.goto.selected.route=Accéder à la route +observe.action.goto.selected.route.tip=Accéder à la route sélectionnée +observe.action.harbour.create.tip=Créer un nouveau port +observe.action.harbour.delete.tip=Supprimer le port sélectionné +observe.action.harbour.detail.tip=Voir les détails du port sélectionné +observe.action.harbour.modify.tip=Modifier le port sélectionné +observe.action.harbour.save.tip=Sauver les modifications du port +observe.action.healthness.create.tip=Créer un nouveau statut de capture +observe.action.healthness.delete.tip=Supprimer le statut de santé sélectionné +observe.action.healthness.detail.tip=Voir les détails du statut de santé sélectionné +observe.action.healthness.modify.tip=Modifier le statut de santé sélectionné +observe.action.healthness.save.tip=Sauver les modifications du statut de santé +observe.action.hookPosition.create.tip=Créer une nouvelle position d'hameçon +observe.action.hookPosition.delete.tip=Supprimer la position d'hameçon sélectionnée +observe.action.hookPosition.detail.tip=Voir les détails de la position d'hameçon sélectionnée +observe.action.hookPosition.modify.tip=Modifier la position d'hameçon sélectionnée +observe.action.hookPosition.save.tip=Sauver les modifications de la position d'hameçon +observe.action.hookSize.create.tip=Créer une nouvelle taille d'hameçon +observe.action.hookSize.delete.tip=Supprimer la taille d'hameçon sélectionné +observe.action.hookSize.detail.tip=Voir les détails de la taille d'hameçon sélectionné +observe.action.hookSize.modify.tip=Modifier la taille d'hameçon sélectionné +observe.action.hookSize.save.tip=Sauver les modifications du type de hameçon +observe.action.hookType.create.tip=Créer un nouveau type d'hameçon +observe.action.hookType.delete.tip=Supprimer le type d'hameçon sélectionné +observe.action.hookType.detail.tip=Voir les détails du type d'hameçon sélectionné +observe.action.hookType.modify.tip=Modifier le type d'hameçon sélectionné +observe.action.hookType.save.tip=Sauver les modifications du type d'hameçon +observe.action.info.storage=Informations sur la source de données +observe.action.info.storage.tip=Voir les informations sur la source de données actuellement utilisée +observe.action.itemHorizontalPosition.create.tip=Créer une nouvelle localisation de l'élément sur la ligne mère +observe.action.itemHorizontalPosition.delete.tip=Supprimer la localisation de l'élément sur la ligne mère sélectionnée +observe.action.itemHorizontalPosition.detail.tip=Voir les détails de la localisation de l'élément sur la ligne mère sélectionnée +observe.action.itemHorizontalPosition.modify.tip=Modifier la localisation de l'élément sur la ligne mère sélectionnée +observe.action.itemHorizontalPosition.save.tip=Sauver les modifications de la localisation de l'élément sur la ligne mère +observe.action.itemVerticalPosition.create.tip=Créer une nouvelle localisation de l'élément sur l'avançon +observe.action.itemVerticalPosition.delete.tip=Supprimer la localisation de l'élément sur l'avançon sélectionnée +observe.action.itemVerticalPosition.detail.tip=Voir les détails de la localisation de l'élément sur l'avançon sélectionnée +observe.action.itemVerticalPosition.modify.tip=Modifier la localisation de l'élément sur l'avançon sélectionnée +observe.action.itemVerticalPosition.save.tip=Sauver les modifications de la localisation de l'élément sur l'avançon +observe.action.lengthWeightParameter.create.tip=Créer un nouveau paramétrage taille-poids +observe.action.lengthWeightParameter.delete.tip=Supprimer le paramétrage taille-poids sélectionné +observe.action.lengthWeightParameter.detail.tip=Voir les détails du paramétrage taille-poids +observe.action.lengthWeightParameter.modify.tip=Modifier le paramétrage taille-poids +observe.action.lengthWeightParameter.save.tip=Sauver les modifications du paramétrage taille-poids +observe.action.lightsticksColor.create.tip=Créer une nouvelle couleur de baton lumineux +observe.action.lightsticksColor.delete.tip=Supprimer la couleur de baton lumineux sélectionnée +observe.action.lightsticksColor.detail.tip=Voir les détails de la couleur de baton lumineux sélectionnée +observe.action.lightsticksColor.modify.tip=Modifier la couleur de baton lumineux sélectionnée +observe.action.lightsticksColor.save.tip=Sauver les modifications de la couleur de baton lumineux +observe.action.lightsticksType.create.tip=Créer un nouveau type de baton lumineux +observe.action.lightsticksType.delete.tip=Supprimer le type de baton lumineux sélectionné +observe.action.lightsticksType.detail.tip=Voir les détails du type de baton lumineux sélectionné +observe.action.lightsticksType.modify.tip=Modifier le type de baton lumineux sélectionné +observe.action.lightsticksType.save.tip=Sauver les modifications du type de baton lumineux +observe.action.lineType.create.tip=Créer un nouveau type de ligne +observe.action.lineType.delete.tip=Supprimer le type de ligne sélectionné +observe.action.lineType.detail.tip=Voir les détails du type de ligne sélectionné +observe.action.lineType.modify.tip=Modifier le type de ligne sélectionné +observe.action.lineType.save.tip=Sauver les modifications du type de ligne +observe.action.load.from.file=Importer une sauvegarde +observe.action.load.from.file.tip=Charger une base locale depuis un fichier de sauvegarde +observe.action.locale.es=Espagnol +observe.action.locale.es.tip=Changer la langue de l'application en espagnol +observe.action.locale.fr=Français +observe.action.locale.fr.tip=Changer la langue de l'application en français +observe.action.locale.uk=Anglais +observe.action.locale.uk.tip=Changer la langue de l'application en anglais +observe.action.maturityStatus.create.tip=Créer une nouvelle maturité +observe.action.maturityStatus.delete.tip=Supprimer le maturité sélectionnée +observe.action.maturityStatus.detail.tip=Voir les détails de la maturité sélectionnée +observe.action.maturityStatus.modify.tip=Modifier la maturité sélectionnée +observe.action.maturityStatus.save.tip=Sauver les modifications de la maturité +observe.action.mitigationType.create.tip=Créer un nouveau type de mesure d'atténuation +observe.action.mitigationType.delete.tip=Supprimer le type de mesure d'atténuation sélectionné +observe.action.mitigationType.detail.tip=Voir les détails du type de mesure d'atténuation sélectionné +observe.action.mitigationType.modify.tip=Modifier le type de mesure d'atténuation sélectionné +observe.action.mitigationType.save.tip=Sauver les modifications du type de mesure d'atténuation +observe.action.modify=Modifier +observe.action.new.entry=Nouveau +observe.action.new.entry.tip=Créer une nouvelle entrée +observe.action.objectFate.create.tip=Créer un nouveau devenir objet +observe.action.objectFate.delete.tip=Supprimer le devenir objet sélectionné +observe.action.objectFate.detail.tip=Voir les détails du devenir objet sélectionné +observe.action.objectFate.modify.tip=Modifier le devenir objet sélectionné +observe.action.objectFate.save.tip=Sauver les modifications du devenir objet +observe.action.objectOperation.create.tip=Créer une nouvelle opération objet +observe.action.objectOperation.delete.tip=Supprimer l'opération objet sélectionné +observe.action.objectOperation.detail.tip=Voir les détails de l'opération objet sélectionnée +observe.action.objectOperation.modify.tip=Modifier l'opération objet sélectionnée +observe.action.objectOperation.save.tip=Sauver les modifications de l'opération objet +observe.action.objectType.create.tip=Créer un nouveau type d'objet +observe.action.objectType.delete.tip=Supprimer le type d'objet sélectionné +observe.action.objectType.detail.tip=Voir les détails du type d'objet sélectionné +observe.action.objectType.modify.tip=Modifier le type d'objet sélectionné +observe.action.objectType.save.tip=Sauver les modifications du type d'objet +observe.action.observedSystem.create.tip=Créer un nouveau système observé +observe.action.observedSystem.delete.tip=Supprimer le système observé sélectionné +observe.action.observedSystem.detail.tip=Voir les détails du système observé sélectionné +observe.action.observedSystem.modify.tip=Modifier le système observé sélectionné +observe.action.observedSystem.save.tip=Sauver les modifications du système observé +observe.action.ocean.create.tip=Créer un nouvel océan +observe.action.ocean.delete.tip=Supprimer l'océan sélectionné +observe.action.ocean.detail.tip=Voir les détails sur l'océan sélectionné +observe.action.ocean.modify.tip=Modifier l'océan sélectionné +observe.action.ocean.save.tip=Sauver les modifications sur l'ocean +observe.action.open.screen=Ouverture de l'écran <%1$s> +observe.action.openLink.formsUrl.tip=Accéder aux formulaires dans un navigateur web +observe.action.openLink.reportsUrl.tip=Accéder aux rapports dans un navigateur web +observe.action.organism.create.tip=Créer un nouvel organisme +observe.action.organism.delete.tip=Supprimer l'organisme sélectionné +observe.action.organism.detail.tip=Voir les détaile de l'organisme +observe.action.organism.modify.tip=Modifier l'organisme sélectionné +observe.action.organism.save.tip=Sauver les modifications de l'organisme +observe.action.person.create.tip=Créer un nouvelle personne +observe.action.person.delete.tip=Supprimer la personne sélectionnée +observe.action.person.detail.tip=Voir les détails de la personne sélectionnée +observe.action.person.modify.tip=Modifier la personne sélectionnée +observe.action.person.save.tip=Sauver les modifications sur la personne +observe.action.program.create.tip=Créer un nouveau programme +observe.action.program.delete.tip=Supprimer le programme sélectionné +observe.action.program.detail.tip=Voir les détails du programme sélectionné +observe.action.program.modify.tip=Modifier le programme sélectionné +observe.action.program.save.tip=Sauver les modifications sur le programme +observe.action.quitHelp.tip=Quitter l'écran d'aide +observe.action.reasonForDiscard.create.tip=Créer une nouvelle raison de rejet +observe.action.reasonForDiscard.delete.tip=Supprimer la raison de rejet sélectionnée +observe.action.reasonForDiscard.detail.tip=voir les détail de la raison de rejet sélectionnée +observe.action.reasonForDiscard.modify.tip=Modifier la raison de rejet sélectionnée +observe.action.reasonForDiscard.save.tip=Sauver les modifications du raison de rejet +observe.action.reasonForNoFishing.create.tip=Créer une nouvelle raison de non coup de senne +observe.action.reasonForNoFishing.delete.tip=Supprimer la raison de non coup de senne sélectionné +observe.action.reasonForNoFishing.detail.tip=Voir les détails de la raison de non coup de senne sélectionnée +observe.action.reasonForNoFishing.modify.tip=Modifier la raison de non coup de senne sélectionnée +observe.action.reasonForNoFishing.save.tip=Sauver les modifications de la raison de non coup de senne +observe.action.reasonForNullSet.create.tip=Créer une nouvelle cause de coup nul +observe.action.reasonForNullSet.delete.tip=Supprimer la cause de coup nul sélectionnée +observe.action.reasonForNullSet.detail.tip=Voir les détails de la cause de coup nul sélectionnée +observe.action.reasonForNullSet.modify.tip=Modifier la cause de coup nul sélectionnée +observe.action.reasonForNullSet.save.tip=Sauver les modifications du cause de coup nul +observe.action.reload.application=Redémarrer l'application +observe.action.reload.storage=Recharger la source de données +observe.action.reload.storage.tip=Ferme et réouvre la source de données +observe.action.reload.ui=Recharger l'interface graphique +observe.action.reloadDefaultConfiguration=Configuration par défaut +observe.action.reloadDefaultConfiguration.tip=Rétablir la configuration par défaut +observe.action.reloadResources=Resources par défaut +observe.action.reloadResources.tip=Rétablir les ressources par défaut (toute modification sera perdue) +observe.action.reopen=Réouvrir +observe.action.reopen.activity.tip=Réouvrir l'activité +observe.action.reopen.maree.tip=Réouvrir la marée +observe.action.reopen.route.tip=Réouvrir la route +observe.action.reopen.selected.activity=Réouvrir l'activité +observe.action.reopen.selected.activity.tip=Réouvrir l'activité sélectionnée +observe.action.reopen.selected.maree=Réouvrir la marée +observe.action.reopen.selected.maree.tip=Réouvrir la marée sélectionnée +observe.action.reopen.selected.route=Réouvrir la route +observe.action.reopen.selected.route.tip=Réouvrir la route sélectionnée +observe.action.reopen.tip=Réouvrir la donnée +observe.action.reset=Annuler +observe.action.reset.entry.tip=Réinitialiser l'entré en cours d'édition +observe.action.reset.ersId.tip=Réinitialiser l'id ERS +observe.action.reset.formsUrl.tip=Réinitialiser l'url des formulaires +observe.action.reset.homeId.tip=Réinitialiser +observe.action.reset.new.entry.tip=Annuler la création de la nouvelle entrée +observe.action.reset.picturesReferences.tip=Réinitialiser +observe.action.reset.reportsUrl.tip=Réinitialiser l'url des rapports +observe.action.reset.supportVesselName.tip=Réinitialiser +observe.action.reset.tip=Annuler les modifications +observe.action.reset.well.tip=Réinitialiser +observe.action.restart.application=Redémarrer +observe.action.restart.application.tip=Redémarrer l'application +observe.action.save=Enregistrer +observe.action.save.all.tip=Sauver toutes les modifications +observe.action.save.entry.tip=Sauver l'entrée en cours d'édition +observe.action.save.tip=Sauver les modifications +observe.action.save.to.file=Sauver la base +observe.action.save.to.file.tip=Effectuer une sauvegarde de la base ouverte +observe.action.selectNode=Sélectionner le noeud +observe.action.selectNode.tip=Sélectionner le noeud +observe.action.sensorBrand.create.tip=Créer une nouvelle marque de capteur +observe.action.sensorBrand.delete.tip=Supprimer la marque de capteur sélectionnée +observe.action.sensorBrand.detail.tip=Voir les détails de la marque de capteur sélectionnée +observe.action.sensorBrand.modify.tip=Modifier la marque de capteur sélectionnée +observe.action.sensorBrand.save.tip=Sauver les modifications de la marque de capteur +observe.action.sensorDataFormat.create.tip=Créer un nouveau format de données de capteur +observe.action.sensorDataFormat.delete.tip=Supprimer le format de données de capteur sélectionné +observe.action.sensorDataFormat.detail.tip=Voir les détails du format de données de capteur sélectionné +observe.action.sensorDataFormat.modify.tip=Modifier le format de données de capteur sélectionné +observe.action.sensorDataFormat.save.tip=Sauver les modifications du format de données de capteur +observe.action.sensorType.create.tip=Créer un nouveau type de capteur +observe.action.sensorType.delete.tip=Supprimer le type de capteur sélectionné +observe.action.sensorType.detail.tip=Voir les détails du type de capteur sélectionné +observe.action.sensorType.modify.tip=Modifier le type de capteur sélectionné +observe.action.sensorType.save.tip=Sauver les modifications du type de capteur +observe.action.settingShape.create.tip=Créer une nouvelle forme au filage +observe.action.settingShape.delete.tip=Supprimer la forme au filage sélectionnée +observe.action.settingShape.detail.tip=Voir les détails de la forme au filage sélectionnée +observe.action.settingShape.modify.tip=Modifier la forme au filage sélectionnée +observe.action.settingShape.save.tip=Sauver les modifications de la forme au filage +observe.action.sex.create.tip=Créer un nouveau sexe +observe.action.sex.delete.tip=Supprimer le sexe sélectionné +observe.action.sex.detail.tip=Voir les détails du sexe sélectionné +observe.action.sex.modify.tip=Modifier le sexe sélectionné +observe.action.sex.save.tip=Sauver les modifications du sexe +observe.action.show.technical.informations.tip=Voir les information techniques +observe.action.show.unique.keys.tip=Voir le tableau de toutes les clefs métier utilisées pour ce référentiel +observe.action.show.usages.tip=Voir toutes les utilisations de ce référentiel +observe.action.showConfig.title=Configuration +observe.action.site=Site internet +observe.action.site.tip=Accéder au site de l'application sur internet +observe.action.sizeMeasureType.create.tip=Créer un nouveau type de mesure de taille +observe.action.sizeMeasureType.delete.tip=Supprimer le type de mesure de taille sélectionné +observe.action.sizeMeasureType.detail.tip=Voir les détails du type de mesure de taille sélectionné +observe.action.sizeMeasureType.modify.tip=Modifier le type de mesure de taille sélectionné +observe.action.sizeMeasureType.save.tip=Sauver les modifications du type de mesure de taille +observe.action.species.create.tip=Créer une nouvelle espèce +observe.action.species.delete.tip=Supprimer l'espèce sélectionnée +observe.action.species.detail.tip=Voir les détails de l'espèce sélectionnée +observe.action.species.modify.tip=Modifier l'espèce sélectionnée +observe.action.species.save.tip=Sauver les modifications de l'espèce +observe.action.speciesFate.create.tip=Créer un nouveau devenir +observe.action.speciesFate.delete.tip=Supprimer le devenir sélectionné +observe.action.speciesFate.detail.tip=Voir les détails du devenir sélectionné +observe.action.speciesFate.modify.tip=Modifier le devenir sélectionné +observe.action.speciesFate.save.tip=Sauver les modifications du devenir +observe.action.speciesGroupSpecies.create.tip=Créer un nouveau groupe d'espèce +observe.action.speciesGroupSpecies.delete.tip=Supprimer le groupe d'espèce sélectionné +observe.action.speciesGroupSpecies.detail.tip=Voir les détails du groupe d'espèce sélectionné +observe.action.speciesGroupSpecies.modify.tip=Modifier le groupe d'espèce sélectionné +observe.action.speciesGroupSpecies.save.tip=Sauver les modifications du groupe d'espèce +observe.action.speciesList.create.tip=Créer une nouvelle liste d'espèce +observe.action.speciesList.delete.tip=Supprimer la liste d'espèce sélectionnée +observe.action.speciesList.detail.tip=Voir les détails de la liste d'espèce sélectionnée +observe.action.speciesList.modify.tip=Modifier la liste d'espèce sélectionnée +observe.action.speciesStatus.create.tip=Créer un nouveau statut d'espèce +observe.action.speciesStatus.delete.tip=Supprimer le statut d'espèce sélectionné +observe.action.speciesStatus.detail.tip=Voir les détails du statut d'espèce sélectionné +observe.action.speciesStatus.modify.tip=Modifier le statut d'espèce sélectionné +observe.action.speciesStatus.save.tip=Sauver les modifications du statut d'espèce +observe.action.start.h2.web.server=Démarrer le serveur web +observe.action.start.h2.web.server.tip=Démarrer le serveur web H2 +observe.action.start.server.mode=Mode serveur +observe.action.start.server.mode.tip=Démarrer la base locale en mode serveur +observe.action.stomacFullness.create.tip=Créer un nouveau niveau de remplissage de l'estomac +observe.action.stomacFullness.delete.tip=Supprimer le niveau de remplissage de l'estomac sélectionné +observe.action.stomacFullness.detail.tip=Voir les détails du niveau de remplissage de l'estomac sélectionné +observe.action.stomacFullness.modify.tip=Modifier le niveau de remplissage de l'estomac sélectionné +observe.action.stomacFullness.save.tip=Sauver les modifications du niveau de remplissage de l'estomac +observe.action.stop.h2.web.server=Arrêter le serveur web +observe.action.stop.h2.web.server.tip=Arrêter le serveur web H2 +observe.action.stop.server.mode=Arrêter le mode serveur +observe.action.stop.server.mode.tip=Arrêter le mode serveur de la base locale +observe.action.storage.apply=Utiliser +observe.action.storage.apply.tip=Utiliser la source de données configurée +observe.action.storage.applyAction=Changement de source de données +observe.action.storage.cancel=Annuler le changement de source de données +observe.action.storage.cancel.tip=Annuler le changement de source de données +observe.action.surroundingActivity.create.tip=Créer un nouvelle activité environnante +observe.action.surroundingActivity.delete.tip=Supprimer l'activité environnante sélectionnée +observe.action.surroundingActivity.detail.tip=Voir les détails de l'activité environnante sélectionnée +observe.action.surroundingActivity.modify.tip=Modifier l'activité environnante sélectionnée +observe.action.surroundingActivity.save.tip=Sauver les modifications de l'activité environnante +observe.action.synchro.apply.modifications=Appliquer les modifications +observe.action.synchro.cancel.tip=Annuler +observe.action.synchro.copy.tip=Copier le rapport dans le presse-papier +observe.action.synchro.launch.operation=Démarrer l'opération < %1$s > +observe.action.synchro.prepare.operation=Préparer l'opération <%1$s> +observe.action.synchro.report.reset.tip=Déselectionner le report courant. +observe.action.test.remote=Valider la connexion +observe.action.test.remote.tip=Cliquer pour valider la connexion au serveur distant +observe.action.transmittingBuoyOperation.create.tip=Créer une nouvelle opération sur balise +observe.action.transmittingBuoyOperation.delete.tip=Supprimer l'opération sur balise sélectionné +observe.action.transmittingBuoyOperation.detail.tip=Voir les détails de l'opération sur balise sélectionnée +observe.action.transmittingBuoyOperation.modify.tip=Modifier l'opération sur balise sélectionnée +observe.action.transmittingBuoyOperation.save.tip=Sauver les modifications de l'opération sur balise +observe.action.transmittingBuoyType.create.tip=Créer un nouveau type de balise +observe.action.transmittingBuoyType.delete.tip=Supprimer le type de balise sélectionné +observe.action.transmittingBuoyType.detail.tip=Voir les détails du type de balise sélectionné +observe.action.transmittingBuoyType.modify.tip=Modifier le type de balise sélectionné +observe.action.transmittingBuoyType.save.tip=Sauver les modifications du type de balise +observe.action.tripType.create.tip=Créer un nouveau type de marée +observe.action.tripType.delete.tip=Supprimer le type de marée sélectionné +observe.action.tripType.detail.tip=Voir les détails du type de marée sélectionné +observe.action.tripType.modify.tip=Modifier le type de marée sélectionné +observe.action.tripType.save.tip=Sauver les modifications du type de marée +observe.action.vessel.create.tip=Créer un nouveau bateau +observe.action.vessel.delete.tip=Supprimer le bateau sélectionné +observe.action.vessel.detail.tip=Voir les détails du bateau sélectionné +observe.action.vessel.modify.tip=Modifier le bateau sélectionné +observe.action.vessel.save.tip=Sauver les modifications sur le bateau +observe.action.vesselActivityLongline.create.tip=Créer un nouveau type d'activité +observe.action.vesselActivityLongline.delete.tip=Supprimer le type d'activité sélectionné +observe.action.vesselActivityLongline.detail.tip=Voir les détails du type d'activité sélectionné +observe.action.vesselActivityLongline.modify.tip=Modifier le type d'activité sélectionné +observe.action.vesselActivityLongline.save.tip=Sauver les modifications du type d'activité +observe.action.vesselActivitySeine.create.tip=Créer une nouvelle activité vessel +observe.action.vesselActivitySeine.delete.tip=Supprimer l'activité vessel sélectionnée +observe.action.vesselActivitySeine.detail.tip=Voir les détails de l'activité vessel sélectionnée +observe.action.vesselActivitySeine.modify.tip=Modifier l'activité de vessel sélectionnée +observe.action.vesselActivitySeine.save.tip=Sauver les modifications de l'activité vessel +observe.action.vesselSizeCategory.create.tip=Créer une nouvelle catégorie de vessel +observe.action.vesselSizeCategory.delete.tip=Supprimer le catégorie de vessel sélectionnée +observe.action.vesselSizeCategory.detail.tip=Voir les détails de la catégorie de vessel sélectionnée +observe.action.vesselSizeCategory.modify.tip=Modifier le vessel sélectionné +observe.action.vesselSizeCategory.save.tip=Sauver les modifications de la catégorie de vessel +observe.action.vesselType.create.tip=Créer un nouveau type de vessel +observe.action.vesselType.delete.tip=Supprimer le type de vessel sélectionné +observe.action.vesselType.detail.tip=Voir les détails du type de vessel sélectionné +observe.action.vesselType.modify.tip=Modifier le type de vessel sélectionné +observe.action.vesselType.save.tip=Sauver les modifications du type de vessel +observe.action.weightCategory.create.tip=Créer une nouvelle catégorie de poids +observe.action.weightCategory.delete.tip=Supprimer la catégorie de poids sélectionnée +observe.action.weightCategory.detail.tip=Voir les détails de la catégorie de poids sélectionnée +observe.action.weightCategory.modify.tip=Modifier la catégorie de poids sélectionnée +observe.action.weightCategory.save.tip=Sauver les modifications de la catégorie de poids +observe.action.weightMeasureType.create.tip=Créer un nouveau type de mesure de poids +observe.action.weightMeasureType.delete.tip=Supprimer le type de mesure de poids sélectionné +observe.action.weightMeasureType.detail.tip=Voir les détails du type de mesure de poids sélectionné +observe.action.weightMeasureType.modify.tip=Modifier le type de mesure de poids sélectionné +observe.action.weightMeasureType.save.tip=Sauver les modifications du type de mesure de poids +observe.action.wind.create.tip=Créer un nouveau vent Beaufort +observe.action.wind.delete.tip=Supprimer le vent Beaufort sélectionné +observe.action.wind.detail.tip=Voir les détails du vent Beaufort sélectionné +observe.action.wind.modify.tip=Modifier le vent Beaufort sélectionné +observe.action.wind.save.tip=Sauver les modifications du vent Beaufort +observe.activityLongline.coordinate=Coordonnées +observe.activityLongline.fpaZone=Zone FPA +observe.activityLongline.message.active.found=Une activité est ouverte. +observe.activityLongline.message.active.found.for.other.trip=Une activité ouverte existe dans une autre marée. +observe.activityLongline.message.creating=L'activité est en cours de création. +observe.activityLongline.message.no.active.found=Aucune activité ouverte, vous pouvez soit en créer une nouvelle, soit en réouvrire une. +observe.activityLongline.message.no.active.found.for.other.trip=Aucune activité ouverte sur la marée ouverte +observe.activityLongline.message.not.open=L'opération de pêche n'est pas ouverte, aucune modification possible. +observe.activityLongline.message.updating=L'activité est en cours de modification. +observe.activityLongline.seaSurfaceTemperature=Température surface (°c) +observe.activityLongline.timeStamp=Horodatage +observe.activityLongline.title=Activité +observe.activityLongline.vesselActivityLongline=Activité bateau +observe.activityLonglines.title=Activités +observe.activityObservedSystem.availableObservedSystem=Systèmes observés disponibles +observe.activityObservedSystem.selectedObservedSystem=Systèmes observés sélectionnés +observe.activitySeine.message.active.found=Une activité est ouverte. +observe.activitySeine.message.active.found.for.other.route=Une activité ouverte existe dans une autre route. +observe.activitySeine.message.creating=L'activité est en cours de création. +observe.activitySeine.message.no.active.found=Aucune activité ouverte, vous pouvez soit en créer une nouvelle, soit en réouvrire une. +observe.activitySeine.message.no.active.found.for.other.route=Aucune activité ouverte sur la route ouverte +observe.activitySeine.message.not.open=L'activité n'est pas ouverte, aucune modification possible. +observe.activitySeine.message.updating=L'activité est en cours de modification. +observe.activitySeine.tab.general=Caractéristiques générales +observe.activitySeine.tab.measurements=Mesures +observe.activitySeine.title=Activité +observe.activitySeineObservedSystem.title=Système observé +observe.activitySeines.title=Activités +observe.admin.resume.no.operation.done=Aucune opération réalisée. +observe.admin.resume.operation.canceled=opération annulée +observe.admin.resume.operation.done=opération réussie +observe.admin.resume.operation.failed=opération échouée +observe.admin.resume.operation.need.fix=opération nécessitant des corrections +observe.admin.resume.operation.not.started=opération non démarrée +observe.admin.resume.operation.running=opération en cours... +observe.application.config=configuration d'ObServe +observe.baitsComposition.action.create=Inserer cet appât +observe.baitsComposition.action.create.tip=Inserer cet appât +observe.baitsComposition.baitSettingStatus=État au filage +observe.baitsComposition.baitType=Type d'appât +observe.baitsComposition.individualSize=Taille (cm) +observe.baitsComposition.individualWeight=Poids (kg) +observe.baitsComposition.proportion=Proportion (%) +observe.baitsComposition.proportionSum=Somme des proportions d'appâts (%) +observe.baitsComposition.table.baitSettingStatus=Statut +observe.baitsComposition.table.baitSettingStatus.tip=Statut au filage +observe.baitsComposition.table.baitType=Type d'appât +observe.baitsComposition.table.baitType.tip=Type d'appât +observe.baitsComposition.table.individualSize=Taille (cm) +observe.baitsComposition.table.individualSize.tip=Taille (cm) +observe.baitsComposition.table.individualWeight=Poids (kg) +observe.baitsComposition.table.individualWeight.tip=Poids (kg) +observe.baitsComposition.table.proportion=Proportion (%) +observe.baitsComposition.table.proportion.tip=Proportion (%) +observe.baitsComposition.title=Composition des appâts +observe.basket.cant.delete.message=Le panier ne peut pas être supprimé car il est utilisé dans des données. +observe.basket.cant.delete.title=Impossible de supprimer le panier +observe.basket.invalid.nextFloatline1Length=La longueur d'orin 2 (%s) n'est pas égale à la longueur d'orin 1 du panier suivant (%s) +observe.branchLine.cant.delete.message=L'avançon ne peut pas être supprimé car il est utilisé dans des données. +observe.branchLine.cant.delete.title=Impossible de supprimer l'avançon +observe.branchline.baitHaulingStatus=Statut appât au virage +observe.branchline.baitSettingStatus=Statut appât au filage +observe.branchline.baitType=Type d'appât +observe.branchline.comment=Commentaire +observe.branchline.depthRecorder=Enregistreur de profondeur +observe.branchline.hookLost=Hameçon perdu +observe.branchline.hookOffset=Offset hameçon (°) +observe.branchline.hookSize=Taille d'hameçon +observe.branchline.hookType=Type d'hameçon +observe.branchline.message.modified=L'avançon en cours d'édition a été modifié et est valide. +observe.branchline.message.modified.but.invalid=L'avançon en cours d'édition a été modifié, mais n'est pas valide. +observe.branchline.snapWeight=Poids snap (kg) +observe.branchline.swivelWeight=Poids émerillon (kg) +observe.branchline.tab.general=Généralités +observe.branchline.tab.hookAndBait=Hameçon et appât +observe.branchline.timeSinceContact=Temps depuis déclenchement +observe.branchline.timer=Horloge +observe.branchline.timerTimeOnBoard=Horodatage de montée à bord +observe.branchline.title=Détail de l'avançon +observe.branchline.topType=Type partie supérieure +observe.branchline.traceCutOff=Bas de ligne coupé +observe.branchline.tracelineType=Type bas de ligne +observe.branchline.weightedSnap=Snap plombé +observe.branchline.weightedSwivel=Émerillon plombé +observe.branchlinesComposition.action.create=Inserer cet avançon +observe.branchlinesComposition.action.create.tip=Inserer cet avançon +observe.branchlinesComposition.length=Longueur (m) +observe.branchlinesComposition.proportion=Proportion (%) +observe.branchlinesComposition.proportionSum=Somme des proportions d'avançons (%) +observe.branchlinesComposition.table.length=Longueur (m) +observe.branchlinesComposition.table.length.tip=Longueur (m) +observe.branchlinesComposition.table.proportion=Proportion (%) +observe.branchlinesComposition.table.proportion.tip=Proportion (%) +observe.branchlinesComposition.table.topType=Type partie supérieure +observe.branchlinesComposition.table.topType.tip=Type partie supérieure +observe.branchlinesComposition.table.tracelineType=Type basse de ligne +observe.branchlinesComposition.table.tracelineType.tip=Type bas de ligne +observe.branchlinesComposition.title=Composition des avançons +observe.branchlinesComposition.topType=Type partie supérieure +observe.branchlinesComposition.tracelineType=Type bas de ligne +observe.broughtOnDeck.comment=Seules les espèces montées sur le pont pourront être échantillonnées +observe.catchLongline.acquisitionMode=Mode de saisie +observe.catchLongline.acquisitionMode.grouped=Groupé +observe.catchLongline.acquisitionMode.individual=Par individu +observe.catchLongline.action.create=Insérer cette capture +observe.catchLongline.action.create.tip=Insérer cette capture +observe.catchLongline.action.new=Nouvelle capture +observe.catchLongline.action.new.tip=Créér une nouvelle capture +observe.catchLongline.action.reset.photoReferences.tip=Réinitiliser les références photo +observe.catchLongline.availablePredator=Prédateurs disponibles +observe.catchLongline.basket=Panier +observe.catchLongline.beatDiameter=Diamètre de la morsure +observe.catchLongline.branchline=Avançon +observe.catchLongline.catchFateLongline=Devenir +observe.catchLongline.catchHealthness=Santé à la capture +observe.catchLongline.comment=Commentaire +observe.catchLongline.count=Nombre +observe.catchLongline.depredated=Victime de déprédation +observe.catchLongline.discardHealthness=Santé au rejet +observe.catchLongline.gonadeWeight=Poids des gonades (g) +observe.catchLongline.hookPosition=Position de l'hameçon +observe.catchLongline.hookWhenDiscarded=Rejeté avec hameçon +observe.catchLongline.locationOnLongline=Position sur la ligne +observe.catchLongline.maturityStatus=Maturité sexuelle +observe.catchLongline.photoReferences=Références photo +observe.catchLongline.predator=Prédateurs +observe.catchLongline.resetBranchline=Annuler +observe.catchLongline.resetBranchline.tip=Annuler les modifications sur l'avançon +observe.catchLongline.saveBranchline=Enregister l'avançon +observe.catchLongline.saveBranchline.tip=Enregister les modifications sur l'avançon +observe.catchLongline.section=Section +observe.catchLongline.selectedPredator=Prédateurs sélectionnés +observe.catchLongline.sex=Sexe +observe.catchLongline.speciesCatch=Espèce +observe.catchLongline.stomacFullness=État de l'estomac +observe.catchLongline.tab.branchline=Avançon +observe.catchLongline.tab.caracteristics=Caractéristiques +observe.catchLongline.tab.depredated=Déprédation +observe.catchLongline.tab.foodAndSexual=Alimentation et maturité sexuelle +observe.catchLongline.tab.sizeMeasures=Tailles (cm) +observe.catchLongline.tab.weightMeasures=Poids (kg) +observe.catchLongline.title=Captures +observe.catchLongline.totalWeight=Poids total (kg) +observe.catchlongline.table.acquisitionMode=Mode +observe.catchlongline.table.acquisitionMode.tip=Mode de saisie +observe.catchlongline.table.basketHaulingId=N° panier +observe.catchlongline.table.basketHaulingId.tip=Numéro de virage du panier +observe.catchlongline.table.branchlineHaulingId=N° avançon +observe.catchlongline.table.branchlineHaulingId.tip=Numéro de virage de l'avançon +observe.catchlongline.table.catchFateLongline=Devenir +observe.catchlongline.table.catchFateLongline.tip=Devenir +observe.catchlongline.table.catchHealthness=État +observe.catchlongline.table.catchHealthness.tip=État à la capture +observe.catchlongline.table.comment=Commentaire +observe.catchlongline.table.comment.tip=Commentaire +observe.catchlongline.table.count=Nombre +observe.catchlongline.table.count.tip=Nombre +observe.catchlongline.table.depredated=Déprédation +observe.catchlongline.table.depredated.tip=Victime de déprédation +observe.catchlongline.table.discardHealthness=Santé au rejet +observe.catchlongline.table.discardHealthness.tip=Santé au rejet +observe.catchlongline.table.sectionHaulingId=N° section +observe.catchlongline.table.sectionHaulingId.tip=Numéro de virage de la section +observe.catchlongline.table.size=Mesure (cm) +observe.catchlongline.table.size.tip=Mesure (cm) +observe.catchlongline.table.sizeMeasureType=Type de mesure +observe.catchlongline.table.sizeMeasureType.tip=Type de mesure +observe.catchlongline.table.speciesCatch=Espèce +observe.catchlongline.table.speciesCatch.tip=Espèce +observe.catchlongline.table.weight=Mesure (kg) +observe.catchlongline.table.weight.tip=Mesure (kg) +observe.catchlongline.table.weightMeasureType=Type de mesure +observe.catchlongline.table.weightMeasureType.tip=Type de mesure +observe.choice.cancel=Annuler +observe.choice.confirm.delete=Supprimer +observe.choice.continue=Continuer +observe.choice.create.fin.veille.activity=Créer l'activité de fin de veille +observe.choice.create.fin.veille.activity.and.continue=Créer l'activité de fin de veille et continuer +observe.choice.createLocalStorage=Créer la base locale +observe.choice.doNotSave=Ne pas enregistrer +observe.choice.doNothing=Ne rien faire +observe.choice.not.create.fin.veille.activity.and.continue=Ne pas créer l'activité de fin de veille et continuer +observe.choice.quit=Fermer +observe.choice.save=Enregistrer +observe.choice.useRemoteStorage=Utiliser une base distante +observe.common.acquisitionMode=Mode de saisie +observe.common.acquisitionMode.count=Saisie par nombre +observe.common.acquisitionMode.individu=Saisie par individu +observe.common.activities=Activités +observe.common.activities.list=Liste des activités +observe.common.activity=Activité observe.common.activityLongline= observe.common.activitySeine= observe.common.baitHaulingStatus= -observe.common.baitObservation= +observe.common.baitObservation=Gleure observe.common.baitSettingStatus= observe.common.baitType= observe.common.baitsComposition= observe.common.basket= -observe.common.birdsObservation= -observe.common.boolean.false= -observe.common.boolean.null= -observe.common.boolean.true= +observe.common.birdsObservation=Oiseaux +observe.common.boolean.false=Non +observe.common.boolean.null=Indéterminé +observe.common.boolean.true=Oui observe.common.branchline= observe.common.branchlineLength= observe.common.branchlinesComposition= -observe.common.brand= -observe.common.brandName= -observe.common.broughtOnDeck= -observe.common.capacity= -observe.common.capacityLabel= -observe.common.captain= -observe.common.caracteristics= +observe.common.brand=Marque +observe.common.brandName=Marque +observe.common.broughtOnDeck=Monté sur le pont +observe.common.capacity=Capacité transport (m³) +observe.common.capacityLabel=Libellé capacité +observe.common.captain=Capitaine +observe.common.caracteristics=Caractéristiques observe.common.catchFateLongline= observe.common.catchLongline= -observe.common.catchWeight= -observe.common.catchWeightComputed.computed.tip= -observe.common.catchWeightComputed.observed.tip= -observe.common.changeDate= -observe.common.code= -observe.common.codeAndStatus= -observe.common.coefficients= -observe.common.comment= -observe.common.comment.activity= -observe.common.comment.floatingObject= -observe.common.comment.nonTargetCatch= -observe.common.comment.nonTargetSample= -observe.common.comment.set= -observe.common.comment.targetCatch= -observe.common.comment.targetDiscarded= -observe.common.comment.targetSample= -observe.common.count= -observe.common.country= -observe.common.currentFpaZone= -observe.common.dataEntryOperator= -observe.common.date= -observe.common.daysAtSeaCount= -observe.common.departureHarbour= -observe.common.description= -observe.common.detailledActivitiesObservation= -observe.common.detectionMode= -observe.common.directory= +observe.common.catchWeight=Poids estimé (en t) +observe.common.catchWeightComputed.computed.tip=Le poids estimé a été calculé (%s) +observe.common.catchWeightComputed.observed.tip=Le poids estimé a été observé +observe.common.changeDate=Date changement pavillon +observe.common.code=Identifiant +observe.common.codeAndStatus=Code / Statut +observe.common.coefficients=Coefficients +observe.common.comment=Commentaire +observe.common.comment.activity=Commentaire de l'activité +observe.common.comment.floatingObject=Commentaire sur l'objet flottant +observe.common.comment.nonTargetCatch=Commentaire de la faune accessoire +observe.common.comment.nonTargetSample=Commentaire de l'échantillonage faune +observe.common.comment.set=Commentaire de la calée +observe.common.comment.targetCatch=Commentaire de la capture +observe.common.comment.targetDiscarded=Commentaire du rejet +observe.common.comment.targetSample=Commentaire de l'échantillonage thon +observe.common.count=Nombre +observe.common.country=Pays +observe.common.currentFpaZone=Zone FPA actuelle +observe.common.dataEntryOperator=Saisisseur +observe.common.date=Jour d'observation +observe.common.daysAtSeaCount=Nombre de jours à l'eau +observe.common.departureHarbour=Port de départ +observe.common.description=Description +observe.common.detailledActivitiesObservation=Activités détaillées +observe.common.detectionMode=Mode détection +observe.common.directory=Répertoire observe.common.encounter= observe.common.encounterType= -observe.common.endDate= -observe.common.endLogValue= -observe.common.equation= -observe.common.ersId= +observe.common.endDate=Fin de validité +observe.common.endLogValue=Loch du soir (milles) +observe.common.equation=Relation Taille-Poids +observe.common.ersId=Id ERS observe.common.faoCode= -observe.common.file= -observe.common.firstName= -observe.common.flagCountry= +observe.common.file=Fichier +observe.common.firstName=Prénom +observe.common.flagCountry=Pavillon observe.common.floatingObject= observe.common.floatline1Length= observe.common.floatline2Length= observe.common.floatlineLengths= observe.common.floatlinesComposition= -observe.common.formsUrl= +observe.common.formsUrl=URL des formulaires observe.common.fpaZone= -observe.common.gaugeLabel= +observe.common.gaugeLabel=Libellé jauge observe.common.gear= observe.common.gearCaracteristic= observe.common.gearCaracteristicType= -observe.common.gearType= +observe.common.gearType=Type d'engin observe.common.gearUseFeaturesLongline= observe.common.gearUseFeaturesSeine= observe.common.gender= -observe.common.generateReport= -observe.common.global.progression.description= +observe.common.generateReport=Générer un rapport de validation +observe.common.global.progression.description=Progression globale observe.common.gps.activity= observe.common.gps.gpsPoint= observe.common.gps.gpsPointInterval= @@ -813,84 +813,84 @@ observe.common.gpsPointInterval= observe.common.harbour= observe.common.haulingIdentifier= observe.common.healthness= -observe.common.heureobservation= +observe.common.heureobservation=Heure d'observation observe.common.homeId= -observe.common.homeIdFAOWormsId= +observe.common.homeIdFAOWormsId=Code 3L / FAO / Worms observe.common.hookPosition= observe.common.hookSize= observe.common.hookType= observe.common.hooksComposition= observe.common.id= observe.common.inconnu= -observe.common.iso2Code= -observe.common.iso3Code= +observe.common.iso2Code=code ISO-2 +observe.common.iso3Code=Code ISO-3 observe.common.itemHorizontalPosition= observe.common.itemVerticalPosition= -observe.common.keelCodeFlotte= -observe.common.label1= -observe.common.label2= -observe.common.label3= -observe.common.label4= -observe.common.label5= -observe.common.label6= -observe.common.label7= -observe.common.label8= -observe.common.landingHarbour= -observe.common.lastName= -observe.common.latitude= -observe.common.length= -observe.common.length.computed.tip= -observe.common.length.inf= -observe.common.length.observed.tip= -observe.common.lengthMeasureType= -observe.common.lengthWeightFormula= +observe.common.keelCodeFlotte=Code quille /Code flotte +observe.common.label1=Libellé anglais +observe.common.label2=Libellé français +observe.common.label3=Libellé espagnol +observe.common.label4=Libellé 4 +observe.common.label5=Libellé 5 +observe.common.label6=Libellé 6 +observe.common.label7=Libellé 7 +observe.common.label8=Libellé 8 +observe.common.landingHarbour=Port d'arrivée +observe.common.lastName=Nom +observe.common.latitude=Latitude +observe.common.length=Longueur hors tout +observe.common.length.computed.tip=La longueur a été calculée +observe.common.length.inf=Longueur (cm inf.) +observe.common.length.observed.tip=La longueur a été observée +observe.common.lengthMeasureType=Type de mensuration +observe.common.lengthWeightFormula=Relation Poids observe.common.lengthWeightParameter= -observe.common.libelles= +observe.common.libelles=Libellés observe.common.lightsticksColor= observe.common.lightsticksType= observe.common.lineType= observe.common.locode= -observe.common.longitude= -observe.common.lowerValueUpperValue= -observe.common.mammalsObservation= +observe.common.longitude=Longitude +observe.common.lowerValueUpperValue=Borne min-max +observe.common.mammalsObservation=Mammifères observe.common.maturityStatus= -observe.common.meanLength= -observe.common.meanLengthComputed.computed.tip= -observe.common.meanLengthComputed.observed.tip= -observe.common.meanValues= -observe.common.meanWeight= -observe.common.meanWeightComputed.computed.tip= -observe.common.meanWeightComputed.observed.tip= -observe.common.measureType= -observe.common.measureType.ld1= -observe.common.measureType.lf= -observe.common.measureType.unknown= -observe.common.minLengthMax= -observe.common.minWeightMax= +observe.common.meanLength=Taille moyenne (en cm) +observe.common.meanLengthComputed.computed.tip=La taille moyenne a été calculée (%s) +observe.common.meanLengthComputed.observed.tip=La taille moyenne a été observée +observe.common.meanValues=Valeurs moyennes +observe.common.meanWeight=Poids moyen (en Kg) +observe.common.meanWeightComputed.computed.tip=Le poids moyen a été calculé (%s) +observe.common.meanWeightComputed.observed.tip=Le poids moyen a été observé +observe.common.measureType=Type de mensuration +observe.common.measureType.ld1=LD1 +observe.common.measureType.lf=LF +observe.common.measureType.unknown=Inconnu +observe.common.minLengthMax=Taille min-max (en cm) +observe.common.minWeightMax=Poids min-max (en Kg) observe.common.mitigationType= observe.common.name= -observe.common.needComment= -observe.common.nextFpaZone= -observe.common.no.balise= +observe.common.needComment=Nécessite un commentaire +observe.common.nextFpaZone=Zone FPA pénétrée +observe.common.no.balise=Aucune balise lue observe.common.nocode= -observe.common.nonCoupSenne= -observe.common.nonTargetCatch= +observe.common.nonCoupSenne=Non coup de senne +observe.common.nonTargetCatch=Faune accessoire conservée ou rejetée observe.common.nonTargetLength= -observe.common.nonTargetObservation= -observe.common.nonTargetSample= +observe.common.nonTargetObservation=Faune associée +observe.common.nonTargetSample=Echantillon faune accessoire observe.common.none= -observe.common.objectFate= -observe.common.objectObservedSpecies= -observe.common.objectOperation= +observe.common.objectFate=Devenir de l'objet +observe.common.objectObservedSpecies=Faune observée +observe.common.objectOperation=Opération sur l'objet observe.common.objectSchoolEstimate= -observe.common.objectType= -observe.common.objectsObservation= -observe.common.observedSystem= -observe.common.observedSystemDistance= -observe.common.observer= +observe.common.objectType=Type d'objet +observe.common.objectsObservation=Objet flottants +observe.common.observedSystem=Système observé +observe.common.observedSystemDistance=Distance système observé (en milles avec 1 décimale) +observe.common.observer=Observateur observe.common.observerLabel= -observe.common.obsolete.entity= -observe.common.ocean= +observe.common.obsolete.entity=Le référentiel %1$s est désactivé. +observe.common.ocean=Océan observe.common.ocean/label1= observe.common.ocean/label2= observe.common.ocean/label3= @@ -899,55 +899,55 @@ observe.common.ocean/label5= observe.common.ocean/label6= observe.common.ocean/label7= observe.common.ocean/label8= -observe.common.oceanForSpecies= +observe.common.oceanForSpecies=Liste des océans observe.common.oldCode3L= -observe.common.operation.resume= -observe.common.organism= -observe.common.ownership= +observe.common.operation.resume=Résumé des opérations +observe.common.organism=Organisme +observe.common.ownership=Appartenance observe.common.person= -observe.common.picturesReferences= -observe.common.power= -observe.common.previousFpaZone= +observe.common.picturesReferences=Référence Photo +observe.common.power=Puissance moteur principal +observe.common.previousFpaZone=Zone FPA quitée observe.common.program= -observe.common.program.observation.value.0= -observe.common.program.observation.value.1= -observe.common.program.observation.value.2= -observe.common.program.observation.value.3= -observe.common.program.observation.value.4= -observe.common.program.observation.value.5= -observe.common.program.observation.value.6= -observe.common.program.observation.value.7= -observe.common.program.observation.value.8= -observe.common.program.observation.value.9= -observe.common.reasonForDiscard= +observe.common.program.observation.value.0=non observé +observe.common.program.observation.value.1=observé +observe.common.program.observation.value.2=valeur 2 non définie +observe.common.program.observation.value.3=valeur 3 non définie +observe.common.program.observation.value.4=valeur 4 non définie +observe.common.program.observation.value.5=valeur 5 non définie +observe.common.program.observation.value.6=valeur 6 non définie +observe.common.program.observation.value.7=valeur 7 non définie +observe.common.program.observation.value.8=valeur 8 non définie +observe.common.program.observation.value.9=valeur 9 non définie +observe.common.reasonForDiscard=Raison rejet observe.common.reasonForNoFishing= observe.common.reasonForNullSet= -observe.common.reportsUrl= -observe.common.resume= +observe.common.reportsUrl=URL de rapport +observe.common.resume=Résumé de la configuration observe.common.route= -observe.common.routes.list= -observe.common.samplesObservation= -observe.common.schoolEstimate= -observe.common.schoolType= -observe.common.scientificLabel= -observe.common.seaSurfaceTemperature= -observe.common.searchMaximum= +observe.common.routes.list=Liste des routes +observe.common.samplesObservation=Mensurations +observe.common.schoolEstimate=Estimation banc +observe.common.schoolType=Type de banc +observe.common.scientificLabel=Libellé scientifique +observe.common.seaSurfaceTemperature=Température surface (°) +observe.common.searchMaximum=Vitesse maximale observe.common.section= -observe.common.select.gps.import.file= -observe.common.select.gps.import.file.tip= -observe.common.select.gps.maxDelay= -observe.common.select.gps.maxDelay.tip= -observe.common.select.gps.maxSpeed= -observe.common.select.gps.maxSpeed.tip= -observe.common.select.report.file= -observe.common.select.report.file.tip= -observe.common.select.validate.context= -observe.common.select.validate.context.tip= -observe.common.select.validate.mode= -observe.common.select.validate.mode.tip= -observe.common.select.validate.scope= -observe.common.select.validate.scope.tip= -observe.common.selected.validators= +observe.common.select.gps.import.file=Fichier à importer +observe.common.select.gps.import.file.tip=Choisir le fichier de trace GPS à importer +observe.common.select.gps.maxDelay=Temps maximum (mn) +observe.common.select.gps.maxDelay.tip=Renseigner le délais maximum autorisée entre 2 points gps (en minutes) +observe.common.select.gps.maxSpeed=Vitesse maximum (nd) +observe.common.select.gps.maxSpeed.tip=Renseigner la vitesse maximum autorisée entre 2 points gps (en noeud) +observe.common.select.report.file=Fichier de définition de reports +observe.common.select.report.file.tip=Choisir le fichier de définition des reports +observe.common.select.validate.context=Contexte de validation +observe.common.select.validate.context.tip=Choisir le context de validation +observe.common.select.validate.mode=Type de données à valider +observe.common.select.validate.mode.tip=Choisir le type de données à valider +observe.common.select.validate.scope=Niveau de validation +observe.common.select.validate.scope.tip=Choisir le ou les niveaux de validation +observe.common.selected.validators=Nombre de validateurs détectés \: %1$s observe.common.sensorBrand= observe.common.sensorDataFormat= observe.common.sensorPosition= @@ -957,59 +957,59 @@ observe.common.setLongline= observe.common.setSeine= observe.common.settingIdentifier= observe.common.settingShape= -observe.common.sex= +observe.common.sex=Sexe observe.common.sizeMeasure= observe.common.sizeMeasureType= -observe.common.species= +observe.common.species=Espèce observe.common.species/scientificLabel= -observe.common.speciesFate= -observe.common.speciesFaune= -observe.common.speciesGroup= +observe.common.speciesFate=Devenir espèce +observe.common.speciesFaune=Espèce de faune +observe.common.speciesGroup=Groupe espèce observe.common.speciesList= -observe.common.speciesStatus= -observe.common.speciesThon= -observe.common.speedRange= -observe.common.startDate= -observe.common.startDateFinProgram= -observe.common.startDateFinValidite= -observe.common.startLogValue= -observe.common.status= -observe.common.step.description= +observe.common.speciesStatus=Statut faune observée +observe.common.speciesThon=Espèce de thon +observe.common.speedRange=Libellé vitesse vent +observe.common.startDate=Début de validité +observe.common.startDateFinProgram=Début - Fin du programme +observe.common.startDateFinValidite=Début - fin de validité +observe.common.startLogValue=Loch du matin (milles) +observe.common.status=Statut +observe.common.step.description=Description de l'étape observe.common.stomacFullness= -observe.common.storage.not.valid= -observe.common.supportVesselName= -observe.common.surroundingActivity= -observe.common.taille= -observe.common.taillePoids.caracteristics= -observe.common.targetCatch= -observe.common.targetDiscarded= -observe.common.targetDiscardsObservation= +observe.common.storage.not.valid=Source de données non configurée +observe.common.supportVesselName=Nom supply +observe.common.surroundingActivity=Activité environnante +observe.common.taille=Taille (cm) +observe.common.taillePoids.caracteristics=Caractéristiques Taille-Poids +observe.common.targetCatch=Capture cible +observe.common.targetDiscarded=Rejet de thon +observe.common.targetDiscardsObservation=Rejets thon observe.common.targetLength= -observe.common.targetSample= -observe.common.targetSampleCapture= +observe.common.targetSample=Echantillon thon rejeté +observe.common.targetSampleCapture=Echantillon thon capturé observe.common.tdr= observe.common.tdrRecord= observe.common.time= -observe.common.topiaCreateDate= -observe.common.topiaId= -observe.common.topiaVersion= -observe.common.totalCount= -observe.common.totalCountComputed.computed.tip= -observe.common.totalCountComputed.observed.tip= -observe.common.totalWeight= +observe.common.topiaCreateDate=Date de création +observe.common.topiaId=Identifiant technique +observe.common.topiaVersion=Version +observe.common.totalCount=Nombre estimé +observe.common.totalCountComputed.computed.tip=Le nombre estimé a été calculé (%s) +observe.common.totalCountComputed.observed.tip=Le nombre estimé a été observé +observe.common.totalWeight=Poids observe.common.tracelineLength= observe.common.transmittingBuoy= -observe.common.transmittingBuoyOperation= -observe.common.transmittingBuoyType= +observe.common.transmittingBuoyOperation=Opération balise +observe.common.transmittingBuoyType=Type de balise observe.common.tripLongline= observe.common.tripSeine= observe.common.tripType= -observe.common.trips.list= -observe.common.typeTransmittingBuoyOperation= -observe.common.undefined= -observe.common.undefined.tip= -observe.common.uri= -observe.common.vessel= +observe.common.trips.list=Liste des marées +observe.common.typeTransmittingBuoyOperation=Type d'opération sur balise +observe.common.undefined=< non défini > +observe.common.undefined.tip=< non défini > +observe.common.uri=URI +observe.common.vessel=Bateau observe.common.vessel/label1= observe.common.vessel/label2= observe.common.vessel/label3= @@ -1019,8 +1019,8 @@ observe.common.vessel/label6= observe.common.vessel/label7= observe.common.vessel/label8= observe.common.vesselActivityLongline= -observe.common.vesselActivitySeine= -observe.common.vesselActivitySeine.comment= +observe.common.vesselActivitySeine=Activité bateau +observe.common.vesselActivitySeine.comment=Seule l'activité %1$s permet de saisir une calée. observe.common.vesselActivitySeine/label1= observe.common.vesselActivitySeine/label2= observe.common.vesselActivitySeine/label3= @@ -1029,386 +1029,390 @@ observe.common.vesselActivitySeine/label5= observe.common.vesselActivitySeine/label6= observe.common.vesselActivitySeine/label7= observe.common.vesselActivitySeine/label8= -observe.common.vesselSizeCategory= -observe.common.vesselSpeed= -observe.common.vesselType= -observe.common.waveHeight= -observe.common.weight= -observe.common.weight.computed.tip= -observe.common.weight.ind= -observe.common.weight.observed.tip= -observe.common.weightCategory= -observe.common.weightLengthFormula= +observe.common.vesselSizeCategory=Catégorie de bateau +observe.common.vesselSpeed=Vitesse bateau (nd) +observe.common.vesselType=Type de pêcherie +observe.common.waveHeight=Libellé Hauteur moyenne vagues +observe.common.weight=Poids (en t) +observe.common.weight.computed.tip=Le poids a été calculé +observe.common.weight.ind=Poids ind. (en Kg) +observe.common.weight.observed.tip=Le poids a été observé +observe.common.weightCategory=Catégorie de poids +observe.common.weightLengthFormula=Relation Taille observe.common.weightMeasure= observe.common.weightMeasureType= -observe.common.well= -observe.common.wind= -observe.common.yearService= -observe.comon.exist.on.remote= -observe.config.category.changeStorage= -observe.config.category.changeStorage.description= -observe.config.category.directories= -observe.config.category.directories.description= -observe.config.category.gps= -observe.config.category.gps.description= -observe.config.category.h2= -observe.config.category.h2.description= -observe.config.category.map= -observe.config.category.map.description= -observe.config.category.observation= -observe.config.category.observation.description= -observe.config.category.obstuna= -observe.config.category.obstuna.description= -observe.config.category.other= -observe.config.category.other.description= -observe.config.category.speciesList.longline= -observe.config.category.speciesList.longline.description= -observe.config.category.speciesList.seine= -observe.config.category.speciesList.seine.description= -observe.config.category.synchro= -observe.config.category.synchro.description= -observe.config.configFileName.description= -observe.config.db.locale= -observe.config.defaultBackupDirectory.description= -observe.config.defaultCreationMode= -observe.config.defaultDataDirectory.description= -observe.config.defaultDbMode= -observe.config.defaultGpsMaxDelay= -observe.config.defaultGpsMaxSpeed= -observe.config.defaultI18nDirectory.description= -observe.config.defaultInitialDbDump.description= -observe.config.defaultLocalDbDirectory.description= +observe.common.well=Cuve +observe.common.wind=Vent Beaufort +observe.common.yearService=Année de mise en service +observe.comon.exist.on.remote=%1$s (déjà existante) +observe.config.category.changeStorage=Source de données +observe.config.category.changeStorage.description=Options de changement de source de données +observe.config.category.directories=Répertoires +observe.config.category.directories.description=Répertoires de l'application +observe.config.category.gps=GPS +observe.config.category.gps.description=Configuration GPS +observe.config.category.h2=Base locale +observe.config.category.h2.description=Configuration base locale +observe.config.category.map=Carte +observe.config.category.map.description=Configuration des fonds à utiliser pour les cartes +observe.config.category.observation=Qualification des observations +observe.config.category.observation.description=Gestion des indicateurs de qualification des programmes +observe.config.category.obstuna=Base distante +observe.config.category.obstuna.description=Configuration base distante +observe.config.category.other=Autre +observe.config.category.other.description=Autres options +observe.config.category.speciesList.longline=Configuration des listes d'espèces (Palangre) +observe.config.category.speciesList.longline.description=Choisir les listes d'espèces à utiliser dans les formulaire d'une maréee de type palangre +observe.config.category.speciesList.seine=Configuration des listes d'espèces (Senne) +observe.config.category.speciesList.seine.description=Choisir les listes d'espèces à utiliser dans les formulaire d'une maréee de type senne +observe.config.category.synchro=Actions sur base +observe.config.category.synchro.description=Configuration actions sur base +observe.config.configFileName.description=Le nom du fichier de configuration +observe.config.db.locale=La langue du référentiel +observe.config.defaultBackupDirectory.description=Répertoire par défaut où sauvegarder les bases locales +observe.config.defaultCreationMode=Le mode de création de base locale par défaut +observe.config.defaultDataDirectory.description=Répertoire par défault des resources utilisateurs de l'application +observe.config.defaultDbMode=Le mode de connexion a créer par défaut +observe.config.defaultGpsMaxDelay=Le count par défaut de minutes maximum entre dexu points gps +observe.config.defaultGpsMaxSpeed=La vitesse maximum par défaut en tre dexu points gps +observe.config.defaultI18nDirectory.description=Répertoire par défault des resources de traduction de l'application +observe.config.defaultInitialDbDump.description=La base embarquée créee lors de le premier import d'une base distante. +observe.config.defaultLocalDbDirectory.description=Le répertoire où est stockée la base locale. observe.config.defaultMapDirectory.description= -observe.config.defaultReportDirectory.description= -observe.config.defaultResourcesDirectory.description= -observe.config.defaultTmpDirectory.description= -observe.config.defaultValidationReportDirectory.description= -observe.config.devMode= -observe.config.h2.can.migrate.description= -observe.config.h2.login.description= -observe.config.h2.password.description= -observe.config.h2.serverPort.description= -observe.config.logConfigurationFile.description= -observe.config.map.background.description= -observe.config.map.layer1.description= -observe.config.map.layer10.description= -observe.config.map.layer2.description= -observe.config.map.layer3.description= -observe.config.map.layer4.description= -observe.config.map.layer5.description= -observe.config.map.layer6.description= -observe.config.map.layer7.description= -observe.config.map.layer8.description= -observe.config.map.layer9.description= -observe.config.map.style.description= -observe.config.observation.activitysDetaillees= -observe.config.observation.fauneAssociee= -observe.config.observation.floatingObject= -observe.config.observation.gleure= -observe.config.observation.mammiferes= -observe.config.observation.mensurations= -observe.config.observation.oiseaux= -observe.config.observation.rejetsThons= -observe.config.obstuna.login.description= -observe.config.obstuna.password.description= -observe.config.obstuna.url.description= -observe.config.obstuna.useSsl.description= -observe.config.pg.can.migrate.description= -observe.config.showMigrationProgression= -observe.config.showMigrationSql= -observe.config.showSql= -observe.config.speciesList.longline.catch= -observe.config.speciesList.longline.encounter= -observe.config.speciesList.seine.nonTargetCatch= -observe.config.speciesList.seine.objectObservedSpecies= -observe.config.speciesList.seine.objectSchoolEstimate= -observe.config.speciesList.seine.schoolEstimate= -observe.config.speciesList.seine.targetCatch= -observe.config.ui.autoPopupNumberEditor= -observe.config.ui.changeSynchroSrc= -observe.config.ui.fullscreen= -observe.config.ui.loadLocalStorage= -observe.config.ui.locale= -observe.config.ui.showNumberEditorButton= -observe.config.ui.showTimeEditorSlider= -observe.config.ui.storeRemoteStorage= -observe.content.mode.create.tip= -observe.content.mode.read.tip= -observe.content.mode.update.tip= -observe.encounter.action.create= -observe.encounter.action.create.tip= -observe.encounter.count= -observe.encounter.distance= -observe.encounter.encounterType= -observe.encounter.species= -observe.encounter.table.count= -observe.encounter.table.count.tip= -observe.encounter.table.distance= -observe.encounter.table.distance.tip= -observe.encounter.table.encouterType= -observe.encounter.table.encouterType.tip= -observe.encounter.table.species= -observe.encounter.table.species.tip= -observe.encounter.title= -observe.entity.message.updating= -observe.error.can.not.create.directory= -observe.error.no.activity.6= -observe.error.open.first.db= -observe.error.speciesList.longline.catch.notFound= -observe.error.speciesList.longline.depredator.notFound= -observe.error.speciesList.longline.encounter.notFound= -observe.error.speciesList.seine.objectObservedSpecies.notFound= -observe.error.speciesList.seine.objectSchoolEstimate.notFound= -observe.error.speciesList.seine.targetCatch.notFound= -observe.error.storage.could.not.backup.unsane.local.db= -observe.error.storage.could.not.load.local.db= -observe.floatingObject.message.creating= -observe.floatingObject.message.updating= -observe.floatingObject.title= -observe.floatingObjectTransmittingBuoyOperation.title= -observe.floatlinesComposition.action.create= -observe.floatlinesComposition.action.create.tip= -observe.floatlinesComposition.length= -observe.floatlinesComposition.lineType= -observe.floatlinesComposition.proportion= -observe.floatlinesComposition.proportionSum= -observe.floatlinesComposition.table.length= -observe.floatlinesComposition.table.length.tip= -observe.floatlinesComposition.table.lineType= -observe.floatlinesComposition.table.lineType.tip= -observe.floatlinesComposition.table.proportion= -observe.floatlinesComposition.table.proportion.tip= -observe.floatlinesComposition.title= -observe.gear.availableGearCaracteristic= -observe.gear.gearCaracteristic= -observe.gear.gearCaracteristicType= -observe.gear.selectedGearCaracteristic= -observe.gear.tab.gearCaracteristic= -observe.gear.tab.general= -observe.gear.unit= -observe.gearUseFeaturesLongline.action.deleteSelectedMeasurement= -observe.gearUseFeaturesLongline.action.deleteSelectedMeasurement.tip= -observe.gearUseFeaturesLongline.comment= -observe.gearUseFeaturesLongline.gear= -observe.gearUseFeaturesLongline.number= -observe.gearUseFeaturesLongline.tab.general= -observe.gearUseFeaturesLongline.tab.measurements= -observe.gearUseFeaturesLongline.table.comment= -observe.gearUseFeaturesLongline.table.comment.tip= -observe.gearUseFeaturesLongline.table.gear= -observe.gearUseFeaturesLongline.table.gear.tip= -observe.gearUseFeaturesLongline.table.gearCaracteristic= -observe.gearUseFeaturesLongline.table.gearCaracteristic.tip= -observe.gearUseFeaturesLongline.table.number= -observe.gearUseFeaturesLongline.table.number.tip= -observe.gearUseFeaturesLongline.table.usedInTrip= -observe.gearUseFeaturesLongline.table.usedInTrip.tip= -observe.gearUseFeaturesLongline.table.value= -observe.gearUseFeaturesLongline.table.value.tip= -observe.gearUseFeaturesLongline.title= -observe.gearUseFeaturesLongline.usedInTrip= -observe.gearUseFeaturesSeine.action.deleteSelectedMeasurement= -observe.gearUseFeaturesSeine.action.deleteSelectedMeasurement.tip= -observe.gearUseFeaturesSeine.comment= -observe.gearUseFeaturesSeine.gear= -observe.gearUseFeaturesSeine.number= -observe.gearUseFeaturesSeine.tab.general= -observe.gearUseFeaturesSeine.tab.measurements= -observe.gearUseFeaturesSeine.table.comment= -observe.gearUseFeaturesSeine.table.comment.tip= -observe.gearUseFeaturesSeine.table.gear= -observe.gearUseFeaturesSeine.table.gear.tip= -observe.gearUseFeaturesSeine.table.gearCaracteristic= -observe.gearUseFeaturesSeine.table.gearCaracteristic.tip= -observe.gearUseFeaturesSeine.table.number= -observe.gearUseFeaturesSeine.table.number.tip= -observe.gearUseFeaturesSeine.table.usedInTrip= -observe.gearUseFeaturesSeine.table.usedInTrip.tip= -observe.gearUseFeaturesSeine.table.value= -observe.gearUseFeaturesSeine.table.value.tip= -observe.gearUseFeaturesSeine.title= -observe.gearUseFeaturesSeine.usedInTrip= -observe.harbour.coordinates= -observe.harbour.locode= -observe.harbour.name= -observe.hooksComposition.action.create= -observe.hooksComposition.action.create.tip= -observe.hooksComposition.hookOffset= -observe.hooksComposition.hookSize= -observe.hooksComposition.hookType= -observe.hooksComposition.proportion= -observe.hooksComposition.proportionSum= -observe.hooksComposition.table.hookOffset= -observe.hooksComposition.table.hookOffset.tip= -observe.hooksComposition.table.hookSize= -observe.hooksComposition.table.hookSize.tip= -observe.hooksComposition.table.hookType= -observe.hooksComposition.table.hookType.tip= -observe.hooksComposition.table.proportion= -observe.hooksComposition.table.proportion.tip= -observe.hooksComposition.title= -observe.info.selected.validators= -observe.info.validation.credentials= -observe.init.local.db.detected= -observe.init.no.initial.dump.detected= -observe.init.no.local.db.detected= -observe.init.storage.done= -observe.label.coefficients.info= -observe.label.lengthWeightFormula.info= -observe.label.usage.data.title= -observe.label.usage.referentiel.title= -observe.label.weightLengthFormula.info= -observe.lengthWeightParameter.tab.general= -observe.lengthWeightParameter.tab.other= +observe.config.defaultReportDirectory.description=Répertoire par défaut des rapports de l'application +observe.config.defaultResourcesDirectory.description=Le répertoire où sont stockées les resources de l'utilisateur comme les traductions ou les requètes de rapports. +observe.config.defaultTmpDirectory.description=Le répertoire temporaire par défaut +observe.config.defaultValidationReportDirectory.description=Le répertoire par défaut où sont stockés les rapports de validation +observe.config.devMode=Mode développeur +observe.config.h2.can.migrate.description=Autoriser la mise à jour des bases locales (h2) +observe.config.h2.login.description=Le login h2 +observe.config.h2.password.description=Le mot de passe h2 +observe.config.h2.serverPort.description=Port du serveur h2 +observe.config.logConfigurationFile.description=Fichier de configuration des logs +observe.config.map.background.description=Couleur du fond de carte +observe.config.map.layer1.description=Fichier (shapeFiles) du premier calque de la carte +observe.config.map.layer10.description=Fichier (shapeFiles) du dixième calque de la carte +observe.config.map.layer2.description=Fichier (shapeFiles) du deuxième calque de la carte +observe.config.map.layer3.description=Fichier (shapeFiles) du troisième calque de la carte +observe.config.map.layer4.description=Fichier (shapeFiles) du quatrième calque de la carte +observe.config.map.layer5.description=Fichier (shapeFiles) du cinquième calque de la carte +observe.config.map.layer6.description=Fichier (shapeFiles) du sixième calque de la carte +observe.config.map.layer7.description=Fichier (shapeFiles) du septième calque de la carte +observe.config.map.layer8.description=Fichier (shapeFiles) du huitième calque de la carte +observe.config.map.layer9.description=Fichier (shapeFiles) du neuvième calque de la carte +observe.config.map.style.description=Fichier des style à appliquer sur les calques de la carte +observe.config.observation.activitysDetaillees=Observation des activités détaillées +observe.config.observation.fauneAssociee=Observation des Faunes associées +observe.config.observation.floatingObject=Observation des objets flottants +observe.config.observation.gleure=Observation des gleures +observe.config.observation.mammiferes=Observation des mammifères +observe.config.observation.mensurations=Observation des mensurations +observe.config.observation.oiseaux=Observation des oiseaux +observe.config.observation.rejetsThons=Observation des rejets thon +observe.config.obstuna.login.description=Le nom d'utilisateur pour se connecter à la base Obstuna +observe.config.obstuna.password.description=Le mote de passe pour se connecter à la base Obstuna +observe.config.obstuna.url.description=L'url de connexion à la base Obstuna +observe.config.obstuna.useSsl.description=Drapeau pour permettre l'utilisation du mode ssl pour la connexion à Obstuna +observe.config.pg.can.migrate.description=Autoriser la mise à jour des bases distantes (il faut être propriétaire de la base) +observe.config.server.dataBaseName.description= +observe.config.server.login.description= +observe.config.server.password.description= +observe.config.server.url.description= +observe.config.showMigrationProgression=Affichier dans les logs la progression de la mise à jour d'une base +observe.config.showMigrationSql=Afficher dans les logs les requêtes jouées lors de la mise à jour d'une base +observe.config.showSql=Afficher dans les logs toutes les requêtes sql exéts +observe.config.speciesList.longline.catch=Espèces pour les captures - TDR +observe.config.speciesList.longline.encounter=Espèces pour les rencontre +observe.config.speciesList.seine.nonTargetCatch=Espèces pour les captures non cible +observe.config.speciesList.seine.objectObservedSpecies=Espèces pour les espèces non cible observées +observe.config.speciesList.seine.objectSchoolEstimate=Espèces pour les estimations banc objet +observe.config.speciesList.seine.schoolEstimate=Espèces pour les estimations +observe.config.speciesList.seine.targetCatch=Espèces pour les captures cible +observe.config.ui.autoPopupNumberEditor=Pour afficher automatiquement l'éditeur numérique lors de l'édition d'un count +observe.config.ui.changeSynchroSrc=Pour autoriser la sélection de la base source dans les opérations sur base +observe.config.ui.fullscreen=Pour afficher l'application en mode pleine écran +observe.config.ui.loadLocalStorage=Charger la base locale au démarrage de l'application +observe.config.ui.locale=Langue utilisée par l'application (fr_FR, en_GB ou es_ES) +observe.config.ui.showNumberEditorButton=Pour afficher le bouton qui permet d'utiliser l'éditeur numérique à gauche de chaque champs numérique +observe.config.ui.showTimeEditorSlider=Pour afficher la réglette d'édition des heures +observe.config.ui.storeRemoteStorage=Pour activer la sauvegarde de la configuration de la source distante +observe.content.mode.create.tip=L'objet est en cours de création +observe.content.mode.read.tip=L'objet n'est pas éditable +observe.content.mode.update.tip=L'objet est en cours d'édition +observe.encounter.action.create=Insérer cette rencontre +observe.encounter.action.create.tip=Insérer cette rencontre +observe.encounter.count=Nombre +observe.encounter.distance=Distance (m) +observe.encounter.encounterType=Type +observe.encounter.species=Espèce +observe.encounter.table.count=Nombre +observe.encounter.table.count.tip=Nombre +observe.encounter.table.distance=Distance (m) +observe.encounter.table.distance.tip=Distance (m) +observe.encounter.table.encouterType=Type +observe.encounter.table.encouterType.tip=Type de la rencontre +observe.encounter.table.species=Espèce +observe.encounter.table.species.tip=Espèce rencontrée +observe.encounter.title=Rencontres +observe.entity.message.updating=L'objet '%1$s' est en cours de modification. +observe.error.can.not.create.directory=Création du répertoire %1$s impossible\! +observe.error.no.activity.6=L'activité de type 6 n'a pas été trouvée en base. +observe.error.open.first.db=La base est en cours d'utilisation par une autre application.\nVeuillez fermer l'application H2 et réessayer. +observe.error.speciesList.longline.catch.notFound=Impossible de charger la liste d'espèces.\nVérifier dans la configuration (Onglet Configuration des listes d'espèces (Palangre) > speciesList.longline.catch) que la liste d'espèces est bien renseignée. +observe.error.speciesList.longline.depredator.notFound=Impossible de charger la liste d'espèces.\nVérifier dans la configuration (Onglet Configuration des listes d'espèces (Palangre) > speciesList.longline.depredator) que la liste d'espèces est bien renseignée. +observe.error.speciesList.longline.encounter.notFound=Impossible de charger la liste d'espèces.\nVérifier dans la configuration (Onglet Configuration des listes d'espèces (Palangre) > speciesList.longline.encounter) que la liste d'espèces est bien renseignée. +observe.error.speciesList.seine.objectObservedSpecies.notFound=Impossible de charger la liste d'espèces.\nVérifier dans la configuration (Onglet Configuration des listes d'espèces (Senne) > speciesList.seine.objectObservedSpecies) que la liste d'espèces est bien renseignée. +observe.error.speciesList.seine.objectSchoolEstimate.notFound=Impossible de charger la liste d'espèces.\nVérifier dans la configuration (Onglet Configuration des listes d'espèces (Senne) > speciesList.seine.objectSchoolEstimate) que la liste d'espèces est bien renseignée. +observe.error.speciesList.seine.targetCatch.notFound=Impossible de charger la liste d'espèces.\nVérifier dans la configuration (Onglet Configuration des listes d'espèces (Senne) > speciesList.seine.targetCatch) que la liste d'espèces est bien renseignée. +observe.error.storage.could.not.backup.unsane.local.db=Impossible d'enregistrer une base non endommagée +observe.error.storage.could.not.load.local.db=Impossible d'ouvrir la base locale pour la raison suivante \: %s +observe.floatingObject.message.creating=L'objet flottant est en cours de création. +observe.floatingObject.message.updating=L'objet flottant est en cours de modification. +observe.floatingObject.title=Objet flottant +observe.floatingObjectTransmittingBuoyOperation.title=Opération sur balises +observe.floatlinesComposition.action.create=Insérer cet orin +observe.floatlinesComposition.action.create.tip=Insérer cet orin +observe.floatlinesComposition.length=Longueur +observe.floatlinesComposition.lineType=Type +observe.floatlinesComposition.proportion=Proportion (%) +observe.floatlinesComposition.proportionSum=Somme des proportions d'orins (%) +observe.floatlinesComposition.table.length=Longueur (m) +observe.floatlinesComposition.table.length.tip=Longueur (m) +observe.floatlinesComposition.table.lineType=Type +observe.floatlinesComposition.table.lineType.tip=Type +observe.floatlinesComposition.table.proportion=Proportion (%) +observe.floatlinesComposition.table.proportion.tip=Proportion (%) +observe.floatlinesComposition.title=Composition des orins +observe.gear.availableGearCaracteristic=Caractéristiques disponibles +observe.gear.gearCaracteristic=Caractéristiques +observe.gear.gearCaracteristicType=Type de caractéristique +observe.gear.selectedGearCaracteristic=Caractéristiques utilisées +observe.gear.tab.gearCaracteristic=Caractéristiques de l'équipement +observe.gear.tab.general=Caractéristiques générales +observe.gear.unit=Unité +observe.gearUseFeaturesLongline.action.deleteSelectedMeasurement=Supprimer +observe.gearUseFeaturesLongline.action.deleteSelectedMeasurement.tip=Supprimer la caractéristique +observe.gearUseFeaturesLongline.comment=Commentaire +observe.gearUseFeaturesLongline.gear=Équipement +observe.gearUseFeaturesLongline.number=Nombre +observe.gearUseFeaturesLongline.tab.general=Définition +observe.gearUseFeaturesLongline.tab.measurements=Caractéristiques +observe.gearUseFeaturesLongline.table.comment=Commentaire +observe.gearUseFeaturesLongline.table.comment.tip=Commentaire +observe.gearUseFeaturesLongline.table.gear=Équipement +observe.gearUseFeaturesLongline.table.gear.tip=Équipement +observe.gearUseFeaturesLongline.table.gearCaracteristic=Caractéristique +observe.gearUseFeaturesLongline.table.gearCaracteristic.tip=Caractéristique +observe.gearUseFeaturesLongline.table.number=Nombre +observe.gearUseFeaturesLongline.table.number.tip=Nombre +observe.gearUseFeaturesLongline.table.usedInTrip=Utilisé +observe.gearUseFeaturesLongline.table.usedInTrip.tip=Utilisé dans la marée +observe.gearUseFeaturesLongline.table.value=Valeur +observe.gearUseFeaturesLongline.table.value.tip=Valeur +observe.gearUseFeaturesLongline.title=Équipements +observe.gearUseFeaturesLongline.usedInTrip=Utilisé dans la marée +observe.gearUseFeaturesSeine.action.deleteSelectedMeasurement=Supprimer +observe.gearUseFeaturesSeine.action.deleteSelectedMeasurement.tip=Supprimer la caractéristique +observe.gearUseFeaturesSeine.comment=Commentaire +observe.gearUseFeaturesSeine.gear=Équipement +observe.gearUseFeaturesSeine.number=Nombre +observe.gearUseFeaturesSeine.tab.general=Définition +observe.gearUseFeaturesSeine.tab.measurements=Caractéristiques +observe.gearUseFeaturesSeine.table.comment=Commentaire +observe.gearUseFeaturesSeine.table.comment.tip=Commentaire +observe.gearUseFeaturesSeine.table.gear=Équipement +observe.gearUseFeaturesSeine.table.gear.tip=Équipement +observe.gearUseFeaturesSeine.table.gearCaracteristic=Caractéristique +observe.gearUseFeaturesSeine.table.gearCaracteristic.tip=Caractéristique +observe.gearUseFeaturesSeine.table.number=Nombre +observe.gearUseFeaturesSeine.table.number.tip=Nombre +observe.gearUseFeaturesSeine.table.usedInTrip=Utilisé +observe.gearUseFeaturesSeine.table.usedInTrip.tip=Utilisé dans la marée +observe.gearUseFeaturesSeine.table.value=Valeur +observe.gearUseFeaturesSeine.table.value.tip=Valeur +observe.gearUseFeaturesSeine.title=Équipements +observe.gearUseFeaturesSeine.usedInTrip=Utilisé dans la marée +observe.harbour.coordinates=Nom +observe.harbour.locode=Locode +observe.harbour.name=Nom +observe.hooksComposition.action.create=Inserer cet hameçon +observe.hooksComposition.action.create.tip=Inserer cet hameçon +observe.hooksComposition.hookOffset=Offset +observe.hooksComposition.hookSize=Taille +observe.hooksComposition.hookType=Type +observe.hooksComposition.proportion=Proportion (%) +observe.hooksComposition.proportionSum=Somme des proportions d'hameçons (%) +observe.hooksComposition.table.hookOffset=Offset (°) +observe.hooksComposition.table.hookOffset.tip=Offset (°) +observe.hooksComposition.table.hookSize=Taille +observe.hooksComposition.table.hookSize.tip=Taille +observe.hooksComposition.table.hookType=Type +observe.hooksComposition.table.hookType.tip=Type +observe.hooksComposition.table.proportion=Proportion (%) +observe.hooksComposition.table.proportion.tip=Proportion (%) +observe.hooksComposition.title=Composition des hameçons +observe.info.selected.validators=Il faut au moins un validateur sélectionné pour continuer. +observe.info.validation.credentials=Pour valider le référentiel (resp. les données), vous devez posséder les droits en lecture-écriture correspondants. +observe.init.local.db.detected=%1$s détectée. +observe.init.no.initial.dump.detected=Base embarquée %1$s non détectée. +observe.init.no.local.db.detected=Base locale %1$s non détectée. +observe.init.storage.done=Initialisation du service de persistance terminé. +observe.label.coefficients.info=Les coefficients des relations sont de la forme nom\=valeur et sont séparé par des \: (exemple \: a\=1\:b\=2\:c\=3) +observe.label.lengthWeightFormula.info=La relation poids permet de calculer le poids à partir de la taille, elle doit contenir la variable L +observe.label.usage.data.title=Donnée '%1$s' (%2$d occurrences) +observe.label.usage.referentiel.title=Référentiel '%1$s' (%2$d occurrences) +observe.label.weightLengthFormula.info=La relation taille permet de calculer la taille à partir du poids, elle doit contenir la variable P +observe.lengthWeightParameter.tab.general=Caractéristiques générales +observe.lengthWeightParameter.tab.other=Autres caractéristiques observe.list.HookSize= observe.list.HookType= -observe.list.baitHaulingStatus= -observe.list.baitSettingStatus= -observe.list.baitType= -observe.list.catchFateLongline= -observe.list.country= -observe.list.detectionMode= -observe.list.encounterType= -observe.list.fpaZone= -observe.list.gear= -observe.list.gearCaracteristic= -observe.list.gearCaracteristicType= -observe.list.harbour= -observe.list.healthness= -observe.list.hookPosition= -observe.list.hookSize= -observe.list.hookType= -observe.list.itemHorizontalPosition= -observe.list.itemVerticalPosition= -observe.list.lengthWeightParameter= -observe.list.lightsticksColor= -observe.list.lightsticksType= -observe.list.lineType= -observe.list.maturityStatus= -observe.list.mitigationType= -observe.list.objectFate= -observe.list.objectOperation= -observe.list.objectType= -observe.list.observedSystem= -observe.list.ocean= -observe.list.operation= -observe.list.organism= -observe.list.person= -observe.list.program= -observe.list.reasonForDiscard= -observe.list.reasonForNoFishing= -observe.list.reasonForNullSet= -observe.list.sensorBrand= -observe.list.sensorDataFormat= -observe.list.sensorType= -observe.list.settingShape= -observe.list.sex= -observe.list.sizeMeasureType= -observe.list.speciesFate= -observe.list.speciesFaune= -observe.list.speciesGroupSpecies= -observe.list.speciesList= -observe.list.speciesStatus= -observe.list.stomacFullness= -observe.list.surroundingActivity= -observe.list.transmittingBuoyType= -observe.list.tripType= -observe.list.vessel= -observe.list.vesselActivityLongline= -observe.list.vesselActivitySeine= -observe.list.vesselSizeCategory= -observe.list.vesselType= -observe.list.weightCategory= -observe.list.weightMeasureType= -observe.list.wind= -observe.longlineDetailComposition.action.deleteAllSections= -observe.longlineDetailComposition.action.deleteAllSections.tip= -observe.longlineDetailComposition.action.deleteSelectedBasket= -observe.longlineDetailComposition.action.deleteSelectedBasket.tip= -observe.longlineDetailComposition.action.deleteSelectedBranchline= -observe.longlineDetailComposition.action.deleteSelectedBranchline.tip= -observe.longlineDetailComposition.action.deleteSelectedSection= -observe.longlineDetailComposition.action.deleteSelectedSection.tip= -observe.longlineDetailComposition.action.deleteSelectedSectionTemplate= -observe.longlineDetailComposition.action.deleteSelectedSectionTemplate.tip= -observe.longlineDetailComposition.action.generateAllSections= -observe.longlineDetailComposition.action.generateAllSections.tip= -observe.longlineDetailComposition.action.insertAfterSelectedBasket= -observe.longlineDetailComposition.action.insertAfterSelectedBasket.tip= -observe.longlineDetailComposition.action.insertAfterSelectedBranchline= -observe.longlineDetailComposition.action.insertAfterSelectedBranchline.tip= -observe.longlineDetailComposition.action.insertAfterSelectedSection= -observe.longlineDetailComposition.action.insertAfterSelectedSection.tip= -observe.longlineDetailComposition.action.insertBeforeSelectedBasket= -observe.longlineDetailComposition.action.insertBeforeSelectedBasket.tip= -observe.longlineDetailComposition.action.insertBeforeSelectedBranchline= -observe.longlineDetailComposition.action.insertBeforeSelectedBranchline.tip= -observe.longlineDetailComposition.action.insertBeforeSelectedSection= -observe.longlineDetailComposition.action.insertBeforeSelectedSection.tip= -observe.longlineDetailComposition.baskets= -observe.longlineDetailComposition.basketsTable.floatline1Length= -observe.longlineDetailComposition.basketsTable.floatline1Length.tip= -observe.longlineDetailComposition.basketsTable.floatline2Length= -observe.longlineDetailComposition.basketsTable.floatline2Length.tip= -observe.longlineDetailComposition.basketsTable.haulingIdentifier= -observe.longlineDetailComposition.basketsTable.haulingIdentifier.tip= -observe.longlineDetailComposition.basketsTable.settingIdentifier= -observe.longlineDetailComposition.basketsTable.settingIdentifier.tip= -observe.longlineDetailComposition.branchlines= -observe.longlineDetailComposition.branchlinesTable.branchlineLength= -observe.longlineDetailComposition.branchlinesTable.branchlineLength.tip= -observe.longlineDetailComposition.branchlinesTable.haulingIdentifier= -observe.longlineDetailComposition.branchlinesTable.haulingIdentifier.tip= -observe.longlineDetailComposition.branchlinesTable.settingIdentifier= -observe.longlineDetailComposition.branchlinesTable.settingIdentifier.tip= -observe.longlineDetailComposition.branchlinesTable.tracelineLength= -observe.longlineDetailComposition.branchlinesTable.tracelineLength.tip= -observe.longlineDetailComposition.canGenerate= -observe.longlineDetailComposition.firstTemplate.template.notCompilant.basketCount= -observe.longlineDetailComposition.message.updating= -observe.longlineDetailComposition.sectionTemplatesTable.identifier= -observe.longlineDetailComposition.sectionTemplatesTable.identifier.tip= -observe.longlineDetailComposition.sectionTemplatesTable.value= -observe.longlineDetailComposition.sectionTemplatesTable.value.tip= -observe.longlineDetailComposition.sections= -observe.longlineDetailComposition.sectionsTable.haulingIdentifier= -observe.longlineDetailComposition.sectionsTable.haulingIdentifier.tip= -observe.longlineDetailComposition.sectionsTable.settingIdentifier= -observe.longlineDetailComposition.sectionsTable.settingIdentifier.tip= -observe.longlineDetailComposition.sectionsTable.template= -observe.longlineDetailComposition.sectionsTable.template.tip= -observe.longlineDetailComposition.tab.branchlineDetail= -observe.longlineDetailComposition.tab.composition= -observe.longlineDetailComposition.tab.generate= -observe.longlineDetailComposition.title= -observe.longlineDetailComposition.title.section.cant.use.firstTemplate= -observe.longlineGlobalComposition.availableMitigationType= -observe.longlineGlobalComposition.message.updating= -observe.longlineGlobalComposition.mitigationType= -observe.longlineGlobalComposition.selectedMitigationType= -observe.longlineGlobalComposition.tab.baitsComposition= -observe.longlineGlobalComposition.tab.branchlinesComposition= -observe.longlineGlobalComposition.tab.floatlinesComposition= -observe.longlineGlobalComposition.tab.hooksComposition= -observe.longlineGlobalComposition.tab.mitigationType= -observe.longlineGlobalComposition.title= -observe.map.action.exportPng= -observe.map.action.exportPng.tip= -observe.map.action.zoomIt= -observe.map.action.zoomIt.tip= -observe.map.east= -observe.map.export.chooseFile.ok= -observe.map.export.chooseFile.png= -observe.map.export.chooseFile.title= -observe.map.export.overwrite= -observe.map.export.overwrite.cancel= -observe.map.export.overwrite.ok= -observe.map.export.overwrite.title= -observe.map.export.success= -observe.map.legend.hauling= -observe.map.legend.setting= -observe.map.legend.tripBetweenTwoDays= -observe.map.legend.tripDay= +observe.list.baitHaulingStatus=Liste des statuts de l'appât au virage enregistrés +observe.list.baitSettingStatus=Liste des statuts de l'appât au filage enregistrés +observe.list.baitType=Liste des types d'appât enregistrés +observe.list.catchFateLongline=Liste des devenirs capture enregistrés +observe.list.country=Liste des pays enregistrés +observe.list.detectionMode=Liste des modes de détection enregistrés +observe.list.encounterType=Liste des types de rencontre enregistrés +observe.list.fpaZone=Liste des zones FPA enregistrées +observe.list.gear=Liste des équipements enregistrées +observe.list.gearCaracteristic=Liste des caractéristiques d'équipement enregistrées +observe.list.gearCaracteristicType=Liste des types de caractéristique enregistrés +observe.list.harbour=Liste des ports enregistrés +observe.list.healthness=Liste des états de santé enregistrés +observe.list.hookPosition=Liste des positions d'hameçon enregistrées +observe.list.hookSize=Liste des tailles d'hameçon enregistrées +observe.list.hookType=Liste des types d'hameçon enregistrées +observe.list.itemHorizontalPosition=Liste des localisations de l'élément sur la ligne mère enregistrées +observe.list.itemVerticalPosition=Liste des localisations de l'élément sur l'avançon enregistrées +observe.list.lengthWeightParameter=Liste des paramétrages taille-poids thons +observe.list.lightsticksColor=Liste des couleurs de cyalumes enregistrées +observe.list.lightsticksType=Liste des types de cyalumes enregistrés +observe.list.lineType=Liste des types de ligne enregistrés +observe.list.maturityStatus=Liste des maturités enregistrées +observe.list.mitigationType=Listes des types de mesure d'atténuation enregistrés +observe.list.objectFate=Liste des devenirs objet enregistrés +observe.list.objectOperation=Liste des opérations objet enregistrées +observe.list.objectType=Liste des types d'opération enregistrés +observe.list.observedSystem=Liste des systèmes observés enregistrés +observe.list.ocean=Liste des océans enregistrés +observe.list.operation=Liste des opérations sur balise enregistrées +observe.list.organism=Liste des organismes enregistrés +observe.list.person=Liste des personnes enregistrés +observe.list.program=Liste des programmes enregistrés +observe.list.reasonForDiscard=Liste des raisons de rejet enregistrées +observe.list.reasonForNoFishing=Liste des non coup de senne enregistrées +observe.list.reasonForNullSet=Liste des causes coup nul enregistrées +observe.list.sensorBrand=Liste des marques de capteur enregistrées +observe.list.sensorDataFormat=Liste des formats de données de capteur enregistrés +observe.list.sensorType=Liste des types de capteur enregistrés +observe.list.settingShape=Liste des formes au filage enregistrées +observe.list.sex=Liste des sexes enregistrés +observe.list.sizeMeasureType=Liste des types de mesure de taille enregistrés +observe.list.speciesFate=Liste des devenirs de faune enregistrés +observe.list.speciesFaune=[devrait s'appeler speciesNonTarget ou nonTargetSpecies] +observe.list.speciesGroupSpecies=Liste des groupes d'espèce de faune enregistrés +observe.list.speciesList=Liste des listes de favoris d'espèces enregistrées +observe.list.speciesStatus=Liste des statuts d'espèce enregistrés +observe.list.stomacFullness=Liste des niveaux de remplissage de l'estomac enregistrés +observe.list.surroundingActivity=Liste des activités environnantes +observe.list.transmittingBuoyType=Liste des types de balise enregistrées +observe.list.tripType=Liste des types de marée enregistrés +observe.list.vessel=Liste des bateaux enregistrés +observe.list.vesselActivityLongline=Liste des activités bateau enregistrées +observe.list.vesselActivitySeine=Lise des activités bateau enregistrées +observe.list.vesselSizeCategory=Liste des catégories de bateaux enregistrées +observe.list.vesselType=Liste des types de bateaux enregistrés +observe.list.weightCategory=Liste des catégories poids enregistrées +observe.list.weightMeasureType=Liste des types de mesure de poids enregistrés +observe.list.wind=Liste des vents Beaufort enregistrés +observe.longlineDetailComposition.action.deleteAllSections=Tout supprimer +observe.longlineDetailComposition.action.deleteAllSections.tip=Supprimer toutes les section - paniers et avançons +observe.longlineDetailComposition.action.deleteSelectedBasket=Supprimer +observe.longlineDetailComposition.action.deleteSelectedBasket.tip=Supprimer le panier sélectionné +observe.longlineDetailComposition.action.deleteSelectedBranchline=Supprimer +observe.longlineDetailComposition.action.deleteSelectedBranchline.tip=Supprimer l'avançon sélectionné +observe.longlineDetailComposition.action.deleteSelectedSection=Supprimer +observe.longlineDetailComposition.action.deleteSelectedSection.tip=Supprimer la section sélectionnée +observe.longlineDetailComposition.action.deleteSelectedSectionTemplate=Supprimer +observe.longlineDetailComposition.action.deleteSelectedSectionTemplate.tip=Supprimer la template sélectionnée +observe.longlineDetailComposition.action.generateAllSections=Tout générer +observe.longlineDetailComposition.action.generateAllSections.tip=Générer toutes les sections - paniers et avançons +observe.longlineDetailComposition.action.insertAfterSelectedBasket=Insérer après +observe.longlineDetailComposition.action.insertAfterSelectedBasket.tip=Insérer après le panier sélectionné +observe.longlineDetailComposition.action.insertAfterSelectedBranchline=Insérer après +observe.longlineDetailComposition.action.insertAfterSelectedBranchline.tip=Insérer après l'avançon sélectionné +observe.longlineDetailComposition.action.insertAfterSelectedSection=Insérer après +observe.longlineDetailComposition.action.insertAfterSelectedSection.tip=Insérer après la section sélectionnée +observe.longlineDetailComposition.action.insertBeforeSelectedBasket=Insérer avant +observe.longlineDetailComposition.action.insertBeforeSelectedBasket.tip=Insérer avant le panier sélectionné +observe.longlineDetailComposition.action.insertBeforeSelectedBranchline=Insérer avant +observe.longlineDetailComposition.action.insertBeforeSelectedBranchline.tip=Insérer avant l'avançon sélectionné +observe.longlineDetailComposition.action.insertBeforeSelectedSection=Insérer avant +observe.longlineDetailComposition.action.insertBeforeSelectedSection.tip=Insérer avant la section sélectionnée +observe.longlineDetailComposition.baskets=Paniers +observe.longlineDetailComposition.basketsTable.floatline1Length=Orin 1 (m) +observe.longlineDetailComposition.basketsTable.floatline1Length.tip=Longueur Orin 1 (m) +observe.longlineDetailComposition.basketsTable.floatline2Length=Orin 2 (m) +observe.longlineDetailComposition.basketsTable.floatline2Length.tip=Longueur Orin 1 (m) +observe.longlineDetailComposition.basketsTable.haulingIdentifier=Id Virage +observe.longlineDetailComposition.basketsTable.haulingIdentifier.tip=Identifiant Virage +observe.longlineDetailComposition.basketsTable.settingIdentifier=Id Filage +observe.longlineDetailComposition.basketsTable.settingIdentifier.tip=Identifiant Filage +observe.longlineDetailComposition.branchlines=Avançons +observe.longlineDetailComposition.branchlinesTable.branchlineLength=Avançon (m) +observe.longlineDetailComposition.branchlinesTable.branchlineLength.tip=Longueur Avançon (m) +observe.longlineDetailComposition.branchlinesTable.haulingIdentifier=Id Virage +observe.longlineDetailComposition.branchlinesTable.haulingIdentifier.tip=Identifiant Virage +observe.longlineDetailComposition.branchlinesTable.settingIdentifier=Id Filage +observe.longlineDetailComposition.branchlinesTable.settingIdentifier.tip=Identifiant Filage +observe.longlineDetailComposition.branchlinesTable.tracelineLength=Partie basse (m) +observe.longlineDetailComposition.branchlinesTable.tracelineLength.tip=Longueur basse (m) +observe.longlineDetailComposition.canGenerate=Autoriser la génération +observe.longlineDetailComposition.firstTemplate.template.notCompilant.basketCount=La template à utiliser %s n'est pas compatible avec le nombre de paniers par section (%s) +observe.longlineDetailComposition.message.updating=Composition détaillée de la palangre en cours de modification +observe.longlineDetailComposition.sectionTemplatesTable.identifier=Identifiant +observe.longlineDetailComposition.sectionTemplatesTable.identifier.tip=Identifiant +observe.longlineDetailComposition.sectionTemplatesTable.value=Template +observe.longlineDetailComposition.sectionTemplatesTable.value.tip=Template +observe.longlineDetailComposition.sections=Sections +observe.longlineDetailComposition.sectionsTable.haulingIdentifier=Id Virage +observe.longlineDetailComposition.sectionsTable.haulingIdentifier.tip=Identifiant Virage +observe.longlineDetailComposition.sectionsTable.settingIdentifier=Id Filage +observe.longlineDetailComposition.sectionsTable.settingIdentifier.tip=Identifiant Filage +observe.longlineDetailComposition.sectionsTable.template=Template +observe.longlineDetailComposition.sectionsTable.template.tip=Template +observe.longlineDetailComposition.tab.branchlineDetail=Détail avançon +observe.longlineDetailComposition.tab.composition=Composition +observe.longlineDetailComposition.tab.generate=Définition des modèles +observe.longlineDetailComposition.title=Schéma de palangre +observe.longlineDetailComposition.title.section.cant.use.firstTemplate=Impossible d'utiliser le premier modèle lors de la génération +observe.longlineGlobalComposition.availableMitigationType=Atténuations disponibles +observe.longlineGlobalComposition.message.updating=Composition globale de la palangre en cours de modification +observe.longlineGlobalComposition.mitigationType=Atténuations +observe.longlineGlobalComposition.selectedMitigationType=Atténuations sélectionnées +observe.longlineGlobalComposition.tab.baitsComposition=Appâts +observe.longlineGlobalComposition.tab.branchlinesComposition=Avançons +observe.longlineGlobalComposition.tab.floatlinesComposition=Orins +observe.longlineGlobalComposition.tab.hooksComposition=Hameçons +observe.longlineGlobalComposition.tab.mitigationType=Atténuations +observe.longlineGlobalComposition.title=Composition globale de la palangre +observe.map.action.exportPng=Exporter +observe.map.action.exportPng.tip=Exporter la carte au format PNG +observe.map.action.zoomIt=Centrer +observe.map.action.zoomIt.tip=Centrer la carte sur la marée +observe.map.east=Est +observe.map.export.chooseFile.ok=Exporter +observe.map.export.chooseFile.png=image PNG +observe.map.export.chooseFile.title=Exporter la carte +observe.map.export.overwrite=Le fichier existe déjà. Voulez-vous le remplacer ? +observe.map.export.overwrite.cancel=Annuler +observe.map.export.overwrite.ok=Remplacer +observe.map.export.overwrite.title=Attention +observe.map.export.success=Carte exportée (%s) +observe.map.legend.hauling=Virage +observe.map.legend.setting=Filage +observe.map.legend.tripBetweenTwoDays=Trajet entre deux jours +observe.map.legend.tripDay=Trajet d'une journée observe.map.longLine.activity= observe.map.longLine.activity.hauling.end= observe.map.longLine.activity.hauling.start= @@ -1417,329 +1421,330 @@ observe.map.longLine.activity.setting.end= observe.map.longLine.activity.setting.start= observe.map.longLine.activity.station= observe.map.longLine.seine.harbour= -observe.map.miles= -observe.map.north= +observe.map.miles=milles +observe.map.north=Nord observe.map.seine.activity= observe.map.seine.activity.inHarbour= observe.map.seine.activity.schollType.free= observe.map.seine.activity.schollType.object= observe.map.seine.harbour.departure= observe.map.seine.harbour.landing= -observe.map.south= -observe.map.waitLoading= -observe.map.west= -observe.measurement.delete.message= -observe.menu.actions= -observe.menu.application.locale= -observe.menu.configuration= -observe.menu.configuration.tip= -observe.menu.db.locale= -observe.menu.file= -observe.menu.help= -observe.menu.locale= -observe.menu.navigation= -observe.menu.storage= -observe.message.can.not.write.data= -observe.message.cant.add.echantillonRejetThon= -observe.message.cant.add.echantillonTargetCatch= -observe.message.cant.add.nonTargetSample= -observe.message.consolidate.operation.done= -observe.message.consolidate.save.changes= -observe.message.creating.referentiel= -observe.message.db.closed= -observe.message.db.loaded= -observe.message.db.loading= -observe.message.db.none.loaded= -observe.message.db.none.loaded.tip= -observe.message.delete= -observe.message.delete.directory= -observe.message.delete.new= -observe.message.detected.accepted.interval= -observe.message.detected.rejected.interval= -observe.message.exportData.delete.remote.maree= -observe.message.exportData.not.possible= -observe.message.exportData.operation.needFix= -observe.message.exportData.prepare.data= -observe.message.exportData.replicate.maree= -observe.message.goto.site= -observe.message.h2.server.login= -observe.message.h2.server.password= -observe.message.h2.server.url= -observe.message.help.usage= -observe.message.historical.data= -observe.message.importGPS.apply.point= -observe.message.importGPS.apply.points= -observe.message.importGPS.detect.point= -observe.message.importGPS.detect.points= -observe.message.importGPS.detected.point= -observe.message.importGPS.no.activity.selected= -observe.message.importGPS.no.detected.point= -observe.message.importGPS.no.invalid.interval= -observe.message.importGPS.nothing.to.do= -observe.message.importGPS.operation.needFix= -observe.message.importGPS.prepare.importFile= -observe.message.loaded.tip= -observe.message.need.fin.veille.activity= -observe.message.no.accepted.intervalle.detected= -observe.message.no.activity.detected= -observe.message.no.activity.for.route= -observe.message.no.activity.for.trip= -observe.message.no.local.db.found= -observe.message.no.open.maree.detected= -observe.message.no.report.selected= -observe.message.no.route.detected= -observe.message.no.route.for.maree= -observe.message.no.species.selected= -observe.message.no.trip.for.program= -observe.message.no.usage.for.entity= -observe.message.no.validation.detected= -observe.message.quit.invalid.edit= -observe.message.quit.valid.edit= -observe.message.referentiel.editable= -observe.message.referentiel.home= -observe.message.referentiel.no.editable= -observe.message.save.configuration= -observe.message.select.report= -observe.message.server.info= -observe.message.show.usage.for.delete= -observe.message.show.usage.for.delete2= -observe.message.show.usage.for.desactivated= -observe.message.show.usage.for.desactivated2= -observe.message.show.usage.for.desactivated3= -observe.message.show.usages= -observe.message.synchro.build.diff= -observe.message.synchro.create.temporary.db.to.resolve.obsoletes= -observe.message.synchro.local.modification= -observe.message.synchro.no.local.modification= -observe.message.synchro.no.referentiel.conflict= -observe.message.synchro.obsolete.data.to.duplicate= -observe.message.synchro.operation.canceled= -observe.message.synchro.operation.done= -observe.message.synchro.operation.failed= -observe.message.synchro.operation.needFix= -observe.message.synchro.ref.is.updtodate= -observe.message.synchro.referentiel.was.added= -observe.message.synchro.referentiel.was.modified= -observe.message.synchro.referentiel.was.removed= -observe.message.table.editBean.modified= -observe.message.table.editBean.modified.but.invalid= -observe.message.updating.floatingObject= -observe.message.updating.referentiel= -observe.message.validation.detected= -observe.message.validation.not.save.report= -observe.message.validation.nothing.to.do= -observe.message.validation.operation.done= -observe.message.validation.operation.needFix= -observe.message.validation.prepare.validators= -observe.message.validation.save.report= -observe.message.validation.start.maree= -observe.message.validation.start.referentiel= -observe.message.validation.use.storage= -observe.message.warning.will.be.delete= -observe.navigationMenu.moveTrip= -observe.navigationMenu.noAction= -observe.nonTargetCatch.message.table.will.delete.nonTargetSample= -observe.nonTargetCatch.table.catchWeight= -observe.nonTargetCatch.table.catchWeight.tip= -observe.nonTargetCatch.table.comment= -observe.nonTargetCatch.table.comment.tip= -observe.nonTargetCatch.table.deleteExtraMessage= -observe.nonTargetCatch.table.meanLength= -observe.nonTargetCatch.table.meanLength.tip= -observe.nonTargetCatch.table.meanWeight= -observe.nonTargetCatch.table.meanWeight.tip= -observe.nonTargetCatch.table.reasonForDiscard= -observe.nonTargetCatch.table.reasonForDiscard.tip= -observe.nonTargetCatch.table.speciesFate= -observe.nonTargetCatch.table.speciesFate.tip= -observe.nonTargetCatch.table.speciesFaune= -observe.nonTargetCatch.table.speciesFaune.tip= -observe.nonTargetCatch.table.totalCount= -observe.nonTargetCatch.table.totalCount.tip= -observe.nonTargetSample.table.count= -observe.nonTargetSample.table.count.tip= -observe.nonTargetSample.table.gender= -observe.nonTargetSample.table.gender.tip= -observe.nonTargetSample.table.length= -observe.nonTargetSample.table.length.tip= -observe.nonTargetSample.table.meanWeight= -observe.nonTargetSample.table.meanWeight.tip= -observe.nonTargetSample.table.picturesReferences= -observe.nonTargetSample.table.picturesReferences.tip= -observe.nonTargetSample.table.speciesFaune= -observe.nonTargetSample.table.speciesFaune.tip= -observe.objectObservedSpecies.table.count= -observe.objectObservedSpecies.table.count.tip= -observe.objectObservedSpecies.table.speciesFaune= -observe.objectObservedSpecies.table.speciesFaune.tip= -observe.objectObservedSpecies.table.speciesStatus= -observe.objectObservedSpecies.table.speciesStatus.tip= -observe.obstuna.action.create= -observe.obstuna.action.create.description= -observe.obstuna.action.drop= -observe.obstuna.action.drop.description= -observe.obstuna.action.security= -observe.obstuna.action.security.description= -observe.obstuna.action.update= -observe.obstuna.action.update.description= -observe.person.country= -observe.program.tab.general= -observe.program.tab.observations= -observe.route.message.active.found= -observe.route.message.active.found.for.other.trip= -observe.route.message.creating= -observe.route.message.no.active.found= -observe.route.message.no.active.found.for.other.trip= -observe.route.message.not.open= -observe.route.message.updating= -observe.route.title= -observe.routes.title= -observe.runner.config.loaded= -observe.runner.config.migrate.file= -observe.runner.context.loaded= -observe.runner.copy.default.logConfigurationFile.file= +observe.map.south=Sud +observe.map.waitLoading=< Veuillez patienter pendant le chargement de la carte > +observe.map.west=Ouest +observe.measurement.delete.message=Supprimer la caractéristique sélectionnée +observe.menu.actions=Actions +observe.menu.application.locale=Application +observe.menu.configuration=Configuration +observe.menu.configuration.tip=Menu de configuration +observe.menu.db.locale=Référentiel +observe.menu.file=Fichier +observe.menu.help=Aide +observe.menu.locale=Langues +observe.menu.navigation=Navigation +observe.menu.storage=Source de données +observe.message.can.not.write.data=Vous n'êtes pas autorisé à écrire des données observateurs sur cette source de données. +observe.message.cant.add.echantillonRejetThon=<html><body><strong>Impossible d'ajouter des échantillons de rejet thons</strong>(pas de rejet thon monté sur le pont)</body></html> +observe.message.cant.add.echantillonTargetCatch=<html><body><strong>Impossible d'ajouter des échantillons thons</strong> (pas de capture thon)</body></html> +observe.message.cant.add.nonTargetSample=<html><body><strong>Impossible d'ajouter des échantillons</strong>(pas de rejet faune)</body></html> +observe.message.consolidate.operation.done=Opération de calcul des données terminée à %1$s. +observe.message.consolidate.save.changes=Sauvegarde des modifications sur la(es) %1$s marée(s) modifiée(s). +observe.message.creating.referentiel=L'objet est en cours de création. +observe.message.db.closed=%1$s a été fermé +observe.message.db.loaded=%1$s chargé +observe.message.db.loading=%1$s en cours de chargement +observe.message.db.none.loaded=Aucune source de données chargée +observe.message.db.none.loaded.tip=Aucune source de données chargée... +observe.message.delete=Confirmer la suppression de l'objet \:\n\n '%1$s' - '%2$s'\n +observe.message.delete.directory=Suppresion du répertoire %1$s +observe.message.delete.new=Confirmer la suppression de l'objet \:\n\n '%1$s'\n +observe.message.detected.accepted.interval=Intervalle de point gps acceptable détecté \: %1$s +observe.message.detected.rejected.interval=Intervalle de point gps rejecté détecté \: %1$s +observe.message.exportData.delete.remote.maree=Suppression de la marée (%1$s) du programme (%2$s) de la base distante. +observe.message.exportData.not.possible=L'opération d'export n'est pas possible (voir les messages précédents). +observe.message.exportData.operation.needFix=Veuillez sélectionner les marées à exporter. +observe.message.exportData.prepare.data=Préparation des données à exporter... +observe.message.exportData.replicate.maree=Duplication de la marée (%1$s) du programme (%2$s) vers la base distante. +observe.message.goto.site=Accéder au site d'Observe (%1$s) +observe.message.h2.server.login=Login +observe.message.h2.server.password=Mot de passe +observe.message.h2.server.url=Url d'accès au serveur +observe.message.help.usage=Aide d'ObServe v %1$s +observe.message.historical.data=Donnée historique (peut-être clôturé même si non valide) +observe.message.importGPS.apply.point=Intégration données gps %1$s pour %2$s +observe.message.importGPS.apply.points=Intégration des données gps dans les activités sélectionnées de la marée ouverte +observe.message.importGPS.detect.point=Détection du point gps pour l'activité %1$s +observe.message.importGPS.detect.points=Détection de points gps pour les activités de la marée ouverte +observe.message.importGPS.detected.point=Point gps détecté %1$s +observe.message.importGPS.no.activity.selected=Aucune activité sélectionnée +observe.message.importGPS.no.detected.point=Pas de point gps détecté pour l'activité +observe.message.importGPS.no.invalid.interval=< Aucun intervalle de points non utilisables > +observe.message.importGPS.nothing.to.do=Aucune donnée à importer +observe.message.importGPS.operation.needFix=L'opération d'import GPS requière des corrections +observe.message.importGPS.prepare.importFile=Préparation de l'import GPS \:\n - fichier à utiliser \: %1$s \n - temps maximum \: %2$s\n - vitesse maximum \: %3$s +observe.message.loaded.tip=La %1$s est chargée,\n\nVous pouvez changer de base en cliquant ici. +observe.message.need.fin.veille.activity=Aucune activité de fin de veille enregistrée sur la route à clotûrer.\nVous pouvez \:\n\n\t- Annuler la fermeture et rester sur la route\n\t- Créer l'activité de fin de veille et vous y rendre\n\t- Créer l'activité de fin de veille, la clôturer puis clôturer la route\n\t- Continuer la clôture de la route sans créer cette activité de fin de veille. +observe.message.no.accepted.intervalle.detected=Aucun intervalle de point gps acceptable détecté +observe.message.no.activity.detected=Aucune activité détectée pour la marée ouverte +observe.message.no.activity.for.route=< Aucune activité pour la route courante > +observe.message.no.activity.for.trip=< Aucune activité pour la marée courante > +observe.message.no.local.db.found=La base locale n'existe pas (emplacement %1$s).\n\nVous pouvez à ce stade créer la base locale ou vous connecter à une base distante. +observe.message.no.open.maree.detected=Aucune marée ouverte détectée +observe.message.no.report.selected=< Aucun report sélectionné > +observe.message.no.route.detected=Aucune route détectée sur la marée ouverte +observe.message.no.route.for.maree=< Aucune route pour la marée courante > +observe.message.no.species.selected=Pas d'espèce sélectionnée +observe.message.no.trip.for.program=< Aucune marée pour le programme courant > +observe.message.no.usage.for.entity=Aucune utilisation trouvée. +observe.message.no.validation.detected=Aucun validateur détecté. +observe.message.quit.invalid.edit=Les données ne sont pas valides et ne peuvent pas être sauvées\!\n\nNote\: le fait de continuer annulera toutes les modifications. +observe.message.quit.valid.edit=Les données ont été modifiées et sont valides\! +observe.message.referentiel.editable=Le référentiel est éditable. +observe.message.referentiel.home=< Référentiel > +observe.message.referentiel.no.editable=Vous n'êtes pas autorisé à éditer le référentiel. +observe.message.save.configuration=Sauvegarde de la configuration dans le fichier %1$s +observe.message.select.report=Choisissez une requête +observe.message.server.info=La base locale %1$s est démarrée en mode serveur. +observe.message.show.usage.for.delete=Le référentiel %1$s "%2$s" ne peut pas être supprimé. +observe.message.show.usage.for.delete2=Des objets utilisent actuellement cet entité dont les références sont citées plus bas. +observe.message.show.usage.for.desactivated=Le référentiel %1$s "%2$s" va être désactivé. +observe.message.show.usage.for.desactivated2=Des objets utilisent actuellement cet entité dont les références sont citées plus bas. +observe.message.show.usage.for.desactivated3=Ces objets devront utiliser un autre référentiel (non désactivé) pour pouvoir être mis à jour. +observe.message.show.usages=Listes des utilisations du référentiel %1$s \: '%2$s' +observe.message.synchro.build.diff=Construction du différentiel de référentiel depuis %1$s +observe.message.synchro.create.temporary.db.to.resolve.obsoletes=Des entités obsolètes ont été détectées, création d'une base temporaire pour les résoudre. +observe.message.synchro.local.modification=Des données ont été modifiées et la base locale doit être sauvée. +observe.message.synchro.no.local.modification=Aucune donnée de la base locale n'a été modifiée, sauvegarde non requise. +observe.message.synchro.no.referentiel.conflict=Le référentiel de votre base locale n'est pas à jour (mais aucun conflit détecté). +observe.message.synchro.obsolete.data.to.duplicate=Objet %s à recopier dans la base temporaire. +observe.message.synchro.operation.canceled=L'opération a été annulée +observe.message.synchro.operation.done=Opération terminée le %1$td/%1$tm/%1$tY à %1$tH\:%1$tM\:%1$tS +observe.message.synchro.operation.failed=L'opération a échouée +observe.message.synchro.operation.needFix=L'opération requière des corrections. +observe.message.synchro.ref.is.updtodate=Le référentiel de la base locale est à jour, aucune correction requise. +observe.message.synchro.referentiel.was.added=Des données ont été ajoutées au référentiel distant (%1$d objet(s)) +observe.message.synchro.referentiel.was.modified=Des données ont été modifiées sur le référentiel distant (%1$d objet(s)) +observe.message.synchro.referentiel.was.removed=Des données ont été supprimées du réferentiel distant (%1$d objet(s)) +observe.message.table.editBean.modified=L'entrée en cours d'édition a été modifiée et est valide. +observe.message.table.editBean.modified.but.invalid=L'entrée en cours d'édition a été modifiée, mais n'est pas valide. +observe.message.updating.floatingObject=L'objet flottant est en cours de modification. +observe.message.updating.referentiel=L'objet est en cours de mise à jour. +observe.message.validation.detected=Validateur détecté pour le type %1$s +observe.message.validation.not.save.report=Pas de rapport à sauvegarder. +observe.message.validation.nothing.to.do=Les données sont valides et ne nécessitent pas de correction. +observe.message.validation.operation.done=L'opération de validation terminé le %1$td/%1$tm/%1$tY à %1$tH\:%1$tM\:%1$ts. +observe.message.validation.operation.needFix=Vos données ne sont valides et nécessitent des corrections. +observe.message.validation.prepare.validators=Détection des validateurs +observe.message.validation.save.report=Le rapport de validation a été sauvegardé dans le fichier %1$s +observe.message.validation.start.maree=Validation de la marée '%1$s' (%2$s) +observe.message.validation.start.referentiel=Validation du référentiel de type '%1$s' (%2$s entités) +observe.message.validation.use.storage=La validation sera effectuée sur %1$s +observe.message.warning.will.be.delete=%1$s\n\nAttention, l'export remplacera la marée existante. +observe.model.version= +observe.navigationMenu.moveTrip=Réallocation du programme +observe.navigationMenu.noAction=< Aucune action définie > +observe.nonTargetCatch.message.table.will.delete.nonTargetSample=En confirmant la sauvegarde des objets vont être supprimés\!\n\nLes espèces suivantes ne seront plus utilisables dans des échantillonages \:\n%1$s\nCela entrainera la suppression des échantillonages suivants \:\n%2$s +observe.nonTargetCatch.table.catchWeight=Poids +observe.nonTargetCatch.table.catchWeight.tip=Poids estimé (en t) +observe.nonTargetCatch.table.comment=Com +observe.nonTargetCatch.table.comment.tip=Commentaire +observe.nonTargetCatch.table.deleteExtraMessage=\nLe fait de supprimer une capture de faune peut entrainer la suppression d'échantillonnage(s) sur l'espèce. +observe.nonTargetCatch.table.meanLength=Taille +observe.nonTargetCatch.table.meanLength.tip=Taille moyenne (en cm) +observe.nonTargetCatch.table.meanWeight=Poids moy +observe.nonTargetCatch.table.meanWeight.tip=Poids moyen (en Kg) +observe.nonTargetCatch.table.reasonForDiscard=Raison rejet +observe.nonTargetCatch.table.reasonForDiscard.tip=Raison rejet +observe.nonTargetCatch.table.speciesFate=Devenir +observe.nonTargetCatch.table.speciesFate.tip=Devenir faune +observe.nonTargetCatch.table.speciesFaune=Espèce de faune +observe.nonTargetCatch.table.speciesFaune.tip=Espèce de faune +observe.nonTargetCatch.table.totalCount=Nombre +observe.nonTargetCatch.table.totalCount.tip=Nombre estimé +observe.nonTargetSample.table.count=Effectif +observe.nonTargetSample.table.count.tip=Effectif +observe.nonTargetSample.table.gender=Sex +observe.nonTargetSample.table.gender.tip=Sex +observe.nonTargetSample.table.length=Longueur +observe.nonTargetSample.table.length.tip=Longueur +observe.nonTargetSample.table.meanWeight=Poids ind. +observe.nonTargetSample.table.meanWeight.tip=Poids individuel (en Kg) +observe.nonTargetSample.table.picturesReferences=Ref photo +observe.nonTargetSample.table.picturesReferences.tip=référence photo +observe.nonTargetSample.table.speciesFaune=Espèce faune +observe.nonTargetSample.table.speciesFaune.tip=Espèce faune +observe.objectObservedSpecies.table.count=Nombre +observe.objectObservedSpecies.table.count.tip=Nombre +observe.objectObservedSpecies.table.speciesFaune=Espèce de faune +observe.objectObservedSpecies.table.speciesFaune.tip=Espèce de faune +observe.objectObservedSpecies.table.speciesStatus=Statut Espèce +observe.objectObservedSpecies.table.speciesStatus.tip=Statut Espèce +observe.obstuna.action.create=Création d'obstuna +observe.obstuna.action.create.description=Création d'une nouvelle base distante obstuna +observe.obstuna.action.drop=Destruction d'obstuna +observe.obstuna.action.drop.description=Destruction d'une base distante obstuna +observe.obstuna.action.security=Mise à jour de la sécurité d'obstuna +observe.obstuna.action.security.description=Mise à jour de la sécurité d'une base distante obstuna +observe.obstuna.action.update=Mise à jour d'obstuna +observe.obstuna.action.update.description=Mise à jour d'une base distante obstuna +observe.person.country=Nationalité +observe.program.tab.general=Caractértistiques générales +observe.program.tab.observations=Observations +observe.route.message.active.found=Une route est ouverte. +observe.route.message.active.found.for.other.trip=Une route ouverte existe dans une autre marée. +observe.route.message.creating=La route est en cours de création. +observe.route.message.no.active.found=Aucune route ouverte, vous pouvez soit en créer une nouvelle, soit en réouvrir une. +observe.route.message.no.active.found.for.other.trip=Aucune route ouverte sur la marée ouverte +observe.route.message.not.open=La route courante n'est pas ouverte, aucune modification possible. +observe.route.message.updating=La route est en cours de modification. +observe.route.title=Route +observe.routes.title=Routes +observe.runner.config.loaded=Configuration d'ObServe v. %1$s chargée. +observe.runner.config.migrate.file=Le fichier de configuration %1$s a été déplacée de \n%2$s\nvers\n%3$s +observe.runner.context.loaded=Initialisation du contexte terminée en %1$s. +observe.runner.copy.default.logConfigurationFile.file=Création du fichier de configuration des logs $1. observe.runner.copy.default.map.file= -observe.runner.copy.default.report.file= -observe.runner.copy.default.ui.file= -observe.runner.create.directory= -observe.runner.exists.directory= -observe.runner.i18n.loaded= -observe.runner.init= -observe.runner.load.database= -observe.runner.loaded= -observe.runner.loading.ui.configuration= -observe.runner.quit.withno.ui= -observe.runner.start= -observe.runner.ui.loaded= -observe.runner.user.directories.loaded= -observe.schoolEstimate.table.meanWeight= -observe.schoolEstimate.table.meanWeight.tip= -observe.schoolEstimate.table.speciesThon= -observe.schoolEstimate.table.speciesThon.tip= -observe.schoolEstimate.table.weight= -observe.schoolEstimate.table.weight.tip= -observe.section.cant.delete.message= -observe.section.cant.delete.title= -observe.sectionTemplate.delete.message= -observe.sections.delete.message= -observe.security.referentiel= -observe.security.referentiel.tip= -observe.security.role= -observe.security.role.tip= -observe.security.technicien= -observe.security.technicien.tip= -observe.security.unused= -observe.security.unused.tip= -observe.security.utilisateur= -observe.security.utilisateur.tip= -observe.sensorUsed.action.create= -observe.sensorUsed.action.create.tip= -observe.sensorUsed.action.reset.dataLocation.tip= -observe.sensorUsed.action.reset.sensorSerialNo.tip= -observe.sensorUsed.data= -observe.sensorUsed.dataLocation= -observe.sensorUsed.dataLocation.tip= -observe.sensorUsed.delete.data.message= -observe.sensorUsed.deleteData= -observe.sensorUsed.deleteData.tip= -observe.sensorUsed.exportData= -observe.sensorUsed.exportData.tip= -observe.sensorUsed.importData= -observe.sensorUsed.importData.tip= -observe.sensorUsed.message.data.exported= -observe.sensorUsed.message.data.imported= -observe.sensorUsed.sensorBrand= -observe.sensorUsed.sensorDataFormat= -observe.sensorUsed.sensorSerialNo= -observe.sensorUsed.sensorType= -observe.sensorUsed.table.data= -observe.sensorUsed.table.data.tip= -observe.sensorUsed.table.dataLocation= -observe.sensorUsed.table.dataLocation.tip= -observe.sensorUsed.table.sensorBrand= -observe.sensorUsed.table.sensorBrand.tip= -observe.sensorUsed.table.sensorDataFormat= -observe.sensorUsed.table.sensorDataFormat.tip= -observe.sensorUsed.table.sensorSerialNo= -observe.sensorUsed.table.sensorSerialNo.tip= -observe.sensorUsed.table.sensorType= -observe.sensorUsed.table.sensorType.tip= -observe.sensorUsed.title= -observe.setLongline.action.reset.homeId.tip= -observe.setLongline.basketsPerSectionCount= -observe.setLongline.branchlinesPerBasketCount= -observe.setLongline.haulingBreaks= -observe.setLongline.haulingDirectionSameAsSetting= -observe.setLongline.haulingEndCoordinates= -observe.setLongline.haulingEndTimeStamp= -observe.setLongline.haulingStartCoordinates= -observe.setLongline.haulingStartTimeStamp= -observe.setLongline.homeId= -observe.setLongline.lightsticksColor= -observe.setLongline.lightsticksPerBasketCount= -observe.setLongline.lightsticksType= -observe.setLongline.lineType= -observe.setLongline.maxDepthTargeted= -observe.setLongline.message.creating= -observe.setLongline.message.updating= -observe.setLongline.monitored= -observe.setLongline.number= -observe.setLongline.settingEndCoordinates= -observe.setLongline.settingEndTimeStamp= -observe.setLongline.settingShape= -observe.setLongline.settingStartCoordinates= -observe.setLongline.settingStartTimeStamp= -observe.setLongline.settingVesselSpeed= -observe.setLongline.shooterSpeed= -observe.setLongline.shooterUsed= -observe.setLongline.snapWeight= -observe.setLongline.swivelWeight= -observe.setLongline.tab.hauling= -observe.setLongline.tab.setting= -observe.setLongline.tab.settingCaracteristics= -observe.setLongline.timeBetweenHooks= -observe.setLongline.title= -observe.setLongline.totalBasketsCount= -observe.setLongline.totalHooksCount= -observe.setLongline.totalSectionsCount= -observe.setLongline.weightedSnap= -observe.setLongline.weightedSwivel= -observe.setSeine.currentDirection= -observe.setSeine.currentMeasureDepth= -observe.setSeine.currentSpeed= -observe.setSeine.endPursingTimeStamp= -observe.setSeine.endSetTimeStamp= -observe.setSeine.maxGearDepth= -observe.setSeine.message.creating= +observe.runner.copy.default.report.file=Création du fichier de reports %1$s. +observe.runner.copy.default.ui.file=Création du fichier de cosmétique %1$s. +observe.runner.create.directory=Création du répertoire %1$s +observe.runner.exists.directory=Le répertoire %1$s existe. +observe.runner.i18n.loaded=Service de traduction chargé dans la langue %1$s. +observe.runner.init=Initialisation d'ObServe %1$s %2$s +observe.runner.load.database=Chargement de la source de données +observe.runner.loaded=ObServe v %1$s est chargé +observe.runner.loading.ui.configuration=Chargement du fichier de cosmétique %1$s +observe.runner.quit.withno.ui=Fermeture de l'application sans ouvrir l'interface graphique +observe.runner.start=Démarrage d'ObServe %1$s %2$s +observe.runner.ui.loaded=Initialisation de l'interface graphique terminée. +observe.runner.user.directories.loaded=Le répertoire utilisateur a été initialisé (%1$s). +observe.schoolEstimate.table.meanWeight=Poids moyen (en Kg) +observe.schoolEstimate.table.meanWeight.tip=Poids moyen (en Kg) +observe.schoolEstimate.table.speciesThon=Espèce de thon +observe.schoolEstimate.table.speciesThon.tip=Espèce de thon (ne peut pas être modifié une fois l'estimation crée) +observe.schoolEstimate.table.weight=Poids (en t) +observe.schoolEstimate.table.weight.tip=Poids (en t) +observe.section.cant.delete.message=La section ne peut pas être supprimée car elle est utilisée dans des données. +observe.section.cant.delete.title=Impossible de supprimer la section +observe.sectionTemplate.delete.message=Confirmer la suppression de la template sélectionnée. +observe.sections.delete.message=Confirmer la suppression de toutes les sections. +observe.security.referentiel=Référentiel +observe.security.referentiel.tip=Rôle de lecture seule du référentiel (aucun droit sur les données) +observe.security.role=Rôle +observe.security.role.tip=Nom du rôle de la base +observe.security.technicien=Technicien +observe.security.technicien.tip=Rôle ayant tous les droits sur le référentiel et les données +observe.security.unused=Non utilisé +observe.security.unused.tip=Ne pas utiliser ce rôle +observe.security.utilisateur=Utilisateur +observe.security.utilisateur.tip=Rôle ayant les droits de lecture sur le référentiel et les données +observe.sensorUsed.action.create=Insérer ce capteur +observe.sensorUsed.action.create.tip=Insérer ce capteur +observe.sensorUsed.action.reset.dataLocation.tip=Réinitialiser +observe.sensorUsed.action.reset.sensorSerialNo.tip=Réinitialiser +observe.sensorUsed.data=Fichier de données +observe.sensorUsed.dataLocation=Hébergement +observe.sensorUsed.dataLocation.tip=Hébergement du fichier de données +observe.sensorUsed.delete.data.message=Confirmer la suppression du fichier de données +observe.sensorUsed.deleteData=Supprimer +observe.sensorUsed.deleteData.tip=Supprimer le fichier de données +observe.sensorUsed.exportData=Exporter +observe.sensorUsed.exportData.tip=Exporter le fichier de données enregistré +observe.sensorUsed.importData=Importer +observe.sensorUsed.importData.tip=Importer un fichier de données +observe.sensorUsed.message.data.exported=Le fichier de données a été exporté (%s). +observe.sensorUsed.message.data.imported=Le fichier de données %s a été importé. +observe.sensorUsed.sensorBrand=Marque +observe.sensorUsed.sensorDataFormat=Format de données +observe.sensorUsed.sensorSerialNo=Numéro de série +observe.sensorUsed.sensorType=Type +observe.sensorUsed.table.data=Fichier +observe.sensorUsed.table.data.tip=Fichier de données présent ? +observe.sensorUsed.table.dataLocation=Hébergement +observe.sensorUsed.table.dataLocation.tip=Hébergement du fichier de données +observe.sensorUsed.table.sensorBrand=Marque +observe.sensorUsed.table.sensorBrand.tip=Marque de capteur +observe.sensorUsed.table.sensorDataFormat=Format de données +observe.sensorUsed.table.sensorDataFormat.tip=Format de données du capteur +observe.sensorUsed.table.sensorSerialNo=Numéro de série +observe.sensorUsed.table.sensorSerialNo.tip=Numéro de stié du capteur +observe.sensorUsed.table.sensorType=Type +observe.sensorUsed.table.sensorType.tip=Type de capteur +observe.sensorUsed.title=Capteurs +observe.setLongline.action.reset.homeId.tip=Réinitialiser l'id métier +observe.setLongline.basketsPerSectionCount=Nombre de paniers par section +observe.setLongline.branchlinesPerBasketCount=Nombre d'hameçons par panier +observe.setLongline.haulingBreaks=Nombre de coupures +observe.setLongline.haulingDirectionSameAsSetting=Sens du virage identique à celui du filage +observe.setLongline.haulingEndCoordinates=Coordonnées fin de virage +observe.setLongline.haulingEndTimeStamp=Horodatage fin +observe.setLongline.haulingStartCoordinates=Coordonnées début de virage +observe.setLongline.haulingStartTimeStamp=Horodatage début +observe.setLongline.homeId=Id métier +observe.setLongline.lightsticksColor=Couleur de cyalumes +observe.setLongline.lightsticksPerBasketCount=Nombre de cyalumes par panier +observe.setLongline.lightsticksType=Type de cyalumes +observe.setLongline.lineType=Type de ligne +observe.setLongline.maxDepthTargeted=Profondeur maximum ciblée +observe.setLongline.message.creating=L'opération de pêche est en cours de création. +observe.setLongline.message.updating=L'opération de pêche est en cours de modification. +observe.setLongline.monitored=Instrumentée +observe.setLongline.number=Numéro +observe.setLongline.settingEndCoordinates=Coordonnées fin de filage +observe.setLongline.settingEndTimeStamp=Horodatage fin +observe.setLongline.settingShape=Forme du filage +observe.setLongline.settingStartCoordinates=Coordonnées début de filage +observe.setLongline.settingStartTimeStamp=Horodatage début +observe.setLongline.settingVesselSpeed=Vitesse bateau (nd) +observe.setLongline.shooterSpeed=Vitesse shooter (nd) +observe.setLongline.shooterUsed=Shooter utilisé +observe.setLongline.snapWeight=Poids snap (kg) +observe.setLongline.swivelWeight=Poids de l'émerillon (kg) +observe.setLongline.tab.hauling=Virage +observe.setLongline.tab.setting=Filage +observe.setLongline.tab.settingCaracteristics=Caractéristiques +observe.setLongline.timeBetweenHooks=Temps entre hameçons (s) +observe.setLongline.title=Opération de pêche +observe.setLongline.totalBasketsCount=Nombre total de baskets +observe.setLongline.totalHooksCount=Nombre total d'avançons +observe.setLongline.totalSectionsCount=Nombre total de sections +observe.setLongline.weightedSnap=Snap lesté +observe.setLongline.weightedSwivel=Émerillon lesté +observe.setSeine.currentDirection=Direction du courant (°) +observe.setSeine.currentMeasureDepth=Profondeur de mesure du courant (m) +observe.setSeine.currentSpeed=Vitesse du courant (nd) +observe.setSeine.endPursingTimeStamp=Date - Heure de fin coulissage +observe.setSeine.endSetTimeStamp=Date - Heure de fin de validité +observe.setSeine.maxGearDepth=Profondeur maximum (m) +observe.setSeine.message.creating=La calée est en cours de création. observe.setSeine.message.information.schoolType= -observe.setSeine.message.no.nonTargetDiscarded= -observe.setSeine.message.no.targetCatch= -observe.setSeine.message.no.targetDiscarded= -observe.setSeine.message.updating= -observe.setSeine.nonTargetDiscarded= -observe.setSeine.reasonForNullSet= -observe.setSeine.schoolMeanDepth= -observe.setSeine.schoolThickness= -observe.setSeine.schoolTopDepth= -observe.setSeine.schoolType= -observe.setSeine.schoolType.not.fill= -observe.setSeine.sonarUsed= -observe.setSeine.sonarUsedAvantSet= -observe.setSeine.startTime= -observe.setSeine.supportVesselName= -observe.setSeine.tab.general= -observe.setSeine.tab.measurements= -observe.setSeine.targetDiscarded= -observe.setSeine.title= -observe.species.availableOcean= -observe.species.selectedOcean= -observe.species.tab.general= -observe.species.tab.other= -observe.speciesList.availableSpecies= -observe.speciesList.selectedSpecies= -observe.speciesList.tab.general= -observe.speciesList.tab.species= -observe.storage.action.canMigrate= +observe.setSeine.message.no.nonTargetDiscarded=La calée n'a pas de rejet de faune +observe.setSeine.message.no.targetCatch=Pour échantilloner les thons capturés, il faut au moins une capture. +observe.setSeine.message.no.targetDiscarded=Pour échantilloner les thons, il faut au moins un rejet de thon monté sur le pont. +observe.setSeine.message.updating=La calée est en cours de modification. +observe.setSeine.nonTargetDiscarded=Rejet de faune +observe.setSeine.reasonForNullSet=Cause coup nul +observe.setSeine.schoolMeanDepth=Profondeur moyenne (m) +observe.setSeine.schoolThickness=Épaisseur du banc (m) +observe.setSeine.schoolTopDepth=Profondeur sommet (m) +observe.setSeine.schoolType=Type de banc +observe.setSeine.schoolType.not.fill=Non renseigné +observe.setSeine.sonarUsed=Utilisation sonar pendant la calée +observe.setSeine.sonarUsedAvantSet=Utilisation du sonar +observe.setSeine.startTime=Date - Heure de début de validité +observe.setSeine.supportVesselName=Nom supply +observe.setSeine.tab.general=Caractéristiques générales +observe.setSeine.tab.measurements=Mesures +observe.setSeine.targetDiscarded=Rejet de thon +observe.setSeine.title=Calée +observe.species.availableOcean=Océans disponibles +observe.species.selectedOcean=Océans sélectionnés +observe.species.tab.general=Caractéristiques générales +observe.species.tab.other=Autres caractéristiques +observe.speciesList.availableSpecies=Espèces disponibles +observe.speciesList.selectedSpecies=Espèces sélectionnées +observe.speciesList.tab.general=Caractéristiques générales +observe.speciesList.tab.species=Espèces +observe.storage.action.canMigrate=Mettre à jour la base (version courante %1$s) observe.storage.connexionStatut.failed= observe.storage.connexionStatut.failed.description= observe.storage.connexionStatut.success= @@ -1754,6 +1759,8 @@ observe.storage.creationMode.importLocalStorage= observe.storage.creationMode.importLocalStorage.description= observe.storage.creationMode.importRemoteStorage= observe.storage.creationMode.importRemoteStorage.description= +observe.storage.creationMode.importServerStorage= +observe.storage.creationMode.importServerStorage.description= observe.storage.creationMode.internalDump= observe.storage.creationMode.internalDump.description= observe.storage.dataPolicy.readData= @@ -1770,566 +1777,577 @@ observe.storage.dbMode.useLocal= observe.storage.dbMode.useLocal.description= observe.storage.dbMode.useRemote= observe.storage.dbMode.useRemote.description= -observe.storage.error.dbVersionMismatch= -observe.storage.importExternalDump.config= -observe.storage.importExternalDump.description= -observe.storage.importExternalDumpData.config= -observe.storage.importExternalDumpReferentiel.config= -observe.storage.importRemoteStorage.config= -observe.storage.importRemoteStorage.description= -observe.storage.importRemoteStorageData.config= -observe.storage.importRemoteStorageReferentiel.config= -observe.storage.internalDump.last.modified= -observe.storage.internalDump.not.exist= -observe.storage.label.backup= -observe.storage.label.data.import.db= -observe.storage.label.db.to.create= -observe.storage.label.db.to.drop= -observe.storage.label.db.to.update= -observe.storage.label.db.to.update.security= -observe.storage.label.import.data= -observe.storage.label.import.local= -observe.storage.label.import.referentiel= -observe.storage.label.import.remote= -observe.storage.label.local= -observe.storage.label.reference.import.db= -observe.storage.label.remote= -observe.storage.label.synchro= -observe.storage.label.synchro.incoming= -observe.storage.label.synchro.referentiel= -observe.storage.locale.db= +observe.storage.dbMode.useServer=Utiliser un serveur distant +observe.storage.dbMode.useServer.description=Utiliser un serveur distant +observe.storage.error.dbVersionMismatch=La version de la base distante (%s) n'est pas compatible avec la version du modèle (%s) +observe.storage.importExternalDump.config=Sélection de la sauvegarde à utiliser +observe.storage.importExternalDump.description=Veuillez sélectionner le fichier d'une sauvegarde (*.sql.gz). +observe.storage.importExternalDumpData.config=Choisir la sauvegarde contenant les données à importer +observe.storage.importExternalDumpReferentiel.config=Choisir la sauvegarde contenant le référentiel à importer +observe.storage.importRemoteStorage.config=Sélection de la base distante à importer +observe.storage.importRemoteStorage.description=Veuillez configurer la connexion vers une base distante.\nAvant de pouvoir poursuivre, vous devez valider la connexion. +observe.storage.importRemoteStorageData.config=Choisir la base distante contenant les données à importer +observe.storage.importRemoteStorageReferentiel.config=Choisir la base distante contenant le référentiel à importer +observe.storage.internalDump.last.modified=(dernier import \: %1$td/%1$tm/%1$tY à %1$tH\:%1$tM) +observe.storage.internalDump.not.exist=Pas de base embarquée. +observe.storage.label.backup=Base temporaire pour backup +observe.storage.label.data.import.db=Base d'import de données +observe.storage.label.db.to.create=Base à créer +observe.storage.label.db.to.drop=Base à vider +observe.storage.label.db.to.update=Base à mettre à jour +observe.storage.label.db.to.update.security=Base à mettre à jour (sécurité) +observe.storage.label.import.data=Base distante d'import de données +observe.storage.label.import.local=Base locale d'import +observe.storage.label.import.referentiel=Base distante d'import +observe.storage.label.import.remote=Base distante d'import +observe.storage.label.local=Base locale +observe.storage.label.reference.import.db=Base d'import de référentiels +observe.storage.label.remote=Base distante +observe.storage.label.rest= +observe.storage.label.synchro=Base de synchronisation +observe.storage.label.synchro.incoming=Base source <%1$s> +observe.storage.label.synchro.referentiel=Base centrale <%1$s> +observe.storage.locale.db=(locale) observe.storage.message.provider.detected= -observe.storage.no.creationMode= -observe.storage.no.creationMode.required= -observe.storage.no.dbMode= -observe.storage.noImportData.config= -observe.storage.noImportReferentiel.config= -observe.storage.remote.db= -observe.storage.remote.login= -observe.storage.remote.password= -observe.storage.remote.url= -observe.storage.remote.useSll= -observe.storage.report.action.backup.local= -observe.storage.report.action.backup.remote= -observe.storage.report.action.connect.local= -observe.storage.report.action.connect.remote= -observe.storage.report.action.create.local= -observe.storage.report.action.data.import.backup= -observe.storage.report.action.import.backup= -observe.storage.report.action.import.internal= -observe.storage.report.action.import.remote.data= -observe.storage.report.action.import.remote.referentiel= -observe.storage.report.action.migrate= -observe.storage.report.action.no.data.import= -observe.storage.report.action.no.referentiel.import= -observe.storage.report.action.referentiel.import.backup= -observe.storage.report.can.migrate= -observe.storage.report.can.not.migrate= -observe.storage.report.no.create.mode= -observe.storage.report.security.owner= -observe.storage.report.security.readers= -observe.storage.report.security.referentiels= -observe.storage.report.security.techniciens= -observe.storage.report.selected.all.data= -observe.storage.report.selected.all.data.to.import= -observe.storage.report.selected.backup.file= -observe.storage.report.selected.data= -observe.storage.report.selected.data.for.import= -observe.storage.report.selected.data.referentiel= -observe.storage.report.selected.data.to.export= -observe.storage.report.selected.data.to.import= -observe.storage.report.selected.localStorageFile= -observe.storage.report.selected.no.data= -observe.storage.report.selected.no.data.to.import= -observe.storage.report.selected.remoteStorage= -observe.storage.report.selected.security= -observe.storage.required.rw.on.data= -observe.storage.security.administrateur= -observe.storage.selected.dbMode= -observe.storage.selectedCreationMode= -observe.storage.showMigrationProgression= -observe.storage.showMigrationSql= -observe.storage.step.backup= -observe.storage.step.backup.description= -observe.storage.step.config= -observe.storage.step.config.description= -observe.storage.step.configData= -observe.storage.step.configData.description= -observe.storage.step.configReferentiel= -observe.storage.step.configReferentiel.description= -observe.storage.step.confirm= -observe.storage.step.confirm.description= -observe.storage.step.creationMode= -observe.storage.step.dbMode= -observe.storage.step.dbMode.description= -observe.storage.step.dbMode.detail= -observe.storage.step.label= -observe.storage.step.roles= -observe.storage.step.roles.description= -observe.storage.step.selectData= -observe.storage.step.selectData.description= -observe.storage.store.remote.config= -observe.storage.store.remote.config.tip= -observe.storage.useRemoteStorage.config= -observe.storage.useRemoteStorage.description= -observe.synchro.add.object= -observe.synchro.common.activity= -observe.synchro.common.latitude= -observe.synchro.common.longitude= -observe.synchro.common.quadrant= -observe.synchro.common.reference= -observe.synchro.common.select= -observe.synchro.common.vitesse= -observe.synchro.config.data.mode= -observe.synchro.config.data.storage= -observe.synchro.config.export.required.read.data= -observe.synchro.config.export.required.read.referentiel= -observe.synchro.config.export.required.write.data= -observe.synchro.config.importGPS= -observe.synchro.config.referentiel.mode= -observe.synchro.config.referentiel.storage= -observe.synchro.config.report= -observe.synchro.config.source.storage= -observe.synchro.config.validate= -observe.synchro.config.validation.report= -observe.synchro.configuration= -observe.synchro.continue.with.no.save.report= -observe.synchro.import.data.fromBackup= -observe.synchro.import.data.fromRemoteStorage= -observe.synchro.importGPS.invalidIntervals.list= -observe.synchro.message.all.obsolete.entities.fixed= -observe.synchro.message.need.save.for.synchro.operation= -observe.synchro.message.need.save.for.validation.operation= -observe.synchro.message.obsolete.entities.fixed= -observe.synchro.message.obsolote.entity.ref.found= -observe.synchro.message.obsolote.entity.refs.found= -observe.synchro.message.saveLocal.skip= -observe.synchro.no.data.import= -observe.synchro.no.local.storage= -observe.synchro.no.referentiel.import= -observe.synchro.no.remote.storage= -observe.synchro.obsolete.entities.list= -observe.synchro.obsolete.entity.fix= -observe.synchro.obsolete.entity.label= -observe.synchro.obsolete.entity.to.change.label= -observe.synchro.operation.canceled= -observe.synchro.operation.consolidate= -observe.synchro.operation.consolidate.description= -observe.synchro.operation.exportData= -observe.synchro.operation.exportData.description= -observe.synchro.operation.failed= -observe.synchro.operation.importGPS= -observe.synchro.operation.importGPS.description= -observe.synchro.operation.needFix= -observe.synchro.operation.report= -observe.synchro.operation.report.description= -observe.synchro.operation.running= -observe.synchro.operation.saveLocal= -observe.synchro.operation.saveLocal.description= -observe.synchro.operation.successed= -observe.synchro.operation.synchronize= -observe.synchro.operation.synchronize.description= -observe.synchro.operation.validate= -observe.synchro.operation.validate.description= -observe.synchro.operations= -observe.synchro.remove.object= -observe.synchro.replaceObsolete.object= -observe.synchro.report.copy.options= -observe.synchro.report.report.description= -observe.synchro.report.result= -observe.synchro.report.select= -observe.synchro.report.variables= -observe.synchro.safe.entity.to.choose.label= -observe.synchro.save.report= -observe.synchro.step.config= -observe.synchro.step.config.description= -observe.synchro.step.consolidate= -observe.synchro.step.consolidate.description= -observe.synchro.step.exportData= -observe.synchro.step.exportData.description= -observe.synchro.step.importGPS= -observe.synchro.step.importGPS.description= -observe.synchro.step.report= -observe.synchro.step.report.description= -observe.synchro.step.saveLocal= -observe.synchro.step.saveLocal.description= -observe.synchro.step.selectData= -observe.synchro.step.selectData.description= -observe.synchro.step.showResume= -observe.synchro.step.showResume.description= -observe.synchro.step.synchronize= -observe.synchro.step.synchronize.description= -observe.synchro.step.validate= -observe.synchro.step.validate.description= -observe.synchro.table.exportData.exist.label= -observe.synchro.table.exportData.exist.label.tip= -observe.synchro.table.exportData.program.label= -observe.synchro.table.exportData.program.label.tip= -observe.synchro.table.exportData.selected= -observe.synchro.table.exportData.selected.tip= -observe.synchro.table.exportData.trip.label= -observe.synchro.table.exportData.trip.label.tip= -observe.synchro.table.importGPS.activity.label= -observe.synchro.table.importGPS.activity.label.tip= -observe.synchro.table.importGPS.activity.latitude= -observe.synchro.table.importGPS.activity.latitude.tip= -observe.synchro.table.importGPS.activity.longitude= -observe.synchro.table.importGPS.activity.longitude.tip= -observe.synchro.table.importGPS.activity.quadrant= -observe.synchro.table.importGPS.activity.quadrant.tip= -observe.synchro.table.importGPS.activity.select= -observe.synchro.table.importGPS.activity.select.tip= -observe.synchro.table.importGPS.activity.vitesse= -observe.synchro.table.importGPS.activity.vitesse.tip= -observe.synchro.table.importGPS.computed.label= -observe.synchro.table.importGPS.computed.label.tip= -observe.synchro.table.importGPS.data.label= -observe.synchro.table.importGPS.data.label.tip= -observe.synchro.table.obsolete.entity.label= -observe.synchro.table.obsolete.entity.label.tip= -observe.synchro.table.obsolete.entity.select= -observe.synchro.table.obsolete.entity.select.tip= -observe.synchro.update.object= -observe.synchro.validate.invalid.data.list= -observe.synchro.validate.message.list= -observe.synchro.validate.save.reportFile= -observe.targetCatch.table.comment= -observe.targetCatch.table.comment.tip= -observe.targetCatch.table.deleteExtraMessage= -observe.targetCatch.table.speciesThon= -observe.targetCatch.table.speciesThon.tip= -observe.targetCatch.table.weight= -observe.targetCatch.table.weight.tip= -observe.targetCatch.table.weightCategory= -observe.targetCatch.table.weightCategory.tip= -observe.targetCatch.table.well= -observe.targetCatch.table.well.tip= -observe.targetDiscarded.message.table.will.delete.targetLength= -observe.targetDiscarded.table.broughtOnDeck= -observe.targetDiscarded.table.broughtOnDeck.tip= -observe.targetDiscarded.table.comment= -observe.targetDiscarded.table.comment.tip= -observe.targetDiscarded.table.deleteExtraMessage= -observe.targetDiscarded.table.reasonForDiscard= -observe.targetDiscarded.table.reasonForDiscard.tip= -observe.targetDiscarded.table.speciesThon= -observe.targetDiscarded.table.speciesThon.tip= -observe.targetDiscarded.table.weight= -observe.targetDiscarded.table.weight.tip= -observe.targetDiscarded.table.weightCategory= -observe.targetDiscarded.table.weightCategory.tip= -observe.targetSample.table.count= -observe.targetSample.table.count.tip= -observe.targetSample.table.length= -observe.targetSample.table.length.tip= -observe.targetSample.table.meanWeight= -observe.targetSample.table.meanWeight.tip= -observe.targetSample.table.measureType= -observe.targetSample.table.measureType.tip= -observe.targetSample.table.speciesThon= -observe.targetSample.table.speciesThon.tip= -observe.targetSample.table.totalWeight= -observe.targetSample.table.totalWeight.tip= -observe.tdr.action.create= -observe.tdr.action.create.tip= -observe.tdr.action.reset.dataLocation.tip= -observe.tdr.action.reset.homeId.tip= -observe.tdr.action.reset.serialNo.tip= -observe.tdr.availableSpecies= -observe.tdr.basket= -observe.tdr.branchline= -observe.tdr.data= -observe.tdr.dataLocation= -observe.tdr.dataLocation.tip= -observe.tdr.delete.data.message= -observe.tdr.deleteData= -observe.tdr.deleteData.tip= -observe.tdr.deployementEnd= -observe.tdr.deployementStart= -observe.tdr.enableTimestamp= -observe.tdr.enableTimestamp.tip= -observe.tdr.exportData= -observe.tdr.exportData.tip= -observe.tdr.fishingEnd= -observe.tdr.fishingEndDepth= -observe.tdr.fishingStart= -observe.tdr.fishingStartDepth= -observe.tdr.floatline1Length= -observe.tdr.floatline2Length= -observe.tdr.homeId= -observe.tdr.importData= -observe.tdr.importData.tip= -observe.tdr.itemHorizontalPosition= -observe.tdr.itemVerticalPosition= -observe.tdr.locationOnLongline= -observe.tdr.maxFishingDepth= -observe.tdr.meanDeployementDepth= -observe.tdr.meanFishingDepth= -observe.tdr.medianDeployementDepth= -observe.tdr.medianFishingDepth= -observe.tdr.message.data.imported= -observe.tdr.minFishingDepth= -observe.tdr.section= -observe.tdr.selectedSpecies= -observe.tdr.sensorBrand= -observe.tdr.serialNo= -observe.tdr.species= -observe.tdr.tab.caracteristics= -observe.tdr.tab.keyData= -observe.tdr.tab.localisation= -observe.tdr.tab.species= -observe.tdr.tab.timestamp= -observe.tdr.table.data= -observe.tdr.table.homeId= -observe.tdr.table.homeId.tip= -observe.tdr.table.sensorBrand= -observe.tdr.table.sensorBrand.tip= -observe.tdr.table.serialNo= -observe.tdr.table.serialNo.tip= -observe.tdr.title= -observe.title.about= -observe.title.can.not.delete.referentiel= -observe.title.can.not.export.obstuna= -observe.title.change.storage= -observe.title.choose.db.dump= -observe.title.choose.db.dump.directory= -observe.title.choose.importGPS= -observe.title.choose.report.directory= -observe.title.choose.reportFile= -observe.title.choose.sensorUsed.exportData= -observe.title.choose.sensorUsed.importData= -observe.title.choose.tdr.exportData= -observe.title.choose.tdr.importData= -observe.title.config.migrate= -observe.title.connect.existingDB= -observe.title.connect.localDB= -observe.title.connect.remoteDB= -observe.title.consolidate= -observe.title.consolidate.tip= +observe.storage.no.creationMode=Aucun mode de création sélectionné +observe.storage.no.creationMode.required=Non requis. +observe.storage.no.dbMode=Aucun type de source de données sélectionné +observe.storage.noImportData.config=< Pas de configuration > +observe.storage.noImportReferentiel.config=< Pas de configuration > +observe.storage.remote.db=(distante) +observe.storage.remote.login=Login +observe.storage.remote.password=Mot de passe +observe.storage.remote.url=Url +observe.storage.remote.useSll=mode ssl ? +observe.storage.report.action.backup.local=Sauvegarde de la base locale +observe.storage.report.action.backup.remote=Sauvegarde de la base distante +observe.storage.report.action.connect.local=Connection à la base locale +observe.storage.report.action.connect.remote=Connexion à une base distante +observe.storage.report.action.create.local=Création de la base locale +observe.storage.report.action.data.import.backup=Import de données depuis une sauvegarde \: +observe.storage.report.action.import.backup=Import depuis une sauvegarde \: +observe.storage.report.action.import.internal=Import depuis une le dernier référentiel téléchargé \: +observe.storage.report.action.import.remote.data=Import de données depuis une base distante \: +observe.storage.report.action.import.remote.referentiel=Import du référentiel depuis une base distante \: +observe.storage.report.action.migrate=Politique de mise à jour +observe.storage.report.action.no.data.import=Pas d'import de données +observe.storage.report.action.no.referentiel.import=Pas d'import de référentiel +observe.storage.report.action.referentiel.import.backup=Import du référentiel depuis une sauvegarde \: +observe.storage.report.can.migrate=Mise à jour si nécessaire (version actuelle \: %1$s) +observe.storage.report.can.not.migrate=Pas de mise à jour possible +observe.storage.report.no.create.mode=Mode de création de base non requis +observe.storage.report.security.owner=Propriétaire \: %1$s +observe.storage.report.security.readers=Lecteurs \: %1$s +observe.storage.report.security.referentiels=Référentiels \: %1$s +observe.storage.report.security.techniciens=Techniciens \: %1$s +observe.storage.report.selected.all.data=Toutes les données observateur sont à exporter (%1$s marée(s)). +observe.storage.report.selected.all.data.to.import=Toutes les données observateur sont à importer (%1$s marée(s)). +observe.storage.report.selected.backup.file=Emplacement de la sauvegarde \: +observe.storage.report.selected.data=%1$s marée(s) à exporter +observe.storage.report.selected.data.for.import=%1$s marée(s) à importer +observe.storage.report.selected.data.referentiel=Le référentiel sera exporté +observe.storage.report.selected.data.to.export=Données à exporter \: +observe.storage.report.selected.data.to.import=Données à importer \: +observe.storage.report.selected.localStorageFile=Emplacement de la base locale \: +observe.storage.report.selected.no.data=Pas de données observateur à exporter +observe.storage.report.selected.no.data.to.import=Pas de données observateur à importer +observe.storage.report.selected.remoteStorage=Informations sur la connexion distance à utiliser \: +observe.storage.report.selected.security=Sécurité +observe.storage.required.rw.on.data=Vous n'avez pas les droits suffisants pour effectuer cette opération.\n\nPour effectuer cette opération vous devez avoir les droits de lecture et d'écriture sur les données observateur. +observe.storage.security.administrateur=Propriétaire de la base +observe.storage.selected.dbMode=Type de source de données sélectionné +observe.storage.selectedCreationMode=Mode de création sélectionné +observe.storage.server.dataBase= +observe.storage.showMigrationProgression=Afficher la progression lors des mises à jour +observe.storage.showMigrationSql=Afficher les requêtes sql lors des mises à jour +observe.storage.step.backup=Sauvegarde +observe.storage.step.backup.description=Sauvegarder la base locale avant de changer de source de données +observe.storage.step.config=Configuration +observe.storage.step.config.description=Configurer la source de données sélectionnée +observe.storage.step.configData=Données +observe.storage.step.configData.description=Configurer l'import de données +observe.storage.step.configReferentiel=Référentiel +observe.storage.step.configReferentiel.description=Configurer l'import du référentiel +observe.storage.step.confirm=Résumé +observe.storage.step.confirm.description=Résumé des opérations à effectuer. +observe.storage.step.creationMode=Création base locale +observe.storage.step.dbMode=Mode +observe.storage.step.dbMode.description=Choisir le mode de connexion +observe.storage.step.dbMode.detail=Type de source de données +observe.storage.step.label=Etape %1$d/%2$d \: %3$s +observe.storage.step.roles=Sécurité +observe.storage.step.roles.description=Mise en place de la sécurité +observe.storage.step.selectData=Sélection données +observe.storage.step.selectData.description=Selectionner les données à exporter dans la sauvegarde +observe.storage.store.remote.config=Conserver le paramétrage +observe.storage.store.remote.config.tip=Conserver le paramétrage de la source de données distante dans votre configuration (sauf les mots de passe pour des raisons de sécurité) +observe.storage.useRemoteStorage.config=Configurer la base distante à utiliser +observe.storage.useRemoteStorage.description=Veuillez configurer votre connexion à la base distante\nAvant de pouvoir poursuivre, vous devez valider la connexion. +observe.storage.useServerStorage.config= +observe.storage.useServerStorage.description= +observe.synchro.add.object=Ajout du référentiel %1$s +observe.synchro.common.activity=Activité +observe.synchro.common.exist=Marée présente sur la base distante +observe.synchro.common.latitude=Latitude +observe.synchro.common.longitude=Longitude +observe.synchro.common.maree=Maréee +observe.synchro.common.program=Program +observe.synchro.common.quadrant=Quadrant +observe.synchro.common.reference=Référence +observe.synchro.common.select=... +observe.synchro.common.selected=Marée à exporter +observe.synchro.common.vitesse=Vitesse +observe.synchro.config.data.mode=Mode d'import des données +observe.synchro.config.data.storage=Configuration de la base de données +observe.synchro.config.export.required.read.data=Vous devez posséder les droits de lecture sur les données de la base distante +observe.synchro.config.export.required.read.referentiel=Vous devez posséder les droits de lecture sur le référentiel de la base distante +observe.synchro.config.export.required.write.data=Vous devez posséder les droits d'écritures sur les données de la base distante +observe.synchro.config.importGPS=Configurer le fichier d'import GPS +observe.synchro.config.referentiel.mode=Mode d'import du référentiel +observe.synchro.config.referentiel.storage=Configuration de la base de référence +observe.synchro.config.report=Configuration des reports +observe.synchro.config.source.storage=Configuration de la base source +observe.synchro.config.validate=Configuration de la validation +observe.synchro.config.validation.report=Rapport de validation +observe.synchro.configuration=Configuration des opérations +observe.synchro.continue.with.no.save.report=Continuer sans sauver de rapport +observe.synchro.import.data.fromBackup=Importer les données depuis une sauvegarde de base locale (*.sql.gz) +observe.synchro.import.data.fromRemoteStorage=Importer les données depuis une base distante +observe.synchro.importGPS.invalidIntervals.list=Liste des intervalles de points gps non utilisables +observe.synchro.message.all.obsolete.entities.fixed=Il n'y a plus de références sur des objets obsolètes. +observe.synchro.message.need.save.for.synchro.operation=L'opération de synchronisation du référentiel a engendrée des modifications. +observe.synchro.message.need.save.for.validation.operation=L'opération de validation des données a engendrée des modifications. +observe.synchro.message.obsolete.entities.fixed=Les références sur %1$s ont été supprimées +observe.synchro.message.obsolote.entity.ref.found=%1$s \: "%2$s" (1 référence) +observe.synchro.message.obsolote.entity.refs.found=%1$s \: "%2$s" (%3$d références) +observe.synchro.message.saveLocal.skip=L'opération de sauvegarde de la base locale n'est pas requise. +observe.synchro.no.data.import=Ne pas importer de données +observe.synchro.no.local.storage=Aucune base source définie +observe.synchro.no.referentiel.import=Ne pas importer de référentiel +observe.synchro.no.remote.storage=Aucune base de référence définie +observe.synchro.obsolete.entities.list=Liste des entités du référentiel obsolètes +observe.synchro.obsolete.entity.fix=Changer les références sur l'objet sélectionné +observe.synchro.obsolete.entity.label=%1$s \: "%2$s" +observe.synchro.obsolete.entity.to.change.label=Objet obsolète +observe.synchro.operation.canceled=L'opération <%1$s> a été annulée. +observe.synchro.operation.consolidate=Calculer les données +observe.synchro.operation.consolidate.description=Calculer les données non observées +observe.synchro.operation.exportData=Exporter les données observateurs +observe.synchro.operation.exportData.description=Exporter les données observateurs vers la base centrale +observe.synchro.operation.failed=L'opération < %1$s > a échouée. +observe.synchro.operation.importGPS=Import GPS +observe.synchro.operation.importGPS.description=Importer un fichier de trace GPS +observe.synchro.operation.needFix=L'opération < %1$s > nécessite des corrections. +observe.synchro.operation.report=Tableaux de synthèse +observe.synchro.operation.report.description=Générer les tableaux de synthèse du rapport de fin d'embarquement +observe.synchro.operation.running=L'opération < %1$s > est en cours d'exécution... +observe.synchro.operation.saveLocal=Sauvegarde de la base locale +observe.synchro.operation.saveLocal.description=Sauvegarder les modifications effectuées vers la base locale +observe.synchro.operation.successed=L'opération < %1$s > est terminée. +observe.synchro.operation.synchronize=Synchroniser le référentiel +observe.synchro.operation.synchronize.description=Synchroniser le référentiel depuis la base centrale +observe.synchro.operation.validate=Valider les données +observe.synchro.operation.validate.description=Valider les données de la base source +observe.synchro.operations=Opérations à effectuer +observe.synchro.remove.object=Suppression du référentiel %1$s +observe.synchro.replaceObsolete.object=Application du remplacement d'un référentiel obsolète %1$s +observe.synchro.report.copy.options=Options de copie dans le presse-papier +observe.synchro.report.report.description=Description du rapport sélectionné +observe.synchro.report.result=Résultats du rapport +observe.synchro.report.select=Sélection du rapport +observe.synchro.report.variables=Configuration des variables +observe.synchro.safe.entity.to.choose.label=Objets disponibles +observe.synchro.save.report=Sauver le rapport +observe.synchro.step.config=Configuration +observe.synchro.step.config.description=Configuration des opérations et sources de données à utiliser. +observe.synchro.step.consolidate=Calculer les données +observe.synchro.step.consolidate.description=Calculer les données non observées +observe.synchro.step.exportData=Exporter +observe.synchro.step.exportData.description=Exporter les données observateurs vers la base centrale +observe.synchro.step.importGPS=Import GPS +observe.synchro.step.importGPS.description=Importer un fichier de trace GPS +observe.synchro.step.report=Tableaux de synthèse +observe.synchro.step.report.description=Aide à la génération du rapport de fin d'embarquement +observe.synchro.step.saveLocal=Sauvegarde locale +observe.synchro.step.saveLocal.description=Sauver les modifications sur votre base source +observe.synchro.step.selectData=Sélection des données +observe.synchro.step.selectData.description=Sélection des données pour effectuer les opérations +observe.synchro.step.showResume=Résumé +observe.synchro.step.showResume.description=Voir un résumé des opérations effectuées +observe.synchro.step.synchronize=Synchronisation Référentiel +observe.synchro.step.synchronize.description=Synchronizer le référentiel depuis la base centrale +observe.synchro.step.validate=Validation +observe.synchro.step.validate.description=Validation des données d'une source de données +observe.synchro.table.exportData.exist.label=E +observe.synchro.table.exportData.exist.label.tip=Marée déjà présente sur la base distante +observe.synchro.table.exportData.program.label=Programme +observe.synchro.table.exportData.program.label.tip=Libellé du programme de la maréee +observe.synchro.table.exportData.selected=... +observe.synchro.table.exportData.selected.tip=Sélectionner - Désélectionner toutes les marées à exporter +observe.synchro.table.exportData.trip.label=Marée +observe.synchro.table.exportData.trip.label.tip=Libellé de la marée +observe.synchro.table.importGPS.activity.label=Activité +observe.synchro.table.importGPS.activity.label.tip=Activité [ quadrant - latitude - longitude ] +observe.synchro.table.importGPS.activity.latitude=Lat. +observe.synchro.table.importGPS.activity.latitude.tip=Latitude (°') +observe.synchro.table.importGPS.activity.longitude=Long. +observe.synchro.table.importGPS.activity.longitude.tip=Longitude (°') +observe.synchro.table.importGPS.activity.quadrant=Quadrant +observe.synchro.table.importGPS.activity.quadrant.tip=Quadrant +observe.synchro.table.importGPS.activity.select=... +observe.synchro.table.importGPS.activity.select.tip=Sélectionner - Désélectionner toutes les activités +observe.synchro.table.importGPS.activity.vitesse=Vitesse +observe.synchro.table.importGPS.activity.vitesse.tip=Vitesse (nd) +observe.synchro.table.importGPS.computed.label=Donnée calculée +observe.synchro.table.importGPS.computed.label.tip=Donnée calculée à partir des traces gps +observe.synchro.table.importGPS.data.label=Donnée saisie +observe.synchro.table.importGPS.data.label.tip=Donnée saisie par l'observateur +observe.synchro.table.obsolete.entity.label=Objet +observe.synchro.table.obsolete.entity.label.tip=L'objet qui utilise la référence sur l'objet obsolète +observe.synchro.table.obsolete.entity.select=... +observe.synchro.table.obsolete.entity.select.tip=Sélectionner - Désélectionner toutes les références +observe.synchro.update.object=Mise à jour du référentiel %1$s à la version %2$s +observe.synchro.validate.invalid.data.list=Liste des objets invalides +observe.synchro.validate.message.list=Liste des messages portant sur l'objet sélectionné +observe.synchro.validate.save.reportFile=Le rapport de validation sera généré ici\n%1$s +observe.targetCatch.table.comment=Com +observe.targetCatch.table.comment.tip=Commentaire +observe.targetCatch.table.deleteExtraMessage=\nLe fait de supprimer une capture thon peut entrainer la suppression d'échantillonnage(s) sur l'espèce. +observe.targetCatch.table.speciesThon=Thon mis en cuve +observe.targetCatch.table.speciesThon.tip=Thon mis en cuve +observe.targetCatch.table.weight=Poids (en t) +observe.targetCatch.table.weight.tip=Poids (en t) +observe.targetCatch.table.weightCategory=Catégorie de poids +observe.targetCatch.table.weightCategory.tip=Catégorie de poids +observe.targetCatch.table.well=Cuve +observe.targetCatch.table.well.tip=Cuve +observe.targetDiscarded.message.table.will.delete.targetLength=En confirmant la sauvegarde des objets vont être supprimés\!\n\nLes espèces suivantes ne seront plus utilisables dans des échantillonages \:\n%1$s\nCela entrainera la suppression des échantillonnages suivants \:\n%2$s +observe.targetDiscarded.table.broughtOnDeck=M +observe.targetDiscarded.table.broughtOnDeck.tip=Monté sur le pont ? +observe.targetDiscarded.table.comment=Comm +observe.targetDiscarded.table.comment.tip=Commentaire +observe.targetDiscarded.table.deleteExtraMessage=\nLe fait de supprimer un rejet de thon peut entrainer la suppression d'échantillonnage(s) sur l'espèce. +observe.targetDiscarded.table.reasonForDiscard=Raison rejet +observe.targetDiscarded.table.reasonForDiscard.tip=Raison rejet +observe.targetDiscarded.table.speciesThon=Espèce de thon +observe.targetDiscarded.table.speciesThon.tip=Espèce de thon +observe.targetDiscarded.table.weight=Poids +observe.targetDiscarded.table.weight.tip=Poids (en t) +observe.targetDiscarded.table.weightCategory=Catégorie de poids +observe.targetDiscarded.table.weightCategory.tip=Catégorie de poids +observe.targetSample.table.count=Effectif +observe.targetSample.table.count.tip=Effectif +observe.targetSample.table.length=Longueur +observe.targetSample.table.length.tip=Longueur (cm inf.) +observe.targetSample.table.meanWeight=Poids ind. +observe.targetSample.table.meanWeight.tip=Poids individuel (en Kg) +observe.targetSample.table.measureType=Type de mensuration +observe.targetSample.table.measureType.tip=Le type de mensuration utilisé (LF ou LD1) +observe.targetSample.table.speciesThon=Espèce de thon +observe.targetSample.table.speciesThon.tip=Espèce de thon +observe.targetSample.table.totalWeight=Poids tot. +observe.targetSample.table.totalWeight.tip=Poids total (en t) +observe.tdr.action.create=Insérer le capteur +observe.tdr.action.create.tip=Insérer ce nouveau capteur +observe.tdr.action.reset.dataLocation.tip=Réinitialiser l'hébergement du fichier +observe.tdr.action.reset.homeId.tip=Réinitialiser l'id métier +observe.tdr.action.reset.serialNo.tip=Réinitialiser le numéro se série +observe.tdr.availableSpecies=Espèces disponibles +observe.tdr.basket=Panier +observe.tdr.branchline=Avançon +observe.tdr.data=Données +observe.tdr.dataLocation=Hébergement +observe.tdr.dataLocation.tip=Hébergement du fichier de données +observe.tdr.delete.data.message=Confirmer la suppression du fichier de données +observe.tdr.deleteData=Supprimer +observe.tdr.deleteData.tip=Supprimer le fichier de données +observe.tdr.deployementEnd=Fin déploiement +observe.tdr.deployementStart=Début déploiement +observe.tdr.enableTimestamp=Activer l'horodatage +observe.tdr.enableTimestamp.tip=Activer l'horodatage pour cet enregistreur +observe.tdr.exportData=Exporter +observe.tdr.exportData.tip=Exporter les données enregistrées +observe.tdr.fishingEnd=Fin pêche +observe.tdr.fishingEndDepth=Profondeur en fin de pêche (m) +observe.tdr.fishingStart=Début pêche +observe.tdr.fishingStartDepth=Profondeur en début de pêche (m) +observe.tdr.floatline1Length=Longueur 1 d'orin (m) +observe.tdr.floatline2Length=Longueur 2 d'orin (m) +observe.tdr.homeId=Id métier +observe.tdr.importData=Importer +observe.tdr.importData.tip=Importer un fichier de données +observe.tdr.itemHorizontalPosition=Position sur la ligne +observe.tdr.itemVerticalPosition=Position verticale +observe.tdr.locationOnLongline=Localisation sur la ligne +observe.tdr.maxFishingDepth=Profondeur maximale de pêche (m) +observe.tdr.meanDeployementDepth=Profondeur moyenne de deploiement (m) +observe.tdr.meanFishingDepth=Profondeur moyenne de pêche (m) +observe.tdr.medianDeployementDepth=Profondeur médiane de deploiement (m) +observe.tdr.medianFishingDepth=Profondeur médiane de pêche (m) +observe.tdr.message.data.imported=Le fichier de données %s a été importé. +observe.tdr.minFishingDepth=Profondeur minimale de pêche (m) +observe.tdr.section=Section +observe.tdr.selectedSpecies=Espèces sélectionnées +observe.tdr.sensorBrand=Marque +observe.tdr.serialNo=Numéro de série +observe.tdr.species=Espèces +observe.tdr.tab.caracteristics=Caractéristiques +observe.tdr.tab.keyData=Données clef +observe.tdr.tab.localisation=Localisation +observe.tdr.tab.species=Espèces associées +observe.tdr.tab.timestamp=Horodatage +observe.tdr.table.data=Fichier +observe.tdr.table.homeId=Id +observe.tdr.table.homeId.tip=Identifiant +observe.tdr.table.sensorBrand=Marque +observe.tdr.table.sensorBrand.tip=Marque du capteur +observe.tdr.table.serialNo=N° +observe.tdr.table.serialNo.tip=Numéro de série +observe.tdr.title=Enregistreur de profondeur +observe.title.about=A propos d'ObServe... +observe.title.can.not.delete.referentiel=Impossible de supprimer un référentiel en cours d'utilisation... +observe.title.can.not.export.obstuna=Impossible d'exporter des données d'obstuna... +observe.title.change.storage=Changer la source de données +observe.title.choose.db.dump=Choisir une sauvegarder de base locale +observe.title.choose.db.dump.directory=Choisir le répertoire de destination de la sauvegarde +observe.title.choose.importGPS=Choisir un fichier de trace GPS +observe.title.choose.report.directory=Choisir le répertoire de destination des rapports +observe.title.choose.reportFile=Choisir le fichier de définition des reports +observe.title.choose.sensorUsed.exportData=Choisir l'emplacement du fichier de données à exporter +observe.title.choose.sensorUsed.importData=Choisir le fichier de données à importer +observe.title.choose.tdr.exportData=Choisir l'emplacement du fichier de données à exporter +observe.title.choose.tdr.importData=Choisir le fichier de données à importer +observe.title.config.migrate=Déplacement du fichier de configuration +observe.title.connect.existingDB=Connexion à une source de données existante +observe.title.connect.localDB=Connexion à une source de données locale +observe.title.connect.remoteDB=Connexion à une source de données distante +observe.title.consolidate=Consolider les données observateur +observe.title.consolidate.tip=Consolider les données observateur observe.title.content.HookSizes= observe.title.content.HookTypes= -observe.title.content.baitHaulingStatuss= -observe.title.content.baitSettingStatuss= -observe.title.content.baitTypes= -observe.title.content.catchFateLonglines= -observe.title.content.country= -observe.title.content.detectionModes= -observe.title.content.encounterTypes= -observe.title.content.fpaZones= -observe.title.content.gearCaracteristicTypes= -observe.title.content.gearCaracteristics= -observe.title.content.gears= -observe.title.content.harbours= -observe.title.content.healthnesss= -observe.title.content.hookPositions= -observe.title.content.hookSizes= -observe.title.content.hookTypes= -observe.title.content.itemHorizontalPositions= -observe.title.content.itemVerticalPositions= -observe.title.content.lengthWeightParameters= -observe.title.content.lightsticksColors= -observe.title.content.lightsticksTypes= -observe.title.content.lineTypes= -observe.title.content.maturityStatuss= -observe.title.content.mitigationTypes= -observe.title.content.objectFates= -observe.title.content.objectOperations= -observe.title.content.objectTypes= -observe.title.content.observedSystems= -observe.title.content.oceans= -observe.title.content.organisms= -observe.title.content.persons= -observe.title.content.programs= -observe.title.content.reasonForDiscards= -observe.title.content.reasonForNoFishings= -observe.title.content.reasonForNullSets= -observe.title.content.sensorBrands= -observe.title.content.sensorDataFormats= -observe.title.content.sensorTypes= -observe.title.content.settingShapes= -observe.title.content.sexx= -observe.title.content.sizeMeasureTypes= -observe.title.content.speciesFates= -observe.title.content.speciesGroupSpeciess= -observe.title.content.speciesLists= -observe.title.content.speciesStatuss= -observe.title.content.speciess= -observe.title.content.stomacFullnesss= -observe.title.content.surroundingActivitys= -observe.title.content.transmittingBuoyOperations= -observe.title.content.transmittingBuoyTypes= -observe.title.content.tripTypes= -observe.title.content.vesselActivityLonglines= -observe.title.content.vesselActivitySeines= -observe.title.content.vesselSizeCategoryx= -observe.title.content.vesselTypex= -observe.title.content.vesselx= -observe.title.content.weightCategory= -observe.title.content.weightMeasureTypes= -observe.title.content.windSpeeds= -observe.title.create.local.db= -observe.title.delete= -observe.title.error.dialog= -observe.title.exportData= -observe.title.exportData.tip= -observe.title.h2.server.parameters= -observe.title.import.localDB= -observe.title.importGPS= -observe.title.importGPS.tip= -observe.title.load.remote.db= -observe.title.need.confirm= -observe.title.need.confirm.to.desactivate.referentiel= -observe.title.no.local.db.found= -observe.title.report= -observe.title.report.tip= -observe.title.save.localDB= -observe.title.save.remoteDB= -observe.title.show.usage= -observe.title.speciesList.not.found= -observe.title.storage.info= -observe.title.synchronize= -observe.title.synchronize.tip= -observe.title.technical.informations= -observe.title.unique.key= -observe.title.validate= -observe.title.validate.tip= -observe.title.welcome.admin= -observe.tree.activityLongline= -observe.tree.activityLongline.unsaved= -observe.tree.activitySeine= -observe.tree.activitySeine.unsaved= -observe.tree.baitHaulingStatus= -observe.tree.baitSettingStatus= -observe.tree.baitType= -observe.tree.catchFateLongline= -observe.tree.catchLongline= -observe.tree.country= -observe.tree.detectionMode= -observe.tree.encounter= -observe.tree.encounterType= -observe.tree.floatingObject.unsaved= -observe.tree.fpaZone= -observe.tree.gear= -observe.tree.gearCaracteristic= -observe.tree.gearCaracteristicType= -observe.tree.gearUseFeaturesLongline= -observe.tree.gearUseFeaturesSeine= -observe.tree.harbour= -observe.tree.healthness= -observe.tree.hookPosition= -observe.tree.hookSize= -observe.tree.hookType= -observe.tree.itemHorizontalPosition= -observe.tree.itemVerticalPosition= -observe.tree.lengthWeightParameter= -observe.tree.lightsticksColor= -observe.tree.lightsticksType= -observe.tree.lineType= -observe.tree.longlineDetailComposition= -observe.tree.longlineGlobalComposition= -observe.tree.maturityStatus= -observe.tree.mitigationType= -observe.tree.nonTargetCatch= -observe.tree.nonTargetSample= -observe.tree.objectFate= -observe.tree.objectObservedSpecies= -observe.tree.objectOperation= -observe.tree.objectSchoolEstimate= -observe.tree.objectType= -observe.tree.observedSystem= -observe.tree.ocean= -observe.tree.organism= -observe.tree.person= -observe.tree.program= -observe.tree.reasonForDiscard= -observe.tree.reasonForNoFishing= -observe.tree.reasonForNullSet= -observe.tree.reference.common= -observe.tree.reference.longline= -observe.tree.reference.seine= -observe.tree.route= -observe.tree.route.unsaved= -observe.tree.schoolEstimate= -observe.tree.sensorBrand= -observe.tree.sensorDataFormat= -observe.tree.sensorType= -observe.tree.sensorUsed= -observe.tree.setLongline= -observe.tree.setLongline.unsaved= -observe.tree.setSeine= -observe.tree.setSeine.unsaved= -observe.tree.settingShape= -observe.tree.sex= -observe.tree.sizeMeasureType= -observe.tree.species= -observe.tree.speciesFate= -observe.tree.speciesGroup= -observe.tree.speciesList= -observe.tree.speciesStatus= -observe.tree.stomacFullness= -observe.tree.surroundingActivity= -observe.tree.targetCatch= -observe.tree.targetDiscarded= -observe.tree.targetSample= -observe.tree.targetSampleCapture= -observe.tree.tdr= -observe.tree.transmittingBuoyOperation= -observe.tree.transmittingBuoyType= -observe.tree.tripLongline.unsaved= -observe.tree.tripSeine.unsaved= -observe.tree.tripType= -observe.tree.vessel= -observe.tree.vesselActivityLongline= -observe.tree.vesselActivitySeine= -observe.tree.vesselSizeCategory= -observe.tree.vesselType= -observe.tree.weightCategory= -observe.tree.weightMeasureType= -observe.tree.wind= -observe.tripLongline.captain= -observe.tripLongline.dataEntryOperator= -observe.tripLongline.endDate= -observe.tripLongline.homeId= -observe.tripLongline.message.active.found= -observe.tripLongline.message.active.found.for.other.program= -observe.tripLongline.message.creating= -observe.tripLongline.message.no.active.found= -observe.tripLongline.message.not.open= -observe.tripLongline.message.updating= -observe.tripLongline.observer= -observe.tripLongline.ocean= -observe.tripLongline.startDate= -observe.tripLongline.tab.general= -observe.tripLongline.tab.map= -observe.tripLongline.title= -observe.tripLongline.totalFishingOperationsNumber= -observe.tripLongline.tripType= -observe.tripLongline.vessel= -observe.tripSeine.message.active.found= -observe.tripSeine.message.active.found.for.other.program= -observe.tripSeine.message.creating= -observe.tripSeine.message.no.active.found= -observe.tripSeine.message.not.open= -observe.tripSeine.message.updating= -observe.tripSeine.tab.general= -observe.tripSeine.tab.map= -observe.tripSeine.title= +observe.title.content.baitHaulingStatuss=Gestion des status de l'appât au virage +observe.title.content.baitSettingStatuss=Gestion des status de l'appât au filage +observe.title.content.baitTypes=Gestion des types d'appât +observe.title.content.catchFateLonglines=Gestion des devenirs capture +observe.title.content.country=Gestion des pays +observe.title.content.detectionModes=Gestion des modes de détection +observe.title.content.encounterTypes=Gestion des types de rencontre +observe.title.content.fpaZones=Gestion des zones FPA +observe.title.content.gearCaracteristicTypes=Gestion des types de caractéristiques +observe.title.content.gearCaracteristics=Gestion des caractéristiques d'équipement +observe.title.content.gears=Gestion des équipements +observe.title.content.harbours=GEstion des ports +observe.title.content.healthnesss=Gestion des statuts de santé +observe.title.content.hookPositions=Gestion des positions d'hameçon +observe.title.content.hookSizes=Gestion des tailles d'hameçon +observe.title.content.hookTypes=Gestion des types d'hameçon +observe.title.content.itemHorizontalPositions=Gestion des localisations de l'élément sur la ligne mère +observe.title.content.itemVerticalPositions=Gestion des localisations de l'élément sur l'avançon +observe.title.content.lengthWeightParameters=Gestion des paramétrages taille-poids +observe.title.content.lightsticksColors=Gestion des couleurs de baton lumineux +observe.title.content.lightsticksTypes=Gestion des types de baton lumineux +observe.title.content.lineTypes=Gestion des types de ligne +observe.title.content.maturityStatuss=Gestion des maturité +observe.title.content.mitigationTypes=Gestion des types de mesure d'atténuation +observe.title.content.objectFates=Gestion des devenirs objet +observe.title.content.objectOperations=Gestion des opérations objet +observe.title.content.objectTypes=Gestion des types d'objet +observe.title.content.observedSystems=Gestion des systèmes observés +observe.title.content.oceans=Gestion des océans +observe.title.content.organisms=Gestion des organismes +observe.title.content.persons=Gestion des observateurs +observe.title.content.programs=Gestion des programmes +observe.title.content.reasonForDiscards=Gestion des raisons de rejet +observe.title.content.reasonForNoFishings=Gestion des non coup de senne +observe.title.content.reasonForNullSets=Gestion des causes coup nul +observe.title.content.sensorBrands=Gestion des marques de capteur +observe.title.content.sensorDataFormats=Gestion des formats de données de capteur +observe.title.content.sensorTypes=Gestion des types de capteur +observe.title.content.settingShapes=Gestion des formes au filage +observe.title.content.sexx=Gestion des sexes +observe.title.content.sizeMeasureTypes=Gestion des types de mesure de taille +observe.title.content.speciesFates=Gestion des devenir d'espèces +observe.title.content.speciesGroupSpeciess=Gestion des groupes d'espèces +observe.title.content.speciesLists=Gestion des listes d'espèces +observe.title.content.speciesStatuss=Gestion des statuts d'espèces +observe.title.content.speciess=Gestion des espèces +observe.title.content.stomacFullnesss=Gestion des niveaux de remplissage de l'estomac +observe.title.content.surroundingActivitys=Gestion des activités environnantes +observe.title.content.transmittingBuoyOperations=Gestion des opérations sur balise +observe.title.content.transmittingBuoyTypes=Gestion des types de balise +observe.title.content.tripTypes=Gestion des types de marée +observe.title.content.vesselActivityLonglines=Gestion des types d'activité +observe.title.content.vesselActivitySeines=Gestion des types d'activités +observe.title.content.vesselSizeCategoryx=Gestion des catégories de navires +observe.title.content.vesselTypex=Gestion des types de vessel +observe.title.content.vesselx=Gestion des bateaux +observe.title.content.weightCategory=Gestion des catégories poids +observe.title.content.weightMeasureTypes=Gestion des types de mesure de poids +observe.title.content.windSpeeds=Gestion des vents Beaufort +observe.title.create.local.db=Chargement d'une base locale +observe.title.delete=Confirmation de suppression +observe.title.error.dialog=Une erreur est survenue\! +observe.title.exportData=Exporter les données +observe.title.exportData.tip=Exporter les données utilisateurs vers obstuna +observe.title.h2.server.parameters=Paramétrage de la base locale en mode serveur +observe.title.import.localDB=Imcporter une base locale depuis une sauvegarde +observe.title.importGPS=Import GPS +observe.title.importGPS.tip=Importer un fichier de trace GPS +observe.title.load.remote.db=Chargement d'une base distante +observe.title.need.confirm=Une confirmation de votre part est requise... +observe.title.need.confirm.to.desactivate.referentiel=Une confirmation de votre part est requise pour désactiver un référentiel... +observe.title.no.local.db.found=Aucune base locale trouvée +observe.title.report=Aide à la génération de rapport +observe.title.report.tip=Aide à la génération du rapport de fin d'embarquement +observe.title.save.localDB=Sauver la base locale vers une fichier +observe.title.save.remoteDB=Sauver la base distante vers un fichier +observe.title.show.usage=Listes des utilisations d'un référentiel... +observe.title.speciesList.not.found=Liste d'espèces non trouvée +observe.title.storage.info=Information sur la source de données +observe.title.synchronize=Synchronisation du référentiel +observe.title.synchronize.tip=Opération de synchronisation du référentiel de la base locale +observe.title.technical.informations=Informations techniques du référentiel %1$s +observe.title.unique.key=Clefs métier du référentiel %1$s +observe.title.validate=Validation des données +observe.title.validate.tip=Valider les données d'une source de données +observe.title.welcome.admin=Observe Administrateur +observe.tree.activityLongline=Activités +observe.tree.activityLongline.unsaved=Nouvelle activité +observe.tree.activitySeine=Activités +observe.tree.activitySeine.unsaved=Nouvelle activité +observe.tree.baitHaulingStatus=Status de l'appât au virage +observe.tree.baitSettingStatus=Status de l'appât au filage +observe.tree.baitType=Type d'appât +observe.tree.catchFateLongline=Devenir capture +observe.tree.catchLongline=Captures +observe.tree.country=Pays +observe.tree.detectionMode=Mode détection +observe.tree.encounter=Rencontres +observe.tree.encounterType=Type de rencontre +observe.tree.floatingObject.unsaved=Nouveau DCP +observe.tree.fpaZone=Zone FPA +observe.tree.gear=Équipement +observe.tree.gearCaracteristic=Caractéristique d'un équipement +observe.tree.gearCaracteristicType=Type de caractéristique d'équipement +observe.tree.gearUseFeaturesLongline=Équipements +observe.tree.gearUseFeaturesSeine=Équipements +observe.tree.harbour=Port +observe.tree.healthness=Status de la capture +observe.tree.hookPosition=Position du hameçon +observe.tree.hookSize=Taille d'hameçon +observe.tree.hookType=Type d'hameçon +observe.tree.itemHorizontalPosition=Localisation de l'élément sur la ligne mère +observe.tree.itemVerticalPosition=Localisation de l'élément sur l'avançon +observe.tree.lengthWeightParameter=Relation Taille-Poids +observe.tree.lightsticksColor=Couleur de baton lumineux +observe.tree.lightsticksType=Type de baton lumineux +observe.tree.lineType=Type de ligne +observe.tree.longlineDetailComposition=Schéma de palangre +observe.tree.longlineGlobalComposition=Composition +observe.tree.maturityStatus=Maturité +observe.tree.mitigationType=Type de mesure d'atténuation +observe.tree.nonTargetCatch=Faune accessoire conservée ou rejetée +observe.tree.nonTargetSample=Echantillon faune accessoire +observe.tree.objectFate=Devenir de l'objet +observe.tree.objectObservedSpecies=Faune observée +observe.tree.objectOperation=Opération sur l'objet +observe.tree.objectSchoolEstimate=Estimation banc objet +observe.tree.objectType=Type d'objet +observe.tree.observedSystem=Système observé +observe.tree.ocean=Océan +observe.tree.organism=Organisme +observe.tree.person=Personne +observe.tree.program=Programme +observe.tree.reasonForDiscard=Raison rejet +observe.tree.reasonForNoFishing=Raison de non coup de Senne +observe.tree.reasonForNullSet=Cause coup nul +observe.tree.reference.common=Référentiel commun +observe.tree.reference.longline=Référentiel Palangre +observe.tree.reference.seine=Référentiel Senne +observe.tree.route=Routes +observe.tree.route.unsaved=Nouvelle route +observe.tree.schoolEstimate=Estimation banc +observe.tree.sensorBrand=Marque de capteur +observe.tree.sensorDataFormat=Format de données de capteur +observe.tree.sensorType=Type de capteur +observe.tree.sensorUsed=Capteurs utilisés +observe.tree.setLongline=Détails de l'opération +observe.tree.setLongline.unsaved=Nouvelle opération de pêche +observe.tree.setSeine=Calée +observe.tree.setSeine.unsaved=Nouvelle calée +observe.tree.settingShape=Forme au filage +observe.tree.sex=Sexe +observe.tree.sizeMeasureType=Type de mesure de taille +observe.tree.species=Espèce +observe.tree.speciesFate=Devenir espèce +observe.tree.speciesGroup=Groupe espèce +observe.tree.speciesList=Liste d'espèces +observe.tree.speciesStatus=Statut faune observée +observe.tree.stomacFullness=Niveau de remplissage de l'estomac +observe.tree.surroundingActivity=Activité environnante +observe.tree.targetCatch=Capture cible +observe.tree.targetDiscarded=Rejet de thon +observe.tree.targetSample=Echantillon thon rejeté +observe.tree.targetSampleCapture=Echantillon thon capturé +observe.tree.tdr=Enregistreurs de profondeur +observe.tree.transmittingBuoyOperation=Opération balise +observe.tree.transmittingBuoyType=Type de balise +observe.tree.tripLongline.unsaved=Nouvelle marée +observe.tree.tripSeine.unsaved=Nouvelle marée +observe.tree.tripType=Type de marée +observe.tree.vessel=Bateau +observe.tree.vesselActivityLongline=Activité bateau +observe.tree.vesselActivitySeine=Activité bateau +observe.tree.vesselSizeCategory=Catégorie de bateau +observe.tree.vesselType=Type de pêcherie +observe.tree.weightCategory=Catégorie de poids +observe.tree.weightMeasureType=Type de mesure de poids +observe.tree.wind=Vent Beaufort +observe.tripLongline.captain=Capitaine +observe.tripLongline.dataEntryOperator=Opérateur de saisie +observe.tripLongline.endDate=Date fin +observe.tripLongline.homeId=Id métier +observe.tripLongline.message.active.found=Une marée est ouverte. +observe.tripLongline.message.active.found.for.other.program=Une marée ouverte existe dans un autre programme. +observe.tripLongline.message.creating=La marée est en cours de création. +observe.tripLongline.message.no.active.found=Aucune marée ouverte, vous pouvez soit en créer une nouvelle, soit en réouvrir une. +observe.tripLongline.message.not.open=La marée courante n'est pas ouverte, aucune modification possible. +observe.tripLongline.message.updating=La maréee est en cours de modification. +observe.tripLongline.observer=Observateur +observe.tripLongline.ocean=Océan +observe.tripLongline.startDate=Date début +observe.tripLongline.tab.general=Caractéristiques +observe.tripLongline.tab.map=Carte +observe.tripLongline.title=Marée +observe.tripLongline.totalFishingOperationsNumber=Nombre total d'opérations de pêche +observe.tripLongline.tripType=Type de marée +observe.tripLongline.vessel=Navire +observe.tripSeine.message.active.found=Une marée est ouverte. +observe.tripSeine.message.active.found.for.other.program=Une marée ouverte existe dans un autre programme. +observe.tripSeine.message.creating=La marée est en cours de création. +observe.tripSeine.message.no.active.found=Aucune marée ouverte, vous pouvez soit en créer une nouvelle, soit en réouvrir une. +observe.tripSeine.message.not.open=La marée courante n'est pas ouverte, aucune modification possible. +observe.tripSeine.message.updating=La maréee est en cours de modification. +observe.tripSeine.tab.general=Caractéristiques +observe.tripSeine.tab.map=Carte +observe.tripSeine.title=Marée observe.validation.model.type.all= observe.validation.model.type.all.description= observe.validation.model.type.data= observe.validation.model.type.data.description= observe.validation.model.type.referentiel= observe.validation.model.type.referentiel.description= -observe.validation.report.contextName= -observe.validation.report.entities.with.messages= -observe.validation.report.entity= -observe.validation.report.scopes= -observe.validation.report.title= -observe.vessel.tab.general= -observe.vessel.tab.other= -observe.view.message= -observe.view.navigation= -observe.view.server= -observe.warning.nimbus.landf= -observe.warning.no.ui= -ui.main.body.synchro.action.copy.to.clipBoard= +observe.validation.report.contextName=Context de validation utilisé \: %1$s +observe.validation.report.entities.with.messages=Nombre d'entités avec des messages \: %1$s +observe.validation.report.entity=Entité %1$s '%2$s' Nombre de messages %3$s (sur %4$s scope(s)). +observe.validation.report.scopes=Scopes de validation utilisés \: %1$s +observe.validation.report.title=Rapport de validation généré le %1$s +observe.vessel.tab.general=Caractéristiques générales +observe.vessel.tab.other=Autres caractéristiques +observe.view.message=Messages +observe.view.navigation=Navigation +observe.view.server=Base locale en mode serveur +observe.warning.nimbus.landf=Le look and Feel Nimbus n'a pas été trouvé, il faut au moins la version 1.6u10 de java. +observe.warning.no.ui=Aucun environnement graphique détecté +observeweb.configuration.description= +ui.main.body.synchro.action.copy.to.clipBoard=Copier le contenu dans le presse-papier diff --git a/observe-application-swing/src/main/resources/observeSwing.conf b/observe-application-swing/src/main/resources/observeSwing.conf new file mode 100644 index 0000000..bb05deb --- /dev/null +++ b/observe-application-swing/src/main/resources/observeSwing.conf @@ -0,0 +1,5 @@ +observe.devMode=${devMode} +observe.build.version=${project.version} +observe.build.date=${buildDate} +observe.build.number=${buildNumber} +observe.model.version=${observe.model.version} \ No newline at end of file diff --git a/observe-application-swing/src/test/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionValidatorServiceTest.java b/observe-application-swing/src/test/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionValidatorServiceTest.java index 694cf8b..74a1451 100644 --- a/observe-application-swing/src/test/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionValidatorServiceTest.java +++ b/observe-application-swing/src/test/java/fr/ird/observe/ui/content/impl/longline/LonglineDetailCompositionValidatorServiceTest.java @@ -22,9 +22,9 @@ package fr.ird.observe.ui.content.impl.longline; * #L% */ +import fr.ird.observe.ObserveServiceHelper; +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.DecoratorService; -import fr.ird.observe.business.ObserveApplicationContext; -import fr.ird.observe.business.ObserveServiceHelper; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.longline.BasketDto; import fr.ird.observe.services.dto.longline.BranchlineDto; @@ -62,7 +62,7 @@ public class LonglineDetailCompositionValidatorServiceTest { public void setUp() throws Exception { ObserveServiceHelper.close(); - ObserveApplicationContext applicationContext = new ObserveApplicationContext(); + ObserveSwingApplicationContext applicationContext = new ObserveSwingApplicationContext(); ObserveServiceHelper.set(applicationContext); DecoratorService decoratorService = new DecoratorService(ReferentialLocale.FR); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java index ab5cf7e..025bb3c 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java @@ -142,7 +142,8 @@ public class DataSourceServiceController extends ObserveServiceControllerSupport observeDataSourceConnection.canReadReferential(), observeDataSourceConnection.canWriteReferential(), observeDataSourceConnection.canReadData(), - observeDataSourceConnection.canWriteData() + observeDataSourceConnection.canWriteData(), + observeDataSourceConnection.getVersion() ); return dataSourceConnection; diff --git a/observe-entities/pom.xml b/observe-entities/pom.xml index ff8aebf..bf0c74c 100644 --- a/observe-entities/pom.xml +++ b/observe-entities/pom.xml @@ -151,6 +151,13 @@ <include>*.properties</include> </includes> </resource> + <resource> + <directory>src/main/xmi</directory> + <filtering>true</filtering> + <includes> + <include>*.properties</include> + </includes> + </resource> </resources> <testResources> <testResource> @@ -163,6 +170,55 @@ <plugins> <plugin> + + <artifactId>maven-antrun-plugin</artifactId> + <inherited>false</inherited> + <executions> + + <!-- on recopie le les fichiers de modèle pour appliquer les filtres --> + <execution> + <id>copy model properties</id> + <phase>generate-sources</phase> + <configuration> + <tasks> + <copy verbose="true" failonerror="false" overwrite="true" filtering="true" + todir="${project.build.directory}/xmi"> + <filterset> + <filter value="${observe.model.version}" token="observe.model.version" /> + </filterset> + <fileset dir="${basedir}/src/main/xmi"> + <include name="*.properties"/> + </fileset> + </copy> + </tasks> + </configuration> + <goals> + <goal>run</goal> + </goals> + </execution> + + <execution> + <id>copy model zargo</id> + <phase>generate-sources</phase> + <configuration> + <tasks> + <copy verbose="true" failonerror="false" overwrite="true" + todir="${project.build.directory}/xmi"> + <fileset dir="${basedir}/src/main/xmi"> + <include name="*.zargo"/> + </fileset> + </copy> + </tasks> + </configuration> + <goals> + <goal>run</goal> + </goals> + </execution> + + </executions> + </plugin> + + <plugin> <groupId>org.nuiton.eugene</groupId> <artifactId>eugene-maven-plugin</artifactId> <configuration> @@ -175,9 +231,9 @@ <id>generate-persistence</id> <configuration> <inputs> - <input>zargo:src/main/xmi:observe-common.zargo</input> - <input>zargo:src/main/xmi:observe-seine.zargo</input> - <input>zargo:src/main/xmi:observe-longline.zargo</input> + <input>zargo:target/xmi:observe-common.zargo</input> + <input>zargo:target/xmi:observe-seine.zargo</input> + <input>zargo:target/xmi:observe-longline.zargo</input> </inputs> <!--org.nuiton.eugene.java.JavaInterfaceTransformer,--> <templates> diff --git a/observe-entities/src/main/xmi/observe-common.properties b/observe-entities/src/main/xmi/observe-common.properties index a59d1d4..3308c19 100644 --- a/observe-entities/src/main/xmi/observe-common.properties +++ b/observe-entities/src/main/xmi/observe-common.properties @@ -19,7 +19,7 @@ # <http://www.gnu.org/licenses/gpl-3.0.html>. # #L% ### -model.tagvalue.version=5.0 +model.tagvalue.version=@observe.model.version@ model.tagvalue.notGenerateToString=true model.tagvalue.generateForeignKeyNames=true model.tagvalue.generatePropertyChangeSupport =true diff --git a/observe-entities/src/main/xmi/observe-longline.properties b/observe-entities/src/main/xmi/observe-longline.properties index 64a0d53..ebc8a7d 100644 --- a/observe-entities/src/main/xmi/observe-longline.properties +++ b/observe-entities/src/main/xmi/observe-longline.properties @@ -19,7 +19,7 @@ # <http://www.gnu.org/licenses/gpl-3.0.html>. # #L% ### -model.tagvalue.version=5.0 +model.tagvalue.version=@observe.model.version@ model.tagvalue.notGenerateToString=true model.tagvalue.generateOperatorForDAOHelper=true model.tagvalue.generateForeignKeyNames=true diff --git a/observe-entities/src/main/xmi/observe-seine.properties b/observe-entities/src/main/xmi/observe-seine.properties index 3d6b241..7b40a04 100644 --- a/observe-entities/src/main/xmi/observe-seine.properties +++ b/observe-entities/src/main/xmi/observe-seine.properties @@ -19,7 +19,7 @@ # <http://www.gnu.org/licenses/gpl-3.0.html>. # #L% ### -model.tagvalue.version=5.0 +model.tagvalue.version=@observe.model.version@ model.tagvalue.notGenerateToString=true model.tagvalue.generateOperatorForDAOHelper=true model.tagvalue.generateForeignKeyNames=true diff --git a/observe-services-configuration-api/pom.xml b/observe-services-configuration-api/pom.xml index 83a1b1c..670870b 100644 --- a/observe-services-configuration-api/pom.xml +++ b/observe-services-configuration-api/pom.xml @@ -29,6 +29,12 @@ <artifactId>guava</artifactId> </dependency> + <!-- Nuiton --> + <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-utils</artifactId> + </dependency> + <!-- Logging --> <dependency> <groupId>org.slf4j</groupId> diff --git a/observe-services-configuration-api/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConnection.java b/observe-services-configuration-api/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConnection.java index ef37453..e16c9bc 100644 --- a/observe-services-configuration-api/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConnection.java +++ b/observe-services-configuration-api/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConnection.java @@ -22,6 +22,8 @@ package fr.ird.observe.services.configuration; * #L% */ +import org.nuiton.util.version.Version; + /** * Représente une source de donnée une fois la connexion acceptée. * @@ -56,4 +58,6 @@ public interface ObserveDataSourceConnection { */ boolean canWriteData(); + Version getVersion(); + } diff --git a/observe-services-configuration-api/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConnectionSupport.java b/observe-services-configuration-api/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConnectionSupport.java index 73ea41f..a7b52fb 100644 --- a/observe-services-configuration-api/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConnectionSupport.java +++ b/observe-services-configuration-api/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConnectionSupport.java @@ -23,6 +23,7 @@ package fr.ird.observe.services.configuration; */ import com.google.common.base.MoreObjects; +import org.nuiton.util.version.Version; import java.util.Objects; @@ -43,16 +44,20 @@ public abstract class ObserveDataSourceConnectionSupport implements ObserveDataS protected final boolean writeData; + protected final Version version; + protected ObserveDataSourceConnectionSupport(String authenticationToken, boolean readReferential, boolean writeReferential, boolean readData, - boolean writeData) { + boolean writeData, + Version version) { this.authenticationToken = authenticationToken; this.writeData = writeData; this.readReferential = readReferential; this.writeReferential = writeReferential; this.readData = readData; + this.version = version; } public String getAuthenticationToken() { @@ -80,6 +85,11 @@ public abstract class ObserveDataSourceConnectionSupport implements ObserveDataS } @Override + public Version getVersion() { + return version; + } + + @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof ObserveDataSourceConnectionSupport)) return false; @@ -100,6 +110,7 @@ public abstract class ObserveDataSourceConnectionSupport implements ObserveDataS .add("writeReferential", writeReferential) .add("readData", readData) .add("writeData", writeData) + .add("version", version) .toString(); } diff --git a/observe-services-configuration-rest/pom.xml b/observe-services-configuration-rest/pom.xml index 4bbbb64..6e7ced9 100644 --- a/observe-services-configuration-rest/pom.xml +++ b/observe-services-configuration-rest/pom.xml @@ -36,6 +36,12 @@ <artifactId>guava</artifactId> </dependency> + <!-- Nuiton --> + <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-utils</artifactId> + </dependency> + <!-- Logging --> <dependency> <groupId>org.slf4j</groupId> diff --git a/observe-services-configuration-rest/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConnectionRest.java b/observe-services-configuration-rest/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConnectionRest.java index 2fd0643..1cca594 100644 --- a/observe-services-configuration-rest/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConnectionRest.java +++ b/observe-services-configuration-rest/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConnectionRest.java @@ -22,6 +22,8 @@ package fr.ird.observe.services.configuration; * #L% */ +import org.nuiton.util.version.Version; + import java.net.URL; /** @@ -38,8 +40,9 @@ public class ObserveDataSourceConnectionRest extends ObserveDataSourceConnection boolean readReferential, boolean writeReferential, boolean readData, - boolean writeData) { - super(authenticationToken, readReferential, writeReferential, readData, writeData); + boolean writeData, + Version version) { + super(authenticationToken, readReferential, writeReferential, readData, writeData, version); this.serverUrl = serverUrl; } diff --git a/observe-services-configuration-topia/pom.xml b/observe-services-configuration-topia/pom.xml index cac2c0e..5787cf8 100644 --- a/observe-services-configuration-topia/pom.xml +++ b/observe-services-configuration-topia/pom.xml @@ -44,10 +44,10 @@ </dependency> <!-- Nuiton --> - <!--dependency> + <dependency> <groupId>org.nuiton</groupId> <artifactId>nuiton-utils</artifactId> - </dependency--> + </dependency> <!-- persistence --> <!--dependency> diff --git a/observe-services-configuration-topia/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConnectionTopia.java b/observe-services-configuration-topia/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConnectionTopia.java index 1736bab..26d13c0 100644 --- a/observe-services-configuration-topia/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConnectionTopia.java +++ b/observe-services-configuration-topia/src/main/java/fr/ird/observe/services/configuration/ObserveDataSourceConnectionTopia.java @@ -22,6 +22,8 @@ package fr.ird.observe.services.configuration; * #L% */ +import org.nuiton.util.version.Version; + /** * Created on 04/09/15. * @@ -33,8 +35,9 @@ public class ObserveDataSourceConnectionTopia extends ObserveDataSourceConnectio boolean readReferential, boolean writeReferential, boolean readData, - boolean writeData) { - super(authenticationToken, readReferential, writeReferential, readData, writeData); + boolean writeData, + Version version) { + super(authenticationToken, readReferential, writeReferential, readData, writeData, version); } } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveJdbcHelper.java b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveJdbcHelper.java index 0b8d347..c5197de 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveJdbcHelper.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveJdbcHelper.java @@ -5,6 +5,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.jdbc.JdbcConfiguration; import org.nuiton.topia.persistence.jdbc.JdbcHelper; +import org.nuiton.util.version.Version; +import org.nuiton.util.version.Versions; import java.sql.Connection; import java.sql.DatabaseMetaData; @@ -56,4 +58,37 @@ public class ObserveJdbcHelper extends JdbcHelper { } + public Version getVersion() { + Version version = Version.VZERO; + + Connection connection = null; + PreparedStatement preparedStatement = null; + try { + connection = openConnection(); + // la connexion est reussie, on recherche les droits de + // récupération de la version de la base + preparedStatement = connection.prepareStatement("SELECT version FROM tms_version;"); + ResultSet resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + String versionStr = resultSet.getString(1); + version = Versions.valueOf(versionStr); + } + + return version; + + } catch (SQLException e) { + throw new RuntimeException(e); + } finally { + closeQuietly(preparedStatement); + closeQuietly(connection); + } + + + + + + + } + } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java index 1d401b2..53d2820 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java @@ -42,6 +42,7 @@ import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationExce import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.jdbc.JdbcHelper; +import org.nuiton.util.version.Version; import java.io.File; import java.io.IOException; @@ -289,6 +290,12 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS boolean readData; boolean writeData; + Version version; + + ObserveJdbcHelper observeJdbcHelper = new ObserveJdbcHelper(topiaConfiguration); + + version = observeJdbcHelper.getVersion(); + if (dataSourceConfiguration.isH2Database()) { // Sur une base H2, on a le droit de tout lire, mais uniquement d'écrire les données @@ -299,8 +306,6 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS } else { - ObserveJdbcHelper observeJdbcHelper = new ObserveJdbcHelper(topiaConfiguration); - // on recherche les droits de l'utilisateur sur cette base //TODO chemit 2010-10-28 : il vaudrait mieux utiliser des fonctions postgres adéquates qui elle sont fiables... @@ -348,7 +353,8 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS readReferential, writeReferential, readData, - writeData); + writeData, + version); return dataSourceConnection; } diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/ObserveDataSourceConnectionTopiaTaiste.java b/observe-services-topia/src/test/java/fr/ird/observe/services/ObserveDataSourceConnectionTopiaTaiste.java index c106377..735aa5c 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/ObserveDataSourceConnectionTopiaTaiste.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/ObserveDataSourceConnectionTopiaTaiste.java @@ -1,6 +1,7 @@ package fr.ird.observe.services; import fr.ird.observe.services.configuration.ObserveDataSourceConnectionTopia; +import org.nuiton.util.version.Version; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com @@ -9,7 +10,7 @@ public class ObserveDataSourceConnectionTopiaTaiste extends ObserveDataSourceCon public ObserveDataSourceConnectionTopiaTaiste(String authenticationToken) { // on se donne tout les droit pour pouvoir tout tester - super(authenticationToken, true, true, true, true); + super(authenticationToken, true, true, true, true, Version.VZERO); } } diff --git a/pom.xml b/pom.xml index cf9b610..7fbc20d 100644 --- a/pom.xml +++ b/pom.xml @@ -151,6 +151,9 @@ <buildDate>${maven.build.timestamp}</buildDate> <devMode>true</devMode> + <!--Modèle version--> + <observe.model.version>5.0</observe.model.version> + </properties> <repositories> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm