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

Commits:

9 changed files:

Changes:

  • client-core/src/main/java/fr/ird/observe/client/util/ObserveKeyStrokesSupport.java
    ... ... @@ -80,6 +80,7 @@ public abstract class ObserveKeyStrokesSupport {
    80 80
         public static final KeyStroke KEY_STROKE_ESCAPE = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0);
    
    81 81
         public static final KeyStroke KEY_STROKE_ENTER = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0);
    
    82 82
         public static final KeyStroke KEY_STROKE_SPACE = KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0);
    
    83
    +    public static final KeyStroke KEY_STROKE_DATA_SOURCE_INFORMATION = KeyStroke.getKeyStroke("alt pressed I");
    
    83 84
     
    
    84 85
     
    
    85 86
         public static final KeyStroke KEY_STROKE_NAVIGATION_CONFIGURE = KeyStroke.getKeyStroke("ctrl pressed F1");
    

  • client-datasource-actions/src/main/i18n/getters/java.getter
    ... ... @@ -18,6 +18,8 @@ observe.action.goto.next.stage
    18 18
     observe.action.goto.next.stage.tip
    
    19 19
     observe.action.goto.previous.stage
    
    20 20
     observe.action.goto.previous.stage.tip
    
    21
    +observe.action.info.storage
    
    22
    +observe.action.info.storage.tip
    
    21 23
     observe.action.validate.config.generateReport
    
    22 24
     observe.actions.consolidate
    
    23 25
     observe.actions.consolidate.description
    
    ... ... @@ -197,6 +199,7 @@ observe.storage.step.label
    197 199
     observe.title.can.not.export.data2
    
    198 200
     observe.title.choose.db.dump.directory
    
    199 201
     observe.title.choose.reportFile
    
    202
    +observe.title.storage.info
    
    200 203
     observe.tree.action.collapseAll.tip
    
    201 204
     observe.tree.action.expandAll.tip
    
    202 205
     observe.tree.action.selectAll.tip
    

  • client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/ReferentialSynchroUI.jaxx
    ... ... @@ -61,8 +61,8 @@
    61 61
             <row>
    
    62 62
               <cell weightx="1">
    
    63 63
                 <JPanel layout="{new GridLayout(1, 0)}">
    
    64
    -              <ReferentialSelectionTreePane id="leftTreePane" constructorParams="this"/>
    
    65
    -              <ReferentialSelectionTreePane id="rightTreePane" constructorParams="this" opposite="true"/>
    
    64
    +              <ReferentialSelectionTreePane id="leftTreePane" constructorParams="UIHelper.initialContext(this, false)"/>
    
    65
    +              <ReferentialSelectionTreePane id="rightTreePane" constructorParams="UIHelper.initialContext(this, true)"/>
    
    66 66
                 </JPanel>
    
    67 67
                 <!--            <ReferentialSelectionTreePane id="leftTreePane" constructorParams="this"/>-->
    
    68 68
               </cell>
    

  • client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/actions/Start.java
    ... ... @@ -27,11 +27,13 @@ import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.Refer
    27 27
     import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.ReferentialSynchroUI;
    
    28 28
     import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.ReferentialSynchronizeMode;
    
    29 29
     import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.ReferentialSelectionTree;
    
    30
    +import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.ReferentialSelectionTreePane;
    
    30 31
     import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.ReferentialSynchronizeTreeModel;
    
    31 32
     import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.ReferentialSynchronizeTreeModelsBuilder;
    
    32 33
     import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.node.ReferentialPropertyUpdatedNode;
    
    33 34
     import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.node.SynchroNodeSupport;
    
    34 35
     import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
    
    36
    +import fr.ird.observe.client.datasource.editor.wizard.connexion.DataSourceSelectorModel;
    
    35 37
     import fr.ird.observe.dto.ProgressionModel;
    
    36 38
     import fr.ird.observe.services.service.referential.differential.DifferentialEngine;
    
    37 39
     import org.apache.commons.lang3.tuple.Pair;
    
    ... ... @@ -39,7 +41,6 @@ import org.apache.logging.log4j.LogManager;
    39 41
     import org.apache.logging.log4j.Logger;
    
    40 42
     import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardState;
    
    41 43
     
    
    42
    -import javax.swing.JScrollPane;
    
    43 44
     import javax.swing.border.TitledBorder;
    
    44 45
     import javax.swing.tree.TreePath;
    
    45 46
     import java.awt.Color;
    
    ... ... @@ -96,35 +97,36 @@ public class Start extends ReferentialSynchroUIActionSupport {
    96 97
             stepModel.getTasks().removeAllElements();
    
    97 98
     
    
    98 99
             AdminUIModel model = ui.getModel();
    
    99
    -        initTree(ui.getLeftTreePane().getTree(),
    
    100
    -                 ui.getLeftTreePane().getTreePane(),
    
    100
    +        initTree(ui.getLeftTreePane(),
    
    101 101
                      stepModel.getLeftTreeModel(),
    
    102
    -                 model.getConfigModel().getLocalSourceModel().getLabelWithUrl(),
    
    102
    +                 model.getConfigModel().getLocalSourceModel(),
    
    103 103
                      t("observe.actions.synchro.referential.message.referential.leftData.loaded"),
    
    104 104
                      evt -> updateLeftEnableActions(stepModel.getLeftTreeModel()));
    
    105 105
     
    
    106
    -        initTree(ui.getRightTreePane().getTree(),
    
    107
    -                 ui.getRightTreePane().getTreePane(),
    
    106
    +        initTree(ui.getRightTreePane(),
    
    108 107
                      stepModel.getRightTreeModel(),
    
    109
    -                 model.getConfigModel().getCentralSourceModel().getLabelWithUrl(),
    
    108
    +                 model.getConfigModel().getCentralSourceModel(),
    
    110 109
                      t("observe.actions.synchro.referential.message.referential.rightData.loaded"),
    
    111 110
                      evt -> updateRightEnableActions(stepModel.getRightTreeModel()));
    
    112 111
     
    
    113 112
             return WizardState.NEED_FIX;
    
    114 113
         }
    
    115 114
     
    
    116
    -    private void initTree(ReferentialSelectionTree tree, JScrollPane treePane, ReferentialSynchronizeTreeModel treeModel, String title, String message, PropertyChangeListener listener) {
    
    117
    -
    
    115
    +    private void initTree(ReferentialSelectionTreePane pane, ReferentialSynchronizeTreeModel treeModel, DataSourceSelectorModel dataSourceSelectorModel, String message, PropertyChangeListener listener) {
    
    116
    +        ReferentialSelectionTree tree = pane.getTree();
    
    118 117
             ReferentialSynchronizeMode newValue = ui.getStepModel().getSynchronizeMode();
    
    119 118
     
    
    119
    +        pane.setContextValue(dataSourceSelectorModel);
    
    120 120
             Color color =
    
    121 121
                     (treeModel.isLeft() && newValue.isLeftWrite() || !treeModel.isLeft() && newValue.isRightWrite()) ?
    
    122 122
                             Color.BLACK : Color.RED;
    
    123
    +        pane.setBorder(new TitledBorder(""));
    
    124
    +        String label = dataSourceSelectorModel.getLabel();
    
    125
    +        String labelWithUrl = dataSourceSelectorModel.getLabelWithUrl().substring(label.length()+1);
    
    126
    +        pane.getDataSourceLabel().setIcon(dataSourceSelectorModel.getSource().getIcon());
    
    127
    +        pane.getDataSourceLabel().setText(dataSourceSelectorModel.getSource().getLabel()+ " "+labelWithUrl);
    
    128
    +        pane.getDataSourceLabel().setForeground(color);
    
    123 129
     
    
    124
    -        TitledBorder border = new TitledBorder(title);
    
    125
    -        border.setTitleColor(color);
    
    126
    -
    
    127
    -        treePane.setBorder(border);
    
    128 130
             tree.setModel(treeModel);
    
    129 131
             treeModel.addPropertyChangeListener(ReferentialSynchronizeTreeModel.SELECTED_COUNT, listener);
    
    130 132
     
    
    ... ... @@ -132,10 +134,6 @@ public class Start extends ReferentialSynchroUIActionSupport {
    132 134
     
    
    133 135
             sendMessage(message);
    
    134 136
     
    
    135
    -//        ConfigUI configUI = (ConfigUI) getParentUI().getStepUI(AdminStep.CONFIG);
    
    136
    -//        //FIXME Check we don't need any longer
    
    137
    -////        configUI.getLocalSourceConfig().setBorder(new TitledBorder(ui.getModel().getConfigModel().getLocalSourceLabel()));
    
    138
    -////        configUI.getCentralSourceConfig().setBorder(new TitledBorder(ui.getModel().getConfigModel().getCentralSourceLabel()));
    
    139 137
             tree.addMouseListener(new MouseAdapter() {
    
    140 138
                 @Override
    
    141 139
                 public void mouseReleased(MouseEvent e) {
    

  • client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/ReferentialSelectionTreePane.jaxx
    ... ... @@ -20,27 +20,31 @@
    20 20
     <JPanel id='topPanel' layout="{new BorderLayout()}" decorator='boxed'>
    
    21 21
     
    
    22 22
       <import>
    
    23
    -    fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterCopy
    
    24
    -    fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterDelete
    
    25
    -    fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterDeactivate
    
    26
    -    fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterDeactivateWithReplacement
    
    27
    -    fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterRevert
    
    28
    -    fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterSkip
    
    29 23
         fr.ird.observe.client.util.UIHelper
    
    30 24
       </import>
    
    31 25
       <script><![CDATA[
    
    32
    -private boolean opposite;
    
    33
    -
    
    34
    -public boolean isOpposite() { return opposite; }
    
    35
    -
    
    36
    -public void setOpposite(boolean opposite) { this.opposite = opposite; }
    
    37 26
     
    
    38 27
     public void init() { handler.init(this); }
    
    39 28
     
    
    29
    +public boolean isLeft() {
    
    30
    +    return !isRight();
    
    31
    +}
    
    32
    +
    
    33
    +public boolean isRight() {
    
    34
    +    return Boolean.TRUE.equals(getOpposite());
    
    35
    +}
    
    40 36
     ]]>
    
    41 37
       </script>
    
    38
    +  <Boolean id='opposite' initializer='getContextValue(Boolean.class)'/>
    
    39
    +
    
    42 40
       <String id='labelText' javaBean='null'/>
    
    43 41
     
    
    42
    +  <JPanel id='dataSourcePanel' constraints='BorderLayout.NORTH' layout='{new BorderLayout()}'>
    
    43
    +    <JLabel id='dataSourceLabel' constraints='BorderLayout.WEST'/>
    
    44
    +    <JToolBar id='dataSourceToolbar' constraints='BorderLayout.EAST'>
    
    45
    +      <JButton id='dataSourceInformation'/>
    
    46
    +    </JToolBar>
    
    47
    +  </JPanel>
    
    44 48
       <JScrollPane id='treePane' columnHeaderView='{treeHeader}' constraints='BorderLayout.CENTER'>
    
    45 49
     
    
    46 50
         <ReferentialSelectionTree id='tree' javaBean="new ReferentialSelectionTree()"/>
    

  • client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/ReferentialSelectionTreePaneHandler.java
    ... ... @@ -26,16 +26,12 @@ import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.Refer
    26 26
     import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.ReferentialSynchroUI;
    
    27 27
     import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.ReferentialSynchroUIHandler;
    
    28 28
     import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.ReferentialSynchronizeMode;
    
    29
    -import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.CollapseAll;
    
    30
    -import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.ExpandAll;
    
    31 29
     import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterCopy;
    
    32 30
     import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterDeactivate;
    
    33 31
     import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterDeactivateWithReplacement;
    
    34 32
     import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterDelete;
    
    35 33
     import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterRevert;
    
    36 34
     import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterSkip;
    
    37
    -import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.SelectAll;
    
    38
    -import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.UnselectAll;
    
    39 35
     import org.nuiton.jaxx.runtime.spi.UIHandler;
    
    40 36
     
    
    41 37
     import java.awt.BorderLayout;
    
    ... ... @@ -46,27 +42,19 @@ import java.awt.BorderLayout;
    46 42
      */
    
    47 43
     public class ReferentialSelectionTreePaneHandler implements UIHandler<ReferentialSelectionTreePane> {
    
    48 44
     
    
    49
    -    @Override
    
    50
    -    public void afterInit(ReferentialSelectionTreePane ui) {
    
    51
    -        CollapseAll.init(ui, ui.getCollapseAll(), CollapseAll.class);
    
    52
    -        ExpandAll.init(ui, ui.getExpandAll(), ExpandAll.class);
    
    53
    -        SelectAll.init(ui, ui.getSelectAll(), SelectAll.class);
    
    54
    -        UnselectAll.init(ui, ui.getUnselectAll(), UnselectAll.class);
    
    55
    -    }
    
    56
    -
    
    57 45
         void init(ReferentialSelectionTreePane ui) {
    
    58 46
             ReferentialSynchroUI parent = ui.getContextValue(ReferentialSynchroUI.class, ReferentialSynchroUIHandler.SYNCHRO_PARENT);
    
    59 47
             ReferentialSynchroModel stepModel = parent.getStepModel();
    
    60 48
             stepModel.addPropertyChangeListener(ReferentialSynchroModel.SYNCHRONIZE_MODE_PROPERTY_NAME, evt -> onUpdateMode(ui, (ReferentialSynchronizeMode) evt.getNewValue()));
    
    61
    -        boolean isRight = ui.isOpposite(); //means is right
    
    62
    -        ui.copy.setAction(new RegisterCopy(ui, !isRight));
    
    63
    -        ui.revert.setAction(new RegisterRevert(ui, !isRight));
    
    64
    -        ui.deactivate.setAction(new RegisterDeactivate(ui, !isRight));
    
    65
    -        ui.deactivateWithReplace.setAction(new RegisterDeactivateWithReplacement(ui, !isRight));
    
    66
    -        ui.delete.setAction(new RegisterDelete(ui, !isRight));
    
    67
    -        ui.skip.setAction(new RegisterSkip(ui, !isRight));
    
    49
    +        boolean isLeft = ui.isLeft();
    
    50
    +        RegisterCopy.init(ui, ui.copy, new RegisterCopy(ui, isLeft));
    
    51
    +        RegisterRevert.init(ui, ui.revert, new RegisterRevert(ui, isLeft));
    
    52
    +        RegisterDeactivate.init(ui, ui.deactivate, new RegisterDeactivate(ui, isLeft));
    
    53
    +        RegisterDeactivateWithReplacement.init(ui, ui.deactivateWithReplace, new RegisterDeactivateWithReplacement(ui, isLeft));
    
    54
    +        RegisterDelete.init(ui, ui.delete, new RegisterDelete(ui, isLeft));
    
    55
    +        RegisterSkip.init(ui, ui.skip, new RegisterSkip(ui, isLeft));
    
    68 56
     
    
    69
    -        if (isRight) {
    
    57
    +        if (!isLeft) {
    
    70 58
                 ui.remove(ui.getMiddleActions());
    
    71 59
                 ui.add(ui.getMiddleActions(), BorderLayout.WEST);
    
    72 60
             }
    
    ... ... @@ -76,7 +64,7 @@ public class ReferentialSelectionTreePaneHandler implements UIHandler<Referentia
    76 64
             if (synchronizeMode == null) {
    
    77 65
                 return;
    
    78 66
             }
    
    79
    -        boolean isRight = ui.isOpposite(); //means is right
    
    67
    +        boolean isRight = ui.isRight();
    
    80 68
             boolean canCopy = isRight ? synchronizeMode.isLeftWrite() : synchronizeMode.isRightWrite();
    
    81 69
             boolean canRevert = isRight ? synchronizeMode.isRightWrite() : synchronizeMode.isLeftWrite();
    
    82 70
             ui.copy.setVisible(canCopy);
    

  • client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/actions/DataSourceInformation.java
    1
    +package fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions;
    
    2
    +
    
    3
    +/*-
    
    4
    + * #%L
    
    5
    + * ObServe :: Client DataSource actions
    
    6
    + * %%
    
    7
    + * Copyright (C) 2008 - 2020 IRD, Code Lutin, Ultreia.io
    
    8
    + * %%
    
    9
    + * This program is free software: you can redistribute it and/or modify
    
    10
    + * it under the terms of the GNU General Public License as
    
    11
    + * published by the Free Software Foundation, either version 3 of the
    
    12
    + * License, or (at your option) any later version.
    
    13
    + *
    
    14
    + * This program is distributed in the hope that it will be useful,
    
    15
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    
    16
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    
    17
    + * GNU General Public License for more details.
    
    18
    + *
    
    19
    + * You should have received a copy of the GNU General Public
    
    20
    + * License along with this program.  If not, see
    
    21
    + * <http://www.gnu.org/licenses/gpl-3.0.html>.
    
    22
    + * #L%
    
    23
    + */
    
    24
    +
    
    25
    +import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.ReferentialSelectionTreePane;
    
    26
    +import fr.ird.observe.client.datasource.api.ObserveSwingDataSourceTemplate;
    
    27
    +import fr.ird.observe.client.datasource.editor.wizard.connexion.DataSourceSelectorModel;
    
    28
    +import fr.ird.observe.client.util.ObserveKeyStrokesSupport;
    
    29
    +
    
    30
    +import javax.swing.JLabel;
    
    31
    +import javax.swing.JOptionPane;
    
    32
    +import java.awt.event.ActionEvent;
    
    33
    +
    
    34
    +import static io.ultreia.java4all.i18n.I18n.t;
    
    35
    +
    
    36
    +/**
    
    37
    + * @author Tony Chemit - dev@tchemit.fr
    
    38
    + * @since 8.0
    
    39
    + */
    
    40
    +public class DataSourceInformation extends ReferentialSelectionTreePaneActionSupport {
    
    41
    +
    
    42
    +    public DataSourceInformation() {
    
    43
    +        super("", t("observe.action.info.storage.tip"), "information", ObserveKeyStrokesSupport.KEY_STROKE_DATA_SOURCE_INFORMATION);
    
    44
    +    }
    
    45
    +
    
    46
    +    @Override
    
    47
    +    protected void doActionPerformed(ActionEvent e, ReferentialSelectionTreePane ui) {
    
    48
    +        DataSourceSelectorModel dataSourceSelectorModel = ui.getContextValue(DataSourceSelectorModel.class);
    
    49
    +
    
    50
    +        String text = ObserveSwingDataSourceTemplate.generate(dataSourceSelectorModel.getSource());
    
    51
    +        JOptionPane.showMessageDialog(
    
    52
    +                ui,
    
    53
    +                new JLabel(text),
    
    54
    +                t("observe.title.storage.info"),
    
    55
    +                JOptionPane.INFORMATION_MESSAGE);
    
    56
    +
    
    57
    +    }
    
    58
    +}

  • client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/actions/ReferentialSelectionTreePaneActionSupport.java
    ... ... @@ -39,7 +39,7 @@ public abstract class ReferentialSelectionTreePaneActionSupport extends JCompone
    39 39
     
    
    40 40
         @Override
    
    41 41
         public void init() {
    
    42
    -        if (ui.isOpposite()) {
    
    42
    +        if (ui.isRight()) {
    
    43 43
                 KeyStroke acceleratorKey = getAcceleratorKey();
    
    44 44
                 setKeyStroke(KeyStroke.getKeyStroke(acceleratorKey.getKeyCode(), acceleratorKey.getModifiers() | KeyEvent.SHIFT_MASK));
    
    45 45
             }
    

  • client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/actions/RegisterTaskActionSupport.java
    ... ... @@ -94,7 +94,7 @@ public abstract class RegisterTaskActionSupport extends ReferentialSelectionTree
    94 94
         private final ReferentialSynchroUI parentUI;
    
    95 95
     
    
    96 96
         RegisterTaskActionSupport(ReferentialSelectionTreePane ui, ReferentialSynchronizeResources resource, boolean left) {
    
    97
    -        super(null, null, null, Objects.requireNonNull(resource).getKeyStroke(left));
    
    97
    +        super("", null, null, Objects.requireNonNull(resource).getKeyStroke(left));
    
    98 98
             this.resource = resource;
    
    99 99
             String tip = resource.getActionTip(left);
    
    100 100
             if (tip != null) {
    
    ... ... @@ -108,7 +108,7 @@ public abstract class RegisterTaskActionSupport extends ReferentialSelectionTree
    108 108
             this.left = left;
    
    109 109
             this.taskType = resource.getTaskType();
    
    110 110
             this.needReplace = resource.withReplace();
    
    111
    -        parentUI = ui.getContextValue(ReferentialSynchroUI.class, "parent");
    
    111
    +        parentUI = ui.getContextValue(ReferentialSynchroUI.class, "synchroParent");
    
    112 112
     
    
    113 113
             Predicate<ReferentialSynchroNodeSupport> predicate = resource.getPredicate();
    
    114 114