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

Commits:

22 changed files:

Changes:

  • client/src/main/java/fr/ird/observe/client/ui/ObserveMainUI.jaxx
    ... ... @@ -78,9 +78,6 @@
    78 78
         fr.ird.observe.client.ui.content.ContentUIManager
    
    79 79
         fr.ird.observe.client.ui.content.ObserveActionMap
    
    80 80
         fr.ird.observe.client.ui.tree.navigation.NavigationUI
    
    81
    -    fr.ird.observe.client.ui.tree.navigation.NavigationTree
    
    82
    -    fr.ird.observe.client.ui.tree.navigation.NavigationTreeModel
    
    83
    -    fr.ird.observe.client.ui.tree.navigation.NavigationTreeModel
    
    84 81
         fr.ird.observe.client.ui.util.UIHelper
    
    85 82
         fr.ird.observe.client.ui.util.ObserveBlockingLayerUI
    
    86 83
     
    
    ... ... @@ -255,7 +252,6 @@ protected void finalize() throws Throwable {
    255 252
     
    
    256 253
           <JXTitledPanel id='navigationView'>
    
    257 254
             <NavigationUI id="navigationUI" initializer="new NavigationUI((JAXXContext)this)"/>
    
    258
    -        <NavigationTree id="navigation" initializer="navigationUI.getTree()"/>
    
    259 255
           </JXTitledPanel>
    
    260 256
     
    
    261 257
           <!-- right : (content + messages) -->
    

  • client/src/main/java/fr/ird/observe/client/ui/ObserveMainUIInitializer.java
    ... ... @@ -153,7 +153,7 @@ public class ObserveMainUIInitializer {
    153 153
             // set fullscreen propery on main ui
    
    154 154
             ui.getGraphicsConfiguration().getDevice().setFullScreenWindow(config.isFullScreen() ? ui : null);
    
    155 155
     
    
    156
    -        new ObserveNavigationTreeShowPopupAction(ui.getNavigation(), ui.getNavigationUI(), ui.getNavigationPopup());
    
    156
    +        new ObserveNavigationTreeShowPopupAction(ui.getNavigationUI().getTree(), ui.getNavigationUI(), ui.getNavigationPopup());
    
    157 157
     
    
    158 158
             return ui;
    
    159 159
         }
    
    ... ... @@ -180,7 +180,7 @@ public class ObserveMainUIInitializer {
    180 180
                 log.debug("No open Data source.");
    
    181 181
                 return;
    
    182 182
             }
    
    183
    -        if (ui.getNavigation().isSelectionEmpty()) {
    
    183
    +        if (ui.getNavigationUI().getTree().isSelectionEmpty()) {
    
    184 184
                 log.debug("No selection, show empty panel...");
    
    185 185
     
    
    186 186
                 boolean foundEmptySelection = false;
    
    ... ... @@ -260,12 +260,12 @@ public class ObserveMainUIInitializer {
    260 260
             JComponent focusOwner;
    
    261 261
             if (ui.getFocusOwner() == ui) {
    
    262 262
                 focusOnNavigation = true;
    
    263
    -            focusOwner = ui.getNavigation();
    
    263
    +            focusOwner = ui.getNavigationUI().getTree();
    
    264 264
             } else {
    
    265 265
                 focusOwner = (JComponent) ui.getFocusOwner();
    
    266 266
     
    
    267 267
                 if (focusOwner != null) {
    
    268
    -                if (ui.getNavigation().equals(focusOwner)) {
    
    268
    +                if (ui.getNavigationUI().getTree().equals(focusOwner)) {
    
    269 269
                         focusOnNavigation = true;
    
    270 270
                     }
    
    271 271
                     if (ui.getNavigationUI().equals(focusOwner)) {
    
    ... ... @@ -277,7 +277,7 @@ public class ObserveMainUIInitializer {
    277 277
                     if (!focusOnNavigation) {
    
    278 278
                         Container focusOwnerParent = focusOwner.getParent();
    
    279 279
                         while (focusOwnerParent != null) {
    
    280
    -                        if (ui.getNavigation().equals(focusOwnerParent)) {
    
    280
    +                        if (ui.getNavigationUI().getTree().equals(focusOwnerParent)) {
    
    281 281
                                 focusOnNavigation = true;
    
    282 282
                                 break;
    
    283 283
                             }
    
    ... ... @@ -337,7 +337,7 @@ public class ObserveMainUIInitializer {
    337 337
     
    
    338 338
                 oldMode = ui.getModel().getMode();
    
    339 339
     
    
    340
    -            ids = ui.getNavigation().getSelectedIds();
    
    340
    +            ids = ui.getNavigationUI().getTree().getSelectedIds();
    
    341 341
     
    
    342 342
                 ErrorDialogUI.init(null);
    
    343 343
     
    
    ... ... @@ -368,7 +368,7 @@ public class ObserveMainUIInitializer {
    368 368
             if (oldMode == ObserveUIMode.DB) {
    
    369 369
     
    
    370 370
                 // on met à jour le modèle de navigation
    
    371
    -            NavigationTreeModel treeModel = ui.getNavigation().getTreeModel();
    
    371
    +            NavigationTreeModel treeModel = ui.getNavigationUI().getTree().getTreeModel();
    
    372 372
                 treeModel.load(config);
    
    373 373
                 treeModel.populate();
    
    374 374
     
    
    ... ... @@ -378,7 +378,7 @@ public class ObserveMainUIInitializer {
    378 378
                 // selection du noeud d'ouverture (le noeud precedemment selectionne,
    
    379 379
                 // ou le noeud le plus ouvert
    
    380 380
                 // ou le premier program si aucune donnée ouverte)
    
    381
    -            ui.getNavigation().selectInitialNode();
    
    381
    +            ui.getNavigationUI().getTree().selectInitialNode();
    
    382 382
             }
    
    383 383
     
    
    384 384
             // show ui
    
    ... ... @@ -405,7 +405,7 @@ public class ObserveMainUIInitializer {
    405 405
     
    
    406 406
             // ajout d'un ecouteur sur la navigation pour toujours mettre la scrollbar
    
    407 407
             // tout à droite a chaque selection
    
    408
    -        ui.getNavigation().addTreeSelectionListener(this::changeNavigationNode);
    
    408
    +        ui.getNavigationUI().getTree().addTreeSelectionListener(this::changeNavigationNode);
    
    409 409
     
    
    410 410
             SwingValidatorUtil.installUI(ui.getErrorTable(), new ObserveValidatorMessageTableRenderer());
    
    411 411
     
    
    ... ... @@ -433,12 +433,12 @@ public class ObserveMainUIInitializer {
    433 433
                 }
    
    434 434
             };
    
    435 435
             ui.getNavigationView().addMouseListener(mouseAdapter);
    
    436
    -        ui.getNavigation().addMouseListener(mouseAdapter);
    
    436
    +        ui.getNavigationUI().getTree().addMouseListener(mouseAdapter);
    
    437 437
             ui.getNavigationUI().addMouseListener(mouseAdapter);
    
    438 438
     
    
    439 439
             init(ui.getSplitpane());
    
    440 440
             init(ui.getSplitpane2());
    
    441
    -        init(ui.getNavigation());
    
    441
    +        init(ui.getNavigationUI().getTree());
    
    442 442
     
    
    443 443
             ui.getNavigationView().setRightDecoration(ui.getNavigationUI().getToolbar());
    
    444 444
     //        ui.getNavigationView().addComponentListener(new ComponentAdapter() {
    
    ... ... @@ -555,7 +555,7 @@ public class ObserveMainUIInitializer {
    555 555
             ui.getContextValue(SwingValidatorMessageTableModel.class).clear();
    
    556 556
     
    
    557 557
             // clean tree model
    
    558
    -        NavigationTree tree = ui.getNavigation();
    
    558
    +        NavigationTree tree = ui.getNavigationUI().getTree();
    
    559 559
     
    
    560 560
             tree.clearModel();
    
    561 561
             progressModel.incrementsCurrentStep();
    
    ... ... @@ -574,7 +574,7 @@ public class ObserveMainUIInitializer {
    574 574
          */
    
    575 575
         public void loadNavigationUI(ProgressModel progressModel) {
    
    576 576
     
    
    577
    -        NavigationTree tree = ui.getNavigation();
    
    577
    +        NavigationTree tree = ui.getNavigationUI().getTree();
    
    578 578
     
    
    579 579
             NavigationTreeModel treeModel = tree.getTreeModel();
    
    580 580
             treeModel.populate();
    

  • client/src/main/java/fr/ird/observe/client/ui/actions/content/CloseAndCreateUIAction.java
    ... ... @@ -78,7 +78,7 @@ public class CloseAndCreateUIAction extends AbstractContentUIAction {
    78 78
                     return;
    
    79 79
                 }
    
    80 80
     
    
    81
    -            NavigationTree tree = getMainUI().getNavigation();
    
    81
    +            NavigationTree tree = getMainUI().getNavigationUI().getTree();
    
    82 82
     
    
    83 83
                 boolean wasCollapsed = isOpenActivityNodeCollapsed(tree, dataContext);
    
    84 84
     
    
    ... ... @@ -120,7 +120,7 @@ public class CloseAndCreateUIAction extends AbstractContentUIAction {
    120 120
                     return;
    
    121 121
                 }
    
    122 122
     
    
    123
    -            NavigationTree tree = getMainUI().getNavigation();
    
    123
    +            NavigationTree tree = getMainUI().getNavigationUI().getTree();
    
    124 124
     
    
    125 125
                 boolean wasCollapsed = isOpenActivityNodeCollapsed(tree, dataContext);
    
    126 126
     
    

  • client/src/main/java/fr/ird/observe/client/ui/actions/content/CloseOpenUIAction.java
    ... ... @@ -102,7 +102,7 @@ public class CloseOpenUIAction extends AbstractContentUIAction {
    102 102
     
    
    103 103
         private void closeData(ObserveSwingApplicationContext applicationContext, ContentUI<?, ?> ui, String id) {
    
    104 104
     
    
    105
    -        NavigationTree tree = getMainUI().getNavigation();
    
    105
    +        NavigationTree tree = getMainUI().getNavigationUI().getTree();
    
    106 106
             NavigationTreeNodeSupport selectedNode = tree.getSelectedNode();
    
    107 107
     
    
    108 108
             NavigationTreeNodeSupport node = tree.getChild(selectedNode, id);
    

  • client/src/main/java/fr/ird/observe/client/ui/actions/content/GoDownUIAction.java
    ... ... @@ -71,7 +71,7 @@ public class GoDownUIAction extends AbstractContentUIAction {
    71 71
         public void updateAction(JAXXObject ui, AbstractButton editor) {
    
    72 72
     
    
    73 73
             ObserveMainUI mainUI = getMainUI();
    
    74
    -        NavigationTree tree = getMainUI().getNavigation();
    
    74
    +        NavigationTree tree = getMainUI().getNavigationUI().getTree();
    
    75 75
             JPopupMenu scopePopup = mainUI.getScopeDownPopup();
    
    76 76
             SelectNodeUIAction action = (SelectNodeUIAction) mainUI.getObserveActionMap().get(SelectNodeUIAction.ACTION_NAME);
    
    77 77
     
    

  • client/src/main/java/fr/ird/observe/client/ui/actions/content/GoUpUIAction.java
    ... ... @@ -73,7 +73,7 @@ public class GoUpUIAction extends AbstractContentUIAction {
    73 73
         @Override
    
    74 74
         public void updateAction(JAXXObject ui, AbstractButton editor) {
    
    75 75
     
    
    76
    -        NavigationTree treeHelper = getMainUI().getNavigation();
    
    76
    +        NavigationTree treeHelper = getMainUI().getNavigationUI().getTree();
    
    77 77
     
    
    78 78
             NavigationTreeNodeSupport<?> node;
    
    79 79
     
    

  • client/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivityLonglinesUIAction.java
    ... ... @@ -73,7 +73,7 @@ public class MoveActivityLonglinesUIAction extends MoveMultipleDataUIActionSuppo
    73 73
     
    
    74 74
             ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get();
    
    75 75
             ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager();
    
    76
    -        NavigationTree treeHelper = getMainUI().getNavigation();
    
    76
    +        NavigationTree treeHelper = getMainUI().getNavigationUI().getTree();
    
    77 77
     
    
    78 78
             NavigationTreeNodeSupport oldTripLonglineNode = oldActivitiesNode.getParent();
    
    79 79
             NavigationTreeNodeSupport programNode = oldTripLonglineNode.getParent();
    

  • client/src/main/java/fr/ird/observe/client/ui/actions/content/MoveActivitySeinesUIAction.java
    ... ... @@ -73,7 +73,7 @@ public class MoveActivitySeinesUIAction extends MoveMultipleDataUIActionSupport<
    73 73
     
    
    74 74
             ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get();
    
    75 75
             ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager();
    
    76
    -        NavigationTree treeHelper = getMainUI().getNavigation();
    
    76
    +        NavigationTree treeHelper = getMainUI().getNavigationUI().getTree();
    
    77 77
     
    
    78 78
             NavigationTreeNodeSupport oldRouteNode = oldParentNode.getParent();
    
    79 79
             NavigationTreeNodeSupport routesNode = oldRouteNode.getParent();
    

  • client/src/main/java/fr/ird/observe/client/ui/actions/content/MoveMultipleDataUIActionSupport.java
    ... ... @@ -71,7 +71,7 @@ public abstract class MoveMultipleDataUIActionSupport<U extends ContentListUI<?,
    71 71
     
    
    72 72
             @SuppressWarnings("unchecked") U ui = (U) ui1;
    
    73 73
     
    
    74
    -        NavigationTree treeHelper = getMainUI().getNavigation();
    
    74
    +        NavigationTree treeHelper = getMainUI().getNavigationUI().getTree();
    
    75 75
             NavigationTreeNodeSupport node = treeHelper.getSelectedNode();
    
    76 76
     
    
    77 77
             NavigationTreeNodeSupport oldParentNode = node.getParent().isRoot() ? node : node.getParent();
    

  • client/src/main/java/fr/ird/observe/client/ui/actions/content/MoveRoutesUIAction.java
    ... ... @@ -72,7 +72,7 @@ public class MoveRoutesUIAction extends MoveMultipleDataUIActionSupport<RoutesUI
    72 72
         void updateUI(RoutesUI ui, NavigationTreeNodeSupport oldRoutesNode, String tripSeineId, ImmutableSet<String> routeIds, List<Integer> positions) {
    
    73 73
     
    
    74 74
             ObserveOpenDataManager openDataManager = getOpenDataManager();
    
    75
    -        NavigationTree treeHelper = getMainUI().getNavigation();
    
    75
    +        NavigationTree treeHelper = getMainUI().getNavigationUI().getTree();
    
    76 76
     
    
    77 77
             NavigationTreeNodeSupport oldTripSeineNode = oldRoutesNode.getParent();
    
    78 78
             NavigationTreeNodeSupport programNode = oldTripSeineNode.getParent();
    

  • client/src/main/java/fr/ird/observe/client/ui/actions/content/MoveSingleDataUIActionSupport.java
    ... ... @@ -50,7 +50,7 @@ public abstract class MoveSingleDataUIActionSupport extends UIActionSupport {
    50 50
         @Override
    
    51 51
         public final void actionPerformed(ActionEvent e) {
    
    52 52
     
    
    53
    -        NavigationTree treeHelper = getMainUI().getNavigation();
    
    53
    +        NavigationTree treeHelper = getMainUI().getNavigationUI().getTree();
    
    54 54
             NavigationTreeNodeSupport node = treeHelper.getSelectedNode();
    
    55 55
             NavigationTreeNodeSupport oldParentNode = node.getParent().getParent().equals(node.getRoot()) ? node.getParent() : node.getParent().getParent();
    
    56 56
             Optional<String> optionalNewParentId = getNewParentId(getMainUI(), oldParentNode);
    
    ... ... @@ -62,7 +62,7 @@ public abstract class MoveSingleDataUIActionSupport extends UIActionSupport {
    62 62
     
    
    63 63
         private void apply(NavigationTreeNodeSupport oldParentNode, String dataId, String newParentId) {
    
    64 64
     
    
    65
    -        NavigationTree treeHelper = getMainUI().getNavigation();
    
    65
    +        NavigationTree treeHelper = getMainUI().getNavigationUI().getTree();
    
    66 66
     
    
    67 67
             NavigationTreeNodeSupport node = treeHelper.getSelectedNode();
    
    68 68
             NavigationTreeNodeSupport grandParentNode = oldParentNode.getParent();
    

  • client/src/main/java/fr/ird/observe/client/ui/actions/content/MoveTripUIAction.java
    ... ... @@ -94,7 +94,7 @@ public abstract class MoveTripUIAction extends MoveSingleDataUIActionSupport {
    94 94
     
    
    95 95
         static Optional<String> chooseNewProgram(ObserveMainUI mainUI, GearType gearType, String oldProgramId) {
    
    96 96
     
    
    97
    -        NavigationTree treeHelper = mainUI.getNavigation();
    
    97
    +        NavigationTree treeHelper = mainUI.getNavigationUI().getTree();
    
    98 98
     
    
    99 99
             // racine
    
    100 100
             NavigationTreeNodeSupport rootNode = treeHelper.getRootNode();
    

  • client/src/main/java/fr/ird/observe/client/ui/actions/content/MoveTripsUIAction.java
    ... ... @@ -77,7 +77,7 @@ public abstract class MoveTripsUIAction<U extends ContentListUI<?, ?, ?, ?>> ext
    77 77
     
    
    78 78
             ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get();
    
    79 79
             ObserveOpenDataManager openDataManager = applicationContext.getOpenDataManager();
    
    80
    -        NavigationTree treeHelper = getMainUI().getNavigation();
    
    80
    +        NavigationTree treeHelper = getMainUI().getNavigationUI().getTree();
    
    81 81
     
    
    82 82
             NavigationTreeNodeSupport rootNode = treeHelper.getRootNode();
    
    83 83
             NavigationTreeNodeSupport newProgramNode = treeHelper.getChild(rootNode, newParentId);
    

  • client/src/main/java/fr/ird/observe/client/ui/actions/content/ReOpenUIAction.java
    ... ... @@ -70,7 +70,7 @@ public class ReOpenUIAction extends AbstractContentUIAction {
    70 70
     
    
    71 71
                 String id = selectedData.getId();
    
    72 72
     
    
    73
    -            NavigationTree tree = getMainUI().getNavigation();
    
    73
    +            NavigationTree tree = getMainUI().getNavigationUI().getTree();
    
    74 74
                 NavigationTreeNodeSupport selectedNode = tree.getSelectedNode();
    
    75 75
                 NavigationTreeNodeSupport node = tree.getChild(selectedNode, id);
    
    76 76
     
    

  • client/src/main/java/fr/ird/observe/client/ui/actions/content/ResetEditUIAction.java
    ... ... @@ -57,7 +57,7 @@ public class ResetEditUIAction extends AbstractContentUIAction {
    57 57
     
    
    58 58
             if (ui.getModel().isCreatingMode()) {
    
    59 59
                 ui.stopEdit();
    
    60
    -            NavigationTree tree = getMainUI().getNavigation();
    
    60
    +            NavigationTree tree = getMainUI().getNavigationUI().getTree();
    
    61 61
                 NavigationTreeNodeSupport parentNode = tree.getSelectedNode().getParent();
    
    62 62
                 tree.removeNode(tree.getSelectedNode());
    
    63 63
                 tree.selectNode(parentNode);
    

  • client/src/main/java/fr/ird/observe/client/ui/actions/content/SelectNodeUIAction.java
    ... ... @@ -92,6 +92,6 @@ public class SelectNodeUIAction extends AbstractContentUIAction {
    92 92
             NavigationTreeNodeSupport node = (NavigationTreeNodeSupport) source.getClientProperty(NODE);
    
    93 93
             Objects.requireNonNull(node);
    
    94 94
     
    
    95
    -        SwingUtilities.invokeLater(() -> getMainUI().getNavigation().selectNode(node));
    
    95
    +        SwingUtilities.invokeLater(() -> getMainUI().getNavigationUI().getTree().selectNode(node));
    
    96 96
         }
    
    97 97
     }

  • client/src/main/java/fr/ird/observe/client/ui/actions/main/global/ChangeFocusGlobalUIAction.java
    ... ... @@ -76,7 +76,7 @@ public class ChangeFocusGlobalUIAction extends UIActionSupport {
    76 76
                     log.info("Focus to navigation");
    
    77 77
                 }
    
    78 78
                 getMainUI().getModel().setFocusOnNavigation(true);
    
    79
    -            focusComponent = getMainUI().getNavigation();
    
    79
    +            focusComponent = getMainUI().getNavigationUI().getTree();
    
    80 80
             }
    
    81 81
     
    
    82 82
             SwingUtilities.invokeLater(focusComponent::requestFocusInWindow);
    

  • client/src/main/java/fr/ird/observe/client/ui/actions/main/menu/navigation/GotoActionSupport.java
    ... ... @@ -89,7 +89,7 @@ public abstract class GotoActionSupport extends MenuActionSupport {
    89 89
                 return;
    
    90 90
             }
    
    91 91
     
    
    92
    -        NavigationTree navigation = getMainUI().getNavigation();
    
    92
    +        NavigationTree navigation = getMainUI().getNavigationUI().getTree();
    
    93 93
     
    
    94 94
             getNodeToSelect(navigation, dataContext).ifPresent(navigation::selectNode);
    
    95 95
     
    

  • client/src/main/java/fr/ird/observe/client/ui/actions/main/menu/storage/ReloadStorageAction.java
    ... ... @@ -82,7 +82,7 @@ public class ReloadStorageAction extends MenuActionSupport {
    82 82
     
    
    83 83
                 ui.getModel().setBusy(false);
    
    84 84
     
    
    85
    -            Object[] ids = ui.getNavigation().getSelectedIds();
    
    85
    +            Object[] ids = ui.getNavigationUI().getTree().getSelectedIds();
    
    86 86
     
    
    87 87
                 try {
    
    88 88
     
    

  • client/src/main/java/fr/ird/observe/client/ui/content/ContentUIHandler.java
    ... ... @@ -222,7 +222,7 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U
    222 222
         }
    
    223 223
     
    
    224 224
         public static NavigationTree getNavigationTree() {
    
    225
    -        return ObserveSwingApplicationContext.get().getMainUI().getNavigation();
    
    225
    +        return ObserveSwingApplicationContext.get().getMainUI().getNavigationUI().getTree();
    
    226 226
         }
    
    227 227
     
    
    228 228
         /**
    
    ... ... @@ -444,10 +444,10 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U
    444 444
             if (focusOnNavigation) {
    
    445 445
                 SwingUtilities.invokeLater(() -> {
    
    446 446
                     Component focusOwner = mainUI.getFocusOwner();
    
    447
    -                if (!mainUI.getNavigation().equals(focusOwner)) {
    
    447
    +                if (!mainUI.getNavigationUI().getTree().equals(focusOwner)) {
    
    448 448
     
    
    449 449
                         SwingUtilities.invokeLater(() -> {
    
    450
    -                        mainUI.getNavigation().requestFocusInWindow();
    
    450
    +                        mainUI.getNavigationUI().getTree().requestFocusInWindow();
    
    451 451
     
    
    452 452
                             log.debug("Focus old owner: " + focusOwner);
    
    453 453
                             log.debug("Focus new owner: " + mainUI.getFocusOwner());
    

  • client/src/main/java/fr/ird/observe/client/ui/content/ref/ReferenceHomeUIHandler.java
    ... ... @@ -68,7 +68,7 @@ public class ReferenceHomeUIHandler extends ContentUIHandler<ProgramDto, Referen
    68 68
             JPanel panel = ui.getBody();
    
    69 69
     
    
    70 70
             String nodeName = ui.getModel().getNodeName();
    
    71
    -        NavigationTree navigation = ObserveSwingApplicationContext.get().getMainUI().getNavigation();
    
    71
    +        NavigationTree navigation = ObserveSwingApplicationContext.get().getMainUI().getNavigationUI().getTree();
    
    72 72
             NavigationTreeNodeSupport<?> referentialNode = navigation.getReferentialNode(nodeName);
    
    73 73
     
    
    74 74
             for (Class<? extends ReferentialDto> type : ui.getModel().getTypes()) {
    

  • client/src/main/java/fr/ird/observe/client/ui/tree/navigation/NavigationTree.java
    ... ... @@ -153,7 +153,14 @@ public class NavigationTree extends JXTree {
    153 153
                     return;
    
    154 154
                 }
    
    155 155
                 TreePath path = e.getPath();
    
    156
    -            getTreeModel().open((NavigationTreeNodeSupport) path.getLastPathComponent());
    
    156
    +            NavigationTreeNodeSupport selectedNode = (NavigationTreeNodeSupport) path.getLastPathComponent();
    
    157
    +            try {
    
    158
    +                getTreeModel().open((NavigationTreeNodeSupport) path.getLastPathComponent());
    
    159
    +            } finally {
    
    160
    +                if (!selectedNode.isLeaf()) {
    
    161
    +                    SwingUtilities.invokeLater(() -> expandPath(path));
    
    162
    +                }
    
    163
    +            }
    
    157 164
             });
    
    158 165
     
    
    159 166
             NavigationTreeCellRenderer renderer = new NavigationTreeCellRenderer();
    
    ... ... @@ -202,7 +209,7 @@ public class NavigationTree extends JXTree {
    202 209
     
    
    203 210
         /**
    
    204 211
          * Sélectionne le noeud dans l'arbre de navigation.
    
    205
    -     * <p>
    
    212
    +     *
    
    206 213
          * <b>Note:</b> cette méthode doit être appelée après un rechargement du
    
    207 214
          * modèle de navigation.
    
    208 215
          */