This is an automated email from the git hooks/post-receive script. New commit to branch feature/18 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit dd6778db3cb8019c6404fd05a94f051aaef60f96 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 21 12:35:26 2016 +0100 Bien passer le focus au formulaire quand possible (Closes #18) --- .../swing/ui/ObserveMainUIInitializer.java | 34 +++++++--------- .../application/swing/ui/ObserveMainUIModel.java | 9 +++-- .../swing/ui/content/ContentUIManager.java | 46 +++++++++++++++------- 3 files changed, 51 insertions(+), 38 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIInitializer.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIInitializer.java index daac71c..6875fe1 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIInitializer.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIInitializer.java @@ -415,30 +415,24 @@ public class ObserveMainUIInitializer { updateFocusOnNavigation(newvalue); }); - ui.getNavigationView().addMouseListener(new MouseAdapter() { - @Override - public void mouseEntered(MouseEvent e) { - ui.getModel().setFocusOnNavigation(true); - } - }); - ui.getNavigation().addMouseListener(new MouseAdapter() { - @Override - public void mouseEntered(MouseEvent e) { - ui.getModel().setFocusOnNavigation(true); - } - }); - ui.getNavigationTreeHeader().addMouseListener(new MouseAdapter() { + MouseAdapter mouseAdapter = new MouseAdapter() { @Override public void mouseEntered(MouseEvent e) { + if (log.isDebugEnabled()) { + log.debug("Enter in navigation zone: " + e); + } ui.getModel().setFocusOnNavigation(true); } - }); - ui.getSplitpane2().addMouseListener(new MouseAdapter() { - @Override - public void mouseEntered(MouseEvent e) { - ui.getModel().setFocusOnNavigation(false); - } - }); + }; + ui.getNavigationView().addMouseListener(mouseAdapter); + ui.getNavigation().addMouseListener(mouseAdapter); + ui.getNavigationTreeHeader().addMouseListener(mouseAdapter); +// ui.getSplitpane2().addMouseListener(new MouseAdapter() { +// @Override +// public void mouseEntered(MouseEvent e) { +// ui.getModel().setFocusOnNavigation(false); +// } +// }); } protected void init(ObserveActionMap actionMap, AbstractButton editor) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIModel.java index b0a7a4f..d7504f5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIModel.java @@ -50,6 +50,7 @@ public class ObserveMainUIModel extends AbstractBean { private static final Icon DB_REMOTE_ICON = SwingUtil.getUIManagerActionIcon("db-remote"); private static final Icon DB_SERVER_ICON = SwingUtil.getUIManagerActionIcon("db-server"); private static final Icon DB_NONE_ICON = SwingUtil.getUIManagerActionIcon("db-none"); + public static final String PROPERTY_FOCUS_ON_NAVIGATION = "focusOnNavigation"; private ObserveUIMode mode = ObserveUIMode.NO_DB; private boolean h2WebServer; @@ -94,7 +95,7 @@ public class ObserveMainUIModel extends AbstractBean { }); addPropertyChangeListener(evt -> { - if (adjusting) { + if (adjusting || PROPERTY_FOCUS_ON_NAVIGATION.equals(evt.getPropertyName())) { return; } if (log.isInfoEnabled()) { @@ -106,8 +107,8 @@ public class ObserveMainUIModel extends AbstractBean { public void reload(ObserveSwingApplicationConfig config) { - if (log.isInfoEnabled()) { - log.info("Reload ui model"); + if (log.isDebugEnabled()) { + log.debug("Reload ui model"); } adjusting = true; @@ -185,7 +186,7 @@ public class ObserveMainUIModel extends AbstractBean { public void setFocusOnNavigation(boolean focusOnNavigation) { this.focusOnNavigation = focusOnNavigation; - firePropertyChange("focusOnNavigation", null, focusOnNavigation); + firePropertyChange(PROPERTY_FOCUS_ON_NAVIGATION, null, focusOnNavigation); } public boolean isStorageStatusEnabled() { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java index 25fd164..53065e4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java @@ -28,6 +28,7 @@ import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.services.dto.AbstractObserveDto; import jaxx.runtime.JAXXContext; +import jaxx.runtime.JAXXObject; import jaxx.runtime.context.JAXXInitialContext; import jaxx.runtime.swing.CardLayout2; import org.apache.commons.logging.Log; @@ -99,26 +100,27 @@ public class ContentUIManager { } // initialisation du content - result.addMouseListener(new MouseAdapter() { + MouseAdapter mouseAdapter = new MouseAdapter() { @Override public void mouseEntered(MouseEvent e) { - if (log.isInfoEnabled()) { - log.info("grab enter focus: " + e); + if (log.isDebugEnabled()) { + log.debug("Enter in formula zone: " + e); } getMainUI().getModel().setFocusOnNavigation(false); } - @Override - public void mouseMoved(MouseEvent e) { - if (!((JComponent) e.getSource()).isFocusOwner()) { - if (log.isInfoEnabled()) { - log.info("grab moved focus: " + e); - } - getMainUI().getModel().setFocusOnNavigation(false); - } - } - }); - +// @Override +// public void mouseMoved(MouseEvent e) { +// if (!((JComponent) e.getSource()).isFocusOwner()) { +// if (log.isInfoEnabled()) { +// log.info("grab moved focus: " + e); +// } +// getMainUI().getModel().setFocusOnNavigation(false); +// } +// } + }; + result.addMouseListener(mouseAdapter); + addMouseListener(result, mouseAdapter); return result; } catch (Exception e) { @@ -126,6 +128,22 @@ public class ContentUIManager { } } + protected void addMouseListener(JAXXObject result, MouseAdapter mouseAdapter) { + if (log.isInfoEnabled()) { + log.info("Adding to " + result); + } + for (Object o : result.get$objectMap().values()) { + if (o instanceof JComponent) { + ((JComponent) o).addMouseListener(mouseAdapter); + } + if (o instanceof JAXXObject && o != result) { + addMouseListener((JAXXObject) o, mouseAdapter); + } + } + + } + + public void openContent(ContentUI<?, ?> content) { String constraints = content.getClass().getName(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.