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

December 2020

  • 1 participants
  • 96 discussions
[Git][ultreiaio/ird-observe][develop] 5 commits: Remove deprecated code
by Tony CHEMIT 24 Dec '20

24 Dec '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: d8254119 by Tony Chemit at 2020-12-24T09:01:44+01:00 Remove deprecated code - - - - - 3f9b0e7a by Tony Chemit at 2020-12-24T10:04:21+01:00 Amélioration de l&#39;action générer un home id - Closes #1692 - - - - - 08bb3839 by Tony Chemit at 2020-12-24T10:10:37+01:00 Use only JaxxComboBox since the BeanComboBox is deprecated - - - - - 069b8c34 by Tony Chemit at 2020-12-24T10:10:37+01:00 La 1ère liste déroulante de chaque form s&#39;ouvre toute seule à l&#39;affichage d&#39;un onglet - Closes #1684 Ajout auto-sélection sur les champs requis. - - - - - dfc4dea5 by Tony Chemit at 2020-12-24T11:36:55+01:00 Nettoyage des fichiers du client - Closes #1693 - - - - - 30 changed files: - client/configuration/src/main/config/Client.ini - client/configuration/src/main/i18n/getters/config.getter - client/configuration/src/main/java/fr/ird/observe/client/configuration/ClientConfig.java - client/core/src/main/java/fr/ird/observe/client/ClientUIContext.java - client/core/src/main/java/fr/ird/observe/client/main/body/ClientConfigUI.java - client/core/src/main/java/fr/ird/observe/client/util/init/DefaultUIInitializer.java - client/datasource/actions/pom.xml - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportConfigUI.jaxx - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ResultTableModel.java - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/ReferentialReplaceUI.jaxx - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/ReferentialReplaceUI.jcss - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/ReferentialReplaceUIHandler.java - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/ValidateConfigUI.jaxx - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/ContentUIInitializer.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/open/ContentOpen.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/wizard/presets/RemotePresetsUI.jaxx - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/common/TripUI.jcss - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/common/actions/TripUIGenerateHomeId.java - client/i18n/src/main/i18n/translations/observe_en_GB.properties - client/i18n/src/main/i18n/translations/observe_es_ES.properties - client/i18n/src/main/i18n/translations/observe_fr_FR.properties - pom.xml - server/configuration/src/main/config/Server.ini - server/configuration/src/main/i18n/getters/config.getter - server/configuration/src/main/java/fr/ird/observe/server/configuration/ServerConfig.java - server/i18n/src/main/i18n/translations/observe_en_GB.properties - server/i18n/src/main/i18n/translations/observe_es_ES.properties - server/i18n/src/main/i18n/translations/observe_fr_FR.properties - toolkit/service/src/main/java/fr/ird/observe/services/service/CleanTemporaryFilesTask.java - toolkit/service/src/main/java/fr/ird/observe/services/service/CleanTemporaryFilesTaskConfiguration.java Changes: ===================================== client/configuration/src/main/config/Client.ini ===================================== @@ -756,11 +756,29 @@ type = fr.ird.observe.dto.validation.SeineBycatchObservedSystemConfig defaultValue = {\"fr.ird.referential.common.Species#1239832684290#0.04680507324710936\": [\"fr.ird.referential.ps.observation.ObservedSystem#0#1.0\",\"fr.ird.referential.ps.observation.ObservedSystem#0#1.1\",\"fr.ird.referential.ps.observation.ObservedSystem#1239832686428#0.9217864901728908\"]} [option temporaryFilesTimeout] -description = observe.config.temporaryFilesTimeout.description -key = observe.config.temporaryFilesTimeout +description = observe.config.client.temporaryFiles.timeout.description +key = observe.config.client.temporaryFilesTimeout type = int defaultValue = 120 +[option logFilesTimeout] +description = observe.config.client.logFiles.timeout.description +key = observe.config.client.logFilesTimeout +type = int +defaultValue = 720 + +[option feedbackFilesTimeout] +description = observe.config.client.feedbackFiles.timeout.description +key = observe.config.client.feedbackFilesTimeout +type = int +defaultValue = 720 + +[option backupFilesTimeout] +description = observe.config.client.backupFiles.timeout.description +key = observe.config.client.backupFilesTimeout +type = int +defaultValue = 2160 + [action help] description = observe.ui.action.commandline.help action = "fr.ird.observe.client.ObserveCLAction#help" ===================================== client/configuration/src/main/i18n/getters/config.getter ===================================== @@ -7,6 +7,10 @@ observe.config.build.date observe.config.build.number observe.config.build.version observe.config.checkServerVersion.description +observe.config.client.backupFiles.timeout.description +observe.config.client.feedbackFiles.timeout.description +observe.config.client.logFiles.timeout.description +observe.config.client.temporaryFiles.timeout.description observe.config.configFileName.description observe.config.coordinate.format observe.config.db.locale @@ -82,7 +86,6 @@ observe.config.speciesList.seine.observation.targetCatch observe.config.swingSessionFile.description observe.config.temperature.format observe.config.temporaryDirectory.description -observe.config.temporaryFilesTimeout.description observe.config.ui.autoPopupNumberEditor observe.config.ui.blockStateColor observe.config.ui.busyStateColor ===================================== client/configuration/src/main/java/fr/ird/observe/client/configuration/ClientConfig.java ===================================== @@ -22,6 +22,7 @@ package fr.ird.observe.client.configuration; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.gson.Gson; import fr.ird.observe.client.ObServeSwingSessionConfig; @@ -88,6 +89,7 @@ import java.util.Date; import java.util.LinkedList; import java.util.List; import java.util.Locale; +import java.util.Map; import java.util.Objects; import java.util.Optional; import java.util.Properties; @@ -633,6 +635,16 @@ public class ClientConfig extends GeneratedClientConfig implements TripMapConfig return new File(directory, String.format(FEED_BACK_PATTERN, getBuildVersion().toString().replaceAll("\\.", "_"), day, time)); } + @Override + public Map<Path, Integer> getTemporaryDirectoriesAndTimeout() { + return ImmutableMap.of( + getTemporaryDirectory().toPath(), getTemporaryFilesTimeout(), + getLogDirectory().toPath(), getLogFilesTimeout(), + getFeedBackDirectoryFile().toPath(), getFeedbackFilesTimeout(), + getBackupDirectory().toPath(), getBackupFilesTimeout() + ); + } + public void saveForUser() { log.info(t("observe.ui.message.save.configuration", get().getUserConfigFile())); get().saveForUser(doNotSave); ===================================== client/core/src/main/java/fr/ird/observe/client/ClientUIContext.java ===================================== @@ -90,7 +90,6 @@ public class ClientUIContext implements Closeable { private final ObserveDataSourcesManager dataSourcesManager; private final BackupsManager backupsManager; private final LocalDatabaseBackupTimer localDatabaseBackupTimer; - private final ObserveExecutorService executorService; private final BusyModel busyModel; private final ObserveDataSourceConfigurationMainFactory dataSourceConfigurationMainFactory; private ObserveMainUI mainUI; @@ -241,8 +240,7 @@ public class ClientUIContext implements Closeable { this.dataSourcesManager = new ObserveDataSourcesManager(clientConfig, dataSourceConfigurationMainFactory, serviceFactory, selectModel, editModel); this.backupsManager = new BackupsManager(clientConfig, dataSourcesManager); this.localDatabaseBackupTimer = new LocalDatabaseBackupTimer(clientConfig, backupsManager, dataSourcesManager); - this.executorService = new ObserveExecutorService(); - this.actionExecutor = new ObserveActionExecutor(executorService); + this.actionExecutor = new ObserveActionExecutor(new ObserveExecutorService()); this.busyModel = new BusyModel(); } @@ -297,10 +295,6 @@ public class ClientUIContext implements Closeable { return localDatabaseBackupTimer; } - public ObserveExecutorService getExecutorService() { - return executorService; - } - public BackupsManager getBackupsManager() { return backupsManager; } @@ -362,7 +356,7 @@ public class ClientUIContext implements Closeable { } /** - * Methode pour initialiser l'ui principale sans l'afficher. + * Methode pour initialiser l'interface graphique principale sans l'afficher. * * @param context le context applicatif * @param config la configuration a utiliser @@ -402,13 +396,6 @@ public class ClientUIContext implements Closeable { if (ui.getMainUIBodyContentManager().getCurrentBody() == null) { ui.changeBodyContent(NoBodyContentComponent.class); } - //FIXME:BodyContent Ceci doit être fait au niveau du DataSourceEditorBodyContent -// // force le redimensionnement du splitpane -// ui.getSplitpane().revalidate(); -// -// // force le redimensionnement du splitpane2 -// ui.getSplitpane2().revalidate(); - // affichage de l'interface graphique SwingUtilities.invokeLater(() -> ui.setVisible(true)); getObserveSwingSessionHelper().addComponent(ui, replace); ===================================== client/core/src/main/java/fr/ird/observe/client/main/body/ClientConfigUI.java ===================================== @@ -362,7 +362,11 @@ public class ClientConfigUI extends JXTitledPanel { helper.addOption(ClientConfigOption.BACKUP_USE); helper.addOption(ClientConfigOption.BACKUP_DELAY); helper.addOption(ClientConfigOption.BACKUP_AT_CLOSE); - helper.addOption(ClientConfigOption.CHECK_SERVER_VERSION); + + helper.addOption(ClientConfigOption.TEMPORARY_FILES_TIMEOUT); + helper.addOption(ClientConfigOption.LOG_FILES_TIMEOUT); + helper.addOption(ClientConfigOption.FEEDBACK_FILES_TIMEOUT); + helper.addOption(ClientConfigOption.BACKUP_FILES_TIMEOUT); helper.addOption(ClientConfigOption.CHANGE_SYNCHRO_SRC); helper.addOption(ClientConfigOption.H2_CAN_MIGRATE); ===================================== client/core/src/main/java/fr/ird/observe/client/util/init/DefaultUIInitializer.java ===================================== @@ -33,12 +33,12 @@ import io.ultreia.java4all.jaxx.widgets.combobox.JaxxComboBox; import org.apache.commons.lang3.StringUtils; import org.nuiton.jaxx.runtime.JAXXObject; import org.nuiton.jaxx.runtime.init.UIInitializerSupport; +import org.nuiton.jaxx.runtime.swing.JTextComponents; import org.nuiton.jaxx.widgets.BeanUIUtil; import org.nuiton.jaxx.widgets.datetime.DateTimeEditor; import org.nuiton.jaxx.widgets.datetime.TimeEditor; import org.nuiton.jaxx.widgets.gis.absolute.CoordinatesEditor; import org.nuiton.jaxx.widgets.number.NumberEditor; -import org.nuiton.jaxx.widgets.select.BeanComboBox; import org.nuiton.jaxx.widgets.select.BeanListHeader; import org.nuiton.jaxx.widgets.select.FilterableDoubleList; import org.nuiton.jaxx.widgets.text.BigTextEditor; @@ -152,15 +152,6 @@ public class DefaultUIInitializer<UI extends JComponent & JAXXObject> extends UI editor.init(); } - protected void init(BeanComboBox<?> editor) { - initializerContext.checkFirstPass(); - editor.setI18nPrefix("observe.common."); - editor.setMinimumSize(new Dimension(0, 24)); - if (StringUtils.isEmpty(editor.getProperty())) { - editor.setProperty(editor.getName()); - } - } - @SuppressWarnings({"unchecked", "rawtypes"}) protected void init(JaxxComboBox editor) { initializerContext.checkFirstPass(); @@ -209,6 +200,7 @@ public class DefaultUIInitializer<UI extends JComponent & JAXXObject> extends UI protected void init(NumberEditor editor) { initializerContext.checkFirstPass(); editor.init(); + JTextComponents.addAutoSelect(editor.getTextField()); } protected void init(DateTimeEditor editor) { ===================================== client/datasource/actions/pom.xml ===================================== @@ -136,10 +136,6 @@ <groupId>io.ultreia.java4all.jaxx</groupId> <artifactId>jaxx-validator</artifactId> </dependency> - <dependency> - <groupId>io.ultreia.java4all.jaxx</groupId> - <artifactId>jaxx-widgets-select</artifactId> - </dependency> <dependency> <groupId>io.ultreia.java4all.jaxx</groupId> <artifactId>jaxx-widgets-combobox</artifactId> ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportConfigUI.jaxx ===================================== @@ -40,12 +40,6 @@ public void destroy() { model = null; stepModel = null; } - -@Override -protected void finalize() throws Throwable { - super.finalize(); - destroy(); -} ]]> </script> ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ResultTableModel.java ===================================== @@ -152,12 +152,6 @@ public class ResultTableModel extends AbstractTableModel { fireTableStructureChanged(); } - @Override - protected void finalize() throws Throwable { - super.finalize(); - clear(); - } - @Override public int getRowCount() { return data == null ? 0 : data.getHeight(); ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/ReferentialReplaceUI.jaxx ===================================== @@ -17,19 +17,17 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<JPanel id="panel" genericType='E extends ReferentialDtoReference'> +<JPanel id="panel" genericType='E extends ReferentialDtoReference' layout="{new BorderLayout()}"> <import> fr.ird.observe.dto.reference.ReferentialDtoReference - - org.nuiton.jaxx.widgets.select.BeanComboBox - + io.ultreia.java4all.jaxx.widgets.combobox.JaxxComboBox </import> <ReferentialDtoReference id='referenceToReplace' initializer="getContextValue(ReferentialDtoReference.class, ReferentialReplaceUIHandler.CONTEXT_NAME)"/> <ReferentialDtoReference id='replaceReference' javaBean="null"/> <JLabel id='message' constraints='BorderLayout.NORTH'/> - <BeanComboBox id='list' constraints='BorderLayout.CENTER' constructorParams='this' genericType='E'/> + <JaxxComboBox id='list' constraints='BorderLayout.CENTER' constructorParams='this' genericType='E'/> </JPanel> ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/ReferentialReplaceUI.jcss ===================================== @@ -19,11 +19,6 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -#panel{ - layout:{new BorderLayout()}; - -} - #list { bean: {this}; property:replaceReference; ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/ReferentialReplaceUIHandler.java ===================================== @@ -24,8 +24,8 @@ package fr.ird.observe.client.datasource.actions.synchronize.referential.ng; import fr.ird.observe.dto.decoration.decorators.ReferentialReferenceDecorator; import fr.ird.observe.dto.reference.ReferentialDtoReference; +import io.ultreia.java4all.jaxx.widgets.combobox.JaxxComboBox; import org.nuiton.jaxx.runtime.spi.UIHandler; -import org.nuiton.jaxx.widgets.select.BeanComboBox; import java.awt.Dimension; import java.beans.PropertyChangeListener; @@ -53,7 +53,7 @@ public class ReferentialReplaceUIHandler<R extends ReferentialDtoReference> impl @Override public void afterInit(ReferentialReplaceUI<R> ui) { - BeanComboBox<R> beanComboBox = ui.getList(); + JaxxComboBox<R> beanComboBox = ui.getList(); beanComboBox.setI18nPrefix("observe.common."); beanComboBox.setMinimumSize(new Dimension(0, 24)); ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/ValidateConfigUI.jaxx ===================================== @@ -48,13 +48,6 @@ public void destroy() { model = null; validateModel = null; } - -@Override -protected void finalize() throws Throwable { - super.finalize(); - destroy(); -} - ]]> </script> ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/ContentUIInitializer.java ===================================== @@ -50,6 +50,7 @@ import io.ultreia.java4all.jaxx.widgets.combobox.JaxxComboBox; import org.apache.commons.lang3.StringUtils; import org.nuiton.jaxx.runtime.init.UIInitializerSupport; import org.nuiton.jaxx.runtime.swing.BlockingLayerUI; +import org.nuiton.jaxx.runtime.swing.JTextComponents; import org.nuiton.jaxx.runtime.swing.Table; import org.nuiton.jaxx.validator.JAXXValidator; import org.nuiton.jaxx.validator.swing.SwingValidatorUtil; @@ -243,6 +244,7 @@ public class ContentUIInitializer<UI extends ContentUI> extends UIInitializerSup editor.setConfig(new TemperatureEditorConfig(TemperatureFormat.C, label.getText(), propertyName)); editor.init(label); editor.getModel().addPropertyChangeListener("format", e -> ((EditableContentUI<?>) ui).getValidator().doValidate()); + JTextComponents.addAutoSelect(editor.getEditor().getTextField()); } protected void init(JToolBar editor) { @@ -263,12 +265,14 @@ public class ContentUIInitializer<UI extends ContentUI> extends UIInitializerSup initializerContext.checkFirstPass(); editor.setResetTip(t("observe.ui.action.reset")); editor.init(); + JTextComponents.addAutoSelect(editor.getTextEditor()); } protected void init(UrlEditor editor) { initializerContext.checkFirstPass(); editor.setResetTip(t("observe.ui.action.reset")); editor.init(); + JTextComponents.addAutoSelect(editor.getTextEditor()); } private void init(JLabel editor) { @@ -301,6 +305,7 @@ public class ContentUIInitializer<UI extends ContentUI> extends UIInitializerSup editor.setShowPopupButton(getClientConfig().isShowNumberEditorButton()); editor.setShowReset(true); editor.init(); + JTextComponents.addAutoSelect(editor.getTextField()); } @SuppressWarnings({"unchecked", "rawtypes"}) @@ -425,6 +430,7 @@ public class ContentUIInitializer<UI extends ContentUI> extends UIInitializerSup initializerContext.checkFirstPass(); editor.setLocale(getClientConfig().getLocale()); editor.init(); + JTextComponents.addAutoSelect(editor.getDateEditor().getEditor()); } protected void init(JComponent editor) { ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/open/ContentOpen.java ===================================== @@ -447,11 +447,14 @@ public class ContentOpen<U extends ContentUI> { String propertyQuadrant = coordinateEditor.getModel().getPropertyQuadrant(); JavaBean bean = (JavaBean) coordinateEditor.getModel().getBean(); // 1. Mise à jour latitude/longitude: - coordinateEditor.setLatitudeAndLongitude(bean.get(propertyLatitude), bean.get(propertyLongitude)); + Float latitude = bean.get(propertyLatitude); + Float longitude = bean.get(propertyLongitude); + Integer quadrant = bean.get(propertyQuadrant); + + coordinateEditor.setLatitudeAndLongitude(latitude, longitude); // 2. Mise à jour du quadrant : // Si le bean de données contient un quadrant, on met simplement à jour le composant de coordonnées pour sélectionner le quadrant voulu // sinon, on réinitialise les quadrants du composant afin qu'aucun d'eux ne soit sélectionné (par exemple dans le cas de la création de la première activité d'une route) - Integer quadrant = bean.get(propertyQuadrant); if (quadrant == null) { coordinateEditor.resetQuadrant(); } else { ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/wizard/presets/RemotePresetsUI.jaxx ===================================== @@ -22,7 +22,6 @@ <import> fr.ird.observe.dto.presets.RemoteDataSourceConfiguration fr.ird.observe.dto.presets.ServerDataSourceConfiguration - org.nuiton.jaxx.widgets.select.BeanComboBox java.awt.CardLayout </import> ===================================== client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/common/TripUI.jcss ===================================== @@ -46,6 +46,10 @@ _skipBindingToBean:true; } +#generateHomeId { + focusable:false; +} + #speciesTab { title:{t("observe.data.ll.common.Trip.species")}; } ===================================== client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/common/actions/TripUIGenerateHomeId.java ===================================== @@ -38,7 +38,7 @@ import static io.ultreia.java4all.i18n.I18n.n; public class TripUIGenerateHomeId extends ContentUIActionSupport<TripUI> { public TripUIGenerateHomeId() { - super(null, n("observe.data.ll.common.Trip.action.generateHomeId.tip"), "generate", ObserveLLKeyStrokes.KEY_STROKE_GENERATE_ID); + super("", n("observe.data.ll.common.Trip.action.generateHomeId.tip"), "generate", ObserveLLKeyStrokes.KEY_STROKE_GENERATE_ID); } @Override ===================================== client/i18n/src/main/i18n/translations/observe_en_GB.properties ===================================== @@ -54,6 +54,10 @@ observe.config.category.ui.description=Graphical interface options observe.config.category.ui.navigation=Navigation observe.config.category.ui.navigation.description=Navigation tree configuration observe.config.checkServerVersion.description=Should we check client and server version exact match ? +observe.config.client.backupFiles.timeout.description=Backup files delete (in hours) +observe.config.client.feedbackFiles.timeout.description=Feedback files delete (in hours) +observe.config.client.logFiles.timeout.description=Log files delete (in hours) +observe.config.client.temporaryFiles.timeout.description=Temporary files delete (in hours) observe.config.configFileName.description=Configuration filename observe.config.coordinate.format=Position format (DMD, DD, DMS) observe.config.db.locale=Language of data source @@ -129,7 +133,6 @@ observe.config.speciesList.seine.observation.targetCatch=Species for target catc observe.config.swingSessionFile.description=Swing session file. observe.config.temperature.format=Default temperature format observe.config.temporaryDirectory.description=Default temporary directory used by application and clean at each launch. -observe.config.temporaryFilesTimeout.description=Temporary files delete (in hours) observe.config.ui.autoPopupNumberEditor=Flag sets to true when number editor show automaticly popup observe.config.ui.blockStateColor=Color of block state observe.config.ui.busyStateColor=Color of busy state ===================================== client/i18n/src/main/i18n/translations/observe_es_ES.properties ===================================== @@ -54,6 +54,10 @@ observe.config.category.ui.description=Configuración GUI observe.config.category.ui.navigation=Navigation \#TODO observe.config.category.ui.navigation.description=Navigation tree configuration \#TODO observe.config.checkServerVersion.description=Verificar la correspondencia exacta entre las versiones de cliente y servidor REST? +observe.config.client.backupFiles.timeout.description=Backup files delete (in hours) \#TODO +observe.config.client.feedbackFiles.timeout.description=Feedback files delete (in hours) \#TODO +observe.config.client.logFiles.timeout.description=Log files delete (in hours) \#TODO +observe.config.client.temporaryFiles.timeout.description=Temporary files delete (in hours) \#TODO observe.config.configFileName.description=Nombre del archivo de configuración observe.config.coordinate.format=Formato de posición (DMD, DD, DMS) observe.config.db.locale=Idioma del referencial @@ -129,7 +133,6 @@ observe.config.speciesList.seine.observation.targetCatch=Especies par las captur observe.config.swingSessionFile.description=Copia de seguridad del estado del UI. observe.config.temperature.format=Unidad de temperatura observe.config.temporaryDirectory.description=Directorio temporal por defecto -observe.config.temporaryFilesTimeout.description=Temporary files delete (in hours) \#TODO observe.config.ui.autoPopupNumberEditor=Para mostrar automáticamente el editor numérico durante la edición de un número observe.config.ui.blockStateColor=Color of block state \#TODO observe.config.ui.busyStateColor=Color of busy state \#TODO ===================================== client/i18n/src/main/i18n/translations/observe_fr_FR.properties ===================================== @@ -54,6 +54,10 @@ observe.config.category.ui.description=Configuration des interfaces graphiques observe.config.category.ui.navigation=Navigation observe.config.category.ui.navigation.description=configuration de l'arbre de navigation observe.config.checkServerVersion.description=Vérifier la correspondance exacte entre les versions du client et serveur REST ? +observe.config.client.backupFiles.timeout.description=Nettoyage des fichiers de sauvegarde (en heures) +observe.config.client.feedbackFiles.timeout.description=Nettoyage des fichiers de retour d'expérience (en heures) +observe.config.client.logFiles.timeout.description=Nettoyage des fichiers de log (en heures) +observe.config.client.temporaryFiles.timeout.description=Nettoyage des fichiers temporaires (en heures) observe.config.configFileName.description=Le nom du fichier de configuration observe.config.coordinate.format=Format des positions (DMD, DD, DMS) observe.config.db.locale=La langue du référentiel @@ -129,7 +133,6 @@ observe.config.speciesList.seine.observation.targetCatch=Espèces pour les captu observe.config.swingSessionFile.description=Fichier de sauvegarde des états des UI. observe.config.temperature.format=Unité de température observe.config.temporaryDirectory.description=Le répertoire temporaire par défaut -observe.config.temporaryFilesTimeout.description=Nettoyage des fichiers temporaires (en heures) observe.config.ui.autoPopupNumberEditor=Pour afficher automatiquement l'éditeur numérique lors de l'édition d'un nombre observe.config.ui.blockStateColor=Couleur lorsque l'on bloque une partie de l'application observe.config.ui.busyStateColor=Couleur lorsque l'application est occupée ===================================== pom.xml ===================================== @@ -155,7 +155,7 @@ <!-- <lib.version.java4all.topia>1.35</lib.version.java4all.topia>--> <!-- <lib.version.java4all.eugene>3.0-alpha-38</lib.version.java4all.eugene>--> - <lib.version.java4all.jaxx>3.0-alpha-86</lib.version.java4all.jaxx> + <lib.version.java4all.jaxx>3.0-alpha-87</lib.version.java4all.jaxx> <!--<lib.version.java4all.application-context>1.0.3-SNAPSHOT</lib.version.java4all.application-context>--> <!--<lib.version.java4all.application-template>1.0.2-SNAPSHOT</lib.version.java4all.application-template>--> <!--<lib.version.java4all.i18n>4.0-beta-3-SNAPSHOT</lib.version.java4all.i18n>--> ===================================== server/configuration/src/main/config/Server.ini ===================================== @@ -104,7 +104,7 @@ type = int defaultValue = 30000 [option temporaryFilesTimeout] -description = observe.config.temporaryFilesTimeout.description +description = observe.config.client.temporaryFiles.timeout.description key = observeweb.temporaryFilesTimeout type = int defaultValue = 120 ===================================== server/configuration/src/main/i18n/getters/config.getter ===================================== @@ -1,5 +1,5 @@ ObserveWebApplicationConfig.description -observe.config.temporaryFilesTimeout.description +observe.config.client.temporaryFiles.timeout.description observe.model.version observeweb.adminApiKey.description observeweb.baseDirectory.description ===================================== server/configuration/src/main/java/fr/ird/observe/server/configuration/ServerConfig.java ===================================== @@ -37,6 +37,8 @@ import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.Collections; +import java.util.Map; /** * La configuration de l'application web. @@ -49,9 +51,8 @@ import java.nio.file.Paths; hints = {TemplateGeneratorConfig.class, CleanTemporaryFilesTaskConfiguration.class}) public class ServerConfig extends GeneratedServerConfig implements CleanTemporaryFilesTaskConfiguration { - private static Logger log = LogManager.getLogger(ServerConfig.class); - private static final String DEFAULT_OBSERVE_WEB_CONFIGURATION_FILENAME = "observe-server.conf"; + private static Logger log = LogManager.getLogger(ServerConfig.class); public static ServerConfig fromContextPath(String contextPath) { ServerConfig config = new ServerConfig(); @@ -70,6 +71,11 @@ public class ServerConfig extends GeneratedServerConfig implements CleanTemporar delegate.setConfigFileName(confFileName); } + @Override + public Map<Path, Integer> getTemporaryDirectoriesAndTimeout() { + return Collections.singletonMap(getTemporaryDirectory().toPath(), getTemporaryFilesTimeout()); + } + public void init(String... args) { log.info("Starts to init ObServe server configuration..."); ===================================== server/i18n/src/main/i18n/translations/observe_en_GB.properties ===================================== @@ -1,5 +1,5 @@ ObserveWebApplicationConfig.description=ObServe Web configuration -observe.config.temporaryFilesTimeout.description=Temporary files delete (in hours) +observe.config.client.temporaryFiles.timeout.description=Temporary files delete (in hours) observe.model.version=Model version observe.ui.datasource.storage.error.rest.adminApiKey.invalid=Admin key not valid observe.ui.datasource.storage.error.rest.adminApiKey.required=Admin key not found ===================================== server/i18n/src/main/i18n/translations/observe_es_ES.properties ===================================== @@ -1,5 +1,5 @@ ObserveWebApplicationConfig.description=Configuración de Observe web -observe.config.temporaryFilesTimeout.description=Temporary files delete (in hours) \#TODO +observe.config.client.temporaryFiles.timeout.description=Temporary files delete (in hours) \#TODO observe.model.version=Versión del modelo observe.ui.datasource.storage.error.rest.adminApiKey.invalid=Admin key not valid \#TODO observe.ui.datasource.storage.error.rest.adminApiKey.required=Admin key not found \#TODO ===================================== server/i18n/src/main/i18n/translations/observe_fr_FR.properties ===================================== @@ -1,5 +1,5 @@ ObserveWebApplicationConfig.description=Observe web Configuration -observe.config.temporaryFilesTimeout.description=Nettoyage des fichiers temporaires (en heures) +observe.config.client.temporaryFiles.timeout.description=Nettoyage des fichiers temporaires (en heures) observe.model.version=Version du modèle observe.ui.datasource.storage.error.rest.adminApiKey.invalid=Pas de clef admin trouvée observe.ui.datasource.storage.error.rest.adminApiKey.required=Clef admin non valide ===================================== toolkit/service/src/main/java/fr/ird/observe/services/service/CleanTemporaryFilesTask.java ===================================== @@ -49,10 +49,6 @@ public class CleanTemporaryFilesTask extends TimerTask { private final CleanTemporaryFilesTaskConfiguration configuration; - public CleanTemporaryFilesTask(CleanTemporaryFilesTaskConfiguration configuration) { - this.configuration = configuration; - } - public static Timer create(CleanTemporaryFilesTaskConfiguration configuration) { Timer result = new Timer("Delete temporary files daemon", true); result.scheduleAtFixedRate(new CleanTemporaryFilesTask(configuration), new Date(), TimeUnit.HOURS.toMillis(1)); @@ -65,16 +61,22 @@ public class CleanTemporaryFilesTask extends TimerTask { } } + public CleanTemporaryFilesTask(CleanTemporaryFilesTaskConfiguration configuration) { + this.configuration = configuration; + } + @Override public void run() { + configuration.getTemporaryDirectoriesAndTimeout().forEach(this::run); + } - Path temporaryDirectory = configuration.getTemporaryDirectory().toPath(); + private void run(Path temporaryDirectory, Integer timeout) { if (Files.notExists(temporaryDirectory)) { return; } Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); - calendar.add(Calendar.HOUR_OF_DAY, -configuration.getTemporaryFilesTimeout()); + calendar.add(Calendar.HOUR_OF_DAY, -timeout); Date deleteBefore = calendar.getTime(); long deleteBeforeTime = deleteBefore.getTime(); ===================================== toolkit/service/src/main/java/fr/ird/observe/services/service/CleanTemporaryFilesTaskConfiguration.java ===================================== @@ -22,7 +22,8 @@ package fr.ird.observe.services.service; * #L% */ -import java.io.File; +import java.nio.file.Path; +import java.util.Map; /** * @author Tony Chemit - dev(a)tchemit.fr @@ -30,11 +31,6 @@ import java.io.File; */ public interface CleanTemporaryFilesTaskConfiguration { - File getTemporaryDirectory(); + Map<Path, Integer> getTemporaryDirectoriesAndTimeout(); - void setTemporaryDirectory(File temporaryDirectory); - - int getTemporaryFilesTimeout(); - - void setTemporaryFilesTimeout(int temporaryFilesTimeout); } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/4407da5d08987002d79ef8d0… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/4407da5d08987002d79ef8d0… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 2 commits: low log level
by Tony CHEMIT 24 Dec '20

24 Dec '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 97767340 by Tony Chemit at 2020-12-24T08:06:08+01:00 low log level - - - - - 4407da5d by Tony Chemit at 2020-12-24T08:06:37+01:00 no more need of singleton supplier since we apply some lazy instances now. - - - - - 2 changed files: - models/dto/src/main/java/fr/ird/observe/dto/data/ps/consolidate/dcp/SimplifiedObjectTypeSpecializedRules.java - toolkit/persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContextSupport.java Changes: ===================================== models/dto/src/main/java/fr/ird/observe/dto/data/ps/consolidate/dcp/SimplifiedObjectTypeSpecializedRules.java ===================================== @@ -112,7 +112,7 @@ public class SimplifiedObjectTypeSpecializedRules implements ObserveDto { int currentSize = specializedMappingBuilder.size(); addInheritance(specializedMappingBuilder, standardCodeMapping, tuple, standardCode, dependencies); int newSize = specializedMappingBuilder.size(); - log.info(String.format("Add %d inheritance rules for main rule: %s", newSize - currentSize, tuple)); + log.debug(String.format("Add %d inheritance rules for main rule: %s", newSize - currentSize, tuple)); } log.info(String.format("Found %d rules (from %d main rules).", specializedMappingBuilder.size(), rules.size())); @@ -120,7 +120,7 @@ public class SimplifiedObjectTypeSpecializedRules implements ObserveDto { } private void addInheritance(Map<ImmutableSet<SimplifiedObjectTypeNode>, String> specializedMappingBuilder, Map<String, SimplifiedObjectTypeNode> standardCodeMapping, ImmutableSet<SimplifiedObjectTypeNode> tuple, String standardCode, Map<SimplifiedObjectTypeNode, Set<SimplifiedObjectTypeNode>> dependencies) { - log.info(String.format("Add inheritance for standard code: %s on tuple: %s", standardCode, tuple)); + log.debug(String.format("Add inheritance for standard code: %s on tuple: %s", standardCode, tuple)); int size = tuple.size(); @SuppressWarnings("unchecked") List<SimplifiedObjectTypeNode>[] dependenciesTuples = (List<SimplifiedObjectTypeNode>[]) Array.newInstance(List.class, size); int index = 0; @@ -154,18 +154,18 @@ public class SimplifiedObjectTypeSpecializedRules implements ObserveDto { SimplifiedObjectTypeNode thisNode = standardCodeMapping.get(standardCode); SimplifiedObjectTypeNode otherNode = standardCodeMapping.get(existingStandardCode); if (thisNode.getLevel() < otherNode.getLevel()) { - log.debug(String.format("Mismatch standard code (found: %s, wants to set: %s) - reject it since less specialized for tuple: %s", existingStandardCode, standardCode, currentTuple)); + log.trace(String.format("Mismatch standard code (found: %s, wants to set: %s) - reject it since less specialized for tuple: %s", existingStandardCode, standardCode, currentTuple)); } else { keepRule = true; - log.debug(String.format("Mismatch standard code (found: %s, wants to set: %s) - accept it more specialized for tuple: %s", existingStandardCode, standardCode, currentTuple)); + log.trace(String.format("Mismatch standard code (found: %s, wants to set: %s) - accept it more specialized for tuple: %s", existingStandardCode, standardCode, currentTuple)); } } } if (keepRule) { - log.info(String.format("[%d/%d] Set standard code: %s for tuple: %s", currentIndex + 1, count, standardCode, Arrays.toString(indexTuples))); + log.debug(String.format("[%d/%d] Set standard code: %s for tuple: %s", currentIndex + 1, count, standardCode, Arrays.toString(indexTuples))); specializedMappingBuilder.put(currentTuple, standardCode); } else { - log.info(String.format("[%d/%d] Reject set standard code: %s for tuple: %s", currentIndex + 1, count, standardCode, Arrays.toString(indexTuples))); + log.debug(String.format("[%d/%d] Reject set standard code: %s for tuple: %s", currentIndex + 1, count, standardCode, Arrays.toString(indexTuples))); } } ===================================== toolkit/persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContextSupport.java ===================================== @@ -24,7 +24,6 @@ package fr.ird.observe.entities; import com.google.common.collect.ImmutableSet; import fr.ird.observe.dto.referential.ReferentialDto; -import io.ultreia.java4all.util.SingletonSupplier; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.hibernate.tool.hbm2ddl.SchemaExport; @@ -81,15 +80,15 @@ public abstract class ObserveTopiaApplicationContextSupport<P extends ObserveTop /** * Meta model support. */ - private transient SingletonSupplier<TopiaMetadataModelSupport> topiaMetadataModelSupport; + private transient TopiaMetadataModelSupport topiaMetadataModelSupport; /** * Entity sql support. */ - private transient SingletonSupplier<TopiaEntitySqlModelSupport> topiaEntitySqlModelSupport; + private transient TopiaEntitySqlModelSupport topiaEntitySqlModelSupport; /** * Usage model. */ - private transient SingletonSupplier<TopiaUsageModel> topiaUsageModel; + private transient TopiaUsageModel topiaUsageModel; public ObserveTopiaApplicationContextSupport(TopiaConfiguration topiaConfiguration) { super(topiaConfiguration); @@ -117,16 +116,16 @@ public abstract class ObserveTopiaApplicationContextSupport<P extends ObserveTop public TopiaUsageModel getTopiaUsageModel() { if (topiaUsageModel == null) { - topiaUsageModel = SingletonSupplier.of(this::newUsageModel); + topiaUsageModel = newUsageModel(); } - return topiaUsageModel.get(); + return topiaUsageModel; } public TopiaEntitySqlModelSupport getTopiaEntitySqlModelSupport() { if (topiaEntitySqlModelSupport == null) { - topiaEntitySqlModelSupport = SingletonSupplier.of(this::newEntitySqlModelSupport); + topiaEntitySqlModelSupport = newEntitySqlModelSupport(); } - return topiaEntitySqlModelSupport.get(); + return topiaEntitySqlModelSupport; } public final String getAuthenticationToken() { @@ -135,9 +134,9 @@ public abstract class ObserveTopiaApplicationContextSupport<P extends ObserveTop protected final TopiaMetadataModelSupport getTopiaMetadataModelSupport() { if (topiaMetadataModelSupport == null) { - topiaMetadataModelSupport = SingletonSupplier.of(this::newMetaModelSupport); + topiaMetadataModelSupport = newMetaModelSupport(); } - return topiaMetadataModelSupport.get(); + return topiaMetadataModelSupport; } @Override View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/c0cb65a8383c57afbd602620… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/c0cb65a8383c57afbd602620… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 2 commits: debug level for report tests
by Tony CHEMIT 23 Dec '20

23 Dec '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: fab9f566 by Tony Chemit at 2020-12-23T15:28:50+01:00 debug level for report tests - - - - - c0cb65a8 by Tony Chemit at 2020-12-23T15:29:44+01:00 fix bad design in ToPIA: we should not do init stuff in application context, but just do it in a init method outside of the constructor hell hole - - - - - 2 changed files: - services/local-impl/src/test/java/fr/ird/observe/services/local/service/actions/report/AbstractReportServiceLocalTest.java - toolkit/persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContextSupport.java Changes: ===================================== services/local-impl/src/test/java/fr/ird/observe/services/local/service/actions/report/AbstractReportServiceLocalTest.java ===================================== @@ -140,7 +140,7 @@ public abstract class AbstractReportServiceLocalTest extends ServiceLocalTestSup // on execute le report DataMatrix result = service.executeReport(report, tripIds); - log.info(String.format("Result :\n%s", result.getClipboardContent(true, true, true, ','))); + log.debug(String.format("Result :\n%s", result.getClipboardContent(true, true, true, ','))); // on verifie le resultat testReportResult(result); ===================================== toolkit/persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContextSupport.java ===================================== @@ -73,30 +73,26 @@ public abstract class ObserveTopiaApplicationContextSupport<P extends ObserveTop /** * Unique id associated with this application context. */ - protected final String authenticationToken; + protected final String authenticationToken = UUID.randomUUID().toString(); + /** + * Mise à {@code true} quand au moins une connection a été effectuée. + */ + protected boolean open; /** * Meta model support. */ - private transient final SingletonSupplier<TopiaMetadataModelSupport> topiaMetadataModelSupport; + private transient SingletonSupplier<TopiaMetadataModelSupport> topiaMetadataModelSupport; /** * Entity sql support. */ - private transient final SingletonSupplier<TopiaEntitySqlModelSupport> topiaEntitySqlModelSupport; + private transient SingletonSupplier<TopiaEntitySqlModelSupport> topiaEntitySqlModelSupport; /** * Usage model. */ - private transient final SingletonSupplier<TopiaUsageModel> topiaUsageModel; - /** - * Mise à {@code true} quand au moins une connection a été effectuée. - */ - protected boolean open; + private transient SingletonSupplier<TopiaUsageModel> topiaUsageModel; public ObserveTopiaApplicationContextSupport(TopiaConfiguration topiaConfiguration) { super(topiaConfiguration); - this.authenticationToken = UUID.randomUUID().toString(); - this.topiaMetadataModelSupport = SingletonSupplier.of(this::newMetaModelSupport); - this.topiaEntitySqlModelSupport = SingletonSupplier.of(this::newEntitySqlModelSupport); - this.topiaUsageModel = SingletonSupplier.of(this::newUsageModel); } @SuppressWarnings("deprecation") @@ -120,10 +116,16 @@ public abstract class ObserveTopiaApplicationContextSupport<P extends ObserveTop public abstract ImmutableSet<Class<? extends ReferentialDto>> referentialForReplicationDto(); public TopiaUsageModel getTopiaUsageModel() { + if (topiaUsageModel == null) { + topiaUsageModel = SingletonSupplier.of(this::newUsageModel); + } return topiaUsageModel.get(); } public TopiaEntitySqlModelSupport getTopiaEntitySqlModelSupport() { + if (topiaEntitySqlModelSupport == null) { + topiaEntitySqlModelSupport = SingletonSupplier.of(this::newEntitySqlModelSupport); + } return topiaEntitySqlModelSupport.get(); } @@ -132,6 +134,9 @@ public abstract class ObserveTopiaApplicationContextSupport<P extends ObserveTop } protected final TopiaMetadataModelSupport getTopiaMetadataModelSupport() { + if (topiaMetadataModelSupport == null) { + topiaMetadataModelSupport = SingletonSupplier.of(this::newMetaModelSupport); + } return topiaMetadataModelSupport.get(); } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/dfc7cad31d57f527f4196d25… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/dfc7cad31d57f527f4196d25… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] optimize dependencies + add license headers
by Tony CHEMIT 23 Dec '20

23 Dec '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: dfc7cad3 by Tony Chemit at 2020-12-23T14:59:44+01:00 optimize dependencies + add license headers - - - - - 3 changed files: - toolkit/maven-plugin/pom.xml - toolkit/maven-plugin/src/main/java/fr/ird/observe/maven/plugins/toolbox/persistence/GenerateEmptyDatabases.java - toolkit/persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContextSupport.java Changes: ===================================== toolkit/maven-plugin/pom.xml ===================================== @@ -93,7 +93,18 @@ <artifactId>auto-service</artifactId> <scope>provided</scope> </dependency> - + <dependency> + <groupId>io.ultreia.java4all.topia</groupId> + <artifactId>service-migration</artifactId> + </dependency> + <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-version</artifactId> + </dependency> + <dependency> + <groupId>io.ultreia.java4all.topia</groupId> + <artifactId>persistence</artifactId> + </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-core</artifactId> ===================================== toolkit/maven-plugin/src/main/java/fr/ird/observe/maven/plugins/toolbox/persistence/GenerateEmptyDatabases.java ===================================== @@ -1,5 +1,27 @@ package fr.ird.observe.maven.plugins.toolbox.persistence; +/*- + * #%L + * ObServe Toolkit :: Maven plugin + * %% + * Copyright (C) 2008 - 2020 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.entities.ObserveTopiaApplicationContextSupport; import fr.ird.observe.entities.ObserveTopiaConfiguration; ===================================== toolkit/persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContextSupport.java ===================================== @@ -1,5 +1,27 @@ package fr.ird.observe.entities; +/*- + * #%L + * ObServe Toolkit :: Persistence + * %% + * Copyright (C) 2008 - 2020 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 fr.ird.observe.dto.referential.ReferentialDto; import io.ultreia.java4all.util.SingletonSupplier; View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/dfc7cad31d57f527f4196d25a… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/dfc7cad31d57f527f4196d25a… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 7 commits: Mis sort property on table
by Tony CHEMIT 23 Dec '20

23 Dec '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 56ec6300 by Tony Chemit at 2020-12-23T09:57:28+01:00 Mis sort property on table - - - - - 222b71c0 by Tony Chemit at 2020-12-23T14:40:06+01:00 Add postInit method on IdDto to do some technical stuff (like init quadrant of coordinates) - - - - - 000ff8d4 by Tony Chemit at 2020-12-23T14:43:15+01:00 Generate call to dto.postInit in copy from entity overrides dto.postInit when needed and then remove code from entities (more entities to delete) - - - - - d302d0bf by Tony Chemit at 2020-12-23T14:44:17+01:00 Generate call to dto.postInit in copy from entity overrides dto.postInit when needed and then remove code from entities (more entities to delete) - - - - - d284c154 by Tony Chemit at 2020-12-23T14:44:57+01:00 remove SectionObsTemplate (no more used) - - - - - 20d387fe by Tony Chemit at 2020-12-23T14:47:02+01:00 Improve TopiaApplicationContext: now the final one just implments and overrides some method, but have no more internal states. everything else was moved to toolkit. And now can easy move GenerateEmptyDatabases runner to toolkit as well (feel more safe to not have this code in runtime module...) - - - - - 580cf759 by Tony Chemit at 2020-12-23T14:47:27+01:00 Clean more unused entities contract and method - - - - - 30 changed files: - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/SamplePartUI.jaxx - models/dto/src/main/java/fr/ird/observe/dto/data/ll/common/TripDto.java - models/dto/src/main/java/fr/ird/observe/dto/data/ll/logbook/ActivityDto.java - models/dto/src/main/java/fr/ird/observe/dto/data/ll/logbook/SampleDto.java - models/persistence/src/main/java/fr/ird/observe/entities/data/ll/logbook/SampleImpl.java → models/dto/src/main/java/fr/ird/observe/dto/data/ll/logbook/SetDto.java - models/dto/src/main/java/fr/ird/observe/dto/data/ll/observation/ActivityDto.java - models/persistence/src/main/java/fr/ird/observe/entities/referential/common/HarbourImpl.java → models/dto/src/main/java/fr/ird/observe/dto/data/ll/observation/SetDto.java - models/dto/src/main/java/fr/ird/observe/dto/data/ps/observation/ActivityDto.java - models/persistence/src/main/java/fr/ird/observe/entities/LastUpdateDateTopiaDao.java → models/dto/src/main/java/fr/ird/observe/dto/referential/common/HarbourDto.java - models/persistence/src/test/java/fr/ird/observe/entities/data/ll/observation/SectionObsTemplateTest.java → models/dto/src/test/java/fr/ird/observe/dto/data/ll/observation/SectionTemplateDtoTest.java - models/persistence/pom.xml - models/persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContext.java - models/persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContextFactory.java - models/persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaPersistenceContext.java - − models/persistence/src/main/java/fr/ird/observe/entities/data/GearFeaturesAware.java - models/persistence/src/main/java/fr/ird/observe/entities/data/ll/common/TripImpl.java - models/persistence/src/main/java/fr/ird/observe/entities/data/ll/logbook/ActivityImpl.java - − models/persistence/src/main/java/fr/ird/observe/entities/data/ll/logbook/SetImpl.java - models/persistence/src/main/java/fr/ird/observe/entities/data/ll/observation/ActivityImpl.java - − models/persistence/src/main/java/fr/ird/observe/entities/data/ll/observation/SectionObsTemplate.java - models/persistence/src/main/java/fr/ird/observe/entities/data/ll/observation/SetImpl.java - models/persistence/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivityImpl.java - − models/persistence/src/main/java/fr/ird/observe/entities/data/ps/observation/FloatingObjectImpl.java - − models/persistence/src/main/java/fr/ird/observe/entities/data/ps/observation/RouteImpl.java - models/persistence/src/main/models/Observe-00-common.model - models/persistence/src/main/models/Observe-20-data-ps-observation.model - models/persistence/src/main/models/Observe-25-data-ps-common.model - models/persistence/src/main/models/Observe-35-data-ll-common.model - models/persistence/src/test/java/fr/ird/observe/entities/spi/ReplicationOrderBuilderTest.java - models/persistence/src/test/java/fr/ird/observe/entities/spi/TopiaMetadataModelPathsTest.java The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/b86789d1a167676e6be98622… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/b86789d1a167676e6be98622… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Revoir le code de gestion des échantillons - Closes #1663
by Tony CHEMIT 22 Dec '20

22 Dec '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: b86789d1 by Tony Chemit at 2020-12-22T23:51:51+01:00 Revoir le code de gestion des échantillons - Closes #1663 - - - - - 24 changed files: - − client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/sample/SampleUIHandlerSupport.java - − client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/sample/SampleUIModelSupport.java - − client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/sample/SampleUISupport.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/sample/actions/ResetSizeMeasureType.java → client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/table/actions/ResetSizeMeasureType.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/sample/actions/ResetWeightMeasureType.java → client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/table/actions/ResetWeightMeasureType.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/sample/actions/SampleUIActionSupport.java → client/datasource/editor/api/src/main/resources/fr/ird/observe/client/datasource/editor/api/content/data/table/CommonSample.jcss - − client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/SampleImplHandler.java - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/SamplePartUI.jaxx - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/SamplePartUIHandler.java - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/SamplePartUIModel.java - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/SamplePartUITableModel.java - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/DiscardedTargetSampleUI.jaxx - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/DiscardedTargetSampleUIHandler.java - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/DiscardedTargetSampleUIModel.java - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/DiscardedTargetSampleUITableModel.java - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/KeptTargetSampleUI.jaxx - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/KeptTargetSampleUIHandler.java - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/KeptTargetSampleUIModel.java - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/KeptTargetSampleUITableModel.java - − client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/NonTargetSampleImplHandler.java - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/NonTargetSampleUI.jaxx - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/NonTargetSampleUIHandler.java - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/NonTargetSampleUIModel.java - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/NonTargetSampleUITableModel.java The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/b86789d1a167676e6be986225… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/b86789d1a167676e6be986225… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 3 commits: Add referential replication order more easy from topia application context - See #1691
by Tony CHEMIT 22 Dec '20

22 Dec '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: d0cee04c by Tony Chemit at 2020-12-22T19:35:16+01:00 Add referential replication order more easy from topia application context - See #1691 - - - - - 17341bb8 by Tony Chemit at 2020-12-22T19:37:31+01:00 Add referential replication order more easy from topia application context - Closes #1691 - - - - - 1acf1864 by Tony Chemit at 2020-12-22T19:37:38+01:00 fix typo - - - - - 8 changed files: - models/persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContext.java - models/persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaEntitySqlModelSupportImpl.java - server/core/src/main/filtered-resources/mapping - services/api/src/main/java/fr/ird/observe/services/service/actions/synchro/referential/legacy/UnidirectionalReferentialSynchronizeEngine.java - services/api/src/main/java/fr/ird/observe/services/service/actions/synchro/referential/legacy/UnidirectionalReferentialSynchronizeLocalService.java - services/api/src/main/java/fr/ird/observe/services/service/actions/synchro/referential/legacy/UnidirectionalReferentialSynchronizeResult.java - services/local-impl/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/legacy/UnidirectionalReferentialSynchronizeLocalServiceLocal.java - services/local-impl/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/ReplaceSqlStatementGenerator.java Changes: ===================================== models/persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContext.java ===================================== @@ -22,6 +22,8 @@ package fr.ird.observe.entities; * #L% */ +import com.google.common.collect.ImmutableSet; +import fr.ird.observe.dto.referential.ReferentialDto; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.hibernate.tool.hbm2ddl.SchemaExport; @@ -165,6 +167,10 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat return getTopiaEntitySqlModelSupport().getSqlModel(); } + public ImmutableSet<Class<? extends ReferentialDto>> referentialForReplicationDto() { + return getTopiaEntitySqlModelSupport().referentialForReplicationDto(); + } + @Override public boolean equals(Object o) { if (this == o) return true; ===================================== models/persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaEntitySqlModelSupportImpl.java ===================================== @@ -22,7 +22,12 @@ package fr.ird.observe.entities; * #L% */ +import com.google.common.collect.ImmutableSet; +import fr.ird.observe.dto.referential.ReferentialDto; import fr.ird.observe.entities.referential.ReferentialEntity; +import fr.ird.observe.spi.PersistenceBusinessProject; +import fr.ird.observe.spi.context.ReferentialDtoEntityContext; +import io.ultreia.java4all.lang.Objects2; import org.nuiton.topia.persistence.metadata.sql.TopiaEntitySqlDescriptor; import org.nuiton.topia.persistence.metadata.sql.TopiaEntitySqlDescriptors; @@ -34,6 +39,8 @@ import org.nuiton.topia.persistence.metadata.sql.TopiaEntitySqlDescriptors; */ public class ObserveTopiaEntitySqlModelSupportImpl extends ObserveTopiaEntitySqlModelSupport { + private ImmutableSet<Class<? extends ReferentialDto>> referentialForReplication; + public TopiaEntitySqlDescriptors dataPsTripForReplication() { return getSqlModel().getReplicationOrderByEntryPointDescriptors(fr.ird.observe.entities.data.ps.common.Trip.class.getName()); } @@ -64,4 +71,21 @@ public class ObserveTopiaEntitySqlModelSupportImpl extends ObserveTopiaEntitySql return getSqlModel().getDescriptor(fqn); } + @SuppressWarnings({"rawtypes", "unchecked"}) + public ImmutableSet<Class<? extends ReferentialDto>> referentialForReplicationDto() { + if (referentialForReplication == null) { + ImmutableSet.Builder<Class<? extends ReferentialDto>> builder = ImmutableSet.builder(); + for (TopiaEntitySqlDescriptor descriptor : getSqlModel().getReplicationOrderWithStandaloneDescriptors()) { + String entityName = descriptor.getTable().getEntityName(); + Class<? extends ReferentialEntity> entityType = Objects2.forName(entityName); + ReferentialDtoEntityContext spi = PersistenceBusinessProject.fromReferentialEntity(entityType); + if (spi != null) { + Class<? extends ReferentialDto> dtoType = spi.toDtoType(); + builder.add(dtoType); + } + } + referentialForReplication = builder.build(); + } + return referentialForReplication; + } } ===================================== server/core/src/main/filtered-resources/mapping ===================================== @@ -81,6 +81,7 @@ POST /api/v1/actions/synchro/referential/legacy/UnidirectionalReferentialSynch GET /api/v1/actions/synchro/referential/legacy/UnidirectionalReferentialSynchronizeLocalService/filterIdsUsedInLocalSource v1.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeLocalServiceRestApi.filterIdsUsedInLocalSource GET /api/v1/actions/synchro/referential/legacy/UnidirectionalReferentialSynchronizeLocalService/generateSqlRequests v1.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeLocalServiceRestApi.generateSqlRequests GET /api/v1/actions/synchro/referential/legacy/UnidirectionalReferentialSynchronizeLocalService/getLocalSourceReferentialToDelete v1.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeLocalServiceRestApi.getLocalSourceReferentialToDelete +GET /api/v1/actions/synchro/referential/legacy/UnidirectionalReferentialSynchronizeLocalService/referentialReplicationOrder v1.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeLocalServiceRestApi.referentialReplicationOrder POST /api/v1/actions/synchro/referential/legacy/UnidirectionalReferentialSynchronizeLocalService/updateLastUpdateDates v1.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeLocalServiceRestApi.updateLastUpdateDates POST /api/v1/actions/synchro/referential/ng/ReferentialSynchronizeService/executeSqlListRequest v1.actions.synchro.referential.ng.ReferentialSynchronizeServiceRestApi.executeSqlListRequest POST /api/v1/actions/synchro/referential/ng/ReferentialSynchronizeService/produceSqlListRequest v1.actions.synchro.referential.ng.ReferentialSynchronizeServiceRestApi.produceSqlListRequest ===================================== services/api/src/main/java/fr/ird/observe/services/service/actions/synchro/referential/legacy/UnidirectionalReferentialSynchronizeEngine.java ===================================== @@ -78,6 +78,8 @@ public class UnidirectionalReferentialSynchronizeEngine { .addAll(rightDiffStates.keySet()) .build(); + ImmutableSet<Class<? extends ReferentialDto>> replicationOrder = localService.referentialReplicationOrder(); + ImmutableSet.Builder<UnidirectionalReferentialSynchronizeRequest.Builder<?>> referentialSynchronizeRequestBuilders = ImmutableSet.builder(); UnidirectionalReferentialSynchronizeCallbackRequests callbackRequests = new UnidirectionalReferentialSynchronizeCallbackRequests(); @@ -86,7 +88,7 @@ public class UnidirectionalReferentialSynchronizeEngine { ObserveBusinessProject businessProject = ObserveBusinessProject.get(); - for (Class<? extends ReferentialDto> dtoType : businessProject.getReferentialTypes()) { + for (Class<? extends ReferentialDto> dtoType : replicationOrder) { if (types.contains(dtoType)) { @SuppressWarnings("rawtypes") DtoReferenceDefinition referentialDefinition = businessProject.getOptionalReferenceDefinition(dtoType).orElseThrow(IllegalStateException::new); @@ -141,7 +143,7 @@ public class UnidirectionalReferentialSynchronizeEngine { result.flushRequest(referentialSynchronizeRequest); - Set<String> generatedSqlRequests = localService.generateSqlRequests(referentialSynchronizeRequest); + List<String> generatedSqlRequests = localService.generateSqlRequests(referentialSynchronizeRequest); for (String sqlStatement : generatedSqlRequests) { if (sqlStatement.startsWith("INSERT")) { ===================================== services/api/src/main/java/fr/ird/observe/services/service/actions/synchro/referential/legacy/UnidirectionalReferentialSynchronizeLocalService.java ===================================== @@ -22,6 +22,7 @@ package fr.ird.observe.services.service.actions.synchro.referential.legacy; * #L% */ +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import fr.ird.observe.dto.reference.ReferentialDtoReference; import fr.ird.observe.dto.reference.ReferentialDtoReferenceSet; @@ -43,6 +44,14 @@ import io.ultreia.java4all.http.spi.Post; */ public interface UnidirectionalReferentialSynchronizeLocalService extends ObserveService { + /** + * @return the replication order to insert data + * @since 8.0.2 + */ + @MethodCredential(Permission.READ_REFERENTIAL) + @Get + ImmutableSet<Class<? extends ReferentialDto>> referentialReplicationOrder(); + /** * Pour un référentiel d'un type donné (son nom est donné), détecte les référentiels dont * les identifiants sont passés en paramètres qui sont réellement utilisés dans la source locale. @@ -73,16 +82,16 @@ public interface UnidirectionalReferentialSynchronizeLocalService extends Observ * * @param <D> type des référentiels à traiter * @param request la demande des actions à produire pour un référentiel donné - * @return l'ensemble des requètes sql à appliquer. + * @return l'ensemble des requêtes sql à appliquer. */ @MethodCredential(Permission.READ_REFERENTIAL) @Get - <D extends ReferentialDto> ImmutableSet<String> generateSqlRequests(UnidirectionalReferentialSynchronizeRequest<D> request); + <D extends ReferentialDto> ImmutableList<String> generateSqlRequests(UnidirectionalReferentialSynchronizeRequest<D> request); /** - * Pour appliquer les requètes sql de mise à jour du réferentiel. + * Pour appliquer les requêtes sql de mise à jour du référentiel. * - * @param sqlRequests les requètes sql à appliquer + * @param sqlRequests les requêtes sql à appliquer */ @MethodCredential(Permission.READ_REFERENTIAL) //FIXME::Security Il faut introduire une nouvelle permission EditReferentialPermission et ici bien utiliser WriteReferentialPermission ===================================== services/api/src/main/java/fr/ird/observe/services/service/actions/synchro/referential/legacy/UnidirectionalReferentialSynchronizeResult.java ===================================== @@ -23,14 +23,12 @@ package fr.ird.observe.services.service.actions.synchro.referential.legacy; */ import com.google.common.collect.ArrayListMultimap; -import com.google.common.collect.Multimap; import fr.ird.observe.dto.ObserveDto; import fr.ird.observe.dto.referential.ReferentialDto; import org.apache.commons.lang3.tuple.Pair; -import java.util.Collection; import java.util.LinkedHashSet; -import java.util.Map; +import java.util.List; import java.util.Set; /** @@ -44,10 +42,10 @@ import java.util.Set; public class UnidirectionalReferentialSynchronizeResult implements ObserveDto { private final Set<Class<? extends ReferentialDto>> referentialNames; - private final Multimap<Class<? extends ReferentialDto>, String> referentialAdded; - private final Multimap<Class<? extends ReferentialDto>, String> referentialUpdated; - private final Multimap<Class<? extends ReferentialDto>, Pair<String, String>> referentialReplaced; - private final Multimap<Class<? extends ReferentialDto>, String> referentialRemoved; + private final ArrayListMultimap<Class<? extends ReferentialDto>, String> referentialAdded; + private final ArrayListMultimap<Class<? extends ReferentialDto>, String> referentialUpdated; + private final ArrayListMultimap<Class<? extends ReferentialDto>, Pair<String, String>> referentialReplaced; + private final ArrayListMultimap<Class<? extends ReferentialDto>, String> referentialRemoved; public UnidirectionalReferentialSynchronizeResult() { this.referentialNames = new LinkedHashSet<>(); @@ -65,58 +63,36 @@ public class UnidirectionalReferentialSynchronizeResult implements ObserveDto { return referentialNames; } - public Collection<String> getReferentialAdded(Class<? extends ReferentialDto> referentialName) { + public List<String> getReferentialAdded(Class<? extends ReferentialDto> referentialName) { return referentialAdded.get(referentialName); } - public Collection<String> getReferentialUpdated(Class<? extends ReferentialDto> referentialName) { + public List<String> getReferentialUpdated(Class<? extends ReferentialDto> referentialName) { return referentialUpdated.get(referentialName); } - public Collection<Pair<String, String>> getReferentialReplaced(Class<? extends ReferentialDto> referentialName) { + public List<Pair<String, String>> getReferentialReplaced(Class<? extends ReferentialDto> referentialName) { return referentialReplaced.get(referentialName); } - public Collection<String> getReferentialRemoved(Class<? extends ReferentialDto> referentialName) { + public List<String> getReferentialRemoved(Class<? extends ReferentialDto> referentialName) { return referentialRemoved.get(referentialName); } void flushRequest(UnidirectionalReferentialSynchronizeRequest<?> referentialSynchronizeRequest) { - Class<? extends ReferentialDto> referentialName = referentialSynchronizeRequest.getReferentialName(); - if (referentialSynchronizeRequest.withReferentialToAdd()) { - - for (ReferentialDto referentialDto : referentialSynchronizeRequest.getReferentialToAdd()) { - addReferentialAdded(referentialName, referentialDto.getId()); - } - + referentialSynchronizeRequest.getReferentialToAdd().forEach(referentialDto -> addReferentialAdded(referentialName, referentialDto.getId())); } - if (referentialSynchronizeRequest.withReferentialToUpdate()) { - - for (ReferentialDto referentialDto : referentialSynchronizeRequest.getReferentialToUpdate()) { - addReferentialUpdated(referentialName, referentialDto.getId()); - } - + referentialSynchronizeRequest.getReferentialToUpdate().forEach(referentialDto -> addReferentialUpdated(referentialName, referentialDto.getId())); } - if (referentialSynchronizeRequest.withReferentialToRemove()) { - - for (String id : referentialSynchronizeRequest.getReferentialToRemove()) { - addReferentialRemoved(referentialName, id); - } - + referentialSynchronizeRequest.getReferentialToRemove().forEach(id -> addReferentialRemoved(referentialName, id)); } - if (referentialSynchronizeRequest.withReferentialToReplace()) { - - for (Map.Entry<String, String> entry : referentialSynchronizeRequest.getReferentialToReplace().entrySet()) { - addReferentialReplaced(referentialName, entry.getKey(), entry.getValue()); - } - + referentialSynchronizeRequest.getReferentialToReplace().forEach((key, value) -> addReferentialReplaced(referentialName, key, value)); } - } private void addReferentialAdded(Class<? extends ReferentialDto> referentialName, String id) { ===================================== services/local-impl/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/legacy/UnidirectionalReferentialSynchronizeLocalServiceLocal.java ===================================== @@ -32,7 +32,6 @@ import fr.ird.observe.entities.ObserveEntityEnum; import fr.ird.observe.entities.referential.ReferentialEntity; import fr.ird.observe.services.local.ObserveServiceContextLocal; import fr.ird.observe.services.local.service.ObserveServiceLocal; -import fr.ird.observe.services.local.service.actions.synchro.referential.sql.ApplySqlRequestWork; import fr.ird.observe.services.local.service.actions.synchro.referential.sql.DeleteSqlStatementGenerator; import fr.ird.observe.services.local.service.actions.synchro.referential.sql.InsertSqlStatementGenerator; import fr.ird.observe.services.local.service.actions.synchro.referential.sql.ReplaceSqlStatementGenerator; @@ -45,12 +44,18 @@ import fr.ird.observe.services.service.usage.DtoUsageCountResult; import fr.ird.observe.services.service.usage.UsageService; import fr.ird.observe.spi.ObservePersistenceBusinessProject; import fr.ird.observe.spi.context.ReferentialDtoEntityContext; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.metadata.TopiaMetadataEntity; import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; -import org.nuiton.topia.persistence.support.TopiaSqlWork; +import org.nuiton.topia.persistence.script.SqlScriptReader; +import org.nuiton.topia.persistence.script.TopiaSqlScript; +import java.io.IOException; +import java.nio.file.Path; import java.util.LinkedHashSet; +import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; @@ -62,6 +67,7 @@ import java.util.Set; * @since 5.0 */ public class UnidirectionalReferentialSynchronizeLocalServiceLocal extends ObserveServiceLocal implements UnidirectionalReferentialSynchronizeLocalService { + private static final Logger log = LogManager.getLogger(UnidirectionalReferentialSynchronizeLocalServiceLocal.class); private LastUpdateDateService lastUpdateDateService; private UsageService usageService; @@ -73,6 +79,11 @@ public class UnidirectionalReferentialSynchronizeLocalServiceLocal extends Obser usageService = serviceContext.newService(UsageService.class); } + @Override + public ImmutableSet<Class<? extends ReferentialDto>> referentialReplicationOrder() { + return serviceContext.getTopiaApplicationContext().referentialForReplicationDto(); + } + @Override public <D extends ReferentialDto> ImmutableSet<String> filterIdsUsedInLocalSource(Class<D> dtoType, ImmutableSet<String> ids) { Set<String> result = new LinkedHashSet<>(); @@ -89,13 +100,12 @@ public class UnidirectionalReferentialSynchronizeLocalServiceLocal extends Obser public <D extends ReferentialDto, R extends ReferentialDtoReference> ReferentialDtoReferenceSet<R> getLocalSourceReferentialToDelete(Class<D> dtoType, ImmutableSet<String> ids) { ReferentialDtoEntityContext<D, R, ?, ?> modelContext = ObservePersistenceBusinessProject.fromReferentialDto(dtoType); Class<? extends ReferentialEntity<D, R>> entityType = modelContext.toEntityType(); - Class<R> referenceType = modelContext.toReferenceType(); - return getLocalSourceReferentialToDelete0(entityType, referenceType, ids); + return getLocalSourceReferentialToDelete0(entityType, ids); } @Override - public <D extends ReferentialDto> ImmutableSet<String> generateSqlRequests(UnidirectionalReferentialSynchronizeRequest<D> request) { - Set<String> result = new LinkedHashSet<>(); + public <D extends ReferentialDto> ImmutableList<String> generateSqlRequests(UnidirectionalReferentialSynchronizeRequest<D> request) { + List<String> result = new LinkedList<>(); Class<D> dtoType = request.getReferentialName(); Class<ReferentialEntity<D, ?>> entityType = ObservePersistenceBusinessProject.fromReferentialDtoWeak(dtoType).toEntityType(); ObserveEntityEnum entityEnum = ObserveEntityEnum.valueOf(entityType); @@ -137,13 +147,23 @@ public class UnidirectionalReferentialSynchronizeLocalServiceLocal extends Obser result.addAll(sql); } } - return ImmutableSet.copyOf(result); + return ImmutableList.copyOf(result); } @Override public void applySqlRequests(ImmutableSet<String> sqlRequests) { - TopiaSqlWork applySqlWork = new ApplySqlRequestWork(sqlRequests); - getTopiaPersistenceContext().getSqlSupport().doSqlWork(applySqlWork); + + Path scriptPath = serviceContext.getTemporaryDirectoryRoot().toPath().resolve("apply-UnidirectionalReferentialSynchronize-" + serviceContext.now().getTime() + "-sql"); + + TopiaSqlScript topiaSqlScript = TopiaSqlScript.of(scriptPath); + topiaSqlScript.setLocation(() -> SqlScriptReader.of(sqlRequests)); + try { + topiaSqlScript.copy(scriptPath); + } catch (IOException e) { + throw new IllegalStateException("Can't write script at: " + scriptPath, e); + } + log.info(String.format("Will execute script (with %d statement(s): %s", sqlRequests.size(), scriptPath)); + getTopiaPersistenceContext().executeSqlScript(topiaSqlScript); } @Override @@ -157,7 +177,7 @@ public class UnidirectionalReferentialSynchronizeLocalServiceLocal extends Obser return usageCount.getCount().values().stream().reduce(Long::sum).orElse(0L); } - private <E extends ReferentialEntity<D, R>, D extends ReferentialDto, R extends ReferentialDtoReference> ReferentialDtoReferenceSet<R> getLocalSourceReferentialToDelete0(Class<E> entityType, Class<R> referenceType, ImmutableSet<String> ids) { + private <E extends ReferentialEntity<D, R>, D extends ReferentialDto, R extends ReferentialDtoReference> ReferentialDtoReferenceSet<R> getLocalSourceReferentialToDelete0(Class<E> entityType, ImmutableSet<String> ids) { TopiaDao<E> dao = getTopiaPersistenceContext().getDao(entityType); List<E> entities = dao.forTopiaIdIn(ids).findAll(); ReferentialDtoEntityContext<D, R, E, ?> spi = ObservePersistenceBusinessProject.fromReferentialEntity(entityType); ===================================== services/local-impl/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/ReplaceSqlStatementGenerator.java ===================================== @@ -70,7 +70,7 @@ public class ReplaceSqlStatementGenerator { for (TopiaMetadataAssociation replacementStruct : associations) { Class<? extends TopiaEntity> entityType = ObserveEntityEnum.valueOf(replacementStruct.getOwner().getType()).getContract(); if (ReferentialEntity.class.isAssignableFrom(entityType)) { - // do not update referentials associations (see https://gitlab.com/ultreiaio/ird-observe/issues/1065) + // do not update referential associations (see https://gitlab.com/ultreiaio/ird-observe/issues/1065) continue; } String sql = SqlStatements.generateAssociationUpdateStatement(replacementStruct, sourceId, replacementId); View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/5ffad0061b1ace8710dd1c0a… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/5ffad0061b1ace8710dd1c0a… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Ajouter un onglet cartographie dans la configuration - Closes #1689
by Tony CHEMIT 22 Dec '20

22 Dec '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 5ffad006 by Tony Chemit at 2020-12-22T16:26:21+01:00 Ajouter un onglet cartographie dans la configuration - Closes #1689 - - - - - 6 changed files: - client/core/src/main/i18n/getters/java.getter - client/core/src/main/java/fr/ird/observe/client/main/body/ClientConfigUI.java - client/datasource/editor/api/src/main/i18n/getters/jaxx.getter - client/i18n/src/main/i18n/translations/observe_en_GB.properties - client/i18n/src/main/i18n/translations/observe_es_ES.properties - client/i18n/src/main/i18n/translations/observe_fr_FR.properties Changes: ===================================== client/core/src/main/i18n/getters/java.getter ===================================== @@ -7,6 +7,8 @@ observe.config.category.application observe.config.category.application.description observe.config.category.expert observe.config.category.expert.description +observe.config.category.map +observe.config.category.map.description observe.config.category.observation observe.config.category.observation.description observe.config.category.speciesList.longline ===================================== client/core/src/main/java/fr/ird/observe/client/main/body/ClientConfigUI.java ===================================== @@ -107,7 +107,7 @@ public class ClientConfigUI extends JXTitledPanel { private final SpeciesListsTableCellRenderer speciesListsTableCellRenderer; protected ObserveConfigUIBuilder(ClientConfig config, - ObserveUICallbackManager uiCallbackManager, SpeciesListTableCellEditor speciesListTableCellEditor, + SpeciesListTableCellEditor speciesListTableCellEditor, SpeciesListsTableCellRenderer speciesListsTableCellRenderer) { super(config, config.get(), config.get().getUserConfigFile()); this.speciesListTableCellEditor = speciesListTableCellEditor; @@ -189,7 +189,6 @@ public class ClientConfigUI extends JXTitledPanel { @Override public void setValue(Object value) { if (value instanceof String) { - value = SpeciesListTableCellEditor.this.entityMap.get(String.valueOf(value)); } component.setSelectedItem((SpeciesListReference) value); @@ -197,10 +196,8 @@ public class ClientConfigUI extends JXTitledPanel { @Override public Object getCellEditorValue() { - String result = null; SpeciesListReference selectedItem = component.getModel().getSelectedItem(); - result = selectedItem.getId(); - return result; + return selectedItem.getId(); } @Override @@ -216,15 +213,12 @@ public class ClientConfigUI extends JXTitledPanel { public boolean stopCellEditing() { if (component.getConfig().isEditable()) { // Commit edited value. - component.getCombobox().actionPerformed( - new ActionEvent(SpeciesListTableCellEditor.this, 0, "")); + component.getCombobox().actionPerformed(new ActionEvent(SpeciesListTableCellEditor.this, 0, "")); } return super.stopCellEditing(); } }; - } - } private void quit() { @@ -232,24 +226,17 @@ public class ClientConfigUI extends JXTitledPanel { } private ObserveConfigUIBuilder buildUI(ObserveUICallbackManager uiCallbackManager, ClientConfig config, ObserveSwingDataSource dataSource, DecoratorService decoratorService) { - SpeciesListTableCellEditor editor = null; SpeciesListsTableCellRenderer renderer = null; - if (dataSource != null && dataSource.isOpen()) { - Set<SpeciesListReference> speciesLists = dataSource.getReferentialReferences(SpeciesListReference.class); - Map<String, SpeciesListReference> speciesListMap = ReferentialDtoReference.splitById(speciesLists); - ReferentialReferenceDecorator<SpeciesListReference> referenceDecorator = decoratorService.getReferentialReferenceDecorator(SpeciesListReference.class); - editor = new SpeciesListTableCellEditor(speciesLists, speciesListMap, referenceDecorator); renderer = new SpeciesListsTableCellRenderer(speciesListMap, referenceDecorator); - } - ObserveConfigUIBuilder helper = new ObserveConfigUIBuilder(config, uiCallbackManager, editor, renderer); + ObserveConfigUIBuilder helper = new ObserveConfigUIBuilder(config, editor, renderer); uiCallbackManager.getCallbacks().forEach(helper::registerCallBack); @@ -264,6 +251,7 @@ public class ClientConfigUI extends JXTitledPanel { addApplicationOptions(helper); addUiOptions(helper); addNavigationOptions(helper); + addMapOptions(helper); addDataOptions(helper, dataSource); addExpertOptions(helper); addTechnicalOptions(helper); @@ -304,6 +292,13 @@ public class ClientConfigUI extends JXTitledPanel { helper.addOption(ClientConfigOption.DEFAULT_DB_MODE); helper.addOption(ClientConfigOption.DEFAULT_CREATION_MODE); helper.addOption(ClientConfigOption.STORE_REMOTE_STORAGE); + } + + private void addMapOptions(ObserveConfigUIBuilder helper) { + + helper.addCategory(n("observe.config.category.map"), + n("observe.config.category.map.description"), + "ui"); helper.addOption(ClientConfigOption.MAP_BACKGROUND_COLOR); ClientConfig.MAP_LAYERS.forEach(helper::addOption); ===================================== client/datasource/editor/api/src/main/i18n/getters/jaxx.getter ===================================== @@ -69,4 +69,3 @@ observe.ui.usage.action.shouldReplace observe.ui.usage.replaceTitle observe.ui.usage.usageTitle observe.ui.view.message -observe.ui.view.navigation ===================================== client/i18n/src/main/i18n/translations/observe_en_GB.properties ===================================== @@ -39,6 +39,8 @@ observe.config.category.application=Application observe.config.category.application.description=Application options observe.config.category.expert=Expert observe.config.category.expert.description=Export mode options +observe.config.category.map=Map +observe.config.category.map.description=Maps configuration observe.config.category.observation=Qualification of observations observe.config.category.observation.description=Qualification of observations observe.config.category.speciesList.longline=Species lists for longline @@ -1689,6 +1691,5 @@ observe.ui.usage.action.shouldReplace=Remplace desactivated referential ? observe.ui.usage.replaceTitle=Replacement object observe.ui.usage.usageTitle=Founded references observe.ui.view.message=Messages -observe.ui.view.navigation=Navigation observe.warning.nimbus.landf=Could not use Look and Fell Nimbus, need at least version 1.6u10 of java. observe.warning.no.ui=No gui environment found ===================================== client/i18n/src/main/i18n/translations/observe_es_ES.properties ===================================== @@ -39,6 +39,8 @@ observe.config.category.application=Aplicación observe.config.category.application.description=Opciones de la aplicación observe.config.category.expert=Experto observe.config.category.expert.description=Opciones de modo experto +observe.config.category.map=Mapa +observe.config.category.map.description=Mapa Configuración observe.config.category.observation=Calificación de las observaciones observe.config.category.observation.description=Gestion de los indicadores de calificación de los programas observe.config.category.speciesList.longline=Configuración de las listas de especies (Palangre) @@ -1689,6 +1691,5 @@ observe.ui.usage.action.shouldReplace=Reemplaza referencial desactivado? observe.ui.usage.replaceTitle=Objeto de sustitución observe.ui.usage.usageTitle=Referencias encontradas observe.ui.view.message=Mensajes -observe.ui.view.navigation=Navegación observe.warning.nimbus.landf=El look and Feel Nimbus no fue encontrado, se necesita como mínimo la versión 1.6 ó 10 de java. observe.warning.no.ui=Ninguno entorno gráfico fue detectado ===================================== client/i18n/src/main/i18n/translations/observe_fr_FR.properties ===================================== @@ -39,6 +39,8 @@ observe.config.category.application=Application observe.config.category.application.description=Options applicatives observe.config.category.expert=Avancé observe.config.category.expert.description=Configuration avancée +observe.config.category.map=Cartographie +observe.config.category.map.description=Configuration de la cartographie observe.config.category.observation=Qualification des observations observe.config.category.observation.description=Gestion des indicateurs de qualification des programmes observe.config.category.speciesList.longline=Configuration des listes d'espèces (Palangre) @@ -1689,6 +1691,5 @@ observe.ui.usage.action.shouldReplace=Remplacer le référentiel désactivé ? observe.ui.usage.replaceTitle=Objet de remplacement observe.ui.usage.usageTitle=Références trouvées observe.ui.view.message=Messages -observe.ui.view.navigation=Navigation observe.warning.nimbus.landf=Le look and Feel Nimbus n'a pas été trouvé, il faut au moins la version 1.6u10 de java. observe.warning.no.ui=Aucun environnement graphique détecté View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/5ffad0061b1ace8710dd1c0a0… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/5ffad0061b1ace8710dd1c0a0… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 4 commits: La 1ère liste déroulante de chaque form s'ouvre toute seule à l'affichage d'un...
by Tony CHEMIT 22 Dec '20

22 Dec '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 6dd42c94 by Tony Chemit at 2020-12-22T15:48:45+01:00 La 1ère liste déroulante de chaque form s&#39;ouvre toute seule à l&#39;affichage d&#39;un onglet - Closes #1684 - - - - - fdc62d8b by Tony Chemit at 2020-12-22T15:51:41+01:00 Open API - - - - - bdf480bd by Tony Chemit at 2020-12-22T15:52:00+01:00 Open API - - - - - cedaee45 by Tony Chemit at 2020-12-22T16:13:31+01:00 À la sortie de la configuration (avec un appel de rechargement d&#39;interface graphique), la base est masquée et innacessible - Closes #1690 - - - - - 9 changed files: - client/core/src/main/java/fr/ird/observe/client/datasource/api/ObserveSwingDataSource.java - client/core/src/main/java/fr/ird/observe/client/main/body/MainUIBodyContent.java - client/core/src/main/java/fr/ird/observe/client/main/body/MainUIBodyContentManager.java - client/core/src/main/java/fr/ird/observe/client/main/callback/ReloadUiCallback.java - client/core/src/main/java/fr/ird/observe/client/util/init/DefaultUIInitializer.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/DataSourceEditorBodyContent.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/ContentUIHandler.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/ContentUIInitializer.java - pom.xml Changes: ===================================== client/core/src/main/java/fr/ird/observe/client/datasource/api/ObserveSwingDataSource.java ===================================== @@ -443,7 +443,7 @@ public class ObserveSwingDataSource extends ObserveServicesProviderSupport imple listenerList.remove(ObserveSwingDataSourceListener.class, listener); } - private ObserveSwingDataSourceListener[] getObserveSwingDataSourceListener() { + public ObserveSwingDataSourceListener[] getObserveSwingDataSourceListener() { return listenerList.getListeners(ObserveSwingDataSourceListener.class); } ===================================== client/core/src/main/java/fr/ird/observe/client/main/body/MainUIBodyContent.java ===================================== @@ -22,6 +22,7 @@ package fr.ird.observe.client.main.body; * #L% */ +import fr.ird.observe.client.ClientUIContext; import fr.ird.observe.client.main.ObserveMainUI; import io.ultreia.java4all.util.SingletonSupplier; @@ -120,6 +121,15 @@ public abstract class MainUIBodyContent<B extends JComponent> implements Supplie supplier.clear(); } + /** + * when ui was recreated, make what you can to reload this content. + * @param clientUIContext new client context + * @param mainUI new main ui + */ + public void reloadContent(ClientUIContext clientUIContext, ObserveMainUI mainUI) { + + } + public void setSupplier(SingletonSupplier<B> supplier) { this.supplier = Objects.requireNonNull(supplier); } ===================================== client/core/src/main/java/fr/ird/observe/client/main/body/MainUIBodyContentManager.java ===================================== @@ -195,4 +195,8 @@ public class MainUIBodyContentManager extends AbstractJavaBean { changeCurrentBody(previousBody); } } + + public MainUIBodyContent<?> getPreviousBody() { + return previousBody; + } } ===================================== client/core/src/main/java/fr/ird/observe/client/main/callback/ReloadUiCallback.java ===================================== @@ -26,15 +26,19 @@ import com.google.auto.service.AutoService; import fr.ird.observe.client.ClientUIContext; import fr.ird.observe.client.configuration.ClientConfig; import fr.ird.observe.client.configuration.WithClientConfig; +import fr.ird.observe.client.datasource.api.ObserveSwingDataSource; import fr.ird.observe.client.main.ObserveMainUI; import fr.ird.observe.client.main.body.ClientConfigUI; +import fr.ird.observe.client.main.body.MainUIBodyContent; import fr.ird.observe.client.main.body.NoBodyContentComponent; +import fr.ird.observe.client.util.UIHelper; import io.ultreia.java4all.application.context.ApplicationContext; import org.nuiton.jaxx.runtime.swing.SwingUtil; import javax.swing.Icon; import javax.swing.JComponent; import java.util.Objects; +import java.util.Optional; import static io.ultreia.java4all.i18n.I18n.n; @@ -74,21 +78,33 @@ public class ReloadUiCallback implements ObserveUICallback, WithClientConfig { //FIXME:BodyContent, cela doit être délégué au body content concerné Class<? extends JComponent> bodyContent = NoBodyContentComponent.class; + MainUIBodyContent<?> previousBody = null; if (ui != null) { // Keep a reference on ui instance since it will be reset in close method // FIXME Should use a closing state in application to improve this ObserveMainUI ui = this.ui; - bodyContent = ui.getMainUIBodyContentManager().getCurrentBodyType(); - if (ClientConfigUI.class.equals(bodyContent)) { - bodyContent = NoBodyContentComponent.class; + previousBody = ui.getMainUIBodyContentManager().getPreviousBody(); + Optional<ObserveSwingDataSource> mainDataSource = clientUIContext.getDataSourcesManager().getOptionalMainDataSource(); + if (mainDataSource.isPresent() && previousBody != null) { + bodyContent = previousBody.type(); + } else { + previousBody = null; + bodyContent = ui.getMainUIBodyContentManager().getCurrentBodyType(); + if (ClientConfigUI.class.equals(bodyContent)) { + bodyContent = NoBodyContentComponent.class; + } } ui.dispose(); System.runFinalization(); } ui = clientUIContext.initUI(rootContext, config); - - ui.changeBodyContent(bodyContent); + if (previousBody != null) { + MainUIBodyContent<? extends JComponent> body = ui.getMainUIBodyContentManager().getBody(bodyContent); + body.reloadContent(clientUIContext, ui); + } else { + ui.changeBodyContent(bodyContent); + } // show ui clientUIContext.setMainUIVisible(ui, true); ===================================== client/core/src/main/java/fr/ird/observe/client/util/init/DefaultUIInitializer.java ===================================== @@ -166,6 +166,7 @@ public class DefaultUIInitializer<UI extends JComponent & JAXXObject> extends UI initializerContext.checkFirstPass(); editor.getCombobox().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_F4, 0), "none"); editor.setI18nPrefix("observe.common."); + editor.setAutoSelectContent(true); editor.setMinimumSize(new Dimension(0, 24)); if (StringUtils.isEmpty(editor.getConfig().getProperty())) { editor.setProperty(editor.getName()); ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/DataSourceEditorBodyContent.java ===================================== @@ -23,11 +23,13 @@ package fr.ird.observe.client.datasource.editor.api; */ import com.google.auto.service.AutoService; +import fr.ird.observe.client.ClientUIContext; import fr.ird.observe.client.WithClientUIContext; import fr.ird.observe.client.configuration.ClientConfig; import fr.ird.observe.client.configuration.WithClientConfig; import fr.ird.observe.client.constants.DbMode; import fr.ird.observe.client.datasource.api.ObserveSwingDataSource; +import fr.ird.observe.client.datasource.api.event.ObserveSwingDataSourceListener; import fr.ird.observe.client.datasource.editor.api.menu.DataSourceEditorMenu; import fr.ird.observe.client.datasource.editor.api.menu.DataSourceEditorNavigationMenu; import fr.ird.observe.client.datasource.editor.api.menu.actions.ChangeStorageAction; @@ -177,6 +179,28 @@ public class DataSourceEditorBodyContent extends MainUIBodyContent<DataSourceEdi } } + @Override + public void reloadContent(ClientUIContext clientUIContext, ObserveMainUI mainUI) { + ObserveSwingDataSource mainDataSource = clientUIContext.getDataSourcesManager().getMainDataSource(); + if (mainDataSource.isOpen()) { + // need to remove any old listeners + for (ObserveSwingDataSourceListener listener : mainDataSource.getObserveSwingDataSourceListener()) { + if (listener instanceof MainDataSourceListener) { + log.info("Remove obsolete listener: "+listener); + mainDataSource.removeObserveSwingDataSourceListener(listener); + } + } + } + prepareMainStorage(mainDataSource); + try { + setDataSource(mainDataSource); + mainUI.changeBodyContent(DataSourceEditor.class); + } catch (Exception e) { + UIHelper.handlingError(e); + mainUI.removeBodyContent(); + } + } + public void doChangeStorage(Set<DbMode> dbModes, String title) { ChangeStorageAction action = new ChangeStorageAction(dbModes, title); action.run(); ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/ContentUIHandler.java ===================================== @@ -48,7 +48,6 @@ import fr.ird.observe.dto.form.Form; import fr.ird.observe.dto.reference.ReferentialDtoReference; import fr.ird.observe.services.ObserveServicesProvider; import fr.ird.observe.services.service.ObserveService; -import io.ultreia.java4all.jaxx.widgets.combobox.JaxxComboBox; import io.ultreia.java4all.util.SingletonSupplier; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -61,10 +60,8 @@ import javax.swing.Icon; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JMenuItem; -import javax.swing.JTextField; import javax.swing.SwingUtilities; import java.awt.Component; -import java.awt.Container; import java.awt.FocusTraversalPolicy; import java.awt.KeyboardFocusManager; import java.beans.PropertyChangeListener; @@ -445,30 +442,14 @@ public abstract class ContentUIHandler<U extends ContentUI> implements ObserveSe focusAdjusting = true; try { getModel().setFormFocusOwner(newValue); - //FIXME on contentTable should also check we are in entry form if (getDataSourceEditor().getModel().isFocusOnNavigation()) { - return; - } - if ("ComboBox.textField".equals(newValue.getName())) { - if (!getModel().getStates().isReadingMode()) { - // we are on jaxx combo box, let's open popup - Container parent = newValue.getParent(); - if (parent!=null) { - parent = parent.getParent(); - if (parent!=null) { - JaxxComboBox<?> combo = (JaxxComboBox<?>) parent; - log.debug(String.format("On a JaxxComboBox: %s on edit mode, will open popup", combo.getName())); - ((JTextField)newValue).setCaretPosition(0); - combo.getCombobox().setPopupVisible(true); - } - } - } + //FIXME on contentTable should also check we are in entry form } } finally { focusAdjusting = false; } } else { - log.debug(String.format("%sCan't set focus owner: %s", prefix,newValue)); + log.debug(String.format("%sCan't set focus owner: %s", prefix, newValue)); } } ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/ContentUIInitializer.java ===================================== @@ -309,6 +309,7 @@ public class ContentUIInitializer<UI extends ContentUI> extends UIInitializerSup editor.getCombobox().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_F4, 0), "none"); @SuppressWarnings({"RawTypeCanBeGeneric", "rawtypes"}) Class referenceType = editor.getBeanType(); editor.setI18nPrefix("observe.common."); + editor.setAutoSelectContent(true); editor.setMinimumSize(new Dimension(0, 24)); editor.setShowReset(true); if (StringUtils.isEmpty(editor.getConfig().getProperty())) { ===================================== pom.xml ===================================== @@ -155,7 +155,7 @@ <!-- <lib.version.java4all.topia>1.35</lib.version.java4all.topia>--> <!-- <lib.version.java4all.eugene>3.0-alpha-38</lib.version.java4all.eugene>--> -<!-- <lib.version.java4all.jaxx>3.0-alpha-85</lib.version.java4all.jaxx>--> + <lib.version.java4all.jaxx>3.0-alpha-86</lib.version.java4all.jaxx> <!--<lib.version.java4all.application-context>1.0.3-SNAPSHOT</lib.version.java4all.application-context>--> <!--<lib.version.java4all.application-template>1.0.2-SNAPSHOT</lib.version.java4all.application-template>--> <!--<lib.version.java4all.i18n>4.0-beta-3-SNAPSHOT</lib.version.java4all.i18n>--> View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/c15bb44901049f5e7c1f3f46… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/c15bb44901049f5e7c1f3f46… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 23 commits: realign gearUseFeatures model (should be always exactly the same on both domains)
by Tony CHEMIT 21 Dec '20

21 Dec '20
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 88af34fc by Tony Chemit at 2020-12-20T10:50:13+01:00 realign gearUseFeatures model (should be always exactly the same on both domains) - - - - - 9a7cf35f by Tony Chemit at 2020-12-20T11:47:48+01:00 Add more methods on WithFormula contract (and then remove the entity formula abstract class) - - - - - 7220e32d by Tony Chemit at 2020-12-20T11:49:39+01:00 Fix a relation bad inverse (the main relation was considered as not main by topia) - - - - - 62ef95c0 by Tony Chemit at 2020-12-20T15:32:46+01:00 Generate all missing indexes - See #1683 - - - - - 901d6ab3 by Tony Chemit at 2020-12-20T18:49:39+01:00 Add new test (but still not used to generate schema) - - - - - 66b4ed2e by Tony Chemit at 2020-12-20T18:50:12+01:00 Open API - - - - - 90f7005d by Tony Chemit at 2020-12-20T18:50:26+01:00 add ressource in ExecuteRunnerMojo - - - - - c3d08308 by Tony Chemit at 2020-12-20T18:50:56+01:00 Add a runner to generate schema - - - - - 1df711f7 by Tony Chemit at 2020-12-20T19:13:15+01:00 Il reste quelques optimisations à réaliser sur la couche de persistence - See #1664 - - - - - ba18ad03 by Tony Chemit at 2020-12-21T09:57:40+01:00 Rename full schema scripts - - - - - 778075e6 by Tony Chemit at 2020-12-21T11:51:42+01:00 Introduce create and finalize schema scripts - - - - - fa575825 by Tony Chemit at 2020-12-21T11:52:16+01:00 clean dto code - - - - - febdf613 by Tony Chemit at 2020-12-21T11:52:57+01:00 Introduce digits tagvalue in topia and use it - - - - - 4ef63975 by Tony Chemit at 2020-12-21T12:20:39+01:00 Mise en place du schéma avec les bonnes précisions sur les numériques - - - - - b3cc1c42 by Tony Chemit at 2020-12-21T12:28:51+01:00 Missing dependency - - - - - 71ad2d89 by Tony Chemit at 2020-12-21T12:29:09+01:00 Génération du type précis pour les champs textes - Closes #1687 - - - - - 5a42e519 by Tony Chemit at 2020-12-21T12:57:47+01:00 Rename generated schema script to be usable in migration - - - - - c6ce8204 by Tony Chemit at 2020-12-21T20:56:02+01:00 Fix blog generation for postgres - - - - - bb222cf1 by Tony Chemit at 2020-12-21T21:03:08+01:00 update topia-extension - - - - - 8c3a3635 by Tony Chemit at 2020-12-21T22:12:38+01:00 use last pom - - - - - 174c3bdf by Tony Chemit at 2020-12-21T22:36:15+01:00 fix typo - - - - - a827043d by Tony Chemit at 2020-12-21T22:37:04+01:00 clean entities - - - - - c15bb449 by Tony Chemit at 2020-12-21T22:42:07+01:00 Génération du type précis pour les champs textes - Closes #1687 Il semble manquer des index sur des relations many-to-one (par exemple Tdr → Section) - Closes #1683 Meilleur intégration de la précision sur les champs numériques - Closes #1686 Il reste quelques optimisations à réaliser sur la couche de persistence - See #1664 - - - - - 30 changed files: - models/dto/src/main/java/fr/ird/observe/dto/data/ps/TypeTransmittingBuoyOperation.java - models/persistence/pom.xml - models/persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContext.java - models/persistence/src/main/java/fr/ird/observe/entities/data/ll/observation/SectionObsTemplate.java - models/persistence/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivityImpl.java - models/persistence/src/main/java/fr/ird/observe/entities/data/ps/observation/FloatingObjectImpl.java - models/persistence/src/main/java/fr/ird/observe/entities/data/ps/observation/LengthWeightComputableAware.java - models/persistence/src/main/java/fr/ird/observe/entities/data/ps/observation/NonTargetCatchImpl.java - − models/persistence/src/main/java/fr/ird/observe/entities/data/ps/observation/NonTargetLengthImpl.java - models/persistence/src/main/java/fr/ird/observe/entities/data/ps/observation/SetImpl.java - models/persistence/src/main/java/fr/ird/observe/entities/data/ps/observation/TargetCatchImpl.java - − models/persistence/src/main/java/fr/ird/observe/entities/data/ps/observation/TargetLengthImpl.java - − models/persistence/src/main/java/fr/ird/observe/entities/data/ps/observation/TargetSampleImpl.java - models/persistence/src/main/java/fr/ird/observe/entities/migration/DataSourceMigrationForVersion_8_0.java - − models/persistence/src/main/java/fr/ird/observe/entities/referential/common/AbstractLengthFormulaSupportTopiaDao.java - models/persistence/src/main/java/fr/ird/observe/entities/referential/common/HarbourImpl.java - − models/persistence/src/main/java/fr/ird/observe/entities/referential/common/LengthFormulaSupportImpl.java - models/persistence/src/main/java/fr/ird/observe/entities/referential/common/LengthLengthParameterImpl.java - models/persistence/src/main/java/fr/ird/observe/entities/referential/common/LengthLengthParameterTopiaDao.java - models/persistence/src/main/java/fr/ird/observe/entities/referential/common/LengthWeightParameterImpl.java - models/persistence/src/main/java/fr/ird/observe/entities/referential/common/LengthWeightParameterTopiaDao.java - − models/persistence/src/main/java/fr/ird/observe/entities/referential/common/PersonImpl.java - − models/persistence/src/main/java/fr/ird/observe/entities/referential/common/ProgramImpl.java - − models/persistence/src/main/java/fr/ird/observe/entities/referential/common/SpeciesImpl.java - − models/persistence/src/main/java/fr/ird/observe/entities/referential/common/VesselImpl.java - models/persistence/src/main/java/fr/ird/observe/entities/referential/ps/common/ObjectMaterialImpl.java - + models/persistence/src/main/java/fr/ird/observe/entities/spi/GenerateEmptyDatabases.java - models/persistence/src/main/models/Observe-00-common.model - models/persistence/src/main/models/Observe-01-referential-common.model - models/persistence/src/main/models/Observe-02-referential-ps-common.model The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/b7bd2bc4a5aaf25223ec8409… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/b7bd2bc4a5aaf25223ec8409… You're receiving this email because of your account on gitlab.com.
1 0
0 0
  • ← Newer
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.