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

Commits:

9 changed files:

Changes:

  • .gitlab-ci.yml
    ... ... @@ -49,7 +49,7 @@ stages:
    49 49
     
    
    50 50
     .deploy_site: &deploy_site
    
    51 51
       script:
    
    52
    -    - mvn clean verify site -DperformRelease scm-publish:publish-scm
    
    52
    +    - mvn clean install site -DperformRelease scm-publish:publish-scm
    
    53 53
     
    
    54 54
     .deploy_demo_latest: &deploy_demo_latest
    
    55 55
       stage: Test
    

  • CHANGELOG.md
    1 1
     # ObServe changelog
    
    2 2
     
    
    3 3
      * Author [Tony Chemit](mailto:dev@tchemit.fr)
    
    4
    - * Last generated at 2017-03-29 18:02.
    
    4
    + * Last generated at 2017-03-30 16:25.
    
    5 5
     
    
    6
    -## Version [6.0-RC-1](https://gitlab.com/ultreiaio/ird-observe/milestones/85)
    
    7
    -
    
    8
    -**Closed at *In progress*.**
    
    6
    +## Version [6.0-RC-2](https://gitlab.com/ultreiaio/ird-observe/milestones/87)
    
    9 7
     
    
    10 8
     ### Download
    
    11
    -* [Application (observe-6.0-RC-1.zip)](https://oss.sonatype.org/content/repositories/frirdobserve-1016/fr/ird/observe/observe/6.0-RC-1/observe-6.0-RC-1.zip)
    
    12
    -* [Serveur (observe-6.0-RC-1.war)](https://oss.sonatype.org/content/repositories/frirdobserve-1016/fr/ird/observe/observe/6.0-RC-1/observe-6.0-RC-1.war)
    
    9
    +* [Application (observe-6.0-RC-2.zip)](https://oss.sonatype.org/content/repositories/frirdobserve-1019/fr/ird/observe/observe/6.0-RC-2/observe-6.0-RC-2.zip)
    
    10
    +* [Serveur (observe-6.0-RC-2.war)](https://oss.sonatype.org/content/repositories/frirdobserve-1019/fr/ird/observe/observe/6.0-RC-2/observe-6.0-RC-2.war)
    
    11
    +
    
    12
    +### Issues
    
    13
    +  * [[Anomalie 749]](https://gitlab.com/ultreiaio/ird-observe/issues/749) **Problème de fonctionnement de la fenêtre d'erreur** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
    
    14
    +  * [[Anomalie 752]](https://gitlab.com/ultreiaio/ird-observe/issues/752) **Problème à la première ouverture de la v6, lorsqu'une base v5 est présente dans /db** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
    
    15
    +  * [[Anomalie 754]](https://gitlab.com/ultreiaio/ird-observe/issues/754) **Le raccourci F6 semble ne pas fonctionner** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
    
    16
    +  * [[Anomalie 759]](https://gitlab.com/ultreiaio/ird-observe/issues/759) **Perte des messages de validations** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
    
    17
    +  * [[Anomalie 761]](https://gitlab.com/ultreiaio/ird-observe/issues/761) **Sur les doubles listes les boutons du mileu n'ont plus d'icones** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
    
    18
    +  * [[Anomalie 762]](https://gitlab.com/ultreiaio/ird-observe/issues/762) **Possibilité d'insérer un capteur alors que son type n'a pas été renseigné** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
    
    19
    +  * [[Anomalie 763]](https://gitlab.com/ultreiaio/ird-observe/issues/763) **Dans certaisn référentiels, les doubles listes ne prennent pas toute la place disponible à cet effet** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
    
    20
    +  * [[Evolution 750]](https://gitlab.com/ultreiaio/ird-observe/issues/750) **Filtres d'affichage de l'arbre** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
    
    21
    +  * [[Evolution 751]](https://gitlab.com/ultreiaio/ird-observe/issues/751) **Filtrage de l'arbre** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
    
    22
    +  * [[Evolution 753]](https://gitlab.com/ultreiaio/ird-observe/issues/753) **[UI] Mise en page de la fenêtre d'application** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
    
    23
    +  * [[Evolution 755]](https://gitlab.com/ultreiaio/ird-observe/issues/755) **[UI] Sortie au clavier d'une zone de texte** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
    
    24
    +  * [[Evolution 756]](https://gitlab.com/ultreiaio/ird-observe/issues/756) **[UI] Code couleur** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
    
    25
    +  * [[Evolution 757]](https://gitlab.com/ultreiaio/ird-observe/issues/757) **Ne pas faire une sauvegarde de la base si aucune action de modification n'a été effectuée sur la base locale** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
    
    26
    +  * [[Evolution 760]](https://gitlab.com/ultreiaio/ird-observe/issues/760) **Suppression des autres raccourcis claiviers lorsqu'un raccourci global existe pour la même action** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
    
    27
    +
    
    28
    +## Version [6.0-RC-1](https://gitlab.com/ultreiaio/ird-observe/milestones/85)
    
    29
    +
    
    30
    +**Closed at 2017-03-30.**
    
    13 31
     
    
    14 32
     ### Issues
    
    15 33
       * [[Anomalie 529]](https://gitlab.com/ultreiaio/ird-observe/issues/529) **[LL] Problème sur l'ordre des sections/baskets dans le schéma de palangre selon le tri** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
    

  • application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentRemoteConfigurationUIAction.java
    ... ... @@ -61,6 +61,10 @@ public class SaveCurrentRemoteConfigurationUIAction extends AbstractUIAction {
    61 61
             super(mainUI, ACTION_NAME, t("observe.storage.remoteConfiguration.presets.save"), t("observe.storage.remoteConfiguration.presets.save"), "save", ObserveKeyStrokes.KEY_STROKE_SAVE);
    
    62 62
         }
    
    63 63
     
    
    64
    +    public SaveCurrentRemoteConfigurationUIAction(ConfigUI mainUI) {
    
    65
    +        super(null, ACTION_NAME, t("observe.storage.remoteConfiguration.presets.save"), t("observe.storage.remoteConfiguration.presets.save"), "save", ObserveKeyStrokes.KEY_STROKE_SAVE);
    
    66
    +    }
    
    67
    +
    
    64 68
         @Override
    
    65 69
         public void actionPerformed(ActionEvent e) {
    
    66 70
     
    

  • application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentServerConfigurationUIAction.java
    ... ... @@ -60,6 +60,10 @@ public class SaveCurrentServerConfigurationUIAction extends AbstractUIAction {
    60 60
             super(mainUI, ACTION_NAME, t("observe.storage.serverConfiguration.presets.save"), t("observe.storage.serverConfiguration.presets.save"), "save", ObserveKeyStrokes.KEY_STROKE_SAVE);
    
    61 61
         }
    
    62 62
     
    
    63
    +    public SaveCurrentServerConfigurationUIAction(ConfigUI mainUI) {
    
    64
    +        super(null, ACTION_NAME, t("observe.storage.serverConfiguration.presets.save"), t("observe.storage.serverConfiguration.presets.save"), "save", ObserveKeyStrokes.KEY_STROKE_SAVE);
    
    65
    +    }
    
    66
    +
    
    63 67
         @Override
    
    64 68
         public void actionPerformed(ActionEvent e) {
    
    65 69
     
    

  • application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseRemoteConfigurationUIAction.java
    ... ... @@ -48,6 +48,10 @@ public class UseRemoteConfigurationUIAction extends AbstractUIAction {
    48 48
     
    
    49 49
         public static final String ACTION_NAME = UseRemoteConfigurationUIAction.class.getName();
    
    50 50
     
    
    51
    +    public UseRemoteConfigurationUIAction(ConfigUI mainUI) {
    
    52
    +        super(null, ACTION_NAME, null, null, "db-remote", null);
    
    53
    +    }
    
    54
    +
    
    51 55
         public UseRemoteConfigurationUIAction(ObserveMainUI mainUI) {
    
    52 56
             super(mainUI, ACTION_NAME, null, null, "db-remote", null);
    
    53 57
         }
    

  • application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseServerConfigurationUIAction.java
    ... ... @@ -48,6 +48,10 @@ public class UseServerConfigurationUIAction extends AbstractUIAction {
    48 48
     
    
    49 49
         public static final String ACTION_NAME = UseServerConfigurationUIAction.class.getName();
    
    50 50
     
    
    51
    +    public UseServerConfigurationUIAction(ConfigUI mainUI) {
    
    52
    +        super(null, ACTION_NAME, null, null, "db-server", null);
    
    53
    +    }
    
    54
    +
    
    51 55
         public UseServerConfigurationUIAction(ObserveMainUI mainUI) {
    
    52 56
             super(mainUI, ACTION_NAME, null, null, "db-server", null);
    
    53 57
         }
    

  • application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java
    ... ... @@ -27,18 +27,19 @@ import fr.ird.observe.application.swing.ObserveSwingTechnicalException;
    27 27
     import fr.ird.observe.application.swing.ui.ObserveMainUI;
    
    28 28
     import fr.ird.observe.application.swing.ui.actions.AbstractUIAction;
    
    29 29
     import fr.ird.observe.application.swing.ui.actions.global.AbstractGlobalUIAction;
    
    30
    -import org.apache.commons.beanutils.ConstructorUtils;
    
    31
    -import org.apache.commons.logging.Log;
    
    32
    -import org.apache.commons.logging.LogFactory;
    
    33
    -import org.reflections.Reflections;
    
    34
    -
    
    30
    +import java.awt.Component;
    
    31
    +import java.lang.reflect.InvocationTargetException;
    
    32
    +import java.lang.reflect.Modifier;
    
    33
    +import java.util.Optional;
    
    34
    +import java.util.Set;
    
    35 35
     import javax.swing.Action;
    
    36 36
     import javax.swing.ActionMap;
    
    37 37
     import javax.swing.InputMap;
    
    38 38
     import javax.swing.JComponent;
    
    39
    -import java.lang.reflect.InvocationTargetException;
    
    40
    -import java.lang.reflect.Modifier;
    
    41
    -import java.util.Set;
    
    39
    +import org.apache.commons.beanutils.ConstructorUtils;
    
    40
    +import org.apache.commons.logging.Log;
    
    41
    +import org.apache.commons.logging.LogFactory;
    
    42
    +import org.reflections.Reflections;
    
    42 43
     
    
    43 44
     /**
    
    44 45
      * Created on 10/11/16.
    
    ... ... @@ -51,16 +52,22 @@ public class ObserveActionMap extends ActionMap {
    51 52
         /** Logger */
    
    52 53
         private static final Log log = LogFactory.getLog(ObserveActionMap.class);
    
    53 54
     
    
    54
    -    private final ObserveMainUI ui;
    
    55
    +    private final Component ui;
    
    55 56
         private final ImmutableMap<String, Class<? extends AbstractUIAction>> mapping;
    
    56 57
         private final ImmutableMap<String, ? extends AbstractGlobalUIAction> globalActions;
    
    57 58
     
    
    58 59
         public ObserveActionMap(ObserveMainUI ui) {
    
    60
    +        this(ui, ui.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW));
    
    61
    +    }
    
    62
    +
    
    63
    +    public ObserveActionMap(JComponent ui) {
    
    64
    +        this(ui, ui.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW));
    
    65
    +    }
    
    66
    +
    
    67
    +    public ObserveActionMap(Component ui, InputMap inputMap) {
    
    59 68
             this.ui = ui;
    
    60 69
             Set<Class<? extends AbstractUIAction>> actionTypes = new Reflections("fr.ird.observe.application.swing.ui.actions").getSubTypesOf(AbstractUIAction.class);
    
    61 70
     
    
    62
    -        InputMap inputMap = ui.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
    
    63
    -
    
    64 71
             ImmutableMap.Builder<String, Class<? extends AbstractUIAction>> mappingBuilder = ImmutableMap.builder();
    
    65 72
             ImmutableMap.Builder<String, AbstractGlobalUIAction> globalActionsBuilder = ImmutableMap.builder();
    
    66 73
             for (Class<? extends AbstractUIAction> actionType : actionTypes) {
    
    ... ... @@ -79,13 +86,16 @@ public class ObserveActionMap extends ActionMap {
    79 86
                 if (AbstractGlobalUIAction.class.isAssignableFrom(actionType)) {
    
    80 87
     
    
    81 88
                     // action globale
    
    82
    -                Class<? extends AbstractGlobalUIAction> globalActionType = (Class) actionType;
    
    89
    +                Class<AbstractGlobalUIAction> globalActionType = (Class) actionType;
    
    83 90
                     if (log.isInfoEnabled()) {
    
    84 91
                         log.info("Register global action: " + actionId + " - type: " + globalActionType.getName());
    
    85 92
                     }
    
    86
    -                AbstractGlobalUIAction globalUIAction = newAction(actionId, globalActionType);
    
    87
    -                globalActionsBuilder.put(actionId, globalUIAction);
    
    88
    -                inputMap.put(globalUIAction.getAcceleratorKey(), actionId);
    
    93
    +                Optional<AbstractGlobalUIAction> globalUIAction = newAction(actionId, globalActionType);
    
    94
    +                if (globalUIAction.isPresent()) {
    
    95
    +
    
    96
    +                    globalActionsBuilder.put(actionId, globalUIAction.get());
    
    97
    +                    inputMap.put(globalUIAction.get().getAcceleratorKey(), actionId);
    
    98
    +                }
    
    89 99
     
    
    90 100
                 } else {
    
    91 101
     
    
    ... ... @@ -104,6 +114,7 @@ public class ObserveActionMap extends ActionMap {
    104 114
     
    
    105 115
         }
    
    106 116
     
    
    117
    +
    
    107 118
         @Override
    
    108 119
         public Action get(Object key) {
    
    109 120
     
    
    ... ... @@ -118,7 +129,8 @@ public class ObserveActionMap extends ActionMap {
    118 129
                 return super.get(key);
    
    119 130
             }
    
    120 131
     
    
    121
    -        return newAction((String) key, actionType);
    
    132
    +        Optional<? extends AbstractUIAction> optional = newAction((String) key, actionType);
    
    133
    +        return optional.orElse(null);
    
    122 134
     
    
    123 135
         }
    
    124 136
     
    
    ... ... @@ -126,15 +138,16 @@ public class ObserveActionMap extends ActionMap {
    126 138
             return globalActions;
    
    127 139
         }
    
    128 140
     
    
    129
    -    private <A extends AbstractUIAction> A newAction(String key, Class<A> actionType) {
    
    141
    +    private <A extends AbstractUIAction> Optional<A> newAction(String key, Class<A> actionType) {
    
    130 142
     
    
    131 143
             try {
    
    132 144
                 if (log.isDebugEnabled()) {
    
    133 145
                     log.debug("Create action: " + key + ", type: " + actionType.getName());
    
    134 146
                 }
    
    135
    -            return ConstructorUtils.invokeConstructor(actionType, ui);
    
    147
    +            return Optional.of(ConstructorUtils.invokeConstructor(actionType, ui));
    
    136 148
             } catch (NoSuchMethodException | IllegalAccessException | InstantiationException | InvocationTargetException e) {
    
    137
    -            throw new ObserveSwingTechnicalException("Hum, can't creation action for type: " + actionType.getName(), e);
    
    149
    +            return Optional.empty();
    
    150
    +//            throw new ObserveSwingTechnicalException("Hum, can't creation action for type: " + actionType.getName(), e);
    
    138 151
             }
    
    139 152
     
    
    140 153
         }
    

  • application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUIHandler.java
    ... ... @@ -36,22 +36,22 @@ import fr.ird.observe.application.swing.ui.storage.StorageStep;
    36 36
     import fr.ird.observe.application.swing.ui.storage.StorageUIModel;
    
    37 37
     import fr.ird.observe.services.dto.presets.RemoteDataSourceConfiguration;
    
    38 38
     import fr.ird.observe.services.dto.presets.ServerDataSourceConfiguration;
    
    39
    -import org.nuiton.jaxx.runtime.spi.UIHandler;
    
    40
    -import org.apache.commons.logging.Log;
    
    41
    -import org.apache.commons.logging.LogFactory;
    
    42
    -
    
    43
    -import javax.swing.AbstractAction;
    
    44
    -import javax.swing.AbstractButton;
    
    45
    -import javax.swing.ActionMap;
    
    46
    -import javax.swing.Icon;
    
    47
    -import javax.swing.JComponent;
    
    48
    -import javax.swing.JMenuItem;
    
    49 39
     import java.awt.BorderLayout;
    
    50 40
     import java.awt.Color;
    
    51 41
     import java.awt.event.ActionEvent;
    
    52 42
     import java.beans.PropertyChangeListener;
    
    53 43
     import java.io.File;
    
    54 44
     import java.util.Objects;
    
    45
    +import javax.swing.AbstractAction;
    
    46
    +import javax.swing.AbstractButton;
    
    47
    +import javax.swing.ActionMap;
    
    48
    +import javax.swing.Icon;
    
    49
    +import javax.swing.JComponent;
    
    50
    +import javax.swing.JMenuItem;
    
    51
    +import org.apache.commons.logging.Log;
    
    52
    +import org.apache.commons.logging.LogFactory;
    
    53
    +import org.nuiton.jaxx.runtime.spi.UIHandler;
    
    54
    +
    
    55 55
     
    
    56 56
     import static fr.ird.observe.application.swing.ui.content.ContentUIInitializer.OBSERVE_ACTION;
    
    57 57
     import static javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW;
    
    ... ... @@ -70,10 +70,15 @@ public class ConfigUIHandler extends StorageTabUIHandler<ConfigUI> implements UI
    70 70
     
    
    71 71
         public static final String ACTION_DO_CHOOSE_FILE = "doChooseFile";
    
    72 72
         public static final String ACTION_DO_USE_SSL = "doUseSsl";
    
    73
    +    private ObserveActionMap observeActionMap;
    
    73 74
     
    
    74 75
         @Override
    
    75 76
         public void afterInit(ConfigUI ui) {
    
    76 77
     
    
    78
    +        observeActionMap = ObserveSwingApplicationContext.get().getActionMap();
    
    79
    +        if (observeActionMap ==null) {
    
    80
    +            observeActionMap = new ObserveActionMap(ui);
    
    81
    +        }
    
    77 82
             PropertyChangeListener listener = evt -> {
    
    78 83
                 StorageUIModel model = (StorageUIModel) evt.getSource();
    
    79 84
                 String propertyName = evt.getPropertyName();
    
    ... ... @@ -119,41 +124,38 @@ public class ConfigUIHandler extends StorageTabUIHandler<ConfigUI> implements UI
    119 124
             ui.getInputMap(WHEN_IN_FOCUSED_WINDOW).put(ObserveKeyStrokes.KEY_STROKE_STORAGE_DO_USE_SSL, ACTION_DO_USE_SSL);
    
    120 125
             ObserveKeyStrokes.addKeyStroke(ui.getRemoteUseSsl(), ObserveKeyStrokes.KEY_STROKE_STORAGE_DO_USE_SSL);
    
    121 126
     
    
    122
    -        ObserveActionMap observeActionMap = ObserveSwingApplicationContext.get().getMainUI().getObserveActionMap();
    
    123
    -        init(observeActionMap, ui.getSaveRemoteConfiguration());
    
    124
    -        init(observeActionMap, ui.getSaveServerConfiguration());
    
    125
    -        init(observeActionMap, ui.getServerMenu());
    
    126
    -        init(observeActionMap, ui.getRemoteMenu());
    
    127
    +        init(ui.getSaveRemoteConfiguration());
    
    128
    +        init(ui.getSaveServerConfiguration());
    
    129
    +        init(ui.getServerMenu());
    
    130
    +        init(ui.getRemoteMenu());
    
    127 131
     
    
    128
    -        for (RemoteDataSourceConfiguration configuration : ObserveSwingApplicationContext.get().getMainUI().getConfig().getRemoteDataSourceConfigurations()) {
    
    132
    +        for (RemoteDataSourceConfiguration configuration : ObserveSwingApplicationContext.get().getConfig().getRemoteDataSourceConfigurations()) {
    
    129 133
                 addRemoteConfiguration(configuration);
    
    130 134
             }
    
    131 135
     
    
    132
    -        for (ServerDataSourceConfiguration configuration : ObserveSwingApplicationContext.get().getMainUI().getConfig().getServerDataSourceConfigurations()) {
    
    136
    +        for (ServerDataSourceConfiguration configuration : ObserveSwingApplicationContext.get().getConfig().getServerDataSourceConfigurations()) {
    
    133 137
                 addServerConfiguration(configuration);
    
    134 138
             }
    
    135 139
         }
    
    136 140
     
    
    137 141
         public void addRemoteConfiguration(RemoteDataSourceConfiguration configuration) {
    
    138
    -        ObserveActionMap observeActionMap = ObserveSwingApplicationContext.get().getMainUI().getObserveActionMap();
    
    139 142
             JMenuItem item = new JMenuItem(configuration.getName());
    
    140 143
             item.putClientProperty("configuration", configuration);
    
    141 144
             item.putClientProperty("text", configuration.getName());
    
    142 145
             item.putClientProperty("toolTipText", configuration.getName());
    
    143 146
             item.putClientProperty(OBSERVE_ACTION, UseRemoteConfigurationUIAction.ACTION_NAME);
    
    144
    -        AbstractUIAction action = init(observeActionMap, item);
    
    147
    +        AbstractUIAction action = init(item);
    
    145 148
             action.updateAction(ui, item);
    
    146 149
             ui.getRemoteMenu().add(item);
    
    147 150
         }
    
    148 151
     
    
    149 152
         public void addServerConfiguration(ServerDataSourceConfiguration configuration) {
    
    150
    -        ObserveActionMap observeActionMap = ObserveSwingApplicationContext.get().getMainUI().getObserveActionMap();
    
    151 153
             JMenuItem item = new JMenuItem(configuration.getName());
    
    152 154
             item.putClientProperty("configuration", configuration);
    
    153 155
             item.putClientProperty("text", configuration.getName());
    
    154 156
             item.putClientProperty("toolTipText", configuration.getName());
    
    155 157
             item.putClientProperty(OBSERVE_ACTION, UseServerConfigurationUIAction.ACTION_NAME);
    
    156
    -        AbstractUIAction action = init(observeActionMap, item);
    
    158
    +        AbstractUIAction action = init(item);
    
    157 159
             action.updateAction(ui, item);
    
    158 160
             ui.getServerMenu().add(item);
    
    159 161
         }
    
    ... ... @@ -205,7 +207,7 @@ public class ConfigUIHandler extends StorageTabUIHandler<ConfigUI> implements UI
    205 207
         }
    
    206 208
     
    
    207 209
     
    
    208
    -    protected AbstractUIAction init(ActionMap actionMap, AbstractButton editor) {
    
    210
    +    protected AbstractUIAction init(AbstractButton editor) {
    
    209 211
             String actionId = (String) editor.getClientProperty(OBSERVE_ACTION);
    
    210 212
             if (actionId == null) {
    
    211 213
                 // le boutton n'est pas commun
    
    ... ... @@ -213,7 +215,7 @@ public class ConfigUIHandler extends StorageTabUIHandler<ConfigUI> implements UI
    213 215
             }
    
    214 216
     
    
    215 217
             // on a trouve une action commune
    
    216
    -        AbstractUIAction action = (AbstractUIAction) actionMap.get(actionId);
    
    218
    +        AbstractUIAction action = (AbstractUIAction) this.observeActionMap.get(actionId);
    
    217 219
             Objects.requireNonNull(action, "action [" + actionId + "] not found for ui " + ui.getClass().getName());
    
    218 220
     
    
    219 221
             if (log.isDebugEnabled()) {
    

  • pom.xml
    ... ... @@ -757,6 +757,15 @@
    757 757
     
    
    758 758
       <build>
    
    759 759
     
    
    760
    +    <!-- Enabling the use of scpexe with maven 3.0 -->
    
    761
    +    <extensions>
    
    762
    +      <extension>
    
    763
    +        <groupId>org.apache.maven.wagon</groupId>
    
    764
    +        <artifactId>wagon-ssh-external</artifactId>
    
    765
    +        <version>2.2</version>
    
    766
    +      </extension>
    
    767
    +    </extensions>
    
    768
    +
    
    760 769
         <plugins>
    
    761 770
           <plugin>
    
    762 771
             <groupId>org.codehaus.mojo</groupId>