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@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/4407da5d08987002d79ef8d09... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/4407da5d08987002d79ef8d09... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT