Observe-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
December 2020
- 1 participants
- 96 discussions
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'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'ouvre toute seule à l'affichage d'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
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
[Git][ultreiaio/ird-observe][develop] 2 commits: debug level for report tests
by Tony CHEMIT 23 Dec '20
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
[Git][ultreiaio/ird-observe][develop] optimize dependencies + add license headers
by Tony CHEMIT 23 Dec '20
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
[Git][ultreiaio/ird-observe][develop] 7 commits: Mis sort property on table
by Tony CHEMIT 23 Dec '20
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
[Git][ultreiaio/ird-observe][develop] Revoir le code de gestion des échantillons - Closes #1663
by Tony CHEMIT 22 Dec '20
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
[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
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
[Git][ultreiaio/ird-observe][develop] Ajouter un onglet cartographie dans la configuration - Closes #1689
by Tony CHEMIT 22 Dec '20
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
[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
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'ouvre toute seule à l'affichage d'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'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
[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
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