mailman.cloud.codelutin.com
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

Observe-commits

Thread Start a new thread
Download
Threads by month
  • ----- 2026 -----
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2025 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2021 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2020 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2019 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2018 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2017 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2016 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2015 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2014 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2013 -----
  • December
  • November
  • October
  • September
observe-commits@list.forge.codelutin.com

October 2017

  • 1 participants
  • 29 discussions
[Git][ultreiaio/ird-observe][develop] optimize i18n + move some code
by Tony CHEMIT 13 Oct '17

13 Oct '17
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 242e27c2 by Tony CHEMIT at 2017-10-13T03:24:03+02:00 optimize i18n + move some code - - - - - 24 changed files: - client-configuration/pom.xml - client-configuration/src/main/java/fr/ird/observe/client/configuration/ClientConfig.java - client/pom.xml - client/src/main/java/fr/ird/observe/client/action/form/CopyFloatingObjectPartToLeftAction.java - client/src/main/java/fr/ird/observe/client/action/form/CopyFloatingObjectPartToRightAction.java - client/src/main/java/fr/ird/observe/client/form/ObserveFormUIInitializerContext.java - client/src/main/java/fr/ird/observe/client/form/simple/seine/FloatingObjectUI.jaxx - client/src/main/java/fr/ird/observe/client/form/simple/seine/FloatingObjectUIHandler.java - client/src/main/java/fr/ird/observe/client/form/simple/seine/dcp/FloatingObjectPartLegendTreeCellRenderer.java → client/src/main/java/fr/ird/observe/client/util/dcp/FloatingObjectPartLegendTreeCellRenderer.java - client/src/main/java/fr/ird/observe/client/form/simple/seine/dcp/FloatingObjectPartsTableCellEditor.java → client/src/main/java/fr/ird/observe/client/util/dcp/FloatingObjectPartsTableCellEditor.java - client/src/main/java/fr/ird/observe/client/form/simple/seine/dcp/FloatingObjectPartsTableCellRenderer.java → client/src/main/java/fr/ird/observe/client/util/dcp/FloatingObjectPartsTableCellRenderer.java - client/src/main/java/fr/ird/observe/client/form/simple/seine/dcp/FloatingObjectPartsTreeNode.java → client/src/main/java/fr/ird/observe/client/util/dcp/FloatingObjectPartsTreeNode.java - client/src/main/java/fr/ird/observe/client/form/simple/seine/dcp/FloatingObjectPartsTreeTableModel.java → client/src/main/java/fr/ird/observe/client/util/dcp/FloatingObjectPartsTreeTableModel.java - client/src/main/resources/i18n/client_en_GB.properties - client/src/main/resources/i18n/client_es_ES.properties - client/src/main/resources/i18n/client_fr_FR.properties - dto/src/main/resources/i18n/dto_en_GB.properties - dto/src/main/resources/i18n/dto_es_ES.properties - dto/src/main/resources/i18n/dto_fr_FR.properties - pom.xml - validation/pom.xml - validation/src/main/resources/i18n/validation_en_GB.properties - validation/src/main/resources/i18n/validation_es_ES.properties - validation/src/main/resources/i18n/validation_fr_FR.properties Changes: ===================================== client-configuration/pom.xml ===================================== --- a/client-configuration/pom.xml +++ b/client-configuration/pom.xml @@ -61,6 +61,10 @@ <groupId>fr.ird.observe.toolkit</groupId> <artifactId>common-service</artifactId> </dependency> + <dependency> + <groupId>fr.ird.observe.toolkit</groupId> + <artifactId>common-client</artifactId> + </dependency> <!-- commons dependencies --> <dependency> ===================================== client-configuration/src/main/java/fr/ird/observe/client/configuration/ClientConfig.java ===================================== --- a/client-configuration/src/main/java/fr/ird/observe/client/configuration/ClientConfig.java +++ b/client-configuration/src/main/java/fr/ird/observe/client/configuration/ClientConfig.java @@ -27,6 +27,7 @@ import com.google.common.collect.Sets; import com.google.gson.Gson; import fr.ird.observe.client.constants.CreationMode; import fr.ird.observe.client.constants.DbMode; +import fr.ird.observe.client.form.FormUIConfig; import fr.ird.observe.dto.FloatingObjectPreset; import fr.ird.observe.dto.data.TripMapConfig; import fr.ird.observe.dto.presets.RemoteDataSourceConfiguration; @@ -63,7 +64,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - dev(a)tchemit.fr * @since 1.0 */ -public class ClientConfig extends GeneratedClientConfig implements TripMapConfig { +public class ClientConfig extends GeneratedClientConfig implements TripMapConfig, FormUIConfig { /** le pattern du fichier de sauvegarde d'une base locale */ private static final String BACKUP_DB_PATTERN = "obstuna-local-%1$tF--%1$tk-%1$tM-%1$tS.sql.gz"; ===================================== client/pom.xml ===================================== --- a/client/pom.xml +++ b/client/pom.xml @@ -724,7 +724,6 @@ <enum>fr.ird.observe.client.ui.admin.AdminStep</enum> <enum>fr.ird.observe.client.ui.storage.ObstunaAdminAction</enum> <enum>fr.ird.observe.client.ui.storage.StorageStep</enum> - <enum>fr.ird.observe.client.form.FormUIMode</enum> </enums> </enumerationSet> <enumerationSet> ===================================== client/src/main/java/fr/ird/observe/client/action/form/CopyFloatingObjectPartToLeftAction.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/action/form/CopyFloatingObjectPartToLeftAction.java +++ b/client/src/main/java/fr/ird/observe/client/action/form/CopyFloatingObjectPartToLeftAction.java @@ -27,7 +27,7 @@ import fr.ird.observe.client.ObserveMainUI; import fr.ird.observe.client.action.AbstractContentUIAction; import fr.ird.observe.client.form.FormUI; import fr.ird.observe.client.form.simple.seine.FloatingObjectUI; -import fr.ird.observe.client.form.simple.seine.dcp.FloatingObjectPartsTreeNode; +import fr.ird.observe.client.util.dcp.FloatingObjectPartsTreeNode; import java.util.Enumeration; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; ===================================== client/src/main/java/fr/ird/observe/client/action/form/CopyFloatingObjectPartToRightAction.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/action/form/CopyFloatingObjectPartToRightAction.java +++ b/client/src/main/java/fr/ird/observe/client/action/form/CopyFloatingObjectPartToRightAction.java @@ -27,7 +27,7 @@ import fr.ird.observe.client.ObserveMainUI; import fr.ird.observe.client.action.AbstractContentUIAction; import fr.ird.observe.client.form.FormUI; import fr.ird.observe.client.form.simple.seine.FloatingObjectUI; -import fr.ird.observe.client.form.simple.seine.dcp.FloatingObjectPartsTreeNode; +import fr.ird.observe.client.util.dcp.FloatingObjectPartsTreeNode; import java.util.Enumeration; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; ===================================== client/src/main/java/fr/ird/observe/client/form/ObserveFormUIInitializerContext.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/ObserveFormUIInitializerContext.java +++ b/client/src/main/java/fr/ird/observe/client/form/ObserveFormUIInitializerContext.java @@ -26,7 +26,6 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import fr.ird.observe.client.ObserveClientApplicationContext; import fr.ird.observe.client.ObserveMainUI; -import fr.ird.observe.client.configuration.ClientConfig; import fr.ird.observe.client.form.spi.FormUIInitializerContext; import fr.ird.observe.client.form.spi.ReferentialReferencesFilter; import fr.ird.observe.client.form.spi.init.AbstractButtonInitializer; @@ -57,9 +56,7 @@ import fr.ird.observe.dto.decoration.decorators.ReferentialReferenceDecorator; import fr.ird.observe.dto.reference.DataDtoReference; import fr.ird.observe.dto.reference.ReferentialDtoReference; import java.util.Collection; -import java.util.Locale; import org.nuiton.jaxx.runtime.spi.init.UIComponentInitializer; -import org.nuiton.jaxx.widgets.gis.CoordinateFormat; /** * To initialize ui. @@ -96,12 +93,6 @@ public abstract class ObserveFormUIInitializerContext<U extends FormUI> extends .add(new JTreeInitializer()) .build(); - private final Locale locale; - private final boolean showTimeEditorSlider; - private final boolean showDateTimeEditorSlider; - private final boolean autoPopupNumberEditor; - private final boolean showNumberEditorButton; - private final CoordinateFormat coordinateFormat; private final DecoratorService decoratorService; @Override @@ -110,36 +101,6 @@ public abstract class ObserveFormUIInitializerContext<U extends FormUI> extends } @Override - public final CoordinateFormat getCoordinateFormat() { - return coordinateFormat; - } - - @Override - public final boolean isShowTimeEditorSlider() { - return showTimeEditorSlider; - } - - @Override - public final boolean isShowDateTimeEditorSlider() { - return showDateTimeEditorSlider; - } - - @Override - public final Locale getLocale() { - return locale; - } - - @Override - public final boolean isAutoPopupNumberEditor() { - return autoPopupNumberEditor; - } - - @Override - public final boolean isShowNumberEditorButton() { - return showNumberEditorButton; - } - - @Override public final <R extends DataDtoReference> DataReferenceDecorator<R> getDataReferenceDecorator(Class<R> dtoClass) { return decoratorService.getDataReferenceDecorator(dtoClass); } @@ -151,13 +112,6 @@ public abstract class ObserveFormUIInitializerContext<U extends FormUI> extends protected ObserveFormUIInitializerContext(U ui, Collection<UIComponentInitializer> initializerList, ImmutableMap<String, ReferentialReferencesFilter> filters) { super(ui, initializerList, filters); - ClientConfig config = getMainUI().getConfig(); - locale = config.getLocale(); - showTimeEditorSlider = config.isShowTimeEditorSlider(); - showDateTimeEditorSlider = config.isShowDateTimeEditorSlider(); - autoPopupNumberEditor = config.isAutoPopupNumberEditor(); - showNumberEditorButton = config.isShowNumberEditorButton(); - coordinateFormat = config.getCoordinateFormat(); decoratorService = ObserveClientApplicationContext.get().getDecoratorService(); } ===================================== client/src/main/java/fr/ird/observe/client/form/simple/seine/FloatingObjectUI.jaxx ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/simple/seine/FloatingObjectUI.jaxx +++ b/client/src/main/java/fr/ird/observe/client/form/simple/seine/FloatingObjectUI.jaxx @@ -37,8 +37,8 @@ fr.ird.observe.client.action.global.DeleteDataGlobalUIAction fr.ird.observe.client.action.global.ResetDataGlobalUIAction fr.ird.observe.client.action.global.SaveDataGlobalUIAction - fr.ird.observe.client.form.simple.seine.dcp.FloatingObjectPartsTreeTableModel - fr.ird.observe.client.form.simple.seine.dcp.FloatingObjectPartLegendTreeCellRenderer + fr.ird.observe.client.util.dcp.FloatingObjectPartsTreeTableModel + fr.ird.observe.client.util.dcp.FloatingObjectPartLegendTreeCellRenderer fr.ird.observe.client.util.comment.JComment org.jdesktop.swingx.JXTreeTable ===================================== client/src/main/java/fr/ird/observe/client/form/simple/seine/FloatingObjectUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/simple/seine/FloatingObjectUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/form/simple/seine/FloatingObjectUIHandler.java @@ -26,10 +26,10 @@ import fr.ird.observe.client.ObserveClientApplicationContext; import fr.ird.observe.client.form.FormUIMode; import fr.ird.observe.client.form.ObserveFormUIInitializerContext; import fr.ird.observe.client.form.simple.ObserveMainDataFormUIHandler; -import fr.ird.observe.client.form.simple.seine.dcp.FloatingObjectPartsTableCellEditor; -import fr.ird.observe.client.form.simple.seine.dcp.FloatingObjectPartsTableCellRenderer; -import fr.ird.observe.client.form.simple.seine.dcp.FloatingObjectPartsTreeNode; -import fr.ird.observe.client.form.simple.seine.dcp.FloatingObjectPartsTreeTableModel; +import fr.ird.observe.client.util.dcp.FloatingObjectPartsTableCellEditor; +import fr.ird.observe.client.util.dcp.FloatingObjectPartsTableCellRenderer; +import fr.ird.observe.client.util.dcp.FloatingObjectPartsTreeNode; +import fr.ird.observe.client.util.dcp.FloatingObjectPartsTreeTableModel; import fr.ird.observe.client.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.dto.FloatingObjectPreset; import fr.ird.observe.dto.data.seine.FloatingObjectDto; ===================================== client/src/main/java/fr/ird/observe/client/form/simple/seine/dcp/FloatingObjectPartLegendTreeCellRenderer.java → client/src/main/java/fr/ird/observe/client/util/dcp/FloatingObjectPartLegendTreeCellRenderer.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/simple/seine/dcp/FloatingObjectPartLegendTreeCellRenderer.java +++ b/client/src/main/java/fr/ird/observe/client/util/dcp/FloatingObjectPartLegendTreeCellRenderer.java @@ -1,4 +1,4 @@ -package fr.ird.observe.client.form.simple.seine.dcp; +package fr.ird.observe.client.util.dcp; /*- * #%L ===================================== client/src/main/java/fr/ird/observe/client/form/simple/seine/dcp/FloatingObjectPartsTableCellEditor.java → client/src/main/java/fr/ird/observe/client/util/dcp/FloatingObjectPartsTableCellEditor.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/simple/seine/dcp/FloatingObjectPartsTableCellEditor.java +++ b/client/src/main/java/fr/ird/observe/client/util/dcp/FloatingObjectPartsTableCellEditor.java @@ -1,4 +1,4 @@ -package fr.ird.observe.client.form.simple.seine.dcp; +package fr.ird.observe.client.util.dcp; /*- * #%L ===================================== client/src/main/java/fr/ird/observe/client/form/simple/seine/dcp/FloatingObjectPartsTableCellRenderer.java → client/src/main/java/fr/ird/observe/client/util/dcp/FloatingObjectPartsTableCellRenderer.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/simple/seine/dcp/FloatingObjectPartsTableCellRenderer.java +++ b/client/src/main/java/fr/ird/observe/client/util/dcp/FloatingObjectPartsTableCellRenderer.java @@ -1,4 +1,4 @@ -package fr.ird.observe.client.form.simple.seine.dcp; +package fr.ird.observe.client.util.dcp; /*- * #%L ===================================== client/src/main/java/fr/ird/observe/client/form/simple/seine/dcp/FloatingObjectPartsTreeNode.java → client/src/main/java/fr/ird/observe/client/util/dcp/FloatingObjectPartsTreeNode.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/simple/seine/dcp/FloatingObjectPartsTreeNode.java +++ b/client/src/main/java/fr/ird/observe/client/util/dcp/FloatingObjectPartsTreeNode.java @@ -1,4 +1,4 @@ -package fr.ird.observe.client.form.simple.seine.dcp; +package fr.ird.observe.client.util.dcp; /*- * #%L ===================================== client/src/main/java/fr/ird/observe/client/form/simple/seine/dcp/FloatingObjectPartsTreeTableModel.java → client/src/main/java/fr/ird/observe/client/util/dcp/FloatingObjectPartsTreeTableModel.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/simple/seine/dcp/FloatingObjectPartsTreeTableModel.java +++ b/client/src/main/java/fr/ird/observe/client/util/dcp/FloatingObjectPartsTreeTableModel.java @@ -1,4 +1,4 @@ -package fr.ird.observe.client.form.simple.seine.dcp; +package fr.ird.observe.client.util.dcp; /*- * #%L ===================================== client/src/main/resources/i18n/client_en_GB.properties ===================================== --- a/client/src/main/resources/i18n/client_en_GB.properties +++ b/client/src/main/resources/i18n/client_en_GB.properties @@ -29,7 +29,6 @@ observe.action.close.open.tip=Close open data observe.action.close.storage=Close storage observe.action.close.storage.tip=Close current storage observe.action.close.synchro.tip=close window -observe.action.comment.tip=<html><body><ul><li>To focus on next widget, use accelerator <b>Ctrl + Tab</b></li><li>To focus on previous widget, use accelerator <b>Ctrl + Shift + Tab</b></body></html> observe.action.config.export.required.read.referentiel=Read permission is required on referential for this operation observe.action.config.export.required.write.data=Write permission is required on data for this operation observe.action.configuration=Preferences @@ -48,8 +47,6 @@ observe.action.copyFloatingObjectPartToLeft=Copy values from leaving to arriving observe.action.copyFloatingObjectPartToLeft.tip=Copy values from leaving to arriving observe.action.copyFloatingObjectPartToRight=Copy values from arriving to leaving observe.action.copyFloatingObjectPartToRight.tip=Copy values from arriving to leaving -observe.action.create=Create -observe.action.delete=Delete observe.action.delete.floatingObject.tip=Delete floating object observe.action.delete.remote.tip=Delete remote configuration observe.action.delete.server.tip=Delete server configuration @@ -101,11 +98,8 @@ observe.action.reloadResources.tip=Reload i18n translations observe.action.reset=Reset observe.action.reset.remote.tip=Cancel modifications on remote configuration observe.action.reset.server.tip=Cancel modifications on server configuration -observe.action.resetComment.tip=Reset comment 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.remote.tip=Save remote configuration observe.action.save.server.tip=Save server configuration observe.action.save.tip=Save modifications @@ -114,7 +108,6 @@ 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.show.technical.informations.tip=Show technical informations -observe.action.show.usages.tip=Show all usages of this object observe.action.showConfig.title=Configuration observe.action.site=Site observe.action.site.tip=Go to ObServe's website @@ -326,18 +319,14 @@ observe.admin.resume.operation.not.started=operation not started observe.admin.resume.operation.running=operation is running... observe.backup.done=[%s] Auto backup done (in %s) observe.backup.start=[%s] Start auto backup -observe.choice.cancel=Cancel observe.choice.confirm.delete=Confirm delete observe.choice.confirm.insert=Confirm to insert observe.choice.confirm.replace=Replace -observe.choice.continue=Continue observe.choice.createLocalStorage=Create local storage -observe.choice.doNotSave=Do not save observe.choice.doNothing=Do nothing observe.choice.loadLastAutomaticBackup=Use last automatic backup observe.choice.quit=Quit observe.choice.replace=Replace -observe.choice.save=Save observe.choice.useRemoteStorage=Use a remote storage observe.common.ActivityDto.action.close.tip=Close the opened activity observe.common.ActivityDto.action.closeAndCreate=Next activity @@ -491,26 +480,16 @@ observe.common.CatchLonglineDto.table.speciesCatch.tip=Species observe.common.CatchLonglineDto.tagNumber=Tag number observe.common.CatchLonglineDto.totalWeight=Total weight (kg) observe.common.CatchLonglineDto.weightMeasuresTab=Weights -observe.common.DataDto.action.createEntry.tip=Create a new entry -observe.common.DataDto.action.deleteEntry.tip=Delete entry in edition -observe.common.DataDto.action.newEntry=Add -observe.common.DataDto.action.newEntry.tip=Create a new entry -observe.common.DataDto.action.reset=Reset observe.common.DataDto.action.reset.ersId.tip=Reset id ERS observe.common.DataDto.action.reset.homeId.tip=Reset observe.common.DataDto.action.reset.supportVesselName.tip=Reset observe.common.DataDto.action.reset.tip=Cancel modifications observe.common.DataDto.action.reset.well.tip=Reset -observe.common.DataDto.action.resetEntry.tip=Reset current editing entry -observe.common.DataDto.action.resetNewEntry.tip=cancel creation of new entry observe.common.DataDto.action.resetTagNumber=Reset tag number -observe.common.DataDto.action.saveEntry.tip=Save modifications observe.common.DataDto.message.historical.data=Historical data (can be closed, even if not valid) -observe.common.DataDto.type=<html><body>Data of type <i>%s</i> observe.common.Dto.label.usage.data.title=Data '%1$s' (%2$d occurrences) observe.common.Dto.label.usage.referential.title=Referentiel '%1$s' (%2$d occurrences) observe.common.Dto.lastUpdateDate=Last update date -observe.common.Dto.message.cantWriteData=You are not allow to write data on this data source. observe.common.Dto.technicalInformations=Technical information of %1$s observe.common.Dto.topiaCreateDate=Create date observe.common.Dto.topiaId=Technical id @@ -619,12 +598,6 @@ observe.common.HooksCompositionObsDto.table.hookType=Type observe.common.HooksCompositionObsDto.table.hookType.tip=Type observe.common.HooksCompositionObsDto.table.proportion=Proportion observe.common.HooksCompositionObsDto.table.proportion.tip=Proportion -observe.common.I18nReferentialDto.label4=Label 4 -observe.common.I18nReferentialDto.label5=Label 5 -observe.common.I18nReferentialDto.label6=Label 6 -observe.common.I18nReferentialDto.label7=Label 7 -observe.common.I18nReferentialDto.label8=Label 8 -observe.common.I18nReferentialDto.libelles=Labels observe.common.LengthLengthParameterDto.generalTab=General caracteristics observe.common.LengthLengthParameterDto.inputOutputFormulaInformation=Input to Output formula permits to compute output length from the input length, must contains variable I observe.common.LengthLengthParameterDto.otherTab=Other caracteristics @@ -821,14 +794,9 @@ observe.common.ProgramDto.observationsTab=Observations observe.common.ProgramDto.samplesObservation=Samples observations observe.common.ProgramDto.startDateFinProgram=Start - end of program observe.common.ProgramDto.targetDiscardsObservation=Target discarded observation -observe.common.ReferentialDto.action.showUniqueKeys.tip=Show all natural ids for this type of object -observe.common.ReferentialDto.caracteristics=Caracteristics observe.common.ReferentialDto.codeAndStatus=Code / Status -observe.common.ReferentialDto.message.noEditable=You are not allowed to edit referential. observe.common.ReferentialDto.needComment=Need comment -observe.common.ReferentialDto.obsolete=Referential %s is disabled. observe.common.ReferentialDto.startDateFinValidite=Start - end of validity -observe.common.ReferentialDto.type=<html><body>Referential of type <i>%s</i> observe.common.RouteDto.action.close.tip=Close road observe.common.RouteDto.action.closeAndCreate=Next route observe.common.RouteDto.action.closeAndCreate.tip=Close current route and create a new one @@ -1137,10 +1105,6 @@ observe.common.WithFormula.coefficientsInformation=Coefficients of relations msu observe.common.WithFormula.equation=Equation observe.common.WithFormula.source=Source observe.common.acquisitionMode=Acquisition mode -observe.common.boolean.false=No -observe.common.boolean.null=Undefined -observe.common.boolean.true=Yes -observe.common.comment=Comment observe.common.country=Country observe.common.description=Description observe.common.directory=Directory @@ -1193,9 +1157,6 @@ observe.constant.AdminStep.SYNCHRONIZE=Update referential observe.constant.AdminStep.SYNCHRONIZE.description=Update referential observe.constant.AdminStep.VALIDATE=Validation observe.constant.AdminStep.VALIDATE.description=Validation data -observe.constant.ContentUIMode.CREATE=Object is in create mode -observe.constant.ContentUIMode.READ=Object is not editable -observe.constant.ContentUIMode.UPDATE=Object is in editing mode observe.constant.ObserveModelType.EMPTY=Without trips observe.constant.ObserveModelType.EMPTY.description=Display programs with no trip observe.constant.ObserveModelType.REF=Referential @@ -1222,32 +1183,7 @@ observe.constant.StorageStep.ROLES=Security observe.constant.StorageStep.ROLES.description=Applya security on database roles observe.constant.StorageStep.SELECT_DATA=Data selection observe.constant.StorageStep.SELECT_DATA.description=Select data to export in backup -observe.content.map.action.exportPng=Export -observe.content.map.action.exportPng.tip=Export map in PNG format -observe.content.map.action.zoomIt=Center -observe.content.map.action.zoomIt.tip=Center map on the trip -observe.content.map.action.zoomMoins=Zoom out -observe.content.map.action.zoomMoins.tip=Zoom out -observe.content.map.action.zoomPlus=Zoom in -observe.content.map.action.zoomPlus.tip=Zoom in -observe.content.map.east=East -observe.content.map.export.chooseFile.ok=Exporter -observe.content.map.export.chooseFile.png=PNG image -observe.content.map.export.chooseFile.title=Export map -observe.content.map.export.success=Map exported (%s) -observe.content.map.legend.hauling=Hauling -observe.content.map.legend.setting=setting -observe.content.map.legend.tripBetweenTwoDays=Trip between two days -observe.content.map.legend.tripDay=Day trip -observe.content.map.miles=miles -observe.content.map.north=North -observe.content.map.south=South -observe.content.map.waitLoading=< Please wait while loading the map > -observe.content.map.west=West observe.content.selection.empty=< Please select a node in the navigation tree > -observe.converter.error.float.format=Decimal format not correct for value %s -observe.converter.error.no.convertor=could not convert decimal %s using convertor %s -observe.converter.error.noValue=No value to convert using convertor %s observe.entity.message.updating=object '%1$s' is in editing mode. observe.error.can.not.create.directory=Can't create directory %&$s\! observe.error.storage.could.not.backup.unsane.local.db=Can not save an borken database @@ -1307,8 +1243,6 @@ observe.message.show.usage.for.desactivated2=Some data are using this referentia observe.message.show.usage.for.desactivated3=Those data need to use another enabled referential to be saved. observe.message.show.usage.for.missingReferentials=There is some referentials present in local source but not in centrale one. observe.message.show.usages=List of usage of referential %1$s\: '%2$s' -observe.message.table.editBean.modified=Current entry is modifed and valid. -observe.message.table.editBean.modified.but.invalid=Current entry is modified but not valid. observe.message.updating.floatingObject=Floating object is in edition mode observe.message.updating.referentiel=Referential is in edition mode observe.message.warning.will.be.delete=%1$s\n\nBe ware, export will replace existing data. @@ -1473,7 +1407,6 @@ observe.title.error.dialog=An error occurs\! observe.title.h2.server.parameters=Configuration of local databse in server mode observe.title.import.localDB=Import a local database from a backup 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.reload.i18n=Application need to restart... @@ -1483,19 +1416,9 @@ observe.title.show.usage=Show usages observe.title.storage.info=Storage details observe.title.unique.key=Unique keys used in a referentiel observe.title.welcome.admin=ObServe -observe.tree.action.collapseAll.tip=Collapse all -observe.tree.action.expandAll.tip=Expand all -observe.tree.action.selectAll.tip=Select All -observe.tree.action.unselectAll.tip=Unselect All -observe.type.action.create=Create a new %s -observe.type.action.delete=Delete selected %s -observe.type.action.edit=Edit selected %s -observe.type.action.save=Save %s -observe.type.action.view=View selected %s observe.type.activityLongline.unsaved=New activity observe.type.activitySeine.unsaved=New activity observe.type.floatingObject.unsaved=New DCP -observe.type.list=List of %s observe.type.management=Management of %s observe.type.reference.common=Common Referential observe.type.reference.longline=Longline Referential ===================================== client/src/main/resources/i18n/client_es_ES.properties ===================================== --- a/client/src/main/resources/i18n/client_es_ES.properties +++ b/client/src/main/resources/i18n/client_es_ES.properties @@ -29,7 +29,6 @@ observe.action.close.open.tip=Cierre de los datos abiertos observe.action.close.storage=Cerrar la fuente de datos observe.action.close.storage.tip=Cerrar la fuente de datos usado actualmente observe.action.close.synchro.tip=Cerrar la ventana -observe.action.comment.tip=<html><body><ul><li>To focus on next widget, use accelerator <b>Ctrl + Tab</b></li><li>To focus on previous widget, use accelerator <b>Ctrl + Shift + Tab</b></body></html> \#TODO observe.action.config.export.required.read.referentiel=Debe tener derechos de lectura sobre el referencial de datos para esta operación observe.action.config.export.required.write.data=Debe tener derechos de escritura sobre los datos para esta operación observe.action.configuration=Configuración @@ -48,8 +47,6 @@ observe.action.copyFloatingObjectPartToLeft=Copy values from leaving to arriving observe.action.copyFloatingObjectPartToLeft.tip=Copy values from leaving to arriving \#TODO observe.action.copyFloatingObjectPartToRight=Copy values from arriving to leaving \#TODO observe.action.copyFloatingObjectPartToRight.tip=Copy values from arriving to leaving \#TODO -observe.action.create=Crear -observe.action.delete=Eliminar observe.action.delete.floatingObject.tip=Eliminar el objeto flotante actual observe.action.delete.remote.tip=Delete remote configuration \#TODO observe.action.delete.server.tip=Delete server configuration \#TODO @@ -101,11 +98,8 @@ observe.action.reloadResources.tip=Recargar las traducciones i18n observe.action.reset=Reset \#TODO observe.action.reset.remote.tip=Reset remote configuration \#TODO observe.action.reset.server.tip=Cancel modifications on server configuration \#TODO -observe.action.resetComment.tip=Supprimer le commentaire \#TODO 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.remote.tip=Save remote configuration \#TODO observe.action.save.server.tip=Save server configuration \#TODO observe.action.save.tip=Guardar las modificaciones @@ -114,7 +108,6 @@ observe.action.save.to.file.tip=Hacer una copia de seguridad de la base de datos observe.action.selectNode=Seleccionar el nodo observe.action.selectNode.tip=Seleccionar el nodo observe.action.show.technical.informations.tip=Ver la información técnica -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 @@ -326,18 +319,14 @@ observe.admin.resume.operation.not.started=operación no empezada observe.admin.resume.operation.running=operación en curso... observe.backup.done=[%s] Copia de seguridad automática realizada (en %s) observe.backup.start=[%s] Inicio de copia de seguridad automática -observe.choice.cancel=Cancelar observe.choice.confirm.delete=Eliminar observe.choice.confirm.insert=Confirmer l'insertion \#TODO observe.choice.confirm.replace=Reemplazar -observe.choice.continue=Continuar observe.choice.createLocalStorage=Crear la base local -observe.choice.doNotSave=No grabar observe.choice.doNothing=No hacer nada observe.choice.loadLastAutomaticBackup=Use last automatic backup \#TODO observe.choice.quit=Cerrar observe.choice.replace=Reemplazar -observe.choice.save=Grabar observe.choice.useRemoteStorage=Usar la base de datos remota observe.common.ActivityDto.action.close.tip=Cierre de la actividad abierta observe.common.ActivityDto.action.closeAndCreate=Actividad siguiente @@ -491,26 +480,16 @@ observe.common.CatchLonglineDto.table.speciesCatch.tip=Especie observe.common.CatchLonglineDto.tagNumber=Numéro d'échantillon \#TODO observe.common.CatchLonglineDto.totalWeight=Peso total (kg) observe.common.CatchLonglineDto.weightMeasuresTab=Pesos (kg) -observe.common.DataDto.action.createEntry.tip=Crear una nueva entrada -observe.common.DataDto.action.deleteEntry.tip=Cancelar la edición de la entrada actual -observe.common.DataDto.action.newEntry=Nuevo -observe.common.DataDto.action.newEntry.tip=Crear una nueva entrada -observe.common.DataDto.action.reset=Cancelar observe.common.DataDto.action.reset.ersId.tip=Reiniciar Id ERS observe.common.DataDto.action.reset.homeId.tip=Reiniciar observe.common.DataDto.action.reset.supportVesselName.tip=Reiniciar observe.common.DataDto.action.reset.tip=Cancelar las modificaciones observe.common.DataDto.action.reset.well.tip=Reiniciar -observe.common.DataDto.action.resetEntry.tip=Cancelar la introducción de datos actual. -observe.common.DataDto.action.resetNewEntry.tip=Cancelar la creación de la entrada observe.common.DataDto.action.resetTagNumber=Réinitialiser le numéro d'échantillon \#TODO -observe.common.DataDto.action.saveEntry.tip=Guardar la edición en curso observe.common.DataDto.message.historical.data=Datos históricos (puede cerrarse incluso sin validar) -observe.common.DataDto.type=<html><body>Dato de tipo <i>%s</i> observe.common.Dto.label.usage.data.title=Datos '%1$s' (%2$d ocurrencias) observe.common.Dto.label.usage.referential.title=Referencial '%1$s' (%2$d ocurrencias) observe.common.Dto.lastUpdateDate=Last update date -observe.common.Dto.message.cantWriteData=No tiene autorización para escribir los datos de observadores en esta fuente de datos. observe.common.Dto.technicalInformations=Informaciones técnicas del referencial %1$s observe.common.Dto.topiaCreateDate=Fecha de creación observe.common.Dto.topiaId=Técnicas de identificación @@ -619,12 +598,6 @@ observe.common.HooksCompositionObsDto.table.hookType=Tipo observe.common.HooksCompositionObsDto.table.hookType.tip=Tipo observe.common.HooksCompositionObsDto.table.proportion=Proporción (%) observe.common.HooksCompositionObsDto.table.proportion.tip=Proporción (%) -observe.common.I18nReferentialDto.label4=Texto 4 -observe.common.I18nReferentialDto.label5=Texto 5 -observe.common.I18nReferentialDto.label6=Texto 6 -observe.common.I18nReferentialDto.label7=Texto 7 -observe.common.I18nReferentialDto.label8=Texto 8 -observe.common.I18nReferentialDto.libelles=Textos observe.common.LengthLengthParameterDto.generalTab=Características generales observe.common.LengthLengthParameterDto.inputOutputFormulaInformation=La relation poids permet de calculer la taille de sortie à partir de la taille d'entrée, elle doit contenir la variable I \#TODO observe.common.LengthLengthParameterDto.otherTab=Otras características @@ -821,14 +794,9 @@ observe.common.ProgramDto.observationsTab=Observaciones observe.common.ProgramDto.samplesObservation=Medidas observe.common.ProgramDto.startDateFinProgram=Comienzo - Fin de programa observe.common.ProgramDto.targetDiscardsObservation=Descartes de atún -observe.common.ReferentialDto.action.showUniqueKeys.tip=Ver la tabla de todas las claves métier usadas por este refencial -observe.common.ReferentialDto.caracteristics=Características observe.common.ReferentialDto.codeAndStatus=Código -observe.common.ReferentialDto.message.noEditable=No tiene permisos para editar el referencial. observe.common.ReferentialDto.needComment=Se requiere un comentario -observe.common.ReferentialDto.obsolete=El referencial %1$s está desactivado. observe.common.ReferentialDto.startDateFinValidite=Comienzo - Fin de validez -observe.common.ReferentialDto.type=<html><body>Referencial de tipo <i>%s</i> observe.common.RouteDto.action.close.tip=Cierre de la ruta abierta observe.common.RouteDto.action.closeAndCreate=Ruta siguiente observe.common.RouteDto.action.closeAndCreate.tip=Cierre de la ruta actual y creación de una nueva @@ -1137,10 +1105,6 @@ observe.common.WithFormula.coefficientsInformation=Los coeficientes de relacione observe.common.WithFormula.equation=Relación talla-peso observe.common.WithFormula.source=Source \#TODO observe.common.acquisitionMode=Modo de entrada de datos -observe.common.boolean.false=No -observe.common.boolean.null=Indeterminado -observe.common.boolean.true=Si -observe.common.comment=Comentarios observe.common.country=País observe.common.description=Descripción observe.common.directory=Carpeta @@ -1193,9 +1157,6 @@ observe.constant.AdminStep.SYNCHRONIZE=Actualización del referencial observe.constant.AdminStep.SYNCHRONIZE.description=Actualizar el referencial con una base central observe.constant.AdminStep.VALIDATE=Validación observe.constant.AdminStep.VALIDATE.description=Validación de los datos de una fuente de datos -observe.constant.ContentUIMode.CREATE=Objeto en proceso de creación -observe.constant.ContentUIMode.READ=Objeto no se puede editar -observe.constant.ContentUIMode.UPDATE=Objeto en proceso de edición observe.constant.ObserveModelType.EMPTY=Sans marée\#TODO observe.constant.ObserveModelType.EMPTY.description=Voir les programmes sans marée \#TODO observe.constant.ObserveModelType.REF=Referencial @@ -1222,32 +1183,7 @@ observe.constant.StorageStep.ROLES=Seguridad observe.constant.StorageStep.ROLES.description=Configuración de la seguridad observe.constant.StorageStep.SELECT_DATA=Selección de datos observe.constant.StorageStep.SELECT_DATA.description=Seleccionar los datos a exportar en la copia de seguridad -observe.content.map.action.exportPng=Exportar -observe.content.map.action.exportPng.tip=Exportar el mapa en el formato PNG -observe.content.map.action.zoomIt=Centrar -observe.content.map.action.zoomIt.tip=Centrar el mapa sobre la marea -observe.content.map.action.zoomMoins=Zoom out \#TODO -observe.content.map.action.zoomMoins.tip=Zoom out \#TODO -observe.content.map.action.zoomPlus=Zoom in \#TODO -observe.content.map.action.zoomPlus.tip=Zoom in \#TODO -observe.content.map.east=Este -observe.content.map.export.chooseFile.ok=Exportar -observe.content.map.export.chooseFile.png=imagen PNG -observe.content.map.export.chooseFile.title=Exportar el mapa -observe.content.map.export.success=Mapa exportada (%s) -observe.content.map.legend.hauling=Arrastre -observe.content.map.legend.setting=Calada -observe.content.map.legend.tripBetweenTwoDays=Trayecto entre dos días -observe.content.map.legend.tripDay=Trayecto del día -observe.content.map.miles=milles -observe.content.map.north=Norte -observe.content.map.south=Sur -observe.content.map.waitLoading=< Espere mientras que el mapa se está cargando > -observe.content.map.west=Oeste observe.content.selection.empty=< Veuillez sélectionner un nœud dans l'arbre de navigation > \#TODO -observe.converter.error.float.format=Formato de decimal incorrecto para el valor %s -observe.converter.error.no.convertor=Impossible de convertir el decimal %s con el convertidor %s -observe.converter.error.noValue=Ningún valor necesita ser convertida con el convertidor %s 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.storage.could.not.backup.unsane.local.db=Impossible grabar una base dañada @@ -1307,8 +1243,6 @@ observe.message.show.usage.for.desactivated2=Los objetos están usando actualmen observe.message.show.usage.for.desactivated3=Estos objetos deben usar otro referencial (no desactivado) para poder actualizarse. observe.message.show.usage.for.missingReferentials=Il existe des référentiels présents dans la base locale mais non présents dans la base centrale. \#TODO observe.message.show.usages=Listas de usos de referenciales %1$s \: '%2$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=El objeto flotante está en proceso de modificación. observe.message.updating.referentiel=Se está actualizando el objeto. observe.message.warning.will.be.delete=%1$s\n\nAtención, la exportación reemplazará la marea existente. @@ -1473,7 +1407,6 @@ observe.title.error.dialog=Un error se ha producido\! observe.title.h2.server.parameters=Configuración de la base local en modo servidor observe.title.import.localDB=Importar una base local gracia a una copia de seguridad observe.title.load.remote.db=Cargando una base remota -observe.title.need.confirm=Una confirmación se necesita... observe.title.need.confirm.to.desactivate.referentiel=Una confirmación se necesita para désactivar un referencial... observe.title.no.local.db.found=Ninguna base local fue encontrada observe.title.reload.i18n=Rechargement de l'application nécessaire... \#TODO @@ -1483,19 +1416,9 @@ observe.title.show.usage=Listas de las utilizaciones de un referencial... observe.title.storage.info=Información sobre la fuente de datos observe.title.unique.key=Ids de negocio del referencial %1$s observe.title.welcome.admin=ObServe -observe.tree.action.collapseAll.tip=Cerrar los nudos -observe.tree.action.expandAll.tip=Abrir los nudos -observe.tree.action.selectAll.tip=Seleccionar todo -observe.tree.action.unselectAll.tip=Deseleccionar todo -observe.type.action.create=Crear un objeto de tipo '%s' -observe.type.action.delete=Eliminar el objeto de tipo '%s' seleccionado -observe.type.action.edit=Modificat el objeto de tipo '%s' seleccionado -observe.type.action.save=Guardar las modificaciones sobre el objeto de tipo '%s' -observe.type.action.view=Ver los detalles del objeto de tipo '%s' seleccionado observe.type.activityLongline.unsaved=Nueva actividad observe.type.activitySeine.unsaved=Nueva actividad observe.type.floatingObject.unsaved=Nuevo DCP -observe.type.list=Lista de %s observe.type.management=Gestión de %s observe.type.reference.common=Referencial commun observe.type.reference.longline=Referencial Palangre ===================================== client/src/main/resources/i18n/client_fr_FR.properties ===================================== --- a/client/src/main/resources/i18n/client_fr_FR.properties +++ b/client/src/main/resources/i18n/client_fr_FR.properties @@ -29,7 +29,6 @@ observe.action.close.open.tip=Clôturer la données 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.comment.tip=<html><body><ul><li>Pour accéder au composant suivant, utilisez les raccourci clavier <b>Ctrl + Tab</b></li><li>Pour accéder au composant précédent, utilisez les raccourci clavier <b>Ctrl + Shift + Tab</b></body></html> observe.action.config.export.required.read.referentiel=Lecture sur le référentiel requis pour cette opération observe.action.config.export.required.write.data=Écriture sur les données requis pour cette opération observe.action.configuration=Configuration @@ -48,8 +47,6 @@ observe.action.copyFloatingObjectPartToLeft=Recopier les valeurs du départ vers observe.action.copyFloatingObjectPartToLeft.tip=Recopier les valeurs du départ vers l'arrivée observe.action.copyFloatingObjectPartToRight=Recopier les valeurs de l'arrivée vers de départ observe.action.copyFloatingObjectPartToRight.tip=Recopier les valeurs de l'arrivée vers de départ -observe.action.create=Créer -observe.action.delete=Supprimer observe.action.delete.floatingObject.tip=Supprimer l'objet flottant courant observe.action.delete.remote.tip=Supprimer la configuration observe.action.delete.server.tip=Supprimer la configuration @@ -101,11 +98,8 @@ observe.action.reloadResources.tip=Rétablir les ressources par défaut (toute m observe.action.reset=Réinitialiser observe.action.reset.remote.tip=Annuler les modifications observe.action.reset.server.tip=Annuler les modifications -observe.action.resetComment.tip=Supprimer le commentaire 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.remote.tip=Enregister la configuration observe.action.save.server.tip=Enregister la configuration observe.action.save.tip=Sauver les modifications @@ -114,7 +108,6 @@ observe.action.save.to.file.tip=Effectuer une sauvegarde de la base ouverte observe.action.selectNode=Sélectionner le nœud observe.action.selectNode.tip=Sélectionner le nœud observe.action.show.technical.informations.tip=Voir les information techniques -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 @@ -326,18 +319,14 @@ observe.admin.resume.operation.not.started=opération non démarrée observe.admin.resume.operation.running=opération en cours... observe.backup.done=[%s] Fin de la sauvegarde automatique (en %s) observe.backup.start=[%s] Début de la sauvegarde automatique -observe.choice.cancel=Annuler observe.choice.confirm.delete=Supprimer observe.choice.confirm.insert=Confirmer l'insertion observe.choice.confirm.replace=Remplacer -observe.choice.continue=Continuer observe.choice.createLocalStorage=Créer la base locale -observe.choice.doNotSave=Ne pas enregistrer observe.choice.doNothing=Ne rien faire observe.choice.loadLastAutomaticBackup=Charger la dernière sauvegarde automatique observe.choice.quit=Fermer observe.choice.replace=Remplacer -observe.choice.save=Enregistrer observe.choice.useRemoteStorage=Utiliser une base distante observe.common.ActivityDto.action.close.tip=Clôturer l'activité ouverte observe.common.ActivityDto.action.closeAndCreate=Activité suivante @@ -491,26 +480,16 @@ observe.common.CatchLonglineDto.table.speciesCatch.tip=Espèce observe.common.CatchLonglineDto.tagNumber=Id marque observe.common.CatchLonglineDto.totalWeight=Poids total (kg) observe.common.CatchLonglineDto.weightMeasuresTab=Poids (kg) -observe.common.DataDto.action.createEntry.tip=Créer une nouvelle entrée -observe.common.DataDto.action.deleteEntry.tip=Supprimer l'entrée en cours d'édition -observe.common.DataDto.action.newEntry=Nouveau -observe.common.DataDto.action.newEntry.tip=Créer une nouvelle entrée -observe.common.DataDto.action.reset=Annuler observe.common.DataDto.action.reset.ersId.tip=Réinitialiser l'id ERS observe.common.DataDto.action.reset.homeId.tip=Réinitialiser observe.common.DataDto.action.reset.supportVesselName.tip=Réinitialiser observe.common.DataDto.action.reset.tip=Annuler les modifications observe.common.DataDto.action.reset.well.tip=Réinitialiser -observe.common.DataDto.action.resetEntry.tip=Réinitialiser l'entrée en cours d'édition -observe.common.DataDto.action.resetNewEntry.tip=Annuler la création de la nouvelle entrée observe.common.DataDto.action.resetTagNumber=Réinitialiser le numéro d'échantillon -observe.common.DataDto.action.saveEntry.tip=Sauver l'entrée en cours d'édition observe.common.DataDto.message.historical.data=Donnée historique (peut-être clôturé même si non valide) -observe.common.DataDto.type=<html><body>Donnée de type <i>%s</i> observe.common.Dto.label.usage.data.title=Donnée '%1$s' (%2$d occurrences) observe.common.Dto.label.usage.referential.title=Référentiel '%1$s' (%2$d occurrences) observe.common.Dto.lastUpdateDate=Date de dernière mise à jour -observe.common.Dto.message.cantWriteData=Vous n'êtes pas autorisé à écrire des données observateurs sur cette source de données. observe.common.Dto.technicalInformations=Informations techniques de l'objet de type '%1$s' observe.common.Dto.topiaCreateDate=Date de création observe.common.Dto.topiaId=Identifiant technique @@ -619,12 +598,6 @@ observe.common.HooksCompositionObsDto.table.hookType=Type observe.common.HooksCompositionObsDto.table.hookType.tip=Type observe.common.HooksCompositionObsDto.table.proportion=Proportion (%) observe.common.HooksCompositionObsDto.table.proportion.tip=Proportion (%) -observe.common.I18nReferentialDto.label4=Libellé 4 -observe.common.I18nReferentialDto.label5=Libellé 5 -observe.common.I18nReferentialDto.label6=Libellé 6 -observe.common.I18nReferentialDto.label7=Libellé 7 -observe.common.I18nReferentialDto.label8=Libellé 8 -observe.common.I18nReferentialDto.libelles=Libellés observe.common.LengthLengthParameterDto.generalTab=Caractéristiques générales observe.common.LengthLengthParameterDto.inputOutputFormulaInformation=La relation poids permet de calculer la taille de sortie à partir de la taille d'entrée, elle doit contenir la variable I observe.common.LengthLengthParameterDto.otherTab=Autres caractéristiques @@ -821,14 +794,9 @@ observe.common.ProgramDto.observationsTab=Observations observe.common.ProgramDto.samplesObservation=Mensurations observe.common.ProgramDto.startDateFinProgram=Début - Fin du programme observe.common.ProgramDto.targetDiscardsObservation=Rejets thon -observe.common.ReferentialDto.action.showUniqueKeys.tip=Voir le tableau de toutes les clefs métier utilisées pour ce référentiel -observe.common.ReferentialDto.caracteristics=Caractéristiques observe.common.ReferentialDto.codeAndStatus=Code / Statut -observe.common.ReferentialDto.message.noEditable=Vous n'êtes pas autorisé à éditer le référentiel. observe.common.ReferentialDto.needComment=Nécessite un commentaire -observe.common.ReferentialDto.obsolete=Le référentiel %1$s est désactivé. observe.common.ReferentialDto.startDateFinValidite=Début - fin de validité -observe.common.ReferentialDto.type=<html><body>Référentiel de type <i>%s</i> observe.common.RouteDto.action.close.tip=Clôturer la route ouverte observe.common.RouteDto.action.closeAndCreate=Route suivante observe.common.RouteDto.action.closeAndCreate.tip=Clôturer la route courante et en créer une nouvelle @@ -1137,10 +1105,6 @@ observe.common.WithFormula.coefficientsInformation=Les coefficients des relation observe.common.WithFormula.equation=Relation Taille-Poids observe.common.WithFormula.source=Source observe.common.acquisitionMode=Mode de saisie -observe.common.boolean.false=Non -observe.common.boolean.null=Indéterminé -observe.common.boolean.true=Oui -observe.common.comment=Commentaire observe.common.country=Pays observe.common.description=Description observe.common.directory=Répertoire @@ -1193,9 +1157,6 @@ observe.constant.AdminStep.SYNCHRONIZE=Mise à jour du référentiel observe.constant.AdminStep.SYNCHRONIZE.description=Mettre à jour le référentiel depuis une base centrale observe.constant.AdminStep.VALIDATE=Validation observe.constant.AdminStep.VALIDATE.description=Validation des données d'une source de données -observe.constant.ContentUIMode.CREATE=L'objet est en cours de création -observe.constant.ContentUIMode.READ=L'objet n'est pas éditable -observe.constant.ContentUIMode.UPDATE=L'objet est en cours d'édition observe.constant.ObserveModelType.EMPTY=Sans marée observe.constant.ObserveModelType.EMPTY.description=Voir les programmes sans marée observe.constant.ObserveModelType.REF=Référentiel @@ -1222,32 +1183,7 @@ observe.constant.StorageStep.ROLES=Sécurité observe.constant.StorageStep.ROLES.description=Mise en place de la sécurité observe.constant.StorageStep.SELECT_DATA=Sélection données observe.constant.StorageStep.SELECT_DATA.description=Sélectionner les données à exporter dans la sauvegarde -observe.content.map.action.exportPng=Exporter -observe.content.map.action.exportPng.tip=Exporter la carte au format PNG -observe.content.map.action.zoomIt=Centrer -observe.content.map.action.zoomIt.tip=Centrer la carte sur la marée -observe.content.map.action.zoomMoins=Réduire -observe.content.map.action.zoomMoins.tip=Réduire -observe.content.map.action.zoomPlus=Agrandir -observe.content.map.action.zoomPlus.tip=Agrandir -observe.content.map.east=Est -observe.content.map.export.chooseFile.ok=Exporter -observe.content.map.export.chooseFile.png=image PNG -observe.content.map.export.chooseFile.title=Exporter la carte -observe.content.map.export.success=Carte exportée (%s) -observe.content.map.legend.hauling=Virage -observe.content.map.legend.setting=Filage -observe.content.map.legend.tripBetweenTwoDays=Trajet entre deux jours -observe.content.map.legend.tripDay=Trajet d'une journée -observe.content.map.miles=milles -observe.content.map.north=Nord -observe.content.map.south=Sud -observe.content.map.waitLoading=< Veuillez patienter pendant le chargement de la carte > -observe.content.map.west=Ouest observe.content.selection.empty=< Veuillez sélectionner un nœud dans l'arbre de navigation > -observe.converter.error.float.format=Format de décimal incorrecte pour la valeur %s -observe.converter.error.no.convertor=Impossible de convertir le décimal %s depuis le convertisseur %s -observe.converter.error.noValue=Aucune valeur à convertir pour le convertisseur %s 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.storage.could.not.backup.unsane.local.db=Impossible d'enregistrer une base non endommagée @@ -1307,8 +1243,6 @@ observe.message.show.usage.for.desactivated2=Des objets utilisent actuellement c 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.usage.for.missingReferentials=Il existe des référentiels présents dans la base locale mais non présents dans la base centrale. observe.message.show.usages=Listes des utilisations du référentiel %1$s \: '%2$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.warning.will.be.delete=%1$s\n\nAttention, l'export remplacera la marée existante. @@ -1473,7 +1407,6 @@ observe.title.error.dialog=Une erreur est survenue\! observe.title.h2.server.parameters=Paramétrage de la base locale en mode serveur observe.title.import.localDB=Importer une base locale depuis une sauvegarde 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.reload.i18n=Rechargement de l'application nécessaire... @@ -1483,19 +1416,9 @@ observe.title.show.usage=Listes des utilisations d'un référentiel... observe.title.storage.info=Information sur la source de données observe.title.unique.key=Clefs métier du référentiel %1$s observe.title.welcome.admin=ObServe -observe.tree.action.collapseAll.tip=Tout grouper -observe.tree.action.expandAll.tip=Tout déplier -observe.tree.action.selectAll.tip=Tout sélectionner -observe.tree.action.unselectAll.tip=Tout désélectionner -observe.type.action.create=Créer un objet de type '%s' -observe.type.action.delete=Supprimer l'objet de type '%s' sélectionné -observe.type.action.edit=Modifier l'objet de type '%s' sélectionné -observe.type.action.save=Sauver les modifications sur l'objet de type '%s' -observe.type.action.view=Voir les détails de l'objet de type '%s' sélectionné observe.type.activityLongline.unsaved=Nouvelle activité observe.type.activitySeine.unsaved=Nouvelle activité observe.type.floatingObject.unsaved=Nouveau DCP -observe.type.list=Liste des %s observe.type.management=Gestion des %s observe.type.reference.common=Référentiel commun observe.type.reference.longline=Référentiel Palangre ===================================== dto/src/main/resources/i18n/dto_en_GB.properties ===================================== --- a/dto/src/main/resources/i18n/dto_en_GB.properties +++ b/dto/src/main/resources/i18n/dto_en_GB.properties @@ -0,0 +1,259 @@ +observe.common.ActivityLonglineObsDto.title=Activity +observe.common.ActivityLonglineObsDto.type=Activity +observe.common.ActivityLonglineObsDto.types=Activities +observe.common.ActivitySeineDto.title=Activity +observe.common.ActivitySeineDto.type=Activity +observe.common.ActivitySeineDto.types=Activities +observe.common.BaitHaulingStatusDto.type=Bait hauling status +observe.common.BaitHaulingStatusDto.types=Bait hauling statuses +observe.common.BaitSettingStatusDto.type=Bait setting status +observe.common.BaitSettingStatusDto.types=Bait setting statuses +observe.common.BaitTypeDto.type=Bait type +observe.common.BaitTypeDto.types=Bait types +observe.common.BaitsCompositionObsDto.title=Baits +observe.common.BaitsCompositionObsDto.type=Baits composition +observe.common.BaitsCompositionObsDto.types=Baits compositions +observe.common.BasketDto.type=Basket +observe.common.BasketDto.types=Baskets +observe.common.BranchlineDto.title=Branchline detail +observe.common.BranchlineDto.type=Branchline +observe.common.BranchlineDto.types=Branchlines +observe.common.BranchlinesCompositionObsDto.title=Branchlines +observe.common.BranchlinesCompositionObsDto.type=Branchlines composition +observe.common.BranchlinesCompositionObsDto.types=Branchlines compositions +observe.common.CatchFateLonglineDto.type=Catch fate +observe.common.CatchFateLonglineDto.types=Catch fates +observe.common.CatchLonglineDto.title=Catches +observe.common.CatchLonglineDto.type=Catch +observe.common.CatchLonglineDto.types=Catches +observe.common.CountryDto.type=Country +observe.common.CountryDto.types=Countries +observe.common.DetectionModeDto.type=Detection mode +observe.common.DetectionModeDto.types=Detection modes +observe.common.EncounterDto.title=Encounters +observe.common.EncounterDto.type=Encounter +observe.common.EncounterDto.types=Encounters +observe.common.EncounterTypeDto.type=Encounter type +observe.common.EncounterTypeDto.types=Encounter types +observe.common.FloatingObjectDto.title=DCP +observe.common.FloatingObjectDto.type=Floating object +observe.common.FloatingObjectDto.types=Floating objects +observe.common.FloatingObjectPartDto.title=Floating object parts +observe.common.FloatingObjectPartDto.type=Floating object part +observe.common.FloatingObjectPartDto.types=Floating object parts +observe.common.FloatlinesCompositionObsDto.title=Floatlines +observe.common.FloatlinesCompositionObsDto.type=Floatlines composition +observe.common.FloatlinesCompositionObsDto.types=Floatlines compositions +observe.common.FpaZoneDto.type=Fpa zone +observe.common.FpaZoneDto.types=Fpa zones +observe.common.GearCaracteristicDto.type=Gear caracteristic +observe.common.GearCaracteristicDto.types=Gear caracteristics +observe.common.GearCaracteristicTypeDto.type=Gear caracteristic type +observe.common.GearCaracteristicTypeDto.types=Gear caracteristic types +observe.common.GearDto.type=Gear +observe.common.GearDto.types=Gears +observe.common.GearUseFeaturesLonglineDto.title=Gears +observe.common.GearUseFeaturesLonglineDto.type=Gear uses features +observe.common.GearUseFeaturesLonglineDto.types=Gear uses features +observe.common.GearUseFeaturesMeasurementLonglineDto.title=Gear uses feature measurements +observe.common.GearUseFeaturesMeasurementSeineDto.title=Gear uses feature measurements +observe.common.GearUseFeaturesSeineDto.title=Gears +observe.common.GearUseFeaturesSeineDto.type=Gear uses features +observe.common.GearUseFeaturesSeineDto.types=Gear uses features +observe.common.HarbourDto.type=Harbour +observe.common.HarbourDto.types=Harbours +observe.common.HealthnessDto.type=Healthness +observe.common.HealthnessDto.types=Healthnesses +observe.common.HookPositionDto.type=Hook position +observe.common.HookPositionDto.types=Hook positions +observe.common.HookSizeDto.type=Hook size +observe.common.HookSizeDto.types=Hook sizes +observe.common.HookTypeDto.type=Hook type +observe.common.HookTypeDto.types=Hook types +observe.common.HooksCompositionObsDto.title=Hooks +observe.common.HooksCompositionObsDto.type=Hooks composition +observe.common.HooksCompositionObsDto.types=Hooks compositions +observe.common.ItemHorizontalPositionDto.type=Item horizontal position +observe.common.ItemHorizontalPositionDto.types=Item horizontal positions +observe.common.ItemVerticalPositionDto.type=Item vertical position +observe.common.ItemVerticalPositionDto.types=Item vertical positions +observe.common.LengthLengthParameterDto.inputOutputFormula=Input to Output formula +observe.common.LengthLengthParameterDto.type=Length length parameter +observe.common.LengthLengthParameterDto.types=Length length parameters +observe.common.LengthWeightParameterDto.type=Length weight parameter +observe.common.LengthWeightParameterDto.types=Length weight parameters +observe.common.LightsticksColorDto.type=Lightsticks color +observe.common.LightsticksColorDto.types=Lightsticks colors +observe.common.LightsticksTypeDto.type=Lightsticks type +observe.common.LightsticksTypeDto.types=Lightsticks types +observe.common.LineTypeDto.type=Line type +observe.common.LineTypeDto.types=Line types +observe.common.MaturityStatusDto.type=Maturity status +observe.common.MaturityStatusDto.types=Maturity statuses +observe.common.MitigationTypeDto.type=Mitigation type +observe.common.MitigationTypeDto.types=Mitigation types +observe.common.NonTargetCatchDto.title=Non target catch +observe.common.NonTargetCatchDto.type=Non target catch +observe.common.NonTargetCatchDto.types=Non target catch +observe.common.NonTargetCatchReleaseDto.title=Non target catches released +observe.common.NonTargetCatchReleaseDto.type=Non target catch released +observe.common.NonTargetCatchReleaseDto.types=Non target catches released +observe.common.NonTargetLengthDto.title=Non target lengths +observe.common.NonTargetLengthDto.type=Non target length +observe.common.NonTargetLengthDto.types=Non target lengths +observe.common.ObjectMaterialDto.type=Floating object material +observe.common.ObjectMaterialDto.types=Floating object materials +observe.common.ObjectMaterialTypeDto.type=Floating objet material type +observe.common.ObjectMaterialTypeDto.types=Floating objet material types +observe.common.ObjectObservedSpeciesDto.title=Object observed species +observe.common.ObjectObservedSpeciesDto.type=Object observed species +observe.common.ObjectObservedSpeciesDto.types=Object observed species +observe.common.ObjectOperationDto.type=Object operation +observe.common.ObjectOperationDto.types=Object operations +observe.common.ObjectSchoolEstimateDto.title=School estimate +observe.common.ObjectSchoolEstimateDto.type=Object school estimate +observe.common.ObjectSchoolEstimateDto.types=Object school estimates +observe.common.ObservedSystemDto.type=Observed system +observe.common.ObservedSystemDto.types=Observed systems +observe.common.OceanDto.type=Ocean +observe.common.OceanDto.types=Oceans +observe.common.OrganismDto.type=Organism +observe.common.OrganismDto.types=Organisms +observe.common.PersonDto.type=Person +observe.common.PersonDto.types=Persons +observe.common.ProgramDto.type=Program +observe.common.ProgramDto.types=Programs +observe.common.ReasonForDiscardDto.type=Reason for discard +observe.common.ReasonForDiscardDto.types=Reasons for discard +observe.common.ReasonForNoFishingDto.type=Reason for no fishing +observe.common.ReasonForNoFishingDto.types=Reasons for no fishing +observe.common.ReasonForNullSetDto.type=Reason for null set +observe.common.ReasonForNullSetDto.types=Reasons for null set +observe.common.RouteDto.type=Route +observe.common.RouteDto.types=Routes +observe.common.SchoolEstimateDto.title=School estimate +observe.common.SchoolEstimateDto.type=School estimate +observe.common.SchoolEstimateDto.types=School estimates +observe.common.SectionDto.type=Section +observe.common.SectionDto.types=Sections +observe.common.SensorBrandDto.type=Sensor brand +observe.common.SensorBrandDto.types=Sensor brands +observe.common.SensorDataFormatDto.type=Sensor data format +observe.common.SensorDataFormatDto.types=Sensor data formats +observe.common.SensorTypeDto.type=Sensor type +observe.common.SensorTypeDto.types=Sensors type +observe.common.SensorUsedDto.title=Sensors ursed +observe.common.SensorUsedDto.type=Sensor used +observe.common.SensorUsedDto.types=Sensors used +observe.common.SetLonglineGlobalCompositionObsDto.title=Global composition +observe.common.SetLonglineObsDto.title=Fishing operation +observe.common.SetLonglineObsDto.type=Set +observe.common.SetLonglineObsDto.types=Sets +observe.common.SetSeineDto.title=Set +observe.common.SetSeineDto.type=Set +observe.common.SetSeineDto.types=Sets +observe.common.SettingShapeDto.type=Setting shape +observe.common.SettingShapeDto.types=Setting shapes +observe.common.SexDto.type=Sex +observe.common.SexDto.types=Sexes +observe.common.ShipOwnerDto.type=Ship owner +observe.common.ShipOwnerDto.types=Ship owners +observe.common.SizeMeasureDto.title=Size measures +observe.common.SizeMeasureDto.type=Size measure +observe.common.SizeMeasureDto.types=Size measures +observe.common.SizeMeasureTypeDto.type=Size measure type +observe.common.SizeMeasureTypeDto.types=Size measure types +observe.common.SpeciesDto.type=Species +observe.common.SpeciesDto.types=Species +observe.common.SpeciesFateDto.type=Species fate +observe.common.SpeciesFateDto.types=Species fates +observe.common.SpeciesGroupDto.type=Species group +observe.common.SpeciesGroupDto.types=Species groups +observe.common.SpeciesGroupReleaseModeDto.type=Release mode +observe.common.SpeciesGroupReleaseModeDto.types=Release modes +observe.common.SpeciesListDto.type=Species list +observe.common.SpeciesListDto.types=Species lists +observe.common.SpeciesStatusDto.type=Species status +observe.common.SpeciesStatusDto.types=Species statuses +observe.common.StomacFullnessDto.type=Stomac fullness +observe.common.StomacFullnessDto.types=Stomac fullnesses +observe.common.SurroundingActivityDto.type=Surrounding activity +observe.common.SurroundingActivityDto.types=Surrounding activities +observe.common.TargetCatchDto.title=Target catch +observe.common.TargetCatchDto.type=Target catch +observe.common.TargetCatchDto.types=Target catches +observe.common.TargetLengthDto.title=Target lengths +observe.common.TargetLengthDto.type=Target length +observe.common.TargetLengthDto.types=Target lengths +observe.common.TdrDto.title=Depth recorders +observe.common.TdrDto.type=Tdr +observe.common.TdrDto.types=Tdrs +observe.common.TransmittingBuoyDto.title=Transmitting buoy operations +observe.common.TransmittingBuoyDto.type=Transmitting buoy +observe.common.TransmittingBuoyDto.types=Transmitting buoys +observe.common.TransmittingBuoyOperationDto.type=Transmitting buoy operation +observe.common.TransmittingBuoyOperationDto.types=Transmitting buoy operations +observe.common.TransmittingBuoyTypeDto.type=Transmitting buoy type +observe.common.TransmittingBuoyTypeDto.types=Transmitting buoy types +observe.common.TripLonglineDto.title=Trip +observe.common.TripLonglineDto.type=Trip +observe.common.TripLonglineDto.types=Trips +observe.common.TripSeineDto.title=Trip +observe.common.TripSeineDto.type=Trip +observe.common.TripSeineDto.types=Trips +observe.common.TripTypeDto.type=Trip type +observe.common.TripTypeDto.types=Trips type +observe.common.VesselActivityLonglineDto.type=Vessel activity (Longline) +observe.common.VesselActivityLonglineDto.types=Vessel activities (Longline) +observe.common.VesselActivitySeineDto.type=Vessel activity (Seine) +observe.common.VesselActivitySeineDto.types=Vessel activities (Seine) +observe.common.VesselDto.type=Vessel +observe.common.VesselDto.types=Vessels +observe.common.VesselSizeCategoryDto.type=Vessel size category +observe.common.VesselSizeCategoryDto.types=Vessel size categories +observe.common.VesselTypeDto.type=Vessel type +observe.common.VesselTypeDto.types=Vessel types +observe.common.WeightCategoryDto.type=Weight category +observe.common.WeightCategoryDto.types=Weight categories +observe.common.WeightMeasureDto.title=Weight measures +observe.common.WeightMeasureDto.type=Weight measure +observe.common.WeightMeasureDto.types=Weight measures +observe.common.WeightMeasureTypeDto.type=Weight measure type +observe.common.WeightMeasureTypeDto.types=Weight measure types +observe.common.WindDto.type=Wind +observe.common.WindDto.types=Winds +observe.common.faoCode=Fao code +observe.common.gps.activity=Activity +observe.common.gps.gpsPoint=Gps point +observe.common.haulingIdentifier=Hauling identifier +observe.common.homeId=Home id +observe.common.inconnu=Unknown +observe.common.lengthWeightFormula=Length weight formula +observe.common.program=Program +observe.common.scientificLabel=Scientific label +observe.common.settingIdentifier=Setting +observe.common.sex=Sex +observe.common.species/scientificLabel=Scientific label +observe.constant.DcpComputedValue.FALSE=No +observe.constant.DcpComputedValue.TRUE=Yes +observe.constant.DcpComputedValue.UNKNOWN=Unknown +observe.constant.GearType.longline=Longline gear type +observe.constant.GearType.seine=Senne gear type +observe.constant.NonTargetCatchComputedValueSource.fromData=Computed from data +observe.constant.NonTargetCatchComputedValueSource.fromReferentiel=Computed from referential +observe.constant.NonTargetCatchComputedValueSource.fromSample=Computed from samples +observe.constant.NonTargetCatchReleaseStatus.M=Moderate +observe.constant.NonTargetCatchReleaseStatus.P=Perfect +observe.constant.NonTargetCatchReleaseStatus.S=Bad +observe.constant.NonTargetCatchReleaseStatus.U=Unknown +observe.constant.Ownership.autreVessel=Other vessel +observe.constant.Ownership.ceVessel=This vessel +observe.constant.Ownership.unknown=Unknown +observe.constant.SchoolType.libre=Free school type +observe.constant.SchoolType.objet=Object school type +observe.constant.SchoolType.undefined=Undefined school type +observe.constant.TypeTransmittingBuoyOperation.pasDeBalise=No Beacon +observe.constant.TypeTransmittingBuoyOperation.pose=Posing +observe.constant.TypeTransmittingBuoyOperation.recuperation=Grab +observe.constant.TypeTransmittingBuoyOperation.recuperationEtRemplacement=Grab and change +observe.constant.TypeTransmittingBuoyOperation.visite=Visit ===================================== dto/src/main/resources/i18n/dto_es_ES.properties ===================================== --- a/dto/src/main/resources/i18n/dto_es_ES.properties +++ b/dto/src/main/resources/i18n/dto_es_ES.properties @@ -0,0 +1,259 @@ +observe.common.ActivityLonglineObsDto.title=Actividad +observe.common.ActivityLonglineObsDto.type=Actividad +observe.common.ActivityLonglineObsDto.types=Actividades +observe.common.ActivitySeineDto.title=Actividad +observe.common.ActivitySeineDto.type=Actividad +observe.common.ActivitySeineDto.types=Actividades +observe.common.BaitHaulingStatusDto.type=Estatuto del cebo en el arrastre +observe.common.BaitHaulingStatusDto.types=Estatutos del cebo en el arrastre +observe.common.BaitSettingStatusDto.type=Estatuto del cebo en la calada +observe.common.BaitSettingStatusDto.types=Estatutos del cebo en la calada +observe.common.BaitTypeDto.type=Tipo de cebo +observe.common.BaitTypeDto.types=Tipos de cebo +observe.common.BaitsCompositionObsDto.title=Composición de los cebos +observe.common.BaitsCompositionObsDto.type=Composición de los cebos +observe.common.BaitsCompositionObsDto.types=Composiciónes de los cebos +observe.common.BasketDto.type=Cesta +observe.common.BasketDto.types=Cestas +observe.common.BranchlineDto.title=Detalle de arponcillo +observe.common.BranchlineDto.type=Arponcillo +observe.common.BranchlineDto.types=Arponcillos +observe.common.BranchlinesCompositionObsDto.title=Composición de arponcillos +observe.common.BranchlinesCompositionObsDto.type=Composición de los arponcillos +observe.common.BranchlinesCompositionObsDto.types=Composiciónes de los arponcillos +observe.common.CatchFateLonglineDto.type=Futuro de la captura +observe.common.CatchFateLonglineDto.types=Futuros de la captura +observe.common.CatchLonglineDto.title=Capturas +observe.common.CatchLonglineDto.type=Captura +observe.common.CatchLonglineDto.types=Capturas +observe.common.CountryDto.type=País +observe.common.CountryDto.types=Países +observe.common.DetectionModeDto.type=Modo de detección +observe.common.DetectionModeDto.types=Modos de detección +observe.common.EncounterDto.title=Encuentros +observe.common.EncounterDto.type=Encuentro +observe.common.EncounterDto.types=Encuentros +observe.common.EncounterTypeDto.type=Tipo de encuentro +observe.common.EncounterTypeDto.types=Tipos de encuentro +observe.common.FloatingObjectDto.title=Objeto flotante +observe.common.FloatingObjectDto.type=Objeto flotante +observe.common.FloatingObjectDto.types=Objetos flotantes +observe.common.FloatingObjectPartDto.title=Matériaux d'un objet flottant \#TODO +observe.common.FloatingObjectPartDto.type=Matérial d'un objet flottant \#TODO +observe.common.FloatingObjectPartDto.types=Matériaux d'un objet flottant \#TODO +observe.common.FloatlinesCompositionObsDto.title=Composición de los orinques +observe.common.FloatlinesCompositionObsDto.type=Composición de los orinques +observe.common.FloatlinesCompositionObsDto.types=Composiciónes de los orinques +observe.common.FpaZoneDto.type=Zona FPA +observe.common.FpaZoneDto.types=Zonas FPA +observe.common.GearCaracteristicDto.type=Característica de un equipamiento +observe.common.GearCaracteristicDto.types=Características de un equipamiento +observe.common.GearCaracteristicTypeDto.type=Tipo de característica de los equipamientos +observe.common.GearCaracteristicTypeDto.types=Tipos de característica de los equipamientos +observe.common.GearDto.type=Equipamiento +observe.common.GearDto.types=Equipamientos +observe.common.GearUseFeaturesLonglineDto.title=Equipos +observe.common.GearUseFeaturesLonglineDto.type=Equipamiento +observe.common.GearUseFeaturesLonglineDto.types=Equipamientos +observe.common.GearUseFeaturesMeasurementLonglineDto.title=Medidas +observe.common.GearUseFeaturesMeasurementSeineDto.title=Medidas +observe.common.GearUseFeaturesSeineDto.title=Equipos +observe.common.GearUseFeaturesSeineDto.type=Equipamiento +observe.common.GearUseFeaturesSeineDto.types=Equipamientos +observe.common.HarbourDto.type=Puerto +observe.common.HarbourDto.types=Puertos +observe.common.HealthnessDto.type=Estado de salud +observe.common.HealthnessDto.types=Estados de salud +observe.common.HookPositionDto.type=Posición del anzuelo +observe.common.HookPositionDto.types=Posiciónes del anzuelo +observe.common.HookSizeDto.type=Tamaño +observe.common.HookSizeDto.types=Tamaños +observe.common.HookTypeDto.type=Tipo de anzuelo +observe.common.HookTypeDto.types=Tipos de anzuelo +observe.common.HooksCompositionObsDto.title=Composición de los anzuelos +observe.common.HooksCompositionObsDto.type=Composición de los anzuelos +observe.common.HooksCompositionObsDto.types=Composiciónes de los anzuelos +observe.common.ItemHorizontalPositionDto.type=Localización del elemento sobre la línea principal +observe.common.ItemHorizontalPositionDto.types=Localizaciones del elemento sobre la línea principal +observe.common.ItemVerticalPositionDto.type=Localización del elemento sobre el arponcillo +observe.common.ItemVerticalPositionDto.types=Localizaciones del elemento sobre el arponcillo +observe.common.LengthLengthParameterDto.inputOutputFormula=Formule Entrée vers Sortie \#TODO +observe.common.LengthLengthParameterDto.type=Relación Tamaño-Tamaño +observe.common.LengthLengthParameterDto.types=Relaciones Tamaño-Tamaño +observe.common.LengthWeightParameterDto.type=Relación Tamaño-Peso +observe.common.LengthWeightParameterDto.types=Relaciones Tamaño-Peso +observe.common.LightsticksColorDto.type=Color de barrita de luz +observe.common.LightsticksColorDto.types=Colores de barrita de luz +observe.common.LightsticksTypeDto.type=Tipo de barrita de luz +observe.common.LightsticksTypeDto.types=Tipos de barrita de luz +observe.common.LineTypeDto.type=Tipo de línea +observe.common.LineTypeDto.types=Tipos de línea +observe.common.MaturityStatusDto.type=Maturidad +observe.common.MaturityStatusDto.types=Maturidades +observe.common.MitigationTypeDto.type=Tipo de medida de atenuación +observe.common.MitigationTypeDto.types=Tipos de medida de atenuación +observe.common.NonTargetCatchDto.title=Fauna accesoria conservada o descartada +observe.common.NonTargetCatchDto.type=Fauna accesoria conservada o descartada +observe.common.NonTargetCatchDto.types=Fauna accesoria conservada o descartada +observe.common.NonTargetCatchReleaseDto.title=Faune accessoire sensible libérée \#TODO +observe.common.NonTargetCatchReleaseDto.type=Faune accessoire sensible libérée \#TODO +observe.common.NonTargetCatchReleaseDto.types=Faunes accessoires libérées \#TODO +observe.common.NonTargetLengthDto.title=Longitudes (cm inf.) +observe.common.NonTargetLengthDto.type=Longitud (cm inf.) +observe.common.NonTargetLengthDto.types=Longitudes (cm inf.) +observe.common.ObjectMaterialDto.type=Objet flottant Matériel \#TODO +observe.common.ObjectMaterialDto.types=Objet flottant matériaux \#TODO +observe.common.ObjectMaterialTypeDto.type=Type d'objet flottant \#TODO +observe.common.ObjectMaterialTypeDto.types=Types d'objet flottant \#TODO +observe.common.ObjectObservedSpeciesDto.title=Fauna observada +observe.common.ObjectObservedSpeciesDto.type=Fauna observada +observe.common.ObjectObservedSpeciesDto.types=Fauna observada +observe.common.ObjectOperationDto.type=Operación sobre el objeto +observe.common.ObjectOperationDto.types=Operaciones sobre el objeto +observe.common.ObjectSchoolEstimateDto.title=Estimación del banco +observe.common.ObjectSchoolEstimateDto.type=Estimación banco de objetos +observe.common.ObjectSchoolEstimateDto.types=Estimaciones banco de objetos +observe.common.ObservedSystemDto.type=Sistema observado +observe.common.ObservedSystemDto.types=Sistemas observados +observe.common.OceanDto.type=Océano +observe.common.OceanDto.types=Océanos +observe.common.OrganismDto.type=Organismo +observe.common.OrganismDto.types=Organismos +observe.common.PersonDto.type=Persona +observe.common.PersonDto.types=Personas +observe.common.ProgramDto.type=Programa +observe.common.ProgramDto.types=Programas +observe.common.ReasonForDiscardDto.type=Razón de descarte +observe.common.ReasonForDiscardDto.types=Razones de descarte +observe.common.ReasonForNoFishingDto.type=Razón de no pesca Senne +observe.common.ReasonForNoFishingDto.types=Razones de no pesca Senne +observe.common.ReasonForNullSetDto.type=Causa de lance nulo +observe.common.ReasonForNullSetDto.types=Causas de lance nulo +observe.common.RouteDto.type=Ruta +observe.common.RouteDto.types=Rutas +observe.common.SchoolEstimateDto.title=Estimación del banco +observe.common.SchoolEstimateDto.type=Estimación banco +observe.common.SchoolEstimateDto.types=Estimaciones banco +observe.common.SectionDto.type=Sección +observe.common.SectionDto.types=Secciones +observe.common.SensorBrandDto.type=Marca de sensor +observe.common.SensorBrandDto.types=Marcas de sensor +observe.common.SensorDataFormatDto.type=Formato de los datos del sensor +observe.common.SensorDataFormatDto.types=Formatos de los datos del sensor +observe.common.SensorTypeDto.type=Tipo de sensor +observe.common.SensorTypeDto.types=Tipos de sensor +observe.common.SensorUsedDto.title=Sensores +observe.common.SensorUsedDto.type=Sensor utilizado +observe.common.SensorUsedDto.types=Sensores utilizados +observe.common.SetLonglineGlobalCompositionObsDto.title=Composición global del palangre +observe.common.SetLonglineObsDto.title=Operación de pesca +observe.common.SetLonglineObsDto.type=Operación de pesca +observe.common.SetLonglineObsDto.types=Operaciones de pesca +observe.common.SetSeineDto.title=Lance +observe.common.SetSeineDto.type=Lance +observe.common.SetSeineDto.types=Lances +observe.common.SettingShapeDto.type=Forma en la calada +observe.common.SettingShapeDto.types=Formas en la calada +observe.common.SexDto.type=Sexo +observe.common.SexDto.types=Sexos +observe.common.ShipOwnerDto.type=Armateur \#TODO +observe.common.ShipOwnerDto.types=Armateurs \#TODO +observe.common.SizeMeasureDto.title=Medidas del tamaño +observe.common.SizeMeasureDto.type=Medida del tamaño +observe.common.SizeMeasureDto.types=Medidas del tamaño +observe.common.SizeMeasureTypeDto.type=Tipo de medida del tamaño +observe.common.SizeMeasureTypeDto.types=Tipos de medida del tamaño +observe.common.SpeciesDto.type=Especie +observe.common.SpeciesDto.types=Especie +observe.common.SpeciesFateDto.type=Futuro de la especie +observe.common.SpeciesFateDto.types=Futuros de la especie +observe.common.SpeciesGroupDto.type=Grupo de especie +observe.common.SpeciesGroupDto.types=Grupos de especie +observe.common.SpeciesGroupReleaseModeDto.type=Mode de libération \#TODO +observe.common.SpeciesGroupReleaseModeDto.types=Modes de libération \#TODO +observe.common.SpeciesListDto.type=Lista de especies +observe.common.SpeciesListDto.types=Listas de especies +observe.common.SpeciesStatusDto.type=Estatuto de la fauna observada +observe.common.SpeciesStatusDto.types=Estatutos de la fauna observada +observe.common.StomacFullnessDto.type=Nivel de llenado del estomago +observe.common.StomacFullnessDto.types=Niveles de llenado del estomago +observe.common.SurroundingActivityDto.type=Actividad circundante +observe.common.SurroundingActivityDto.types=Actividades circundantes +observe.common.TargetCatchDto.title=Captura de atún +observe.common.TargetCatchDto.type=Captura destinataria +observe.common.TargetCatchDto.types=Capturas destinatarias +observe.common.TargetLengthDto.title=Tamaños del atún +observe.common.TargetLengthDto.type=Tamaño del atún +observe.common.TargetLengthDto.types=Tamaños del atún +observe.common.TdrDto.title=Registrador de profundidad +observe.common.TdrDto.type=Registrador de profundidad +observe.common.TdrDto.types=Registradores de profundidad +observe.common.TransmittingBuoyDto.title=Operación sur balises +observe.common.TransmittingBuoyDto.type=Baliza leida +observe.common.TransmittingBuoyDto.types=Balizas leidas +observe.common.TransmittingBuoyOperationDto.type=Operación baliza +observe.common.TransmittingBuoyOperationDto.types=Operaciones baliza +observe.common.TransmittingBuoyTypeDto.type=Tipo de baliza +observe.common.TransmittingBuoyTypeDto.types=Tipos de baliza +observe.common.TripLonglineDto.title=Marea +observe.common.TripLonglineDto.type=Marea +observe.common.TripLonglineDto.types=Mareas +observe.common.TripSeineDto.title=Marea +observe.common.TripSeineDto.type=Marea +observe.common.TripSeineDto.types=Mareas +observe.common.TripTypeDto.type=Tipo de marea +observe.common.TripTypeDto.types=Tipos de marea +observe.common.VesselActivityLonglineDto.type=Actividad buque \#TODO-SP +observe.common.VesselActivityLonglineDto.types=Actividades buque \#TODO-SP +observe.common.VesselActivitySeineDto.type=Actividad buque \#TODO-SP +observe.common.VesselActivitySeineDto.types=Actividades buque \#TODO-SP +observe.common.VesselDto.type=Buque +observe.common.VesselDto.types=Buques +observe.common.VesselSizeCategoryDto.type=Categoría de buque +observe.common.VesselSizeCategoryDto.types=Categorías de buque +observe.common.VesselTypeDto.type=Tipo de pesquería +observe.common.VesselTypeDto.types=Tipos de pesquería +observe.common.WeightCategoryDto.type=Categoría de peso +observe.common.WeightCategoryDto.types=Categorías de peso +observe.common.WeightMeasureDto.title=Medidas de peso +observe.common.WeightMeasureDto.type=Medida de peso +observe.common.WeightMeasureDto.types=Medidas de peso +observe.common.WeightMeasureTypeDto.type=Tipo de medida de peso +observe.common.WeightMeasureTypeDto.types=Tipos de medida de peso +observe.common.WindDto.type=Viento Beaufort +observe.common.WindDto.types=Vientos Beaufort +observe.common.faoCode=Codigo FAO +observe.common.gps.activity=Actividad +observe.common.gps.gpsPoint=Punto GPS +observe.common.haulingIdentifier=Arrastre +observe.common.homeId=Identificador +observe.common.inconnu=desconocido +observe.common.lengthWeightFormula=Relación de peso +observe.common.program=Programa +observe.common.scientificLabel=Texto científico +observe.common.settingIdentifier=Calada +observe.common.sex=Sexo +observe.common.species/scientificLabel=Especie +observe.constant.DcpComputedValue.FALSE=No +observe.constant.DcpComputedValue.TRUE=Si +observe.constant.DcpComputedValue.UNKNOWN=Desconocido +observe.constant.GearType.longline=Palangre +observe.constant.GearType.seine=Senne +observe.constant.NonTargetCatchComputedValueSource.fromData=Calculado a partir de otros datos +observe.constant.NonTargetCatchComputedValueSource.fromReferentiel=Calculado a partir del referencial +observe.constant.NonTargetCatchComputedValueSource.fromSample=Calculado a partir de las muestras +observe.constant.NonTargetCatchReleaseStatus.M=Modéré \#TODO +observe.constant.NonTargetCatchReleaseStatus.P=Parfait \#TODO +observe.constant.NonTargetCatchReleaseStatus.S=Sévère \#TODO +observe.constant.NonTargetCatchReleaseStatus.U=Inconnu \#TODO +observe.constant.Ownership.autreVessel=Barco ajeno +observe.constant.Ownership.ceVessel=Este barco o un barco del mismo armador +observe.constant.Ownership.unknown=Desconocido +observe.constant.SchoolType.libre=Banco libre +observe.constant.SchoolType.objet=Banco a objeto +observe.constant.SchoolType.undefined=Banco indeterminado +observe.constant.TypeTransmittingBuoyOperation.pasDeBalise=DCP sin baliza +observe.constant.TypeTransmittingBuoyOperation.pose=Colocación de nueva baliza +observe.constant.TypeTransmittingBuoyOperation.recuperation=Recogida de baliza sin regreso al agua +observe.constant.TypeTransmittingBuoyOperation.recuperationEtRemplacement=Recuperación y colocación de una nueva baliza +observe.constant.TypeTransmittingBuoyOperation.visite=Visita a la baliza ===================================== dto/src/main/resources/i18n/dto_fr_FR.properties ===================================== --- a/dto/src/main/resources/i18n/dto_fr_FR.properties +++ b/dto/src/main/resources/i18n/dto_fr_FR.properties @@ -0,0 +1,259 @@ +observe.common.ActivityLonglineObsDto.title=Activité +observe.common.ActivityLonglineObsDto.type=Activité +observe.common.ActivityLonglineObsDto.types=Activités +observe.common.ActivitySeineDto.title=Activité +observe.common.ActivitySeineDto.type=Activité +observe.common.ActivitySeineDto.types=Activités +observe.common.BaitHaulingStatusDto.type=Statut de l'appât au virage +observe.common.BaitHaulingStatusDto.types=Statuts de l'appât au virage +observe.common.BaitSettingStatusDto.type=Statut de l'appât au filage +observe.common.BaitSettingStatusDto.types=Statuts de l'appât au filage +observe.common.BaitTypeDto.type=Type d'appât +observe.common.BaitTypeDto.types=Types d'appât +observe.common.BaitsCompositionObsDto.title=Composition des appâts +observe.common.BaitsCompositionObsDto.type=Composition des appâts +observe.common.BaitsCompositionObsDto.types=Compositions des appâts +observe.common.BasketDto.type=Basket +observe.common.BasketDto.types=Baskets +observe.common.BranchlineDto.title=Détail de l'avançon +observe.common.BranchlineDto.type=Avançon +observe.common.BranchlineDto.types=Avançons +observe.common.BranchlinesCompositionObsDto.title=Composition des avançons +observe.common.BranchlinesCompositionObsDto.type=Composition des avançons +observe.common.BranchlinesCompositionObsDto.types=Compositions des avançons +observe.common.CatchFateLonglineDto.type=Devenir capture +observe.common.CatchFateLonglineDto.types=Devenirs capture +observe.common.CatchLonglineDto.title=Captures +observe.common.CatchLonglineDto.type=Capture +observe.common.CatchLonglineDto.types=Captures +observe.common.CountryDto.type=Pays +observe.common.CountryDto.types=Pays +observe.common.DetectionModeDto.type=Mode détection +observe.common.DetectionModeDto.types=Modes détection +observe.common.EncounterDto.title=Rencontres +observe.common.EncounterDto.type=Rencontre +observe.common.EncounterDto.types=Rencontres +observe.common.EncounterTypeDto.type=Type de rencontre +observe.common.EncounterTypeDto.types=Types de rencontre +observe.common.FloatingObjectDto.title=Objet flottant +observe.common.FloatingObjectDto.type=Objet flottant +observe.common.FloatingObjectDto.types=Objets flottant +observe.common.FloatingObjectPartDto.title=Matériaux d'un objet flottant +observe.common.FloatingObjectPartDto.type=Matérial d'un objet flottant +observe.common.FloatingObjectPartDto.types=Matériaux d'un objet flottant +observe.common.FloatlinesCompositionObsDto.title=Composition des orins +observe.common.FloatlinesCompositionObsDto.type=Composition des orins +observe.common.FloatlinesCompositionObsDto.types=Compositions des orins +observe.common.FpaZoneDto.type=Zone FPA +observe.common.FpaZoneDto.types=Zones FPA +observe.common.GearCaracteristicDto.type=Caractéristique d'un équipement +observe.common.GearCaracteristicDto.types=Caractéristiques d'un équipement +observe.common.GearCaracteristicTypeDto.type=Type de caractéristique d'équipement +observe.common.GearCaracteristicTypeDto.types=Types de caractéristique d'équipement +observe.common.GearDto.type=Équipement +observe.common.GearDto.types=Équipements +observe.common.GearUseFeaturesLonglineDto.title=Équipements +observe.common.GearUseFeaturesLonglineDto.type=Équipement +observe.common.GearUseFeaturesLonglineDto.types=Équipements +observe.common.GearUseFeaturesMeasurementLonglineDto.title=Mesures +observe.common.GearUseFeaturesMeasurementSeineDto.title=Mesures +observe.common.GearUseFeaturesSeineDto.title=Équipements +observe.common.GearUseFeaturesSeineDto.type=Équipement +observe.common.GearUseFeaturesSeineDto.types=Équipements +observe.common.HarbourDto.type=Port +observe.common.HarbourDto.types=Ports +observe.common.HealthnessDto.type=État de santé +observe.common.HealthnessDto.types=États de santé +observe.common.HookPositionDto.type=Position du hameçon +observe.common.HookPositionDto.types=Positions du hameçon +observe.common.HookSizeDto.type=Taille +observe.common.HookSizeDto.types=Tailles +observe.common.HookTypeDto.type=Type d'hameçon +observe.common.HookTypeDto.types=Types d'hameçon +observe.common.HooksCompositionObsDto.title=Composition des hameçons +observe.common.HooksCompositionObsDto.type=Composition des hameçons +observe.common.HooksCompositionObsDto.types=Compositions des hameçons +observe.common.ItemHorizontalPositionDto.type=Localisation de l'élément sur la ligne mère +observe.common.ItemHorizontalPositionDto.types=Localisations de l'élément sur la ligne mère +observe.common.ItemVerticalPositionDto.type=Localisation de l'élément sur l'avançon +observe.common.ItemVerticalPositionDto.types=Localisations de l'élément sur l'avançon +observe.common.LengthLengthParameterDto.inputOutputFormula=Formule entrée -> sortie +observe.common.LengthLengthParameterDto.type=Relation Taille-Taille +observe.common.LengthLengthParameterDto.types=Relations Taille-Taille +observe.common.LengthWeightParameterDto.type=Relation Taille-Poids +observe.common.LengthWeightParameterDto.types=Relations Taille-Poids +observe.common.LightsticksColorDto.type=Couleur de cyalumes +observe.common.LightsticksColorDto.types=Couleurs de cyalumes +observe.common.LightsticksTypeDto.type=Type de cyalumes +observe.common.LightsticksTypeDto.types=Types de cyalumes +observe.common.LineTypeDto.type=Type de ligne +observe.common.LineTypeDto.types=Types de ligne +observe.common.MaturityStatusDto.type=Maturité +observe.common.MaturityStatusDto.types=Maturités +observe.common.MitigationTypeDto.type=Type de mesure d'atténuation +observe.common.MitigationTypeDto.types=Types de mesure d'atténuation +observe.common.NonTargetCatchDto.title=Faune accessoire conservée ou rejetée +observe.common.NonTargetCatchDto.type=Faune accessoire conservée ou rejetée +observe.common.NonTargetCatchDto.types=Faunes accessoire conservée ou rejetée +observe.common.NonTargetCatchReleaseDto.title=Faune accessoire sensible libérée +observe.common.NonTargetCatchReleaseDto.type=Faune accessoire sensible libérée +observe.common.NonTargetCatchReleaseDto.types=Faunes accessoires libérées +observe.common.NonTargetLengthDto.title=Longueurs (cm inf.) +observe.common.NonTargetLengthDto.type=Longueur (cm inf.) +observe.common.NonTargetLengthDto.types=Longueurs (cm inf.) +observe.common.ObjectMaterialDto.type=Object flottant Matériel +observe.common.ObjectMaterialDto.types=Object flottant Matériaux +observe.common.ObjectMaterialTypeDto.type=Type d'objet flottant +observe.common.ObjectMaterialTypeDto.types=Types d'objet flottant +observe.common.ObjectObservedSpeciesDto.title=Faune observée +observe.common.ObjectObservedSpeciesDto.type=Faune observée +observe.common.ObjectObservedSpeciesDto.types=Faune observée +observe.common.ObjectOperationDto.type=Opération sur l'objet +observe.common.ObjectOperationDto.types=Opérations sur l'objet +observe.common.ObjectSchoolEstimateDto.title=Estimation banc +observe.common.ObjectSchoolEstimateDto.type=Estimation banc objet +observe.common.ObjectSchoolEstimateDto.types=Estimations banc objet +observe.common.ObservedSystemDto.type=Système observé +observe.common.ObservedSystemDto.types=Systèmes observés +observe.common.OceanDto.type=Océan +observe.common.OceanDto.types=Océans +observe.common.OrganismDto.type=Organisme +observe.common.OrganismDto.types=Organismes +observe.common.PersonDto.type=Personne +observe.common.PersonDto.types=Personnes +observe.common.ProgramDto.type=Programme +observe.common.ProgramDto.types=Programmes +observe.common.ReasonForDiscardDto.type=Raison rejet +observe.common.ReasonForDiscardDto.types=Raisons rejet +observe.common.ReasonForNoFishingDto.type=Raison de non coup de Senne +observe.common.ReasonForNoFishingDto.types=Raisons de non coup de Senne +observe.common.ReasonForNullSetDto.type=Cause coup nul +observe.common.ReasonForNullSetDto.types=Causes coup nul +observe.common.RouteDto.type=Route +observe.common.RouteDto.types=Routes +observe.common.SchoolEstimateDto.title=Estimation banc +observe.common.SchoolEstimateDto.type=Estimation banc +observe.common.SchoolEstimateDto.types=Estimations banc +observe.common.SectionDto.type=Section +observe.common.SectionDto.types=Sections +observe.common.SensorBrandDto.type=Marque de capteur +observe.common.SensorBrandDto.types=Marques de capteur +observe.common.SensorDataFormatDto.type=Format de données de capteur +observe.common.SensorDataFormatDto.types=Formats de données de capteur +observe.common.SensorTypeDto.type=Type de capteur +observe.common.SensorTypeDto.types=Types de capteur +observe.common.SensorUsedDto.title=Capteurs +observe.common.SensorUsedDto.type=Capteur utilisé +observe.common.SensorUsedDto.types=Capteurs utilisés +observe.common.SetLonglineGlobalCompositionObsDto.title=Composition globale de la palangre +observe.common.SetLonglineObsDto.title=Opération de pêche +observe.common.SetLonglineObsDto.type=Opération de pêche +observe.common.SetLonglineObsDto.types=Opérations de pêche +observe.common.SetSeineDto.title=Calée +observe.common.SetSeineDto.type=Calée +observe.common.SetSeineDto.types=Calées +observe.common.SettingShapeDto.type=Forme au filage +observe.common.SettingShapeDto.types=Formes au filage +observe.common.SexDto.type=Sexe +observe.common.SexDto.types=Sexes +observe.common.ShipOwnerDto.type=Armateur +observe.common.ShipOwnerDto.types=Armateurs +observe.common.SizeMeasureDto.title=Mesures de taille +observe.common.SizeMeasureDto.type=Mesure de taille +observe.common.SizeMeasureDto.types=Mesures de taille +observe.common.SizeMeasureTypeDto.type=Type de mesure de taille +observe.common.SizeMeasureTypeDto.types=Types de mesure de taille +observe.common.SpeciesDto.type=Espèce +observe.common.SpeciesDto.types=Espèce +observe.common.SpeciesFateDto.type=Devenir espèce +observe.common.SpeciesFateDto.types=Devenirs espèce +observe.common.SpeciesGroupDto.type=Groupe espèce +observe.common.SpeciesGroupDto.types=Groupes espèce +observe.common.SpeciesGroupReleaseModeDto.type=Mode de libération +observe.common.SpeciesGroupReleaseModeDto.types=Modes de libération +observe.common.SpeciesListDto.type=Liste d'espèces +observe.common.SpeciesListDto.types=Listes d'espèces +observe.common.SpeciesStatusDto.type=Statut faune observée +observe.common.SpeciesStatusDto.types=Statuts faune observée +observe.common.StomacFullnessDto.type=Niveau de remplissage de l'estomac +observe.common.StomacFullnessDto.types=Niveaux de remplissage de l'estomac +observe.common.SurroundingActivityDto.type=Activité environnante +observe.common.SurroundingActivityDto.types=Activités environnantes +observe.common.TargetCatchDto.title=Capture cible +observe.common.TargetCatchDto.type=Capture cible +observe.common.TargetCatchDto.types=Captures cible +observe.common.TargetLengthDto.title=Tailles Thon +observe.common.TargetLengthDto.type=Taille Thon +observe.common.TargetLengthDto.types=Tailles Thon +observe.common.TdrDto.title=Enregistreur de profondeur +observe.common.TdrDto.type=Enregistreur de profondeur +observe.common.TdrDto.types=Enregistreurs de profondeur +observe.common.TransmittingBuoyDto.title=Opération sur balises +observe.common.TransmittingBuoyDto.type=Balise lue +observe.common.TransmittingBuoyDto.types=Balises lues +observe.common.TransmittingBuoyOperationDto.type=Opération balise +observe.common.TransmittingBuoyOperationDto.types=Opérations balise +observe.common.TransmittingBuoyTypeDto.type=Type de balise +observe.common.TransmittingBuoyTypeDto.types=Types de balise +observe.common.TripLonglineDto.title=Marée +observe.common.TripLonglineDto.type=Marée +observe.common.TripLonglineDto.types=Marées +observe.common.TripSeineDto.title=Marée +observe.common.TripSeineDto.type=Marée +observe.common.TripSeineDto.types=Marées +observe.common.TripTypeDto.type=Type de marée +observe.common.TripTypeDto.types=Types de marée +observe.common.VesselActivityLonglineDto.type=Activité bateau (Palangre) +observe.common.VesselActivityLonglineDto.types=Activités bateau (Palangre) +observe.common.VesselActivitySeineDto.type=Activité bateau (Senne) +observe.common.VesselActivitySeineDto.types=Activités bateau (Senne) +observe.common.VesselDto.type=Bateau +observe.common.VesselDto.types=Bateaux +observe.common.VesselSizeCategoryDto.type=Catégorie de bateau +observe.common.VesselSizeCategoryDto.types=Catégories de bateau +observe.common.VesselTypeDto.type=Type de pêcherie +observe.common.VesselTypeDto.types=Types de pêcherie +observe.common.WeightCategoryDto.type=Catégorie de poids +observe.common.WeightCategoryDto.types=Catégories de poids +observe.common.WeightMeasureDto.title=Mesures de poids +observe.common.WeightMeasureDto.type=Mesure de poids +observe.common.WeightMeasureDto.types=Mesures de poids +observe.common.WeightMeasureTypeDto.type=Type de mesure de poids +observe.common.WeightMeasureTypeDto.types=Types de mesure de poids +observe.common.WindDto.type=Vent Beaufort +observe.common.WindDto.types=Vents Beaufort +observe.common.faoCode=Code FAO +observe.common.gps.activity=Activité +observe.common.gps.gpsPoint=Point GPS +observe.common.haulingIdentifier=Virage +observe.common.homeId=Identifiant +observe.common.inconnu=inconnu +observe.common.lengthWeightFormula=Relation Poids +observe.common.program=Programme +observe.common.scientificLabel=Libellé scientifique +observe.common.settingIdentifier=Filage +observe.common.sex=Sexe +observe.common.species/scientificLabel=Espèce +observe.constant.DcpComputedValue.FALSE=Non +observe.constant.DcpComputedValue.TRUE=Oui +observe.constant.DcpComputedValue.UNKNOWN=Inconnu +observe.constant.GearType.longline=Palangre +observe.constant.GearType.seine=Senne +observe.constant.NonTargetCatchComputedValueSource.fromData=calculé à partir des autres données +observe.constant.NonTargetCatchComputedValueSource.fromReferentiel=calculé à partir du référentiel +observe.constant.NonTargetCatchComputedValueSource.fromSample=calculé à partir des échantillons +observe.constant.NonTargetCatchReleaseStatus.M=Modéré +observe.constant.NonTargetCatchReleaseStatus.P=Parfait +observe.constant.NonTargetCatchReleaseStatus.S=Sévère +observe.constant.NonTargetCatchReleaseStatus.U=Inconnu +observe.constant.Ownership.autreVessel=Navire d'un autre armement +observe.constant.Ownership.ceVessel=Ce navire ou cet armement +observe.constant.Ownership.unknown=Inconnue +observe.constant.SchoolType.libre=Banc libre +observe.constant.SchoolType.objet=Banc objet +observe.constant.SchoolType.undefined=Banc indéterminé +observe.constant.TypeTransmittingBuoyOperation.pasDeBalise=Pas de balise liée au DCP +observe.constant.TypeTransmittingBuoyOperation.pose=Pose d'une nouvelle balise +observe.constant.TypeTransmittingBuoyOperation.recuperation=Récupération d'une balise sans remise à l'eau +observe.constant.TypeTransmittingBuoyOperation.recuperationEtRemplacement=Récupération et pose d'une nouvelle balise +observe.constant.TypeTransmittingBuoyOperation.visite=Simple visite de la balise ===================================== pom.xml ===================================== --- a/pom.xml +++ b/pom.xml @@ -206,6 +206,7 @@ <class-mapping.version>1.0.1</class-mapping.version> <java-lang.version>1.0.3</java-lang.version> + <javassist.version>3.22.0-CR2</javassist.version> </properties> <dependencyManagement> @@ -771,7 +772,7 @@ <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> - <version>3.22.0-CR2</version> + <version>${javassist.version}</version> <scope>runtime</scope> </dependency> ===================================== validation/pom.xml ===================================== --- a/validation/pom.xml +++ b/validation/pom.xml @@ -20,7 +20,8 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> @@ -96,6 +97,13 @@ </exclusions> </dependency> + <!--Set this dependency to share thier i18n keys--> + <dependency> + <groupId>fr.ird.observe.toolkit</groupId> + <artifactId>common-client</artifactId> + <scope>runtime</scope> + </dependency> + <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> @@ -158,7 +166,7 @@ <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> - <version>3.22.0-CR2</version> + <version>${javassist.version}</version> </dependency> </dependencies> </plugin> ===================================== validation/src/main/resources/i18n/validation_en_GB.properties ===================================== --- a/validation/src/main/resources/i18n/validation_en_GB.properties +++ b/validation/src/main/resources/i18n/validation_en_GB.properties @@ -94,9 +94,6 @@ observe.common.HooksCompositionObsDto.hookOffset=Offset observe.common.HooksCompositionObsDto.hookSize=Size observe.common.HooksCompositionObsDto.hookType=Type observe.common.HooksCompositionObsDto.proportion=Proportion -observe.common.I18nReferentialDto.label1=English label -observe.common.I18nReferentialDto.label2=French label -observe.common.I18nReferentialDto.label3=Spanish label observe.common.LengthLengthParameterDto.coefficients=Coefficients observe.common.LengthLengthParameterDto.inputSizeMeasureType=Input size measure type observe.common.LengthLengthParameterDto.outputInputFormula=Output to Input formula ===================================== validation/src/main/resources/i18n/validation_es_ES.properties ===================================== --- a/validation/src/main/resources/i18n/validation_es_ES.properties +++ b/validation/src/main/resources/i18n/validation_es_ES.properties @@ -94,9 +94,6 @@ observe.common.HooksCompositionObsDto.hookOffset=Offset observe.common.HooksCompositionObsDto.hookSize=Tamaño observe.common.HooksCompositionObsDto.hookType=Tipo observe.common.HooksCompositionObsDto.proportion=Proporción (%) -observe.common.I18nReferentialDto.label1=Texto en inglés -observe.common.I18nReferentialDto.label2=Texto en francés -observe.common.I18nReferentialDto.label3=Nombre observe.common.LengthLengthParameterDto.coefficients=Coeficientes observe.common.LengthLengthParameterDto.inputSizeMeasureType=Type de mensuration d'entrée \#TODO observe.common.LengthLengthParameterDto.outputInputFormula=Formule Sortie vers Entrée \#TODO ===================================== validation/src/main/resources/i18n/validation_fr_FR.properties ===================================== --- a/validation/src/main/resources/i18n/validation_fr_FR.properties +++ b/validation/src/main/resources/i18n/validation_fr_FR.properties @@ -94,9 +94,6 @@ observe.common.HooksCompositionObsDto.hookOffset=Offset observe.common.HooksCompositionObsDto.hookSize=Taille observe.common.HooksCompositionObsDto.hookType=Type observe.common.HooksCompositionObsDto.proportion=Proportion (%) -observe.common.I18nReferentialDto.label1=Libellé anglais -observe.common.I18nReferentialDto.label2=Libellé français -observe.common.I18nReferentialDto.label3=Libellé espagnol observe.common.LengthLengthParameterDto.coefficients=Coefficients observe.common.LengthLengthParameterDto.inputSizeMeasureType=Type de mensuration d'entrée observe.common.LengthLengthParameterDto.outputInputFormula=Formule sortie -> entrée View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/242e27c2367b697402d853c4c8f… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/242e27c2367b697402d853c4c8f… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 2 commits: using new model api, improve some service api + reformat some code
by Tony CHEMIT 13 Oct '17

13 Oct '17
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 780b9793 by Tony CHEMIT at 2017-10-13T01:55:38+02:00 using new model api, improve some service api + reformat some code - - - - - 6a7309a3 by Tony CHEMIT at 2017-10-13T02:17:43+02:00 reorganize table api - - - - - 30 changed files: - client/src/main/java/fr/ird/observe/client/ObserveClientApplicationContext.java - client/src/main/java/fr/ird/observe/client/ObserveMainUIInitializer.java - client/src/main/java/fr/ird/observe/client/ObserveUICallback.java - client/src/main/java/fr/ird/observe/client/RunObserveClient.java - client/src/main/java/fr/ird/observe/client/action/ObserveUIActionSupport.java - client/src/main/java/fr/ird/observe/client/action/dcppresets/DeleteFloatingObjectPresetUIAction.java - client/src/main/java/fr/ird/observe/client/action/dcppresets/QuitFloatingObjectPresetsUIAction.java - client/src/main/java/fr/ird/observe/client/action/dcppresets/SaveFloatingObjectPresetUIAction.java - client/src/main/java/fr/ird/observe/client/action/form/AddActivityLonglineSetUIAction.java - client/src/main/java/fr/ird/observe/client/action/form/AddActivitySeineFloatingObjectUIAction.java - client/src/main/java/fr/ird/observe/client/action/form/AddActivitySeineSetUIAction.java - client/src/main/java/fr/ird/observe/client/action/form/AddFloatingObjectPresetUIAction.java - client/src/main/java/fr/ird/observe/client/action/form/CopyFloatingObjectPartToLeftAction.java - client/src/main/java/fr/ird/observe/client/action/form/CopyFloatingObjectPartToRightAction.java - client/src/main/java/fr/ird/observe/client/action/form/DeleteReferenceUIAction.java - client/src/main/java/fr/ird/observe/client/action/form/EditFloatingObjectPresetUIAction.java - client/src/main/java/fr/ird/observe/client/action/form/EditReferentialFromListUIAction.java - client/src/main/java/fr/ird/observe/client/action/form/GoDownUIAction.java - client/src/main/java/fr/ird/observe/client/action/form/GoToTabUIActionSupport.java - client/src/main/java/fr/ird/observe/client/action/form/GoUpUIAction.java - client/src/main/java/fr/ird/observe/client/action/form/MoveActivityLonglineObssUIAction.java - client/src/main/java/fr/ird/observe/client/action/form/MoveActivitySeinesUIAction.java - client/src/main/java/fr/ird/observe/client/action/form/MoveMultipleDataUIActionSupport.java - client/src/main/java/fr/ird/observe/client/action/form/MoveRoutesUIAction.java - client/src/main/java/fr/ird/observe/client/action/form/MoveSingleDataUIActionSupport.java - client/src/main/java/fr/ird/observe/client/action/form/MoveTripsUIAction.java - client/src/main/java/fr/ird/observe/client/action/form/RemoveFloatingObjectPresetUIAction.java - client/src/main/java/fr/ird/observe/client/action/form/ResetTableEntryUIAction.java - client/src/main/java/fr/ird/observe/client/action/form/SaveTableEntryUIAction.java - client/src/main/java/fr/ird/observe/client/action/global/CloseDataGlobalUIAction.java The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/178787b4756097e82b35153ba6… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/178787b4756097e82b35153ba6… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 32 commits: review package layout (to clearly separate spi to impl)
by Tony CHEMIT 12 Oct '17

12 Oct '17
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 43593f22 by Tony CHEMIT at 2017-09-20T11:53:01+02:00 review package layout (to clearly separate spi to impl) - - - - - 5cb6d24f by Tony CHEMIT at 2017-09-20T12:34:45+02:00 normalize common css names + review some i18n referential - - - - - 98ecd378 by Tony CHEMIT at 2017-09-20T17:40:05+02:00 optimize referential ui - - - - - 6f8a04cd by Tony CHEMIT at 2017-09-21T11:00:37+02:00 use last jaxx version - - - - - 4a33e68a by Tony CHEMIT at 2017-09-23T00:55:45+02:00 use jaxx-spi, new service action, introduce form manager - - - - - 75e7243c by Tony CHEMIT at 2017-09-23T01:26:30+02:00 format code - - - - - 40934c76 by Tony CHEMIT at 2017-09-23T10:00:34+02:00 introduce service actions + reformat some code - - - - - 2d65c110 by Tony CHEMIT at 2017-09-23T16:46:34+02:00 continue to refacotr ui api - - - - - d15689e4 by Tony CHEMIT at 2017-09-23T16:54:03+02:00 add license headers - - - - - 13a9b786 by Tony CHEMIT at 2017-09-26T14:27:44+02:00 at this point, nearly every components are done on open, save point before next stage : Introduce ContentUIAction (open, close, save, delete, reset) - - - - - 8ab2c1ee by Tony CHEMIT at 2017-09-27T11:10:45+02:00 use new service action request + continue to uniform ui api - - - - - 7417090c by Tony CHEMIT at 2017-09-27T14:32:26+02:00 introduce OpenAction at last... - - - - - 3df6c1b4 by Tony CHEMIT at 2017-09-27T15:41:04+02:00 improve add message api + now coordinate editor validation prepare is generic - - - - - e559e6c1 by Tony CHEMIT at 2017-09-27T17:09:06+02:00 introduce ContentUISaveAction at last... - - - - - 66f003a8 by Tony CHEMIT at 2017-09-27T17:55:40+02:00 introduce ContentUIDeleteAction at last... - - - - - 5f876629 by Tony CHEMIT at 2017-09-27T18:05:54+02:00 at last, rename contentListUI implementations - - - - - 0824f7a9 by Tony CHEMIT at 2017-09-28T00:59:58+02:00 introduce last service actions and content actions, api should be stable now, just need a lot of tests to fix all missing stuffs - - - - - b2c2d2ab by Tony CHEMIT at 2017-09-28T19:24:13+02:00 remove DataContextType + have a break before next storm (says break inheritance between any ContentUI) - - - - - 3e7e561a by Tony CHEMIT at 2017-09-28T20:08:27+02:00 suppression de ClientConfig et ClientDataContext de ContentUI pour pouvoir produire une API neutre - - - - - 6a4b779c by Tony CHEMIT at 2017-09-29T03:58:40+02:00 introduce common-client + but still use the legacy ContentUI API (new one is FormUI) - - - - - 6e0793ca by Tony CHEMIT at 2017-09-29T10:40:01+02:00 review packages in api - - - - - 05e61e2d by Tony CHEMIT at 2017-10-02T10:13:01+02:00 first storm form list should be ok - - - - - c17ac930 by Tony CHEMIT at 2017-10-04T13:24:42+02:00 use DataListDto in services - - - - - 4a9e65bb by Tony CHEMIT at 2017-10-04T13:25:05+02:00 continue ui refactor - - - - - b778d987 by Tony CHEMIT at 2017-10-06T17:29:12+02:00 improve services api using DataListDtoService (which is not a service...) - - - - - 76badd72 by Tony CHEMIT at 2017-10-06T19:54:04+02:00 revert bad i18n - - - - - 090f583a by Tony CHEMIT at 2017-10-11T07:30:24+02:00 continue fury (btu still not compiled...) - - - - - 474247a7 by Tony CHEMIT at 2017-10-11T18:30:52+02:00 at last, project build with a lot of fixme to resolve - - - - - 458a9a10 by Tony CHEMIT at 2017-10-12T18:35:47+02:00 stop before trying to move TripMap to toolkit project - - - - - 617ddef4 by Tony CHEMIT at 2017-10-12T19:58:37+02:00 yes, use TripMap API from toolkit - - - - - 208d83e9 by Tony CHEMIT at 2017-10-12T20:34:10+02:00 optimize dependencies - - - - - 178787b4 by Tony CHEMIT at 2017-10-12T20:35:10+02:00 Merge branch &#39;feature/refactor_ui&#39; into develop Go back to develop... - - - - - 28 changed files: - .gitlab-ci.yml - CONTRIBUTING.md - + client-configuration/.mvn/add-build-number - client-configuration/src/main/config/Client.ini - client-configuration/src/main/java/fr/ird/observe/client/configuration/ClientConfig.java - + client/.mvn/add-build-number - + client/.mvn/application-assembly - client/pom.xml - − client/src/main/java/fr/ird/observe/client/ObserveCLAction.java - + client/src/main/java/fr/ird/observe/client/ObserveClientApplicationContext.java - client/src/main/java/fr/ird/observe/client/ui/ObserveCommon.jcss → client/src/main/java/fr/ird/observe/client/ObserveCommon.jcss - client/src/main/java/fr/ird/observe/client/ui/ObserveMainUI.jaxx → client/src/main/java/fr/ird/observe/client/ObserveMainUI.jaxx - client/src/main/java/fr/ird/observe/client/ui/ObserveMainUI.jcss → client/src/main/java/fr/ird/observe/client/ObserveMainUI.jcss - client/src/main/java/fr/ird/observe/client/ui/ObserveMainUIHandler.java → client/src/main/java/fr/ird/observe/client/ObserveMainUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/ObserveMainUIInitializer.java → client/src/main/java/fr/ird/observe/client/ObserveMainUIInitializer.java - client/src/main/java/fr/ird/observe/client/ui/ObserveMainUIModel.java → client/src/main/java/fr/ird/observe/client/ObserveMainUIModel.java - − client/src/main/java/fr/ird/observe/client/ObserveOpenDataManager.java - − client/src/main/java/fr/ird/observe/client/ObserveSwingApplicationContext.java - client/src/main/java/fr/ird/observe/client/ui/ObserveUICallback.java → client/src/main/java/fr/ird/observe/client/ObserveUICallback.java - client/src/main/java/fr/ird/observe/client/ui/ObserveUIMode.java → client/src/main/java/fr/ird/observe/client/ObserveUIMode.java - client/src/main/java/fr/ird/observe/client/ObserveRunner.java → client/src/main/java/fr/ird/observe/client/RunObserveClient.java - client/src/main/java/fr/ird/observe/client/ui/actions/content/AbstractContentUIAction.java → client/src/main/java/fr/ird/observe/client/action/AbstractContentUIAction.java - + client/src/main/java/fr/ird/observe/client/action/ObserveUIActionSupport.java - client/src/main/java/fr/ird/observe/client/ui/actions/dcprefs/DeleteFloatingObjectPresetUIAction.java → client/src/main/java/fr/ird/observe/client/action/dcppresets/DeleteFloatingObjectPresetUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/dcprefs/QuitFloatingObjectPresetsUIAction.java → client/src/main/java/fr/ird/observe/client/action/dcppresets/QuitFloatingObjectPresetsUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/dcprefs/SaveFloatingObjectPresetUIAction.java → client/src/main/java/fr/ird/observe/client/action/dcppresets/SaveFloatingObjectPresetUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/content/AddActivityLonglineSetUIAction.java → client/src/main/java/fr/ird/observe/client/action/form/AddActivityLonglineSetUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/content/AddActivitySeineFloatingObjectUIAction.java → client/src/main/java/fr/ird/observe/client/action/form/AddActivitySeineFloatingObjectUIAction.java The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/97672fa09ad8894241afaad27a… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/97672fa09ad8894241afaad27a… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe] Deleted branch feature/refactor_ui
by Tony CHEMIT 12 Oct '17

12 Oct '17
Tony CHEMIT deleted branch feature/refactor_ui at ultreiaio / ird-observe --- You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][feature/refactor_ui] optimize dependencies
by Tony CHEMIT 12 Oct '17

12 Oct '17
Tony CHEMIT pushed to branch feature/refactor_ui at ultreiaio / ird-observe Commits: 208d83e9 by Tony CHEMIT at 2017-10-12T20:34:10+02:00 optimize dependencies - - - - - 2 changed files: - client/pom.xml - pom.xml Changes: ===================================== client/pom.xml ===================================== --- a/client/pom.xml +++ b/client/pom.xml @@ -539,10 +539,6 @@ <groupId>org.swinglabs.swingx</groupId> <artifactId>swingx-core</artifactId> </dependency> - <!--dependency> - <groupId>org.swinglabs.swingx</groupId> - <artifactId>swingx-painters</artifactId> - </dependency--> <dependency> <groupId>org.swinglabs.swingx</groupId> <artifactId>swingx-common</artifactId> @@ -562,11 +558,6 @@ <artifactId>h2</artifactId> </dependency> - <!--dependency> - <groupId>org.reflections</groupId> - <artifactId>reflections</artifactId> - </dependency--> - <!-- FreeMarker --> <dependency> <groupId>org.freemarker</groupId> @@ -655,7 +646,7 @@ <dependency> <groupId>org.jetbrains</groupId> <artifactId>annotations</artifactId> - <version>RELEASE</version> + <version>15.0</version> </dependency> </dependencies> ===================================== pom.xml ===================================== --- a/pom.xml +++ b/pom.xml @@ -35,7 +35,7 @@ <packaging>pom</packaging> <name>ObServe :: Pom</name> - <description>Projet ObServe</description> + <description>Project ObServe</description> <url>https://ultreiaio.gitlab.io/ird-observe</url> <inceptionYear>2008</inceptionYear> <organization> @@ -141,17 +141,17 @@ <projectId>ird-observe</projectId> <stageId>frirdobserve</stageId> - <!-- dev version (for develop purpose --> + <!-- dev version --> <devMode>true</devMode> - <!--Modèle version--> + <!--persistence model version--> <observe.model.version>6.904</observe.model.version> <!-- build timestamp configuration --> <maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format> <buildDate>${maven.build.timestamp}</buildDate> - <observeToolkitVersion>1.6</observeToolkitVersion> + <observeToolkitVersion>1.7-SNAPSHOT</observeToolkitVersion> <eugenePluginVersion>3.0-alpha-16</eugenePluginVersion> <processorPluginVersion>1.3</processorPluginVersion> @@ -219,12 +219,6 @@ <dependency> <groupId>fr.ird.observe.toolkit</groupId> - <artifactId>topia-templates-extension</artifactId> - <version>${observeToolkitVersion}</version> - </dependency> - - <dependency> - <groupId>fr.ird.observe.toolkit</groupId> <artifactId>common-dto</artifactId> <version>${observeToolkitVersion}</version> </dependency> @@ -282,6 +276,7 @@ <artifactId>commons-io</artifactId> <version>2.5</version> </dependency> + <!--We don't use it, but we want to use only one version--> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> @@ -310,6 +305,7 @@ <version>2.8.2</version> </dependency> + <!--We don't use it, but we want to use only one version--> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> @@ -320,11 +316,6 @@ <artifactId>httpcore</artifactId> <version>4.4.7</version> </dependency> - <dependency> - <groupId>org.apache.httpcomponents</groupId> - <artifactId>httpmime</artifactId> - <version>${httpComponentsVersion}</version> - </dependency> <dependency> <groupId>junit</groupId> @@ -473,152 +464,68 @@ </dependency> <dependency> <groupId>io.ultreia.java4all.jaxx</groupId> - <artifactId>jaxx-runtime-swing-session</artifactId> - <version>${jaxxVersion}</version> - <scope>compile</scope> - </dependency> - <dependency> - <groupId>io.ultreia.java4all.jaxx</groupId> <artifactId>jaxx-runtime-swing-wizard</artifactId> <version>${jaxxVersion}</version> <scope>compile</scope> - <exclusions> - <exclusion> - <groupId>org.nuiton.i18n</groupId> - <artifactId>nuiton-i18n</artifactId> - </exclusion> - </exclusions> </dependency> <dependency> <groupId>io.ultreia.java4all.jaxx</groupId> <artifactId>jaxx-validator</artifactId> <version>${jaxxVersion}</version> <scope>compile</scope> - <exclusions> - <exclusion> - <groupId>org.nuiton.i18n</groupId> - <artifactId>nuiton-i18n</artifactId> - </exclusion> - </exclusions> </dependency> <dependency> <groupId>io.ultreia.java4all.jaxx</groupId> <artifactId>jaxx-widgets-error</artifactId> <version>${jaxxVersion}</version> <scope>compile</scope> - <exclusions> - <exclusion> - <groupId>org.nuiton.i18n</groupId> - <artifactId>nuiton-i18n</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>io.ultreia.java4all.jaxx</groupId> - <artifactId>jaxx-widgets-hidor</artifactId> - <version>${jaxxVersion}</version> - <scope>compile</scope> - <exclusions> - <exclusion> - <groupId>org.nuiton.i18n</groupId> - <artifactId>nuiton-i18n</artifactId> - </exclusion> - </exclusions> </dependency> <dependency> <groupId>io.ultreia.java4all.jaxx</groupId> <artifactId>jaxx-widgets-gis</artifactId> <version>${jaxxVersion}</version> <scope>compile</scope> - <exclusions> - <exclusion> - <groupId>org.nuiton.i18n</groupId> - <artifactId>nuiton-i18n</artifactId> - </exclusion> - </exclusions> </dependency> <dependency> <groupId>io.ultreia.java4all.jaxx</groupId> <artifactId>jaxx-widgets-datetime</artifactId> <version>${jaxxVersion}</version> <scope>compile</scope> - <exclusions> - <exclusion> - <groupId>org.nuiton.i18n</groupId> - <artifactId>nuiton-i18n</artifactId> - </exclusion> - </exclusions> </dependency> <dependency> <groupId>io.ultreia.java4all.jaxx</groupId> <artifactId>jaxx-widgets-select</artifactId> <version>${jaxxVersion}</version> <scope>compile</scope> - <exclusions> - <exclusion> - <groupId>org.nuiton.i18n</groupId> - <artifactId>nuiton-i18n</artifactId> - </exclusion> - </exclusions> </dependency> <dependency> <groupId>io.ultreia.java4all.jaxx</groupId> <artifactId>jaxx-widgets-about</artifactId> <version>${jaxxVersion}</version> <scope>compile</scope> - <exclusions> - <exclusion> - <groupId>org.nuiton.i18n</groupId> - <artifactId>nuiton-i18n</artifactId> - </exclusion> - </exclusions> </dependency> <dependency> <groupId>io.ultreia.java4all.jaxx</groupId> <artifactId>jaxx-widgets-number</artifactId> <version>${jaxxVersion}</version> <scope>compile</scope> - <exclusions> - <exclusion> - <groupId>org.nuiton.i18n</groupId> - <artifactId>nuiton-i18n</artifactId> - </exclusion> - </exclusions> </dependency> <dependency> <groupId>io.ultreia.java4all.jaxx</groupId> <artifactId>jaxx-widgets-file</artifactId> <version>${jaxxVersion}</version> <scope>compile</scope> - <exclusions> - <exclusion> - <groupId>org.nuiton.i18n</groupId> - <artifactId>nuiton-i18n</artifactId> - </exclusion> - </exclusions> </dependency> <dependency> <groupId>io.ultreia.java4all.jaxx</groupId> <artifactId>jaxx-widgets-status</artifactId> <version>${jaxxVersion}</version> - <exclusions> - <exclusion> - <groupId>org.nuiton.i18n</groupId> - <artifactId>nuiton-i18n</artifactId> - </exclusion> - </exclusions> </dependency> <dependency> <groupId>io.ultreia.java4all.jaxx</groupId> <artifactId>jaxx-widgets-config</artifactId> <version>${jaxxVersion}</version> <scope>compile</scope> - <exclusions> - <exclusion> - <groupId>org.nuiton.i18n</groupId> - <artifactId>nuiton-i18n</artifactId> - </exclusion> - </exclusions> </dependency> <dependency> <groupId>io.ultreia.java4all.jaxx</groupId> @@ -644,11 +551,6 @@ </dependency> <dependency> <groupId>org.swinglabs.swingx</groupId> - <artifactId>swingx-painters</artifactId> - <version>${swingXVersion}</version> - </dependency> - <dependency> - <groupId>org.swinglabs.swingx</groupId> <artifactId>swingx-autocomplete</artifactId> <version>${swingXVersion}</version> </dependency> @@ -810,11 +712,6 @@ </dependency> <dependency> <groupId>org.slf4j</groupId> - <artifactId>slf4j-log4j12</artifactId> - <version>${sl4jVersion}</version> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${sl4jVersion}</version> </dependency> @@ -870,6 +767,7 @@ <version>${flexmarkVersion}</version> </dependency> + <!--We don't use it, but we want to use only one version--> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> @@ -931,36 +829,6 @@ </dependencies> </plugin> - <plugin> - <artifactId>maven-scm-publish-plugin</artifactId> - <configuration> - <pubScmUrl>${project.distributionManagement.site.url}</pubScmUrl> - <scmBranch>pages</scmBranch> - <content>${project.reporting.outputDirectory}</content><!-- mono-module doesn't require site:stage --> - </configuration> - <executions> - <execution> - <id>scm-publish</id> - <phase>site-deploy</phase><!-- deploy site with maven-scm-publish-plugin --> - <goals> - <goal>publish-scm</goal> - </goals> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.codehaus.gmavenplus</groupId> - <artifactId>gmavenplus-plugin</artifactId> - <dependencies> - <dependency> - <groupId>org.reflections</groupId> - <artifactId>reflections</artifactId> - <version>${reflectionsVersion}</version> - </dependency> - </dependencies> - </plugin> - <!-- Plugins version from nuiton --> <plugin> <groupId>io.ultreia.java4all.i18n</groupId> @@ -1000,18 +868,6 @@ </plugin> <plugin> - <groupId>org.nuiton.processor</groupId> - <artifactId>processor-maven-plugin</artifactId> - <version>${processorPluginVersion}</version> - </plugin> - - <plugin> - <groupId>org.nuiton</groupId> - <artifactId>helper-maven-plugin</artifactId> - <version>${helperPluginVersion}</version> - </plugin> - - <plugin> <groupId>io.ultreia.maven</groupId> <artifactId>gitlab-maven-plugin</artifactId> <configuration> View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/208d83e90d39fe3bf20ef64e17f… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/208d83e90d39fe3bf20ef64e17f… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][feature/refactor_ui] yes, use TripMap API from toolkit
by Tony CHEMIT 12 Oct '17

12 Oct '17
Tony CHEMIT pushed to branch feature/refactor_ui at ultreiaio / ird-observe Commits: 617ddef4 by Tony CHEMIT at 2017-10-12T19:58:37+02:00 yes, use TripMap API from toolkit - - - - - 20 changed files: - client-configuration/src/main/java/fr/ird/observe/client/configuration/ClientConfig.java - client/pom.xml - client/src/main/java/fr/ird/observe/client/ObserveMainUI.jaxx - − client/src/main/java/fr/ird/observe/client/action/tripMap/ExportPngUIAction.java - − client/src/main/java/fr/ird/observe/client/action/tripMap/TripMapActionSupport.java - − client/src/main/java/fr/ird/observe/client/action/tripMap/ZoomItUIAction.java - − client/src/main/java/fr/ird/observe/client/action/tripMap/ZoomMoinsUIAction.java - − client/src/main/java/fr/ird/observe/client/action/tripMap/ZoomPlusUIAction.java - − client/src/main/java/fr/ird/observe/client/form/TripUI.java - client/src/main/java/fr/ird/observe/client/form/open/longline/TripLonglineUIHandler.java - client/src/main/java/fr/ird/observe/client/form/open/seine/TripSeineUIHandler.java - − client/src/main/java/fr/ird/observe/client/util/tripMap/ObserveMapPane.java - − client/src/main/java/fr/ird/observe/client/util/tripMap/ObserveMapPaneLegendItem.java - − client/src/main/java/fr/ird/observe/client/util/tripMap/ObserverMapPanLegendDrawer.java - − client/src/main/java/fr/ird/observe/client/util/tripMap/TripMapContentBuilder.java - − client/src/main/java/fr/ird/observe/client/util/tripMap/TripMapUI.jaxx - − client/src/main/java/fr/ird/observe/client/util/tripMap/TripMapUI.jcss - − client/src/main/java/fr/ird/observe/client/util/tripMap/TripMapUIHandler.java - − dto/src/main/java/fr/ird/observe/dto/data/TripMapDto.java - pom.xml Changes: ===================================== client-configuration/src/main/java/fr/ird/observe/client/configuration/ClientConfig.java ===================================== --- a/client-configuration/src/main/java/fr/ird/observe/client/configuration/ClientConfig.java +++ b/client-configuration/src/main/java/fr/ird/observe/client/configuration/ClientConfig.java @@ -28,6 +28,7 @@ import com.google.gson.Gson; import fr.ird.observe.client.constants.CreationMode; import fr.ird.observe.client.constants.DbMode; import fr.ird.observe.dto.FloatingObjectPreset; +import fr.ird.observe.dto.data.TripMapConfig; import fr.ird.observe.dto.presets.RemoteDataSourceConfiguration; import fr.ird.observe.dto.presets.ServerDataSourceConfiguration; import java.beans.PropertyChangeListener; @@ -62,7 +63,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - dev(a)tchemit.fr * @since 1.0 */ -public class ClientConfig extends GeneratedClientConfig { +public class ClientConfig extends GeneratedClientConfig implements TripMapConfig { /** le pattern du fichier de sauvegarde d'une base locale */ private static final String BACKUP_DB_PATTERN = "obstuna-local-%1$tF--%1$tk-%1$tM-%1$tS.sql.gz"; @@ -455,7 +456,7 @@ public class ClientConfig extends GeneratedClientConfig { public void setRemoteDataSourceConfigurations(RemoteDataSourceConfiguration[] configurations) { String option = new Gson().toJson(configurations); get().setOption(ClientConfigOption.REMOTE_DATA_SOURCE_CONFIGURATIONS.getKey(), option); - remoteDataSourceConfigurationList=null; + remoteDataSourceConfigurationList = null; } ImmutableList<ServerDataSourceConfiguration> serverDataSourceConfigurationList; @@ -511,7 +512,7 @@ public class ClientConfig extends GeneratedClientConfig { public void setServerDataSourceConfigurations(ServerDataSourceConfiguration[] configurations) { String option = new Gson().toJson(configurations); get().setOption(ClientConfigOption.SERVER_DATA_SOURCE_CONFIGURATIONS.getKey(), option); - serverDataSourceConfigurationList=null; + serverDataSourceConfigurationList = null; } private final SimpleDateFormat dateFormat = new SimpleDateFormat(); ===================================== client/pom.xml ===================================== --- a/client/pom.xml +++ b/client/pom.xml @@ -79,6 +79,16 @@ </releases> </repository> </repositories> + <pluginRepositories> + <pluginRepository> + <id>geotools-repository</id> + <url>http://download.osgeo.org/webdav/geotools</url> + <releases> + <enabled>true</enabled> + <checksumPolicy>fail</checksumPolicy> + </releases> + </pluginRepository> + </pluginRepositories> <dependencyManagement> <dependencies> @@ -402,10 +412,10 @@ <groupId>io.ultreia.java4all.jaxx</groupId> <artifactId>jaxx-runtime-swing-application</artifactId> </dependency> - <dependency> + <!--dependency> <groupId>io.ultreia.java4all.jaxx</groupId> <artifactId>jaxx-runtime-swing-session</artifactId> - </dependency> + </dependency--> <dependency> <groupId>io.ultreia.java4all.jaxx</groupId> <artifactId>jaxx-runtime-swing-wizard</artifactId> @@ -418,10 +428,10 @@ <groupId>io.ultreia.java4all.jaxx</groupId> <artifactId>jaxx-widgets-error</artifactId> </dependency> - <dependency> + <!--dependency> <groupId>io.ultreia.java4all.jaxx</groupId> <artifactId>jaxx-widgets-hidor</artifactId> - </dependency> + </dependency--> <dependency> <groupId>io.ultreia.java4all.jaxx</groupId> <artifactId>jaxx-widgets-gis</artifactId> @@ -529,10 +539,10 @@ <groupId>org.swinglabs.swingx</groupId> <artifactId>swingx-core</artifactId> </dependency> - <dependency> + <!--dependency> <groupId>org.swinglabs.swingx</groupId> <artifactId>swingx-painters</artifactId> - </dependency> + </dependency--> <dependency> <groupId>org.swinglabs.swingx</groupId> <artifactId>swingx-common</artifactId> @@ -552,10 +562,10 @@ <artifactId>h2</artifactId> </dependency> - <dependency> + <!--dependency> <groupId>org.reflections</groupId> <artifactId>reflections</artifactId> - </dependency> + </dependency--> <!-- FreeMarker --> <dependency> @@ -567,26 +577,32 @@ <dependency> <groupId>org.geotools</groupId> <artifactId>gt-swing</artifactId> + <scope>runtime</scope> </dependency> <dependency> <groupId>org.geotools</groupId> <artifactId>gt-api</artifactId> + <scope>runtime</scope> </dependency> <dependency> <groupId>org.geotools</groupId> <artifactId>gt-main</artifactId> + <scope>runtime</scope> </dependency> <dependency> <groupId>org.geotools</groupId> <artifactId>gt-render</artifactId> + <scope>runtime</scope> </dependency> <dependency> <groupId>org.geotools</groupId> <artifactId>gt-referencing</artifactId> + <scope>runtime</scope> </dependency> <dependency> <groupId>org.geotools</groupId> <artifactId>gt-opengis</artifactId> + <scope>runtime</scope> </dependency> <dependency> <groupId>org.geotools</groupId> @@ -601,6 +617,7 @@ <dependency> <groupId>com.vividsolutions</groupId> <artifactId>jts</artifactId> + <scope>runtime</scope> </dependency> <dependency> @@ -688,6 +705,13 @@ </goals> </execution> </executions> + <dependencies> + <dependency> + <groupId>org.geotools</groupId> + <artifactId>gt-swing</artifactId> + <version>${geoToolsVersion}</version> + </dependency> + </dependencies> </plugin> <plugin> ===================================== client/src/main/java/fr/ird/observe/client/ObserveMainUI.jaxx ===================================== --- a/client/src/main/java/fr/ird/observe/client/ObserveMainUI.jaxx +++ b/client/src/main/java/fr/ird/observe/client/ObserveMainUI.jaxx @@ -169,30 +169,40 @@ public void registerAction(AbstractButton editor) { actionMap.registerAction(editor); } +@Override public void displayInfo(String text) { status.setStatus(text); } +@Override public void displayInfo(String title, String text) { JOptionPanes.displayInfo(this, title, text); } +@Override public void displayWarning(String title, String text) { JOptionPanes.displayWarning(this, title, text); } +@Override public int askUser(String title, String message, int typeMessage, Object[] options, int defaultOption) { return JOptionPanes.askUser(this, title, message, typeMessage, options, defaultOption); } +@Override public int askUser(String title, Object message, int typeMessage, Object[] options, int defaultOption) { return JOptionPanes.askUser(this, title, message, typeMessage, options, defaultOption); } +@Override public int askUser(JOptionPane pane, String title, Object[] options) { return JOptionPanes.askUser(this, pane, title, options); } +@Override +public void setBusy(boolean busy) { + model.setBusy(busy); +} ]]> </script> ===================================== client/src/main/java/fr/ird/observe/client/action/tripMap/ExportPngUIAction.java deleted ===================================== --- a/client/src/main/java/fr/ird/observe/client/action/tripMap/ExportPngUIAction.java +++ /dev/null @@ -1,80 +0,0 @@ -package fr.ird.observe.client.action.tripMap; - -/*- - * #%L - * ObServe :: Client - * %% - * Copyright (C) 2008 - 2017 IRD, Code Lutin, Ultreia.io - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.client.ObserveClientTechnicalException; -import fr.ird.observe.client.ObserveMainUI; -import fr.ird.observe.client.util.tripMap.TripMapUI; -import java.awt.image.BufferedImage; -import java.io.File; -import java.io.IOException; -import javax.imageio.ImageIO; -import javax.swing.KeyStroke; -import org.nuiton.jaxx.widgets.file.JaxxFileChoosers; - - -import static org.nuiton.i18n.I18n.t; - -/** - * Created by tchemit on 25/08/17. - * - * @author Tony Chemit - dev(a)tchemit.fr - */ -public class ExportPngUIAction extends TripMapActionSupport { - - public static final String ACTION_NAME = ExportPngUIAction.class.getName(); - - public ExportPngUIAction(ObserveMainUI mainUI) { - super(mainUI, - ACTION_NAME, - t("observe.content.map.action.exportPng"), - t("observe.content.map.action.exportPng.tip"), - "save", - KeyStroke.getKeyStroke("ctrl pressed S")); - } - - @Override - protected void actionPerformed(TripMapUI view) { - - File file = JaxxFileChoosers.chooseFile( - view, - t("observe.content.map.export.chooseFile.title"), - t("observe.content.map.export.chooseFile.ok"), - null, - "^.+\\.png|.+\\.PNG$", - t("observe.content.map.export.chooseFile.png")); - - if (file != null && JaxxFileChoosers.confirmOverwriteFileIfExist(view, file)) { - - BufferedImage im = new BufferedImage(view.getWidth(), view.getHeight(), BufferedImage.TYPE_INT_ARGB); - view.paint(im.getGraphics()); - try { - ImageIO.write(im, "PNG", file); - } catch (IOException e) { - throw new ObserveClientTechnicalException("unable to export map ", e); - } - - displayInfo(t("observe.content.map.export.success", file)); - } - } -} ===================================== client/src/main/java/fr/ird/observe/client/action/tripMap/TripMapActionSupport.java deleted ===================================== --- a/client/src/main/java/fr/ird/observe/client/action/tripMap/TripMapActionSupport.java +++ /dev/null @@ -1,83 +0,0 @@ -package fr.ird.observe.client.action.tripMap; - -/*- - * #%L - * ObServe :: Client - * %% - * Copyright (C) 2008 - 2017 IRD, Code Lutin, Ultreia.io - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.client.action.UIActionSupport; -import fr.ird.observe.client.ObserveMainUI; -import fr.ird.observe.client.form.TripUI; -import fr.ird.observe.client.util.tripMap.TripMapUI; -import java.awt.event.ActionEvent; -import javax.swing.JComponent; -import javax.swing.KeyStroke; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -/** - * Created by tchemit on 25/08/17. - * - * @author Tony Chemit - dev(a)tchemit.fr - */ -public abstract class TripMapActionSupport extends UIActionSupport { - - /** Logger. */ - private static final Log log = LogFactory.getLog(TripMapActionSupport.class); - - private TripMapUI ui; - protected ActionEvent e; - - protected abstract void actionPerformed(TripMapUI ui); - - TripMapActionSupport(ObserveMainUI mainUI, String actionCommandKey, String label, String shortDescription, String actionIcon, KeyStroke acceleratorKey) { - super(mainUI, actionCommandKey, label, shortDescription, actionIcon, acceleratorKey); - } - - public void setUi(TripMapUI ui) { - this.ui = ui; - } - - @Override - public final void actionPerformed(ActionEvent e) { - if (!canExecuteAction()) { - return; - } - this.e = e; - - if (ui != null) { - actionPerformed(ui); - return; - } - TripUI source = (TripUI) e.getSource(); - actionPerformed(source.getTripMap()); - } - - private boolean canExecuteAction() { - JComponent editor = getEditor(); - if ((editor == null || (editor.isVisible() && editor.isEnabled() && editor.isShowing()))) { - return true; - } - if (log.isInfoEnabled()) { - log.info("Disabled action: " + getActionCommandKey() + " :: " + this); - } - return false; - } -} ===================================== client/src/main/java/fr/ird/observe/client/action/tripMap/ZoomItUIAction.java deleted ===================================== --- a/client/src/main/java/fr/ird/observe/client/action/tripMap/ZoomItUIAction.java +++ /dev/null @@ -1,61 +0,0 @@ -package fr.ird.observe.client.action.tripMap; - -/*- - * #%L - * ObServe :: Client - * %% - * Copyright (C) 2008 - 2017 IRD, Code Lutin, Ultreia.io - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.client.ObserveMainUI; -import fr.ird.observe.client.util.tripMap.TripMapUI; -import javax.swing.KeyStroke; -import org.geotools.geometry.jts.ReferencedEnvelope; -import org.geotools.swing.JMapPane; - - -import static org.nuiton.i18n.I18n.t; - -/** - * Created by tchemit on 25/08/17. - * - * @author Tony Chemit - dev(a)tchemit.fr - */ -public class ZoomItUIAction extends TripMapActionSupport { - - public static final String ACTION_NAME = ZoomItUIAction.class.getName(); - - public ZoomItUIAction(ObserveMainUI mainUI) { - super(mainUI, - ACTION_NAME, - t("observe.content.map.action.zoomIt"), - t("observe.content.map.action.zoomIt.tip"), - "center", - KeyStroke.getKeyStroke("ctrl pressed I")); - } - - @Override - protected void actionPerformed(TripMapUI view) { - - ReferencedEnvelope tripArea = view.getHandler().getTripArea(); - if (!tripArea.isEmpty()) { - JMapPane mapPane = view.getObserveMapPane(); - mapPane.setDisplayArea(tripArea); - } - } -} ===================================== client/src/main/java/fr/ird/observe/client/action/tripMap/ZoomMoinsUIAction.java deleted ===================================== --- a/client/src/main/java/fr/ird/observe/client/action/tripMap/ZoomMoinsUIAction.java +++ /dev/null @@ -1,72 +0,0 @@ -package fr.ird.observe.client.action.tripMap; - -/*- - * #%L - * ObServe :: Client - * %% - * Copyright (C) 2008 - 2017 IRD, Code Lutin, Ultreia.io - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.client.ObserveMainUI; -import fr.ird.observe.client.util.tripMap.TripMapUI; -import fr.ird.observe.client.util.tripMap.TripMapUIHandler; -import java.awt.Point; -import javax.swing.KeyStroke; -import org.geotools.geometry.jts.ReferencedEnvelope; - - -import static fr.ird.observe.client.util.tripMap.TripMapUIHandler.ZOOM_STEP_RATIO; -import static org.nuiton.i18n.I18n.t; - -/** - * Created by tchemit on 25/08/17. - * - * @author Tony Chemit - dev(a)tchemit.fr - */ -public class ZoomMoinsUIAction extends TripMapActionSupport { - - public static final String ACTION_NAME = ZoomMoinsUIAction.class.getName(); - - public ZoomMoinsUIAction(ObserveMainUI mainUI) { - super(mainUI, - ACTION_NAME, - t("observe.content.map.action.zoomMoins"), - t("observe.content.map.action.zoomMoins.tip"), - "center", - KeyStroke.getKeyStroke("ctrl pressed L")); - } - - @Override - protected void actionPerformed(TripMapUI view) { - - TripMapUIHandler handler = view.getHandler(); - ReferencedEnvelope tripArea = handler.getTripArea(); - - if (!tripArea.isEmpty()) { - int notches = 1; - ReferencedEnvelope displayArea = view.getObserveMapPane().getDisplayArea(); - double w = displayArea.getMedian(0); - double h = displayArea.getMedian(1); - Point zoomCenter = new Point((int) w, (int) h); - handler.setZoomCenter(zoomCenter); - handler.setZoomRatio(handler.getZoomRatio() * (1 + (ZOOM_STEP_RATIO * notches * -1))); - handler.zoomApply(); - } - - } -} ===================================== client/src/main/java/fr/ird/observe/client/action/tripMap/ZoomPlusUIAction.java deleted ===================================== --- a/client/src/main/java/fr/ird/observe/client/action/tripMap/ZoomPlusUIAction.java +++ /dev/null @@ -1,72 +0,0 @@ -package fr.ird.observe.client.action.tripMap; - -/*- - * #%L - * ObServe :: Client - * %% - * Copyright (C) 2008 - 2017 IRD, Code Lutin, Ultreia.io - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.client.ObserveMainUI; -import fr.ird.observe.client.util.tripMap.TripMapUI; -import fr.ird.observe.client.util.tripMap.TripMapUIHandler; -import java.awt.Point; -import javax.swing.KeyStroke; -import org.geotools.geometry.jts.ReferencedEnvelope; - - -import static fr.ird.observe.client.util.tripMap.TripMapUIHandler.ZOOM_STEP_RATIO; -import static org.nuiton.i18n.I18n.t; - -/** - * Created by tchemit on 25/08/17. - * - * @author Tony Chemit - dev(a)tchemit.fr - */ -public class ZoomPlusUIAction extends TripMapActionSupport { - - public static final String ACTION_NAME = ZoomPlusUIAction.class.getName(); - - public ZoomPlusUIAction(ObserveMainUI mainUI) { - super(mainUI, - ACTION_NAME, - t("observe.content.map.action.zoomPlus"), - t("observe.content.map.action.zoomPlus.tip"), - "zoomPlus", - KeyStroke.getKeyStroke("ctrl pressed P")); - } - - @Override - protected void actionPerformed(TripMapUI view) { - - TripMapUIHandler handler = view.getHandler(); - ReferencedEnvelope tripArea = handler.getTripArea(); - - if (!tripArea.isEmpty()) { - int notches = 1; - ReferencedEnvelope displayArea = view.getObserveMapPane().getDisplayArea(); - double w = displayArea.getMedian(0); - double h = displayArea.getMedian(1); - Point zoomCenter = new Point((int) w, (int) h); - handler.setZoomCenter(zoomCenter); - handler.setZoomRatio(handler.getZoomRatio() * (1 - (ZOOM_STEP_RATIO * notches * -1))); - handler.zoomApply(); - } - - } -} ===================================== client/src/main/java/fr/ird/observe/client/form/TripUI.java deleted ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/TripUI.java +++ /dev/null @@ -1,39 +0,0 @@ -package fr.ird.observe.client.form; - -/*- - * #%L - * ObServe :: Client - * %% - * Copyright (C) 2008 - 2017 IRD, Code Lutin, Ultreia.io - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.client.util.tripMap.TripMapUI; - -/** - * Created by tchemit on 25/08/17. - * - * @author Tony Chemit - dev(a)tchemit.fr - */ -public interface TripUI { - - TripMapUI getTripMap(); - - Boolean getBuildTripMap(); - - void setBuildTripMap(Boolean buildTripMap); -} ===================================== client/src/main/java/fr/ird/observe/client/form/open/longline/TripLonglineUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/open/longline/TripLonglineUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/form/open/longline/TripLonglineUIHandler.java @@ -87,7 +87,7 @@ class TripLonglineUIHandler extends ObserveOpenDataFormUIHandler<TripLonglineDto ClientConfig config = ObserveClientApplicationContext.get().getConfig(); tripMap.getHandler().setConfig(config); - tripMap.getHandler().init(ui.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)); + tripMap.getHandler().init(ui.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW), mainUI.getActionMap()); //FIXME!!! Use a action (shared with TripSeineHandler) getUi().getMainTabbedPane().addChangeListener(e -> { @@ -102,7 +102,7 @@ class TripLonglineUIHandler extends ObserveOpenDataFormUIHandler<TripLonglineDto try { TripMapUI tripMap11 = ui.getTripMap(); TripMapDto tripLonglineMap = model.getService().getTripLonglineMap(getModel().getSelectedId()); - tripMap11.getHandler().doOpenMap(tripLonglineMap); + tripMap11.getHandler().doOpenMap(mainUI, tripLonglineMap); } finally { ObserveClientApplicationContext.get().getMainUI().getModel().setBusy(false); } ===================================== client/src/main/java/fr/ird/observe/client/form/open/seine/TripSeineUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/open/seine/TripSeineUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/form/open/seine/TripSeineUIHandler.java @@ -84,7 +84,7 @@ class TripSeineUIHandler extends ObserveOpenDataFormUIHandler<TripSeineDto, Trip ClientConfig config = ObserveClientApplicationContext.get().getConfig(); tripMap.getHandler().setConfig(config); - tripMap.getHandler().init(ui.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)); + tripMap.getHandler().init(ui.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW), mainUI.getActionMap()); ui.getMainTabbedPane().addChangeListener(e -> { JTabbedPane tripSeineTabPane = (JTabbedPane) e.getSource(); @@ -99,7 +99,7 @@ class TripSeineUIHandler extends ObserveOpenDataFormUIHandler<TripSeineDto, Trip try { TripMapUI tripMap11 = ui.getTripMap(); TripMapDto tripSeineMap = model.getService().getTripSeineMap(getModel().getSelectedId()); - tripMap11.getHandler().doOpenMap(tripSeineMap); + tripMap11.getHandler().doOpenMap(mainUI, tripSeineMap); } finally { ObserveClientApplicationContext.get().getMainUI().getModel().setBusy(false); } ===================================== client/src/main/java/fr/ird/observe/client/util/tripMap/ObserveMapPane.java deleted ===================================== --- a/client/src/main/java/fr/ird/observe/client/util/tripMap/ObserveMapPane.java +++ /dev/null @@ -1,362 +0,0 @@ -package fr.ird.observe.client.util.tripMap; - -/* - * #%L - * ObServe :: Client - * %% - * Copyright (C) 2008 - 2017 IRD, Code Lutin, Ultreia.io - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.google.common.collect.Lists; -import java.awt.Color; -import java.awt.Font; -import java.awt.FontMetrics; -import java.awt.Graphics; -import java.awt.Point; -import java.awt.Polygon; -import java.awt.geom.Point2D; -import java.awt.geom.Rectangle2D; -import java.awt.image.BufferedImage; -import java.util.List; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.geotools.geometry.jts.ReferencedEnvelope; -import org.geotools.renderer.lite.RendererUtilities; -import org.geotools.styling.FeatureTypeStyle; -import org.geotools.styling.Rule; -import org.geotools.styling.Style; -import org.geotools.swing.JMapPane; -import org.geotools.swing.event.MapPaneAdapter; -import org.geotools.swing.event.MapPaneEvent; - - -import static org.nuiton.i18n.I18n.n; -import static org.nuiton.i18n.I18n.t; - -/** - * @author Tony Chemit - dev(a)tchemit.fr - */ -public class ObserveMapPane extends JMapPane { - - private static final long serialVersionUID = 1L; - private static final Log log = LogFactory.getLog(ObserveMapPane.class); - - protected static final int MARGIN = 10; - - protected static final int SCALE_HEIGHT = 15; - protected static final int SCALE_WIDTH_MAX = 200; - - protected static final int METERS_BY_MILES = 1852; - - protected int scaleWidth; - - protected String labelScaleUp; - - protected double rotation; - - public ObserveMapPane() { - labelScaleUp = "0 m"; - scaleWidth = 100; - rotation = 0; - addMapPaneListener(new MapPaneAdapter() { - @Override - public void onDisplayAreaChanged(MapPaneEvent ev) { - updateScale(); - } - }); - legendItems = Lists.newArrayList(); - - } - - - protected void updateScale() { - ReferencedEnvelope displayArea = getDisplayArea(); - double dpi = 2.54 / 100; // pour avoir l'echélle en metre/pixel - - try { - double meterPerPixel = RendererUtilities.calculateScale(displayArea, getWidth(), getHeight(), dpi); - - double maxWidthMeter = SCALE_WIDTH_MAX * meterPerPixel; - - double maxWidthMiles = maxWidthMeter / METERS_BY_MILES; - - int nbDigit = (int) Math.floor(Math.log10(maxWidthMiles)); - - int firstDigit = (int) Math.floor(maxWidthMiles / Math.pow(10, nbDigit)); // le premier chiffre significatif - - int useFirstDigit; - - if (firstDigit >= 5) { - useFirstDigit = 5; - } else if (firstDigit >= 2) { - useFirstDigit = 2; - } else { - useFirstDigit = 1; - } - - long scaleInMiles = useFirstDigit * (long) Math.pow(10, nbDigit); - - scaleWidth = (int) Math.round(scaleInMiles * METERS_BY_MILES / meterPerPixel); - - labelScaleUp = String.format("%,d " + t("observe.content.map.miles"), scaleInMiles); - - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error("error", e); - } - } - } - - protected void paintScale(Graphics graphics) { - graphics.setColor(Color.BLACK); - - FontMetrics fm = graphics.getFontMetrics(); - - Rectangle2D textArea = fm.getStringBounds(labelScaleUp, graphics); - - int labelLeft = getWidth() - MARGIN * 2 - scaleWidth - (int) textArea.getWidth(); - - graphics.drawString(labelScaleUp, labelLeft, getHeight() - MARGIN); - - int scalesEndX = getWidth() - MARGIN; - - int scaleStartX = scalesEndX - scaleWidth; - - int scalesEndY = getHeight() - MARGIN; - - int scaleStartY = scalesEndY - SCALE_HEIGHT; - - graphics.drawLine(scaleStartX, scaleStartY, scaleStartX, scalesEndY); - graphics.drawLine(scaleStartX, scalesEndY, scalesEndX, scalesEndY); - graphics.drawLine(scalesEndX, scalesEndY, scalesEndX, scaleStartY); - - } - - protected static int AXIS_LENGTH = 30; - - protected static int SUB_AXIS_LENGTH = 5; - - protected static int CENTER_MARGIN = 50; - - protected static int INTER_AXIS_TEXT = 3; - - protected static double FONT_SIZE = 12; - - - protected void paintCompass(Graphics graphics) { - - Point center = new Point(getWidth() - CENTER_MARGIN, CENTER_MARGIN); - - Font font = graphics.getFont(); - Font fontRatio = font.deriveFont((float) (FONT_SIZE)); - graphics.setFont(fontRatio); - - FontMetrics fm = graphics.getFontMetrics(); - - for (CardinalPoint cardinalPoint : CardinalPoint.values()) { - - Point2D direction = cardinalPoint.getDirection(rotation, AXIS_LENGTH, center); - - Point2D sommet1 = cardinalPoint.getDirection(rotation - Math.PI / 4, SUB_AXIS_LENGTH, center); - - Point2D sommet2 = cardinalPoint.getDirection(rotation + Math.PI / 4, SUB_AXIS_LENGTH, center); - - - Polygon polygon = new Polygon(); - polygon.addPoint((int) center.getX(), (int) center.getY()); - polygon.addPoint((int) direction.getX(), (int) direction.getY()); - polygon.addPoint((int) sommet2.getX(), (int) sommet2.getY()); - graphics.fillPolygon(polygon); - - graphics.drawLine((int) sommet1.getX(), (int) sommet1.getY(), (int) direction.getX(), (int) direction.getY()); - - Rectangle2D textArea = fm.getStringBounds(cardinalPoint.getLabel(), graphics); - - // on cherche la ditance entre le centre du text et sa bordure dans le direction donné - double l = cardinalPoint.distanceCenterBorder(rotation, textArea); - - Point2D textCenter = cardinalPoint.getDirection(rotation, AXIS_LENGTH + INTER_AXIS_TEXT + l, center); - - graphics.drawString( - cardinalPoint.getLabel(), - (int) (textCenter.getX() - textArea.getWidth() / 2), - (int) (textCenter.getY() + textArea.getHeight() / 2)); - } - - } - - - protected static int LEGEND_MARGIN = 3; - - protected List<ObserveMapPaneLegendItem> legendItems; - - public List<ObserveMapPaneLegendItem> getLegendItems() { - return legendItems; - } - - public void setLegendItems(List<ObserveMapPaneLegendItem> legendItems) { - this.legendItems = legendItems; - } - - protected void paintLegend(Graphics graphics) { - - if (legendItems != null) { - - int x = 0; - int y = getHeight() - ObserveMapPaneLegendItem.LEGEND_ITEM_HEIGHT * legendItems.size() - 2 * LEGEND_MARGIN; - - ObserverMapPanLegendDrawer drawer = new ObserverMapPanLegendDrawer(); - - FontMetrics fm = graphics.getFontMetrics(); - - int maxLabelWidth = 0; - - for (ObserveMapPaneLegendItem item : legendItems) { - Rectangle2D labelArea = fm.getStringBounds(item.getLabel(), graphics); - - maxLabelWidth = Math.max((int) labelArea.getWidth(), maxLabelWidth); - - } - - int legendWidth = ObserveMapPaneLegendItem.LEGEND_SYMBOL_WIDTH + maxLabelWidth + ObserveMapPaneLegendItem.LEGEND_MARGIN * 2; - - graphics.setColor(ObserveMapPaneLegendItem.LEGEND_BACKGROUND); - graphics.fillRect( - x, - y, - legendWidth, - LEGEND_MARGIN); - - y += LEGEND_MARGIN; - - for (ObserveMapPaneLegendItem item : legendItems) { - - graphics.setColor(ObserveMapPaneLegendItem.LEGEND_BACKGROUND); - graphics.fillRect( - x, - y, - legendWidth, - ObserveMapPaneLegendItem.LEGEND_ITEM_HEIGHT); - - BufferedImage symbole = new BufferedImage( - ObserveMapPaneLegendItem.LEGEND_SYMBOL_WIDTH, - ObserveMapPaneLegendItem.LEGEND_ITEM_HEIGHT, - BufferedImage.TYPE_INT_ARGB); - - Style style = item.getStyle(); - - for (FeatureTypeStyle featureTypeStyle : style.featureTypeStyles()) { - - for (Rule rule : featureTypeStyle.rules()) { - - if (rule.getFilter().evaluate(item.getSimpleFeature())) { - - drawer.drawDirect(symbole, item.getSimpleFeature(), rule); - - } - } - } - - graphics.drawImage(symbole, x + LEGEND_MARGIN, y, null); - - graphics.setColor(Color.BLACK); - - int labelMarginBottom = ((ObserveMapPaneLegendItem.LEGEND_ITEM_HEIGHT - fm.getHeight()) / 2) + fm.getDescent(); - - graphics.drawString(item.getLabel(), - x + LEGEND_MARGIN + ObserveMapPaneLegendItem.LEGEND_SYMBOL_WIDTH, - y + ObserveMapPaneLegendItem.LEGEND_ITEM_HEIGHT - labelMarginBottom); - - y += ObserveMapPaneLegendItem.LEGEND_ITEM_HEIGHT; - - } - - graphics.setColor(ObserveMapPaneLegendItem.LEGEND_BACKGROUND); - graphics.fillRect( - x, - y, - legendWidth, - LEGEND_MARGIN); - - } - - } - - - @Override - public void paint(Graphics graphics) { - - super.paint(graphics); - - paintScale(graphics); - - paintCompass(graphics); - - paintLegend(graphics); - - } - - protected enum CardinalPoint { - NORTH(-1, 0, 0, -1, n("observe.content.map.north")), - SOUTH(1, 0, 0, 1, n("observe.content.map.south")), - WEST(0, -1, 1, 0, n("observe.content.map.west")), - EST(0, 1, -1, 0, n("observe.content.map.east")); - - protected int matrix00; - protected int matrix01; - protected int matrix10; - protected int matrix11; - protected String label; - - CardinalPoint(int matrix00, int matrix01, int matrix10, int matrix11, String label) { - this.matrix00 = matrix00; - this.matrix01 = matrix01; - this.matrix10 = matrix10; - this.matrix11 = matrix11; - this.label = label; - } - - public Point2D.Double getDirection(double angle, double length, Point center) { - - double x = Math.sin(angle) * length; - double y = Math.cos(angle) * length; - - double deltaX = matrix00 * x + matrix01 * y; - double deltaY = matrix10 * x + matrix11 * y; - - return new Point2D.Double(center.getX() + deltaX, center.getY() + deltaY); - } - - // on cherche la ditance entre le centre du text et sa bordure dans le direction donné - public double distanceCenterBorder(double angle, Rectangle2D textArea) { - - double x = Math.sin(angle); - double y = Math.cos(angle); - - double deltaW = Math.abs(textArea.getWidth() / 2 / (matrix00 * x + matrix01 * y)); - double deltaH = Math.abs(textArea.getHeight() / 2 / (matrix10 * x + matrix11 * y)); - - return Math.min(deltaH, deltaW); - } - - public String getLabel() { - return t(label); - } - } - -} ===================================== client/src/main/java/fr/ird/observe/client/util/tripMap/ObserveMapPaneLegendItem.java deleted ===================================== --- a/client/src/main/java/fr/ird/observe/client/util/tripMap/ObserveMapPaneLegendItem.java +++ /dev/null @@ -1,88 +0,0 @@ -package fr.ird.observe.client.util.tripMap; - -/* - * #%L - * ObServe :: Client - * %% - * Copyright (C) 2008 - 2017 IRD, Code Lutin, Ultreia.io - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.vividsolutions.jts.geom.Coordinate; -import java.awt.Color; -import org.geotools.styling.Style; -import org.opengis.feature.simple.SimpleFeature; - -/** - * @author Tony Chemit - dev(a)tchemit.fr - */ -public class ObserveMapPaneLegendItem { - - protected static final int LEGEND_ITEM_HEIGHT = 20; - protected static final int LEGEND_SYMBOL_WIDTH = 50; - protected static final int LEGEND_MARGIN = 5; - protected static final Color LEGEND_BACKGROUND = new Color(1f, 1f, 1f, 0.8f); - - - public static Coordinate[] lineCoordinates() { - Coordinate[] coordinates = new Coordinate[2]; - coordinates[0] = new Coordinate(LEGEND_MARGIN, LEGEND_ITEM_HEIGHT / 2); - coordinates[1] = new Coordinate(LEGEND_SYMBOL_WIDTH - LEGEND_MARGIN, LEGEND_ITEM_HEIGHT / 2); - return coordinates; - } - - public static Coordinate pointCoordinates() { - return new Coordinate(LEGEND_SYMBOL_WIDTH / 2, LEGEND_ITEM_HEIGHT / 2); - } - - - protected SimpleFeature simpleFeature; - - protected Style style; - - protected String label; - - public ObserveMapPaneLegendItem(SimpleFeature simpleFeature, Style style, String label) { - this.simpleFeature = simpleFeature; - this.style = style; - this.label = label; - } - - public SimpleFeature getSimpleFeature() { - return simpleFeature; - } - - public void setSimpleFeature(SimpleFeature simpleFeature) { - this.simpleFeature = simpleFeature; - } - - public Style getStyle() { - return style; - } - - public void setStyle(Style style) { - this.style = style; - } - - public String getLabel() { - return label; - } - - public void setLabel(String label) { - this.label = label; - } -} ===================================== client/src/main/java/fr/ird/observe/client/util/tripMap/ObserverMapPanLegendDrawer.java deleted ===================================== --- a/client/src/main/java/fr/ird/observe/client/util/tripMap/ObserverMapPanLegendDrawer.java +++ /dev/null @@ -1,110 +0,0 @@ -package fr.ird.observe.client.util.tripMap; - -/* - * #%L - * ObServe :: Client - * %% - * Copyright (C) 2008 - 2017 IRD, Code Lutin, Ultreia.io - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.vividsolutions.jts.geom.Geometry; -import java.awt.BasicStroke; -import java.awt.Color; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Stroke; -import java.awt.geom.AffineTransform; -import java.awt.image.BufferedImage; -import org.geotools.geometry.jts.LiteShape; -import org.geotools.legend.Drawer; -import org.geotools.styling.LineSymbolizer; -import org.geotools.styling.Rule; -import org.geotools.styling.SLD; -import org.geotools.styling.Symbolizer; -import org.opengis.feature.simple.SimpleFeature; - -/** - * @author Tony Chemit - dev(a)tchemit.fr - */ -public class ObserverMapPanLegendDrawer { - - protected final Drawer drawer; - - - public ObserverMapPanLegendDrawer() { - drawer = Drawer.create(); - - } - - public void drawDirect(BufferedImage bi, SimpleFeature feature, Rule rule) { - AffineTransform affineTransform = new AffineTransform(); - - LiteShape shape = new LiteShape(null, affineTransform, false); - for (Symbolizer symbolizer : rule.getSymbolizers()) { - if (symbolizer instanceof LineSymbolizer) { - LineSymbolizer lineSymbolizer = (LineSymbolizer) symbolizer; - - Geometry geometry = findGeometry(feature, lineSymbolizer); - if (geometry != null) { - - Graphics graphics = bi.getGraphics(); - Graphics2D g = (Graphics2D) graphics; - - shape.setGeometry(geometry); - - - Color c = SLD.color(lineSymbolizer); - int w = SLD.width(lineSymbolizer); - float[] lineDash = SLD.lineDash(lineSymbolizer); - if (c != null && w > 0) { - g.setColor(c); - - Stroke str = new BasicStroke( - w, - BasicStroke.CAP_SQUARE, - BasicStroke.JOIN_MITER, - 10.0f, lineDash, 0.0f - ); - g.setStroke(str); - - g.draw(shape); - } - } - } else { - drawer.drawFeature(bi, feature, affineTransform, false, symbolizer, null, shape); - } - - } - - - } - - protected Geometry findGeometry(SimpleFeature feature, LineSymbolizer lineSymbolizer) { - String geomName = lineSymbolizer.getGeometryPropertyName(); - - Geometry geom; - if (geomName == null) { - geom = (Geometry) feature.getDefaultGeometry(); - } else { - geom = (Geometry) feature.getAttribute(geomName); - } - return geom; - } - - -} ===================================== client/src/main/java/fr/ird/observe/client/util/tripMap/TripMapContentBuilder.java deleted ===================================== --- a/client/src/main/java/fr/ird/observe/client/util/tripMap/TripMapContentBuilder.java +++ /dev/null @@ -1,476 +0,0 @@ -package fr.ird.observe.client.util.tripMap; - -/* - * #%L - * ObServe :: Client - * %% - * Copyright (C) 2008 - 2017 IRD, Code Lutin, Ultreia.io - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Lists; -import com.google.common.collect.Sets; -import com.vividsolutions.jts.geom.Coordinate; -import com.vividsolutions.jts.geom.GeometryFactory; -import com.vividsolutions.jts.geom.LineString; -import com.vividsolutions.jts.geom.Point; -import com.vividsolutions.jts.geom.Polygon; -import fr.ird.observe.client.I18nEnumHelper; -import fr.ird.observe.client.ObserveClientTechnicalException; -import fr.ird.observe.dto.data.TripMapPoint; -import fr.ird.observe.dto.data.TripMapPointType; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.List; -import java.util.Optional; -import java.util.Set; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.time.DateUtils; -import org.geotools.data.FileDataStore; -import org.geotools.data.FileDataStoreFinder; -import org.geotools.data.simple.SimpleFeatureSource; -import org.geotools.factory.CommonFactoryFinder; -import org.geotools.feature.DefaultFeatureCollection; -import org.geotools.feature.simple.SimpleFeatureBuilder; -import org.geotools.feature.simple.SimpleFeatureTypeBuilder; -import org.geotools.geometry.jts.JTSFactoryFinder; -import org.geotools.map.FeatureLayer; -import org.geotools.map.Layer; -import org.geotools.map.MapContent; -import org.geotools.referencing.CRS; -import org.geotools.styling.NamedLayer; -import org.geotools.styling.SLD; -import org.geotools.styling.SLDParser; -import org.geotools.styling.Style; -import org.geotools.styling.StyleFactory; -import org.geotools.styling.StyledLayer; -import org.geotools.styling.StyledLayerDescriptor; -import org.geotools.styling.UserLayer; -import org.opengis.feature.simple.SimpleFeature; -import org.opengis.feature.simple.SimpleFeatureType; -import org.opengis.referencing.FactoryException; - - -import static org.nuiton.i18n.I18n.t; - -/** - * @author Tony Chemit - dev(a)tchemit.fr - */ -public class TripMapContentBuilder { - - public static final String TRIP_LINES_LAYER_NAME = "Trip lines"; - public static final String TRIP_LONGLINE_FISHING_ZONE_LAYER_NAME = "Trip longline zone"; - public static final String TRIP_LONGLINE_LINE_LAYER_NAME = "Trip longline line"; - public static final String TRIP_POINTS_LAYER_NAME = "Trip points"; - - protected static final Set<TripMapPointType> TRIP_MAP_POINT_TYPES_IN_LEGEND = ImmutableSet.of( - TripMapPointType.seineActivityInHarbour, - TripMapPointType.seineActivityWithFreeSchoolType, - TripMapPointType.seineActivityWithObjectSchoolType, - TripMapPointType.longlineActivityInHarbour, - TripMapPointType.longlineActivityWithSettingStart, - TripMapPointType.longlineActivityWithSettingEnd, - TripMapPointType.longlineActivityWithHaulingStart, - TripMapPointType.longlineActivityWithHaulingEnd, - TripMapPointType.longlineActivityWithStation, - TripMapPointType.longlineActivityWithInteraction); - - public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd/MM"); - - protected StyledLayerDescriptor styledLayerDescriptor; - protected final MapContent mapContent; - protected final List<ObserveMapPaneLegendItem> legendItems; - - public TripMapContentBuilder() { - mapContent = new MapContent(); - legendItems = Lists.newArrayList(); - } - - public MapContent getMapContent() { - return mapContent; - } - - public List<ObserveMapPaneLegendItem> getLegendItems() { - return legendItems; - } - - public void setStyledLayerDescriptor(File styleFile) throws FileNotFoundException { - - StyleFactory styleFactory = CommonFactoryFinder.getStyleFactory(null); - - SLDParser stylereader = new SLDParser(styleFactory, styleFile); - - styledLayerDescriptor = stylereader.parseSLD(); - } - - public void addLayer(File layerFile) throws IOException { - FileDataStore store = FileDataStoreFinder.getDataStore(layerFile); - SimpleFeatureSource featureSource = store.getFeatureSource(); - Style style = SLD.createSimpleStyle(featureSource.getSchema()); - style = findStyle(styledLayerDescriptor, store.getNames().get(0).getLocalPart(), null, style); - Layer layer = new FeatureLayer(featureSource, style, layerFile.getName()); - mapContent.addLayer(layer); - } - - public void addTripLine(List<TripMapPoint> tripMapPoints) throws FactoryException { - - GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); - - SimpleFeatureTypeBuilder lineFeatureTypeBuilder = new SimpleFeatureTypeBuilder(); - lineFeatureTypeBuilder.setName("lineBuilder"); - lineFeatureTypeBuilder.setCRS(CRS.decode("EPSG:4326", true)); - lineFeatureTypeBuilder.add("line", LineString.class); - lineFeatureTypeBuilder.add("label", String.class); - lineFeatureTypeBuilder.add("type", String.class); - - SimpleFeatureType lineFeatureType = lineFeatureTypeBuilder.buildFeatureType(); - SimpleFeatureBuilder lineBuilder = new SimpleFeatureBuilder(lineFeatureType); - - DefaultFeatureCollection linesFeatures = new DefaultFeatureCollection(); - - List<Coordinate> coordinatesByDay = null; - - TripMapPoint previousPoint = null; - - for (TripMapPoint point : tripMapPoints) { - if (previousPoint == null) { - coordinatesByDay = Lists.newLinkedList(); - } else if (!DateUtils.isSameDay(previousPoint.getTime(), point.getTime())) { - - if (coordinatesByDay.size() > 1) { - LineString line = geometryFactory.createLineString(coordinatesByDay.toArray(new Coordinate[0])); - lineBuilder.add(line); - lineBuilder.add(DATE_FORMAT.format(previousPoint.getTime())); - lineBuilder.add("tripDay"); - SimpleFeature feature = lineBuilder.buildFeature(null); - - linesFeatures.add(feature); - } - - - Coordinate[] coordinates = { - new Coordinate(previousPoint.getLongitude(), previousPoint.getLatitude()), - new Coordinate(point.getLongitude(), point.getLatitude()), - }; - LineString lineBetweenTwoDays = geometryFactory.createLineString(coordinates); - lineBuilder.add(lineBetweenTwoDays); - lineBuilder.add(DateFormat.getDateInstance().format(previousPoint.getTime())); - lineBuilder.add("tripBetweenTwoDays"); - linesFeatures.add(lineBuilder.buildFeature(null)); - - coordinatesByDay = Lists.newLinkedList(); - } - - Coordinate coordinate = new Coordinate(point.getLongitude(), point.getLatitude()); - coordinatesByDay.add(coordinate); - - previousPoint = point; - } - - if (coordinatesByDay != null && coordinatesByDay.size() > 1) { - LineString line = geometryFactory.createLineString(coordinatesByDay.toArray(new Coordinate[0])); - lineBuilder.add(line); - lineBuilder.add(DATE_FORMAT.format(previousPoint.getTime())); - lineBuilder.add("tripDay"); - linesFeatures.add(lineBuilder.buildFeature(null)); - } - - Style styleLines = findStyle(styledLayerDescriptor, TRIP_LINES_LAYER_NAME, null); - - if (!linesFeatures.isEmpty()) { - Layer layerLines = new FeatureLayer(linesFeatures, styleLines, TRIP_LINES_LAYER_NAME); - mapContent.addLayer(layerLines); - } - - - // add line in legend - LineString line = geometryFactory.createLineString(ObserveMapPaneLegendItem.lineCoordinates()); - lineBuilder.add(line); - lineBuilder.add(""); - lineBuilder.add("tripDay"); - - ObserveMapPaneLegendItem legendTripDay = new ObserveMapPaneLegendItem( - lineBuilder.buildFeature(null), - styleLines, - t("observe.content.map.legend.tripDay")); - legendItems.add(legendTripDay); - - lineBuilder.add(line); - lineBuilder.add(""); - lineBuilder.add("tripBetweenTwoDays"); - ObserveMapPaneLegendItem legendTripBetweenTwoDays = new ObserveMapPaneLegendItem( - lineBuilder.buildFeature(null), - styleLines, - t("observe.content.map.legend.tripBetweenTwoDays")); - legendItems.add(legendTripBetweenTwoDays); - - } - - public void addLonglineFishingZone(List<TripMapPoint> tripMapPoints) throws FactoryException { - GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); - - SimpleFeatureTypeBuilder polygonFeatureTypeBuilder = new SimpleFeatureTypeBuilder(); - polygonFeatureTypeBuilder.setName("longlineFishingZoneBuilder"); - polygonFeatureTypeBuilder.setCRS(CRS.decode("EPSG:4326", true)); - polygonFeatureTypeBuilder.add("zone", Polygon.class); - polygonFeatureTypeBuilder.add("label", String.class); - polygonFeatureTypeBuilder.add("type", String.class); - - SimpleFeatureType polygonFeatureType = polygonFeatureTypeBuilder.buildFeatureType(); - SimpleFeatureBuilder polygonBuilder = new SimpleFeatureBuilder(polygonFeatureType); - - DefaultFeatureCollection polygonsFeatures = new DefaultFeatureCollection(); - - for (int indexPoint = 3; indexPoint < tripMapPoints.size(); indexPoint++) { - if (tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.longlineActivityWithHaulingEnd) - && tripMapPoints.get(indexPoint - 1).getType().equals(TripMapPointType.longlineActivityWithHaulingStart) - && tripMapPoints.get(indexPoint - 2).getType().equals(TripMapPointType.longlineActivityWithSettingEnd) - && tripMapPoints.get(indexPoint - 3).getType().equals(TripMapPointType.longlineActivityWithSettingStart)) { - - Coordinate[] coordinates = { - new Coordinate(tripMapPoints.get(indexPoint - 3).getLongitude(), tripMapPoints.get(indexPoint - 3).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint - 2).getLongitude(), tripMapPoints.get(indexPoint - 2).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint - 1).getLongitude(), tripMapPoints.get(indexPoint - 1).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint).getLongitude(), tripMapPoints.get(indexPoint).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint - 3).getLongitude(), tripMapPoints.get(indexPoint - 3).getLatitude()) - }; - - - Polygon polygon = geometryFactory.createPolygon(coordinates); - //polygon = (Polygon) polygon.convexHull(); // permet de transformer un poliqgone croisé en polygon convex - polygonBuilder.add(polygon); - polygonBuilder.add(DATE_FORMAT.format(tripMapPoints.get(indexPoint - 3).getTime())); - polygonBuilder.add("longlineFishingZone"); - SimpleFeature feature = polygonBuilder.buildFeature(null); - polygonsFeatures.add(feature); - - } - } - - if (!polygonsFeatures.isEmpty()) { - Style styleLines = findStyle(styledLayerDescriptor, TRIP_LONGLINE_FISHING_ZONE_LAYER_NAME, null); - Layer layerLines = new FeatureLayer(polygonsFeatures, styleLines, TRIP_LONGLINE_FISHING_ZONE_LAYER_NAME); - mapContent.addLayer(layerLines); - } - } - - public void addLonglineLine(List<TripMapPoint> tripMapPoints) throws FactoryException { - GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); - - SimpleFeatureTypeBuilder lineFeatureTypeBuilder = new SimpleFeatureTypeBuilder(); - lineFeatureTypeBuilder.setName("longlineSettingBuilder"); - lineFeatureTypeBuilder.setCRS(CRS.decode("EPSG:4326", true)); - lineFeatureTypeBuilder.add("line", LineString.class); - lineFeatureTypeBuilder.add("type", String.class); - - SimpleFeatureType lineFeatureType = lineFeatureTypeBuilder.buildFeatureType(); - SimpleFeatureBuilder lineBuilder = new SimpleFeatureBuilder(lineFeatureType); - - DefaultFeatureCollection linesFeatures = new DefaultFeatureCollection(); - - List<Coordinate> defaultLineCoordinates = Lists.newLinkedList(); - - for (int indexPoint = 0; indexPoint < tripMapPoints.size(); indexPoint++) { - if (indexPoint > 1 && tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.longlineActivityWithSettingEnd) - && tripMapPoints.get(indexPoint - 1).getType().equals(TripMapPointType.longlineActivityWithSettingStart) - || tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.longlineActivityWithHaulingEnd) - && tripMapPoints.get(indexPoint - 1).getType().equals(TripMapPointType.longlineActivityWithHaulingStart)) { - - Coordinate[] coordinates = { - new Coordinate(tripMapPoints.get(indexPoint - 1).getLongitude(), tripMapPoints.get(indexPoint - 1).getLatitude()), - new Coordinate(tripMapPoints.get(indexPoint).getLongitude(), tripMapPoints.get(indexPoint).getLatitude()), - }; - - boolean setting = tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.longlineActivityWithSettingEnd); - LineString lineString = geometryFactory.createLineString(coordinates); - lineBuilder.add(lineString); - lineBuilder.add(setting ? "setting" : "hauling"); - SimpleFeature feature = lineBuilder.buildFeature(null); - linesFeatures.add(feature); - - defaultLineCoordinates.clear(); - } - - if (!(tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.longlineActivityWithSettingEnd) - || tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.longlineActivityWithHaulingStart))) { - - defaultLineCoordinates.add(new Coordinate(tripMapPoints.get(indexPoint).getLongitude(), tripMapPoints.get(indexPoint).getLatitude())); - - } - - if ((tripMapPoints.get(indexPoint).getType().equals(TripMapPointType.longlineActivityWithSettingStart) - || indexPoint == tripMapPoints.size() - 1) && defaultLineCoordinates.size() > 1) { - - LineString lineString = geometryFactory.createLineString(defaultLineCoordinates.toArray(new Coordinate[0])); - lineBuilder.add(lineString); - lineBuilder.add("trip"); - SimpleFeature feature = lineBuilder.buildFeature(null); - linesFeatures.add(feature); - - defaultLineCoordinates.clear(); - - } - - - } - - Style styleLines = findStyle(styledLayerDescriptor, TRIP_LONGLINE_LINE_LAYER_NAME, null); - if (!linesFeatures.isEmpty()) { - Layer layerLines = new FeatureLayer(linesFeatures, styleLines, TRIP_LONGLINE_LINE_LAYER_NAME); - mapContent.addLayer(layerLines); - } - - // add line in legend - LineString line = geometryFactory.createLineString(ObserveMapPaneLegendItem.lineCoordinates()); - lineBuilder.add(line); - lineBuilder.add("setting"); - - ObserveMapPaneLegendItem legendTripDay = new ObserveMapPaneLegendItem( - lineBuilder.buildFeature(null), - styleLines, - t("observe.content.map.legend.setting")); - legendItems.add(legendTripDay); - - line = geometryFactory.createLineString(ObserveMapPaneLegendItem.lineCoordinates()); - lineBuilder.add(line); - lineBuilder.add("hauling"); - - legendTripDay = new ObserveMapPaneLegendItem( - lineBuilder.buildFeature(null), - styleLines, - t("observe.content.map.legend.hauling")); - legendItems.add(legendTripDay); - - - } - - - public void addPoints(List<TripMapPoint> tripMapPoints) throws FactoryException { - - GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); - - SimpleFeatureTypeBuilder pointFeatureTypeBuilder = new SimpleFeatureTypeBuilder(); - pointFeatureTypeBuilder.setName("point Builder"); - pointFeatureTypeBuilder.setCRS(CRS.decode("EPSG:4326", true)); - pointFeatureTypeBuilder.add("point", Point.class); - pointFeatureTypeBuilder.add("label", String.class); - pointFeatureTypeBuilder.add("pointType", String.class); - - SimpleFeatureType pointFeatureType = pointFeatureTypeBuilder.buildFeatureType(); - SimpleFeatureBuilder pointBuilder = new SimpleFeatureBuilder(pointFeatureType); - - DefaultFeatureCollection pointsFeatures = new DefaultFeatureCollection(); - - Style stylePoints = findStyle(styledLayerDescriptor, TRIP_POINTS_LAYER_NAME, null); - - Set<TripMapPointType> pointTypeInLegend = Sets.newHashSet(); - - for (TripMapPoint tripMapPoint : tripMapPoints) { - Coordinate coordinate = new Coordinate(tripMapPoint.getLongitude(), tripMapPoint.getLatitude()); - - TripMapPointType type = tripMapPoint.getType(); - - Point point = geometryFactory.createPoint(coordinate); - pointBuilder.add(point); - pointBuilder.add(DATE_FORMAT.format(tripMapPoint.getTime())); - pointBuilder.add(type.name()); - pointsFeatures.add(pointBuilder.buildFeature(null)); - - // add point in legend - if (TRIP_MAP_POINT_TYPES_IN_LEGEND.contains(type) && !pointTypeInLegend.contains(type)) { - point = geometryFactory.createPoint(ObserveMapPaneLegendItem.pointCoordinates()); - pointBuilder.add(point); - pointBuilder.add(""); - pointBuilder.add(type.name()); - - ObserveMapPaneLegendItem legendPoint = new ObserveMapPaneLegendItem( - pointBuilder.buildFeature(null), - stylePoints, - I18nEnumHelper.getLabel(type)); - legendItems.add(legendPoint); - pointTypeInLegend.add(type); - } - - } - - if (!pointsFeatures.isEmpty()) { - Layer pointsLayer = new FeatureLayer(pointsFeatures, stylePoints, TRIP_POINTS_LAYER_NAME); - mapContent.addLayer(pointsLayer); - } - - } - - - protected Style findStyle(StyledLayerDescriptor styledLayerDescriptor, final String layerName, String styleName, Style defaultStyle) { - - Optional<StyledLayer> styledLayerOptional = styledLayerDescriptor.layers().stream().filter(input -> input.getName().equals(layerName)).findFirst(); - - Style style = defaultStyle; - - if (styledLayerOptional.isPresent()) { - - StyledLayer styledLayer = styledLayerOptional.get(); - - Style[] styles = new Style[0]; - - if (styledLayer instanceof UserLayer) { - - styles = ((UserLayer) styledLayer).getUserStyles(); - - } else if (styledLayer instanceof NamedLayer) { - - styles = ((NamedLayer) styledLayer).getStyles(); - - } - - if (styles.length == 1) { - - style = styles[0]; - - } else { - - for (Style styleTmp : styles) { - - if (StringUtils.isBlank(styleName) && styleTmp.isDefault() - || styleTmp.getName().equals(styleName)) { - - style = styleTmp; - } - } - } - } - - return style; - - } - - protected Style findStyle(StyledLayerDescriptor styledLayerDescriptor, final String layerName, String styleName) { - - Style style = findStyle(styledLayerDescriptor, layerName, styleName, null); - - if (style == null) { - throw new ObserveClientTechnicalException(String.format("No style found for layer name '%s' and style name '%s'", layerName, styleName)); - } - return style; - - } - -} ===================================== client/src/main/java/fr/ird/observe/client/util/tripMap/TripMapUI.jaxx deleted ===================================== --- a/client/src/main/java/fr/ird/observe/client/util/tripMap/TripMapUI.jaxx +++ /dev/null @@ -1,45 +0,0 @@ -<!-- - #%L - ObServe :: Client - %% - Copyright (C) 2008 - 2017 IRD, Code Lutin, Ultreia.io - %% - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as - published by the Free Software Foundation, either version 3 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public - License along with this program. If not, see - <http://www.gnu.org/licenses/gpl-3.0.html>. - #L% - --> -<JPanel id="tripMap" layout="{new BorderLayout()}"> - - <import> - fr.ird.observe.client.action.tripMap.ExportPngUIAction - fr.ird.observe.client.action.tripMap.ZoomItUIAction - fr.ird.observe.client.action.tripMap.ZoomMoinsUIAction - fr.ird.observe.client.action.tripMap.ZoomPlusUIAction - java.awt.CardLayout - </import> - - <CardLayout id="contentLayout"/> - <JToolBar constraints="BorderLayout.NORTH"> - <JButton id='zoomIt'/> - <JButton id='zoomPlus'/> - <JButton id='zoomMoins'/> - <JButton id='exportPng'/> - </JToolBar> - - <JPanel id="content" layout="{contentLayout}" constraints="BorderLayout.CENTER"> - <JLabel id="waitLoadingLabel"/> - <ObserveMapPane id='observeMapPane'/> - </JPanel> - -</JPanel> ===================================== client/src/main/java/fr/ird/observe/client/util/tripMap/TripMapUI.jcss deleted ===================================== --- a/client/src/main/java/fr/ird/observe/client/util/tripMap/TripMapUI.jcss +++ /dev/null @@ -1,44 +0,0 @@ -/* - * #%L - * ObServe :: Client - * %% - * Copyright (C) 2008 - 2017 IRD, Code Lutin, Ultreia.io - * %% - * 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% - */ - -#waitLoadingLabel { - text: "observe.content.map.waitLoading"; - horizontalAlignment : {JLabel.CENTER}; - verticalAlignment : {JLabel.CENTER}; - enabled: false; -} - -#zoomIt { - _observeAction:{ZoomItUIAction.ACTION_NAME}; -} - -#zoomMoins { - _observeAction:{ZoomMoinsUIAction.ACTION_NAME}; -} - -#zoomPlus { - _observeAction:{ZoomPlusUIAction.ACTION_NAME}; -} - -#exportPng { - _observeAction:{ExportPngUIAction.ACTION_NAME}; -} ===================================== client/src/main/java/fr/ird/observe/client/util/tripMap/TripMapUIHandler.java deleted ===================================== --- a/client/src/main/java/fr/ird/observe/client/util/tripMap/TripMapUIHandler.java +++ /dev/null @@ -1,379 +0,0 @@ -package fr.ird.observe.client.util.tripMap; - -/* - * #%L - * ObServe :: Client - * %% - * Copyright (C) 2008 - 2017 IRD, Code Lutin, Ultreia.io - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.google.common.collect.Lists; -import fr.ird.observe.client.ObserveClientApplicationContext; -import fr.ird.observe.client.ObserveClientTechnicalException; -import fr.ird.observe.client.configuration.ClientConfig; -import fr.ird.observe.client.action.ObserveActionMap; -import fr.ird.observe.client.action.tripMap.TripMapActionSupport; -import fr.ird.observe.dto.IdHelper; -import fr.ird.observe.dto.data.TripMapDto; -import fr.ird.observe.dto.data.TripMapPoint; -import java.awt.Point; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; -import java.awt.event.MouseMotionListener; -import java.awt.event.MouseWheelEvent; -import java.awt.event.MouseWheelListener; -import java.awt.geom.AffineTransform; -import java.awt.geom.Point2D; -import java.io.File; -import java.util.List; -import java.util.Objects; -import javax.swing.AbstractButton; -import javax.swing.InputMap; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.geotools.geometry.DirectPosition2D; -import org.geotools.geometry.jts.ReferencedEnvelope; -import org.geotools.swing.JMapPane; -import org.geotools.swing.event.MapPaneEvent; -import org.geotools.swing.event.MapPaneListener; -import org.nuiton.jaxx.runtime.spi.UIHandler; - - -import static fr.ird.observe.client.form.FormUIHandler.OBSERVE_ACTION; - -/** - * @author Tony Chemit - dev(a)tchemit.fr - */ -public class TripMapUIHandler implements UIHandler<TripMapUI> { - - public static final double ZOOM_STEP_RATIO = 0.1; - - private static final Log log = LogFactory.getLog(TripMapUIHandler.class); - - private TripMapUI ui; - private ClientConfig config; - private ReferencedEnvelope tripArea; - private boolean rendererRunning; - private double zoomRatio = 1; - private Point zoomCenter; - - public void setConfig(ClientConfig config) { - this.config = config; - - JMapPane mapPane = getObserveMapPane(); - mapPane.setBackground(config.getMapBackgroundColor()); - } - - private ObserveMapPane getObserveMapPane() { - return ui.getObserveMapPane(); - } - - public void doOpenMap(TripMapDto tripMapDto) { - - try { - flipContent(); - ObserveClientApplicationContext.get().getMainUI().getModel().setBusy(true); - - ObserveMapPane mapPane = getObserveMapPane(); - - if (mapPane.getMapContent() != null) { - // appeler pour libéré les listeners - mapPane.getMapContent().dispose(); - } - - List<TripMapPoint> tripMapPoints = Lists.newArrayList(tripMapDto.getPoints()); - - - TripMapContentBuilder mapContentBuilder = new TripMapContentBuilder(); - mapContentBuilder.setStyledLayerDescriptor(config.getMapStyleFile()); - - for (File layerFile : config.getMapLayerFiles()) { - mapContentBuilder.addLayer(layerFile); - } - - if (IdHelper.isSeineId(tripMapDto.getId())) { - - mapContentBuilder.addTripLine(tripMapPoints); - - } else if (IdHelper.isLonglineId(tripMapDto.getId())) { - - mapContentBuilder.addLonglineFishingZone(tripMapPoints); - mapContentBuilder.addLonglineLine(tripMapPoints); - - } - - mapContentBuilder.addPoints(tripMapPoints); - - // set zoom - tripArea = new ReferencedEnvelope(); - for (TripMapPoint point : tripMapPoints) { - tripArea.expandToInclude(new DirectPosition2D(point.getLongitude(), point.getLatitude())); - } - tripArea.expandBy(1.1); - - mapPane.setMapContent(mapContentBuilder.getMapContent()); - mapPane.setLegendItems(mapContentBuilder.getLegendItems()); - - } catch (Exception e) { - throw new ObserveClientTechnicalException("Unable to load trip map activity points", e); - } finally { - ObserveClientApplicationContext.get().getMainUI().getModel().setBusy(false); - } - - } - - private void flipContent() { - ui.getContentLayout().first(ui.getContent()); - } - - public void doCloseMap() { - flipContent(); - } - - public void zoomApply() { - if (zoomRatio != 1 && !rendererRunning) { - - JMapPane mapPane = getObserveMapPane(); - - ReferencedEnvelope displayArea = mapPane.getDisplayArea(); - - double deltaWidth = displayArea.getWidth() * (zoomRatio - 1); - double deltaHeight = displayArea.getHeight() * (zoomRatio - 1); - - double ratioLeft = zoomCenter.getX() * 1d / mapPane.getWidth(); - - // l'axe de Y est inversé entre le référentiel du composant swing et le référentiel géographique - double ratioTop = 1 - (zoomCenter.getY() * 1d / mapPane.getHeight()); - - double deltaLeft = deltaWidth * ratioLeft; - double deltaRight = deltaLeft - deltaWidth; - - double deltaTop = deltaHeight * ratioTop; - double deltaBottom = deltaTop - deltaHeight; - - if (log.isDebugEnabled()) { - log.debug(String.format("Map mouse zoom (zoom ratio : %s, deltaLeft : %s, deltaRight : %s, deltaTop : %s, deltaBottom : %s)", - zoomRatio, deltaLeft, deltaRight, deltaRight, deltaBottom)); - } - - ReferencedEnvelope newDisplayArea = new ReferencedEnvelope( - displayArea.getMinX() + deltaLeft, - displayArea.getMaxX() + deltaRight, - displayArea.getMinY() + deltaTop, - displayArea.getMaxY() + deltaBottom, - displayArea.getCoordinateReferenceSystem() - ); - // -230 is the good value (don't ask me why ?) - if (newDisplayArea.getLowerCorner().getOrdinate(0) > -230) { - mapPane.setDisplayArea(newDisplayArea); - } - - zoomRatio = 1; - - } - - } - - @Override - public void beforeInit(TripMapUI ui) { - this.ui = ui; - } - - @Override - public void afterInit(TripMapUI ui) { - - ObserveMapPane mapPane = getObserveMapPane(); - - MouseMapListener mouseMapListener = new MouseMapListener(); - mapPane.addMouseWheelListener(mouseMapListener); - mapPane.addMouseMotionListener(mouseMapListener); - mapPane.addMouseListener(mouseMapListener); - mapPane.addMapPaneListener(new TripMapListener()); - - rendererRunning = false; - - } - - public void init(InputMap inputMap) { - ObserveActionMap actionMap = ObserveClientApplicationContext.get().getActionMap(); - - init(actionMap, inputMap, ui.zoomIt); - init(actionMap, inputMap, ui.zoomMoins); - init(actionMap, inputMap, ui.zoomPlus); - init(actionMap, inputMap, ui.exportPng); - - } - - public ReferencedEnvelope getTripArea() { - return tripArea; - } - - public double getZoomRatio() { - return zoomRatio; - } - - public void setZoomRatio(double zoomRatio) { - this.zoomRatio = zoomRatio; - } - - public void setZoomCenter(Point zoomCenter) { - this.zoomCenter = zoomCenter; - } - - private class MouseMapListener implements MouseWheelListener, MouseListener, MouseMotionListener { - - @Override - public void mouseWheelMoved(MouseWheelEvent e) { - int notches = e.getWheelRotation(); - zoomRatio = zoomRatio * (1 + (ZOOM_STEP_RATIO * notches * -1)); - zoomCenter = e.getPoint(); - zoomApply(); - } - - @Override - public void mouseClicked(MouseEvent e) { - - } - - Point2D startPointInWorld; - AffineTransform startScreenToWorldTransform; - ReferencedEnvelope startDisplayArea; - - @Override - public void mousePressed(MouseEvent e) { - if (e.getButton() == MouseEvent.BUTTON1) { - startMove(e.getPoint()); - } - } - - @Override - public void mouseReleased(MouseEvent e) { - if (e.getButton() == MouseEvent.BUTTON1) { - endMove(e.getPoint()); - } - } - - @Override - public void mouseEntered(MouseEvent e) { - - } - - @Override - public void mouseExited(MouseEvent e) { - - } - - @Override - public void mouseDragged(MouseEvent e) { -// endMove(e.getPoint()); - } - - @Override - public void mouseMoved(MouseEvent e) { - - } - - void startMove(Point2D startPointInScreen) { - JMapPane mapPane = getObserveMapPane(); - - startDisplayArea = mapPane.getDisplayArea(); - - startScreenToWorldTransform = mapPane.getScreenToWorldTransform(); - - startPointInWorld = new Point2D.Double(); - - startScreenToWorldTransform.transform(startPointInScreen, startPointInWorld); - - } - - void endMove(Point2D endPointInScreen) { - - Point2D endPointInWorld = new Point2D.Double(); - - startScreenToWorldTransform.transform(endPointInScreen, endPointInWorld); - - double transX = startPointInWorld.getX() - endPointInWorld.getX(); - double transY = startPointInWorld.getY() - endPointInWorld.getY(); - - ReferencedEnvelope endDisplayArea = new ReferencedEnvelope(startDisplayArea); - - endDisplayArea.translate(transX, transY); - - JMapPane mapPane = getObserveMapPane(); - - mapPane.setDisplayArea(endDisplayArea); - - if (log.isDebugEnabled()) { - log.debug(String.format("Translate (x : %s, y : %s)", transX, transY)); - } - } - } - - protected class TripMapListener implements MapPaneListener { - - boolean firstRendering; - - @Override - public void onNewMapContent(MapPaneEvent ev) { - firstRendering = true; - } - - @Override - public void onDisplayAreaChanged(MapPaneEvent ev) { - } - - @Override - public void onRenderingStarted(MapPaneEvent ev) { - rendererRunning = true; - } - - @Override - public void onRenderingStopped(MapPaneEvent ev) { - rendererRunning = false; - if (firstRendering) { - - if (!tripArea.isEmpty()) { - JMapPane mapPane = getObserveMapPane(); - mapPane.setDisplayArea(tripArea); - } - - ui.getContentLayout().last(ui.getContent()); - firstRendering = false; - } else { - zoomApply(); - } - } - } - - protected void init(ObserveActionMap actionMap, InputMap inputMap, AbstractButton editor) { - String actionId = (String) editor.getClientProperty(OBSERVE_ACTION); - - // on a trouve une action commune - TripMapActionSupport action = (TripMapActionSupport) actionMap.get(actionId); - Objects.requireNonNull(action, "action [" + actionId + "] not found for ui " + ui.getClass().getName()); - - if (log.isDebugEnabled()) { - log.debug("init common action " + actionId); - } - - action.setUi(ui); - action.initForMainUi(editor, inputMap, actionMap); - - } - -} ===================================== dto/src/main/java/fr/ird/observe/dto/data/TripMapDto.java deleted ===================================== --- a/dto/src/main/java/fr/ird/observe/dto/data/TripMapDto.java +++ /dev/null @@ -1,97 +0,0 @@ -package fr.ird.observe.dto.data; - -/*- - * #%L - * ObServe :: Dto - * %% - * Copyright (C) 2008 - 2017 IRD, Code Lutin, Ultreia.io - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.dto.IdDto; -import java.util.Collection; -import java.util.LinkedHashSet; - -public class TripMapDto extends IdDto { - - public static final String PROPERTY_POINTS = "points"; - - protected LinkedHashSet<TripMapPoint> points; - - public TripMapPoint getPoints(int index) { - TripMapPoint o = getChild(points, index); - return o; - } - - public boolean isPointsEmpty() { - return points == null || points.isEmpty(); - } - - public int sizePoints() { - return points == null ? 0 : points.size(); - } - - public void addPoints(TripMapPoint points) { - getPoints().add(points); - firePropertyChange(PROPERTY_POINTS, null, points); - } - - public void addAllPoints(Collection<TripMapPoint> points) { - getPoints().addAll(points); - firePropertyChange(PROPERTY_POINTS, null, points); - } - - public boolean removePoints(TripMapPoint points) { - boolean removed = getPoints().remove(points); - if (removed) { - firePropertyChange(PROPERTY_POINTS, points, null); - } - return removed; - } - - public boolean removeAllPoints(Collection<TripMapPoint> points) { - boolean removed = getPoints().removeAll(points); - if (removed) { - firePropertyChange(PROPERTY_POINTS, points, null); - } - return removed; - } - - public boolean containsPoints(TripMapPoint points) { - boolean contains = getPoints().contains(points); - return contains; - } - - public boolean containsAllPoints(Collection<TripMapPoint> points) { - boolean contains = getPoints().containsAll(points); - return contains; - } - - public LinkedHashSet<TripMapPoint> getPoints() { - if (points == null) { - points = new LinkedHashSet<>(); - } - return points; - } - - public void setPoints(LinkedHashSet<TripMapPoint> points) { - LinkedHashSet<TripMapPoint> oldValue = getPoints(); - this.points = points; - firePropertyChange(PROPERTY_POINTS, oldValue, points); - } - -} ===================================== pom.xml ===================================== --- a/pom.xml +++ b/pom.xml @@ -151,7 +151,7 @@ <maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format> <buildDate>${maven.build.timestamp}</buildDate> - <observeToolkitVersion>1.6-SNAPSHOT</observeToolkitVersion> + <observeToolkitVersion>1.6</observeToolkitVersion> <eugenePluginVersion>3.0-alpha-16</eugenePluginVersion> <processorPluginVersion>1.3</processorPluginVersion> View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/617ddef49f75a381f84455ae160… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/617ddef49f75a381f84455ae160… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][feature/refactor_ui] stop before trying to move TripMap to toolkit project
by Tony CHEMIT 12 Oct '17

12 Oct '17
Tony CHEMIT pushed to branch feature/refactor_ui at ultreiaio / ird-observe Commits: 458a9a10 by Tony CHEMIT at 2017-10-12T18:35:47+02:00 stop before trying to move TripMap to toolkit project - - - - - 13 changed files: - client/src/main/java/fr/ird/observe/client/form/ObserveFormUIHandler.java - client/src/main/java/fr/ird/observe/client/form/open/ObserveOpenDataFormUIHandler.java - client/src/main/java/fr/ird/observe/client/form/open/ObserveOpenDataFormUIModel.java - client/src/main/java/fr/ird/observe/client/form/open/seine/ActivitySeineUIHandler.java - client/src/main/java/fr/ird/observe/client/form/openlist/ObserveOpenDataListFormUIHandler.java - client/src/main/java/fr/ird/observe/client/form/openlist/longline/TripLonglineListUIHandler.java - client/src/main/java/fr/ird/observe/client/form/openlist/seine/TripSeineListUIHandler.java - client/src/main/java/fr/ird/observe/client/form/referential/ObserveReferentialFormUIHandler.java - client/src/main/java/fr/ird/observe/client/form/referential/ObserveReferentialFormUIModel.java - client/src/main/java/fr/ird/observe/client/form/simple/ObserveMainDataFormUIHandler.java - client/src/main/java/fr/ird/observe/client/form/simple/ObserveSimpleDataFormUIHandler.java - client/src/main/java/fr/ird/observe/client/form/simplelist/ObserveSimpleDataListFormUIHandler.java - client/src/main/java/fr/ird/observe/client/form/table/ObserveDataTableFormUIHandler.java Changes: ===================================== client/src/main/java/fr/ird/observe/client/form/ObserveFormUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/ObserveFormUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/form/ObserveFormUIHandler.java @@ -26,14 +26,14 @@ import com.google.common.collect.ImmutableMap; import fr.ird.observe.client.ObserveClientApplicationContext; import fr.ird.observe.client.ObserveMainUI; import fr.ird.observe.client.db.ObserveSwingDataSource; -import fr.ird.observe.client.form.referential.ReferentialFormUIHandler; +import fr.ird.observe.client.form.action.FormUIAction; +import fr.ird.observe.client.form.action.FormUIActionHandler; import fr.ird.observe.client.form.spi.FormUIToModelClassMapping; import fr.ird.observe.client.form.spi.FormUIValidationMessageManager; import fr.ird.observe.client.form.spi.ReferentialReferencesFilter; import fr.ird.observe.client.spi.ClientDataContext; import fr.ird.observe.client.tools.ObserveOpenDataManager; import fr.ird.observe.client.tree.navigation.NavigationTree; -import fr.ird.observe.client.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.client.util.UIHelper; import fr.ird.observe.dto.IdDto; import fr.ird.observe.dto.decoration.DecoratorService; @@ -85,7 +85,7 @@ public abstract class ObserveFormUIHandler<M extends FormUIModel, U extends Form protected final ObserveSwingDataSource dataSource; protected final ObserveOpenDataManager openDataManager; protected final DecoratorService decoratorService; - + private final FormUIAction formUIAction; protected U ui; protected String prefix; private boolean init; @@ -100,6 +100,11 @@ public abstract class ObserveFormUIHandler<M extends FormUIModel, U extends Form openDataManager = applicationContext.getOpenDataManager(); decoratorService = applicationContext.getDecoratorService(); dataContext = applicationContext.getDataContext(); + formUIAction = new FormUIAction(); + } + + protected final void run(FormUIActionHandler handler) { + formUIAction.run(handler); } protected static DecoratorTableCellRenderer newDecorateTableCellRenderer(TableCellRenderer renderer, Class<?> type) { @@ -259,6 +264,10 @@ public abstract class ObserveFormUIHandler<M extends FormUIModel, U extends Form ui.setContextValue(model = FormUIToModelClassMapping.newModel(ui)); ui.setContextValue(ObserveClientApplicationContext.get().getDataContext()); ui.setContextValue(ObserveClientApplicationContext.get().getConfig()); + if (model instanceof WithBeanTypeFormModel) { + validationManager = new FormUIValidationMessageManager(((WithBeanTypeFormModel) model).getBeanType(), ui); + } + prefix = model.getPrefix(); } @SuppressWarnings("unchecked") @@ -270,7 +279,6 @@ public abstract class ObserveFormUIHandler<M extends FormUIModel, U extends Form init = true; mainUI = (ObserveMainUI) ui.getMainUI(); navigation = mainUI.getNavigation(); - prefix = model.getPrefix(); initialize(ui); installFocusTraversalPolicy(); @@ -288,9 +296,7 @@ public abstract class ObserveFormUIHandler<M extends FormUIModel, U extends Form } protected final void initialize(U ui) { - ImmutableMap<String, ReferentialReferencesFilter> filters = createFilters(); - ObserveFormUIInitializerContext<U> initializerContext = createInitializerContext(ui, filters); - initialize(initializerContext); + initialize(createInitializerContext(ui, createFilters())); } protected void initialize(ObserveFormUIInitializerContext<U> initializerContext) { @@ -302,8 +308,11 @@ public abstract class ObserveFormUIHandler<M extends FormUIModel, U extends Form // ObserveClientApplicationContext.get().getFocusManager().installFocusTraversalPolicy(ui); } + protected void updateExtra() { + } + @Override - public U getUi() { + public final U getUi() { return ui; } @@ -326,49 +335,6 @@ public abstract class ObserveFormUIHandler<M extends FormUIModel, U extends Form } } - // protected void setContentMode() { -// FormUIMode contentMode = model.isCanWrite() ? computeContentMode(dataContext, openDataManager) : FormUIMode.READ; -// log.info(String.format("%s content mode %s", prefix, contentMode)); -// model.setMode(contentMode); -// } -// -// protected void setCanWrite() { -// boolean canWrite = model.isReferential() ? dataSource.canWriteReferential() : dataSource.canWriteData(); -// log.info(String.format("%s can write %s", prefix, canWrite)); -// model.setCanWrite(canWrite); -// } -// - protected void computeContentIcon() { - NavigationTreeNodeSupport node = navigation.getSelectedNode(); - if (ReferentialFormUIHandler.class.isAssignableFrom(getClass())) { - node = node.getParent(); - } - model.setContentIcon(node.getIcon("")); - } -// -// protected void computeValidationMessages() { -// validationManager.clear(); -// if (model.isCanWrite()) { -// switch (model.getMode()) { -// case CREATE: -// computeCreateMessages(dataContext, validationManager); -// break; -// case UPDATE: -// computeUpdateMessages(dataContext, validationManager); -// break; -// case READ: -// computeReadMessages(dataContext, validationManager); -// break; -// } -// } else { -// if (model.isReferential()) { -// validationManager.addInfoMessage(t("observe.common.ReferentialDto.message.noEditable")); -// } else { -// validationManager.addInfoMessage(t("observe.common.Dto.message.cantWriteData")); -// } -// } -// } - protected void grabFocusOnForm() { boolean focusOnNavigation = mainUI.getModel().isFocusOnNavigation(); if (focusOnNavigation) { ===================================== client/src/main/java/fr/ird/observe/client/form/open/ObserveOpenDataFormUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/open/ObserveOpenDataFormUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/form/open/ObserveOpenDataFormUIHandler.java @@ -23,23 +23,20 @@ package fr.ird.observe.client.form.open; */ import com.google.common.collect.ImmutableMap; +import fr.ird.observe.client.form.FormUI; import fr.ird.observe.client.form.FormUIMode; import fr.ird.observe.client.form.ObserveFormUIHandler; import fr.ird.observe.client.form.ObserveFormUIInitializerContext; -import fr.ird.observe.client.form.action.DeleteFormUIAction; -import fr.ird.observe.client.form.action.EditFormUIAction; -import fr.ird.observe.client.form.action.OpenCloseDataFormUIAction; -import fr.ird.observe.client.form.spi.FormUIValidationMessageManager; +import fr.ird.observe.client.form.action.FormUIActionHandler; import fr.ird.observe.client.form.spi.ReferentialReferencesFilter; -import fr.ird.observe.client.tree.navigation.NavigationTree; import fr.ird.observe.client.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.client.tree.navigation.nodes.longline.TripLonglineListNavigationTreeNode; import fr.ird.observe.client.tree.navigation.nodes.seine.TripSeineListNavigationTreeNode; -import fr.ird.observe.client.util.UIHelper; import fr.ird.observe.dto.data.OpenableDto; import fr.ird.observe.dto.reference.DataDtoReference; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.runtime.swing.SwingUtil; import org.nuiton.jaxx.validator.swing.SwingValidatorUtil; /** @@ -52,67 +49,117 @@ public abstract class ObserveOpenDataFormUIHandler<D extends OpenableDto, R exte /** Logger. */ private static final Log log = LogFactory.getLog(ObserveOpenDataFormUIHandler.class); - private final DeleteFormUIAction<D, U> deleteAction; - private final EditFormUIAction<D, U> editAction; - private final OpenCloseDataFormUIAction<U> openCloseDataAction; + private final FormUIActionHandler editActionHandler = new FormUIActionHandler() { - public ObserveOpenDataFormUIHandler() { - deleteAction = new DeleteFormUIAction<D, U>() { + private D dto; + boolean created; - @Override - protected boolean askToDelete(D dto) { - return askToDelete0(dto); - } + @Override + public boolean before() { + dto = model.getBean(); + created = dto.isNotPersisted(); + return checkEdit(); + } - @Override - protected void afterDelete(D dto) { - afterDelete0(dto); - } + @Override + public void run() { + model.save(); + } - @Override - protected void doDelete(D dto) { - model.delete(); - } - }; - editAction = new EditFormUIAction<D, U>() { + @Override + public void after() { + afterSave0(dto, created); + } - @Override - protected boolean askToSave(D dto) { - return askToSave0(dto); - } + @Override + public FormUI getUI() { + return ui; + } + }; - @Override - protected void doSave(D dto) { - model.save(); - } + private final FormUIActionHandler deleteActionHandler = new FormUIActionHandler() { - @Override - protected void afterSave(D dto, boolean created) { - afterSave0(dto, created); - } - }; - openCloseDataAction = new OpenCloseDataFormUIAction<U>() { - @Override - protected boolean doOpenData(String parentId, String id) { - return false; - } + @Override + public boolean before() { + return confirmForEntityDelete(model.getBeanType(), model.getBean()); + } + + @Override + public void run() { + model.delete(); + } - @Override - protected void afterOpenData(String parentId, String id) { + @Override + public void after() { - } + doCloseData(); - @Override - protected boolean doCloseData(String parentId, String id) { - return false; - } + model.loadFormDependencies(dataSource, true); + model.updateUi(); - @Override - protected void afterCloseData(String parentId, String id) { + stopEdit(); + validationManager.removeAllMessages(); - } - }; + NavigationTreeNodeSupport node = navigation.getSelectedNode(); + NavigationTreeNodeSupport parentNode = node.getParent(); + navigation.removeNode(node); + navigation.selectNode(parentNode); + + } + + @Override + public FormUI getUI() { + return ui; + } + }; + + private final FormUIActionHandler openDataActionHandler = new FormUIActionHandler() { + + @Override + public boolean before() { + return true; + } + + @Override + public void run() { + doOpenData(); + } + + @Override + public void after() { + + } + + @Override + public FormUI getUI() { + return ui; + } + }; + private final FormUIActionHandler closeDataActionHandler = new FormUIActionHandler() { + + @Override + public boolean before() { + return true; + } + + @Override + public void run() { + doCloseData(); + } + + @Override + public void after() { + + } + + @Override + public FormUI getUI() { + return ui; + } + }; + + protected ObserveOpenDataFormUIHandler() { } @Override @@ -125,66 +172,64 @@ public abstract class ObserveOpenDataFormUIHandler<D extends OpenableDto, R exte log.info(String.format("%s init ui", prefix)); - computeContentIcon(); - ui.getOpenActions().setVisible(model.isCanWrite()); updateToolbarActions(); updateExtra(); - setTitle(mainUI.getNavigation()); + if (!model.isReadingMode()) { + startEdit(); + model.setModified(model.isCreatingMode()); + } grabFocusOnForm(); } - protected void updateExtra() { - } - @Override - public final void openData() { - openCloseDataAction.openData(ui, model.getSelectedParentId(), model.getBean().getId()); + public boolean closeUI() { + //FIXME!!! + return false; } @Override - public final void closeData() { - openCloseDataAction.closeData(ui, model.getSelectedParentId(), model.getBean().getId()); + public void destroyUI() { + //FIXME!!! } @Override - public final void saveEdit() { - editAction.save(ui, model.getBean()); + public final void openData() { + run(openDataActionHandler); } @Override - public void destroyUI() { -//FIXME!!! + public final void closeData() { + run(closeDataActionHandler); } @Override - public boolean closeUI() { + public void startEdit() { //FIXME!!! - return false; } @Override - public void startEdit() { + public void stopEdit() { //FIXME!!! } @Override - public void stopEdit() { + public void resetEdit() { //FIXME!!! } @Override - public void resetEdit() { -//FIXME!!! + public final void saveEdit() { + run(editActionHandler); } @Override public void createData() { - + //FIXME!!! } @Override public final void deleteData() { - deleteAction.delete(ui, model.getBean()); + run(deleteActionHandler); } @Override @@ -192,12 +237,6 @@ public abstract class ObserveOpenDataFormUIHandler<D extends OpenableDto, R exte return new OpenDataFormUIInitializerContext<>(ui, filters); } - @Override - protected void initialize(ObserveFormUIInitializerContext<U> initializerContext) { - validationManager = new FormUIValidationMessageManager(model.getDataType(), ui); - super.initialize(initializerContext); - } - public boolean doCloseData() { return false; } @@ -206,16 +245,6 @@ public abstract class ObserveOpenDataFormUIHandler<D extends OpenableDto, R exte return false; } - protected void setTitle(NavigationTree treeHelper) { - //FIXME!!! - } - - @Override - protected void updateToolbarActions() { - super.updateToolbarActions(); - ui.getOpenActions().setVisible(dataSource.canWriteData()); - } - // @Override // public final FormUIMode computeContentMode(ClientDataContext dataContext, OpenDtoManager openDataManager) { // String id = getModel().getSelectedId(); @@ -262,9 +291,9 @@ public abstract class ObserveOpenDataFormUIHandler<D extends OpenableDto, R exte try { - UIHelper.openLink(url); + SwingUtil.openLink(url); } catch (Exception e) { - UIHelper.handlingError(e); + ui.getMainUI().handlingError(e); } } @@ -283,11 +312,7 @@ public abstract class ObserveOpenDataFormUIHandler<D extends OpenableDto, R exte } - private boolean askToSave0(D dto) { - return checkEdit(); - } - - public void afterSave0(D bean, boolean create) { + protected void afterSave0(D bean, boolean create) { if (create) { doOpenData(); @@ -343,28 +368,61 @@ public abstract class ObserveOpenDataFormUIHandler<D extends OpenableDto, R exte } } - private boolean askToDelete0(D dto) { - if (!ObserveFormUIHandler.confirmForEntityDelete(model.getDataType(), dto)) { - return false; - } - return true; - } - - private void afterDelete0(D dto) { - - doCloseData(); - - model.loadFormDependencies(dataSource, true); - model.updateUi(); - stopEdit(); - validationManager.removeAllMessages(); - - NavigationTreeNodeSupport node = navigation.getSelectedNode(); - NavigationTreeNodeSupport parentNode = node.getParent(); - navigation.removeNode(node); - navigation.selectNode(parentNode); +// protected abstract boolean doCloseData(String parentId, String id); +// { +// OpenableDtoUIContext<E> type = getModel().getType(); +// ClientDataContext dataContext = openAction.getDataContext(); +// boolean result = type.isOpen(); +// if (result) { +// type.close(getModel().getSelectedId()); +// } +// return result; +// } +// +// protected abstract boolean doOpenData(String parentId, String id); +// { +// OpenableDtoUIContext<E> type = getModel().getType(); +// String id = getModel().getSelectedId(); +// boolean result = type.canOpen(id); +// if (result) { +// type.open(getModel().getSelectedParentId(), id); +// } +// return result; +// } - } +// protected abstract void afterOpenData(String parentId, String id); +// { +// U ui = getUi(); +// // On charge les ensembles de références utilisées dans les combobox +// getOpenAction().loadFormDependencies(); +// getOpenAction().updateUi(); +// +// // on repaint le parent (le program devient alors ouvert) +// NavigationTree treeHelper = openAction.getNavigationTree(); +// treeHelper.reloadSelectedNode(true, true); +// +// // on chage l'état 'canReopen' du model +// ui.getModel().setCanReopen(false); +// +// // on lance l'édition +// ui.restartEdit(); +// } +// protected abstract void afterCloseData(String parentId, String id); +// { +// ContentOpenableUIModel<E> model = getModel(); +// model.setCanReopen(true); +// E bean = getModel().getBean(); +// getUi().stopEdit(); +// model.setMode(FormUIMode.READ); +// +// getOpenAction().computeMessages(); +// +// NavigationTree treeHelper = openAction.getNavigationTree(); +// treeHelper.reloadSelectedNode(IdHelper.isTrip(bean), true); +// getOpenAction().updateActions(); +// +// getOpenAction().grabFocusOnForm(); +// } } ===================================== client/src/main/java/fr/ird/observe/client/form/open/ObserveOpenDataFormUIModel.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/open/ObserveOpenDataFormUIModel.java +++ b/client/src/main/java/fr/ird/observe/client/form/open/ObserveOpenDataFormUIModel.java @@ -30,6 +30,7 @@ import fr.ird.observe.client.spi.ClientDataContext; import fr.ird.observe.client.spi.context.DtoUIContext; import fr.ird.observe.client.spi.context.OpenableDtoUIContext; import fr.ird.observe.client.tools.ObserveOpenDataManager; +import fr.ird.observe.client.tree.navigation.NavigationTree; import fr.ird.observe.client.validation.ClientValidationContext; import fr.ird.observe.dto.data.OpenableDto; import fr.ird.observe.dto.data.seine.TripSeineDto; @@ -63,6 +64,7 @@ public abstract class ObserveOpenDataFormUIModel<D extends OpenableDto, R extend private final SingletonSupplier<ObserveSwingDataSource> dataSource; private final SingletonSupplier<ObserveOpenDataManager> openDataManager; private final SingletonSupplier<DecoratorService> decoratorService; + private final SingletonSupplier<NavigationTree> navigation; public abstract void computeReadMessages(ClientDataContext dataContext, FormUIValidationMessageManager validationManager); @@ -73,10 +75,11 @@ public abstract class ObserveOpenDataFormUIModel<D extends OpenableDto, R extend public ObserveOpenDataFormUIModel(OpenableDtoUIContext<D, R> dtoContext, Supplier<S> service) { super(dtoContext); this.service = SingletonSupplier.of(service); - dataSource = SingletonSupplier.of(ObserveClientApplicationContext.get().getDataSourcesManager()::getMainDataSource); - openDataManager = SingletonSupplier.of(ObserveClientApplicationContext.get()::getOpenDataManager); - decoratorService = SingletonSupplier.of(ObserveClientApplicationContext.get()::getDecoratorService); - dataContext = SingletonSupplier.of(ObserveClientApplicationContext.get()::getDataContext); + dataSource = SingletonSupplier.of(() -> ObserveClientApplicationContext.get().getDataSourcesManager().getMainDataSource()); + openDataManager = SingletonSupplier.of(() -> ObserveClientApplicationContext.get().getOpenDataManager()); + decoratorService = SingletonSupplier.of(() -> ObserveClientApplicationContext.get().getDecoratorService()); + dataContext = SingletonSupplier.of(() -> ObserveClientApplicationContext.get().getDataContext()); + navigation = SingletonSupplier.of(() -> ObserveClientApplicationContext.get().getMainUI().getNavigation()); } public final S getService() { @@ -99,6 +102,10 @@ public abstract class ObserveOpenDataFormUIModel<D extends OpenableDto, R extend return decoratorService.get(); } + public NavigationTree getNavigation() { + return navigation.get(); + } + public void loadOrPreCreateForm() { } @@ -122,6 +129,7 @@ public abstract class ObserveOpenDataFormUIModel<D extends OpenableDto, R extend setCanWrite(); setContentMode(); setForm(); + setSelectedNode(getNavigation().getSelectedNode()); computeValidationMessages(validationManager); } @@ -268,6 +276,4 @@ public abstract class ObserveOpenDataFormUIModel<D extends OpenableDto, R extend // public void obtainChildPosition() { // position = getOpenCloseServiceAction().getDataPosition(getSelectedParentId(), getSelectedId()); // } - - } ===================================== client/src/main/java/fr/ird/observe/client/form/open/seine/ActivitySeineUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/open/seine/ActivitySeineUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/form/open/seine/ActivitySeineUIHandler.java @@ -31,7 +31,6 @@ import fr.ird.observe.dto.referential.seine.VesselActivitySeineReference; import java.util.List; import java.util.Optional; import javax.swing.SwingUtilities; -import org.nuiton.jaxx.runtime.spi.UIHandler; import static org.nuiton.i18n.I18n.t; @@ -40,7 +39,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - dev(a)tchemit.fr * @since 1.0 */ -class ActivitySeineUIHandler extends ObserveOpenDataFormUIHandler<ActivitySeineDto, ActivitySeineReference, ActivitySeineUIModel, ActivitySeineUI> implements UIHandler<ActivitySeineUI> { +class ActivitySeineUIHandler extends ObserveOpenDataFormUIHandler<ActivitySeineDto, ActivitySeineReference, ActivitySeineUIModel, ActivitySeineUI> { ActivitySeineUIHandler() { super(); @@ -49,7 +48,6 @@ class ActivitySeineUIHandler extends ObserveOpenDataFormUIHandler<ActivitySeineD @Override protected void initialize(ObserveFormUIInitializerContext<ActivitySeineUI> initializerContext) { super.initialize(initializerContext); - ActivitySeineUI ui = initializerContext.getUi(); String label = getActivity6Label(); String text = t("observe.common.ActivitySeineDto.vesselActivitySeine.comment", label); ui.vesselActivityInformation.setText(text); ===================================== client/src/main/java/fr/ird/observe/client/form/openlist/ObserveOpenDataListFormUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/openlist/ObserveOpenDataListFormUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/form/openlist/ObserveOpenDataListFormUIHandler.java @@ -23,9 +23,10 @@ package fr.ird.observe.client.form.openlist; */ import com.google.common.collect.ImmutableMap; +import fr.ird.observe.client.form.FormUI; import fr.ird.observe.client.form.ObserveFormUIHandler; import fr.ird.observe.client.form.ObserveFormUIInitializerContext; -import fr.ird.observe.client.form.action.OpenCloseDataFormUIAction; +import fr.ird.observe.client.form.action.FormUIActionHandler; import fr.ird.observe.client.form.spi.FormUIValidationMessageManager; import fr.ird.observe.client.form.spi.ReferentialReferencesFilter; import fr.ird.observe.client.tree.navigation.nodes.NavigationTreeNodeSupport; @@ -54,31 +55,57 @@ public abstract class ObserveOpenDataListFormUIHandler<D extends OpenableDto, R /** Logger. */ private static final Log log = LogFactory.getLog(ObserveOpenDataListFormUIHandler.class); - private final OpenCloseDataFormUIAction<U> openCloseDataAction; + private final FormUIActionHandler openDataActionHandler = new FormUIActionHandler() { - protected ObserveOpenDataListFormUIHandler() { - this.openCloseDataAction = new OpenCloseDataFormUIAction<U>() { + @Override + public boolean before() { + return true; + } - @Override - protected boolean doOpenData(String parentId, String id) { - return false; - } + @Override + public void run() { + List<R> selectedData = model.getSelectedData(); + String parentId = model.getSelectedParentId(); + String id = selectedData.get(0).getId(); + //FIXME!!! + } - @Override - protected void afterOpenData(String parentId, String id) { + @Override + public void after() { - } + } - @Override - protected boolean doCloseData(String parentId, String id) { - return false; - } + @Override + public FormUI getUI() { + return ui; + } + }; + private final FormUIActionHandler closeDataActionHandler = new FormUIActionHandler() { + + @Override + public boolean before() { + return true; + } - @Override - protected void afterCloseData(String parentId, String id) { + @Override + public void run() { + String parentId = model.getSelectedParentId(); + String id = model.getType().getOpenId(); + //FIXME!!! + } - } - }; + @Override + public void after() { + + } + + @Override + public FormUI getUI() { + return ui; + } + }; + + protected ObserveOpenDataListFormUIHandler() { } @Override @@ -88,7 +115,7 @@ public abstract class ObserveOpenDataListFormUIHandler<D extends OpenableDto, R @Override protected void initialize(ObserveFormUIInitializerContext<U> initializerContext) { - validationManager = new FormUIValidationMessageManager(model.getChildType(), ui); + validationManager = new FormUIValidationMessageManager(model.getBeanType(), ui); super.initialize(initializerContext); OpenableDataDtoListCellRenderer<D, R> cellRenderer = new OpenableDataDtoListCellRenderer<>(ui.getList().getCellRenderer(), navigation); @@ -121,15 +148,14 @@ public abstract class ObserveOpenDataListFormUIHandler<D extends OpenableDto, R model.openUI(validationManager, navigation); log.info(String.format("%s init ui", prefix)); - computeContentIcon(); updateToolbarActions(); - setTitle(); + updateExtra(); grabFocusOnForm(); } @Override public void destroyUI() { - + //FIXME!!! } @Override @@ -139,14 +165,12 @@ public abstract class ObserveOpenDataListFormUIHandler<D extends OpenableDto, R @Override public final void openData() { - List<R> selectedData = model.getSelectedData(); - openCloseDataAction.openData(ui, model.getSelectedParentId(), selectedData.get(0).getId()); + run(openDataActionHandler); } @Override public final void closeData() { - String selectedData = model.getType().getOpenId(); - openCloseDataAction.closeData(ui, model.getSelectedParentId(), selectedData); + run(closeDataActionHandler); } @Override @@ -163,11 +187,6 @@ public abstract class ObserveOpenDataListFormUIHandler<D extends OpenableDto, R //FIXME!!! } - protected void setTitle() { - //FIXME!!! - } - - private void updateList(List<R> data) { BeanListHeader<R> list = ui.getListHeader(); if (CollectionUtils.isNotEmpty(data)) { ===================================== client/src/main/java/fr/ird/observe/client/form/openlist/longline/TripLonglineListUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/openlist/longline/TripLonglineListUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/form/openlist/longline/TripLonglineListUIHandler.java @@ -41,7 +41,7 @@ class TripLonglineListUIHandler extends ObserveOpenDataListFormUIHandler<TripLon } @Override - protected void setTitle() { + protected void updateExtra() { TripLonglineListNavigationTreeNode selectedNode = (TripLonglineListNavigationTreeNode) navigation.getSelectedNode(); ProgramReference data = selectedNode.getData(); //FIXME!!! ===================================== client/src/main/java/fr/ird/observe/client/form/openlist/seine/TripSeineListUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/openlist/seine/TripSeineListUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/form/openlist/seine/TripSeineListUIHandler.java @@ -38,7 +38,7 @@ class TripSeineListUIHandler extends ObserveOpenDataListFormUIHandler<TripSeineD } @Override - protected void setTitle() { + protected void updateExtra() { TripSeineListNavigationTreeNode selectedNode = (TripSeineListNavigationTreeNode) navigation.getSelectedNode(); ProgramReference data = selectedNode.getData(); String title = decoratorService.getReferentialReferenceDecorator(ProgramReference.class).toString(data); ===================================== client/src/main/java/fr/ird/observe/client/form/referential/ObserveReferentialFormUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/referential/ObserveReferentialFormUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/form/referential/ObserveReferentialFormUIHandler.java @@ -24,19 +24,19 @@ package fr.ird.observe.client.form.referential; import com.google.common.collect.ImmutableMap; import fr.ird.observe.client.ObserveClientApplicationContext; +import fr.ird.observe.client.form.FormUI; import fr.ird.observe.client.form.FormUIMode; import fr.ird.observe.client.form.ObserveFormUIHandler; import fr.ird.observe.client.form.ObserveFormUIInitializerContext; -import fr.ird.observe.client.form.action.DeleteFormUIAction; -import fr.ird.observe.client.form.action.EditFormUIAction; +import fr.ird.observe.client.form.action.FormUIActionHandler; import fr.ird.observe.client.form.referential.usage.UsageForDeleteUI; import fr.ird.observe.client.form.referential.usage.UsageForDesactivateUI; import fr.ird.observe.client.form.referential.usage.UsageForDisplayUI; import fr.ird.observe.client.form.spi.FormUIValidationMessageManager; import fr.ird.observe.client.form.spi.ReferentialReferencesFilter; -import fr.ird.observe.client.tree.navigation.NavigationTree; import fr.ird.observe.client.util.UIHelper; import fr.ird.observe.client.validation.ClientValidationContext; +import fr.ird.observe.dto.IdHelper; import fr.ird.observe.dto.decoration.DecoratorService; import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.dto.decoration.decorators.ReferentialReferenceDecorator; @@ -46,7 +46,6 @@ import fr.ird.observe.dto.referential.I18nReferentialDto; import fr.ird.observe.dto.referential.ProgramDto; import fr.ird.observe.dto.referential.ProgramHelper; import fr.ird.observe.dto.referential.ProgramReference; -import fr.ird.observe.dto.referential.ReferenceStatus; import fr.ird.observe.dto.referential.ReferentialDto; import fr.ird.observe.dto.referential.ReferentialLocale; import fr.ird.observe.services.service.referential.ReferentialService; @@ -99,10 +98,109 @@ public abstract class ObserveReferentialFormUIHandler<D extends ReferentialDto, private final Runnable revalidate; private final ReferentialLocale referentialLocale; private final ReferentialService referentialService; - private final DeleteFormUIAction<D, U> deleteAction; - private final EditFormUIAction<D, U> editAction; private R replaceReference; + private final FormUIActionHandler editActionHandler = new FormUIActionHandler() { + + private D dto; + private boolean created; + + @Override + public boolean before() { + dto = model.getBean(); + created = dto.isNotPersisted(); + return askToSave0(dto); + } + + @Override + public void run() { + if (created) { + + log.info(String.format("%s Create referential %s", prefix, dto)); + + model.save(); + + model.loadFormDependencies(dataSource, true); + + return; + } + + log.info(String.format("%s Update existing referential : %s", prefix, dto.getId())); + + if (replaceReference != null) { + + referentialService.replaceReference(model.getBeanType(), dto.getId(), replaceReference.getId()); + } + + model.save(); + + model.loadFormDependencies(dataSource, true); + } + + @Override + public void after() { + model.updateUi(); + + if (dto instanceof ProgramDto) { + + if (created) { + + // add the program in tree + ProgramReference reference = ProgramDto.dtoContext().toReference(referentialLocale, (ProgramDto) dto); + navigation.addProgram(reference); + } else { + + // update the program in tree + navigation.updateProgram((ProgramDto) dto); + } + } + } + + @Override + public FormUI getUI() { + return ui; + } + }; + + private final FormUIActionHandler deleteActionHandler = new FormUIActionHandler() { + + private String id; + + @Override + public boolean before() { + id = model.getBean().getId(); + return askToDelete0(model.getBean()); + } + + @Override + public void run() { + if (replaceReference != null) { + referentialService.replaceReference(model.getBeanType(), id, replaceReference.getId()); + } + model.delete(); + } + + @Override + public void after() { + if (IdHelper.isProgramId(id)) { + + // remove the program in tree + navigation.removeProgram(id); + } + + model.loadFormDependencies(dataSource, true); + model.updateUi(); + + stopEdit(); + validationManager.removeAllMessages(); + } + + @Override + public FormUI getUI() { + return ui; + } + }; + protected ObserveReferentialFormUIHandler() { revalidate = () -> { @@ -120,40 +218,6 @@ public abstract class ObserveReferentialFormUIHandler<D extends ReferentialDto, }; referentialService = MAIN.getReferentialService(); referentialLocale = decoratorService.getReferentialLocale(); - deleteAction = new DeleteFormUIAction<D, U>() { - - @Override - protected boolean askToDelete(D dto) { - return askToDelete0(dto); - } - - @Override - protected void afterDelete(D dto) { - afterDelete0(dto); - } - - @Override - protected void doDelete(D dto) { - doDelete0(dto); - } - }; - editAction = new EditFormUIAction<D, U>() { - - @Override - protected boolean askToSave(D dto) { - return askToSave0(dto); - } - - @Override - protected void afterSave(D dto, boolean created) { - afterSave0(dto, created); - } - - @Override - protected void doSave(D dto) { - doSave0(dto); - } - }; } @@ -164,7 +228,7 @@ public abstract class ObserveReferentialFormUIHandler<D extends ReferentialDto, @Override protected void initialize(ObserveFormUIInitializerContext<U> initializerContext) { - validationManager = new FormUIValidationMessageManager(model.getDataType(), ui); + validationManager = new FormUIValidationMessageManager(model.getBeanType(), ui); super.initialize(initializerContext); ui.getViewLayout().addPropertyChangeListener(CardLayout2Ext.SELECTED_PROPERTY_NAME, evt -> SwingUtilities.invokeLater(revalidate)); @@ -180,17 +244,15 @@ public abstract class ObserveReferentialFormUIHandler<D extends ReferentialDto, model.openUI(validationManager); log.info(String.format("%s init ui", prefix)); - computeContentIcon(); updateToolbarActions(); - setTitle(navigation); updateExtra(); grabFocusOnForm(); } + @Override + protected void updateExtra() { - private void updateExtra() { - - if (I18nReferentialDto.class.isAssignableFrom(model.getDataType())) { + if (I18nReferentialDto.class.isAssignableFrom(model.getBeanType())) { // on met en gras le libelle selectionne en base ReferentialLocale localeEnum; @@ -227,15 +289,6 @@ public abstract class ObserveReferentialFormUIHandler<D extends ReferentialDto, } } - protected void setTitle(NavigationTree treeHelper) { - //FIXME!!! - } - - @Override - public U getUi() { - return ui; - } - @Override public void destroyUI() { //FIXME!!! @@ -249,7 +302,7 @@ public abstract class ObserveReferentialFormUIHandler<D extends ReferentialDto, @Override public final void saveEdit() { - editAction.save(ui, model.getBean()); + run(editActionHandler); } @Override @@ -261,7 +314,7 @@ public abstract class ObserveReferentialFormUIHandler<D extends ReferentialDto, } else { - Form<D> form = getMainService().loadForm(model.getDataType(), selectedReference.getId()); + Form<D> form = getMainService().loadForm(model.getBeanType(), selectedReference.getId()); D selectedBean = form.getObject(); @@ -286,7 +339,7 @@ public abstract class ObserveReferentialFormUIHandler<D extends ReferentialDto, @Override public void showUniqueKeys(JButton button) { - Class<D> beanType = model.getDataType(); + Class<D> beanType = model.getBeanType(); Class<R> referenceType = model.getReferenceType(); List<R> entities = model.getReferentialReferences(referenceType); @@ -384,7 +437,7 @@ public abstract class ObserveReferentialFormUIHandler<D extends ReferentialDto, ImmutableSetDtoMap<ReferentialDtoReference> usages = getMainService().findAllUsages(bean); ReferentialReferenceDecorator<R> decorator = decoratorService.getReferentialReferenceDecorator(model.getReferenceType()); - String type = ObserveI18nDecoratorHelper.getTypeI18nKey(model.getDataType()); + String type = ObserveI18nDecoratorHelper.getTypeI18nKey(model.getBeanType()); type = t(type); String message = t("observe.message.show.usages", type, decorator.toString(bean)); @@ -422,13 +475,14 @@ public abstract class ObserveReferentialFormUIHandler<D extends ReferentialDto, model.setMode(FormUIMode.CREATE); if (log.isDebugEnabled()) { - log.debug("Will create new entity [" + model.getDataType().getName() + "]"); + log.debug("Will create new entity [" + model.getBeanType().getName() + "]"); } model.copyBean(null); startEdit(); } + @Override public void startEdit() { FormUIMode mode = model.getMode(); @@ -535,7 +589,7 @@ public abstract class ObserveReferentialFormUIHandler<D extends ReferentialDto, @Override public void deleteData() { - deleteAction.delete(ui, model.getBean()); + run(deleteActionHandler); } private void updateView(boolean editing) { @@ -545,7 +599,7 @@ public abstract class ObserveReferentialFormUIHandler<D extends ReferentialDto, ui.getViewLayout().setSelected(editing ? ReferentialFormUI.DETAIL_VIEW : ReferentialFormUI.LIST_VIEW); } - protected boolean canSave(String parentId, D bean) { + private boolean askToSave0(D bean) { if (model.isCreatingMode()) { return true; @@ -556,9 +610,7 @@ public abstract class ObserveReferentialFormUIHandler<D extends ReferentialDto, replaceReference = null; - if (oldBean != null && - oldBean.getStatus() == ReferenceStatus.enabled && - bean.getStatus() == ReferenceStatus.disabled) { + if (oldBean != null && oldBean.isEnabled() && !bean.isEnabled()) { // l'entite a ete desactive // on recherche les objets utilisant cette entitee @@ -584,7 +636,7 @@ public abstract class ObserveReferentialFormUIHandler<D extends ReferentialDto, .filter(r -> !bean.getId().equals(r.getId())) .collect(Collectors.toList()); - if (ProgramDto.class.equals(model.getDataType())) { + if (ProgramDto.class.equals(model.getBeanType())) { referenceList = (List) ProgramHelper.filterGearType((List) referenceList, ((ProgramDto) model.getBean()).getGearType()); } @@ -669,7 +721,7 @@ public abstract class ObserveReferentialFormUIHandler<D extends ReferentialDto, .filter(r -> !dto.getId().equals(r.getId())) .collect(Collectors.toList()); - if (ProgramDto.class.equals(model.getDataType())) { + if (ProgramDto.class.equals(model.getBeanType())) { referenceList = (List) ProgramHelper.filterGearType((List) referenceList, ((ProgramDto) model.getBean()).getGearType()); } if (log.isDebugEnabled()) { @@ -694,35 +746,12 @@ public abstract class ObserveReferentialFormUIHandler<D extends ReferentialDto, } } - if (!ObserveFormUIHandler.confirmForEntityDelete(model.getDataType(), dto)) { + if (!ObserveFormUIHandler.confirmForEntityDelete(model.getBeanType(), dto)) { return false; } return true; } - private void doDelete0(D dto) { - String id = dto.getId(); - if (replaceReference != null) { - referentialService.replaceReference(model.getDataType(), id, replaceReference.getId()); - } - model.delete(); - } - - private void afterDelete0(D dto) { - if (dto instanceof ProgramDto) { - - // remove the program in tree - navigation.removeProgram(dto.getId()); - } - - model.loadFormDependencies(dataSource, true); - model.updateUi(); - - stopEdit(); - validationManager.removeAllMessages(); - } - - private <E extends ReferentialDto, R extends ReferentialDtoReference<E, R>> Pair<Boolean, R> showUsagesForDelete(E entity, ImmutableSetDtoMap<ReferentialDtoReference> usages, List<R> referenceList) { @@ -757,51 +786,4 @@ public abstract class ObserveReferentialFormUIHandler<D extends ReferentialDto, return Pair.of(false, null); } - - private boolean askToSave0(D dto) { - return true; - } - - private void doSave0(D dto) { - if (model.isCreatingMode()) { - - log.info(String.format("%s Create referential %s", prefix, dto)); - - model.save(); - - model.loadFormDependencies(dataSource, true); - - return; - } - - log.info(String.format("%s Update existing referential : %s", prefix, dto.getId())); - - if (replaceReference != null) { - - referentialService.replaceReference(model.getDataType(), dto.getId(), replaceReference.getId()); - } - - model.save(); - - model.loadFormDependencies(dataSource, true); - } - - private void afterSave0(D dto, boolean created) { - model.updateUi(); - - if (dto instanceof ProgramDto) { - - if (created) { - - // add the program in tree - ProgramReference reference = ProgramDto.dtoContext().toReference(referentialLocale, (ProgramDto) dto); - navigation.addProgram(reference); - } else { - - // update the program in tree - navigation.updateProgram((ProgramDto) dto); - } - } - - } } ===================================== client/src/main/java/fr/ird/observe/client/form/referential/ObserveReferentialFormUIModel.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/referential/ObserveReferentialFormUIModel.java +++ b/client/src/main/java/fr/ird/observe/client/form/referential/ObserveReferentialFormUIModel.java @@ -130,7 +130,7 @@ public abstract class ObserveReferentialFormUIModel<D extends ReferentialDto, R } public void delete() { - getService().delete(getDataType(), getBean().getId()); + getService().delete(getBeanType(), getBean().getId()); } public void openUI(FormUIValidationMessageManager validationManager) { ===================================== client/src/main/java/fr/ird/observe/client/form/simple/ObserveMainDataFormUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/simple/ObserveMainDataFormUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/form/simple/ObserveMainDataFormUIHandler.java @@ -22,13 +22,12 @@ package fr.ird.observe.client.form.simple; * #L% */ +import fr.ird.observe.client.form.FormUI; import fr.ird.observe.client.form.ObserveFormUIHandler; +import fr.ird.observe.client.form.action.FormUIActionHandler; import fr.ird.observe.client.form.spi.FormUIValidationMessageManager; -import fr.ird.observe.client.util.UIHelper; +import fr.ird.observe.client.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.dto.data.DataDto; -import fr.ird.observe.services.action.DeleteServiceAction; -import fr.ird.observe.services.action.SaveDtoServiceAction; -import fr.ird.observe.services.service.ObserveService; /** * Created by tchemit on 02/10/17. @@ -41,26 +40,34 @@ public abstract class ObserveMainDataFormUIHandler<D extends DataDto, M extends super(); } - public final void delete() { - boolean ok = false; - stopEdit(); - validationManager.removeAllMessages(); + private final FormUIActionHandler deleteActionHandler = new FormUIActionHandler() { + + private String id; + + @Override + public boolean before() { + id = model.getBean().getId(); + return askToDelete(model.getBean()); + } - try { - ok = askToDelete(getBean()); - if (ok) { - doDelete(model.getSelectedParentId(), model.getBean()); - } else { - restartEditUI(); - } - } catch (Exception e) { - UIHelper.handlingError(e); - } finally { - if (ok) { - dataSource.setModified(true); - afterDelete(validationManager); - } + @Override + public void run() { + doDelete(model.getSelectedParentId(), model.getBean()); } + + @Override + public void after() { + afterDelete(validationManager); + } + + @Override + public FormUI getUI() { + return ui; + } + }; + + public final void delete() { + run(deleteActionHandler); } protected void doDelete(String parentId, D bean) { @@ -70,19 +77,14 @@ public abstract class ObserveMainDataFormUIHandler<D extends DataDto, M extends protected void afterDelete(FormUIValidationMessageManager validationManager) { stopEdit(); validationManager.removeAllMessages(); - //FIXME!!! Place this on referential ui -// if (!(getModel().getBean() instanceof ReferentialDto)) { -// -// NavigationTree navigation = getOpenAction().getNavigationTree(); -// NavigationTreeNodeSupport node = navigation .getSelectedNode(); -// NavigationTreeNodeSupport parentNode = node.getParent(); -// navigation .removeNode(node); -// navigation .selectNode(parentNode); -// } + NavigationTreeNodeSupport node = navigation.getSelectedNode(); + NavigationTreeNodeSupport parentNode = node.getParent(); + navigation.removeNode(node); + navigation.selectNode(parentNode); } protected boolean askToDelete(D bean) { - return !ObserveFormUIHandler.confirmForEntityDelete(model.getDataType(), bean); + return !ObserveFormUIHandler.confirmForEntityDelete(model.getBeanType(), bean); } } ===================================== client/src/main/java/fr/ird/observe/client/form/simple/ObserveSimpleDataFormUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/simple/ObserveSimpleDataFormUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/form/simple/ObserveSimpleDataFormUIHandler.java @@ -23,13 +23,13 @@ package fr.ird.observe.client.form.simple; */ import com.google.common.collect.ImmutableMap; +import fr.ird.observe.client.form.FormUI; import fr.ird.observe.client.form.ObserveFormUIHandler; import fr.ird.observe.client.form.ObserveFormUIInitializerContext; -import fr.ird.observe.client.form.action.EditFormUIAction; +import fr.ird.observe.client.form.action.FormUIActionHandler; import fr.ird.observe.client.form.openlist.ObserveOpenDataListFormUIHandler; import fr.ird.observe.client.form.spi.FormUIValidationMessageManager; import fr.ird.observe.client.form.spi.ReferentialReferencesFilter; -import fr.ird.observe.client.tree.navigation.NavigationTree; import fr.ird.observe.dto.data.DataDto; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -45,30 +45,33 @@ public abstract class ObserveSimpleDataFormUIHandler<D extends DataDto, M extend /** Logger. */ private static final Log log = LogFactory.getLog(ObserveOpenDataListFormUIHandler.class); - private final EditFormUIAction<D, U> editAction; + private final FormUIActionHandler editActionHandler = new FormUIActionHandler() { + private boolean created; - protected ObserveSimpleDataFormUIHandler() { - editAction = new EditFormUIAction<D, U>() { + @Override + public boolean before() { + created = model.getBean().isNotPersisted(); + return askToSave0(model.getBean()); + } - @Override - protected boolean askToSave(D dto) { - return askToSave0(dto); - } + @Override + public void run() { + doSave0(model.getSelectedParentId(), model.getBean()); + } - @Override - protected void afterSave(D dto, boolean created) { - afterSave0(dto, created); - } + @Override + public void after() { + afterSave0(model.getBean(), created); + } - @Override - protected void doSave(D dto) { - doSave0(model.getSelectedParentId(), dto); - } - }; - } + @Override + public FormUI getUI() { + return ui; + } + }; protected void doSave0(String parentId, D dto) { - model.save(); + run(editActionHandler); } protected boolean askToSave0(D bean) { @@ -82,7 +85,7 @@ public abstract class ObserveSimpleDataFormUIHandler<D extends DataDto, M extend @Override protected void initialize(ObserveFormUIInitializerContext<U> initializerContext) { - validationManager = new FormUIValidationMessageManager(model.getDataType(), ui); + validationManager = new FormUIValidationMessageManager(model.getBeanType(), ui); super.initialize(initializerContext); } @@ -95,9 +98,7 @@ public abstract class ObserveSimpleDataFormUIHandler<D extends DataDto, M extend model.openUI(validationManager); log.info(String.format("%s init ui", prefix)); - computeContentIcon(); updateToolbarActions(); - setTitle(mainUI.getNavigation()); grabFocusOnForm(); } @@ -113,18 +114,9 @@ public abstract class ObserveSimpleDataFormUIHandler<D extends DataDto, M extend //FIXME!!! } - protected void setTitle(NavigationTree treeHelper) { - //FIXME!!! - } - - @Override - public U getUi() { - return ui; - } - @Override public void destroyUI() { - + //FIXME!!! } @Override @@ -139,47 +131,18 @@ public abstract class ObserveSimpleDataFormUIHandler<D extends DataDto, M extend @Override public void saveEdit() { - editAction.save(ui, getBean()); - } - - protected void attachValidators(D bean) { -//FIXME!!! - } - - protected void updateExtra() { - + run(editActionHandler); } public void afterSave0(D dto, boolean created) { dataSource.setModified(true); - // mettre les validateurs en mode non modifié SwingValidatorUtil.setValidatorChanged(ui, false); } public D getBean() { return model.getBean(); } - -// public final void save(boolean refresh) { -// boolean ok = askToSave0(model.getBean()); -// if (!ok) { -// // use cancel save -// return; -// } -// try { -// doSave(model.getSelectedParentId(), model.getBean(), openDataManager); -// } catch (Exception e) { -// UIHelper.handlingError(e); -// ok = false; -// } finally { -// if (ok) { -// dataSource.setModified(true); -// afterSave0(refresh); -// } -// } -// } - } ===================================== client/src/main/java/fr/ird/observe/client/form/simplelist/ObserveSimpleDataListFormUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/simplelist/ObserveSimpleDataListFormUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/form/simplelist/ObserveSimpleDataListFormUIHandler.java @@ -24,18 +24,15 @@ package fr.ird.observe.client.form.simplelist; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; +import fr.ird.observe.client.form.FormUI; import fr.ird.observe.client.form.ObserveFormUIHandler; import fr.ird.observe.client.form.ObserveFormUIInitializerContext; -import fr.ird.observe.client.form.action.EditDataListFormUIAction; -import fr.ird.observe.client.form.spi.FormUIValidationMessageManager; +import fr.ird.observe.client.form.action.FormUIActionHandler; import fr.ird.observe.client.form.spi.ReferentialReferencesFilter; import fr.ird.observe.client.form.spi.init.CoordinatesEditorInitializer; import fr.ird.observe.client.form.spi.init.TabInfoInitializer; -import fr.ird.observe.client.tree.navigation.NavigationTree; import fr.ird.observe.dto.data.DataDto; import fr.ird.observe.dto.data.DataListDto; -import fr.ird.observe.services.action.SaveDataListDtoServiceAction; -import fr.ird.observe.services.action.SaveRequestDto; import java.util.Optional; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -54,39 +51,29 @@ public abstract class ObserveSimpleDataListFormUIHandler<D extends DataDto, C ex /** Logger. */ private static final Log log = LogFactory.getLog(ObserveSimpleDataListFormUIHandler.class); - private final EditDataListFormUIAction<D, C, U> editAction; + private final FormUIActionHandler editActionHandler = new FormUIActionHandler() { + @Override + public boolean before() { + return checkEdit(); + } - protected ObserveSimpleDataListFormUIHandler() { - editAction = new EditDataListFormUIAction<D, C, U>() { - - @Override - protected boolean askToSave(DataListDto<D, C> dto) { - return askToSave0(dto); - } - - @Override - protected void afterSave(DataListDto<D, C> dto, boolean created) { - afterSave0(dto, created); - } - - @Override - protected void doSave(DataListDto<D, C> dto) { - model.save(); - } - }; - } + @Override + public void run() { + model.save(); + } - private void doSave0(SaveDataListDtoServiceAction<D, C> saveServiceAction, DataListDto<D, C> dto) { - saveServiceAction.save(SaveRequestDto.of(dto)); - } + @Override + public void after() { + afterSave0(); + } - private void afterSave0(DataListDto<D, C> dto, boolean created) { - dataSource.setModified(true); - SwingValidatorUtil.setValidatorChanged(ui, false); - } + @Override + public FormUI getUI() { + return ui; + } + }; - private boolean askToSave0(DataListDto<D, C> dto) { - return checkEdit(); + protected ObserveSimpleDataListFormUIHandler() { } @Override @@ -95,13 +82,7 @@ public abstract class ObserveSimpleDataListFormUIHandler<D extends DataDto, C ex } @Override - protected void initialize(ObserveFormUIInitializerContext<U> initializerContext) { - validationManager = new FormUIValidationMessageManager(model.getDataType(), ui); - super.initialize(initializerContext); - } - - @Override - public void openUI() { + public final void openUI() { resetValidationContext(); @@ -115,9 +96,7 @@ public abstract class ObserveSimpleDataListFormUIHandler<D extends DataDto, C ex tabModels.ifPresent(e -> TabInfoInitializer.onOpenUi(ui, e)); log.info(String.format("%s init ui", prefix)); - computeContentIcon(); updateToolbarActions(); - setTitle(navigation); updateExtra(); if (!model.isReadingMode()) { @@ -127,81 +106,53 @@ public abstract class ObserveSimpleDataListFormUIHandler<D extends DataDto, C ex grabFocusOnForm(); } - public void startEdit() { - prepareValidationContext(); - setEditing(); - attachValidators(getBean()); + private void afterSave0() { + dataSource.setModified(true); + SwingValidatorUtil.setValidatorChanged(ui, false); } - public void stopEdit() { - //FIXME!!! - } + @Override + public final void startEdit() { + prepareValidationContext(); - public void restartEditUI() { - //FIXME!!! - } + model.setEditing(true); - protected void setTitle(NavigationTree treeHelper) { - //FIXME!!! + attachValidators(getBean()); } @Override - public U getUi() { - return ui; + public final void stopEdit() { + //FIXME!!! } @Override - public void destroyUI() { + public final void destroyUI() { } @Override - public boolean closeUI() { + public final boolean closeUI() { return false; } @Override - public void resetEdit() { + public final void resetEdit() { //FIXME!!! } @Override - public void saveEdit() { - editAction.save(ui, getBean()); + public final void saveEdit() { + run(editActionHandler); } protected void attachValidators(DataListDto<D, C> bean) { //FIXME!!! } - protected void updateExtra() { - } - public DataListDto<D, C> getBean() { return model.getBean(); } -// protected SaveResultDto save(DataListDto<D, C> bean) { -// SaveResultDto saveResult = model.save(bean); -// saveResult.toDto(bean); -// return saveResult; -// } -// -// protected SaveResultDto save(String parentId, DataListDto<D, C> bean) { -// SaveResultDto saveResult = model.save(parentId, bean); -// saveResult.toDto(bean); -// return saveResult; -// } -// -// public Form<DataListDto<D, C>> loadForm(String id) { -// return model.loadForm(dataSource, id); -// } - - protected void setEditing() { - // mark ui as editing - model.setEditing(true); - } - private void prepareValidationContext() { detachValidators(); resetValidationContext(); @@ -216,7 +167,7 @@ public abstract class ObserveSimpleDataListFormUIHandler<D extends DataDto, C ex // if (referentialListHeader != null) { // List data = referentialListHeader.getData(); // ClientValidationContext validationContext = ObserveClientApplicationContext.get().getValidationContext(); -// log.debug(String.format("%s Set referentiel list [%s] in validation context : %d", prefix, getModel().getDataType().getSimpleName(), data.size())); +// log.debug(String.format("%s Set referentiel list [%s] in validation context : %d", prefix, getModel().getBeanType().getSimpleName(), data.size())); // validationContext.setEditingReferentielList(data); // } } ===================================== client/src/main/java/fr/ird/observe/client/form/table/ObserveDataTableFormUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/form/table/ObserveDataTableFormUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/form/table/ObserveDataTableFormUIHandler.java @@ -26,15 +26,15 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import fr.ird.observe.client.ObserveClientApplicationContext; import fr.ird.observe.client.ObserveKeyStrokes; +import fr.ird.observe.client.form.FormUI; import fr.ird.observe.client.form.ObserveFormUIHandler; import fr.ird.observe.client.form.ObserveFormUIInitializerContext; -import fr.ird.observe.client.form.action.EditDataListFormUIAction; +import fr.ird.observe.client.form.action.FormUIActionHandler; import fr.ird.observe.client.form.spi.FormUIValidationMessageManager; import fr.ird.observe.client.form.spi.ReferentialReferencesFilter; import fr.ird.observe.client.form.spi.init.CoordinatesEditorInitializer; import fr.ird.observe.client.form.spi.init.TabInfoInitializer; import fr.ird.observe.client.form.table.longline.WeightMeasuresTableModel; -import fr.ird.observe.client.tree.navigation.NavigationTree; import fr.ird.observe.client.util.UIHelper; import fr.ird.observe.client.util.table.EditableTableModelSupport; import fr.ird.observe.client.util.table.InlineTableAutotSelectRowAndShowPopupAction; @@ -45,7 +45,6 @@ import fr.ird.observe.dto.data.seine.TargetCatchDto; import fr.ird.observe.dto.referential.SpeciesReference; import fr.ird.observe.dto.referential.seine.WeightCategoryReference; import fr.ird.observe.services.action.DataListDtoServiceAction; -import fr.ird.observe.services.action.LoadDataListDtoFormServiceAction; import fr.ird.observe.services.service.ObserveService; import java.awt.BorderLayout; import java.awt.Rectangle; @@ -91,29 +90,31 @@ public abstract class ObserveDataTableFormUIHandler<D extends DataDto, C extends private int oldIndex; protected final S service; - private final EditDataListFormUIAction<D, C, U> editAction; - private final LoadDataListDtoFormServiceAction<D, C> loadAction; - protected ObserveDataTableFormUIHandler(Class<S> serviceType) { - service = MAIN.getService(serviceType); - editAction = new EditDataListFormUIAction<D, C, U>() { + private final FormUIActionHandler editActionHandler = new FormUIActionHandler() { + @Override + public boolean before() { + return checkEdit(); + } - @Override - protected boolean askToSave(DataListDto<D, C> dto) { - return askToSave0(dto); - } + @Override + public void run() { + doSave0(model.getBean()); + } - @Override - protected void afterSave(DataListDto<D, C> dto, boolean created) { - afterSave0(dto, created); - } + @Override + public void after() { + afterSave0(); + } - @Override - protected void doSave(DataListDto<D, C> dto) { - doSave0(dto); - } - }; - loadAction = service; + @Override + public FormUI getUI() { + return ui; + } + }; + + protected ObserveDataTableFormUIHandler(Class<S> serviceType) { + service = MAIN.getService(serviceType); } @Override @@ -148,9 +149,9 @@ public abstract class ObserveDataTableFormUIHandler<D extends DataDto, C extends // public void computeUpdateMessages(ClientDataContext dataContext, FormUIValidationMessageManager validationManager) { // String message = n("observe.entity.message.updating"); // NavigationTreeNodeSupport node = navigation.getSelectedNode(); -// String entityLabel = ObserveI18nDecoratorHelper.getTypeI18nKey(node.getParent().getDataType()); +// String entityLabel = ObserveI18nDecoratorHelper.getTypeI18nKey(node.getParent().getBeanType()); // message = t(message, t(entityLabel)); -// validationManager.addInfoMessage(node.getParent().getDataType(), message); +// validationManager.addInfoMessage(node.getParent().getBeanType(), message); // } // // @Override @@ -211,7 +212,7 @@ public abstract class ObserveDataTableFormUIHandler<D extends DataDto, C extends @Override protected void initialize(ObserveFormUIInitializerContext<U> initializerContext) { - validationManager = new FormUIValidationMessageManager(model.getDataType(), ui); + validationManager = new FormUIValidationMessageManager(model.getBeanType(), ui); super.initialize(initializerContext); ContentTableModel<D, C> tableModel = ui.getTableModel(); @@ -336,9 +337,7 @@ public abstract class ObserveDataTableFormUIHandler<D extends DataDto, C extends tabModels.ifPresent(e -> TabInfoInitializer.onOpenUi(ui, e)); log.info(String.format("%s init ui", prefix)); - computeContentIcon(); updateToolbarActions(); - setTitle(navigation); updateExtra(); if (!model.isReadingMode()) { @@ -352,32 +351,21 @@ public abstract class ObserveDataTableFormUIHandler<D extends DataDto, C extends return getModel().getTableEditBean(); } + @Override public final void startEdit() { prepareValidationContext(); setEditing(); attachValidators(getBean()); } + @Override public final void stopEdit() { //FIXME!!! } - public final void restartEditUI() { - //FIXME!!! - } - - protected void setTitle(NavigationTree treeHelper) { - //FIXME!!! - } - - @Override - public U getUi() { - return ui; - } - @Override public void destroyUI() { - + //FIXME!!! } @Override @@ -392,7 +380,7 @@ public abstract class ObserveDataTableFormUIHandler<D extends DataDto, C extends @Override public final void saveEdit() { - editAction.save(ui, model.getBean()); + run(editActionHandler); // boolean ok = askToSave0(model.getSelectedParentId(), model.getBean()); // if (!ok) { // // use cancel save @@ -414,31 +402,23 @@ public abstract class ObserveDataTableFormUIHandler<D extends DataDto, C extends @Override public void deleteData() { -//FIXME!!! } protected void attachValidators(DataListDto<D, C> bean) { //FIXME!!! } - protected void updateExtra() { - } - private void doSave0(DataListDto<D, C> dto) { } - private void afterSave0(DataListDto<D, C> dto, boolean created) { + private void afterSave0() { SwingValidatorUtil.setValidatorChanged(ui, false); // on recharge l'écran resetEdit(); } - private boolean askToSave0(DataListDto<D, C> dto) { - return false; - } - public DataListDto<D, C> getBean() { return model.getBean(); } @@ -497,7 +477,7 @@ public abstract class ObserveDataTableFormUIHandler<D extends DataDto, C extends if (referentialListHeader != null) { List data = referentialListHeader.getData(); ClientValidationContext validationContext = ObserveClientApplicationContext.get().getValidationContext(); - log.debug(String.format("%s Set referentiel list [%s] in validation context : %d", prefix, getModel().getDataType().getSimpleName(), data.size())); + log.debug(String.format("%s Set referentiel list [%s] in validation context : %d", prefix, getModel().getBeanType().getSimpleName(), data.size())); validationContext.setEditingReferentielList(data); } } @@ -558,7 +538,7 @@ public abstract class ObserveDataTableFormUIHandler<D extends DataDto, C extends return model.getTableModel(); } - public void removeSelectedRow(int selectedRow) { + private void removeSelectedRow(int selectedRow) { try { getTableModel().doRemoveRow(selectedRow, false); } finally { @@ -636,11 +616,6 @@ public abstract class ObserveDataTableFormUIHandler<D extends DataDto, C extends } @Override - public int askUser(String t, String t1, int message, Object[] objects, int i) { - return askUser(t, t1, message, objects, i); - } - - @Override public boolean confirmForEntityDelete(Object o, Class<C> klass, C bean, String deleteExtraMessage) { return ObserveFormUIHandler.confirmForEntityDelete(klass, bean, deleteExtraMessage); } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/458a9a10ad40a62cde69b42bc9c… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/458a9a10ad40a62cde69b42bc9c… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][feature/refactor_ui] 4 commits: improve services api using DataListDtoService (which is not a service...)
by Tony CHEMIT 11 Oct '17

11 Oct '17
Tony CHEMIT pushed to branch feature/refactor_ui at ultreiaio / ird-observe Commits: b778d987 by Tony CHEMIT at 2017-10-06T17:29:12+02:00 improve services api using DataListDtoService (which is not a service...) - - - - - 76badd72 by Tony CHEMIT at 2017-10-06T19:54:04+02:00 revert bad i18n - - - - - 090f583a by Tony CHEMIT at 2017-10-11T07:30:24+02:00 continue fury (btu still not compiled...) - - - - - 474247a7 by Tony CHEMIT at 2017-10-11T18:30:52+02:00 at last, project build with a lot of fixme to resolve - - - - - 30 changed files: - .gitlab-ci.yml - CONTRIBUTING.md - + client-configuration/.mvn/add-build-number - + client/.mvn/add-build-number - + client/.mvn/application-assembly - client/pom.xml - client/src/main/java/fr/ird/observe/client/ObserveClientApplicationContext.java - client/src/main/java/fr/ird/observe/client/ObserveMainUI.jaxx - client/src/main/java/fr/ird/observe/client/ObserveMainUIInitializer.java - client/src/main/java/fr/ird/observe/client/ObserveMainUIModel.java - client/src/main/java/fr/ird/observe/client/ObserveUICallback.java - client/src/main/java/fr/ird/observe/client/RunObserveClient.java - client/src/main/java/fr/ird/observe/client/action/AbstractContentUIAction.java - client/src/main/java/fr/ird/observe/client/action/dcprefs/DeleteFloatingObjectPresetUIAction.java → client/src/main/java/fr/ird/observe/client/action/dcppresets/DeleteFloatingObjectPresetUIAction.java - client/src/main/java/fr/ird/observe/client/action/dcprefs/QuitFloatingObjectPresetsUIAction.java → client/src/main/java/fr/ird/observe/client/action/dcppresets/QuitFloatingObjectPresetsUIAction.java - client/src/main/java/fr/ird/observe/client/action/dcprefs/SaveFloatingObjectPresetUIAction.java → client/src/main/java/fr/ird/observe/client/action/dcppresets/SaveFloatingObjectPresetUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/content/AddActivityLonglineSetUIAction.java → client/src/main/java/fr/ird/observe/client/action/form/AddActivityLonglineSetUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/content/AddActivitySeineFloatingObjectUIAction.java → client/src/main/java/fr/ird/observe/client/action/form/AddActivitySeineFloatingObjectUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/content/AddActivitySeineSetUIAction.java → client/src/main/java/fr/ird/observe/client/action/form/AddActivitySeineSetUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/content/AddFloatingObjectPresetUIAction.java → client/src/main/java/fr/ird/observe/client/action/form/AddFloatingObjectPresetUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/content/BackToReferentialListUIAction.java → client/src/main/java/fr/ird/observe/client/action/form/BackToReferentialListUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/content/CloseAndCreateUIAction.java → client/src/main/java/fr/ird/observe/client/action/form/CloseAndCreateUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/content/CloseOpenUIAction.java → client/src/main/java/fr/ird/observe/client/action/form/CloseOpenUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/content/CopyFloatingObjectPartToLeftAction.java → client/src/main/java/fr/ird/observe/client/action/form/CopyFloatingObjectPartToLeftAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/content/CopyFloatingObjectPartToRightAction.java → client/src/main/java/fr/ird/observe/client/action/form/CopyFloatingObjectPartToRightAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/content/CreateNewReferentialUIAction.java → client/src/main/java/fr/ird/observe/client/action/form/CreateNewReferentialUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/content/CreateOpenUIAction.java → client/src/main/java/fr/ird/observe/client/action/form/CreateOpenUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/content/DeleteDataUIAction.java → client/src/main/java/fr/ird/observe/client/action/form/DeleteDataUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/content/DeleteReferenceUIAction.java → client/src/main/java/fr/ird/observe/client/action/form/DeleteReferenceUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/content/DeleteTableEntryUIAction.java → client/src/main/java/fr/ird/observe/client/action/form/DeleteTableEntryUIAction.java The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/4a9e65bb813cf50b7b79648474… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/4a9e65bb813cf50b7b79648474… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][feature/refactor_ui] 4 commits: review packages in api
by Tony CHEMIT 04 Oct '17

04 Oct '17
Tony CHEMIT pushed to branch feature/refactor_ui at ultreiaio / ird-observe Commits: 6e0793ca by Tony CHEMIT at 2017-09-29T10:40:01+02:00 review packages in api - - - - - 05e61e2d by Tony CHEMIT at 2017-10-02T10:13:01+02:00 first storm form list should be ok - - - - - c17ac930 by Tony CHEMIT at 2017-10-04T13:24:42+02:00 use DataListDto in services - - - - - 4a9e65bb by Tony CHEMIT at 2017-10-04T13:25:05+02:00 continue ui refactor - - - - - 30 changed files: - client/pom.xml - client/src/main/java/fr/ird/observe/client/ObserveClientApplicationContext.java - client/src/main/java/fr/ird/observe/client/ui/ObserveCommon.jcss → client/src/main/java/fr/ird/observe/client/ObserveCommon.jcss - client/src/main/java/fr/ird/observe/client/ui/ObserveMainUI.jaxx → client/src/main/java/fr/ird/observe/client/ObserveMainUI.jaxx - client/src/main/java/fr/ird/observe/client/ui/ObserveMainUI.jcss → client/src/main/java/fr/ird/observe/client/ObserveMainUI.jcss - client/src/main/java/fr/ird/observe/client/ui/ObserveMainUIHandler.java → client/src/main/java/fr/ird/observe/client/ObserveMainUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/ObserveMainUIInitializer.java → client/src/main/java/fr/ird/observe/client/ObserveMainUIInitializer.java - client/src/main/java/fr/ird/observe/client/ui/ObserveMainUIModel.java → client/src/main/java/fr/ird/observe/client/ObserveMainUIModel.java - client/src/main/java/fr/ird/observe/client/ui/ObserveUICallback.java → client/src/main/java/fr/ird/observe/client/ObserveUICallback.java - client/src/main/java/fr/ird/observe/client/ui/ObserveUIMode.java → client/src/main/java/fr/ird/observe/client/ObserveUIMode.java - client/src/main/java/fr/ird/observe/client/RunObserveClient.java - client/src/main/java/fr/ird/observe/client/ui/actions/content/AbstractContentUIAction.java → client/src/main/java/fr/ird/observe/client/action/AbstractContentUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/main/menu/ObserveMenuActionSupport.java → client/src/main/java/fr/ird/observe/client/action/ObserveMenuActionSupport.java - client/src/main/java/fr/ird/observe/client/ui/actions/ObserveUIActionSupport.java → client/src/main/java/fr/ird/observe/client/action/ObserveUIActionSupport.java - client/src/main/java/fr/ird/observe/client/ui/actions/dcprefs/DeleteFloatingObjectPresetUIAction.java → client/src/main/java/fr/ird/observe/client/action/dcprefs/DeleteFloatingObjectPresetUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/dcprefs/QuitFloatingObjectPresetsUIAction.java → client/src/main/java/fr/ird/observe/client/action/dcprefs/QuitFloatingObjectPresetsUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/dcprefs/SaveFloatingObjectPresetUIAction.java → client/src/main/java/fr/ird/observe/client/action/dcprefs/SaveFloatingObjectPresetUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/main/global/ChangeFocusGlobalUIAction.java → client/src/main/java/fr/ird/observe/client/action/global/ChangeFocusGlobalUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/main/global/CloseDataGlobalUIAction.java → client/src/main/java/fr/ird/observe/client/action/global/CloseDataGlobalUIAction.java - + client/src/main/java/fr/ird/observe/client/action/global/DeleteDataGlobalUIAction.java - + client/src/main/java/fr/ird/observe/client/action/global/NewNextDataGlobalUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/main/global/OpenDataGlobalUIAction.java → client/src/main/java/fr/ird/observe/client/action/global/OpenDataGlobalUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/main/global/ResetDataGlobalUIAction.java → client/src/main/java/fr/ird/observe/client/action/global/ResetDataGlobalUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/main/global/SaveDataGlobalUIAction.java → client/src/main/java/fr/ird/observe/client/action/global/SaveDataGlobalUIAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/h2/StartH2WebServerAction.java → client/src/main/java/fr/ird/observe/client/action/h2/StartH2WebServerAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/h2/StopH2WebServerAction.java → client/src/main/java/fr/ird/observe/client/action/h2/StopH2WebServerAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/h2/StopServerModeAction.java → client/src/main/java/fr/ird/observe/client/action/h2/StopServerModeAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/main/menu/admin/LaunchAdminActionSupport.java → client/src/main/java/fr/ird/observe/client/action/menu/admin/LaunchAdminActionSupport.java - client/src/main/java/fr/ird/observe/client/ui/actions/main/menu/admin/LaunchConsolidateAction.java → client/src/main/java/fr/ird/observe/client/action/menu/admin/LaunchConsolidateAction.java - client/src/main/java/fr/ird/observe/client/ui/actions/main/menu/admin/LaunchDataSynchronizeAction.java → client/src/main/java/fr/ird/observe/client/action/menu/admin/LaunchDataSynchronizeAction.java The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/6a4b779cb1acef468ef0916bf7… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/6a4b779cb1acef468ef0916bf7… You're receiving this email because of your account on gitlab.com.
1 0
0 0
  • ← Newer
  • 1
  • 2
  • 3
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.