[Git][ultreiaio/ird-observe][develop] impossible de lancer l'assistant migration (See #764)
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 64bc6735 by Tony CHEMIT at 2017-03-31T14:20:48+02:00 impossible de lancer l'assistant migration (See #764) - - - - - 6 changed files: - application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentRemoteConfigurationUIAction.java - application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentServerConfigurationUIAction.java - application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseRemoteConfigurationUIAction.java - application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseServerConfigurationUIAction.java - application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java - application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUIHandler.java Changes: ===================================== application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentRemoteConfigurationUIAction.java ===================================== --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentRemoteConfigurationUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentRemoteConfigurationUIAction.java @@ -61,6 +61,10 @@ public class SaveCurrentRemoteConfigurationUIAction extends AbstractUIAction { super(mainUI, ACTION_NAME, t("observe.storage.remoteConfiguration.presets.save"), t("observe.storage.remoteConfiguration.presets.save"), "save", ObserveKeyStrokes.KEY_STROKE_SAVE); } + public SaveCurrentRemoteConfigurationUIAction(ConfigUI mainUI) { + super(null, ACTION_NAME, t("observe.storage.remoteConfiguration.presets.save"), t("observe.storage.remoteConfiguration.presets.save"), "save", ObserveKeyStrokes.KEY_STROKE_SAVE); + } + @Override public void actionPerformed(ActionEvent e) { ===================================== application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentServerConfigurationUIAction.java ===================================== --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentServerConfigurationUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentServerConfigurationUIAction.java @@ -60,6 +60,10 @@ public class SaveCurrentServerConfigurationUIAction extends AbstractUIAction { super(mainUI, ACTION_NAME, t("observe.storage.serverConfiguration.presets.save"), t("observe.storage.serverConfiguration.presets.save"), "save", ObserveKeyStrokes.KEY_STROKE_SAVE); } + public SaveCurrentServerConfigurationUIAction(ConfigUI mainUI) { + super(null, ACTION_NAME, t("observe.storage.serverConfiguration.presets.save"), t("observe.storage.serverConfiguration.presets.save"), "save", ObserveKeyStrokes.KEY_STROKE_SAVE); + } + @Override public void actionPerformed(ActionEvent e) { ===================================== application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseRemoteConfigurationUIAction.java ===================================== --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseRemoteConfigurationUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseRemoteConfigurationUIAction.java @@ -48,6 +48,10 @@ public class UseRemoteConfigurationUIAction extends AbstractUIAction { public static final String ACTION_NAME = UseRemoteConfigurationUIAction.class.getName(); + public UseRemoteConfigurationUIAction(ConfigUI mainUI) { + super(null, ACTION_NAME, null, null, "db-remote", null); + } + public UseRemoteConfigurationUIAction(ObserveMainUI mainUI) { super(mainUI, ACTION_NAME, null, null, "db-remote", null); } ===================================== application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseServerConfigurationUIAction.java ===================================== --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseServerConfigurationUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseServerConfigurationUIAction.java @@ -48,6 +48,10 @@ public class UseServerConfigurationUIAction extends AbstractUIAction { public static final String ACTION_NAME = UseServerConfigurationUIAction.class.getName(); + public UseServerConfigurationUIAction(ConfigUI mainUI) { + super(null, ACTION_NAME, null, null, "db-server", null); + } + public UseServerConfigurationUIAction(ObserveMainUI mainUI) { super(mainUI, ACTION_NAME, null, null, "db-server", null); } ===================================== application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java ===================================== --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java +++ b/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; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.actions.AbstractUIAction; import fr.ird.observe.application.swing.ui.actions.global.AbstractGlobalUIAction; -import org.apache.commons.beanutils.ConstructorUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.reflections.Reflections; - +import java.awt.Component; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Modifier; +import java.util.Optional; +import java.util.Set; import javax.swing.Action; import javax.swing.ActionMap; import javax.swing.InputMap; import javax.swing.JComponent; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Modifier; -import java.util.Set; +import org.apache.commons.beanutils.ConstructorUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.reflections.Reflections; /** * Created on 10/11/16. @@ -51,16 +52,22 @@ public class ObserveActionMap extends ActionMap { /** Logger */ private static final Log log = LogFactory.getLog(ObserveActionMap.class); - private final ObserveMainUI ui; + private final Component ui; private final ImmutableMap<String, Class<? extends AbstractUIAction>> mapping; private final ImmutableMap<String, ? extends AbstractGlobalUIAction> globalActions; public ObserveActionMap(ObserveMainUI ui) { + this(ui, ui.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)); + } + + public ObserveActionMap(JComponent ui) { + this(ui, ui.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)); + } + + public ObserveActionMap(Component ui, InputMap inputMap) { this.ui = ui; Set<Class<? extends AbstractUIAction>> actionTypes = new Reflections("fr.ird.observe.application.swing.ui.actions").getSubTypesOf(AbstractUIAction.class); - InputMap inputMap = ui.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); - ImmutableMap.Builder<String, Class<? extends AbstractUIAction>> mappingBuilder = ImmutableMap.builder(); ImmutableMap.Builder<String, AbstractGlobalUIAction> globalActionsBuilder = ImmutableMap.builder(); for (Class<? extends AbstractUIAction> actionType : actionTypes) { @@ -79,13 +86,16 @@ public class ObserveActionMap extends ActionMap { if (AbstractGlobalUIAction.class.isAssignableFrom(actionType)) { // action globale - Class<? extends AbstractGlobalUIAction> globalActionType = (Class) actionType; + Class<AbstractGlobalUIAction> globalActionType = (Class) actionType; if (log.isInfoEnabled()) { log.info("Register global action: " + actionId + " - type: " + globalActionType.getName()); } - AbstractGlobalUIAction globalUIAction = newAction(actionId, globalActionType); - globalActionsBuilder.put(actionId, globalUIAction); - inputMap.put(globalUIAction.getAcceleratorKey(), actionId); + Optional<AbstractGlobalUIAction> globalUIAction = newAction(actionId, globalActionType); + if (globalUIAction.isPresent()) { + + globalActionsBuilder.put(actionId, globalUIAction.get()); + inputMap.put(globalUIAction.get().getAcceleratorKey(), actionId); + } } else { @@ -104,6 +114,7 @@ public class ObserveActionMap extends ActionMap { } + @Override public Action get(Object key) { @@ -118,7 +129,8 @@ public class ObserveActionMap extends ActionMap { return super.get(key); } - return newAction((String) key, actionType); + Optional<? extends AbstractUIAction> optional = newAction((String) key, actionType); + return optional.orElse(null); } @@ -126,15 +138,16 @@ public class ObserveActionMap extends ActionMap { return globalActions; } - private <A extends AbstractUIAction> A newAction(String key, Class<A> actionType) { + private <A extends AbstractUIAction> Optional<A> newAction(String key, Class<A> actionType) { try { if (log.isDebugEnabled()) { log.debug("Create action: " + key + ", type: " + actionType.getName()); } - return ConstructorUtils.invokeConstructor(actionType, ui); + return Optional.of(ConstructorUtils.invokeConstructor(actionType, ui)); } catch (NoSuchMethodException | IllegalAccessException | InstantiationException | InvocationTargetException e) { - throw new ObserveSwingTechnicalException("Hum, can't creation action for type: " + actionType.getName(), e); + return Optional.empty(); +// throw new ObserveSwingTechnicalException("Hum, can't creation action for type: " + actionType.getName(), e); } } ===================================== application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUIHandler.java ===================================== --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUIHandler.java +++ b/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; import fr.ird.observe.application.swing.ui.storage.StorageUIModel; import fr.ird.observe.services.dto.presets.RemoteDataSourceConfiguration; import fr.ird.observe.services.dto.presets.ServerDataSourceConfiguration; -import org.nuiton.jaxx.runtime.spi.UIHandler; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import javax.swing.AbstractAction; -import javax.swing.AbstractButton; -import javax.swing.ActionMap; -import javax.swing.Icon; -import javax.swing.JComponent; -import javax.swing.JMenuItem; import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionEvent; import java.beans.PropertyChangeListener; import java.io.File; import java.util.Objects; +import javax.swing.AbstractAction; +import javax.swing.AbstractButton; +import javax.swing.ActionMap; +import javax.swing.Icon; +import javax.swing.JComponent; +import javax.swing.JMenuItem; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.jaxx.runtime.spi.UIHandler; + import static fr.ird.observe.application.swing.ui.content.ContentUIInitializer.OBSERVE_ACTION; import static javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW; @@ -70,10 +70,15 @@ public class ConfigUIHandler extends StorageTabUIHandler<ConfigUI> implements UI public static final String ACTION_DO_CHOOSE_FILE = "doChooseFile"; public static final String ACTION_DO_USE_SSL = "doUseSsl"; + private ObserveActionMap observeActionMap; @Override public void afterInit(ConfigUI ui) { + observeActionMap = ObserveSwingApplicationContext.get().getActionMap(); + if (observeActionMap ==null) { + observeActionMap = new ObserveActionMap(ui); + } PropertyChangeListener listener = evt -> { StorageUIModel model = (StorageUIModel) evt.getSource(); String propertyName = evt.getPropertyName(); @@ -119,41 +124,38 @@ public class ConfigUIHandler extends StorageTabUIHandler<ConfigUI> implements UI ui.getInputMap(WHEN_IN_FOCUSED_WINDOW).put(ObserveKeyStrokes.KEY_STROKE_STORAGE_DO_USE_SSL, ACTION_DO_USE_SSL); ObserveKeyStrokes.addKeyStroke(ui.getRemoteUseSsl(), ObserveKeyStrokes.KEY_STROKE_STORAGE_DO_USE_SSL); - ObserveActionMap observeActionMap = ObserveSwingApplicationContext.get().getMainUI().getObserveActionMap(); - init(observeActionMap, ui.getSaveRemoteConfiguration()); - init(observeActionMap, ui.getSaveServerConfiguration()); - init(observeActionMap, ui.getServerMenu()); - init(observeActionMap, ui.getRemoteMenu()); + init(ui.getSaveRemoteConfiguration()); + init(ui.getSaveServerConfiguration()); + init(ui.getServerMenu()); + init(ui.getRemoteMenu()); - for (RemoteDataSourceConfiguration configuration : ObserveSwingApplicationContext.get().getMainUI().getConfig().getRemoteDataSourceConfigurations()) { + for (RemoteDataSourceConfiguration configuration : ObserveSwingApplicationContext.get().getConfig().getRemoteDataSourceConfigurations()) { addRemoteConfiguration(configuration); } - for (ServerDataSourceConfiguration configuration : ObserveSwingApplicationContext.get().getMainUI().getConfig().getServerDataSourceConfigurations()) { + for (ServerDataSourceConfiguration configuration : ObserveSwingApplicationContext.get().getConfig().getServerDataSourceConfigurations()) { addServerConfiguration(configuration); } } public void addRemoteConfiguration(RemoteDataSourceConfiguration configuration) { - ObserveActionMap observeActionMap = ObserveSwingApplicationContext.get().getMainUI().getObserveActionMap(); JMenuItem item = new JMenuItem(configuration.getName()); item.putClientProperty("configuration", configuration); item.putClientProperty("text", configuration.getName()); item.putClientProperty("toolTipText", configuration.getName()); item.putClientProperty(OBSERVE_ACTION, UseRemoteConfigurationUIAction.ACTION_NAME); - AbstractUIAction action = init(observeActionMap, item); + AbstractUIAction action = init(item); action.updateAction(ui, item); ui.getRemoteMenu().add(item); } public void addServerConfiguration(ServerDataSourceConfiguration configuration) { - ObserveActionMap observeActionMap = ObserveSwingApplicationContext.get().getMainUI().getObserveActionMap(); JMenuItem item = new JMenuItem(configuration.getName()); item.putClientProperty("configuration", configuration); item.putClientProperty("text", configuration.getName()); item.putClientProperty("toolTipText", configuration.getName()); item.putClientProperty(OBSERVE_ACTION, UseServerConfigurationUIAction.ACTION_NAME); - AbstractUIAction action = init(observeActionMap, item); + AbstractUIAction action = init(item); action.updateAction(ui, item); ui.getServerMenu().add(item); } @@ -205,7 +207,7 @@ public class ConfigUIHandler extends StorageTabUIHandler<ConfigUI> implements UI } - protected AbstractUIAction init(ActionMap actionMap, AbstractButton editor) { + protected AbstractUIAction init(AbstractButton editor) { String actionId = (String) editor.getClientProperty(OBSERVE_ACTION); if (actionId == null) { // le boutton n'est pas commun @@ -213,7 +215,7 @@ public class ConfigUIHandler extends StorageTabUIHandler<ConfigUI> implements UI } // on a trouve une action commune - AbstractUIAction action = (AbstractUIAction) actionMap.get(actionId); + AbstractUIAction action = (AbstractUIAction) this.observeActionMap.get(actionId); Objects.requireNonNull(action, "action [" + actionId + "] not found for ui " + ui.getClass().getName()); if (log.isDebugEnabled()) { View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/64bc673581da96f1a4029e85055b...
participants (1)
-
Tony CHEMIT