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

Keyboard Shortcuts

Thread View

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

Observe-commits

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

September 2019

  • 1 participants
  • 49 discussions
[Git][ultreiaio/ird-observe][develop] 3 commits: do not backup if backup not active in configuration
by Tony CHEMIT 30 Sep '19

30 Sep '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: c5187e0e by tchemit at 2019-09-30T10:15:35Z do not backup if backup not active in configuration - - - - - cc75c694 by tchemit at 2019-09-30T11:50:07Z move ObserveResourceManager to client-configuration module and rename it. - - - - - 56d9e19d by tchemit at 2019-09-30T12:55:32Z Introduce client-admin module :) - - - - - 30 changed files: - client-core/.mvn/i18n/parse-java-enumerations → client-admin/.mvn/add-geotools-repository - + client-admin/.mvn/i18n/parse-java - + client-admin/.mvn/i18n/parse-java-enumerations - + client-admin/.mvn/jaxx-generate - + client-admin/.mvn/pom.gitflow.develop - + client-admin/.mvn/pom.gitflow.master - + client-admin/.mvn/pom.organizationId - + client-admin/.mvn/pom.projectId - + client-admin/.mvn/pom.stageId - + client-admin/LICENSE.txt - + client-admin/README.md - + client-admin/pom.xml - + client-admin/src/license/THIRD-PARTY.properties - client-core/src/main/i18n/getters/java-enumeration.getter → client-admin/src/main/i18n/getters/java-enumeration.getter - + client-admin/src/main/i18n/getters/java.getter - + client-admin/src/main/i18n/getters/jaxx.getter - client-core/src/main/java/fr/ird/observe/client/ObserveTextGenerator.java → client-admin/src/main/java/fr/ird/observe/client/ObserveTextGenerator.java - + client-admin/src/main/java/fr/ird/observe/client/ui/ObserveCommon.jcss - client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminActionModel.java → client-admin/src/main/java/fr/ird/observe/client/ui/admin/AdminActionModel.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminActionWorker.java → client-admin/src/main/java/fr/ird/observe/client/ui/admin/AdminActionWorker.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminStep.java → client-admin/src/main/java/fr/ird/observe/client/ui/admin/AdminStep.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminTabUI.jaxx → client-admin/src/main/java/fr/ird/observe/client/ui/admin/AdminTabUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminTabUI.jcss → client-admin/src/main/java/fr/ird/observe/client/ui/admin/AdminTabUI.jcss - client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminTabUIHandler.java → client-admin/src/main/java/fr/ird/observe/client/ui/admin/AdminTabUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminUI.jaxx → client-admin/src/main/java/fr/ird/observe/client/ui/admin/AdminUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminUI.jcss → client-admin/src/main/java/fr/ird/observe/client/ui/admin/AdminUI.jcss - client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminUIHandler.java → client-admin/src/main/java/fr/ird/observe/client/ui/admin/AdminUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminUILauncher.java → client-admin/src/main/java/fr/ird/observe/client/ui/admin/AdminUILauncher.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminUIModel.java → client-admin/src/main/java/fr/ird/observe/client/ui/admin/AdminUIModel.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/actions/AdminTabUIActionSupport.java → client-admin/src/main/java/fr/ird/observe/client/ui/admin/actions/AdminTabUIActionSupport.java The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/e2f0891dd427e6b3cafe033c2b… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/e2f0891dd427e6b3cafe033c2b… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Al last move contentUI api to client-db module
by Tony CHEMIT 29 Sep '19

29 Sep '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: e2f0891d by tchemit at 2019-09-29T16:56:06Z Al last move contentUI api to client-db module - - - - - 30 changed files: - client-core/pom.xml - client-core/src/main/i18n/getters/java.getter - client-core/src/main/java/fr/ird/observe/client/ObserveRunner.java - client-core/src/main/java/fr/ird/observe/client/ObserveSwingApplicationContext.java - client-core/src/main/java/fr/ird/observe/client/ObserveTextGenerator.java - client-core/src/main/java/fr/ird/observe/client/ui/ObserveActionContext.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/actions/AdminTabUIActionSupport.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/synchronize/referential/ng/actions/RegisterTasksActionSupport.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/synchronize/referential/ng/actions/Start.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/validate/ValidateModel.java - − client-core/src/main/java/fr/ird/observe/client/ui/content/api/package.html - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/logbook/actions/ActivitySampleUIMove.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/logbook/actions/ActivityUIChooseRelatedObservedActivity.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/logbook/actions/TripSampleListUIMove.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/logbook/actions/TripSampleUIMove.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/observation/BranchlineUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/observation/SetDetailCompositionUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/observation/SetDetailCompositionUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/dcp/FloatingObjectUIInitializer.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/NonTargetCatchUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/TargetCatchUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/TargetDiscardCatchUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/actions/ActivityUIAddFloatingObject.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/actions/FloatingObjectUIAddFloatingObjectPreset.java - client-core/src/main/java/fr/ird/observe/client/ui/main/ObserveMainUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/util/UIHelper.java - client-db/pom.xml - client-db/src/main/i18n/getters/java.getter - client-db/src/main/i18n/getters/jaxx.getter - + client-db/src/main/java/fr/ird/observe/client/InitStorageModel.java The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/e2f0891dd427e6b3cafe033c2bc… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/e2f0891dd427e6b3cafe033c2bc… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 2 commits: [REFERENTIEL][FOB] Présentation référentiel matériaux - Closes #1344
by Tony CHEMIT 28 Sep '19

28 Sep '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 8aa658a1 by tchemit at 2019-09-28T11:50:48Z [REFERENTIEL][FOB] Présentation référentiel matériaux - Closes #1344 - - - - - 999fbb95 by tchemit at 2019-09-28T11:50:49Z update toolkit - - - - - 4 changed files: - dto/src/main/i18n/getters/java.getter - + dto/src/main/java/fr/ird/observe/dto/decoration/decorators/ObjectMaterialReferenceDecorator.java - dto/src/main/java/fr/ird/observe/dto/decoration/init/ReferentialPsObservationModelDecoratorInitializer.java - pom.xml Changes: ===================================== dto/src/main/i18n/getters/java.getter ===================================== @@ -17,6 +17,7 @@ observe.common.gps.activity observe.common.gps.gpsPoint observe.common.inconnu observe.common.no.unit +observe.common.nocode observe.data.Data.baitHaulingStatus observe.data.Data.captain observe.data.Data.dataQuality ===================================== dto/src/main/java/fr/ird/observe/dto/decoration/decorators/ObjectMaterialReferenceDecorator.java ===================================== @@ -0,0 +1,45 @@ +package fr.ird.observe.dto.decoration.decorators; + +/*- + * #%L + * ObServe :: Dto + * %% + * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.dto.referential.ReferentialDto; +import fr.ird.observe.dto.referential.ps.observation.ObjectMaterialReference; +import org.apache.commons.jxpath.JXPathContext; + +import static io.ultreia.java4all.i18n.I18n.t; + +public class ObjectMaterialReferenceDecorator extends ReferentialReferenceDecorator<ObjectMaterialReference> { + + public ObjectMaterialReferenceDecorator() { + super(ObjectMaterialReference.class, "${code}$s##${label}$s"); + } + + @Override + protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, String token) { + Comparable<Comparable<?>> result = super.getTokenValue(jxcontext, token); + if (ReferentialDto.PROPERTY_CODE.equals(token) && (result == null || (result + "").isEmpty())) { + result = (Comparable) t("observe.common.nocode"); + } + return result; + } +} ===================================== dto/src/main/java/fr/ird/observe/dto/decoration/init/ReferentialPsObservationModelDecoratorInitializer.java ===================================== @@ -23,6 +23,7 @@ package fr.ird.observe.dto.decoration.init; */ import fr.ird.observe.dto.decoration.DecoratorService; +import fr.ird.observe.dto.decoration.decorators.ObjectMaterialReferenceDecorator; import fr.ird.observe.dto.referential.ps.observation.DetectionModeDto; import fr.ird.observe.dto.referential.ps.observation.DetectionModeReference; import fr.ird.observe.dto.referential.ps.observation.NonTargetCatchReleaseConformityDto; @@ -32,7 +33,6 @@ import fr.ird.observe.dto.referential.ps.observation.NonTargetCatchReleaseStatus import fr.ird.observe.dto.referential.ps.observation.NonTargetCatchReleasingTimeDto; import fr.ird.observe.dto.referential.ps.observation.NonTargetCatchReleasingTimeReference; import fr.ird.observe.dto.referential.ps.observation.ObjectMaterialDto; -import fr.ird.observe.dto.referential.ps.observation.ObjectMaterialReference; import fr.ird.observe.dto.referential.ps.observation.ObservedSystemDto; import fr.ird.observe.dto.referential.ps.observation.ObservedSystemReference; import fr.ird.observe.dto.referential.ps.observation.ReasonForDiscardDto; @@ -76,7 +76,8 @@ public class ReferentialPsObservationModelDecoratorInitializer extends ModelDeco @Override public void initPsObservationObjectMaterialDto() { - registerDefaultReferentialAndReferentialReferenceDecorator(ObjectMaterialDto.class, ObjectMaterialReference.class, libelle); + registerDecorator(new ObjectMaterialReferenceDecorator()); + registerObserveDecorator(ObjectMaterialDto.class, "${code}$s##${" + libelle + "}$s", " "); } @Override ===================================== pom.xml ===================================== @@ -160,7 +160,7 @@ <maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format> <buildDate>${maven.build.timestamp}</buildDate> - <observeToolkitVersion>4.19-SNAPSHOT</observeToolkitVersion> + <observeToolkitVersion>4.19</observeToolkitVersion> <lib.version.nuiton.validation>3.1</lib.version.nuiton.validation> <!--can't use 1.4.197 (date has changed + blob also)--> <lib.version.h2>1.4.196</lib.version.h2> View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/b6d1810eda87639b0faccb9056… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/b6d1810eda87639b0faccb9056… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 2 commits: [REFERENTIEL][FOB] Présentation référentiel matériaux - Closes #1344
by Tony CHEMIT 28 Sep '19

28 Sep '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: bcc8d80d by tchemit at 2019-09-28T10:52:01Z [REFERENTIEL][FOB] Présentation référentiel matériaux - Closes #1344 - - - - - b6d1810e by tchemit at 2019-09-28T10:52:03Z update toolkit - - - - - 3 changed files: - + dto/src/main/java/fr/ird/observe/dto/decoration/decorators/ObjectMaterialReferenceDecorator.java - dto/src/main/java/fr/ird/observe/dto/decoration/init/ReferentialPsObservationModelDecoratorInitializer.java - pom.xml Changes: ===================================== dto/src/main/java/fr/ird/observe/dto/decoration/decorators/ObjectMaterialReferenceDecorator.java ===================================== @@ -0,0 +1,45 @@ +package fr.ird.observe.dto.decoration.decorators; + +/*- + * #%L + * ObServe :: Dto + * %% + * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.dto.referential.ReferentialDto; +import fr.ird.observe.dto.referential.ps.observation.ObjectMaterialReference; +import org.apache.commons.jxpath.JXPathContext; + +import static io.ultreia.java4all.i18n.I18n.t; + +public class ObjectMaterialReferenceDecorator extends ReferentialReferenceDecorator<ObjectMaterialReference> { + + public ObjectMaterialReferenceDecorator() { + super(ObjectMaterialReference.class, "${code}$s##${label}$s"); + } + + @Override + protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, String token) { + Comparable<Comparable<?>> result = super.getTokenValue(jxcontext, token); + if (ReferentialDto.PROPERTY_CODE.equals(token) && (result == null || (result + "").isEmpty())) { + result = (Comparable) t("observe.common.nocode"); + } + return result; + } +} ===================================== dto/src/main/java/fr/ird/observe/dto/decoration/init/ReferentialPsObservationModelDecoratorInitializer.java ===================================== @@ -23,6 +23,7 @@ package fr.ird.observe.dto.decoration.init; */ import fr.ird.observe.dto.decoration.DecoratorService; +import fr.ird.observe.dto.decoration.decorators.ObjectMaterialReferenceDecorator; import fr.ird.observe.dto.referential.ps.observation.DetectionModeDto; import fr.ird.observe.dto.referential.ps.observation.DetectionModeReference; import fr.ird.observe.dto.referential.ps.observation.NonTargetCatchReleaseConformityDto; @@ -32,7 +33,6 @@ import fr.ird.observe.dto.referential.ps.observation.NonTargetCatchReleaseStatus import fr.ird.observe.dto.referential.ps.observation.NonTargetCatchReleasingTimeDto; import fr.ird.observe.dto.referential.ps.observation.NonTargetCatchReleasingTimeReference; import fr.ird.observe.dto.referential.ps.observation.ObjectMaterialDto; -import fr.ird.observe.dto.referential.ps.observation.ObjectMaterialReference; import fr.ird.observe.dto.referential.ps.observation.ObservedSystemDto; import fr.ird.observe.dto.referential.ps.observation.ObservedSystemReference; import fr.ird.observe.dto.referential.ps.observation.ReasonForDiscardDto; @@ -76,7 +76,8 @@ public class ReferentialPsObservationModelDecoratorInitializer extends ModelDeco @Override public void initPsObservationObjectMaterialDto() { - registerDefaultReferentialAndReferentialReferenceDecorator(ObjectMaterialDto.class, ObjectMaterialReference.class, libelle); + registerDecorator(new ObjectMaterialReferenceDecorator()); + registerObserveDecorator(ObjectMaterialDto.class, "${code}$s##${" + libelle + "}$s", " "); } @Override ===================================== pom.xml ===================================== @@ -160,7 +160,7 @@ <maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format> <buildDate>${maven.build.timestamp}</buildDate> - <observeToolkitVersion>4.19-SNAPSHOT</observeToolkitVersion> + <observeToolkitVersion>4.19</observeToolkitVersion> <lib.version.nuiton.validation>3.1</lib.version.nuiton.validation> <!--can't use 1.4.197 (date has changed + blob also)--> <lib.version.h2>1.4.196</lib.version.h2> View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/787fee60903ad914cf7dadb899… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/787fee60903ad914cf7dadb899… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] [REFERENTIEL][FOB] Présentation référentiel matériaux - Closes #1344
by Tony CHEMIT 28 Sep '19

28 Sep '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 787fee60 by tchemit at 2019-09-28T10:44:08Z [REFERENTIEL][FOB] Présentation référentiel matériaux - Closes #1344 - - - - - 2 changed files: - + dto/src/main/java/fr/ird/observe/dto/decoration/decorators/ObjectMaterialReferenceDecorator.java - dto/src/main/java/fr/ird/observe/dto/decoration/init/ReferentialPsObservationModelDecoratorInitializer.java Changes: ===================================== dto/src/main/java/fr/ird/observe/dto/decoration/decorators/ObjectMaterialReferenceDecorator.java ===================================== @@ -0,0 +1,45 @@ +package fr.ird.observe.dto.decoration.decorators; + +/*- + * #%L + * ObServe :: Dto + * %% + * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.dto.referential.ReferentialDto; +import fr.ird.observe.dto.referential.seine.ObjectMaterialReference; +import org.apache.commons.jxpath.JXPathContext; + +import static io.ultreia.java4all.i18n.I18n.t; + +public class ObjectMaterialReferenceDecorator extends ReferentialReferenceDecorator<ObjectMaterialReference> { + + public ObjectMaterialReferenceDecorator() { + super(ObjectMaterialReference.class, "${code}$s##${label}$s"); + } + + @Override + protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, String token) { + Comparable<Comparable<?>> result = super.getTokenValue(jxcontext, token); + if (ReferentialDto.PROPERTY_CODE.equals(token) && (result == null || (result + "").isEmpty())) { + result = (Comparable) t("observe.common.nocode"); + } + return result; + } +} ===================================== dto/src/main/java/fr/ird/observe/dto/decoration/init/ReferentialPsObservationModelDecoratorInitializer.java ===================================== @@ -23,6 +23,7 @@ package fr.ird.observe.dto.decoration.init; */ import fr.ird.observe.dto.decoration.DecoratorService; +import fr.ird.observe.dto.decoration.decorators.ObjectMaterialReferenceDecorator; import fr.ird.observe.dto.referential.ps.observation.DetectionModeDto; import fr.ird.observe.dto.referential.ps.observation.DetectionModeReference; import fr.ird.observe.dto.referential.ps.observation.NonTargetCatchReleaseConformityDto; @@ -32,7 +33,6 @@ import fr.ird.observe.dto.referential.ps.observation.NonTargetCatchReleaseStatus import fr.ird.observe.dto.referential.ps.observation.NonTargetCatchReleasingTimeDto; import fr.ird.observe.dto.referential.ps.observation.NonTargetCatchReleasingTimeReference; import fr.ird.observe.dto.referential.ps.observation.ObjectMaterialDto; -import fr.ird.observe.dto.referential.ps.observation.ObjectMaterialReference; import fr.ird.observe.dto.referential.ps.observation.ObservedSystemDto; import fr.ird.observe.dto.referential.ps.observation.ObservedSystemReference; import fr.ird.observe.dto.referential.ps.observation.ReasonForDiscardDto; @@ -76,7 +76,8 @@ public class ReferentialPsObservationModelDecoratorInitializer extends ModelDeco @Override public void initPsObservationObjectMaterialDto() { - registerDefaultReferentialAndReferentialReferenceDecorator(ObjectMaterialDto.class, ObjectMaterialReference.class, libelle); + registerDecorator(new ObjectMaterialReferenceDecorator()); + registerObserveDecorator(ObjectMaterialDto.class, "${code}$s##${" + libelle + "}$s", " "); } @Override View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/787fee60903ad914cf7dadb899d… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/787fee60903ad914cf7dadb899d… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 3 commits: use last stable of jaxx
by Tony CHEMIT 28 Sep '19

28 Sep '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: b900b750 by tchemit at 2019-09-26T17:35:17Z use last stable of jaxx - - - - - 6d2de5b2 by tchemit at 2019-09-28T09:43:25Z update pom - - - - - f92781f1 by tchemit at 2019-09-28T10:38:15Z update i18n getter - - - - - 2 changed files: - client-core/src/main/i18n/getters/java.getter - pom.xml Changes: ===================================== client-core/src/main/i18n/getters/java.getter ===================================== @@ -882,6 +882,7 @@ observe.ui.tree.data.ll.trip.unsaved observe.ui.tree.data.ps.activity.list observe.ui.tree.data.ps.activity.unsaved observe.ui.tree.data.ps.discardedTargetCatch +observe.ui.tree.data.ps.discardedTargetSample observe.ui.tree.data.ps.floatingObject.unsaved observe.ui.tree.data.ps.keptTargetCatch observe.ui.tree.data.ps.keptTargetSample ===================================== pom.xml ===================================== @@ -27,7 +27,7 @@ <parent> <groupId>io.ultreia.maven</groupId> <artifactId>pom</artifactId> - <version>2019.8.30</version> + <version>2019.8.31</version> </parent> <groupId>fr.ird.observe</groupId> @@ -167,7 +167,7 @@ <!--<lib.version.java4all.topia>1.12</lib.version.java4all.topia>--> <!--<lib.version.java4all.eugene>3.0<-alpha-22</lib.version.java4all.eugene>--> - <lib.version.java4all.jaxx>3.0-alpha-57-SNAPSHOT</lib.version.java4all.jaxx> + <lib.version.java4all.jaxx>3.0-alpha-57</lib.version.java4all.jaxx> <!--<lib.version.java4all.i18n>4.0-beta-3-SNAPSHOT</lib.version.java4all.i18n>--> <!--<lib.version.java4all.config>1.0.8-SNAPSHOT</lib.version.java4all.config>--> <!--<lib.version.nuiton.topia>3.4.2-SNAPSHOT</lib.version.nuiton.topia>--> View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/6c2b603c8c4d7807b21702f9ce… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/6c2b603c8c4d7807b21702f9ce… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Bouton 'Supprimer les marées par lot' ne fonctionne pas - Closes #1398
by Tony CHEMIT 26 Sep '19

26 Sep '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 6c2b603c by tchemit at 2019-09-26T17:23:23Z Bouton &#39;Supprimer les marées par lot&#39; ne fonctionne pas - Closes #1398 - - - - - 24 changed files: - client-core/src/main/i18n/getters/java.getter - client-core/src/main/java/fr/ird/observe/client/ui/content/api/data/list/ContentListUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/content/api/data/list/ContentListUI.jcss - + client-core/src/main/java/fr/ird/observe/client/ui/content/api/data/list/actions/DeleteActionSupport.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/common/TripListUI.jaxx - + client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/common/actions/TripListUIDelete.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/landing/LandingListUI.jaxx - + client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/landing/actions/LandingListUIDelete.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/logbook/ActivityListUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/logbook/TripSampleListUI.jaxx - + client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/logbook/actions/ActivityListUIDelete.java - + client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/logbook/actions/TripSampleListUIDelete.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/observation/ActivityListUI.jaxx - + client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/observation/actions/ActivityListUIDelete.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/common/TripListUI.jaxx - + client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/common/actions/TripListUIDelete.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/ActivityListUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/RouteListUI.jaxx - + client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/actions/ActivityListUIDelete.java - + client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/actions/RouteListUIDelete.java - client-core/src/main/java/fr/ird/observe/client/ui/util/UIHelper.java - observe-i18n/src/main/i18n/translations/observe_en_GB.properties - observe-i18n/src/main/i18n/translations/observe_es_ES.properties - observe-i18n/src/main/i18n/translations/observe_fr_FR.properties Changes: ===================================== client-core/src/main/i18n/getters/java.getter ===================================== @@ -783,6 +783,7 @@ observe.message.db.loaded observe.message.db.loading observe.message.delete observe.message.delete.directory +observe.message.delete.list observe.message.delete.new observe.message.goto.site observe.message.help.usage @@ -881,7 +882,6 @@ observe.ui.tree.data.ll.trip.unsaved observe.ui.tree.data.ps.activity.list observe.ui.tree.data.ps.activity.unsaved observe.ui.tree.data.ps.discardedTargetCatch -observe.ui.tree.data.ps.discardedTargetSample observe.ui.tree.data.ps.floatingObject.unsaved observe.ui.tree.data.ps.keptTargetCatch observe.ui.tree.data.ps.keptTargetSample ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/api/data/list/ContentListUI.jaxx ===================================== @@ -86,11 +86,12 @@ public abstract ContentListUIHandler<E, C, R, U> getHandler(); </cell> </row> <row> - <cell fill='both'> - <JButton id='move'/> - </cell> - <cell> - <JButton id='create'/> + <cell columns="3"> + <JPanel layout="{new GridLayout(1, 0)}"> + <JButton id='delete'/> + <JButton id='move'/> + <JButton id='create'/> + </JPanel> </cell> </row> </Table> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/api/data/list/ContentListUI.jcss ===================================== @@ -93,6 +93,10 @@ enabled:{model.isOneOrMoreSelectedData()}; } +#delete { + enabled:{model.isOneOrMoreSelectedData()}; +} + #showTechnicalInformation { enabled:{model.isOneSelectedData()}; } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/api/data/list/actions/DeleteActionSupport.java ===================================== @@ -0,0 +1,120 @@ +package fr.ird.observe.client.ui.content.api.data.list.actions; + +/*- + * #%L + * ObServe :: Client core + * %% + * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.client.ui.ObserveKeyStrokes; +import fr.ird.observe.client.ui.content.api.actions.ContentUIActionSupport; +import fr.ird.observe.client.ui.content.api.data.list.ContentListUI; +import fr.ird.observe.client.ui.tree.navigation.NavigationTree; +import fr.ird.observe.client.ui.util.UIHelper; +import fr.ird.observe.dto.IdDto; +import fr.ird.observe.dto.data.DataDto; +import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; +import fr.ird.observe.dto.reference.DataDtoReference; +import fr.ird.observe.dto.reference.DtoReference; +import fr.ird.observe.navigation.model.edit.CloseEditNodeVetoException; +import fr.ird.observe.navigation.model.edit.ObserveEditNode; +import fr.ird.observe.navigation.tree.MultipleReferenceContainerNode; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import javax.swing.SwingUtilities; +import javax.swing.tree.MutableTreeNode; +import javax.swing.tree.TreeNode; +import java.awt.event.ActionEvent; +import java.util.List; +import java.util.stream.Collectors; + +import static fr.ird.observe.client.ui.content.api.ContentUIHandler.getNavigationTree; +import static io.ultreia.java4all.i18n.I18n.n; +import static io.ultreia.java4all.i18n.I18n.t; + +public abstract class DeleteActionSupport<E extends IdDto, D extends DataDto, R extends DataDtoReference<D, R>, U extends ContentListUI<E, D, R, U>> extends ContentUIActionSupport<U> { + + private static final Logger log = LogManager.getLogger(Close.class); + + protected final String typeI18nKey; + + protected abstract void doDelete(U ui, List<R> beanList); + + public DeleteActionSupport(Class<D> beanType) { + super( + n("observe.action.delete"), + null, + "delete", + ObserveKeyStrokes.KEY_STROKE_DELETE_DATA_GLOBAL); + this.typeI18nKey = t(ObserveI18nDecoratorHelper.getTypeI18nKey(beanType)); + setTooltipText(t("observe.action.delete.data.tip", typeI18nKey)); + } + + @Override + protected void doActionPerformed(ActionEvent event, U ui) { + + List<R> selectedData = ui.getModel().getSelectedDatas(); + + ObserveEditNode editNode = ui.getModel().getEditNode(); + try { + fr.ird.observe.client.ui.content.api.data.open.actions.Close.closeData(editNode); + } catch (CloseEditNodeVetoException e1) { + UIHelper.handlingError(e1); + return; + } + boolean canDelete = askToDelete(ui, selectedData); + if (canDelete) { + getMainUIModel().setBusy(true); + try { + doDelete(ui, selectedData); + } finally { + SwingUtilities.invokeLater(() -> afterDelete(selectedData)); + } + } + } + + private boolean askToDelete(U ui, List<R> bean) { + return UIHelper.confirmForEntityDelete(ui, ui.getModel().getReferenceType(), bean); + } + + private void afterDelete(List<R> selectedData) { + + try { + + log.info("After delete: " + selectedData.stream().map(DtoReference::getId).collect(Collectors.joining())); + getDataSource().setModified(true); + NavigationTree tree = getNavigationTree(); + + MultipleReferenceContainerNode<D, R> parentNode = (MultipleReferenceContainerNode<D, R>) tree.getSelectedNode(); + for (R selectedDatum : selectedData) { + int nodePosition = parentNode.getNodePosition(selectedDatum); + TreeNode nodeToDelete = parentNode.getChildAt(nodePosition); + tree.removeNode((MutableTreeNode) nodeToDelete); + } + tree.reloadNode(parentNode, false); + tree.selectSafeNode(parentNode.getParent()); + tree.selectSafeNode(parentNode); + } finally { + getMainUIModel().setBusy(false); + } + + } + +} ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/common/TripListUI.jaxx ===================================== @@ -41,4 +41,5 @@ <JButton id='close'/> <JButton id='move'/> <JButton id='create'/> + <JButton id='delete'/> </fr.ird.observe.client.ui.content.api.data.list.ContentListUI> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/common/actions/TripListUIDelete.java ===================================== @@ -0,0 +1,51 @@ +package fr.ird.observe.client.ui.content.data.ll.common.actions; + +/*- + * #%L + * ObServe :: Client core + * %% + * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.client.ui.content.api.data.list.actions.DeleteActionSupport; +import fr.ird.observe.client.ui.content.data.ll.common.TripListUI; +import fr.ird.observe.dto.data.ll.common.TripDto; +import fr.ird.observe.dto.data.ll.common.TripReference; +import fr.ird.observe.dto.referential.common.ProgramDto; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.List; + +public class TripListUIDelete extends DeleteActionSupport<ProgramDto, TripDto, TripReference, TripListUI> { + + private static final Logger log = LogManager.getLogger(TripListUIDelete.class); + + public TripListUIDelete() { + super(TripDto.class); + } + + @Override + protected void doDelete(TripListUI ui, List<TripReference> beanList) { + for (TripReference bean : beanList) { + log.info(String.format("Will delete `%s`: %s",typeI18nKey, bean.getId())); + getServicesProvider().getLlCommonTripService().delete(bean.getId()); + log.info(String.format("Delete done for `%s`: %s",typeI18nKey, bean.getId())); + } + } +} ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/landing/LandingListUI.jaxx ===================================== @@ -41,4 +41,5 @@ <JButton id='close'/> <JButton id='move'/> <JButton id='create'/> + <JButton id='delete'/> </fr.ird.observe.client.ui.content.api.data.list.ContentListUI> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/landing/actions/LandingListUIDelete.java ===================================== @@ -0,0 +1,52 @@ +package fr.ird.observe.client.ui.content.data.ll.landing.actions; + +/*- + * #%L + * ObServe :: Client core + * %% + * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.client.ui.content.api.data.list.actions.DeleteActionSupport; +import fr.ird.observe.client.ui.content.data.ll.landing.LandingListUI; +import fr.ird.observe.dto.data.ll.common.TripDto; +import fr.ird.observe.dto.data.ll.landing.LandingDto; +import fr.ird.observe.dto.data.ll.landing.LandingReference; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.List; + +public class LandingListUIDelete extends DeleteActionSupport<TripDto, LandingDto, LandingReference, LandingListUI> { + + private static final Logger log = LogManager.getLogger(LandingListUIDelete.class); + + public LandingListUIDelete() { + super(LandingDto.class); + } + + @Override + protected void doDelete(LandingListUI ui, List<LandingReference> beanList) { + for (LandingReference bean : beanList) { + log.info(String.format("Will delete `%s`: %s",typeI18nKey, bean.getId())); + getServicesProvider().getLlLandingLandingService().delete(bean.getId()); + log.info(String.format("Delete done for `%s`: %s",typeI18nKey, bean.getId())); + + } + } +} ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/logbook/ActivityListUI.jaxx ===================================== @@ -42,4 +42,5 @@ <JButton id='close'/> <JButton id='move'/> <JButton id='create'/> + <JButton id='delete'/> </fr.ird.observe.client.ui.content.api.data.list.ContentListUI> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/logbook/TripSampleListUI.jaxx ===================================== @@ -42,4 +42,5 @@ <JButton id='close'/> <JButton id='move'/> <JButton id='create'/> + <JButton id='delete'/> </fr.ird.observe.client.ui.content.api.data.list.ContentListUI> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/logbook/actions/ActivityListUIDelete.java ===================================== @@ -0,0 +1,52 @@ +package fr.ird.observe.client.ui.content.data.ll.logbook.actions; + +/*- + * #%L + * ObServe :: Client core + * %% + * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.client.ui.content.api.data.list.actions.DeleteActionSupport; +import fr.ird.observe.client.ui.content.data.ll.logbook.ActivityListUI; +import fr.ird.observe.dto.data.ll.common.TripDto; +import fr.ird.observe.dto.data.ll.logbook.ActivityDto; +import fr.ird.observe.dto.data.ll.logbook.ActivityReference; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.List; + +public class ActivityListUIDelete extends DeleteActionSupport<TripDto, ActivityDto, ActivityReference, ActivityListUI> { + + private static final Logger log = LogManager.getLogger(ActivityListUIDelete.class); + + public ActivityListUIDelete() { + super(ActivityDto.class); + } + + @Override + protected void doDelete(ActivityListUI ui, List<ActivityReference> beanList) { + for (ActivityReference bean : beanList) { + log.info(String.format("Will delete `%s`: %s",typeI18nKey, bean.getId())); + getServicesProvider().getLlLogbookActivityService().delete(bean.getId()); + log.info(String.format("Delete done for `%s`: %s",typeI18nKey, bean.getId())); + + } + } +} ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/logbook/actions/TripSampleListUIDelete.java ===================================== @@ -0,0 +1,53 @@ +package fr.ird.observe.client.ui.content.data.ll.logbook.actions; + +/*- + * #%L + * ObServe :: Client core + * %% + * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.client.ui.content.api.data.list.actions.DeleteActionSupport; +import fr.ird.observe.client.ui.content.data.ll.logbook.TripSampleListUI; +import fr.ird.observe.dto.data.ll.common.TripDto; +import fr.ird.observe.dto.data.ll.logbook.SampleDto; +import fr.ird.observe.dto.data.ll.logbook.SampleReference; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.List; + +public class TripSampleListUIDelete extends DeleteActionSupport<TripDto, SampleDto, SampleReference, TripSampleListUI> { + + private static final Logger log = LogManager.getLogger(TripSampleListUIDelete.class); + + public TripSampleListUIDelete() { + super(SampleDto.class); + } + + @Override + protected void doDelete(TripSampleListUI ui, List<SampleReference> beanList) { + String parentId = ui.getModel().getSelectedParentId(); + for (SampleReference bean : beanList) { + log.info(String.format("Will delete `%s`: %s",typeI18nKey, bean.getId())); + getServicesProvider().getLlLogbookTripSampleService().delete(parentId, bean.getId()); + log.info(String.format("Delete done for `%s`: %s",typeI18nKey, bean.getId())); + + } + } +} ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/observation/ActivityListUI.jaxx ===================================== @@ -42,4 +42,5 @@ <JButton id='close'/> <JButton id='move'/> <JButton id='create'/> + <JButton id='delete'/> </fr.ird.observe.client.ui.content.api.data.list.ContentListUI> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/observation/actions/ActivityListUIDelete.java ===================================== @@ -0,0 +1,52 @@ +package fr.ird.observe.client.ui.content.data.ll.observation.actions; + +/*- + * #%L + * ObServe :: Client core + * %% + * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.client.ui.content.api.data.list.actions.DeleteActionSupport; +import fr.ird.observe.client.ui.content.data.ll.observation.ActivityListUI; +import fr.ird.observe.dto.data.ll.common.TripDto; +import fr.ird.observe.dto.data.ll.observation.ActivityDto; +import fr.ird.observe.dto.data.ll.observation.ActivityReference; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.List; + +public class ActivityListUIDelete extends DeleteActionSupport<TripDto, ActivityDto, ActivityReference, ActivityListUI> { + + private static final Logger log = LogManager.getLogger(ActivityListUIDelete.class); + + public ActivityListUIDelete() { + super(ActivityDto.class); + } + + @Override + protected void doDelete(ActivityListUI ui, List<ActivityReference> beanList) { + for (ActivityReference bean : beanList) { + log.info(String.format("Will delete `%s`: %s",typeI18nKey, bean.getId())); + getServicesProvider().getLlObservationActivityService().delete(bean.getId()); + log.info(String.format("Delete done for `%s`: %s",typeI18nKey, bean.getId())); + + } + } +} ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/common/TripListUI.jaxx ===================================== @@ -43,4 +43,5 @@ <JButton id='close'/> <JButton id='move'/> <JButton id='create'/> + <JButton id='delete'/> </fr.ird.observe.client.ui.content.api.data.list.ContentListUI> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/common/actions/TripListUIDelete.java ===================================== @@ -0,0 +1,52 @@ +package fr.ird.observe.client.ui.content.data.ps.common.actions; + +/*- + * #%L + * ObServe :: Client core + * %% + * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.client.ui.content.api.data.list.actions.DeleteActionSupport; +import fr.ird.observe.client.ui.content.data.ps.common.TripListUI; +import fr.ird.observe.dto.data.ps.common.TripDto; +import fr.ird.observe.dto.data.ps.common.TripReference; +import fr.ird.observe.dto.referential.common.ProgramDto; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.List; + +public class TripListUIDelete extends DeleteActionSupport<ProgramDto, TripDto, TripReference, TripListUI> { + + private static final Logger log = LogManager.getLogger(TripListUIDelete.class); + + public TripListUIDelete() { + super(TripDto.class); + } + + @Override + protected void doDelete(TripListUI ui, List<TripReference> beanList) { + for (TripReference bean : beanList) { + log.info(String.format("Will delete `%s`: %s",typeI18nKey, bean.getId())); + getServicesProvider().getPsCommonTripService().delete(bean.getId()); + log.info(String.format("Delete done for `%s`: %s",typeI18nKey, bean.getId())); + + } + } +} ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/ActivityListUI.jaxx ===================================== @@ -42,4 +42,5 @@ <JButton id='close'/> <JButton id='move'/> <JButton id='create'/> + <JButton id='delete'/> </fr.ird.observe.client.ui.content.api.data.list.ContentListUI> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/RouteListUI.jaxx ===================================== @@ -43,5 +43,5 @@ <JButton id='close'/> <JButton id='move'/> <JButton id='create'/> - + <JButton id='delete'/> </fr.ird.observe.client.ui.content.api.data.list.ContentListUI> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/actions/ActivityListUIDelete.java ===================================== @@ -0,0 +1,52 @@ +package fr.ird.observe.client.ui.content.data.ps.observation.actions; + +/*- + * #%L + * ObServe :: Client core + * %% + * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.client.ui.content.api.data.list.actions.DeleteActionSupport; +import fr.ird.observe.client.ui.content.data.ps.observation.ActivityListUI; +import fr.ird.observe.dto.data.ps.observation.ActivityDto; +import fr.ird.observe.dto.data.ps.observation.ActivityReference; +import fr.ird.observe.dto.data.ps.observation.RouteDto; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.List; + +public class ActivityListUIDelete extends DeleteActionSupport<RouteDto, ActivityDto, ActivityReference, ActivityListUI> { + + private static final Logger log = LogManager.getLogger(ActivityListUIDelete.class); + + public ActivityListUIDelete() { + super(ActivityDto.class); + } + + @Override + protected void doDelete(ActivityListUI ui, List<ActivityReference> beanList) { + for (ActivityReference bean : beanList) { + log.info(String.format("Will delete `%s`: %s",typeI18nKey, bean.getId())); + getServicesProvider().getPsObservationActivityService().delete(bean.getId()); + log.info(String.format("Delete done for `%s`: %s",typeI18nKey, bean.getId())); + + } + } +} ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/actions/RouteListUIDelete.java ===================================== @@ -0,0 +1,52 @@ +package fr.ird.observe.client.ui.content.data.ps.observation.actions; + +/*- + * #%L + * ObServe :: Client core + * %% + * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.client.ui.content.api.data.list.actions.DeleteActionSupport; +import fr.ird.observe.client.ui.content.data.ps.observation.RouteListUI; +import fr.ird.observe.dto.data.ps.common.TripDto; +import fr.ird.observe.dto.data.ps.observation.RouteDto; +import fr.ird.observe.dto.data.ps.observation.RouteReference; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.List; + +public class RouteListUIDelete extends DeleteActionSupport<TripDto, RouteDto, RouteReference, RouteListUI> { + + private static final Logger log = LogManager.getLogger(RouteListUIDelete.class); + + public RouteListUIDelete() { + super(RouteDto.class); + } + + @Override + protected void doDelete(RouteListUI ui, List<RouteReference> beanList) { + for (RouteReference bean : beanList) { + log.info(String.format("Will delete `%s`: %s",typeI18nKey, bean.getId())); + getServicesProvider().getPsObservationRouteService().delete(bean.getId()); + log.info(String.format("Delete done for `%s`: %s",typeI18nKey, bean.getId())); + + } + } +} ===================================== client-core/src/main/java/fr/ird/observe/client/ui/util/UIHelper.java ===================================== @@ -69,6 +69,7 @@ import java.awt.event.ComponentEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.beans.PropertyChangeListener; +import java.util.List; import java.util.Objects; import static io.ultreia.java4all.i18n.I18n.t; @@ -323,6 +324,61 @@ public class UIHelper extends UIHelperSupport { return response == 0; } + public static <E extends IdDto> boolean confirmForEntityDelete(JAXXObject parent, Class<E> beanClass, List<E> beanList) { + return confirmForEntityDelete(parent, beanClass, beanList, null); + } + + /** + * Ouvre une demande de confirmation, avant suppression d'une entité. + * + * @param <E> le type de l'entité à supprimer + * @param parent le component graphique demande l'action + * @param beanClass le tyê de l'entité à supprimer + * @param beanList la liste d'entité à supprimer + * @param extraMessage un message supplémentaire a ajouter + * @return {@code true} si l'utilisateur a confitmé la suppression, + * {@code false} sinon. + */ + public static <E extends IdDto> boolean confirmForEntityDelete(JAXXObject parent, Class<E> beanClass, List<E> beanList, String extraMessage) { + JFrame mainUI = ObserveSwingApplicationContextSupport.get().getMainUI(); + + if (parent == null) { + // on cherche l'ui principale + parent = (JAXXObject) mainUI; + } + + ObserveSwingApplicationContextSupport.get().getMainUIModel().setBusy(true); + int response; + try { + DecoratorService decoratorService = ObserveSwingApplicationContextSupport.get().getDecoratorService(); + Decorator<E> decorator = decoratorService.getDecoratorByType(beanClass); + String messageDelete; + String type = ObserveI18nDecoratorHelper.getTypeI18nKey(beanClass); + type = t(type); + + StringBuilder beanStr = new StringBuilder(); + // delete existing entity + for (E e : beanList) { + beanStr.append("\n\t").append(decorator.toString(e)); + } + messageDelete = t("observe.message.delete.list", type, beanStr.toString()); + + if (extraMessage != null) { + messageDelete += '\n' + extraMessage; + } + + response = askUser((Component) parent, + t("observe.title.delete"), + messageDelete, + JOptionPane.WARNING_MESSAGE, + new Object[]{t("observe.choice.confirm.delete"), + t("observe.choice.cancel")}, + 1); + } finally { + ObserveSwingApplicationContextSupport.get().getMainUIModel().setBusy(false); + } + return response == 0; + } public static void handlingError(Exception e) { handlingError(e.getMessage(), e); ===================================== observe-i18n/src/main/i18n/translations/observe_en_GB.properties ===================================== @@ -2302,6 +2302,7 @@ observe.message.db.none.loaded=< No data source loaded > observe.message.db.none.loaded.tip=No data source loaded... observe.message.delete=Confirm to delete object\:\n\n '%1$s' - '%2$s'\n observe.message.delete.directory=Delete directory %1$s +observe.message.delete.list=Confirm to delete object '%1$s'\:\n%2$s\n observe.message.delete.new=Confirm to delete object\:\n\n '%1$s'\n observe.message.goto.site=Go to ObServe site (%1$s) observe.message.h2.server.login=Login ===================================== observe-i18n/src/main/i18n/translations/observe_es_ES.properties ===================================== @@ -2302,6 +2302,7 @@ observe.message.db.none.loaded=No hay fuente de datos cargada observe.message.db.none.loaded.tip=No hay fuente de datos cargada... observe.message.delete=Confirmar la eliminación del objeto \:\n\n '%1$s' - '%2$s'\n observe.message.delete.directory=Eliminación del directorio %1$s +observe.message.delete.list=Confirmar la eliminación del objeto '%1$s' \:\n%2$s\n observe.message.delete.new=Confirme la eliminación del objeto \:\n\n '%1$s'\n observe.message.goto.site=Acceder al sitio de d'Observe (%1$s) observe.message.h2.server.login=Iniciar sesión ===================================== observe-i18n/src/main/i18n/translations/observe_fr_FR.properties ===================================== @@ -2302,6 +2302,7 @@ observe.message.db.none.loaded=Aucune source de données chargée observe.message.db.none.loaded.tip=Aucune source de données chargée... observe.message.delete=Confirmer la suppression de l'objet \:\n\n '%1$s' - '%2$s'\n observe.message.delete.directory=Suppresion du répertoire %1$s +observe.message.delete.list=Confirmer la suppression des objets de type '%1$s' \:\n%2$s\n observe.message.delete.new=Confirmer la suppression de l'objet \:\n\n '%1$s'\n observe.message.goto.site=Accéder au site d'Observe (%1$s) observe.message.h2.server.login=Identifiant View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/6c2b603c8c4d7807b21702f9ce4… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/6c2b603c8c4d7807b21702f9ce4… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] improve report admin action
by Tony CHEMIT 26 Sep '19

26 Sep '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 8b001306 by tchemit at 2019-09-26T12:21:32Z improve report admin action - - - - - 9 changed files: - client-core/src/main/i18n/getters/java.getter - client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportConfigUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportConfigUI.jcss - client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportModel.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/report/actions/CopyResultToClipboard.java - observe-i18n/src/main/i18n/translations/observe_en_GB.properties - observe-i18n/src/main/i18n/translations/observe_es_ES.properties - observe-i18n/src/main/i18n/translations/observe_fr_FR.properties Changes: ===================================== client-core/src/main/i18n/getters/java.getter ===================================== @@ -262,6 +262,8 @@ observe.actions.validate.validator.message.header.tip observe.actions.validate.validator.scope.header observe.actions.validate.validator.scope.header.tip observe.admin.report.description +observe.admin.report.no.report.found +observe.admin.report.report.count.found observe.admin.report.title observe.admin.report.title.tip observe.admin.resume.no.operation.done ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportConfigUI.jaxx ===================================== @@ -81,4 +81,9 @@ protected void finalize() throws Throwable { <JButton id="chooseFileReport"/> </cell> </row> + <row> + <cell columns="3" anchor="west"> + <JLabel id="reportsCountInformation" styleClass="information"/> + </cell> + </row> </Table> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportConfigUI.jcss ===================================== @@ -48,3 +48,7 @@ text:{getStringValue(stepModel.getReportFile())}; } +#reportsCountInformation { + text:{handler.updateReportsCountInformation(stepModel.getReports())}; +} + ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportModel.java ===================================== @@ -6,15 +6,15 @@ * %% * 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 + * 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 + * + * 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% @@ -74,7 +74,6 @@ public class ReportModel extends AdminActionModel { public static final String VALID_PROPERTY_NAME = "valid"; - /** Logger. */ private static final Logger log = LogManager.getLogger(ReportModel.class); /** Type de rapport à charger. */ @@ -155,10 +154,7 @@ public class ReportModel extends AdminActionModel { public void setAutoCopyToClipboard(boolean autoCopyToClipboard) { boolean oldValue = this.autoCopyToClipboard; this.autoCopyToClipboard = autoCopyToClipboard; - firePropertyChange(AUTO_COPY_TO_CLIPBOARD_PROPERTY_NAME, - oldValue, - autoCopyToClipboard - ); + firePropertyChange(AUTO_COPY_TO_CLIPBOARD_PROPERTY_NAME, oldValue, autoCopyToClipboard); } public boolean isCopyRowHeaders() { @@ -168,10 +164,7 @@ public class ReportModel extends AdminActionModel { public void setCopyRowHeaders(boolean copyRowHeaders) { boolean oldValue = this.copyRowHeaders; this.copyRowHeaders = copyRowHeaders; - firePropertyChange(COPY_ROW_HEADERS_PROPERTY_NAME, - oldValue, - copyRowHeaders - ); + firePropertyChange(COPY_ROW_HEADERS_PROPERTY_NAME, oldValue, copyRowHeaders); } public boolean isCopyColumnHeaders() { @@ -181,10 +174,7 @@ public class ReportModel extends AdminActionModel { public void setCopyColumnHeaders(boolean copyColumnHeaders) { boolean oldValue = this.copyColumnHeaders; this.copyColumnHeaders = copyColumnHeaders; - firePropertyChange(COPY_COLUMN_HEADERS_PROPERTY_NAME, - oldValue, - copyColumnHeaders - ); + firePropertyChange(COPY_COLUMN_HEADERS_PROPERTY_NAME, oldValue, copyColumnHeaders); } public ResultTableModel getResultModel() { @@ -205,12 +195,9 @@ public class ReportModel extends AdminActionModel { try { URL resource = reportFile.toURI().toURL(); allReports = loadReports(resource); - if (log.isDebugEnabled()) { - log.debug("Add loaded " + allReports.size() + " report(s)."); - } + log.debug(String.format("Add loaded %d report(s).", allReports.size())); } catch (IOException e) { - throw new IllegalStateException( - "Could not load reports definition file (" + reportFile + ").", e); + throw new IllegalStateException(String.format("Could not load reports definition file (%s).", reportFile), e); } } return allReports; @@ -278,14 +265,12 @@ public class ReportModel extends AdminActionModel { public void updateReports() { setSelectedReport(null); - if (reportFile==null) { + if (reportFile == null) { return; } reports = getAllReports().stream().filter(r -> modelType == r.getModelType()).collect(Collectors.toList()); firePropertyChange(REPORTS_PROPERTY_NAME, reports); - if (log.isInfoEnabled()) { - log.info("Detects " + (reports.size() - 1) + " report(s)."); - } + log.info(String.format("Detects %d report(s).", reports.size() - 1)); } public void start(AdminUIModel uiModel) { @@ -295,22 +280,17 @@ public class ReportModel extends AdminActionModel { File reportFile = ObserveResourceManager.Resource.report.getFile(config.getReportDirectory()); if (reportFile.exists()) { - if (log.isInfoEnabled()) { - log.info("Will use report file : " + reportFile); - } + log.info(String.format("Will use report file : %s", reportFile)); setReportFile(reportFile); } else { - if (log.isWarnEnabled()) - log.warn("Default report file " + reportFile + " does not exists."); + log.warn(String.format("Default report file %s does not exists.", reportFile)); } // on ecoute la modification du modèle PropertyChangeListener listenReportModified = evt -> { ReportModel source = (ReportModel) evt.getSource(); - if (log.isDebugEnabled()) { - log.debug("report model [" + source + "] changed on " + evt.getPropertyName() + ", new value = " + evt.getNewValue()); - } + log.debug(String.format("report model [%s] changed on %s, new value = %s", source, evt.getPropertyName(), evt.getNewValue())); uiModel.validate(); }; ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportUIHandler.java ===================================== @@ -26,6 +26,7 @@ import fr.ird.observe.client.ObserveSwingTechnicalException; import fr.ird.observe.client.db.ObserveSwingDataSource; import fr.ird.observe.client.ui.admin.AdminStep; import fr.ird.observe.client.ui.admin.AdminTabUIHandler; +import fr.ird.observe.client.ui.admin.AdminUIModel; import fr.ird.observe.client.ui.admin.config.ConfigUI; import fr.ird.observe.client.ui.admin.report.actions.CopyResultToClipboard; import fr.ird.observe.client.ui.util.JaxxObjectInitializer; @@ -107,13 +108,13 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa onReportsChanged(ui, reports); } else if (ReportModel.SELECTED_REPORT_PROPERTY_NAME.equals(propertyName)) { Report report = (Report) newValue; - onSelectedReportChanged(ui, source, report); + onSelectedReportChanged(report); } else if (ReportModel.VARIABLES_PROPERTY_NAME.equals(propertyName)) { Map<String, Object> variables = (Map<String, Object>) newValue; - onVariablesChanges(source, variables); + onVariablesChanges(variables); } else if (ReportModel.VALID_PROPERTY_NAME.equals(propertyName)) { final Boolean valid = (Boolean) newValue; - SwingUtilities.invokeLater(() -> onValidChanged(source, valid != null && valid)); + SwingUtilities.invokeLater(() -> onValidChanged(valid != null && valid)); } }); @@ -204,6 +205,13 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa return t(report.getDescription()); } + String updateReportsCountInformation(List<Report> reports) { + if (reports == null || reports.size() < 2) { + return t("observe.admin.report.no.report.found"); + } + return t("observe.admin.report.report.count.found", reports.size() - 1); + } + private void updateVariable(JComboBox combo, Object value) { String variableName = (String) combo.getClientProperty(VARIABLE_NAME); if (variableName == null) { @@ -214,7 +222,7 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa } private void onReportsChanged(ReportUI tabUI, List<?> newValue) { - log.debug("New reports : " + newValue); + log.debug(String.format("New reports : %s", newValue)); // on ajoute toujours une premiere valeur null (pour ne rien selectionne) newValue.add(0, null); // on charge le nouveau modèle dans la liste déroulante @@ -222,26 +230,28 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa } @SuppressWarnings({"unchecked"}) - private void onSelectedReportChanged(ReportUI tabUI, ReportModel model, Report report) { - log.info("New selected report [" + report + "]"); - ui.getModel().setBusy(true); + private void onSelectedReportChanged(Report report) { + log.info(String.format("New selected report [%s]", report)); + AdminUIModel model = this.ui.getModel(); + ReportModel stepModel = getStepModel(); + model.setBusy(true); try { // on regénère l'ui de configuration des variables - JPanel variablesPanel = tabUI.getReportVariableSelectorPanel(); + JPanel variablesPanel = ui.getReportVariableSelectorPanel(); variablesPanel.removeAll(); // on utilise les variables uniquement si nécessaire boolean useVariables = report != null && report.isVariableRequired(); - tabUI.getReportVariableSelectorPane().setVisible(useVariables); + ui.getReportVariableSelectorPane().setVisible(useVariables); // calcul des données et contruction du tableau - model.getResultModel().clear(); + stepModel.getResultModel().clear(); if (report != null) { try { - ObserveSwingDataSource dataSource = ui.getModel().getConfigModel().getLocalSourceModel().getSafeSource(true); + ObserveSwingDataSource dataSource = model.getConfigModel().getLocalSourceModel().getSafeSource(true); ReportService reportService = dataSource.getReportService(); - report = reportService.populateVariables(report, ui.getModel().getSelectDataModel().getSelectedTripIds()); + report = reportService.populateVariables(report, model.getSelectDataModel().getSelectedTripIds()); } catch (Exception e) { throw new ObserveSwingTechnicalException("unable to populate report : " + report.getName(), e); } @@ -291,35 +301,37 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa // on revalide la disposition de l'onglet SwingUtilities.invokeLater(revalidateTabUI); - Map<String, Object> variables = model.getVariables(); + Map<String, Object> variables = stepModel.getVariables(); updateValidState(report, variables); } } finally { - ui.getModel().setBusy(false); + model.setBusy(false); } } - private void onVariablesChanges(ReportModel model, Map<String, Object> variables) { - Report report = model.getSelectedReport(); + private void onVariablesChanges(Map<String, Object> variables) { + Report report = getStepModel().getSelectedReport(); if (report != null) { updateValidState(report, variables); } } - private void onValidChanged(ReportModel model, boolean valid) { + private void onValidChanged(boolean valid) { log.info("valid state changed to " + valid); + ReportModel stepModel = getStepModel(); if (!valid) { // calcul des données et contruction du tableau - model.getResultModel().clear(); + stepModel.getResultModel().clear(); return; } - ui.getModel().setBusy(true); + AdminUIModel model = ui.getModel(); + model.setBusy(true); try { - Report report = model.getSelectedReport(); - ImmutableSet<String> tripIds = ui.getModel().getSelectDataModel().getSelectedTripIds(); - DataDtoReference trip = ui.getModel().getSelectDataModel().getSelectedTrip(); + Report report = stepModel.getSelectedReport(); + ImmutableSet<String> tripIds = model.getSelectDataModel().getSelectedTripIds(); + DataDtoReference trip = model.getSelectDataModel().getSelectedTrip(); log.info(String.format("Build result for report [%s] on %s", report.getName(), trip)); - Map<String, Object> variables = model.getVariables(); + Map<String, Object> variables = stepModel.getVariables(); for (ReportVariable variable : report.getVariables()) { Object value = variables.get(variable.getName()); variable.setSelectedValue(value); @@ -327,7 +339,7 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa long startTime = TimeLog.getTime(); - ObserveSwingDataSource dataSource = ui.getModel().getConfigModel().getLocalSourceModel().getSafeSource(true); + ObserveSwingDataSource dataSource = model.getConfigModel().getLocalSourceModel().getSafeSource(true); if (!dataSource.isOpen()) { dataSource.open(); } @@ -335,23 +347,20 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa ReportService reportService = dataSource.getReportService(); DataMatrix data = reportService.executeReport(report, tripIds); timeLog.log(startTime, "execute", report.getName()); - log.info("Result to display:\n" + data.getClipboardContent(true, true, false, '\t')); + log.info(String.format("Result to display:\n%s", data.getClipboardContent(true, true, false, '\t'))); // calcul des données et contruction du tableau - model.getResultModel().populate(report, data); + stepModel.getResultModel().populate(report, data); // mise a jour du clipboard automatique si requis - if (model.isAutoCopyToClipboard()) { - CopyResultToClipboard.copyReportToClipBoard(report, - model.getResultModel(), - model.isCopyRowHeaders(), - model.isCopyColumnHeaders()); + if (stepModel.isAutoCopyToClipboard()) { + CopyResultToClipboard.copyReportToClipBoard(report, stepModel); } } catch (Exception e) { UIHelper.handlingError("Could not obtain report data", e); - model.getResultModel().clear(); + stepModel.getResultModel().clear(); } finally { - ui.getModel().setBusy(false); + model.setBusy(false); } } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/report/actions/CopyResultToClipboard.java ===================================== @@ -47,20 +47,16 @@ public class CopyResultToClipboard extends AdminTabUIActionSupport<ReportUI> { protected void doActionPerformed(ActionEvent e, ReportUI ui) { ReportModel stepModel = ui.getStepModel(); Report report = stepModel.getSelectedReport(); - ResultTableModel model = stepModel.getResultModel(); - copyReportToClipBoard(report, model, stepModel.isCopyRowHeaders(), stepModel.isCopyColumnHeaders()); + copyReportToClipBoard(report, stepModel); } - public static void copyReportToClipBoard(Report report, - ResultTableModel model, - boolean copyRowHeaders, - boolean copyColumnHeaders) { + public static void copyReportToClipBoard(Report report, ReportModel stepModel) { if (report == null) { return; } - + ResultTableModel model = stepModel.getResultModel(); log.info(String.format("Will copy result of report %s - result dimension : [%d,%d]", report.getName(), model.getRowCount(), model.getColumnCount())); - String content = model.getClipbordContent(copyRowHeaders, copyColumnHeaders); + String content = model.getClipbordContent(stepModel.isCopyRowHeaders(), stepModel.isCopyColumnHeaders()); UIHelperSupport.copyToClipBoard(content); } } ===================================== observe-i18n/src/main/i18n/translations/observe_en_GB.properties ===================================== @@ -361,6 +361,8 @@ observe.admin.report.copy.row.headers=Copy row header observe.admin.report.copy.row.headers.tip=Add in result row headers observe.admin.report.description=Generate reports observe.admin.report.model.type=Model type to use +observe.admin.report.no.report.found=No report found. +observe.admin.report.report.count.found=Found %s reports. observe.admin.report.report.description=Description of selected report observe.admin.report.result=Results observe.admin.report.select=Select report ===================================== observe-i18n/src/main/i18n/translations/observe_es_ES.properties ===================================== @@ -361,6 +361,8 @@ observe.admin.report.copy.row.headers=Copiar las cabeceras de linea observe.admin.report.copy.row.headers.tip=Añadir al resultado las cabeceras de linea (ej. la primera columna) observe.admin.report.description=Generar los cuadros de síntesis del informe de fin del embarque observe.admin.report.model.type=Tipo de modelo a utilizar +observe.admin.report.no.report.found=No report found. \#TODO +observe.admin.report.report.count.found=Found %s reports. \#TODO observe.admin.report.report.description=Descripción del informe seleccionado observe.admin.report.result=Resultados del informe observe.admin.report.select=Selección del informe ===================================== observe-i18n/src/main/i18n/translations/observe_fr_FR.properties ===================================== @@ -361,6 +361,8 @@ observe.admin.report.copy.row.headers=Copier les entêtes de ligne observe.admin.report.copy.row.headers.tip=Ajoute dans le résultat les entêtes de ligne (i.e la première colonne) observe.admin.report.description=Générer les tableaux de synthèse du rapport de fin d'embarquement observe.admin.report.model.type=Type de modèle à utiliser +observe.admin.report.no.report.found=Aucun rapport trouvé. +observe.admin.report.report.count.found=%s rapports détectés. observe.admin.report.report.description=Description du rapport sélectionné observe.admin.report.result=Résultats du rapport observe.admin.report.select=Sélection du rapport View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/8b001306bcd5bfd2ee4e3da2cf8… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/8b001306bcd5bfd2ee4e3da2cf8… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 6 commits: Introduce new simple Jaxx Object initializer
by Tony CHEMIT 25 Sep '19

25 Sep '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 9523f5d5 by tchemit at 2019-09-25T15:27:57Z Introduce new simple Jaxx Object initializer - - - - - 96301f64 by tchemit at 2019-09-25T15:28:04Z fix a i18n - - - - - 9e601963 by tchemit at 2019-09-25T15:28:39Z reorder enumeration values since we now use it to add a key stroke in validation admin config ui - - - - - 6461eabe by tchemit at 2019-09-25T15:29:09Z let&#39;s listen JaxxObjectActionSupport (to have full trace of accepted/rejected actions) - - - - - 6ef6650d by tchemit at 2019-09-25T15:29:49Z Continue to improve admin actions using new jaxx api. - - - - - 8c192060 by tchemit at 2019-09-25T15:30:18Z use new api - - - - - 30 changed files: - client-configuration/src/main/java/fr/ird/observe/client/constants/ValidationModelMode.java - client-configuration/src/main/resources/observe-log4j2.xml - client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminUI.jcss - client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminUILauncher.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminUIModel.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/actions/SelectData.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/config/ConfigUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/admin/config/ConfigUI.jcss - client-core/src/main/java/fr/ird/observe/client/ui/admin/config/ConfigUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/longline/pairing/ActivityLonglinePairingUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportConfigUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportConfigUI.jcss - client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportModel.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/report/actions/ChooseFileReport.java - + client-core/src/main/java/fr/ird/observe/client/ui/admin/report/actions/SelectModelType.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/validate/ValidateConfigUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/admin/validate/ValidateUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/validate/actions/SelectValidationModelMode.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/validate/actions/SelectValidationScope.java - client-core/src/main/java/fr/ird/observe/client/ui/content/api/ContentUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/content/api/ContentUIInitializer.java - client-core/src/main/java/fr/ird/observe/client/ui/content/api/actions/GoToSubTab1.java - client-core/src/main/java/fr/ird/observe/client/ui/content/api/actions/GoToSubTab2.java - client-core/src/main/java/fr/ird/observe/client/ui/content/api/actions/GoToSubTab3.java - client-core/src/main/java/fr/ird/observe/client/ui/content/api/actions/GoToTab1.java - client-core/src/main/java/fr/ird/observe/client/ui/content/api/actions/GoToTab2.java - client-core/src/main/java/fr/ird/observe/client/ui/content/api/actions/GoToTab3.java The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/ebe457ca303b922f53224288b3… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/ebe457ca303b922f53224288b3… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Review Report action
by Tony CHEMIT 25 Sep '19

25 Sep '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: ebe457ca by tchemit at 2019-09-25T09:29:37Z Review Report action - - - - - 18 changed files: - client-core/src/main/i18n/getters/java.getter - client-core/src/main/i18n/getters/jaxx.getter - client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminActionModel.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminStep.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminTabUIInitializer.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportConfigUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportConfigUI.jcss - client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportModel.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportUI.jcss - client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportUIHandler.java - + client-core/src/main/java/fr/ird/observe/client/ui/admin/report/actions/ChooseFileReport.java - + client-core/src/main/java/fr/ird/observe/client/ui/admin/report/actions/CopyResultToClipboard.java - client-core/src/main/java/fr/ird/observe/client/ui/content/api/ContentUIInitializer.java - client-db/src/main/java/fr/ird/observe/client/ui/util/UIHelperSupport.java - observe-i18n/src/main/i18n/translations/observe_en_GB.properties - observe-i18n/src/main/i18n/translations/observe_es_ES.properties - observe-i18n/src/main/i18n/translations/observe_fr_FR.properties Changes: ===================================== client-core/src/main/i18n/getters/java.getter ===================================== @@ -46,6 +46,7 @@ observe.action.configuration.tip observe.action.connexions observe.action.connexions.tip observe.action.continue +observe.action.copy observe.action.copy.to.clipBoard observe.action.copyFloatingObjectPartToLeft observe.action.copyFloatingObjectPartToLeft.tip @@ -153,12 +154,10 @@ observe.actions.operation.message.needFix observe.actions.operation.message.running observe.actions.operation.message.successed observe.actions.report -observe.actions.report.description -observe.actions.report.title -observe.actions.report.title.tip observe.actions.saveLocal observe.actions.saveLocal.description observe.actions.synchro.cancel.tip +observe.actions.synchro.copy.tip observe.actions.synchro.data observe.actions.synchro.data.copyToLeft.tip observe.actions.synchro.data.copyToRight.tip @@ -262,6 +261,9 @@ observe.actions.validate.validator.message.header observe.actions.validate.validator.message.header.tip observe.actions.validate.validator.scope.header observe.actions.validate.validator.scope.header.tip +observe.admin.report.description +observe.admin.report.title +observe.admin.report.title.tip observe.admin.resume.no.operation.done observe.admin.resume.operation.canceled observe.admin.resume.operation.done ===================================== client-core/src/main/i18n/getters/jaxx.getter ===================================== @@ -9,15 +9,8 @@ observe.Id.species observe.Id.weightMeasureType observe.Id.whenArriving observe.Id.whenLeaving -observe.action.auto.copy.to.clipboard -observe.action.auto.copy.to.clipboard.tip observe.action.configuration observe.action.connexions -observe.action.copy -observe.action.copy.column.headers -observe.action.copy.column.headers.tip -observe.action.copy.row.headers -observe.action.copy.row.headers.tip observe.action.create observe.action.delete observe.action.floatingObjectPresets @@ -27,16 +20,6 @@ observe.action.save.all.tip observe.actions.longline.pairing.config observe.actions.operation.configuration observe.actions.operations -observe.actions.report.config -observe.actions.report.copy.options -observe.actions.report.model.type -observe.actions.report.report.description -observe.actions.report.result -observe.actions.report.select -observe.actions.report.select.file -observe.actions.report.select.file.tip -observe.actions.report.variables -observe.actions.synchro.copy.tip observe.actions.synchro.data.actionsToPerform observe.actions.synchro.referential.config.mode observe.actions.synchro.referential.obsolete.entities.list @@ -51,6 +34,21 @@ observe.actions.validate.select.mode observe.actions.validate.select.mode.tip observe.actions.validate.select.scope observe.actions.validate.select.scope.tip +observe.admin.report.auto.copy.to.clipboard +observe.admin.report.auto.copy.to.clipboard.tip +observe.admin.report.config +observe.admin.report.copy.column.headers +observe.admin.report.copy.column.headers.tip +observe.admin.report.copy.options +observe.admin.report.copy.row.headers +observe.admin.report.copy.row.headers.tip +observe.admin.report.model.type +observe.admin.report.report.description +observe.admin.report.result +observe.admin.report.select +observe.admin.report.select.file +observe.admin.report.select.file.tip +observe.admin.report.variables observe.common.directory observe.common.file observe.common.global.progression.description ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminActionModel.java ===================================== @@ -6,21 +6,24 @@ * %% * 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 + * 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 + * + * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ package fr.ird.observe.client.ui.admin; +import io.ultreia.java4all.bean.JavaBean; +import io.ultreia.java4all.bean.definition.JavaBeanDefinition; +import io.ultreia.java4all.bean.definition.JavaBeanDefinitionStore; import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardExtStepModel; /** @@ -29,10 +32,23 @@ import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardExtStepModel; * @author Tony Chemit - dev(a)tchemit.fr * @since 1.4 */ -public abstract class AdminActionModel extends WizardExtStepModel<AdminStep> { +public abstract class AdminActionModel extends WizardExtStepModel<AdminStep> implements JavaBean { + /** + * Lazy helper class that manages all java bean operations. + * + * @see #javaBeanDefinition() + */ + private transient JavaBeanDefinition javaBeanDefinition; protected AdminActionModel(AdminStep objectOperation) { super(objectOperation); } + @Override + public final JavaBeanDefinition javaBeanDefinition() { + return javaBeanDefinition == null + ? javaBeanDefinition = JavaBeanDefinitionStore.getDefinition(getClass()).orElseThrow(() -> new NullPointerException("Can't find JavaBeanDefinition for " + getClass())) + : javaBeanDefinition; + } + } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminStep.java ===================================== @@ -197,11 +197,11 @@ public enum AdminStep implements WizardExtStep { /** pour lancer la generation des rapports */ REPORT( - n("observe.actions.report.title"), - n("observe.actions.report.title.tip"), + n("observe.admin.report.title"), + n("observe.admin.report.title.tip"), "report", n("observe.actions.report"), - n("observe.actions.report.description"), + n("observe.admin.report.description"), ReportModel.class, ReportUI.class, false, ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/AdminTabUIInitializer.java ===================================== @@ -25,7 +25,9 @@ package fr.ird.observe.client.ui.admin; import com.google.common.collect.ImmutableMap; import fr.ird.observe.client.ObserveSwingApplicationContext; import fr.ird.observe.client.ui.content.api.ContentUIInitializer; +import fr.ird.observe.client.ui.util.BeanCheckBox; import fr.ird.observe.client.ui.util.UIHelper; +import fr.ird.observe.client.ui.util.UIHelperSupport; import fr.ird.observe.dto.I18nEnumHelper; import fr.ird.observe.dto.decoration.DecoratorService; import org.apache.commons.lang3.BooleanUtils; @@ -80,7 +82,6 @@ public class AdminTabUIInitializer<UI extends AdminTabUI> { private static final String CLIENT_PROPERTY_NOT_BLOCKING = "notBlocking"; - /** Logger. */ private static final Logger log = LogManager.getLogger(AdminTabUIInitializer.class); protected final UI ui; @@ -115,6 +116,10 @@ public class AdminTabUIInitializer<UI extends AdminTabUI> { // init((JComponent) o, doNotBlockComponentIds); // } + if (o instanceof BeanCheckBox) { + init((BeanCheckBox) o); + } + if (o instanceof AbstractButton) { init((AbstractButton) o); continue; @@ -191,6 +196,15 @@ public class AdminTabUIInitializer<UI extends AdminTabUI> { } } + protected void init(BeanCheckBox editor) { + log.debug("init simple boolean editor " + editor.getName()); + String propertyName = editor.getProperty(); + if (StringUtils.isEmpty(propertyName)) { + editor.setProperty(editor.getName()); + } + editor.init(UIHelperSupport.isBindingFromBean(editor), UIHelperSupport.isBindingToBean(editor)); + } + @SuppressWarnings("unchecked") protected void init(BeanComboBox beanComboBox) { if (log.isDebugEnabled()) { ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportConfigUI.jaxx ===================================== @@ -59,10 +59,7 @@ protected void finalize() throws Throwable { <JLabel id='modelTypeLabel'/> </cell> <cell weightx='1' fill="horizontal" columns="2"> - <EnumEditor id="modelType" - genericType='ObserveModelType' - constructorParams='ObserveModelType.class' - onItemStateChanged='getHandler().setModelTypeFromEvent(event)'/> + <EnumEditor id="modelType" genericType='ObserveModelType' constructorParams='ObserveModelType.class' onItemStateChanged='getHandler().setModelTypeFromEvent(event)'/> </cell> </row> <row> @@ -70,11 +67,10 @@ protected void finalize() throws Throwable { <JLabel id='reportFileLabel'/> </cell> <cell weightx='1' fill="horizontal"> - <JTextField id="reportFile" - onKeyReleased='stepModel.setReportFile(new File(((JTextField)event.getSource()).getText()))'/> + <JTextField id="reportFile" onKeyReleased='stepModel.setReportFile(new File(((JTextField)event.getSource()).getText()))'/> </cell> <cell anchor="east"> - <JButton id="reportFileChooserAction" onActionPerformed="getHandler().chooseReportFile()"/> + <JButton id="chooseFileReport"/> </cell> </row> </Table> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportConfigUI.jcss ===================================== @@ -21,11 +21,11 @@ */ #reportConfig { - border:{new TitledBorder(t("observe.actions.report.config"))}; + border:{new TitledBorder(t("observe.admin.report.config"))}; } #modelTypeLabel { - text:"observe.actions.report.model.type"; + text:"observe.admin.report.model.type"; } #modelType { @@ -33,15 +33,11 @@ } #reportFileLabel { - text:"observe.actions.report.select.file"; - toolTipText:"observe.actions.report.select.file.tip"; + text:"observe.admin.report.select.file"; + toolTipText:"observe.admin.report.select.file.tip"; } #reportFile { text:{getStringValue(stepModel.getReportFile())}; } -#reportFileChooserAction { - actionIcon:"fileChooser"; -} - ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportModel.java ===================================== @@ -32,8 +32,9 @@ import fr.ird.observe.client.ui.tree.selection.SelectionTreeModel; import fr.ird.observe.dto.ObserveModelType; import fr.ird.observe.services.service.actions.report.Report; import fr.ird.observe.services.service.actions.report.ReportBuilder; -import org.apache.logging.log4j.Logger; +import io.ultreia.java4all.bean.spi.GenerateJavaBeanDefinition; import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import java.beans.PropertyChangeListener; import java.io.File; @@ -50,6 +51,7 @@ import java.util.stream.Collectors; * @author Tony Chemit - dev(a)tchemit.fr * @since 1.3 */ +@GenerateJavaBeanDefinition public class ReportModel extends AdminActionModel { public static final String SELECTED_TRIP_PROPERTY_NAME = "selectedTrip"; ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportUI.jaxx ===================================== @@ -28,6 +28,8 @@ fr.ird.observe.client.ui.admin.AdminUI fr.ird.observe.services.service.actions.report.Report + fr.ird.observe.client.ui.util.BeanCheckBox + java.awt.Dimension javax.swing.DefaultComboBoxModel @@ -81,17 +83,15 @@ public void destroy() { </JScrollPane> <JPanel id="copyPane" constraints='BorderLayout.SOUTH'> - <JPanel id='copyOptions' constraints='BorderLayout.NORTH'> - <JCheckBox id='autoCopyToClipboard' - onStateChanged='getStepModel().setAutoCopyToClipboard(((JCheckBox)event.getSource()).isSelected())'/> - <JCheckBox id='copyRowHeaders' - onStateChanged='getStepModel().setCopyRowHeaders(((JCheckBox)event.getSource()).isSelected())'/> - <JCheckBox id='copyColumnHeaders' - onStateChanged='getStepModel().setCopyColumnHeaders(((JCheckBox)event.getSource()).isSelected())'/> + <JPanel id='copyOptions' constraints='BorderLayout.NORTH' beanScope="stepModel"> + <BeanCheckBox id='autoCopyToClipboard'/> +<!-- onStateChanged='getStepModel().setAutoCopyToClipboard(((JCheckBox)event.getSource()).isSelected())'/>--> + <BeanCheckBox id='copyRowHeaders'/> +<!-- onStateChanged='getStepModel().setCopyRowHeaders(((JCheckBox)event.getSource()).isSelected())'/>--> + <BeanCheckBox id='copyColumnHeaders'/> +<!-- onStateChanged='getStepModel().setCopyColumnHeaders(((JCheckBox)event.getSource()).isSelected())'/>--> </JPanel> - <JButton id="copy" constraints='BorderLayout.CENTER' - onActionPerformed='getHandler().copyReportToClipBoard(getStepModel().getSelectedReport(), getResultModel(), getStepModel().isCopyRowHeaders(), - getStepModel().isCopyColumnHeaders())'/> + <JButton id="copyResultToClipboard" constraints='BorderLayout.CENTER'/> </JPanel> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportUI.jcss ===================================== @@ -35,18 +35,17 @@ JToolBar { } #reportVariableSelectorPanel { - border:{new TitledBorder(t("observe.actions.report.variables"))}; + border:{new TitledBorder(t("observe.admin.report.variables"))}; layout:{new GridLayout(0,1)}; } #copyOptions { - border:{new TitledBorder(t("observe.actions.report.copy.options"))}; + border:{new TitledBorder(t("observe.admin.report.copy.options"))}; layout:{new GridLayout(0,1)}; } #resultPane { - border:{new TitledBorder(t("observe.actions.report.result"))}; - /*columnHeaderView:{resultTable.getTableHeader()};*/ + border:{new TitledBorder(t("observe.admin.report.result"))}; verticalScrollBarPolicy:{JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED}; } @@ -56,7 +55,7 @@ JToolBar { } #requestSelectorPane { - border:{new TitledBorder(t("observe.actions.report.select"))}; + border:{new TitledBorder(t("observe.admin.report.select"))}; layout:{new BorderLayout()}; } @@ -66,7 +65,7 @@ JToolBar { } #reportDescriptionPane { - columnHeaderView:{UIHelper.newLabel(t("observe.actions.report.report.description") ,"information", 10)}; + columnHeaderView:{UIHelper.newLabel(t("observe.admin.report.report.description") ,"information", 10)}; minimumSize:{new Dimension(0,0)}; } @@ -86,29 +85,25 @@ JToolBar { #copyPane { layout:{new BorderLayout()}; } + #autoCopyToClipboard { - text:"observe.action.auto.copy.to.clipboard"; - toolTipText:"observe.action.auto.copy.to.clipboard.tip"; - selected:{stepModel.isAutoCopyToClipboard()}; + text:"observe.admin.report.auto.copy.to.clipboard"; + toolTipText:"observe.admin.report.auto.copy.to.clipboard.tip"; + /*selected:{stepModel.isAutoCopyToClipboard()};*/ } #copyRowHeaders { - text:"observe.action.copy.row.headers"; - toolTipText:"observe.action.copy.row.headers.tip"; - selected:{stepModel.isCopyRowHeaders()}; + text:"observe.admin.report.copy.row.headers"; + toolTipText:"observe.admin.report.copy.row.headers.tip"; + /*selected:{stepModel.isCopyRowHeaders()};*/ } #copyColumnHeaders { - text:"observe.action.copy.column.headers"; - toolTipText:"observe.action.copy.column.headers.tip"; - selected:{stepModel.isCopyColumnHeaders()}; -} - -#copy { - text:"observe.action.copy"; - toolTipText:"observe.actions.synchro.copy.tip"; - actionIcon:"report-copy"; - /*enabled:{stepModel.getSelectedReport() != null};*/ - enabled:{stepModel.isValid() }; - mnemonic:C; + text:"observe.admin.report.copy.column.headers"; + toolTipText:"observe.admin.report.copy.column.headers.tip"; + /*selected:{stepModel.isCopyColumnHeaders()};*/ +} + +#copyResultToClipboard { + enabled:{stepModel.isValid()}; } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/report/ReportUIHandler.java ===================================== @@ -26,7 +26,9 @@ import fr.ird.observe.client.ObserveSwingTechnicalException; import fr.ird.observe.client.db.ObserveSwingDataSource; import fr.ird.observe.client.ui.admin.AdminStep; import fr.ird.observe.client.ui.admin.AdminTabUIHandler; +import fr.ird.observe.client.ui.admin.AdminTabUIInitializer; import fr.ird.observe.client.ui.admin.config.ConfigUI; +import fr.ird.observe.client.ui.admin.report.actions.CopyResultToClipboard; import fr.ird.observe.client.ui.util.UIHelper; import fr.ird.observe.client.ui.util.UIHelperSupport; import fr.ird.observe.dto.ObserveModelType; @@ -61,7 +63,6 @@ import java.awt.BorderLayout; import java.awt.Component; import java.awt.Font; import java.awt.event.ItemEvent; -import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -87,26 +88,21 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa @Override public void afterInit(ReportUI ui) { + new AdminTabUIInitializer<>(ui).initUI(); super.afterInit(ui); - if (log.isDebugEnabled()) { - log.debug(" specialized for [" + ui.getStep() + "] for main ui " + parentUI.getClass().getName() + "@" + System.identityHashCode(this.ui)); - } + log.debug(String.format(" specialized for [%s] for main ui %s@%d", ui.getStep(), parentUI.getClass().getName(), System.identityHashCode(this.ui))); revalidateTabUI = ui::revalidate; - UIHelper.setLayerUI(ui.getContent(), parentUI.getConfigBlockLayerUI()); + UIHelperSupport.setLayerUI(ui.getContent(), parentUI.getConfigBlockLayerUI()); ReportModel stepModel = getStepModel(); stepModel.addPropertyChangeListener(evt -> { - if (ui.getModel().getModelState() == WizardState.CANCELED) { - // action annulée, on ne declanche plus rien return; } String propertyName = evt.getPropertyName(); Object newValue = evt.getNewValue(); - ReportModel source = (ReportModel) evt.getSource(); - if (ReportModel.REPORTS_PROPERTY_NAME.equals(propertyName)) { List<?> reports = (List<?>) newValue; onReportsChanged(ui, reports); @@ -119,8 +115,6 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa } else if (ReportModel.VALID_PROPERTY_NAME.equals(propertyName)) { final Boolean valid = (Boolean) newValue; SwingUtilities.invokeLater(() -> onValidChanged(source, valid != null && valid)); - - } }); @@ -130,14 +124,12 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { if (value == null) { - // on affiche une message de sélection de report value = t("observe.message.select.report"); } return super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); } } - ); // ajout du renderer sur le tableau @@ -180,15 +172,11 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa ui.getResultTable().setDefaultRenderer(String.class, renderer); // initialisation de l'ui de configuration - if (log.isInfoEnabled()) { - log.info("Init extra configuration for " + ui.getName()); - } + log.info(String.format("Init extra configuration for %s", ui.getName())); ConfigUI configUI = (ConfigUI) parentUI.getStepUI(AdminStep.CONFIG); JAXXInitialContext tx = new JAXXInitialContext().add(configUI).add(this); - ReportConfigUI extraConfig = new ReportConfigUI(tx); - configUI.getExtraConfig().add(extraConfig); } @@ -199,11 +187,7 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa } void updateSelectedReportFromEvent(ItemEvent event) { - if (event.getStateChange() == ItemEvent.SELECTED) { - if (log.isInfoEnabled()) { - log.info("Item selected!"); - } JComboBox source = (JComboBox) event.getSource(); updateSelectedReport((Report) source.getSelectedItem()); } @@ -212,11 +196,8 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa void updateSelectedReport(Report report) { ui.getModel().setBusy(true); try { - if (log.isInfoEnabled()) { - log.info("New selected report : " + report); - } + log.info(String.format("New selected report : %s", report)); getStepModel().setSelectedReport(report); - } finally { ui.getModel().setBusy(false); } @@ -232,64 +213,24 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa private void updateVariable(JComboBox combo, Object value) { String variableName = (String) combo.getClientProperty(VARIABLE_NAME); if (variableName == null) { - throw new IllegalStateException( - "No 'variableName' clientProperty on " + combo); + throw new IllegalStateException("No 'variableName' clientProperty on " + combo); } - log.info("Set variable [" + variableName + "] to value " + value); + log.info(String.format("Set variable [%s] to value %s", variableName, value)); getStepModel().addVariable(variableName, value); } - void chooseReportFile() { - ReportModel model = ui.getModel().getReportModel(); - File f = UIHelper.chooseFile( - ui, - t("observe.title.choose.reportFile"), - t("observe.action.choose.reportFile"), - model.getReportFile(), - "^.+\\.properties$", - t("observe.action.choose.reportFile.description")); - model.setReportFile(f); - } - - void copyReportToClipBoard(Report report, - ResultTableModel model, - boolean copyRowHeaders, - boolean copyColumnHeaders) { - if (report == null) { - - // pas de report sélectionné, rien à faire - return; - } - - if (log.isDebugEnabled()) { - log.debug("Will copy result of report " + report.getName()); - log.debug("Result dimension : [" + model.getRowCount() + "," + - model.getColumnCount() + "]"); - } - String content = model.getClipbordContent(copyRowHeaders, copyColumnHeaders); - UIHelper.copyToClipBoard(content); - } - private void onReportsChanged(ReportUI tabUI, List<?> newValue) { - - if (log.isDebugEnabled()) { - log.debug("New reports : " + newValue); - } - + log.debug("New reports : " + newValue); // on ajoute toujours une premiere valeur null (pour ne rien selectionne) newValue.add(0, null); - // on charge le nouveau modèle dans la liste déroulante - UIHelper.fillComboBox(tabUI.getReportSelector(), newValue, null); + UIHelperSupport.fillComboBox(tabUI.getReportSelector(), newValue, null); } @SuppressWarnings({"unchecked"}) private void onSelectedReportChanged(ReportUI tabUI, ReportModel model, Report report) { - log.info("New selected report [" + report + "]"); - ui.getModel().setBusy(true); - try { // on regénère l'ui de configuration des variables JPanel variablesPanel = tabUI.getReportVariableSelectorPanel(); @@ -303,30 +244,22 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa model.getResultModel().clear(); if (report != null) { - try { - ObserveSwingDataSource dataSource = ui.getModel().getConfigModel().getLocalSourceModel().getSafeSource(true); - ReportService reportService = dataSource.getReportService(); - report = reportService.populateVariables(report, ui.getModel().getSelectDataModel().getSelectedTripIds()); - } catch (Exception e) { throw new ObserveSwingTechnicalException("unable to populate report : " + report.getName(), e); } if (useVariables) { - // on construit les ui pour chaqsue variable for (ReportVariable variable : report.getVariables()) { String variableName = variable.getName(); - // String value = variables.get(variableName); Set values = variable.getValues(); List<Object> universe = new ArrayList<>(values); - - Decorator decorator; log.info("Variable type: " + variable.getType()); + Decorator decorator; Class type; if (ReferentialDto.class.isAssignableFrom(variable.getType()) && !universe.isEmpty()) { type = DtoModelHelper.fromReferentialDto(variable.getType()).toReferenceType(); @@ -340,7 +273,6 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa } log.info("Variable real type: " + type); BeanFilterableComboBox combo = UIHelperSupport.newBeanFilterableComboBox(type, (JXPathDecorator) decorator, universe); - combo.setShowReset(true); JPanel p = new JPanel(new BorderLayout()); p.add(new JLabel(t(I18nDecoratorHelper.getTypeI18nKey(variable.getType()))), BorderLayout.WEST); @@ -349,20 +281,14 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa JComboBox jComboBox = combo.getCombobox(); jComboBox.putClientProperty(VARIABLE_NAME, variableName); jComboBox.addItemListener(e -> { - JComboBox comboBox = (JComboBox) e.getSource(); - if (e.getStateChange() == ItemEvent.DESELECTED) { - - // ne rien faire de l'évènement de déselection - // sauf si le modèle devient vide - + // ne rien faire de l'évènement de déselection sauf si le modèle devient vide if (comboBox.getSelectedItem() == null) { updateVariable(comboBox, null); } return; } - Object o = e.getItem(); updateVariable(comboBox, o); }); @@ -371,51 +297,35 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa // on revalide la disposition de l'onglet SwingUtilities.invokeLater(revalidateTabUI); - Map<String, Object> variables = model.getVariables(); updateValidState(report, variables); } } finally { - ui.getModel().setBusy(false); - } } private void onVariablesChanges(ReportModel model, Map<String, Object> variables) { - Report report = model.getSelectedReport(); if (report != null) { - updateValidState(report, variables); } } private void onValidChanged(ReportModel model, boolean valid) { - - if (log.isInfoEnabled()) { - log.info("valid state changed to " + valid); - } - + log.info("valid state changed to " + valid); if (!valid) { // calcul des données et contruction du tableau model.getResultModel().clear(); return; } - ui.getModel().setBusy(true); - try { - Report report = model.getSelectedReport(); - ImmutableSet<String> tripIds = ui.getModel().getSelectDataModel().getSelectedTripIds(); DataDtoReference trip = ui.getModel().getSelectDataModel().getSelectedTrip(); - log.info(String.format("Build result for report [%s] on %s", report.getName(), trip)); - Map<String, Object> variables = model.getVariables(); - for (ReportVariable variable : report.getVariables()) { Object value = variables.get(variable.getName()); variable.setSelectedValue(value); @@ -429,11 +339,8 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa } ReportService reportService = dataSource.getReportService(); - DataMatrix data = reportService.executeReport(report, tripIds); - timeLog.log(startTime, "execute", report.getName()); - log.info("Result to display:\n" + data.getClipboardContent(true, true, false, '\t')); // calcul des données et contruction du tableau @@ -441,10 +348,10 @@ public class ReportUIHandler extends AdminTabUIHandler<ReportUI> implements UIHa // mise a jour du clipboard automatique si requis if (model.isAutoCopyToClipboard()) { - copyReportToClipBoard(report, - model.getResultModel(), - model.isCopyRowHeaders(), - model.isCopyColumnHeaders()); + CopyResultToClipboard.copyReportToClipBoard(report, + model.getResultModel(), + model.isCopyRowHeaders(), + model.isCopyColumnHeaders()); } } catch (Exception e) { UIHelper.handlingError("Could not obtain report data", e); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/report/actions/ChooseFileReport.java ===================================== @@ -0,0 +1,56 @@ +package fr.ird.observe.client.ui.admin.report.actions; + +/*- + * #%L + * ObServe :: Client core + * %% + * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.client.ui.ObserveKeyStrokesSupport; +import fr.ird.observe.client.ui.admin.report.ReportConfigUI; +import fr.ird.observe.client.ui.admin.report.ReportModel; +import fr.ird.observe.client.ui.util.UIHelper; +import org.nuiton.jaxx.runtime.swing.action.JComponentActionSupport; + +import java.awt.event.ActionEvent; +import java.io.File; + +import static io.ultreia.java4all.i18n.I18n.t; + +public class ChooseFileReport extends JComponentActionSupport<ReportConfigUI> { + + public ChooseFileReport() { + super("", "", "fileChooser", ObserveKeyStrokesSupport.KEY_STROKE_STORAGE_DO_CHOOSE_FILE); + } + + @Override + protected void doActionPerformed(ActionEvent e, ReportConfigUI ui) { + ReportModel model = ui.getModel().getReportModel(); + File f = UIHelper.chooseFile( + ui, + t("observe.title.choose.reportFile"), + t("observe.action.choose.reportFile"), + model.getReportFile(), + "^.+\\.properties$", + t("observe.action.choose.reportFile.description")); + if (f != null) { + model.setReportFile(f); + } + } +} ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/report/actions/CopyResultToClipboard.java ===================================== @@ -0,0 +1,66 @@ +package fr.ird.observe.client.ui.admin.report.actions; + +/*- + * #%L + * ObServe :: Client core + * %% + * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.client.ui.admin.actions.AdminTabUIActionSupport; +import fr.ird.observe.client.ui.admin.report.ReportModel; +import fr.ird.observe.client.ui.admin.report.ReportUI; +import fr.ird.observe.client.ui.admin.report.ResultTableModel; +import fr.ird.observe.client.ui.util.UIHelperSupport; +import fr.ird.observe.services.service.actions.report.Report; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.awt.event.ActionEvent; + +import static io.ultreia.java4all.i18n.I18n.t; + +public class CopyResultToClipboard extends AdminTabUIActionSupport<ReportUI> { + + private static final Logger log = LogManager.getLogger(CopyResultToClipboard.class); + + public CopyResultToClipboard() { + super(t("observe.action.copy"), t("observe.actions.synchro.copy.tip"), "report-copy", 'C'); + } + + @Override + protected void doActionPerformed(ActionEvent e, ReportUI ui) { + ReportModel stepModel = ui.getStepModel(); + Report report = stepModel.getSelectedReport(); + ResultTableModel model = stepModel.getResultModel(); + copyReportToClipBoard(report, model, stepModel.isCopyRowHeaders(), stepModel.isCopyColumnHeaders()); + } + + public static void copyReportToClipBoard(Report report, + ResultTableModel model, + boolean copyRowHeaders, + boolean copyColumnHeaders) { + if (report == null) { + return; + } + + log.info(String.format("Will copy result of report %s - result dimension : [%d,%d]", report.getName(), model.getRowCount(), model.getColumnCount())); + String content = model.getClipbordContent(copyRowHeaders, copyColumnHeaders); + UIHelperSupport.copyToClipBoard(content); + } +} ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/api/ContentUIInitializer.java ===================================== @@ -33,6 +33,7 @@ import fr.ird.observe.client.ui.util.BeanDatePicker; import fr.ird.observe.client.ui.util.BeanEnumEditor; import fr.ird.observe.client.ui.util.BooleanEditor; import fr.ird.observe.client.ui.util.UIHelper; +import fr.ird.observe.client.ui.util.UIHelperSupport; import fr.ird.observe.client.ui.util.tripMap.ObserveMapPane; import fr.ird.observe.client.validation.ObserveSwingValidator; import fr.ird.observe.dto.I18nEnumHelper; @@ -132,9 +133,6 @@ public class ContentUIInitializer<UI extends ContentUI> { public static final String SUB_TABBED_PANE = "subTabbedPane"; private static final String CLIENT_PROPERTY_NOT_BLOCKING = "notBlocking"; - private static final String CLIENT_PROPERTY_SKIP_BINDING_TO_BEAN = "skipBindingToBean"; - private static final String CLIENT_PROPERTY_SKIP_BINDING_FROM_BEAN = "skipBindingFromBean"; - private static final Logger log = LogManager.getLogger(ContentUIInitializer.class); protected final UI ui; @@ -365,7 +363,7 @@ public class ContentUIInitializer<UI extends ContentUI> { editor.getModel().addPropertyChangeListener("format", e -> ((EditableContentUI<?>) ui).getValidator().doValidate()); if (editor.getBean() != null) { - if (isBindingFromBean(editor)) { + if (UIHelperSupport.isBindingFromBean(editor)) { editor.getModel().addPropertyChangeListener(propertyName, e -> { Float oldValue = editor.getModel().getTemperature(); Float newValue = (Float) e.getNewValue(); @@ -382,7 +380,7 @@ public class ContentUIInitializer<UI extends ContentUI> { editor.setProperty(editor.getName()); } if (editor.getBean() != null) { - if (isBindingFromBean(editor)) { + if (UIHelperSupport.isBindingFromBean(editor)) { editor.getModel().addPropertyChangeListener(editor.getProperty(), e -> { String oldValue = editor.getText(); String newValue = (String) e.getNewValue(); @@ -400,7 +398,7 @@ public class ContentUIInitializer<UI extends ContentUI> { } if (editor.getBean() != null) { - if (isBindingFromBean(editor)) { + if (UIHelperSupport.isBindingFromBean(editor)) { editor.getModel().addPropertyChangeListener(editor.getProperty(), e -> { String oldValue = editor.getText(); String newValue = (String) e.getNewValue(); @@ -418,7 +416,7 @@ public class ContentUIInitializer<UI extends ContentUI> { } if (editor.getBean() != null) { - if (isBindingFromBean(editor)) { + if (UIHelperSupport.isBindingFromBean(editor)) { editor.getModel().addPropertyChangeListener(editor.getProperty(), e -> { String oldValue = editor.getText(); String newValue = (String) e.getNewValue(); @@ -495,7 +493,7 @@ public class ContentUIInitializer<UI extends ContentUI> { } editor.init(); if (editor.getBean() != null) { - if (isBindingFromBean(editor)) { + if (UIHelperSupport.isBindingFromBean(editor)) { ((JavaBean) editor.getBean()).addPropertyChangeListener(config.getProperty(), e -> { Number oldValue = editor.getModel().getNumberValue(); Number newValue = (Number) e.getNewValue(); @@ -523,7 +521,7 @@ public class ContentUIInitializer<UI extends ContentUI> { JavaBean bean = (JavaBean) editor.getBean(); String property = editor.getProperty(); if (bean != null) { - if (isBindingFromBean(editor)) { + if (UIHelperSupport.isBindingFromBean(editor)) { bean.addPropertyChangeListener(property, e -> { Object oldValue = editor.getSelectedItem(); Object newValue = e.getNewValue(); @@ -573,7 +571,7 @@ public class ContentUIInitializer<UI extends ContentUI> { JavaBean bean = (JavaBean) editor.getModel().getBean(); String property = editor.getModel().getProperty(); if (bean != null) { - if (isBindingFromBean(editor)) { + if (UIHelperSupport.isBindingFromBean(editor)) { bean.addPropertyChangeListener(property, e -> { Collection oldValue = editor.getModel().getSelected(); Collection newValue = (Collection) e.getNewValue(); @@ -606,7 +604,7 @@ public class ContentUIInitializer<UI extends ContentUI> { JavaBean bean = (JavaBean) editor.getModel().getBean(); String property = editor.getModel().getPropertyTime(); if (bean != null) { - if (isBindingFromBean(editor)) { + if (UIHelperSupport.isBindingFromBean(editor)) { bean.addPropertyChangeListener(property, e -> { Date oldValue = editor.getModel().getTime(); Date newValue = (Date) e.getNewValue(); @@ -658,7 +656,7 @@ public class ContentUIInitializer<UI extends ContentUI> { JavaBean bean = (JavaBean) editor.getModel().getBean(); String property = editor.getModel().getPropertyDate(); if (bean != null) { - if (isBindingFromBean(editor)) { + if (UIHelperSupport.isBindingFromBean(editor)) { bean.addPropertyChangeListener(property, e -> { Date oldValue = editor.getModel().getDate(); Date newValue = (Date) e.getNewValue(); @@ -693,7 +691,7 @@ public class ContentUIInitializer<UI extends ContentUI> { JavaBean bean = (JavaBean) editor.getModel().getBean(); if (bean != null) { - if (isBindingFromBean(editor)) { + if (UIHelperSupport.isBindingFromBean(editor)) { bean.addPropertyChangeListener(editor.getModel().getPropertyLatitude(), e -> { Float oldValue = editor.getModel().getLatitude(); Float newValue = (Float) e.getNewValue(); @@ -755,7 +753,7 @@ public class ContentUIInitializer<UI extends ContentUI> { if (StringUtils.isEmpty(propertyName)) { editor.setProperty(editor.getName()); } - editor.init(isBindingFromBean(editor), isBindingToBean(editor)); + editor.init(UIHelperSupport.isBindingFromBean(editor), UIHelperSupport.isBindingToBean(editor)); } protected void init(BeanCheckBox editor) { @@ -764,7 +762,7 @@ public class ContentUIInitializer<UI extends ContentUI> { if (StringUtils.isEmpty(propertyName)) { editor.setProperty(editor.getName()); } - editor.init(isBindingFromBean(editor), isBindingToBean(editor)); + editor.init(UIHelperSupport.isBindingFromBean(editor), UIHelperSupport.isBindingToBean(editor)); } protected <B extends Enum<B>> void init(BeanEnumEditor<B> editor) { @@ -773,7 +771,7 @@ public class ContentUIInitializer<UI extends ContentUI> { if (StringUtils.isEmpty(propertyName)) { editor.setProperty(editor.getName()); } - editor.init(isBindingFromBean(editor), isBindingToBean(editor)); + editor.init(UIHelperSupport.isBindingFromBean(editor), UIHelperSupport.isBindingToBean(editor)); ImmutableMap.Builder<B, String> labelsBuilder = ImmutableMap.builder(); for (B e : EnumSet.allOf(editor.getType())) { @@ -791,7 +789,7 @@ public class ContentUIInitializer<UI extends ContentUI> { if (StringUtils.isEmpty(propertyName)) { editor.setProperty(editor.getName()); } - editor.init(isBindingFromBean(editor), isBindingToBean(editor)); + editor.init(UIHelperSupport.isBindingFromBean(editor), UIHelperSupport.isBindingToBean(editor)); editor.setLocale(ObserveSwingApplicationContextSupport.get().getConfig().getLocale()); JFormattedTextField formattedTextField = editor.getEditor(); formattedTextField.setEditable(true); @@ -840,16 +838,6 @@ public class ContentUIInitializer<UI extends ContentUI> { log.debug("init table editor " + editor.getName()); } - private boolean isBindingToBean(JComponent editor) { - Boolean skip = (Boolean) editor.getClientProperty(CLIENT_PROPERTY_SKIP_BINDING_TO_BEAN); - return skip == null || !skip; - } - - private boolean isBindingFromBean(JComponent editor) { - Boolean skip = (Boolean) editor.getClientProperty(CLIENT_PROPERTY_SKIP_BINDING_FROM_BEAN); - return skip == null || !skip; - } - private boolean isAutoSelectOnFocus(JComponent comp) { Boolean selectOnFocus = (Boolean) comp.getClientProperty("selectOnFocus"); return BooleanUtils.isTrue(selectOnFocus); ===================================== client-db/src/main/java/fr/ird/observe/client/ui/util/UIHelperSupport.java ===================================== @@ -76,6 +76,8 @@ public class UIHelperSupport extends SwingUtil { public static final PropertyChangeListener LOG_PROPERTY_CHANGE_LISTENER = new LogPropertyChanged(); static private final Logger log = LogManager.getLogger(UIHelperSupport.class); + private static final String CLIENT_PROPERTY_SKIP_BINDING_TO_BEAN = "skipBindingToBean"; + private static final String CLIENT_PROPERTY_SKIP_BINDING_FROM_BEAN = "skipBindingFromBean"; /** * Choisir un fichier via un sélecteur graphique de fichiers. @@ -357,6 +359,16 @@ public class UIHelperSupport extends SwingUtil { return new JAXXInitialContext().add(model).add(ui); } + public static boolean isBindingToBean(JComponent editor) { + Boolean skip = (Boolean) editor.getClientProperty(CLIENT_PROPERTY_SKIP_BINDING_TO_BEAN); + return skip == null || !skip; + } + + public static boolean isBindingFromBean(JComponent editor) { + Boolean skip = (Boolean) editor.getClientProperty(CLIENT_PROPERTY_SKIP_BINDING_FROM_BEAN); + return skip == null || !skip; + } + public static class LogPropertyChanged implements PropertyChangeListener { @Override public void propertyChange(PropertyChangeEvent evt) { ===================================== observe-i18n/src/main/i18n/translations/observe_en_GB.properties ===================================== @@ -33,8 +33,6 @@ observe.action.about.tip=About ObServe... observe.action.admin.cancel=Cancel wizard observe.action.admin.close=Close wizard observe.action.apply=Apply -observe.action.auto.copy.to.clipboard=Automatic copy in clipboard -observe.action.auto.copy.to.clipboard.tip=Copy automaticly in clipboard with report result observe.action.back.to.list=Back to list observe.action.back.to.list.tip=Go back to the list observe.action.cancel=Cancel @@ -84,10 +82,6 @@ observe.action.connexions=Manage connections observe.action.connexions.tip=Manage connection profiles observe.action.continue=Continue observe.action.copy=Copy -observe.action.copy.column.headers=Copy column headers -observe.action.copy.column.headers.tip=Add in result column headers -observe.action.copy.row.headers=Copy row header -observe.action.copy.row.headers.tip=Add in result row headers observe.action.copy.to.clipBoard=Copy in clipboard observe.action.copyFloatingObjectPartToLeft=Copy values from leaving to arriving observe.action.copyFloatingObjectPartToLeft.tip=Copy values from leaving to arriving @@ -236,18 +230,6 @@ observe.actions.operation.message.running=Operation <%1$s> is running... observe.actions.operation.message.successed=operation <%1$> is done. observe.actions.operations=operations observe.actions.report=Report -observe.actions.report.config=Report configuration -observe.actions.report.copy.options=Copy into clipboard options -observe.actions.report.description=Generate reports -observe.actions.report.model.type=Model type to use -observe.actions.report.report.description=Description of selected report -observe.actions.report.result=Results -observe.actions.report.select=Select report -observe.actions.report.select.file=File of reports definitions -observe.actions.report.select.file.tip=Choose file of reports definitions -observe.actions.report.title=Help to generat reports -observe.actions.report.title.tip=Help to generate reports -observe.actions.report.variables=Variables configuration observe.actions.saveLocal=Save local database observe.actions.saveLocal.description=Save modifcations on local database observe.actions.synchro.cancel.tip=Cancel @@ -369,6 +351,24 @@ observe.actions.validate.validator.message.header=Message observe.actions.validate.validator.message.header.tip=Message observe.actions.validate.validator.scope.header=... observe.actions.validate.validator.scope.header.tip=Type of message +observe.admin.report.auto.copy.to.clipboard=Automatic copy in clipboard +observe.admin.report.auto.copy.to.clipboard.tip=Copy automaticly in clipboard with report result +observe.admin.report.config=Report configuration +observe.admin.report.copy.column.headers=Copy column headers +observe.admin.report.copy.column.headers.tip=Add in result column headers +observe.admin.report.copy.options=Copy into clipboard options +observe.admin.report.copy.row.headers=Copy row header +observe.admin.report.copy.row.headers.tip=Add in result row headers +observe.admin.report.description=Generate reports +observe.admin.report.model.type=Model type to use +observe.admin.report.report.description=Description of selected report +observe.admin.report.result=Results +observe.admin.report.select=Select report +observe.admin.report.select.file=File of reports definitions +observe.admin.report.select.file.tip=Choose file of reports definitions +observe.admin.report.title=Help to generat reports +observe.admin.report.title.tip=Help to generate reports +observe.admin.report.variables=Variables configuration observe.admin.resume.no.operation.done=No operation done. observe.admin.resume.operation.canceled=operation canceled observe.admin.resume.operation.done=operation done ===================================== observe-i18n/src/main/i18n/translations/observe_es_ES.properties ===================================== @@ -33,8 +33,6 @@ observe.action.about.tip=A cerca de ObServe... observe.action.admin.cancel=Anular el asintente observe.action.admin.close=Cerrar el asistente observe.action.apply=Aplicar -observe.action.auto.copy.to.clipboard=Copia automatica al portapapeles -observe.action.auto.copy.to.clipboard.tip=Puesta a punto automáticamente el contenido del portapapeles con los resultados observe.action.back.to.list=Volver a la lista observe.action.back.to.list.tip=Volver a la lista de datos observe.action.cancel=Cancelar @@ -84,10 +82,6 @@ observe.action.connexions=Gérer les connexions \#TODO observe.action.connexions.tip=Gérer les profiles de connexion \#TODO observe.action.continue=Continuar observe.action.copy=Copiar en el portapeles -observe.action.copy.column.headers=Copiar los encabezados de columnas -observe.action.copy.column.headers.tip=Añadir al resultado las cabeceras de columna -observe.action.copy.row.headers=Copiar las cabeceras de linea -observe.action.copy.row.headers.tip=Añadir al resultado las cabeceras de linea (ej. la primera columna) observe.action.copy.to.clipBoard=Copiar el contenido en el portapapeles observe.action.copyFloatingObjectPartToLeft=Copy values from leaving to arriving \#TODO observe.action.copyFloatingObjectPartToLeft.tip=Copy values from leaving to arriving \#TODO @@ -236,18 +230,6 @@ observe.actions.operation.message.running=La operación < %1$s > se está ejecut observe.actions.operation.message.successed=La operación < %1$s > se terminó. observe.actions.operations=Operaciones a realizar observe.actions.report=Cuadros de síntesis -observe.actions.report.config=Configuración de los informes -observe.actions.report.copy.options=Opciones de copia en el portapapeles -observe.actions.report.description=Generar los cuadros de síntesis del informe de fin del embarque -observe.actions.report.model.type=Tipo de modelo a utilizar -observe.actions.report.report.description=Descripción del informe seleccionado -observe.actions.report.result=Resultados del informe -observe.actions.report.select=Selección del informe -observe.actions.report.select.file=Archivo de definición de informes -observe.actions.report.select.file.tip=Elegir el archivo de definición de informes -observe.actions.report.title=Ayuda a la generación de informes -observe.actions.report.title.tip=Ayuda a la generación del informe de fin del embarque -observe.actions.report.variables=Configuración de variables observe.actions.saveLocal=Copia de seguridad de la base local observe.actions.saveLocal.description=Guardar las modificationes realizadas en la base locale observe.actions.synchro.cancel.tip=Cancelar @@ -369,6 +351,24 @@ observe.actions.validate.validator.message.header=Mensaje observe.actions.validate.validator.message.header.tip=El texto del mensaje observe.actions.validate.validator.scope.header=... observe.actions.validate.validator.scope.header.tip=El tipo del mensaje +observe.admin.report.auto.copy.to.clipboard=Copia automatica al portapapeles +observe.admin.report.auto.copy.to.clipboard.tip=Puesta a punto automáticamente el contenido del portapapeles con los resultados +observe.admin.report.config=Configuración de los informes +observe.admin.report.copy.column.headers=Copiar los encabezados de columnas +observe.admin.report.copy.column.headers.tip=Añadir al resultado las cabeceras de columna +observe.admin.report.copy.options=Opciones de copia en el portapapeles +observe.admin.report.copy.row.headers=Copiar las cabeceras de linea +observe.admin.report.copy.row.headers.tip=Añadir al resultado las cabeceras de linea (ej. la primera columna) +observe.admin.report.description=Generar los cuadros de síntesis del informe de fin del embarque +observe.admin.report.model.type=Tipo de modelo a utilizar +observe.admin.report.report.description=Descripción del informe seleccionado +observe.admin.report.result=Resultados del informe +observe.admin.report.select=Selección del informe +observe.admin.report.select.file=Archivo de definición de informes +observe.admin.report.select.file.tip=Elegir el archivo de definición de informes +observe.admin.report.title=Ayuda a la generación de informes +observe.admin.report.title.tip=Ayuda a la generación del informe de fin del embarque +observe.admin.report.variables=Configuración de variables observe.admin.resume.no.operation.done=Ninguna operación realizada observe.admin.resume.operation.canceled=operación cancelada observe.admin.resume.operation.done=operacion realizada ===================================== observe-i18n/src/main/i18n/translations/observe_fr_FR.properties ===================================== @@ -33,8 +33,6 @@ observe.action.about.tip=À propos d'ObServe... observe.action.admin.cancel=Annulation de l'assistant observe.action.admin.close=Fermeture de l'assistant observe.action.apply=Appliquer -observe.action.auto.copy.to.clipboard=Copie automatique dans le presse-papier -observe.action.auto.copy.to.clipboard.tip=Mettre à jour automatiquement le contenu du presse-papier avec les résultats observe.action.back.to.list=Retour à la liste observe.action.back.to.list.tip=Retour à la liste des données observe.action.cancel=Annuler @@ -84,10 +82,6 @@ observe.action.connexions=Gérer les connexions observe.action.connexions.tip=Gérer les profiles de connexion observe.action.continue=Continuer observe.action.copy=Copier dans le presse-papier -observe.action.copy.column.headers=Copier les entêtes de colonne -observe.action.copy.column.headers.tip=Ajoute dans le résultat les entêtes de colonne (i.e la première ligne) -observe.action.copy.row.headers=Copier les entêtes de ligne -observe.action.copy.row.headers.tip=Ajoute dans le résultat les entêtes de ligne (i.e la première colonne) observe.action.copy.to.clipBoard=Copier le contenu dans le presse-papier observe.action.copyFloatingObjectPartToLeft=Recopier les valeurs du départ vers l'arrivée observe.action.copyFloatingObjectPartToLeft.tip=Recopier les valeurs du départ vers l'arrivée @@ -236,18 +230,6 @@ observe.actions.operation.message.running=L'opération < %1$s > est en cours d'e observe.actions.operation.message.successed=L'opération < %1$s > est terminée. observe.actions.operations=Opérations à effectuer observe.actions.report=Tableaux de synthèse -observe.actions.report.config=Configuration des reports -observe.actions.report.copy.options=Options de copie dans le presse-papier -observe.actions.report.description=Générer les tableaux de synthèse du rapport de fin d'embarquement -observe.actions.report.model.type=Type de modèle à utiliser -observe.actions.report.report.description=Description du rapport sélectionné -observe.actions.report.result=Résultats du rapport -observe.actions.report.select=Sélection du rapport -observe.actions.report.select.file=Fichier de définition de reports -observe.actions.report.select.file.tip=Choisir le fichier de définition des reports -observe.actions.report.title=Aide à la génération de rapport -observe.actions.report.title.tip=Aide à la génération du rapport de fin d'embarquement -observe.actions.report.variables=Configuration des variables observe.actions.saveLocal=Sauvegarde de la base locale observe.actions.saveLocal.description=Sauvegarder les modifications effectuées vers la base locale observe.actions.synchro.cancel.tip=Annuler @@ -369,6 +351,24 @@ observe.actions.validate.validator.message.header=Message observe.actions.validate.validator.message.header.tip=Le texte du message observe.actions.validate.validator.scope.header=... observe.actions.validate.validator.scope.header.tip=Le type de message +observe.admin.report.auto.copy.to.clipboard=Copie automatique dans le presse-papier +observe.admin.report.auto.copy.to.clipboard.tip=Mettre à jour automatiquement le contenu du presse-papier avec les résultats +observe.admin.report.config=Configuration des reports +observe.admin.report.copy.column.headers=Copier les entêtes de colonne +observe.admin.report.copy.column.headers.tip=Ajoute dans le résultat les entêtes de colonne (i.e la première ligne) +observe.admin.report.copy.options=Options de copie dans le presse-papier +observe.admin.report.copy.row.headers=Copier les entêtes de ligne +observe.admin.report.copy.row.headers.tip=Ajoute dans le résultat les entêtes de ligne (i.e la première colonne) +observe.admin.report.description=Générer les tableaux de synthèse du rapport de fin d'embarquement +observe.admin.report.model.type=Type de modèle à utiliser +observe.admin.report.report.description=Description du rapport sélectionné +observe.admin.report.result=Résultats du rapport +observe.admin.report.select=Sélection du rapport +observe.admin.report.select.file=Fichier de définition de reports +observe.admin.report.select.file.tip=Choisir le fichier de définition des reports +observe.admin.report.title=Aide à la génération de rapport +observe.admin.report.title.tip=Aide à la génération du rapport de fin d'embarquement +observe.admin.report.variables=Configuration des variables observe.admin.resume.no.operation.done=Aucune opération réalisée. observe.admin.resume.operation.canceled=opération annulée observe.admin.resume.operation.done=opération réussie View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/ebe457ca303b922f53224288b3a… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/ebe457ca303b922f53224288b3a… You're receiving this email because of your account on gitlab.com.
1 0
0 0
  • ← Newer
  • 1
  • 2
  • 3
  • 4
  • 5
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.