Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe

Commits:

5 changed files:

Changes:

  • client/src/main/java/fr/ird/observe/client/ui/content/data/seine/RouteUIHandler.java
    ... ... @@ -6,15 +6,15 @@
    6 6
      * %%
    
    7 7
      * This program is free software: you can redistribute it and/or modify
    
    8 8
      * it under the terms of the GNU General Public License as
    
    9
    - * published by the Free Software Foundation, either version 3 of the 
    
    9
    + * published by the Free Software Foundation, either version 3 of the
    
    10 10
      * License, or (at your option) any later version.
    
    11
    - * 
    
    11
    + *
    
    12 12
      * This program is distributed in the hope that it will be useful,
    
    13 13
      * but WITHOUT ANY WARRANTY; without even the implied warranty of
    
    14 14
      * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    
    15 15
      * GNU General Public License for more details.
    
    16
    - * 
    
    17
    - * You should have received a copy of the GNU General Public 
    
    16
    + *
    
    17
    + * You should have received a copy of the GNU General Public
    
    18 18
      * License along with this program.  If not, see
    
    19 19
      * <http://www.gnu.org/licenses/gpl-3.0.html>.
    
    20 20
      * #L%
    
    ... ... @@ -33,7 +33,6 @@ import fr.ird.observe.dto.data.seine.ActivitySeineDto;
    33 33
     import fr.ird.observe.dto.data.seine.RouteDto;
    
    34 34
     import fr.ird.observe.dto.data.seine.RouteHelper;
    
    35 35
     import fr.ird.observe.dto.data.seine.TripSeineDto;
    
    36
    -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper;
    
    37 36
     import fr.ird.observe.dto.form.Form;
    
    38 37
     import fr.ird.observe.dto.referential.seine.VesselActivitySeineHelper;
    
    39 38
     import fr.ird.observe.dto.referential.seine.VesselActivitySeineReference;
    
    ... ... @@ -46,7 +45,6 @@ import org.nuiton.validator.NuitonValidatorScope;
    46 45
     
    
    47 46
     import javax.swing.JOptionPane;
    
    48 47
     import java.util.Date;
    
    49
    -import java.util.Objects;
    
    50 48
     
    
    51 49
     import static org.nuiton.i18n.I18n.n;
    
    52 50
     import static org.nuiton.i18n.I18n.t;
    
    ... ... @@ -88,8 +86,8 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme
    88 86
             if (!dataContext.isSelectedOpen(TripSeineDto.class)) {
    
    89 87
     
    
    90 88
                 addMessage(ui, NuitonValidatorScope.INFO,
    
    91
    -                       getTypeI18nKey(TripSeineDto.class),
    
    92
    -                       t("observe.common.TripSeineDto.message.not.open"));
    
    89
    +                    getTypeI18nKey(TripSeineDto.class),
    
    90
    +                    t("observe.common.TripSeineDto.message.not.open"));
    
    93 91
     
    
    94 92
             } else {
    
    95 93
     
    
    ... ... @@ -157,14 +155,14 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme
    157 155
     
    
    158 156
             if (create) {
    
    159 157
                 addMessage(ui,
    
    160
    -                       NuitonValidatorScope.INFO,
    
    161
    -                       getTypeI18nKey(RouteDto.class),
    
    162
    -                       t("observe.common.RouteDto.message.creating"));
    
    158
    +                    NuitonValidatorScope.INFO,
    
    159
    +                    getTypeI18nKey(RouteDto.class),
    
    160
    +                    t("observe.common.RouteDto.message.creating"));
    
    163 161
             } else {
    
    164 162
                 addMessage(ui,
    
    165
    -                       NuitonValidatorScope.INFO,
    
    166
    -                       getTypeI18nKey(RouteDto.class),
    
    167
    -                       t("observe.common.RouteDto.message.updating"));
    
    163
    +                    NuitonValidatorScope.INFO,
    
    164
    +                    getTypeI18nKey(RouteDto.class),
    
    165
    +                    t("observe.common.RouteDto.message.updating"));
    
    168 166
     
    
    169 167
                 if (getModel().isHistoricalData()) {
    
    170 168
     
    
    ... ... @@ -173,11 +171,11 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme
    173 171
             }
    
    174 172
     
    
    175 173
             super.startEditUI(RouteUI.BINDING_DATE_DATE,
    
    176
    -                          RouteUI.BINDING_START_LOG_VALUE_NUMBER_VALUE,
    
    177
    -                          RouteUI.BINDING_END_LOG_VALUE_ENABLED,
    
    178
    -                          RouteUI.BINDING_COMMENT_MODEL,
    
    179
    -                          RouteUI.BINDING_CLOSE_ENABLED,
    
    180
    -                          RouteUI.BINDING_CLOSE_AND_CREATE_ENABLED);
    
    174
    +                RouteUI.BINDING_START_LOG_VALUE_NUMBER_VALUE,
    
    175
    +                RouteUI.BINDING_END_LOG_VALUE_ENABLED,
    
    176
    +                RouteUI.BINDING_COMMENT_MODEL,
    
    177
    +                RouteUI.BINDING_CLOSE_ENABLED,
    
    178
    +                RouteUI.BINDING_CLOSE_AND_CREATE_ENABLED);
    
    181 179
     
    
    182 180
             // le formulaire est en état modifié uniquement si on est en création
    
    183 181
             getModel().setModified(create);
    
    ... ... @@ -270,17 +268,11 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme
    270 268
     
    
    271 269
             RouteDto route = getBean();
    
    272 270
     
    
    273
    -        // on doit vérifier qu'il existe une activité de fin
    
    274
    -        // de veille (type activity vessel == 16)
    
    271
    +        // on doit vérifier qu'il existe une activité de fin de veille (type activity vessel == 16)
    
    275 272
     
    
    276
    -        boolean mustAddFinVeille = !route.isActivityFindDeVeilleFound();
    
    273
    +        boolean mustAddFinVeille = !route.isActivitySeineEmpty() && !route.isActivityFindDeVeilleFound();
    
    277 274
     
    
    278 275
             boolean createActivityFinDeVeille = false;
    
    279
    -        boolean closeActivityFinDeVeille = false;
    
    280
    -        boolean gotoActivityFinDeVeille = false;
    
    281
    -
    
    282
    -        NavigationTree treeHelper = getNavigationTree();
    
    283
    -        NavigationTreeNodeSupport routeNode = treeHelper.getSelectedNode();
    
    284 276
     
    
    285 277
             if (mustAddFinVeille) {
    
    286 278
     
    
    ... ... @@ -292,11 +284,12 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme
    292 284
                         t("observe.common.RouteDto.message.need.fin.veille.activity"),
    
    293 285
                         JOptionPane.WARNING_MESSAGE,
    
    294 286
                         new Object[]{
    
    295
    -                            t("observe.common.RouteDto.choice.not.create.fin.veille.activity.and.continue"),
    
    296
    -                            t("observe.common.RouteDto.choice.create.fin.veille.activity.and.continue"),
    
    287
    +                            t("observe.choice.cancel"),
    
    297 288
                                 t("observe.common.RouteDto.choice.create.fin.veille.activity"),
    
    298
    -                            t("observe.choice.cancel")},
    
    299
    -                    0);
    
    289
    +                            t("observe.common.RouteDto.choice.not.create.fin.veille.activity.and.continue"),
    
    290
    +
    
    291
    +                    },
    
    292
    +                    2);
    
    300 293
                 if (log.isDebugEnabled()) {
    
    301 294
                     log.debug("response : " + reponse);
    
    302 295
                 }
    
    ... ... @@ -304,11 +297,11 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme
    304 297
     
    
    305 298
                 switch (reponse) {
    
    306 299
                     case JOptionPane.CLOSED_OPTION:
    
    307
    -                case 3:
    
    300
    +                case 0:
    
    308 301
     
    
    309
    -                    // abandon objectOperation
    
    302
    +                    // abandon operation
    
    310 303
                         return false;
    
    311
    -                case 0:
    
    304
    +                case 2:
    
    312 305
     
    
    313 306
                         // rien a faire
    
    314 307
                         // on veut juste cloturer la route
    
    ... ... @@ -319,15 +312,7 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme
    319 312
                         // fermeture de l'activity de fin de veille
    
    320 313
                         // fermeture de la route
    
    321 314
                         createActivityFinDeVeille = true;
    
    322
    -                    closeActivityFinDeVeille = true;
    
    323
    -
    
    324
    -                    break;
    
    325
    -                case 2:
    
    326 315
     
    
    327
    -                    // creation de l'activity de fin de veille
    
    328
    -                    // selection de cette activity de fin de veille
    
    329
    -                    createActivityFinDeVeille = true;
    
    330
    -                    gotoActivityFinDeVeille = true;
    
    331 316
                         break;
    
    332 317
                 }
    
    333 318
             }
    
    ... ... @@ -338,18 +323,11 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme
    338 323
                 stopEditUI();
    
    339 324
     
    
    340 325
                 // creation de l'action de fin de veille
    
    341
    -            addActivityFinDeVeille(closeActivityFinDeVeille);
    
    342
    -
    
    343
    -            if (gotoActivityFinDeVeille) {
    
    326
    +            addActivityFinDeVeille();
    
    344 327
     
    
    345
    -                // on selection l'activity de fin de veille et on y reste
    
    346
    -                // donc on ne continue pas la fermeture de la route
    
    347
    -                return false;
    
    348
    -            }
    
    349
    -
    
    350
    -            // on retourne sur la route
    
    351
    -            // que l'on va refermer
    
    352
    -            treeHelper.selectNode(routeNode);
    
    328
    +            // on selection l'activity de fin de veille et on y reste
    
    329
    +            // donc on ne continue pas la fermeture de la route
    
    330
    +            return false;
    
    353 331
             }
    
    354 332
     
    
    355 333
             // fermeture de la route
    
    ... ... @@ -357,16 +335,18 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme
    357 335
             return true;
    
    358 336
         }
    
    359 337
     
    
    360
    -    private ActivitySeineUI addActivityFinDeVeille(boolean close) {
    
    338
    +    private ActivitySeineUI addActivityFinDeVeille() {
    
    361 339
     
    
    362 340
             NavigationTree treeHelper = getNavigationTree();
    
    363 341
     
    
    364 342
             // on créee l'activity de fin de veille
    
    365 343
             NavigationTreeNodeSupport<?> parentNode = treeHelper.getSelectedNode().findChildByClass(ActivitySeineDto.class);
    
    366 344
             log.debug("PARENT NODE = " + parentNode);
    
    367
    -        treeHelper.addUnsavedNode(Objects.requireNonNull(parentNode), ActivitySeineDto.class);
    
    368
    -        NavigationTreeNodeSupport activityNode = treeHelper.getSelectedNode();
    
    369
    -        Objects.requireNonNull(activityNode);
    
    345
    +        // select activities node before adding new node, otherwise, the new unsaved activity node may no more be selected
    
    346
    +        // at the end of addUnsavedNode method (reloading sub node will empty selection...)
    
    347
    +        treeHelper.selectNode(parentNode);
    
    348
    +        treeHelper.addUnsavedNode(parentNode, ActivitySeineDto.class);
    
    349
    +
    
    370 350
             // on recupère l'écran d'édition
    
    371 351
             ActivitySeineUI selectedUI = (ActivitySeineUI) ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI();
    
    372 352
     
    
    ... ... @@ -387,17 +367,6 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme
    387 367
             // on initialise la fin de veille a la dernière minute du jour
    
    388 368
             selectedUI.getBean().setTime(DateUtil.getEndOfDay(DateUtil.createDate(0, 0, 0)));
    
    389 369
     
    
    390
    -        if (close) {
    
    391
    -
    
    392
    -            // on sauvegarde l'activité
    
    393
    -            selectedUI.save(false);
    
    394
    -
    
    395
    -            // on ferme l'activité
    
    396
    -            selectedUI.closeData();
    
    397
    -
    
    398
    -            // on ferme l'écran
    
    399
    -            selectedUI.stopEdit();
    
    400
    -        }
    
    401 370
             return selectedUI;
    
    402 371
         }
    
    403 372
     
    

  • client/src/main/java/fr/ird/observe/client/ui/tree/navigation/NavigationTree.java
    ... ... @@ -98,7 +98,7 @@ public class NavigationTree extends JXTree {
    98 98
             setSelectionModel(new DefaultTreeSelectionModel() {
    
    99 99
                 @Override
    
    100 100
                 public void setSelectionPath(TreePath path) {
    
    101
    -                boolean canChange = adjusting || (!Objects.equals(path, getSelectionPath()) && ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI());
    
    101
    +                boolean canChange = !Objects.equals(path, getSelectionPath()) && ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI();
    
    102 102
                     if (!canChange) {
    
    103 103
                         // cancel the change of node
    
    104 104
                         return;
    
    ... ... @@ -401,8 +401,6 @@ public class NavigationTree extends JXTree {
    401 401
             reloadNode(node, refreshChilds);
    
    402 402
         }
    
    403 403
     
    
    404
    -    private boolean adjusting;
    
    405
    -
    
    406 404
         public NavigationTreeNodeSupport addUnsavedNode(NavigationTreeNodeSupport parentNode, Class<?> type) {
    
    407 405
     
    
    408 406
             // noeud en mode creation
    
    ... ... @@ -435,13 +433,8 @@ public class NavigationTree extends JXTree {
    435 433
             // Fix bug (if no child in parent node, it will not expand...)
    
    436 434
             fireTreeExpanded(new TreePath(result.getPath()));
    
    437 435
     
    
    438
    -        adjusting=true;
    
    439
    -        try {
    
    440
    -            // Select new node
    
    441
    -            selectNode(result);
    
    442
    -        } finally {
    
    443
    -            adjusting=false;
    
    444
    -        }
    
    436
    +        // Select new node
    
    437
    +        selectNode(result);
    
    445 438
     
    
    446 439
             return result;
    
    447 440
         }
    

  • client/src/main/resources/i18n/client_en_GB.properties
    ... ... @@ -844,13 +844,12 @@ observe.common.RouteDto.action.reopen.tip=Reopen route
    844 844
     observe.common.RouteDto.action.reopenSelected=Reopen route
    
    845 845
     observe.common.RouteDto.action.reopenSelected.tip=Reopen route
    
    846 846
     observe.common.RouteDto.choice.create.fin.veille.activity=Create end activity
    
    847
    -observe.common.RouteDto.choice.create.fin.veille.activity.and.continue=Create end watch activity and continue
    
    848 847
     observe.common.RouteDto.choice.not.create.fin.veille.activity.and.continue=do not create end watch activity and continue
    
    849 848
     observe.common.RouteDto.list=List of routes
    
    850 849
     observe.common.RouteDto.message.active.found=A route was found.
    
    851 850
     observe.common.RouteDto.message.active.found.for.other.trip=An open route exists in another trip.
    
    852 851
     observe.common.RouteDto.message.creating=Route is in creation
    
    853
    -observe.common.RouteDto.message.need.fin.veille.activity=No end watch activity was found in route to close.\nyou can\:\n\n\t- Cancel and go back to route\n\t- Create and go the end watch activity\n\t- Create end watch activity and close route\n\t- Close route without creating the end watch activity.
    
    852
    +observe.common.RouteDto.message.need.fin.veille.activity=No end watch activity was found in route to close.\nyou can\:\n\n\t- Close route without creating the end watch activity\n\t- Create and go the end watch activity\n\t- Cancel and go back to route
    
    854 853
     observe.common.RouteDto.message.no.active.found=No open route found, you can create a new one or reopen one.
    
    855 854
     observe.common.RouteDto.message.no.active.found.for.other.trip=No open route found on open trip
    
    856 855
     observe.common.RouteDto.message.not.open=Current route is not open, no modification is possible.
    

  • client/src/main/resources/i18n/client_es_ES.properties
    ... ... @@ -844,13 +844,12 @@ observe.common.RouteDto.action.reopen.tip=Reabrir la ruta
    844 844
     observe.common.RouteDto.action.reopenSelected=Reabrir la ruta
    
    845 845
     observe.common.RouteDto.action.reopenSelected.tip=Reabrir la ruta seleccionada
    
    846 846
     observe.common.RouteDto.choice.create.fin.veille.activity=Crear la actividad de fin de guardia
    
    847
    -observe.common.RouteDto.choice.create.fin.veille.activity.and.continue=Crear la actividad de fin de guardia y continuar
    
    848 847
     observe.common.RouteDto.choice.not.create.fin.veille.activity.and.continue=No crear la actividad de fin de guardia y continuar
    
    849 848
     observe.common.RouteDto.list=Lista de rutas
    
    850 849
     observe.common.RouteDto.message.active.found=Ruta abierta.
    
    851 850
     observe.common.RouteDto.message.active.found.for.other.trip=Existe una ruta abierta en otra marea.
    
    852 851
     observe.common.RouteDto.message.creating=Ruta en proceso de creación.
    
    853
    -observe.common.RouteDto.message.need.fin.veille.activity=Ninguna actividad de fin de guardia registrada en la ruta a cerrar.\n Puede \:\n\n\t- Cancelar el cierre y continuar con la ruta\n\t- Crear la actividad de fin de guardia e ir a ella.\n\t- Crear la actividad de fin de guardia y a continuación cerra la ruta\n\t- Continuar con el cierra de la ruta sin crear la actividad de fin de guardia.
    
    852
    +observe.common.RouteDto.message.need.fin.veille.activity=Ninguna actividad de fin de guardia registrada en la ruta a cerrar.\n Puede \:\n\n\t- Continuar con el cierra de la ruta sin crear la actividad de fin de guardia\n\t- Crear la actividad de fin de guardia e ir a ella\n\t- Cancelar el cierre y continuar con la ruta
    
    854 853
     observe.common.RouteDto.message.no.active.found=Ninguna ruta abierta, puede crear una nueva o reabrir una.
    
    855 854
     observe.common.RouteDto.message.no.active.found.for.other.trip=Ninguna ruta abierta sobre la marea abierta
    
    856 855
     observe.common.RouteDto.message.not.open=la ruta actual no está abierta, no se pueden hacer modificaciones.
    

  • client/src/main/resources/i18n/client_fr_FR.properties
    ... ... @@ -844,13 +844,12 @@ observe.common.RouteDto.action.reopen.tip=Rouvrir la route
    844 844
     observe.common.RouteDto.action.reopenSelected=Rouvrir la route
    
    845 845
     observe.common.RouteDto.action.reopenSelected.tip=Rouvrir la route sélectionnée
    
    846 846
     observe.common.RouteDto.choice.create.fin.veille.activity=Créer l'activité de fin de veille
    
    847
    -observe.common.RouteDto.choice.create.fin.veille.activity.and.continue=Créer l'activité de fin de veille et continuer
    
    848 847
     observe.common.RouteDto.choice.not.create.fin.veille.activity.and.continue=Ne pas créer l'activité de fin de veille et continuer
    
    849 848
     observe.common.RouteDto.list=Liste des routes
    
    850 849
     observe.common.RouteDto.message.active.found=Une route est ouverte.
    
    851 850
     observe.common.RouteDto.message.active.found.for.other.trip=Une route ouverte existe dans une autre marée.
    
    852 851
     observe.common.RouteDto.message.creating=La route est en cours de création.
    
    853
    -observe.common.RouteDto.message.need.fin.veille.activity=Aucune activité de fin de veille enregistrée sur la route à clôturer.\nVous pouvez \:\n\n\t- Annuler la fermeture et rester sur la route\n\t- Créer l'activité de fin de veille et vous y rendre\n\t- Créer l'activité de fin de veille, la clôturer puis clôturer la route\n\t- Continuer la clôture de la route sans créer cette activité de fin de veille.
    
    852
    +observe.common.RouteDto.message.need.fin.veille.activity=Aucune activité de fin de veille enregistrée sur la route à clôturer.\nVous pouvez \:\n\n\t- Continuer la clôture de la route sans créer cette activité de fin de veille\n\t- Créer l'activité de fin de veille et vous y rendre\n\t- Annuler la fermeture et rester sur la route
    
    854 853
     observe.common.RouteDto.message.no.active.found=Aucune route ouverte, vous pouvez soit en créer une nouvelle, soit en réouvrir une.
    
    855 854
     observe.common.RouteDto.message.no.active.found.for.other.trip=Aucune route ouverte sur la marée ouverte
    
    856 855
     observe.common.RouteDto.message.not.open=La route courante n'est pas ouverte, aucune modification possible.