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

Commits:

3 changed files:

Changes:

  • client/core/src/main/java/fr/ird/observe/client/datasource/presets/RemotePresetsUIHandler.java
    ... ... @@ -22,7 +22,6 @@ package fr.ird.observe.client.datasource.presets;
    22 22
      * #L%
    
    23 23
      */
    
    24 24
     
    
    25
    -import fr.ird.observe.client.ClientUIContextApplicationComponent;
    
    26 25
     import fr.ird.observe.client.WithClientUIContextApi;
    
    27 26
     import fr.ird.observe.client.configuration.ClientConfig;
    
    28 27
     import fr.ird.observe.dto.presets.RemoteDataSourceConfiguration;
    
    ... ... @@ -34,9 +33,9 @@ import org.nuiton.jaxx.runtime.swing.renderer.DecoratorListCellRenderer;
    34 33
     import javax.swing.DefaultListModel;
    
    35 34
     import javax.swing.JComponent;
    
    36 35
     import javax.swing.JPanel;
    
    37
    -import javax.swing.JSplitPane;
    
    38
    -import javax.swing.KeyStroke;
    
    36
    +import javax.swing.JTabbedPane;
    
    39 37
     import javax.swing.SwingUtilities;
    
    38
    +import javax.swing.event.ChangeEvent;
    
    40 39
     import java.awt.CardLayout;
    
    41 40
     import java.awt.event.KeyEvent;
    
    42 41
     import java.util.List;
    
    ... ... @@ -64,60 +63,95 @@ public class RemotePresetsUIHandler implements UIHandler<RemotePresetsUI>, WithC
    64 63
         @Override
    
    65 64
         public void afterInit(RemotePresetsUI ui) {
    
    66 65
     
    
    67
    -        for (Object o : ui.get$objectMap().values()) {
    
    68
    -            if (o instanceof JSplitPane) {
    
    69
    -                init((JSplitPane) o);
    
    70
    -            }
    
    66
    +        initRemotePanel(ui);
    
    67
    +        initServerPanel(ui);
    
    68
    +
    
    69
    +        ui.getTabs().addChangeListener(this::onTabChanged);
    
    70
    +
    
    71
    +        onTabChanged(null);
    
    72
    +    }
    
    73
    +
    
    74
    +    void setServerModified(KeyEvent event) {
    
    75
    +        if (event.isActionKey()) {
    
    76
    +            return;
    
    71 77
             }
    
    78
    +        ui.getModel().setServerModified(true);
    
    79
    +    }
    
    72 80
     
    
    73
    -        Decorator remoteDecorator = ClientConfig.getDecoratorService().getDecoratorByType(RemoteDataSourceConfiguration.class, RemoteDataSourceConfiguration.WITH_URL);
    
    81
    +    void setRemoteModified(KeyEvent event) {
    
    82
    +        if (event.isActionKey()) {
    
    83
    +            return;
    
    84
    +        }
    
    85
    +        ui.getModel().setRemoteModified(true);
    
    86
    +    }
    
    87
    +
    
    88
    +    private void onTabChanged(ChangeEvent e) {
    
    89
    +        JTabbedPane tabbedPane = e == null ? ui.getTabs() : (JTabbedPane) e.getSource();
    
    90
    +        int selectedIndex = tabbedPane.getSelectedIndex();
    
    91
    +        JComponent toFocus = ui.getCreateAction();
    
    92
    +        switch (selectedIndex) {
    
    93
    +            case 0:
    
    94
    +                if (ui.getServerForm().isVisible()) {
    
    95
    +                    toFocus = ui.getServerName();
    
    96
    +                }
    
    97
    +                break;
    
    98
    +            case 1:
    
    99
    +                if (ui.getRemoteForm().isVisible()) {
    
    100
    +                    toFocus = ui.getRemoteName();
    
    101
    +                }
    
    102
    +                break;
    
    103
    +        }
    
    104
    +        SwingUtilities.invokeLater(toFocus::requestFocusInWindow);
    
    105
    +    }
    
    106
    +
    
    107
    +    private void initRemotePanel(RemotePresetsUI ui) {
    
    108
    +        Decorator remoteDecorator = getDecoratorService().getDecoratorByType(RemoteDataSourceConfiguration.class, RemoteDataSourceConfiguration.WITH_URL);
    
    74 109
     
    
    75 110
             ui.getRemoteConfigurations().setCellRenderer(new DecoratorListCellRenderer<>(remoteDecorator));
    
    76 111
             DefaultListModel<RemoteDataSourceConfiguration> remoteModel = new DefaultListModel<>();
    
    77
    -        ui.getModel().getRemoteDataSourceConfigurations().forEach(remoteModel::addElement);
    
    112
    +        RemotePresetsUIModel model = ui.getModel();
    
    113
    +        model.getRemoteDataSourceConfigurations().forEach(remoteModel::addElement);
    
    78 114
     
    
    79 115
             ui.getRemoteConfigurations().setModel(remoteModel);
    
    80 116
     
    
    81 117
             ui.getRemoteConfigurations().addListSelectionListener(evt -> {
    
    82 118
     
    
    83 119
                 if (ui.getRemoteConfigurations().isSelectionEmpty()) {
    
    84
    -
    
    85
    -                ui.getModel().setRemoteDataSourceConfiguration(null);
    
    86
    -                ui.getModel().setRemoteModified(false);
    
    120
    +                model.setRemoteDataSourceConfiguration(null);
    
    121
    +                model.setRemoteModified(false);
    
    87 122
                 } else {
    
    88
    -                ui.getModel().setRemoteDataSourceConfiguration(ui.getRemoteConfigurations().getSelectedValue());
    
    123
    +                model.setRemoteDataSourceConfiguration(ui.getRemoteConfigurations().getSelectedValue());
    
    89 124
                     ui.getRemoteName().requestFocusInWindow();
    
    90 125
                 }
    
    91 126
             });
    
    92 127
     
    
    93
    -        ui.getModel().addPropertyChangeListener("remoteDataSourceConfigurations", evt -> {
    
    128
    +        model.addPropertyChangeListener("remoteDataSourceConfigurations", evt -> {
    
    94 129
     
    
    95 130
                 @SuppressWarnings("unchecked") List<RemoteDataSourceConfiguration> newValue = (List<RemoteDataSourceConfiguration>) evt.getNewValue();
    
    96 131
     
    
    97
    -            DefaultListModel<RemoteDataSourceConfiguration> model = (DefaultListModel<RemoteDataSourceConfiguration>) ui.getRemoteConfigurations().getModel();
    
    98
    -            model.clear();
    
    132
    +            DefaultListModel<RemoteDataSourceConfiguration> listModel = (DefaultListModel<RemoteDataSourceConfiguration>) ui.getRemoteConfigurations().getModel();
    
    133
    +            listModel.clear();
    
    99 134
                 for (RemoteDataSourceConfiguration remoteDataSourceConfiguration : newValue) {
    
    100
    -                model.addElement(remoteDataSourceConfiguration);
    
    135
    +                listModel.addElement(remoteDataSourceConfiguration);
    
    101 136
                 }
    
    102 137
     
    
    103 138
             });
    
    104 139
     
    
    105
    -        ui.getModel().addPropertyChangeListener("remoteDataSourceConfiguration", evt -> {
    
    140
    +        model.addPropertyChangeListener("remoteDataSourceConfiguration", evt -> {
    
    106 141
     
    
    107 142
                 RemoteDataSourceConfiguration oldValue = (RemoteDataSourceConfiguration) evt.getOldValue();
    
    108
    -
    
    109
    -            if (ui.getModel().getRemoteDataSourceConfiguration() == null) {
    
    143
    +            if (model.getRemoteDataSourceConfiguration() == null) {
    
    110 144
                     ((CardLayout) ui.getRemoteContentPanel().getLayout()).show(ui.getRemoteContentPanel(), "empty");
    
    111 145
                     ui.getCreateAction().requestFocusInWindow();
    
    112 146
                 } else {
    
    113 147
                     if (oldValue == null) {
    
    114 148
                         ((CardLayout) ui.getRemoteContentPanel().getLayout()).show(ui.getRemoteContentPanel(), "form");
    
    115 149
                     }
    
    116
    -                ui.getModel().setRemoteModified(false);
    
    150
    +                model.setRemoteModified(false);
    
    117 151
                 }
    
    118 152
                 SwingUtilities.invokeLater(ui::repaint);
    
    119 153
             });
    
    120
    -        ui.getModel().addPropertyChangeListener("remoteCreateMode", evt -> {
    
    154
    +        model.addPropertyChangeListener("remoteCreateMode", evt -> {
    
    121 155
                 JPanel remoteActions = ui.getRemoteActions();
    
    122 156
                 if ((Boolean) evt.getNewValue()) {
    
    123 157
                     remoteActions.remove(ui.getResetRemoteAction());
    
    ... ... @@ -132,54 +166,60 @@ public class RemotePresetsUIHandler implements UIHandler<RemotePresetsUI>, WithC
    132 166
                 }
    
    133 167
             });
    
    134 168
             ui.getRemoteActions().remove(0);
    
    135
    -        Decorator serverDecorator = ClientUIContextApplicationComponent.value().getDecoratorService().getDecoratorByType(ServerDataSourceConfiguration.class, ServerDataSourceConfiguration.WITH_URL);
    
    169
    +
    
    170
    +        if (ui.getRemoteConfigurations().getModel().getSize() > 0) {
    
    171
    +            ui.getRemoteConfigurations().setSelectedIndex(0);
    
    172
    +        }
    
    173
    +    }
    
    174
    +
    
    175
    +    private void initServerPanel(RemotePresetsUI ui) {
    
    176
    +        RemotePresetsUIModel model = ui.getModel();
    
    177
    +        Decorator serverDecorator = getDecoratorService().getDecoratorByType(ServerDataSourceConfiguration.class, ServerDataSourceConfiguration.WITH_URL);
    
    136 178
             ui.getServerConfigurations().setCellRenderer(new DecoratorListCellRenderer<>(serverDecorator));
    
    137 179
             DefaultListModel<ServerDataSourceConfiguration> ServerModel = new DefaultListModel<>();
    
    138
    -        ui.getModel().getServerDataSourceConfigurations().forEach(ServerModel::addElement);
    
    180
    +        model.getServerDataSourceConfigurations().forEach(ServerModel::addElement);
    
    139 181
     
    
    140 182
             ui.getServerConfigurations().setModel(ServerModel);
    
    141 183
     
    
    142 184
             ui.getServerConfigurations().addListSelectionListener(evt -> {
    
    143
    -
    
    144 185
                 if (ui.getServerConfigurations().isSelectionEmpty()) {
    
    145
    -
    
    146
    -                ui.getModel().setServerDataSourceConfiguration(null);
    
    147
    -                ui.getModel().setServerModified(false);
    
    186
    +                model.setServerDataSourceConfiguration(null);
    
    187
    +                model.setServerModified(false);
    
    148 188
                 } else {
    
    149
    -                ui.getModel().setServerDataSourceConfiguration(ui.getServerConfigurations().getSelectedValue());
    
    189
    +                model.setServerDataSourceConfiguration(ui.getServerConfigurations().getSelectedValue());
    
    150 190
                     ui.getServerName().requestFocusInWindow();
    
    151 191
                 }
    
    152 192
             });
    
    153 193
     
    
    154
    -        ui.getModel().addPropertyChangeListener("serverDataSourceConfigurations", evt -> {
    
    194
    +        model.addPropertyChangeListener("serverDataSourceConfigurations", evt -> {
    
    155 195
     
    
    156 196
                 @SuppressWarnings("unchecked") List<ServerDataSourceConfiguration> newValue = (List<ServerDataSourceConfiguration>) evt.getNewValue();
    
    157 197
     
    
    158
    -            DefaultListModel<ServerDataSourceConfiguration> model = (DefaultListModel<ServerDataSourceConfiguration>) ui.getServerConfigurations().getModel();
    
    159
    -            model.clear();
    
    198
    +            DefaultListModel<ServerDataSourceConfiguration> listModel = (DefaultListModel<ServerDataSourceConfiguration>) ui.getServerConfigurations().getModel();
    
    199
    +            listModel.clear();
    
    160 200
                 for (ServerDataSourceConfiguration ServerDataSourceConfiguration : newValue) {
    
    161
    -                model.addElement(ServerDataSourceConfiguration);
    
    201
    +                listModel.addElement(ServerDataSourceConfiguration);
    
    162 202
                 }
    
    163 203
     
    
    164 204
             });
    
    165 205
     
    
    166
    -        ui.getModel().addPropertyChangeListener("serverDataSourceConfiguration", evt -> {
    
    206
    +        model.addPropertyChangeListener("serverDataSourceConfiguration", evt -> {
    
    167 207
     
    
    168 208
                 ServerDataSourceConfiguration oldValue = (ServerDataSourceConfiguration) evt.getOldValue();
    
    169 209
     
    
    170
    -            if (ui.getModel().getServerDataSourceConfiguration() == null) {
    
    210
    +            if (model.getServerDataSourceConfiguration() == null) {
    
    171 211
                     ((CardLayout) ui.getServerContentPanel().getLayout()).show(ui.getServerContentPanel(), "empty");
    
    172 212
                     ui.getCreateAction().requestFocusInWindow();
    
    173 213
                 } else {
    
    174 214
                     if (oldValue == null) {
    
    175 215
                         ((CardLayout) ui.getServerContentPanel().getLayout()).show(ui.getServerContentPanel(), "form");
    
    176 216
                     }
    
    177
    -                ui.getModel().setServerModified(false);
    
    217
    +                model.setServerModified(false);
    
    178 218
                 }
    
    179 219
                 SwingUtilities.invokeLater(ui::repaint);
    
    180 220
             });
    
    181 221
     
    
    182
    -        ui.getModel().addPropertyChangeListener("serverCreateMode", evt -> {
    
    222
    +        model.addPropertyChangeListener("serverCreateMode", evt -> {
    
    183 223
                 JPanel serverActions = ui.getServerActions();
    
    184 224
                 if ((Boolean) evt.getNewValue()) {
    
    185 225
                     serverActions.remove(ui.getResetServerAction());
    
    ... ... @@ -196,33 +236,8 @@ public class RemotePresetsUIHandler implements UIHandler<RemotePresetsUI>, WithC
    196 236
             });
    
    197 237
     
    
    198 238
             ui.getServerActions().remove(0);
    
    199
    -        ui.getCreateAction().requestFocusInWindow();
    
    200
    -
    
    201
    -        if (ui.getRemoteConfigurations().getModel().getSize() > 0) {
    
    202
    -            ui.getRemoteConfigurations().setSelectedIndex(0);
    
    203
    -        }
    
    204
    -
    
    205 239
             if (ui.getServerConfigurations().getModel().getSize() > 0) {
    
    206 240
                 ui.getServerConfigurations().setSelectedIndex(0);
    
    207 241
             }
    
    208 242
         }
    
    209
    -
    
    210
    -    protected void init(JSplitPane editor) {
    
    211
    -        editor.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
    
    212
    -                .put(KeyStroke.getKeyStroke(KeyEvent.VK_F6, 0), "none");
    
    213
    -    }
    
    214
    -
    
    215
    -    protected void setServerModified(KeyEvent event) {
    
    216
    -        if (event.isActionKey()) {
    
    217
    -            return;
    
    218
    -        }
    
    219
    -        ui.getModel().setServerModified(true);
    
    220
    -    }
    
    221
    -
    
    222
    -    protected void setRemoteModified(KeyEvent event) {
    
    223
    -        if (event.isActionKey()) {
    
    224
    -            return;
    
    225
    -        }
    
    226
    -        ui.getModel().setRemoteModified(true);
    
    227
    -    }
    
    228 243
     }

  • client/core/src/main/java/fr/ird/observe/client/datasource/presets/actions/RemoteActionSupport.java
    ... ... @@ -40,12 +40,12 @@ abstract class RemoteActionSupport extends RemotePresetsUIActionSupport {
    40 40
     
    
    41 41
         @Override
    
    42 42
         protected InputMap getInputMap(RemotePresetsUI ui, int inputMapCondition) {
    
    43
    -        return ui.getRemoteContentPanel().getInputMap(inputMapCondition);
    
    43
    +        return ui.getRemotePanel().getInputMap(inputMapCondition);
    
    44 44
         }
    
    45 45
     
    
    46 46
         @Override
    
    47 47
         protected ActionMap getActionMap(RemotePresetsUI ui) {
    
    48
    -        return ui.getRemoteContentPanel().getActionMap();
    
    48
    +        return ui.getRemotePanel().getActionMap();
    
    49 49
         }
    
    50 50
     
    
    51 51
     }

  • client/core/src/main/java/fr/ird/observe/client/datasource/presets/actions/ServerActionSupport.java
    ... ... @@ -40,12 +40,12 @@ abstract class ServerActionSupport extends RemotePresetsUIActionSupport {
    40 40
     
    
    41 41
         @Override
    
    42 42
         protected InputMap getInputMap(RemotePresetsUI ui, int inputMapCondition) {
    
    43
    -        return ui.getServerContentPanel().getInputMap(inputMapCondition);
    
    43
    +        return ui.getServerPanel().getInputMap(inputMapCondition);
    
    44 44
         }
    
    45 45
     
    
    46 46
         @Override
    
    47 47
         protected ActionMap getActionMap(RemotePresetsUI ui) {
    
    48
    -        return ui.getServerContentPanel().getActionMap();
    
    48
    +        return ui.getServerPanel().getActionMap();
    
    49 49
         }
    
    50 50
     
    
    51 51
     }