Observe-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
August 2022
- 1 participants
- 12 discussions
[Git][ultreiaio/ird-observe][develop] 2 commits: Update changelog for v.9.0.7 [skip CI]
by Tony CHEMIT (@tchemit) 28 Aug '22
by Tony CHEMIT (@tchemit) 28 Aug '22
28 Aug '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
4e48eb46 by Tony Chemit at 2022-08-28T15:01:12+02:00
Update changelog for v.9.0.7 [skip CI]
- - - - -
61bdeb5c by Tony Chemit at 2022-08-28T15:01:12+02:00
Il serait intéressant de permettre l'absence de base déclarée par défaut - See #2293 (update doc)
- - - - -
3 changed files:
- CHANGELOG.md
- src/site/markdown/server-configuration-db.md
- src/site/markdown/server-configuration-security.md
Changes:
=====================================
CHANGELOG.md
=====================================
@@ -1,7 +1,7 @@
# ObServe changelog
* Author [Tony Chemit](mailto:dev@tchemit.fr)
- * Last generated at 2022-08-23 22:38.
+ * Last generated at 2022-08-28 14:43.
## Version [9.0.7](https://gitlab.com/ultreiaio/ird-observe/-/milestones/232)
@@ -14,8 +14,10 @@
### Issues
* [[Type::Anomalie 2324]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2324) **Ouverture de base impossible selon configuration précédente de l'arbre** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Anomalie 2327]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2327) **Clé de libellé non traduite en anglais sur la page de synchrod e la synchro avancée** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Anomalie 2411]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2411) **HResponseErrorException / InvalidAuthenticationTokenException en 9.0.6 en quittant l'application** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Anomalie 2412]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2412) **Certains services sont encore en GET alors qu'ils devraient être en POST** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
+ * [[Type::Anomalie 2416]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2416) **La boîte 'A propos' ne fontionne pas** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Anomalie 2419]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2419) **Erreur de migration de l'espèce AVDTH 8 de CAPT_ELEM vers ps_logbook.catch** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Anomalie 2420]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2420) **Statut de la doc de mapping des espèces AVDTH/ObServe** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Anomalie 2423]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2423) **Erreur calcul des données sur V9** (Thanks to Tony CHEMIT) (Reported by Philippe Sabarros)
@@ -23,6 +25,7 @@
* [[Type::Evolution 2104]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2104) **On pourrait avoir un service de génération de topiaid** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Evolution 2232]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2232) **Dans l'UI des profils de connexion, trimmer les espaces** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Evolution 2259]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2259) **Dans l'assistant rapport, ajouter un export CSV** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2293]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2293) **Il serait intéressant de permettre l'absence de base déclarée par défaut** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Evolution 2343]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2343) **Sur les données LL port et associées, rajouter 2 nouveaux champs data entry operators** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Evolution 2345]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2345) **Ajouter un champ position sur le formulaire Landing LL** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Evolution 2378]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2378) **Convertisseur de longueur m/km/nm/ftm** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
@@ -32,6 +35,9 @@
* [[Type::Evolution 2417]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2417) **Improve statistics API** (Thanks to ) (Reported by Tony CHEMIT)
* [[Type::Evolution 2418]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2418) **Contournements des soucis mémoire de l'importeru AVDTH** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Evolution 2421]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2421) **Traitement de RAV** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2422]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2422) **Il faudrait mettre à jour le script qui crée les colonnes postgis pour chaque champ lat/lon** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2425]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2425) **RAV*, quelques détails** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2426]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2426) **Avoir des retours d'expérience possibles sur les actions de maintenance de bases distantes** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
## Version [9.0.6](https://gitlab.com/ultreiaio/ird-observe/-/milestones/231)
=====================================
src/site/markdown/server-configuration-db.md
=====================================
@@ -21,111 +21,25 @@
## Création d'une base obstuna
-La mise en place d'une nouvelle base obstuna se fait en 3 étapes :
+La mise en place d'une nouvelle base obstuna se fait en 2 étapes :
- création de la base vierge et des rôles sur le serveur postgres
-- configuration de la base sur le serveur postgres
- création du contenu de la base via ObServe
Note
- **Il faut de plus avoir à disposition une autre base obstuna qui contient le
+ **Il faut de plus avoir à disposition une autre base qui contient le
référentiel à importer dans la nouvelle base.**
-###Phase 1
+### Phase 1
Pour créer une nouvelle instance d'obstuna, il faut au préalable avoir une
base vierge (sans schéma) et les utilisateurs sur le serveur postgres.
-Il existe une script qui permet de faire ça en tant qu'utilisateur *postgres*.
-
-```
- sudo su postgres
- (cd scripts/postgresl/createdb ; ./create-ird_obstuna.sh)
-```
-
-Ce script va créer :
-
-- le propriétaire de la base (**admin**)
-- les rôles de technicien **adamiano**, **lfloch**, **pcauquil**
-- les rôles de simple utilisateur **utilisateur**
-- les rôles d'utilisateur de référentiel **referentiel**
-- la base vierge (nommée **obstuna**)
-
-Ce script a été conçu pour la configuration de l'ird, il ne fait qu'appeler
-un autre script bash avec les bons paramètres.
-
-```
- scripts/postgresl/createdb/create-empty.sh
-```
-
-Il est donc très facile d'écrire un nouveau script de configuration avec le
-bon nom de la base, du propriétaire et des utilisateurs.
-
-Par exemple pour créer une base avec la configuration suivante
-
-- nom *obstuna-test*
-- propriétaire *admin-test*
-- utilisateurs *technicien-test*, *utilisateur-test*, *referentiel-test*
-
-on lance la commande :
-
-```
- ( cd scripts/postgresl/createdb ; ./create-empty.sh obstuna-test admin-test "technicien-test utilisateur-test referentiel-test")
-```
-
-### Phase 1 (base de test)
-
-Pour créer la base de test utilisée pour tous les tests d'intégration, on lance
-un autre script :
-
-```
- sudo su postgres
- (cd scripts/postgresl/createdb ; ./create-test_obstuna.sh)
-```
-
-Cela crée une base avec la configuration suivante :
-
-- nom *obstuna-test*
-- propriétaire *admin*
-- techniciens *technicien1*, *technicien2*, *technicien3*
-- utilisateurs *utilisateur*
-- utilisateurs de référentiel *referentiel*
+Utilisation de commandes classiques **pg**, rien à décrire de plus ici.
### Phase 2
-Ajouter une ligne dans le fichier de configuration pg_hba.conf
-
-```
- host obstuna all 0.0.0.0/0 md5
-```
-
-Pour la base de test ajouter en plus une ligne
-```
- host obstuna-test all 0.0.0.0/0 md5
-```
-
-Selon la configuration du serveur, il est possible de devoir aussi modifier
-le fichier de configuration postgresql.conf (pour renseigner la propriété
-listen_addresses='*' pour autoriser le tcp depuis l'extérieur).
-
-Redémarrer le serveur postgres :
-```
- sudo /etc/init.d/postgresql-8.3 restart
-```
-ou
-```
- sudo service postgresql-8.3 restart
-```
-
-tester la connexion
-
-```
- psql -h localhost obstuna admin
-```
-
-### Phase 3
-
Il suffit enfin de lancer l'application en mode *création de base obstuna* via
le raccourci suivant :
=====================================
src/site/markdown/server-configuration-security.md
=====================================
@@ -69,13 +69,15 @@ Sa définition est
* un nom
* une url
- * (optionel) est-ce la base par défaut de l'application ?
+ * (optionel) est-ce la base par défaut de l'application ? *(1)*
* des roles associés à cette base
Le nom est représenté comme une *ancre* dans le format *yaml*.
Par convention, on préfixe toujours celui-ci par **db-**.
+**Note *(1)*** à partir de version **9.0.7** il n'est plus obligatoire d'avoir une base par défaut.
+
#### Exemple
Pour définir une dabase de donnée **production**, on écrit
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/4e361ec2081b8b28c8ac5797…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/4e361ec2081b8b28c8ac5797…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 37 commits: Remove unused class
by Tony CHEMIT (@tchemit) 28 Aug '22
by Tony CHEMIT (@tchemit) 28 Aug '22
28 Aug '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
a32703eb by Tony Chemit at 2022-08-24T16:48:34+02:00
Remove unused class
- - - - -
5c0f55bf by Tony Chemit at 2022-08-24T17:13:22+02:00
Persistence - remove TopiaMetadataEntity from API (just use it in templates)
Persistence - move DifferentialMetaModel to Dto layer (in BusinessProject)
Persistence - update license headers
- - - - -
c9ae667b by Tony Chemit at 2022-08-24T17:13:22+02:00
Dto - remove from ReferentialDto version and create properties (never used)
- - - - -
007c9646 by Tony Chemit at 2022-08-24T17:13:22+02:00
Dto - remove from ToolkitId some unused constants
- - - - -
31fff682 by Tony Chemit at 2022-08-24T17:13:22+02:00
Replace ObserveDto by IdDto in ContentTableUITableModel
- - - - -
78f10ae4 by Tony Chemit at 2022-08-24T17:13:22+02:00
Persistence - move DifferentialMetaModel to Dto layer (in BusinessProject)
- - - - -
341cf5a2 by Tony Chemit at 2022-08-24T17:34:46+02:00
Persistence - Improve Migration service (move it to his dedicated package)
- - - - -
095a367f by Tony Chemit at 2022-08-25T16:32:57+02:00
Persistence - Make ObserveDataSourceConfigurationTopiaH2.createTemporaryConfiguration method use System.nanoTime instead of UUID (then can understand when db was created)
- - - - -
e3c8b718 by Tony Chemit at 2022-08-25T16:34:19+02:00
Persistence - Fix migrateOneToOneComposition for ll_logbook sample
- - - - -
d19b1bf8 by Tony Chemit at 2022-08-25T16:40:54+02:00
Persistence - Remove a lot of code from ToPIA
Persistence - Never use hibernate to generate schema at runtime
Persistence - Review ToPIA initSchema (in fact do nothing at all now)
- - - - -
2e703b25 by Tony Chemit at 2022-08-25T16:40:54+02:00
Tck - Test more stuff (adding persistence layer in services tck)
- - - - -
b00c282e by Tony Chemit at 2022-08-25T19:10:00+02:00
add a way to inject tck credentials inside tests (for pg new tests)
- - - - -
36de6070 by Tony Chemit at 2022-08-25T20:41:36+02:00
update pom
- - - - -
f3679ae1 by Tony Chemit at 2022-08-26T01:00:53+02:00
Persistence - Improve Create schema consumer to be able to create schema only if not exists (luckily it works on h2 and on pg \o/)
- - - - -
bdb42995 by Tony Chemit at 2022-08-26T18:04:16+02:00
Persistence - Use SqlSupplier from java-util
- - - - -
7eec3f3d by Tony Chemit at 2022-08-26T18:04:16+02:00
Persistence - add TopiaTransaction.flush method to be able to flush from TopiaPersistenceContext
- - - - -
5facf930 by Tony Chemit at 2022-08-26T18:04:16+02:00
Persistence - add JdbcHelper.applyDatabaseNameCase to get neutral search algorithm and use it in SecurityScriptBuilderContext
Persistence - add JdbcHelper.isTableExist and JdbcHelper.isSchemaExist
Persistence - add JdbcHelper tests
- - - - -
46d0fee9 by Tony Chemit at 2022-08-26T18:04:16+02:00
Persistence - Deprecates HibernateUtil.isSchemaExist and HibernateUtil.isSchemaEmpty
- - - - -
f9dc03de by Tony Chemit at 2022-08-26T18:04:16+02:00
Service local - Review AnonymousServiceLocalSupport , now code is pretty clean and easy to understand.
Persistence - Review how to create new database. Now code is pretty clean
Service local - Improve AnonymousServiceLocalSupport code
Persistence - Review JdbcSecurityHelper.getDataSourceInformation
- - - - -
5a1538b4 by Tony Chemit at 2022-08-27T04:27:14+02:00
Persistence - Review TopiaApplicationContextFactory, now we are talking of something nice and smooth, no cast, no mystery, no back ended instance in framework. The ObserveTopiaApplicationContextFactory is now pretty easy to use :)
Persistence - Clean Sql service init according to topia configuration
Persistence - clean ObserveDataSourceConfiguration, ObserveTopiaConfigurationFactory, BeanTopiaConfiguration and TopiaConfiguration
- - - - -
91202ee5 by Tony Chemit at 2022-08-27T04:27:14+02:00
Code - Fix typo and import
- - - - -
58de8538 by Tony Chemit at 2022-08-27T04:27:14+02:00
Persistence - improve SecurityScriptHelper code
- - - - -
5aa320d0 by Tony Chemit at 2022-08-27T04:27:14+02:00
Persistence - tms_version va-t-elle rester dans le schéma public ? - See #2218
- - - - -
3e210f5a by Tony Chemit at 2022-08-27T04:27:14+02:00
RAV*, quelques détails - Closes ultreiaio/ird-observe#2425
- - - - -
80a00fbf by Tony Chemit at 2022-08-27T04:27:14+02:00
Try to fix validation file order (some validation fields changes from time to time...)
- - - - -
5b7f7598 by Tony Chemit at 2022-08-27T04:27:14+02:00
Clé de libellé non traduite en anglais sur la page de synchrod e la synchro avancée - Closes #2327
- - - - -
0d0aa3a7 by Tony Chemit at 2022-08-27T04:27:14+02:00
tidy poms and at last update slf4j and try to fix log4j memory leaks in tomcat (can't find how to remove the thread local usage...)
- - - - -
7345b7b1 by Tony Chemit at 2022-08-27T04:27:14+02:00
add TopiaApplicationContextFactory in log to see topia application context usages.
- - - - -
145dde05 by Tony Chemit at 2022-08-27T04:27:14+02:00
low down log level
- - - - -
11268c6a by Tony Chemit at 2022-08-27T04:27:14+02:00
Il serait intéressant de permettre l'absence de base déclarée par défaut - See #2293
- - - - -
4e7c59a1 by Tony Chemit at 2022-08-28T13:46:26+02:00
Avoir des retours d'expérience possibles sur les actions de maintenance de bases distantes - Closes #2426
- - - - -
f144e1f1 by Tony Chemit at 2022-08-28T13:46:26+02:00
Add colors in logs :)
- - - - -
32b8de06 by Tony Chemit at 2022-08-28T13:46:26+02:00
Clean topia application context factory when a test is done!
- - - - -
e131d2c0 by Tony Chemit at 2022-08-28T13:46:26+02:00
update pom
- - - - -
81b0e126 by Tony Chemit at 2022-08-28T13:46:26+02:00
Persistence - remove some topiaException when not really needed
- - - - -
9900905e by Tony Chemit at 2022-08-28T13:46:26+02:00
Persistence - Remove log.error in migration service
- - - - -
4e361ec2 by Tony Chemit at 2022-08-28T14:23:32+02:00
Feedback - be able to select text inside error pane :)
- - - - -
30 changed files:
- client/configuration/pom.xml
- client/configuration/src/main/filtered-resources/log4j2.xml
- client/configuration/src/main/filtered-resources/observe-log4j2.xml
- client/core/src/main/java/fr/ird/observe/client/ErrorHandler.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/action/FeedBackBuilder.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/action/FeedBackBuilderModel.java
- client/datasource/actions/pom.xml
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/AdminActionModel.java
- client/datasource/editor/api/pom.xml
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/table/ContentTableUITableModel.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/loading/open/OpenDataSourceActionStep.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/wizard/launchers/RemoteUILauncher.java
- client/datasource/editor/ll/pom.xml
- client/datasource/editor/spi/pom.xml
- client/runner/pom.xml
- client/runner/src/main/i18n/translations/client-runner_en_GB.properties
- core/api/dto/pom.xml
- − core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/logbook/consolidate/ActivityConsolidateResult.java
- core/persistence/java/src/main/resources/META-INF/persistence/Observe/DifferentialMetaModel.json → core/api/dto/src/main/resources/META-INF/dto/Observe/DifferentialMetaModel.json
- core/api/dto/src/test/resources/log4j2.xml
- core/api/services/pom.xml
- core/api/tree/pom.xml
- core/api/validation/pom.xml
- core/persistence/java/pom.xml
- core/persistence/java/src/main/java/fr/ird/observe/entities/DataSourceCreateHelper.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContext.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContextFactory.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/ObserveTopiaPersistenceContext.java
- − core/persistence/java/src/main/resources/META-INF/persistence/Observe/TopiaMetadataModel.json
- − core/persistence/java/src/main/resources/META-INF/persistence/Observe/TopiaMetadataModelPaths.json
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/0b928f3f38f9a4399a74a461…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/0b928f3f38f9a4399a74a461…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 2 commits: Update changelog for v.9.0.7 [skip CI]
by Tony CHEMIT (@tchemit) 23 Aug '22
by Tony CHEMIT (@tchemit) 23 Aug '22
23 Aug '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
f2ada326 by Tony Chemit at 2022-08-23T22:54:18+02:00
Update changelog for v.9.0.7 [skip CI]
- - - - -
0b928f3f by Tony Chemit at 2022-08-23T22:54:18+02:00
Titre de l'appli - Closes #2395
- - - - -
2 changed files:
- CHANGELOG.md
- client/core/src/main/java/fr/ird/observe/client/main/ObserveMainUIHandler.java
Changes:
=====================================
CHANGELOG.md
=====================================
@@ -1,12 +1,11 @@
# ObServe changelog
* Author [Tony Chemit](mailto:dev@tchemit.fr)
- * Last generated at 2022-07-13 14:08.
+ * Last generated at 2022-08-23 22:38.
## Version [9.0.7](https://gitlab.com/ultreiaio/ird-observe/-/milestones/232)
-**Closed at 2022-07-13.**
-
+**Closed at 2022-08-23.**
### Download
* [Client (observe-9.0.7-client.zip)](https://repo1.maven.org/maven2/fr/ird/observe/ob…)
@@ -14,12 +13,21 @@
* [Serveur (observe-9.0.7-server.zip)](https://repo1.maven.org/maven2/fr/ird/observe/ob…)
### Issues
+ * [[Type::Anomalie 2324]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2324) **Ouverture de base impossible selon configuration précédente de l'arbre** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Anomalie 2411]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2411) **HResponseErrorException / InvalidAuthenticationTokenException en 9.0.6 en quittant l'application** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Anomalie 2412]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2412) **Certains services sont encore en GET alors qu'ils devraient être en POST** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
* [[Type::Anomalie 2419]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2419) **Erreur de migration de l'espèce AVDTH 8 de CAPT_ELEM vers ps_logbook.catch** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Anomalie 2420]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2420) **Statut de la doc de mapping des espèces AVDTH/ObServe** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Anomalie 2423]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2423) **Erreur calcul des données sur V9** (Thanks to Tony CHEMIT) (Reported by Philippe Sabarros)
+ * [[Type::Evolution 1751]](https://gitlab.com/ultreiaio/ird-observe/-/issues/1751) **Mettre un sablier lors de l'ouverture si le nœud a beaucoup de données à charger.** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
* [[Type::Evolution 2104]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2104) **On pourrait avoir un service de génération de topiaid** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2232]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2232) **Dans l'UI des profils de connexion, trimmer les espaces** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2259]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2259) **Dans l'assistant rapport, ajouter un export CSV** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2343]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2343) **Sur les données LL port et associées, rajouter 2 nouveaux champs data entry operators** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2345]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2345) **Ajouter un champ position sur le formulaire Landing LL** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Evolution 2378]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2378) **Convertisseur de longueur m/km/nm/ftm** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2395]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2395) **Titre de l'appli** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2409]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2409) **Aucune barre de progression** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Evolution 2410]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2410) **Ordonancement par défaut des 3 combos section, basket, avançon sur les observations** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Evolution 2417]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2417) **Improve statistics API** (Thanks to ) (Reported by Tony CHEMIT)
* [[Type::Evolution 2418]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2418) **Contournements des soucis mémoire de l'importeru AVDTH** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
=====================================
client/core/src/main/java/fr/ird/observe/client/main/ObserveMainUIHandler.java
=====================================
@@ -90,7 +90,7 @@ public class ObserveMainUIHandler implements UIHandler<ObserveMainUI>, WithClien
ClientConfig config = getClientConfig();
- String title = t("observe.ui.title.welcome.admin") + (" v " + config.getVersion());
+ String title = t("observe.ui.title.welcome.admin") + (" " + config.getVersion());
ui.setTitle(title);
ErrorDialogUI.init(ui);
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/ea69fc49deca7f7cd0790834…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/ea69fc49deca7f7cd0790834…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] Titre de l'appli - Closes #2395
by Tony CHEMIT (@tchemit) 23 Aug '22
by Tony CHEMIT (@tchemit) 23 Aug '22
23 Aug '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
ea69fc49 by Tony Chemit at 2022-08-23T22:34:24+02:00
Titre de l'appli - Closes #2395
- - - - -
1 changed file:
- client/core/src/main/java/fr/ird/observe/client/main/ObserveMainUIHandler.java
Changes:
=====================================
client/core/src/main/java/fr/ird/observe/client/main/ObserveMainUIHandler.java
=====================================
@@ -90,7 +90,7 @@ public class ObserveMainUIHandler implements UIHandler<ObserveMainUI>, WithClien
ClientConfig config = getClientConfig();
- String title = t("observe.ui.title.welcome.admin") + (" v " + config.getVersion());
+ String title = t("observe.ui.title.welcome.admin") + (" " + config.getVersion());
ui.setTitle(title);
ErrorDialogUI.init(ui);
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/ea69fc49deca7f7cd07908349…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/ea69fc49deca7f7cd07908349…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] Update changelog for v.9.0.7 [skip CI]
by Tony CHEMIT (@tchemit) 22 Aug '22
by Tony CHEMIT (@tchemit) 22 Aug '22
22 Aug '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
27158535 by Tony Chemit at 2022-08-23T00:18:52+02:00
Update changelog for v.9.0.7 [skip CI]
- - - - -
1 changed file:
- CHANGELOG.md
Changes:
=====================================
CHANGELOG.md
=====================================
@@ -1,12 +1,11 @@
# ObServe changelog
* Author [Tony Chemit](mailto:dev@tchemit.fr)
- * Last generated at 2022-07-13 14:08.
+ * Last generated at 2022-08-23 00:18.
## Version [9.0.7](https://gitlab.com/ultreiaio/ird-observe/-/milestones/232)
-**Closed at 2022-07-13.**
-
+**Closed at 2022-08-23.**
### Download
* [Client (observe-9.0.7-client.zip)](https://repo1.maven.org/maven2/fr/ird/observe/ob…)
@@ -14,12 +13,20 @@
* [Serveur (observe-9.0.7-server.zip)](https://repo1.maven.org/maven2/fr/ird/observe/ob…)
### Issues
+ * [[Type::Anomalie 2324]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2324) **Ouverture de base impossible selon configuration précédente de l'arbre** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Anomalie 2411]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2411) **HResponseErrorException / InvalidAuthenticationTokenException en 9.0.6 en quittant l'application** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Anomalie 2412]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2412) **Certains services sont encore en GET alors qu'ils devraient être en POST** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
* [[Type::Anomalie 2419]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2419) **Erreur de migration de l'espèce AVDTH 8 de CAPT_ELEM vers ps_logbook.catch** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Anomalie 2420]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2420) **Statut de la doc de mapping des espèces AVDTH/ObServe** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Anomalie 2423]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2423) **Erreur calcul des données sur V9** (Thanks to Tony CHEMIT) (Reported by Philippe Sabarros)
+ * [[Type::Evolution 1751]](https://gitlab.com/ultreiaio/ird-observe/-/issues/1751) **Mettre un sablier lors de l'ouverture si le nœud a beaucoup de données à charger.** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
* [[Type::Evolution 2104]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2104) **On pourrait avoir un service de génération de topiaid** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2232]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2232) **Dans l'UI des profils de connexion, trimmer les espaces** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2259]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2259) **Dans l'assistant rapport, ajouter un export CSV** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2343]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2343) **Sur les données LL port et associées, rajouter 2 nouveaux champs data entry operators** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2345]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2345) **Ajouter un champ position sur le formulaire Landing LL** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Evolution 2378]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2378) **Convertisseur de longueur m/km/nm/ftm** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2409]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2409) **Aucune barre de progression** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Evolution 2410]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2410) **Ordonancement par défaut des 3 combos section, basket, avançon sur les observations** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
* [[Type::Evolution 2417]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2417) **Improve statistics API** (Thanks to ) (Reported by Tony CHEMIT)
* [[Type::Evolution 2418]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2418) **Contournements des soucis mémoire de l'importeru AVDTH** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/271585357aa1926867de53bff…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/271585357aa1926867de53bff…
You're receiving this email because of your account on gitlab.com.
1
0
22 Aug '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
bc8730be by Tony Chemit at 2022-08-22T23:20:37+02:00
update pom
- - - - -
62581c1b by Tony Chemit at 2022-08-22T23:20:37+02:00
downgrade m-site-p (still some velocity incompatibility)
- - - - -
5b66ab55 by Tony Chemit at 2022-08-22T23:20:37+02:00
Persistence - generate application context schema names, instead of computing them.
- - - - -
177b65d0 by Tony Chemit at 2022-08-22T23:20:37+02:00
Persistence - remove HibernateTopiaMigrationService
- - - - -
1696b931 by Tony Chemit at 2022-08-22T23:20:37+02:00
Persistence - clean TopiaApplicationText
- - - - -
11 changed files:
- core/persistence/java/src/main/resources/META-INF/persistence/Observe/TopiaEntitySqlModel.json
- pom.xml
- toolkit/persistence/src/main/java/org/nuiton/topia/persistence/BeanTopiaConfiguration.java
- − toolkit/persistence/src/main/java/org/nuiton/topia/persistence/HibernateTopiaMigrationService.java
- toolkit/persistence/src/main/java/org/nuiton/topia/persistence/TopiaApplicationContext.java
- toolkit/persistence/src/main/java/org/nuiton/topia/persistence/TopiaConfiguration.java
- toolkit/persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaApplicationContext.java
- toolkit/persistence/src/main/java/org/nuiton/topia/service/sql/model/TopiaEntitySqlModel.java
- toolkit/plugin/src/main/java/fr/ird/observe/toolkit/maven/plugin/tck/GenerateTckArchive.java
- toolkit/plugin/src/main/java/fr/ird/observe/toolkit/maven/plugin/tck/MigrateTckDatabases.java
- toolkit/templates/src/main/java/org/nuiton/topia/templates/sql/EntitySqlDescriptorGenerator.java
Changes:
=====================================
core/persistence/java/src/main/resources/META-INF/persistence/Observe/TopiaEntitySqlModel.json
=====================================
@@ -1,4 +1,16 @@
{
+ "schemaNames": [
+ "common",
+ "ll_common",
+ "ll_landing",
+ "ll_logbook",
+ "ll_observation",
+ "ps_common",
+ "ps_landing",
+ "ps_localmarket",
+ "ps_logbook",
+ "ps_observation"
+ ],
"replicationOrderForStandalone": [
"fr.ird.observe.entities.LastUpdateDate",
"fr.ird.observe.entities.referential.common.Country",
=====================================
pom.xml
=====================================
@@ -23,7 +23,7 @@
<parent>
<groupId>io.ultreia.maven</groupId>
<artifactId>pom</artifactId>
- <version>2022.80</version>
+ <version>2022.82</version>
</parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
@@ -96,6 +96,7 @@
<persistence.model.version>9.0</persistence.model.version>
<!--persistence previous model version used for tck migration-->
<persistence.previous.model.version>8.0</persistence.previous.model.version>
+ <plugin.version.site>4.0.0-M1</plugin.version.site>
<tck.filename>tck-v${persistence.model.version}.zip</tck.filename>
<tck.updated.filename>updated-${tck.filename}</tck.updated.filename>
<tck.remote.path>/var/www/html/private/ird-observe/tck</tck.remote.path>
=====================================
toolkit/persistence/src/main/java/org/nuiton/topia/persistence/BeanTopiaConfiguration.java
=====================================
@@ -238,11 +238,6 @@ public class BeanTopiaConfiguration extends BeanJdbcConfiguration implements Top
throw new TopiaMisconfigurationException("you must provide JDBC connection driver", this);
}
Map<String, String> hibernateExtraConfiguration = getHibernateExtraConfiguration();
- if (hibernateExtraConfiguration.containsKey(AvailableSettings.HBM2DDL_AUTO)) {
- throw new TopiaMisconfigurationException("you must not use " + AvailableSettings.HBM2DDL_AUTO
- + " configuration directive, if you want Hibernate to update the schema, use " +
- HibernateTopiaMigrationService.class.getName(), this);
- }
for (Map.Entry<String, String> entry : hibernateExtraConfiguration.entrySet()) {
String key = entry.getKey();
boolean entryIsOk = (key.startsWith("hibernate.") || key.startsWith("javax.persistence."))
=====================================
toolkit/persistence/src/main/java/org/nuiton/topia/persistence/HibernateTopiaMigrationService.java deleted
=====================================
@@ -1,56 +0,0 @@
-package org.nuiton.topia.persistence;
-
-/*
- * #%L
- * ObServe Toolkit :: Persistence
- * %%
- * Copyright (C) 2008 - 2022 IRD, 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 java.util.Map;
-
-public class HibernateTopiaMigrationService implements TopiaMigrationService {
-
- protected TopiaApplicationContext topiaApplicationContext;
-
- @Override
- public void initTopiaService(TopiaApplicationContext<?> topiaApplicationContext, Map<String, String> serviceConfiguration) {
- this.topiaApplicationContext = topiaApplicationContext;
- }
-
- @Override
- public String getSchemaVersion() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void initOnCreateSchema() {
- // do nothing
- }
-
- @Override
- public void runSchemaMigration() {
- topiaApplicationContext.updateSchema();
- }
-
- @Override
- public void close() {
-
- }
-}
=====================================
toolkit/persistence/src/main/java/org/nuiton/topia/persistence/TopiaApplicationContext.java
=====================================
@@ -25,13 +25,14 @@ package org.nuiton.topia.persistence;
import fr.ird.observe.entities.data.RootOpenableEntity;
import fr.ird.observe.spi.referential.MissingReferentialRequest;
import fr.ird.observe.spi.referential.MissingReferentialResult;
+import fr.ird.observe.spi.referential.ReferentialIds;
import fr.ird.observe.spi.service.ServiceContext;
import io.ultreia.java4all.util.sql.SqlScript;
-import io.ultreia.java4all.util.sql.SqlScriptConsumer;
import org.nuiton.topia.persistence.internal.AbstractTopiaApplicationContext;
import org.nuiton.topia.persistence.jdbc.JdbcHelper;
import org.nuiton.topia.persistence.jdbc.JdbcHelperH2;
import org.nuiton.topia.persistence.jdbc.JdbcHelperPostgres;
+import org.nuiton.topia.persistence.security.SecurityScriptHelper;
import org.nuiton.topia.persistence.support.TopiaServiceSupport;
import org.nuiton.topia.service.sql.TopiaEntitySqlModelResource;
import org.nuiton.topia.service.sql.TopiaSqlService;
@@ -100,14 +101,20 @@ public interface TopiaApplicationContext<K extends TopiaPersistenceContext> exte
return getConfiguration().getTopiaIdFactory();
}
+ TopiaIdFactoryForBulkSupport newIdFactoryForBulk(long timestamp);
+
+ ReferentialIds getReferentialIds(Class<? extends TopiaEntity> dataType, String... ids);
+
+ default SecurityScriptHelper newSecurityScriptHelper() {
+ return new SecurityScriptHelper(this);
+ }
+
TopiaSqlService getSqlService();
TopiaEntitySqlBlobIdsIterator newBlobIdsIterator(Path blobIdsPath);
void executeSqlStatements(SqlScript content);
- void executeSqlStatements(SqlScriptConsumer content);
-
TopiaMigrationService getMigrationService();
default void migrate() {
@@ -140,16 +147,10 @@ public interface TopiaApplicationContext<K extends TopiaPersistenceContext> exte
* @return all schema names used by persistent entities.
* @since 3.0.1
*/
- Set<String> getSchemaNames();
+ List<String> getSchemaNames();
void createSchema();
- void showCreateSchema();
-
- void updateSchema();
-
- void dropSchema();
-
/**
* @return true is the application context is opened (ie not yet {@link #isClosed()})
*/
=====================================
toolkit/persistence/src/main/java/org/nuiton/topia/persistence/TopiaConfiguration.java
=====================================
@@ -75,7 +75,7 @@ public interface TopiaConfiguration extends JdbcConfiguration {
* as keys of the map.
* <p>
* You <strong>MUST NOT</strong> pass {@link HibernateAvailableSettings#HBM2DDL_AUTO} since
- * ToPIA will use validate. If you want use it, have a look at {@link HibernateTopiaMigrationService}
+ * ToPIA will use validate.
*
* @return a map containing hibernate configuration directives that ToPIA will use when it
* will instantiate Hibernate.
=====================================
toolkit/persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaApplicationContext.java
=====================================
@@ -34,24 +34,17 @@ import fr.ird.observe.spi.referential.synchro.SynchronizeTaskType;
import fr.ird.observe.spi.service.ServiceContext;
import io.ultreia.java4all.util.TimeLog;
import io.ultreia.java4all.util.sql.SqlScript;
-import io.ultreia.java4all.util.sql.SqlScriptConsumer;
import io.ultreia.java4all.util.sql.SqlScriptReader;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.boot.Metadata;
import org.hibernate.cfg.AvailableSettings;
import org.hibernate.cfg.Configuration;
-import org.hibernate.tool.hbm2ddl.SchemaExport;
-import org.hibernate.tool.hbm2ddl.SchemaUpdate;
-import org.hibernate.tool.schema.TargetType;
import org.nuiton.topia.persistence.TopiaApplicationContext;
import org.nuiton.topia.persistence.TopiaConfiguration;
import org.nuiton.topia.persistence.TopiaDao;
-import org.nuiton.topia.persistence.TopiaEntity;
import org.nuiton.topia.persistence.TopiaException;
-import org.nuiton.topia.persistence.TopiaIdFactoryForBulkSupport;
import org.nuiton.topia.persistence.TopiaMigrationService;
import org.nuiton.topia.persistence.TopiaPersistenceContext;
import org.nuiton.topia.persistence.TopiaService;
@@ -59,7 +52,6 @@ import org.nuiton.topia.persistence.internal.support.TopiaServiceSupportImpl;
import org.nuiton.topia.persistence.jdbc.JdbcHelper;
import org.nuiton.topia.persistence.jdbc.JdbcHelperH2;
import org.nuiton.topia.persistence.jdbc.JdbcHelperPostgres;
-import org.nuiton.topia.persistence.security.SecurityScriptHelper;
import org.nuiton.topia.persistence.support.TopiaServiceSupport;
import org.nuiton.topia.persistence.util.TopiaUtil;
import org.nuiton.topia.service.sql.TopiaSqlService;
@@ -69,7 +61,6 @@ import java.io.File;
import java.nio.file.Path;
import java.util.Arrays;
import java.util.Collections;
-import java.util.EnumSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -136,17 +127,11 @@ public abstract class AbstractTopiaApplicationContext<K extends TopiaPersistence
protected abstract Map<String, Supplier<TopiaDao<?>>> createDaoMapping();
- public abstract TopiaIdFactoryForBulkSupport newIdFactoryForBulk(long timestamp);
-
@Override
public final String getAuthenticationToken() {
return authenticationToken;
}
- public String getPackageName() {
- return getClass().getPackageName();
- }
-
protected void init() {
configuration.check();
@@ -218,12 +203,6 @@ public abstract class AbstractTopiaApplicationContext<K extends TopiaPersistence
}
}
- public abstract ReferentialIds getReferentialIds(Class<? extends TopiaEntity> dataType, String... ids);
-
- public final SecurityScriptHelper newSecurityScriptHelper() {
- return new SecurityScriptHelper(this);
- }
-
@Override
public final TopiaSqlService getSqlService() {
return getServices(TopiaSqlService.class).get(SQL_SERVICE_NAME);
@@ -296,42 +275,6 @@ public abstract class AbstractTopiaApplicationContext<K extends TopiaPersistence
}
}
- @Override
- public final void showCreateSchema() {
- try {
- new SchemaExport().execute(EnumSet.of(TargetType.DATABASE, TargetType.STDOUT), SchemaExport.Action.CREATE, getHibernateProvider().getMetaData());
- } catch (HibernateException eee) {
- throw new TopiaException(String.format("Could not show create schema for reason: %s", eee.getMessage()), eee);
- }
-
- }
-
- @Override
- public final void updateSchema() {
- try {
- EnumSet<TargetType> targetTypes = EnumSet.of(TargetType.DATABASE);
- if (log.isDebugEnabled()) {
- targetTypes.add(TargetType.STDOUT);
- }
- new SchemaUpdate().execute(targetTypes, getHibernateProvider().getMetaData());
- } catch (HibernateException eee) {
- throw new TopiaException(String.format("Could not update schema for reason: %s", eee.getMessage()), eee);
- }
- }
-
- @Override
- public final void dropSchema() {
- try {
- EnumSet<TargetType> targetTypes = EnumSet.of(TargetType.DATABASE);
- if (log.isDebugEnabled()) {
- targetTypes.add(TargetType.STDOUT);
- }
- new SchemaExport().execute(targetTypes, SchemaExport.Action.DROP, getHibernateProvider().getMetaData());
- } catch (HibernateException eee) {
- throw new TopiaException(String.format("Could not drop schema for reason: %s", eee.getMessage()), eee);
- }
- }
-
@Override
public void close() {
@@ -379,7 +322,7 @@ public abstract class AbstractTopiaApplicationContext<K extends TopiaPersistence
}
@Override
- public final Set<String> getSchemaNames() {
+ public final List<String> getSchemaNames() {
return getSqlService().getModel().getSchemaNames();
}
@@ -454,19 +397,7 @@ public abstract class AbstractTopiaApplicationContext<K extends TopiaPersistence
SqlScriptReader scriptLocation = content.getLocation();
try (K persistenceContext = newPersistenceContext()) {
persistenceContext.executeSqlScript(scriptLocation);
- persistenceContext.commit();
- }
- } catch (RuntimeException e) {
- throw e;
- } catch (Exception e) {
- throw new TopiaException(e);
- }
- }
-
- public final void executeSqlStatements(SqlScriptConsumer content) {
- try {
- try (K persistenceContext = newPersistenceContext()) {
- persistenceContext.executeSqlScript(content);
+ //FIXME-2022-08-22 this is a heart-break to force a commit, review this
persistenceContext.commit();
}
} catch (RuntimeException e) {
@@ -511,8 +442,7 @@ public abstract class AbstractTopiaApplicationContext<K extends TopiaPersistence
return null;
}
OneSideSqlRequest sqlRequest = OneSideSqlRequest.builder().addTasks(SynchronizeTaskType.ADD, missingIds).build();
- OneSideSqlResult sqlResult = newOneSideSqlResultBuilder(context, context.now())
- .build(sqlRequest);
+ OneSideSqlResult sqlResult = newOneSideSqlResultBuilder(context, context.now()).build(sqlRequest);
Path scriptPath = temporaryDirectoryRoot.resolve(String.format("%s-%d.sql", getClass().getSimpleName(), System.nanoTime()));
log.info(String.format("Generate script at: %s", scriptPath));
=====================================
toolkit/persistence/src/main/java/org/nuiton/topia/service/sql/model/TopiaEntitySqlModel.java
=====================================
@@ -30,8 +30,6 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
-import java.util.Set;
-import java.util.TreeSet;
/**
* Describes the sql metadata model.
@@ -43,6 +41,10 @@ import java.util.TreeSet;
*/
public class TopiaEntitySqlModel {
+ /**
+ * All schema names used.
+ */
+ private final List<String> schemaNames;
/**
* Replication order for all entities not managed by any entry point..
*/
@@ -52,7 +54,8 @@ public class TopiaEntitySqlModel {
*/
private final Map<String, TopiaEntitySqlDescriptor> descriptors;
- public TopiaEntitySqlModel(List<String> replicationOrderForStandalone, Map<String, TopiaEntitySqlDescriptor> descriptors) {
+ public TopiaEntitySqlModel(List<String> schemaNames, List<String> replicationOrderForStandalone, Map<String, TopiaEntitySqlDescriptor> descriptors) {
+ this.schemaNames = Collections.unmodifiableList(Objects.requireNonNull(schemaNames));
this.replicationOrderForStandalone = Objects.requireNonNull(replicationOrderForStandalone);
this.descriptors = Objects.requireNonNull(descriptors);
}
@@ -81,13 +84,8 @@ public class TopiaEntitySqlModel {
return replicationOrderForStandalone;
}
- public Set<String> getSchemaNames() {
- Set<String> result = new TreeSet<>();
- for (TopiaEntitySqlDescriptor entitySqlDescriptor : getDescriptors().values()) {
- String schema = entitySqlDescriptor.getTable().getSchemaName();
- result.add(schema);
- }
- return Collections.unmodifiableSet(result);
+ public List<String> getSchemaNames() {
+ return schemaNames;
}
protected Map<String, TopiaEntitySqlDescriptor> getDescriptors() {
=====================================
toolkit/plugin/src/main/java/fr/ird/observe/toolkit/maven/plugin/tck/GenerateTckArchive.java
=====================================
@@ -30,7 +30,6 @@ import fr.ird.observe.toolkit.maven.plugin.PersistenceRunner;
import io.ultreia.java4all.util.Version;
import io.ultreia.java4all.util.Zips;
import io.ultreia.java4all.util.sql.SqlScript;
-import io.ultreia.java4all.util.sql.SqlScriptConsumer;
import io.ultreia.java4all.util.sql.SqlScriptWriter;
import org.nuiton.topia.persistence.TopiaApplicationContext;
import org.nuiton.topia.persistence.jdbc.JdbcHelperH2;
@@ -123,14 +122,14 @@ public class GenerateTckArchive extends PersistenceRunner {
log.info(String.format("Load referential database for version %s", previousModelVersion));
- applicationContext.executeSqlStatements(SqlScriptConsumer.of(SqlScript.of(sources.resolve(previousModelVersion.getVersion()).resolve(DatabaseName.referential.name() + ".sql.gz"))));
+ applicationContext.executeSqlStatements(SqlScript.of(sources.resolve(previousModelVersion.getVersion()).resolve(DatabaseName.referential.name() + ".sql.gz")));
log.info(String.format("Migrate from version %s to %s", previousModelVersion, modelVersion));
applicationContext.migrate();
log.info(String.format("Load data script for version %s", modelVersion));
Path dataPath = exploded.resolve(modelVersion.getVersion()).resolve(DatabaseName.data.name() + ".sql");
- applicationContext.executeSqlStatements(SqlScriptConsumer.builder(dataPath).build());
+ applicationContext.executeSqlStatements(SqlScript.of(dataPath));
log.info(String.format("Do backup to %s", backupFile));
backupSane(applicationContext, backupFile, false);
=====================================
toolkit/plugin/src/main/java/fr/ird/observe/toolkit/maven/plugin/tck/MigrateTckDatabases.java
=====================================
@@ -27,7 +27,6 @@ import fr.ird.observe.test.DatabaseName;
import fr.ird.observe.toolkit.maven.plugin.PersistenceRunner;
import io.ultreia.java4all.util.Version;
import io.ultreia.java4all.util.sql.SqlScript;
-import io.ultreia.java4all.util.sql.SqlScriptConsumer;
import org.nuiton.topia.persistence.TopiaApplicationContext;
import java.nio.file.Path;
@@ -81,7 +80,7 @@ public class MigrateTckDatabases extends PersistenceRunner {
try (TopiaApplicationContext<?> applicationContext = createTopiaApplicationContext(configuration)) {
log.info(String.format("[%S] migrate from version %s to %s", tckDbName, previousModelVersion, modelVersion));
- applicationContext.executeSqlStatements(SqlScriptConsumer.of(SqlScript.of(dbPath.resolve(sqlFilename))));
+ applicationContext.executeSqlStatements(SqlScript.of(dbPath.resolve(sqlFilename)));
applicationContext.migrate();
log.info(String.format("[%S] backup to %s", tckDbName, backupFile));
@@ -97,7 +96,7 @@ public class MigrateTckDatabases extends PersistenceRunner {
log.info(String.format("[%S] Check - loading new database with version %s", tckDbName, modelVersion));
- applicationContext.executeSqlStatements(SqlScriptConsumer.of(SqlScript.of(backupFile)));
+ applicationContext.executeSqlStatements(SqlScript.of(backupFile));
Path checkBackupFile = getTemporaryPath().resolve("check-backup-" + backupFile.toFile().getName().replace(".sql.gz", "-check.sql"));
applicationContext.backup(checkBackupFile.toFile(), false);
log.info(String.format("[%S] Check - backup to %s", tckDbName, checkBackupFile));
=====================================
toolkit/templates/src/main/java/org/nuiton/topia/templates/sql/EntitySqlDescriptorGenerator.java
=====================================
@@ -394,7 +394,12 @@ public class EntitySqlDescriptorGenerator extends TopiaMetadataModelGeneratorSup
modelCopyPlan = new TopiaEntitySqlCopyPlanModel(entryPointCopyPlans, standaloneCopyPlan);
modelReplicatePlan = new TopiaEntitySqlReplicatePlanModel(replicatePlans);
modelDeletePlan = new TopiaEntitySqlDeletePlanModel(typeDeletePlans);
- sqlModel = new TopiaEntitySqlModel(replicationOrderWithStandalone, descriptors);
+ Set<String> schemaNames = new TreeSet<>();
+ for (TopiaEntitySqlDescriptor entitySqlDescriptor : descriptors.values()) {
+ String schema = entitySqlDescriptor.getTable().getSchemaName();
+ schemaNames.add(schema);
+ }
+ sqlModel = new TopiaEntitySqlModel(List.copyOf(schemaNames), replicationOrderWithStandalone, descriptors);
LinkedHashMap<Class<? extends ReferentialDto>, List<String>> referentialBusinessProperties = new LinkedHashMap<>();
for (String entityName : replicationOrderWithStandalone) {
if (!entityName.contains(".referential.")) {
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/685feca0c407582cdfb97e2d…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/685feca0c407582cdfb97e2d…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 53 commits: Sur les données LL port et associées, rajouter 2 nouveaux champs data entry...
by Tony CHEMIT (@tchemit) 22 Aug '22
by Tony CHEMIT (@tchemit) 22 Aug '22
22 Aug '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
0361a0a3 by Tony Chemit at 2022-08-22T18:35:46+02:00
Sur les données LL port et associées, rajouter 2 nouveaux champs data entry operators - Closes ultreiaio/ird-observe#2343
- - - - -
ee9bc2f0 by Tony Chemit at 2022-08-22T18:35:46+02:00
Ajouter un champ position sur le formulaire Landing LL - See ultreiaio/ird-observe#2345
- - - - -
b3e5a3aa by Tony Chemit at 2022-08-22T18:35:46+02:00
update pom
update site plugin
- - - - -
e82a7de1 by Tony Chemit at 2022-08-22T18:35:46+02:00
Fix validation context reset (for not standalone content ui)
- - - - -
e1f1eccc by Tony Chemit at 2022-08-22T18:35:46+02:00
Erreur calcul des données sur V9 - Closes #2423
- - - - -
91a6d1fa by Tony Chemit at 2022-08-22T18:35:46+02:00
Erreur lors du rechargement de la source si token expiré - Closes #2415
- - - - -
0b1eeba8 by Tony Chemit at 2022-08-22T18:35:46+02:00
Group all api modules in one Maven module - See ultreiaio/topia-extension#145
- - - - -
52772eeb by Tony Chemit at 2022-08-22T18:35:46+02:00
Update changelog for v.7.6.14 [skip CI]
- - - - -
e18b3a9b by Tony Chemit at 2022-08-22T18:35:46+02:00
use cache of simplifiedObjectTypeSpecializedRules
- - - - -
3c4e2ada by Tony Chemit at 2022-08-22T18:35:46+02:00
Il faudrait mettre à jour le script qui crée les colonnes postgis pour chaque champ lat/lon - Closes #2422
- - - - -
114a4e4e by Tony Chemit at 2022-08-22T18:35:46+02:00
Introduce sql package (from topia project) - See ultreiaio/java-util#31
- - - - -
0b95b008 by Tony Chemit at 2022-08-22T18:35:46+02:00
Introduce json package (from http project) - See ultreiaio/java-util#30
- - - - -
14cc8b0c by Tony Chemit at 2022-08-22T18:35:46+02:00
Introduce sql package (from topia project) - See ultreiaio/java-util#31
Introduce json package (from http project) - See ultreiaio/java-util#30
- - - - -
0203a260 by Tony Chemit at 2022-08-22T18:35:46+02:00
tidy pom
- - - - -
3b30059a by Tony Chemit at 2022-08-22T18:35:46+02:00
Improve avdth API (move it from api-dto to api-services)
- - - - -
52700fb3 by Tony Chemit at 2022-08-22T18:35:46+02:00
update pom
- - - - -
17c4bf47 by Tony Chemit at 2022-08-22T18:35:46+02:00
import topia into toolkit
- - - - -
e2e28393 by Tony Chemit at 2022-08-22T18:35:46+02:00
TimeLog - Fix timeLog init
- - - - -
9c6b0e01 by Tony Chemit at 2022-08-22T18:35:46+02:00
Persistence - Improve Migration service code and logs
- - - - -
b2c2c57d by Tony Chemit at 2022-08-22T18:35:46+02:00
TimeLog - use TimeLog.reset
- - - - -
96b0b7fb by Tony Chemit at 2022-08-22T18:35:46+02:00
Persistence - Add SqlQuery and SqlFunction in sql package - See ultreiaio/java-util#33
- - - - -
f98284aa by Tony Chemit at 2022-08-22T18:35:46+02:00
Persistence - Improve JdbcHelper (remove a very strange DriverManager.registerDriver code...)
- - - - -
42bb7902 by Tony Chemit at 2022-08-22T18:35:46+02:00
Replace MutableInt by AtomicInteger
- - - - -
ac7f588b by Tony Chemit at 2022-08-22T18:35:46+02:00
Json - Remove guava json adapters from this project (remove then guava dependency :)) - Closes ultreiaio/java-util#35
- - - - -
d2797ffe by Tony Chemit at 2022-08-22T18:35:46+02:00
update pom
- - - - -
4dc68147 by Tony Chemit at 2022-08-22T18:35:46+02:00
Server - low log level
- - - - -
58bd4640 by Tony Chemit at 2022-08-22T18:35:46+02:00
TimeLog - fix some usages (not on correct class)
- - - - -
f5064861 by Tony Chemit at 2022-08-22T18:35:46+02:00
Service Local - use TimeLog at correct place
- - - - -
2cb35e78 by Tony Chemit at 2022-08-22T18:35:46+02:00
Service Client - Improve TimeLog and code flow
Improve generated service client to have TimeLog at nice place - See ultreiaio/http#54
Replace url by uri in HResponseNotAvailableException to avoid nasty IOException - See ultreiaio/http#55
- - - - -
3fa2b1c3 by Tony Chemit at 2022-08-22T18:35:46+02:00
Dans l'assistant rapport, ajouter un export CSV - Closes #2259
- - - - -
6ce76e92 by Tony Chemit at 2022-08-22T18:35:46+02:00
Client - Aucune barre de progression Closes #2409
- - - - -
b4c49f2c by Tony Chemit at 2022-08-22T18:35:46+02:00
Persistence - clean code
- - - - -
5cfc1e3d by Tony Chemit at 2022-08-22T18:35:46+02:00
Persistence - use JsonAware instead of ObserveDto
- - - - -
bfda48c5 by Tony Chemit at 2022-08-22T18:35:46+02:00
Persistence - schema are now always sorted
- - - - -
461ffa4f by Tony Chemit at 2022-08-22T18:35:46+02:00
Persistence - improve JdbcHelper, introduce JdbcSecurityHelper to add support for h2 users management, improve Security script API
- - - - -
aede1e93 by Tony Chemit at 2022-08-22T18:35:46+02:00
Persistence - merge some toolkit code to topia
Persistence - add replicate and delete plan for referential (to be able to remove the nasty topia dao delete method and replace it by generated sql code)
Tck - add more tck data to be able to perform all the delete tests
- - - - -
f10d92cf by Tony Chemit at 2022-08-22T18:35:46+02:00
Persistence - sort blob by id when copy them to h2 database
- - - - -
fe237b27 by Tony Chemit at 2022-08-22T18:35:46+02:00
Test - Add more tests for ReferentialService
- - - - -
726a08a5 by Tony Chemit at 2022-08-22T18:35:46+02:00
Persistence - Add referential new scripts instead of runtime sql generation + improve referential context code
- - - - -
7010f384 by Tony Chemit at 2022-08-22T18:35:46+02:00
Persistence - Fix vicious code that could delete all data (if used inside other code...)
- - - - -
1453098e by Tony Chemit at 2022-08-22T18:35:46+02:00
Service - fix ReferentialService.delete permission (was ALL but WRITE_REFERENTIAL is enough)
- - - - -
8bcb9bc7 by Tony Chemit at 2022-08-22T18:35:46+02:00
Persistence - Improve avdth code
- - - - -
d3f579b8 by Tony Chemit at 2022-08-22T18:35:46+02:00
Persistence - Review TopiaIdFactory
- - - - -
adc2f354 by Tony Chemit at 2022-08-22T18:35:46+02:00
Persistence - Review TopiaApplicationContext
- - - - -
75628829 by Tony Chemit at 2022-08-22T18:35:46+02:00
Persistence - Review EntityDeserializerContext
- - - - -
67244cba by Tony Chemit at 2022-08-22T18:35:46+02:00
Persistence - Remove usage of TopiaEntityEnum and remove naturalIds on referential and continue to refactor persistence API
- - - - -
28dc3317 by Tony Chemit at 2022-08-22T18:35:46+02:00
Persistence - Remove usage of ToolkitEntitySqlModelResource, everything goes to TopiaEntitySqlModelResource now.
- - - - -
2e038e5e by Tony Chemit at 2022-08-22T18:35:46+02:00
Persistence - Remove TopiaConfigurationExtension and use JdbcConfiguration from java-util library - See ultreiaio/java-util#37
- - - - -
1063e053 by Tony Chemit at 2022-08-22T18:35:46+02:00
update pom
- - - - -
f2884876 by Tony Chemit at 2022-08-22T18:35:46+02:00
downgrade m-site-p (still some velocity incompatibility)
- - - - -
67219119 by Tony Chemit at 2022-08-22T18:35:46+02:00
Persistence - generate application context schema names, instead of computing them.
- - - - -
5335baca by Tony Chemit at 2022-08-22T18:35:46+02:00
Persistence - remove HibernateTopiaMigrationService
- - - - -
685feca0 by Tony Chemit at 2022-08-22T18:35:46+02:00
Persistence - clean TopiaApplicationText
- - - - -
30 changed files:
- CHANGELOG.md
- client/configuration/pom.xml
- client/configuration/src/main/config/Client.ini
- client/configuration/src/main/i18n/getters/config.getter
- client/configuration/src/main/java/fr/ird/observe/client/configuration/ClientConfig.java
- client/core/pom.xml
- client/core/src/main/java/fr/ird/observe/client/ClientUIContext.java
- client/core/src/main/java/fr/ird/observe/client/ClientUIContextApi.java
- client/core/src/main/java/fr/ird/observe/client/WithClientUIContextApi.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/ObserveDataSourcesManager.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/ObserveSwingDataSource.java
- client/core/src/main/java/fr/ird/observe/client/datasource/h2/backup/BackupsManager.java
- client/core/src/main/java/fr/ird/observe/client/datasource/validation/ClientValidationContext.java
- client/core/src/main/java/fr/ird/observe/client/main/MainUIModel.java
- client/core/src/main/java/fr/ird/observe/client/main/ObserveMainUI.jaxx
- client/core/src/main/java/fr/ird/observe/client/main/ObserveMainUIHandler.java
- client/core/src/main/java/fr/ird/observe/client/main/body/ClientConfigUI.java
- client/core/src/main/java/fr/ird/observe/client/main/focus/MainUIFocusModel.java
- client/core/src/main/resources/observe-ui.properties
- client/datasource/actions/pom.xml
- client/datasource/actions/src/main/i18n/getters/java.getter
- client/datasource/actions/src/main/i18n/getters/jaxx.getter
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/ObserveKeyStrokesActions.java
- + client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/CsvExportUI.jaxx
- + client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/CsvExportUI.jcss
- + client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/CsvExportUIHandler.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportUI.jaxx
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportUI.jcss
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportUIHandler.java
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/21e522c09b90a82869f4ba3a…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/21e522c09b90a82869f4ba3a…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 10 commits: Persistence - clean code
by Tony CHEMIT (@tchemit) 16 Aug '22
by Tony CHEMIT (@tchemit) 16 Aug '22
16 Aug '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
5a8b4451 by Tony Chemit at 2022-08-10T08:14:49+02:00
Persistence - clean code
- - - - -
961020c6 by Tony Chemit at 2022-08-11T10:24:48+02:00
Persistence - use JsonAware instead of ObserveDto
- - - - -
abf00060 by Tony Chemit at 2022-08-11T14:24:16+02:00
Persistence - schema are now always sorted
- - - - -
9adf1d42 by Tony Chemit at 2022-08-11T14:29:19+02:00
Persistence - improve JdbcHelper, introduce JdbcSecurityHelper to add support for h2 users management, improve Security script API
- - - - -
f34d1fda by Tony Chemit at 2022-08-15T06:56:31+02:00
Persistence - merge some toolkit code to topia
Persistence - add replicate and delete plan for referential (to be able to remove the nasty topia dao delete method and replace it by generated sql code)
Tck - add more tck data to be able to perform all the delete tests
- - - - -
556c7525 by Tony Chemit at 2022-08-15T06:56:31+02:00
Persistence - sort blob by id when copy them to h2 database
- - - - -
52ea98e9 by Tony Chemit at 2022-08-15T07:32:08+02:00
Test - Add more tests for ReferentialService
- - - - -
64e8928b by Tony Chemit at 2022-08-16T14:50:20+02:00
Persistence - Add referential new scripts instead of runtime sql generation + improve referential context code
- - - - -
f3a34885 by Tony Chemit at 2022-08-16T14:50:20+02:00
Persistence - Fix vicious code that could delete all data (if used inside other code...)
- - - - -
21e522c0 by Tony Chemit at 2022-08-16T14:50:20+02:00
Service - fix ReferentialService.delete permission (was ALL but WRITE_REFERENTIAL is enough)
- - - - -
9 changed files:
- core/persistence/java/src/main/java/fr/ird/observe/entities/LastUpdateDateTopiaDao.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/ObserveSecurityHelperModel.java → core/persistence/java/src/main/java/fr/ird/observe/entities/ObserveSecurityScriptConfiguration.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/ObserveTopiaPersistenceContext.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/logbook/SetSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/observation/SetSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/spi/report/ObserveDefaultReportRequestExecutor.java
- core/persistence/java/src/main/java/fr/ird/observe/spi/validation/EntityInterceptors.java
- core/persistence/java/src/main/resources/META-INF/persistence/Observe/ToolkitEntitySqlScriptModel.json
- core/persistence/java/src/main/resources/META-INF/persistence/Observe/TopiaEntitySqlDeletePlanModel.json
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/7d0c19308e21d631e84c16c2…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/7d0c19308e21d631e84c16c2…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] Client - Aucune barre de progression Closes #2409
by Tony CHEMIT (@tchemit) 03 Aug '22
by Tony CHEMIT (@tchemit) 03 Aug '22
03 Aug '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
7d0c1930 by Tony Chemit at 2022-08-03T18:31:38+02:00
Client - Aucune barre de progression Closes #2409
- - - - -
27 changed files:
- client/core/src/main/java/fr/ird/observe/client/ClientUIContext.java
- client/core/src/main/java/fr/ird/observe/client/ClientUIContextApi.java
- client/core/src/main/java/fr/ird/observe/client/WithClientUIContextApi.java
- client/core/src/main/java/fr/ird/observe/client/main/MainUIModel.java
- client/core/src/main/java/fr/ird/observe/client/main/ObserveMainUI.jaxx
- client/core/src/main/java/fr/ird/observe/client/main/ObserveMainUIHandler.java
- client/core/src/main/java/fr/ird/observe/client/main/focus/MainUIFocusModel.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/DataSourceEditorBodyContent.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/DataSourceEditorModel.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/avdth/ImportDialogHandler.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/avdth/ImportDialogModel.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/mode/ChangeModeExecutor.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/edit/actions/DeleteEdit.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/edit/actions/SaveContentEditUIAdapter.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/open/actions/SaveContentOpenableUIAdapter.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/ropen/actions/SaveContentRootOpenableUIAdapter.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/menu/DataSourceEditorMenu.jaxx
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/menu/DataSourceEditorMenuModel.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/NavigationTree.java
- toolkit/api/src/main/i18n/getters/java.getter
- toolkit/api/src/main/i18n/translations/toolkit_en_GB.properties
- toolkit/api/src/main/i18n/translations/toolkit_es_ES.properties
- toolkit/api/src/main/i18n/translations/toolkit_fr_FR.properties
- toolkit/api/src/main/java/fr/ird/observe/navigation/tree/navigation/NavigationTreeSelectionModel.java
- toolkit/api/src/main/java/fr/ird/observe/navigation/tree/navigation/NavigationTreeSupport.java
- client/core/src/main/java/fr/ird/observe/client/util/busy/BusyLayerUI.java → toolkit/api/src/main/java/fr/ird/observe/spi/ui/BusyLayerUI.java
- client/core/src/main/java/fr/ird/observe/client/util/busy/BusyModel.java → toolkit/api/src/main/java/fr/ird/observe/spi/ui/BusyModel.java
Changes:
=====================================
client/core/src/main/java/fr/ird/observe/client/ClientUIContext.java
=====================================
@@ -33,7 +33,7 @@ import fr.ird.observe.client.main.body.NoBodyContentComponent;
import fr.ird.observe.client.main.callback.ObserveUICallbackManager;
import fr.ird.observe.client.main.focus.MainUIFocusModel;
import fr.ird.observe.client.util.action.ObserveExecutorService;
-import fr.ird.observe.client.util.busy.BusyModel;
+import fr.ird.observe.spi.ui.BusyModel;
import fr.ird.observe.client.util.session.ObserveSwingSessionHelper;
import fr.ird.observe.dto.data.ps.dcp.FloatingObjectPresetsManager;
import fr.ird.observe.navigation.id.IdProjectManager;
=====================================
client/core/src/main/java/fr/ird/observe/client/ClientUIContextApi.java
=====================================
@@ -32,7 +32,7 @@ import fr.ird.observe.client.main.ObserveMainUI;
import fr.ird.observe.client.main.callback.ObserveUICallbackManager;
import fr.ird.observe.client.main.focus.MainUIFocusModel;
import fr.ird.observe.client.util.UIHelper;
-import fr.ird.observe.client.util.busy.BusyModel;
+import fr.ird.observe.spi.ui.BusyModel;
import fr.ird.observe.client.util.session.ObserveSwingSessionHelper;
import fr.ird.observe.dto.ObserveUtil;
import fr.ird.observe.dto.data.ps.dcp.FloatingObjectPresetsManager;
=====================================
client/core/src/main/java/fr/ird/observe/client/WithClientUIContextApi.java
=====================================
@@ -31,7 +31,7 @@ import fr.ird.observe.client.main.MainUIModel;
import fr.ird.observe.client.main.ObserveMainUI;
import fr.ird.observe.client.main.callback.ObserveUICallbackManager;
import fr.ird.observe.client.main.focus.MainUIFocusModel;
-import fr.ird.observe.client.util.busy.BusyModel;
+import fr.ird.observe.spi.ui.BusyModel;
import fr.ird.observe.client.util.session.ObserveSwingSessionHelper;
import fr.ird.observe.dto.data.ps.dcp.FloatingObjectPresetsManager;
import fr.ird.observe.navigation.id.IdProjectManager;
=====================================
client/core/src/main/java/fr/ird/observe/client/main/MainUIModel.java
=====================================
@@ -24,7 +24,7 @@ package fr.ird.observe.client.main;
import fr.ird.observe.client.configuration.ClientConfig;
import fr.ird.observe.client.main.focus.MainUIFocusModel;
-import fr.ird.observe.client.util.busy.BusyModel;
+import fr.ird.observe.spi.ui.BusyModel;
import io.ultreia.java4all.bean.AbstractJavaBean;
import io.ultreia.java4all.bean.spi.GenerateJavaBeanDefinition;
=====================================
client/core/src/main/java/fr/ird/observe/client/main/ObserveMainUI.jaxx
=====================================
@@ -22,7 +22,7 @@
<import>
fr.ird.observe.client.util.JMenuWithAccelerator
- fr.ird.observe.client.util.busy.BusyModel
+ fr.ird.observe.spi.ui.BusyModel
fr.ird.observe.client.configuration.ClientConfig
fr.ird.observe.client.main.MainUIModel
fr.ird.observe.client.main.body.MainUIBodyContentManager
=====================================
client/core/src/main/java/fr/ird/observe/client/main/ObserveMainUIHandler.java
=====================================
@@ -27,8 +27,8 @@ import fr.ird.observe.client.configuration.ClientConfig;
import fr.ird.observe.client.main.body.MainUIBodyContentManager;
import fr.ird.observe.client.util.ObserveKeyStrokesSupport;
import fr.ird.observe.client.util.UIHelper;
-import fr.ird.observe.client.util.busy.BusyLayerUI;
-import fr.ird.observe.client.util.busy.BusyModel;
+import fr.ird.observe.spi.ui.BusyLayerUI;
+import fr.ird.observe.spi.ui.BusyModel;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.nuiton.jaxx.runtime.spi.UIHandler;
@@ -102,7 +102,7 @@ public class ObserveMainUIHandler implements UIHandler<ObserveMainUI>, WithClien
ui.getStatus().init();
- // installation layer de blocage en mode busy
+ // init blocking layer associated with the busy model
BusyLayerUI.create(ui, busyModel);
ui.getMenu().setEnabled(!busyModel.isBusy());
=====================================
client/core/src/main/java/fr/ird/observe/client/main/focus/MainUIFocusModel.java
=====================================
@@ -22,7 +22,7 @@ package fr.ird.observe.client.main.focus;
* #L%
*/
-import fr.ird.observe.client.util.busy.BusyModel;
+import fr.ird.observe.spi.ui.BusyModel;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/DataSourceEditorBodyContent.java
=====================================
@@ -44,7 +44,7 @@ import fr.ird.observe.client.main.ObserveMainUI;
import fr.ird.observe.client.main.body.MainUIBodyContent;
import fr.ird.observe.client.main.focus.MainUIFocusModel;
import fr.ird.observe.client.util.UIHelper;
-import fr.ird.observe.client.util.busy.BusyModel;
+import fr.ird.observe.spi.ui.BusyModel;
import fr.ird.observe.dto.ProgressionModel;
import fr.ird.observe.dto.ProtectedIdsCommon;
import fr.ird.observe.dto.db.BabModelVersionException;
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/DataSourceEditorModel.java
=====================================
@@ -78,4 +78,13 @@ public class DataSourceEditorModel extends AbstractJavaBean {
return messageTableModel;
}
+ /**
+ * apply extra actions from previous opened content (go back to correct tab if any, ...)
+ *
+ * @param previousUi previous ui with ui states to apply
+ */
+ public void resetFromPreviousUi(ContentUI previousUi) {
+ ContentUI newUi = getTypedContent();
+ newUi.resetFromPreviousUi(previousUi);
+ }
}
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/avdth/ImportDialogHandler.java
=====================================
@@ -25,7 +25,7 @@ package fr.ird.observe.client.datasource.editor.api.avdth;
import fr.ird.observe.client.WithClientUIContextApi;
import fr.ird.observe.client.util.ObserveBlockingLayerUI;
import fr.ird.observe.client.util.UIHelper;
-import fr.ird.observe.client.util.busy.BusyLayerUI;
+import fr.ird.observe.spi.ui.BusyLayerUI;
import fr.ird.observe.client.util.init.UIInitHelper;
import fr.ird.observe.dto.referential.common.OceanReference;
import fr.ird.observe.dto.referential.ps.common.ProgramReference;
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/avdth/ImportDialogModel.java
=====================================
@@ -27,7 +27,7 @@ import fr.ird.observe.client.configuration.ClientConfig;
import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
import fr.ird.observe.client.datasource.validation.ContentMessageTableModel;
import fr.ird.observe.client.main.focus.FocusDispatcher;
-import fr.ird.observe.client.util.busy.BusyModel;
+import fr.ird.observe.spi.ui.BusyModel;
import fr.ird.observe.dto.ProgressionModel;
import fr.ird.observe.services.service.data.ps.AvdthDataImportConfiguration;
import fr.ird.observe.services.service.data.ps.AvdthDataImportResult;
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/mode/ChangeModeExecutor.java
=====================================
@@ -94,15 +94,10 @@ public class ChangeModeExecutor<U extends ContentUI> {
node.nodeChangedDeep();
log.info(String.format("Will reselect node: %s", node));
- tree.reSelectSafeNode(node);
- // apply extra actions from previous opened content (go back to correct tab if any, ...)
- U newUi = dataSourceEditor.getModel().getTypedContent();
- newUi.resetFromPreviousUi(ui);
+ tree.reSelectSafeNodeThen(node, () -> dataSourceEditor.getModel().resetFromPreviousUi(ui));
}
protected void afterOpen(U ui, DataSourceEditor dataSourceEditor, NavigationNode previousOpenedNode, String id) {
-
- // on repaint le parent (le program devient alors ouvert)
NavigationTree tree = dataSourceEditor.getNavigationUI().getTree();
if (previousOpenedNode != null) {
@@ -117,14 +112,12 @@ public class ChangeModeExecutor<U extends ContentUI> {
selectedNode.nodeChangedDeep();
afterOpenReselectNode(ui, dataSourceEditor, tree, selectedNode, id);
SwingUtilities.invokeLater(tree::invalidateCellSizeCache);
+// SwingUtilities.invokeLater(tree::repaint);
}
protected void afterOpenReselectNode(U ui, DataSourceEditor dataSourceEditor, NavigationTree tree, NavigationNode selectedNode, String id) {
log.info(String.format("Will reselect node: %s", selectedNode));
- tree.reSelectSafeNode(selectedNode);
- // apply extra actions from previous opened content (go back to correct tab if any, ...)
- U newUi = dataSourceEditor.getModel().getTypedContent();
- newUi.resetFromPreviousUi(ui);
+ tree.reSelectSafeNodeThen(selectedNode, () -> dataSourceEditor.getModel().resetFromPreviousUi(ui));
}
}
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/edit/actions/DeleteEdit.java
=====================================
@@ -29,7 +29,7 @@ import fr.ird.observe.client.datasource.editor.api.content.ContentUIHandler;
import fr.ird.observe.client.datasource.editor.api.content.data.edit.ContentEditUI;
import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree;
import fr.ird.observe.client.datasource.editor.api.navigation.tree.NavigationNode;
-import fr.ird.observe.client.util.busy.BusyModel;
+import fr.ird.observe.spi.ui.BusyModel;
import fr.ird.observe.dto.IdDto;
import fr.ird.observe.dto.data.EditableDto;
import fr.ird.observe.spi.decoration.DecoratorService;
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/edit/actions/SaveContentEditUIAdapter.java
=====================================
@@ -48,14 +48,12 @@ public class SaveContentEditUIAdapter<D extends EditableDto, U extends ContentEd
node.updateReference(savedBean.getId());
//FIXME A startEdit should do the math?
- dataSourceEditor.getNavigationUI().getTree().reSelectSafeNode(node);
+ dataSourceEditor.getNavigationUI().getTree().reSelectSafeNodeThen(node, () -> {
+ dataSourceEditor.getModel().resetFromPreviousUi(ui);
+ if (notPersisted) {
+ dataSourceEditor.getNavigationUI().getTree().expandPath(dataSourceEditor.getNavigationUI().getTree().getSelectionPath());
+ }
+ });
- // apply extra actions from previous opened content (go back to correct tab if any, ...)
- U newUi = dataSourceEditor.getModel().getTypedContent();
- newUi.resetFromPreviousUi(ui);
-
- if (notPersisted) {
- dataSourceEditor.getNavigationUI().getTree().expandPath(dataSourceEditor.getNavigationUI().getTree().getSelectionPath());
- }
}
}
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/open/actions/SaveContentOpenableUIAdapter.java
=====================================
@@ -76,21 +76,19 @@ public class SaveContentOpenableUIAdapter<D extends OpenableDto, U extends Conte
protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, U ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, D bean) {
//FIXME A startEdit should do the math?
- tree.reSelectSafeNode(node);
-
- U newUi = dataSourceEditor.getModel().getTypedContent();
-
- if (notPersisted && predicate.test(bean)) {
- // reload ui and do click
- SwingUtilities.invokeLater(() -> Objects.requireNonNull(buttonGetter).apply(newUi).doClick());
- return;
- } else {
- // apply extra actions from previous opened content (go back to correct tab if any, ...)
- newUi.resetFromPreviousUi(ui);
- }
-
- if (notPersisted) {
- tree.expandPath(tree.getSelectionPath());
- }
+ tree.reSelectSafeNodeThen(node, () -> {
+ if (notPersisted && predicate.test(bean)) {
+ // reload ui and do click
+ U newUi = dataSourceEditor.getModel().getTypedContent();
+ SwingUtilities.invokeLater(() -> Objects.requireNonNull(buttonGetter).apply(newUi).doClick());
+ return;
+ } else {
+ dataSourceEditor.getModel().resetFromPreviousUi(ui);
+ }
+
+ if (notPersisted) {
+ tree.expandPath(tree.getSelectionPath());
+ }
+ });
}
}
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/ropen/actions/SaveContentRootOpenableUIAdapter.java
=====================================
@@ -58,21 +58,17 @@ public class SaveContentRootOpenableUIAdapter<D extends RootOpenableDto, U exten
updateReference(node, bean.getId());
NavigationTree tree = dataSourceEditor.getNavigationUI().getTree();
- tree.reSelectSafeNode(node);
-
- U newUi = dataSourceEditor.getModel().getTypedContent();
-
- // apply extra actions from previous opened content (go back to correct tab if any, ...)
- newUi.resetFromPreviousUi(ui);
-
- if (notPersisted) {
- tree.expandPath(tree.getSelectionPath());
- }
- NavigationUIHandler.updateStatistics(dataSourceEditor.getNavigationUI(), 0, 1);
+ tree.reSelectSafeNodeThen(node, () -> {
+ dataSourceEditor.getModel().resetFromPreviousUi(ui);
+ if (notPersisted) {
+ tree.expandPath(tree.getSelectionPath());
+ }
+ NavigationUIHandler.updateStatistics(dataSourceEditor.getNavigationUI(), 0, 1);
+ });
}
- public void updateReference(ContentRootOpenableUINavigationNode node , String id) {
+ public void updateReference(ContentRootOpenableUINavigationNode node, String id) {
boolean notPersisted = node.getInitializer().isNotPersisted();
NavigationNode parent = node.getParent();
int oldPosition = parent.getIndex(node);
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/menu/DataSourceEditorMenu.jaxx
=====================================
@@ -18,20 +18,7 @@
#L%
-->
<JMenu id='menuStorage'>
-
- <!-- <import>-->
- <!-- fr.ird.observe.client.main.MainUIModel-->
- <!-- fr.ird.observe.client.util.busy.BusyModel-->
- <!-- fr.ird.observe.client.util.UIHelper-->
- <!-- java.util.Locale-->
- <!-- java.awt.Dimension-->
- <!-- javax.swing.BoxLayout-->
- <!-- javax.swing.JComponent-->
- <!-- </import>-->
-
<DataSourceEditorMenuModel id="uiModel" initializer="getContextValue(DataSourceEditorMenuModel.class)"/>
- <!-- <BusyModel id='busyModel' initializer='uiModel.getBusyModel()'/>-->
- <!-- <MainUIModel id="mainUiModel" initializer="uiModel.getMainUIModel()"/>-->
<JMenuItem id='changeStorage'/>
<JMenuItem id='reloadStorage' styleClass="optional"/>
<JMenuItem id='closeStorage' styleClass="optional"/>
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/menu/DataSourceEditorMenuModel.java
=====================================
@@ -30,7 +30,7 @@ import fr.ird.observe.client.main.MainUIModel;
import fr.ird.observe.client.main.body.MainUIBodyContentManager;
import fr.ird.observe.client.main.body.NoBodyContentComponent;
import fr.ird.observe.client.util.UIHelper;
-import fr.ird.observe.client.util.busy.BusyModel;
+import fr.ird.observe.spi.ui.BusyModel;
import io.ultreia.java4all.bean.AbstractJavaBean;
import io.ultreia.java4all.bean.spi.GenerateJavaBeanDefinition;
import org.apache.logging.log4j.LogManager;
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/NavigationTree.java
=====================================
@@ -93,7 +93,7 @@ public class NavigationTree extends JXTree implements WithClientUIContextApi {
@Override
public void updateUI() {
- setSelectionModel(new NavigationTreeSelectionModel());
+ setSelectionModel(new NavigationTreeSelectionModel(getBusyModel()));
super.updateUI();
}
@@ -142,25 +142,39 @@ public class NavigationTree extends JXTree implements WithClientUIContextApi {
log.info(String.format("try to select safe node [%s]", node));
TreePath path = new TreePath(getModel().getPathToRoot(node));
getSelectionModel().setSkipCheckPreviousContent(true);
+ getSelectionModel().setSkipBusyModel(true);
try {
setSelectionPath(path);
} finally {
getSelectionModel().setSkipCheckPreviousContent(false);
+ getSelectionModel().setSkipBusyModel(false);
}
SwingUtilities.invokeLater(() -> scrollPathToVisible(path));
}
- public void reSelectSafeNode(TreeNode node) {
+ public void reSelectSafeNodeThen(TreeNode node, Runnable then) {
log.info(String.format("try to reselect safe node [%s]", node));
TreePath path = new TreePath(getModel().getPathToRoot(node));
- getSelectionModel().clearSelection();
- getSelectionModel().setSkipCheckPreviousContent(true);
+ getSelectionModel().setSkipBusyModel(true);
try {
- setSelectionPath(path);
+ getSelectionModel().clearSelection();
+ getSelectionModel().setSkipCheckPreviousContent(true);
+ try {
+ setSelectionPath(path);
+ } finally {
+ getSelectionModel().setSkipCheckPreviousContent(false);
+ }
} finally {
- getSelectionModel().setSkipCheckPreviousContent(false);
+ getSelectionModel().setSkipBusyModel(false);
}
SwingUtilities.invokeLater(() -> scrollPathToVisible(path));
+ if (then != null) {
+ then.run();
+ }
+ }
+
+ public void reSelectSafeNode(TreeNode node) {
+ reSelectSafeNodeThen(node, null);
}
public boolean isRowSelected(int requiredRow) {
=====================================
toolkit/api/src/main/i18n/getters/java.getter
=====================================
@@ -76,6 +76,10 @@ observe.services.topia.error.h2.database.locked
observe.services.topia.error.h2.database.notFound
observe.services.topia.error.id.not.found
observe.services.topia.error.incompatible.data.source.create.configuration
+observe.ui.busy.end.block
+observe.ui.busy.end.task
+observe.ui.busy.start.block
+observe.ui.busy.start.task
observe.ui.datasource.storage.error.rest.adminApiKey.invalid
observe.ui.datasource.storage.error.rest.adminApiKey.required
observe.ui.datasource.storage.error.rest.apiAccess.invalid
@@ -87,3 +91,4 @@ observe.ui.datasource.storage.error.rest.password.required
observe.ui.datasource.storage.error.rest.user.required
observe.ui.datasource.storage.error.rest.user.unknown
observe.ui.message.warning.will.be.delete
+observe.ui.tree.loading.node
=====================================
toolkit/api/src/main/i18n/translations/toolkit_en_GB.properties
=====================================
@@ -144,6 +144,10 @@ observe.services.topia.error.h2.database.locked=The H2 database is locked
observe.services.topia.error.h2.database.notFound=The H2 database was not found.
observe.services.topia.error.id.not.found=Data [%s] not found.
observe.services.topia.error.incompatible.data.source.create.configuration=Can not create database, import of data and referential in same time..
+observe.ui.busy.end.block=End main task [%10s] « %s »
+observe.ui.busy.end.task=End task (%d) [%10s] « %s »
+observe.ui.busy.start.block=Start main task « %s »
+observe.ui.busy.start.task=Start task (%d) « %s »
observe.ui.datasource.storage.error.rest.adminApiKey.invalid=Admin key not valid
observe.ui.datasource.storage.error.rest.adminApiKey.required=Admin key not found
observe.ui.datasource.storage.error.rest.apiAccess.invalid=Unauthorized api access (required\: %s, yours is\: %s)
@@ -155,3 +159,4 @@ observe.ui.datasource.storage.error.rest.password.required=Password is mandatory
observe.ui.datasource.storage.error.rest.user.required=User login is mandatory
observe.ui.datasource.storage.error.rest.user.unknown=User "%s" is not defined on server
observe.ui.message.warning.will.be.delete=%1$s\n\nBe ware, export will replace existing data.
+observe.ui.tree.loading.node=Loading selected node
=====================================
toolkit/api/src/main/i18n/translations/toolkit_es_ES.properties
=====================================
@@ -144,6 +144,10 @@ observe.services.topia.error.h2.database.locked=La base de datos H2 ya está sie
observe.services.topia.error.h2.database.notFound=No se pudó encontrar La base de datos H2.
observe.services.topia.error.id.not.found=Data [%s] not found.
observe.services.topia.error.incompatible.data.source.create.configuration=Can not create database, import of data and referential in same time..
+observe.ui.busy.end.block=End main task [%10s] « %s »
+observe.ui.busy.end.task=End task (%d) [%10s] « %s »
+observe.ui.busy.start.block=Start main task « %s »
+observe.ui.busy.start.task=Start task (%d) « %s »
observe.ui.datasource.storage.error.rest.adminApiKey.invalid=Admin key not valid \#TODO
observe.ui.datasource.storage.error.rest.adminApiKey.required=Admin key not found \#TODO
observe.ui.datasource.storage.error.rest.apiAccess.invalid=Unauthorized api access (required\: %s, yours is\: %s) \#TODO
@@ -155,3 +159,4 @@ observe.ui.datasource.storage.error.rest.password.required=Le contraseña es obl
observe.ui.datasource.storage.error.rest.user.required=El usuario es obligatorio
observe.ui.datasource.storage.error.rest.user.unknown=El usuario "%s" no es conocido del servidor
observe.ui.message.warning.will.be.delete=%1$s\n\nAtención, la exportación reemplazará la marea existente.
+observe.ui.tree.loading.node=Loading selected node
=====================================
toolkit/api/src/main/i18n/translations/toolkit_fr_FR.properties
=====================================
@@ -144,6 +144,10 @@ observe.services.topia.error.h2.database.locked=La base H2 est déjà utilisé p
observe.services.topia.error.h2.database.notFound=La base H2 n'a pas été trouvée.
observe.services.topia.error.id.not.found=Donnée [%s] non trouvée.
observe.services.topia.error.incompatible.data.source.create.configuration=Impossible de créer la base (import données et référentiel demandé en meme temps)
+observe.ui.busy.end.block=Action terminée [%10s] « %s »
+observe.ui.busy.end.task=Tâche terminée (%d) [%10s] « %s »
+observe.ui.busy.start.block=Action en cours « %s »
+observe.ui.busy.start.task=Tâche en cours (%d) « %s »
observe.ui.datasource.storage.error.rest.adminApiKey.invalid=Pas de clef admin trouvée
observe.ui.datasource.storage.error.rest.adminApiKey.required=Clef admin non valide
observe.ui.datasource.storage.error.rest.apiAccess.invalid=Accès non autorisé à cette API (Accès requis\: %s, le votre\: %s)
@@ -155,3 +159,4 @@ observe.ui.datasource.storage.error.rest.password.required=Le mot de passe est o
observe.ui.datasource.storage.error.rest.user.required=L'utilisateur est obligatoire
observe.ui.datasource.storage.error.rest.user.unknown=L'utilisateur "%s" est inconnu sur le serveur
observe.ui.message.warning.will.be.delete=%1$s\n\nAttention, l'export remplacera la marée existante.
+observe.ui.tree.loading.node=Chargement du nœud sélectionné
=====================================
toolkit/api/src/main/java/fr/ird/observe/navigation/tree/navigation/NavigationTreeSelectionModel.java
=====================================
@@ -25,9 +25,12 @@ package fr.ird.observe.navigation.tree.navigation;
import fr.ird.observe.navigation.tree.navigation.event.NavigationTreeSelectionEvent;
import fr.ird.observe.navigation.tree.navigation.event.NavigationTreeSelectionListener;
import fr.ird.observe.navigation.tree.navigation.event.NavigationTreeSelectionVetoException;
+import fr.ird.observe.spi.ui.BusyModel;
+import io.ultreia.java4all.i18n.I18n;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import javax.swing.SwingUtilities;
import javax.swing.event.TreeExpansionEvent;
import javax.swing.tree.DefaultTreeSelectionModel;
import javax.swing.tree.ExpandVetoException;
@@ -46,9 +49,12 @@ public class NavigationTreeSelectionModel extends DefaultTreeSelectionModel {
private static final Logger log = LogManager.getLogger(NavigationTreeSelectionModel.class);
+ private final BusyModel busyModel;
private boolean skipCheckPreviousContent;
+ private boolean skipBusyModel;
- public NavigationTreeSelectionModel() {
+ public NavigationTreeSelectionModel(BusyModel busyModel) {
+ this.busyModel = busyModel;
setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
}
@@ -84,29 +90,35 @@ public class NavigationTreeSelectionModel extends DefaultTreeSelectionModel {
return;
}
TreePath path = pPaths[0];
- boolean[] newness = new boolean[pPaths.length];
- Arrays.fill(newness, true);
- NavigationTreeSelectionEvent event = new NavigationTreeSelectionEvent(this, pPaths, newness, getLeadSelectionPath(), path, skipCheckPreviousContent);
boolean canChange = !Objects.equals(path, getSelectionPath());
if (canChange) {
+ boolean[] newness = new boolean[pPaths.length];
+ Arrays.fill(newness, true);
+ NavigationTreeSelectionEvent event = new NavigationTreeSelectionEvent(this, pPaths, newness, getLeadSelectionPath(), path, skipCheckPreviousContent);
try {
fireVetoValueChanged(event);
} catch (NavigationTreeSelectionVetoException e) {
canChange = false;
}
}
-
-// boolean canChange = skipCheckPreviousContent || (!Objects.equals(path, getSelectionPath()) && contentUIManager.closeSelectedContentUI());
if (!canChange) {
// cancel the change of node
log.warn(String.format("Do not change selection path: %s against: %s", path, getSelectionPath()));
return;
}
-// FIXME Move this in a listener
-// if (skipCheckPreviousContent) {
-// contentUIManager.closeSafeSelectedContentUI();
-// }
- super.setSelectionPaths(pPaths);
+ // can now safely select new path
+ if (busyModel == null || skipBusyModel) {
+ super.setSelectionPaths(pPaths);
+ } else {
+ busyModel.addTask(I18n.t("observe.ui.tree.loading.node"));
+ SwingUtilities.invokeLater(() -> {
+ try {
+ super.setSelectionPaths(pPaths);
+ } finally {
+ busyModel.popTask();
+ }
+ });
+ }
}
@Override
@@ -135,4 +147,12 @@ public class NavigationTreeSelectionModel extends DefaultTreeSelectionModel {
public void setSkipCheckPreviousContent(boolean skipCheckPreviousContent) {
this.skipCheckPreviousContent = skipCheckPreviousContent;
}
+
+ public boolean isSkipBusyModel() {
+ return skipBusyModel;
+ }
+
+ public void setSkipBusyModel(boolean skipBusyModel) {
+ this.skipBusyModel = skipBusyModel;
+ }
}
=====================================
toolkit/api/src/main/java/fr/ird/observe/navigation/tree/navigation/NavigationTreeSupport.java
=====================================
@@ -54,7 +54,7 @@ public class NavigationTreeSupport<R extends NavigationTreeNode, M extends Navig
@Override
public void updateUI() {
- setSelectionModel(new NavigationTreeSelectionModel());
+ setSelectionModel(new NavigationTreeSelectionModel(null));
super.updateUI();
}
=====================================
client/core/src/main/java/fr/ird/observe/client/util/busy/BusyLayerUI.java → toolkit/api/src/main/java/fr/ird/observe/spi/ui/BusyLayerUI.java
=====================================
@@ -1,8 +1,8 @@
-package fr.ird.observe.client.util.busy;
+package fr.ird.observe.spi.ui;
/*-
* #%L
- * ObServe Client :: Core
+ * ObServe Toolkit :: API
* %%
* Copyright (C) 2008 - 2022 IRD, Ultreia.io
* %%
@@ -22,10 +22,6 @@ package fr.ird.observe.client.util.busy;
* #L%
*/
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import io.ultreia.java4all.util.TimeLog;
-
import javax.swing.JComponent;
import javax.swing.JLayer;
import javax.swing.RootPaneContainer;
@@ -40,6 +36,7 @@ import java.awt.Cursor;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.InputEvent;
+import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.Closeable;
import java.util.Objects;
@@ -48,18 +45,13 @@ import java.util.Objects;
* @author Tony Chemit - dev(a)tchemit.fr
* @since 8.0.0
*/
-public class BusyLayerUI<U extends Component> extends LayerUI<U> implements Closeable {
-
- private static final Logger log = LogManager.getLogger(BusyLayerUI.class);
- private static final TimeLog timeLog = new TimeLog(BusyLayerUI.class, 0, 1000);
+public class BusyLayerUI<U extends Component> extends LayerUI<U> implements Closeable, PropertyChangeListener {
private final RootPaneContainer rootPanecontainer;
private final Container container;
private final BusyModel model;
private final Color busyColor;
- private final PropertyChangeListener listener;
private transient Color color;
- private long blockingTime;
public static void create(RootPaneContainer container, BusyModel busyModel) {
Container contentPane = container.getRootPane().getContentPane();
@@ -81,8 +73,7 @@ public class BusyLayerUI<U extends Component> extends LayerUI<U> implements Clos
this.container = Objects.requireNonNull(rootPanecontainer.getRootPane());
this.model = Objects.requireNonNull(model);
this.busyColor = UIManager.getColor("BlockingLayerUI.busyColor");
- this.listener = evt -> onBusyStateChanged((boolean) evt.getOldValue(), (boolean) evt.getNewValue());
- this.model.addPropertyChangeListener(BusyModel.BUSY_PROPERTY_NAME, listener);
+ this.model.addPropertyChangeListener(BusyModel.BUSY_PROPERTY_NAME, this);
}
@Override
@@ -125,32 +116,32 @@ public class BusyLayerUI<U extends Component> extends LayerUI<U> implements Clos
@Override
public void close() {
- this.model.removePropertyChangeListener(BusyModel.BUSY_PROPERTY_NAME, listener);
+ model.removePropertyChangeListener(BusyModel.BUSY_PROPERTY_NAME, this);
}
public Container getContainer() {
return container;
}
- public void onBusyStateChanged(boolean wasBusy, boolean isBusy) {
- if (wasBusy == isBusy) {
- return;
- }
-
- color = isBusy ? busyColor : null;
- if (isBusy) {
- blockingTime = TimeLog.getTime();
- log.debug("Blocking ui at " + blockingTime);
- container.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
- } else {
- timeLog.log(blockingTime, "unblock");
- container.setCursor(Cursor.getDefaultCursor());
- }
- rootPanecontainer.getRootPane().repaint();
- }
-
public boolean isBusy() {
return color != null;
}
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ if (BusyModel.BUSY_PROPERTY_NAME.equals(evt.getPropertyName())) {
+ boolean wasBusy = (boolean) evt.getOldValue();
+ boolean isBusy = (boolean) evt.getNewValue();
+ if (wasBusy == isBusy) {
+ return;
+ }
+ color = isBusy ? busyColor : null;
+ if (isBusy) {
+ container.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+ } else {
+ container.setCursor(Cursor.getDefaultCursor());
+ }
+ rootPanecontainer.getRootPane().repaint();
+ }
+ }
}
=====================================
client/core/src/main/java/fr/ird/observe/client/util/busy/BusyModel.java → toolkit/api/src/main/java/fr/ird/observe/spi/ui/BusyModel.java
=====================================
@@ -1,8 +1,8 @@
-package fr.ird.observe.client.util.busy;
+package fr.ird.observe.spi.ui;
/*-
* #%L
- * ObServe Client :: Core
+ * ObServe Toolkit :: API
* %%
* Copyright (C) 2008 - 2022 IRD, Ultreia.io
* %%
@@ -24,6 +24,9 @@ package fr.ird.observe.client.util.busy;
import io.ultreia.java4all.bean.AbstractJavaBean;
import io.ultreia.java4all.bean.spi.GenerateJavaBeanDefinition;
+import io.ultreia.java4all.i18n.I18n;
+import io.ultreia.java4all.lang.Strings;
+import io.ultreia.java4all.util.TimeLog;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -36,36 +39,76 @@ import java.util.Deque;
*/
@GenerateJavaBeanDefinition
public class BusyModel extends AbstractJavaBean {
-
+ private static final TimeLog timeLog = new TimeLog(BusyModel.class, 500, 1000);
private static final Logger log = LogManager.getLogger(BusyModel.class);
+ static class BusyTask {
+ private final String taskName;
+ private final int rank;
+ private final long startTime;
+
+ BusyTask(String taskName, int rank) {
+ this.taskName = taskName;
+ this.rank = rank;
+ this.startTime = TimeLog.getTime();
+ }
+
+ public int getRank() {
+ return rank;
+ }
+
+ public String getTaskName() {
+ return taskName;
+ }
+
+ public long getStartTime() {
+ return startTime;
+ }
+
+ }
+
public static final String BUSY_PROPERTY_NAME = "busy";
- private final Deque<String> tasks;
+ private final Deque<BusyTask> tasks;
public BusyModel() {
tasks = new ArrayDeque<>();
}
- public synchronized void addTask(String task) {
- log.debug("Add task: " + task);
+ public synchronized void addTask(String taskName) {
boolean oldValue = isBusy();
+ BusyTask task = new BusyTask(taskName, tasks.size() + 1);
+ log.info(I18n.t("observe.ui.busy.start.task", task.getRank(), taskName));
tasks.add(task);
- fireBusyStateChanged(oldValue);
+ fireBusyStateChanged(oldValue, task, null);
}
public synchronized void popTask() {
boolean oldValue = isBusy();
- String task = tasks.removeLast();
- log.debug("Remove task: " + task);
- fireBusyStateChanged(oldValue);
+ BusyTask task = tasks.removeLast();
+ String taskName = task.getTaskName();
+ long startTime = task.getStartTime();
+ String delay = Strings.convertTime(TimeLog.getTime() - startTime);
+ log.info(I18n.t("observe.ui.busy.end.task", task.getRank(), delay, taskName));
+ timeLog.log(startTime, "task done", taskName);
+ fireBusyStateChanged(oldValue, task, delay);
}
public boolean isBusy() {
return !tasks.isEmpty();
}
- void fireBusyStateChanged(boolean oldValue) {
+ void fireBusyStateChanged(boolean oldValue, BusyTask task, String delay) {
boolean busy = isBusy();
- firePropertyChange(BUSY_PROPERTY_NAME, oldValue, busy);
+ if (oldValue != busy) {
+ String taskName = task.getTaskName();
+ if (busy) {
+ log.info(I18n.t("observe.ui.busy.start.block", taskName));
+ } else {
+ long startTime = task.getStartTime();
+ log.info(I18n.t("observe.ui.busy.end.block", delay, taskName));
+ timeLog.log(startTime, "unblock", taskName);
+ }
+ firePropertyChange(BUSY_PROPERTY_NAME, oldValue, busy);
+ }
}
}
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/7d0c19308e21d631e84c16c2a…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/7d0c19308e21d631e84c16c2a…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] Client - Aucune barre de progression Closes #2409
by Tony CHEMIT (@tchemit) 03 Aug '22
by Tony CHEMIT (@tchemit) 03 Aug '22
03 Aug '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
dacba01b by Tony Chemit at 2022-08-03T11:30:28+02:00
Client - Aucune barre de progression Closes #2409
- - - - -
22 changed files:
- client/core/src/main/java/fr/ird/observe/client/ClientUIContext.java
- client/core/src/main/java/fr/ird/observe/client/ClientUIContextApi.java
- client/core/src/main/java/fr/ird/observe/client/WithClientUIContextApi.java
- client/core/src/main/java/fr/ird/observe/client/main/MainUIModel.java
- client/core/src/main/java/fr/ird/observe/client/main/ObserveMainUI.jaxx
- client/core/src/main/java/fr/ird/observe/client/main/ObserveMainUIHandler.java
- client/core/src/main/java/fr/ird/observe/client/main/focus/MainUIFocusModel.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/DataSourceEditorBodyContent.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/avdth/ImportDialogHandler.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/avdth/ImportDialogModel.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/edit/actions/DeleteEdit.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/menu/DataSourceEditorMenu.jaxx
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/menu/DataSourceEditorMenuModel.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/NavigationTree.java
- toolkit/api/src/main/i18n/getters/java.getter
- toolkit/api/src/main/i18n/translations/toolkit_en_GB.properties
- toolkit/api/src/main/i18n/translations/toolkit_es_ES.properties
- toolkit/api/src/main/i18n/translations/toolkit_fr_FR.properties
- toolkit/api/src/main/java/fr/ird/observe/navigation/tree/navigation/NavigationTreeSelectionModel.java
- toolkit/api/src/main/java/fr/ird/observe/navigation/tree/navigation/NavigationTreeSupport.java
- client/core/src/main/java/fr/ird/observe/client/util/busy/BusyLayerUI.java → toolkit/api/src/main/java/fr/ird/observe/spi/ui/BusyLayerUI.java
- client/core/src/main/java/fr/ird/observe/client/util/busy/BusyModel.java → toolkit/api/src/main/java/fr/ird/observe/spi/ui/BusyModel.java
Changes:
=====================================
client/core/src/main/java/fr/ird/observe/client/ClientUIContext.java
=====================================
@@ -33,7 +33,7 @@ import fr.ird.observe.client.main.body.NoBodyContentComponent;
import fr.ird.observe.client.main.callback.ObserveUICallbackManager;
import fr.ird.observe.client.main.focus.MainUIFocusModel;
import fr.ird.observe.client.util.action.ObserveExecutorService;
-import fr.ird.observe.client.util.busy.BusyModel;
+import fr.ird.observe.spi.ui.BusyModel;
import fr.ird.observe.client.util.session.ObserveSwingSessionHelper;
import fr.ird.observe.dto.data.ps.dcp.FloatingObjectPresetsManager;
import fr.ird.observe.navigation.id.IdProjectManager;
=====================================
client/core/src/main/java/fr/ird/observe/client/ClientUIContextApi.java
=====================================
@@ -32,7 +32,7 @@ import fr.ird.observe.client.main.ObserveMainUI;
import fr.ird.observe.client.main.callback.ObserveUICallbackManager;
import fr.ird.observe.client.main.focus.MainUIFocusModel;
import fr.ird.observe.client.util.UIHelper;
-import fr.ird.observe.client.util.busy.BusyModel;
+import fr.ird.observe.spi.ui.BusyModel;
import fr.ird.observe.client.util.session.ObserveSwingSessionHelper;
import fr.ird.observe.dto.ObserveUtil;
import fr.ird.observe.dto.data.ps.dcp.FloatingObjectPresetsManager;
=====================================
client/core/src/main/java/fr/ird/observe/client/WithClientUIContextApi.java
=====================================
@@ -31,7 +31,7 @@ import fr.ird.observe.client.main.MainUIModel;
import fr.ird.observe.client.main.ObserveMainUI;
import fr.ird.observe.client.main.callback.ObserveUICallbackManager;
import fr.ird.observe.client.main.focus.MainUIFocusModel;
-import fr.ird.observe.client.util.busy.BusyModel;
+import fr.ird.observe.spi.ui.BusyModel;
import fr.ird.observe.client.util.session.ObserveSwingSessionHelper;
import fr.ird.observe.dto.data.ps.dcp.FloatingObjectPresetsManager;
import fr.ird.observe.navigation.id.IdProjectManager;
=====================================
client/core/src/main/java/fr/ird/observe/client/main/MainUIModel.java
=====================================
@@ -24,7 +24,7 @@ package fr.ird.observe.client.main;
import fr.ird.observe.client.configuration.ClientConfig;
import fr.ird.observe.client.main.focus.MainUIFocusModel;
-import fr.ird.observe.client.util.busy.BusyModel;
+import fr.ird.observe.spi.ui.BusyModel;
import io.ultreia.java4all.bean.AbstractJavaBean;
import io.ultreia.java4all.bean.spi.GenerateJavaBeanDefinition;
=====================================
client/core/src/main/java/fr/ird/observe/client/main/ObserveMainUI.jaxx
=====================================
@@ -22,7 +22,7 @@
<import>
fr.ird.observe.client.util.JMenuWithAccelerator
- fr.ird.observe.client.util.busy.BusyModel
+ fr.ird.observe.spi.ui.BusyModel
fr.ird.observe.client.configuration.ClientConfig
fr.ird.observe.client.main.MainUIModel
fr.ird.observe.client.main.body.MainUIBodyContentManager
=====================================
client/core/src/main/java/fr/ird/observe/client/main/ObserveMainUIHandler.java
=====================================
@@ -27,8 +27,8 @@ import fr.ird.observe.client.configuration.ClientConfig;
import fr.ird.observe.client.main.body.MainUIBodyContentManager;
import fr.ird.observe.client.util.ObserveKeyStrokesSupport;
import fr.ird.observe.client.util.UIHelper;
-import fr.ird.observe.client.util.busy.BusyLayerUI;
-import fr.ird.observe.client.util.busy.BusyModel;
+import fr.ird.observe.spi.ui.BusyLayerUI;
+import fr.ird.observe.spi.ui.BusyModel;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.nuiton.jaxx.runtime.spi.UIHandler;
=====================================
client/core/src/main/java/fr/ird/observe/client/main/focus/MainUIFocusModel.java
=====================================
@@ -22,7 +22,7 @@ package fr.ird.observe.client.main.focus;
* #L%
*/
-import fr.ird.observe.client.util.busy.BusyModel;
+import fr.ird.observe.spi.ui.BusyModel;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/DataSourceEditorBodyContent.java
=====================================
@@ -44,7 +44,7 @@ import fr.ird.observe.client.main.ObserveMainUI;
import fr.ird.observe.client.main.body.MainUIBodyContent;
import fr.ird.observe.client.main.focus.MainUIFocusModel;
import fr.ird.observe.client.util.UIHelper;
-import fr.ird.observe.client.util.busy.BusyModel;
+import fr.ird.observe.spi.ui.BusyModel;
import fr.ird.observe.dto.ProgressionModel;
import fr.ird.observe.dto.ProtectedIdsCommon;
import fr.ird.observe.dto.db.BabModelVersionException;
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/avdth/ImportDialogHandler.java
=====================================
@@ -25,7 +25,7 @@ package fr.ird.observe.client.datasource.editor.api.avdth;
import fr.ird.observe.client.WithClientUIContextApi;
import fr.ird.observe.client.util.ObserveBlockingLayerUI;
import fr.ird.observe.client.util.UIHelper;
-import fr.ird.observe.client.util.busy.BusyLayerUI;
+import fr.ird.observe.spi.ui.BusyLayerUI;
import fr.ird.observe.client.util.init.UIInitHelper;
import fr.ird.observe.dto.referential.common.OceanReference;
import fr.ird.observe.dto.referential.ps.common.ProgramReference;
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/avdth/ImportDialogModel.java
=====================================
@@ -27,7 +27,7 @@ import fr.ird.observe.client.configuration.ClientConfig;
import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
import fr.ird.observe.client.datasource.validation.ContentMessageTableModel;
import fr.ird.observe.client.main.focus.FocusDispatcher;
-import fr.ird.observe.client.util.busy.BusyModel;
+import fr.ird.observe.spi.ui.BusyModel;
import fr.ird.observe.dto.ProgressionModel;
import fr.ird.observe.services.service.data.ps.AvdthDataImportConfiguration;
import fr.ird.observe.services.service.data.ps.AvdthDataImportResult;
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/edit/actions/DeleteEdit.java
=====================================
@@ -29,7 +29,7 @@ import fr.ird.observe.client.datasource.editor.api.content.ContentUIHandler;
import fr.ird.observe.client.datasource.editor.api.content.data.edit.ContentEditUI;
import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree;
import fr.ird.observe.client.datasource.editor.api.navigation.tree.NavigationNode;
-import fr.ird.observe.client.util.busy.BusyModel;
+import fr.ird.observe.spi.ui.BusyModel;
import fr.ird.observe.dto.IdDto;
import fr.ird.observe.dto.data.EditableDto;
import fr.ird.observe.spi.decoration.DecoratorService;
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/menu/DataSourceEditorMenu.jaxx
=====================================
@@ -18,20 +18,7 @@
#L%
-->
<JMenu id='menuStorage'>
-
- <!-- <import>-->
- <!-- fr.ird.observe.client.main.MainUIModel-->
- <!-- fr.ird.observe.client.util.busy.BusyModel-->
- <!-- fr.ird.observe.client.util.UIHelper-->
- <!-- java.util.Locale-->
- <!-- java.awt.Dimension-->
- <!-- javax.swing.BoxLayout-->
- <!-- javax.swing.JComponent-->
- <!-- </import>-->
-
<DataSourceEditorMenuModel id="uiModel" initializer="getContextValue(DataSourceEditorMenuModel.class)"/>
- <!-- <BusyModel id='busyModel' initializer='uiModel.getBusyModel()'/>-->
- <!-- <MainUIModel id="mainUiModel" initializer="uiModel.getMainUIModel()"/>-->
<JMenuItem id='changeStorage'/>
<JMenuItem id='reloadStorage' styleClass="optional"/>
<JMenuItem id='closeStorage' styleClass="optional"/>
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/menu/DataSourceEditorMenuModel.java
=====================================
@@ -30,7 +30,7 @@ import fr.ird.observe.client.main.MainUIModel;
import fr.ird.observe.client.main.body.MainUIBodyContentManager;
import fr.ird.observe.client.main.body.NoBodyContentComponent;
import fr.ird.observe.client.util.UIHelper;
-import fr.ird.observe.client.util.busy.BusyModel;
+import fr.ird.observe.spi.ui.BusyModel;
import io.ultreia.java4all.bean.AbstractJavaBean;
import io.ultreia.java4all.bean.spi.GenerateJavaBeanDefinition;
import org.apache.logging.log4j.LogManager;
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/NavigationTree.java
=====================================
@@ -93,7 +93,7 @@ public class NavigationTree extends JXTree implements WithClientUIContextApi {
@Override
public void updateUI() {
- setSelectionModel(new NavigationTreeSelectionModel());
+ setSelectionModel(new NavigationTreeSelectionModel(getBusyModel()));
super.updateUI();
}
=====================================
toolkit/api/src/main/i18n/getters/java.getter
=====================================
@@ -87,3 +87,4 @@ observe.ui.datasource.storage.error.rest.password.required
observe.ui.datasource.storage.error.rest.user.required
observe.ui.datasource.storage.error.rest.user.unknown
observe.ui.message.warning.will.be.delete
+observe.ui.tree.loading.node
=====================================
toolkit/api/src/main/i18n/translations/toolkit_en_GB.properties
=====================================
@@ -155,3 +155,4 @@ observe.ui.datasource.storage.error.rest.password.required=Password is mandatory
observe.ui.datasource.storage.error.rest.user.required=User login is mandatory
observe.ui.datasource.storage.error.rest.user.unknown=User "%s" is not defined on server
observe.ui.message.warning.will.be.delete=%1$s\n\nBe ware, export will replace existing data.
+observe.ui.tree.loading.node=Loading selected node
=====================================
toolkit/api/src/main/i18n/translations/toolkit_es_ES.properties
=====================================
@@ -155,3 +155,4 @@ observe.ui.datasource.storage.error.rest.password.required=Le contraseña es obl
observe.ui.datasource.storage.error.rest.user.required=El usuario es obligatorio
observe.ui.datasource.storage.error.rest.user.unknown=El usuario "%s" no es conocido del servidor
observe.ui.message.warning.will.be.delete=%1$s\n\nAtención, la exportación reemplazará la marea existente.
+observe.ui.tree.loading.node=Loading selected node
=====================================
toolkit/api/src/main/i18n/translations/toolkit_fr_FR.properties
=====================================
@@ -155,3 +155,4 @@ observe.ui.datasource.storage.error.rest.password.required=Le mot de passe est o
observe.ui.datasource.storage.error.rest.user.required=L'utilisateur est obligatoire
observe.ui.datasource.storage.error.rest.user.unknown=L'utilisateur "%s" est inconnu sur le serveur
observe.ui.message.warning.will.be.delete=%1$s\n\nAttention, l'export remplacera la marée existante.
+observe.ui.tree.loading.node=Chargement du nœud sélectionné
=====================================
toolkit/api/src/main/java/fr/ird/observe/navigation/tree/navigation/NavigationTreeSelectionModel.java
=====================================
@@ -25,9 +25,12 @@ package fr.ird.observe.navigation.tree.navigation;
import fr.ird.observe.navigation.tree.navigation.event.NavigationTreeSelectionEvent;
import fr.ird.observe.navigation.tree.navigation.event.NavigationTreeSelectionListener;
import fr.ird.observe.navigation.tree.navigation.event.NavigationTreeSelectionVetoException;
+import fr.ird.observe.spi.ui.BusyModel;
+import io.ultreia.java4all.i18n.I18n;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import javax.swing.SwingUtilities;
import javax.swing.event.TreeExpansionEvent;
import javax.swing.tree.DefaultTreeSelectionModel;
import javax.swing.tree.ExpandVetoException;
@@ -47,8 +50,10 @@ public class NavigationTreeSelectionModel extends DefaultTreeSelectionModel {
private static final Logger log = LogManager.getLogger(NavigationTreeSelectionModel.class);
private boolean skipCheckPreviousContent;
+ private final BusyModel busyModel;
- public NavigationTreeSelectionModel() {
+ public NavigationTreeSelectionModel(BusyModel busyModel) {
+ this.busyModel = busyModel;
setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
}
@@ -84,29 +89,35 @@ public class NavigationTreeSelectionModel extends DefaultTreeSelectionModel {
return;
}
TreePath path = pPaths[0];
- boolean[] newness = new boolean[pPaths.length];
- Arrays.fill(newness, true);
- NavigationTreeSelectionEvent event = new NavigationTreeSelectionEvent(this, pPaths, newness, getLeadSelectionPath(), path, skipCheckPreviousContent);
boolean canChange = !Objects.equals(path, getSelectionPath());
if (canChange) {
+ boolean[] newness = new boolean[pPaths.length];
+ Arrays.fill(newness, true);
+ NavigationTreeSelectionEvent event = new NavigationTreeSelectionEvent(this, pPaths, newness, getLeadSelectionPath(), path, skipCheckPreviousContent);
try {
fireVetoValueChanged(event);
} catch (NavigationTreeSelectionVetoException e) {
canChange = false;
}
}
-
-// boolean canChange = skipCheckPreviousContent || (!Objects.equals(path, getSelectionPath()) && contentUIManager.closeSelectedContentUI());
if (!canChange) {
// cancel the change of node
log.warn(String.format("Do not change selection path: %s against: %s", path, getSelectionPath()));
return;
}
-// FIXME Move this in a listener
-// if (skipCheckPreviousContent) {
-// contentUIManager.closeSafeSelectedContentUI();
-// }
- super.setSelectionPaths(pPaths);
+ // can now safely select new path
+ if (busyModel == null) {
+ super.setSelectionPaths(pPaths);
+ } else {
+ busyModel.addTask(I18n.t("observe.ui.tree.loading.node"));
+ SwingUtilities.invokeLater(() -> {
+ try {
+ super.setSelectionPaths(pPaths);
+ } finally {
+ busyModel.popTask();
+ }
+ });
+ }
}
@Override
=====================================
toolkit/api/src/main/java/fr/ird/observe/navigation/tree/navigation/NavigationTreeSupport.java
=====================================
@@ -54,7 +54,7 @@ public class NavigationTreeSupport<R extends NavigationTreeNode, M extends Navig
@Override
public void updateUI() {
- setSelectionModel(new NavigationTreeSelectionModel());
+ setSelectionModel(new NavigationTreeSelectionModel(null));
super.updateUI();
}
=====================================
client/core/src/main/java/fr/ird/observe/client/util/busy/BusyLayerUI.java → toolkit/api/src/main/java/fr/ird/observe/spi/ui/BusyLayerUI.java
=====================================
@@ -1,8 +1,8 @@
-package fr.ird.observe.client.util.busy;
+package fr.ird.observe.spi.ui;
/*-
* #%L
- * ObServe Client :: Core
+ * ObServe Toolkit :: API
* %%
* Copyright (C) 2008 - 2022 IRD, Ultreia.io
* %%
=====================================
client/core/src/main/java/fr/ird/observe/client/util/busy/BusyModel.java → toolkit/api/src/main/java/fr/ird/observe/spi/ui/BusyModel.java
=====================================
@@ -1,8 +1,8 @@
-package fr.ird.observe.client.util.busy;
+package fr.ird.observe.spi.ui;
/*-
* #%L
- * ObServe Client :: Core
+ * ObServe Toolkit :: API
* %%
* Copyright (C) 2008 - 2022 IRD, Ultreia.io
* %%
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/dacba01b05b44e8d408c9a0aa…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/dacba01b05b44e8d408c9a0aa…
You're receiving this email because of your account on gitlab.com.
1
0