branch develop updated (4cf16cd -> e68915e)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git from 4cf16cd Merge branch 'feature/18' into 'develop' new e68915e Nettoyage code mort + amélioration fermeture (le focus doit sortir du formulaire) The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit e68915eaf178ff64587b11ee3b956090bd8dcee9 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 21 13:12:25 2016 +0100 Nettoyage code mort + amélioration fermeture (le focus doit sortir du formulaire) Summary of changes: .../swing/ui/ObserveMainUIInitializer.java | 6 -- .../application/swing/ui/ObserveMainUIModel.java | 31 ++++++ .../swing/ui/content/ContentUIBlockingLayerUI.java | 15 +++ .../swing/ui/content/ContentUIManager.java | 44 +-------- .../ui/content/open/ContentOpenableUIHandler.java | 2 + .../application/swing/ui/util/SpringUtilities.java | 107 +-------------------- 6 files changed, 52 insertions(+), 153 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit e68915eaf178ff64587b11ee3b956090bd8dcee9 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 21 13:12:25 2016 +0100 Nettoyage code mort + amélioration fermeture (le focus doit sortir du formulaire) --- .../swing/ui/ObserveMainUIInitializer.java | 6 -- .../application/swing/ui/ObserveMainUIModel.java | 31 ++++++ .../swing/ui/content/ContentUIBlockingLayerUI.java | 15 +++ .../swing/ui/content/ContentUIManager.java | 44 +-------- .../ui/content/open/ContentOpenableUIHandler.java | 2 + .../application/swing/ui/util/SpringUtilities.java | 107 +-------------------- 6 files changed, 52 insertions(+), 153 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 6875fe1..5c4fd82 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 @@ -427,12 +427,6 @@ public class ObserveMainUIInitializer { 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 d7504f5..c5264db 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 @@ -25,12 +25,16 @@ package fr.ird.observe.application.swing.ui; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; +import jaxx.runtime.JAXXObject; import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.beans.AbstractBean; import javax.swing.Icon; +import javax.swing.JComponent; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; import java.util.Locale; import static org.nuiton.i18n.I18n.t; @@ -45,6 +49,15 @@ public class ObserveMainUIModel extends AbstractBean { /** Logger */ private static final Log log = LogFactory.getLog(ObserveMainUIModel.class); + private final MouseAdapter focusOnBobyMouseListener = new MouseAdapter() { + @Override + public void mouseEntered(MouseEvent e) { + if (log.isDebugEnabled()) { + log.debug("Enter in formula zone: " + e); + } + setFocusOnNavigation(false); + } + }; private static final Icon DB_LOCAL_ICON = SwingUtil.getUIManagerActionIcon("db-local"); private static final Icon DB_REMOTE_ICON = SwingUtil.getUIManagerActionIcon("db-remote"); @@ -461,4 +474,22 @@ public class ObserveMainUIModel extends AbstractBean { this.blockFocus = false; } + public void attachFocusOnBody(JComponent c) { + c.addMouseListener(focusOnBobyMouseListener); + } + + public void attachFocusOnBodyDeep(JAXXObject result) { + if (log.isDebugEnabled()) { + log.debug("Adding to " + result); + } + for (Object o : result.get$objectMap().values()) { + if (o instanceof JComponent) { + attachFocusOnBody((JComponent) o); + } + if (o instanceof JAXXObject && o != result) { + attachFocusOnBodyDeep((JAXXObject) o); + } + } + + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIBlockingLayerUI.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIBlockingLayerUI.java index f69103e..79b7caf 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIBlockingLayerUI.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIBlockingLayerUI.java @@ -23,6 +23,7 @@ package fr.ird.observe.application.swing.ui.content; */ import com.google.common.collect.ImmutableSet; +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.ui.actions.AbstractUIAction; import jaxx.runtime.swing.BlockingLayerUI; import org.apache.commons.logging.Log; @@ -37,6 +38,7 @@ import javax.swing.KeyStroke; import javax.swing.SwingUtilities; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; +import java.awt.event.MouseEvent; import java.util.Set; /** @@ -68,6 +70,19 @@ public class ContentUIBlockingLayerUI extends BlockingLayerUI { } @Override + protected void processMouseEvent(MouseEvent e, JXLayer<? extends JComponent> l) { + + switch (e.getID()) { + case MouseEvent.MOUSE_ENTERED: + if (log.isDebugEnabled()) { + log.debug("Enter in formula zone: " + e); + } + ObserveSwingApplicationContext.get().getMainUI().getModel().setFocusOnNavigation(false); + } + super.processMouseEvent(e, l); + } + + @Override protected void processKeyEvent(KeyEvent e, JXLayer<? extends JComponent> l) { InputMap inputMap = ui.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); 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 53065e4..1e1cf28 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,17 +28,13 @@ 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; import org.apache.commons.logging.LogFactory; -import javax.swing.JComponent; import javax.swing.JPanel; import java.awt.Component; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; import java.lang.reflect.Constructor; /** @@ -99,28 +95,8 @@ public class ContentUIManager { log.debug("Add new content [" + constraints + "] : " + result.getClass().getName()); } - // initialisation du content - MouseAdapter mouseAdapter = new MouseAdapter() { - @Override - public void mouseEntered(MouseEvent 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); -// } -// } - }; - result.addMouseListener(mouseAdapter); - addMouseListener(result, mouseAdapter); + getMainUI().getModel().attachFocusOnBody(result); + getMainUI().getModel().attachFocusOnBodyDeep(result); return result; } catch (Exception e) { @@ -128,22 +104,6 @@ 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(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUIHandler.java index 78e33a5..352b911 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/ContentOpenableUIHandler.java @@ -142,6 +142,8 @@ public abstract class ContentOpenableUIHandler<E extends IdDto, U extends Conten NavigationTree treeHelper = getTreeHelper(ui); treeHelper.reloadSelectedNode(bean instanceof TripSeineDto || bean instanceof TripLonglineDto, true); updateActions(); + + grabFocusOnform(); } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/util/SpringUtilities.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/util/SpringUtilities.java index f63a87b..9a7963c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/util/SpringUtilities.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/util/SpringUtilities.java @@ -66,107 +66,6 @@ import java.awt.Container; * @author Tony Chemit - chemit@codelutin.com */ public class SpringUtilities { - /** - * A debugging utility that prints to stdout the component's - * minimum, preferred, and maximum sizes. - */ - public static void printSizes(Component c) { - System.out.println("minimumSize = " + c.getMinimumSize()); - System.out.println("preferredSize = " + c.getPreferredSize()); - System.out.println("maximumSize = " + c.getMaximumSize()); - } - - /** - * Aligns the first {@code rows} * {@code cols} - * components of {@code parent} in - * a grid. Each component is as big as the maximum - * preferred width and height of the components. - * The parent is made just big enough to fit them all. - * - * @param rows number of rows - * @param cols number of columns - * @param initialX x location to start the grid at - * @param initialY y location to start the grid at - * @param xPad x padding between cells - * @param yPad y padding between cells - */ - public static void makeGrid(Container parent, - int rows, int cols, - int initialX, int initialY, - int xPad, int yPad) { - SpringLayout layout; - try { - layout = (SpringLayout) parent.getLayout(); - } catch (ClassCastException exc) { - System.err.println("The first argument to makeGrid must use SpringLayout."); - return; - } - - Spring xPadSpring = Spring.constant(xPad); - Spring yPadSpring = Spring.constant(yPad); - Spring initialXSpring = Spring.constant(initialX); - Spring initialYSpring = Spring.constant(initialY); - int max = rows * cols; - - //Calculate Springs that are the max of the width/height so that all - //cells have the same size. - Spring maxWidthSpring = layout.getConstraints(parent.getComponent(0)). - getWidth(); - Spring maxHeightSpring = layout.getConstraints(parent.getComponent(0)). - getWidth(); - for (int i = 1; i < max; i++) { - SpringLayout.Constraints cons = layout.getConstraints( - parent.getComponent(i)); - - maxWidthSpring = Spring.max(maxWidthSpring, cons.getWidth()); - maxHeightSpring = Spring.max(maxHeightSpring, cons.getHeight()); - } - - //Apply the new width/height Spring. This forces all the - //components to have the same size. - for (int i = 0; i < max; i++) { - SpringLayout.Constraints cons = layout.getConstraints( - parent.getComponent(i)); - - cons.setWidth(maxWidthSpring); - cons.setHeight(maxHeightSpring); - } - - //Then adjust the x/y constraints of all the cells so that they - //are aligned in a grid. - SpringLayout.Constraints lastCons = null; - SpringLayout.Constraints lastRowCons = null; - for (int i = 0; i < max; i++) { - SpringLayout.Constraints cons = layout.getConstraints( - parent.getComponent(i)); - if (i % cols == 0) { //start of new row - lastRowCons = lastCons; - cons.setX(initialXSpring); - } else { //x position depends on previous component - cons.setX(Spring.sum(lastCons.getConstraint(SpringLayout.EAST), - xPadSpring)); - } - - if (i / cols == 0) { //first row - cons.setY(initialYSpring); - } else { //y position depends on previous row - cons.setY(Spring.sum(lastRowCons.getConstraint(SpringLayout.SOUTH), - yPadSpring)); - } - lastCons = cons; - } - - //Set the parent's size. - SpringLayout.Constraints pCons = layout.getConstraints(parent); - pCons.setConstraint(SpringLayout.SOUTH, - Spring.sum( - Spring.constant(yPad), - lastCons.getConstraint(SpringLayout.SOUTH))); - pCons.setConstraint(SpringLayout.EAST, - Spring.sum( - Spring.constant(xPad), - lastCons.getConstraint(SpringLayout.EAST))); - } /* Used by makeCompactGrid. */ @@ -213,7 +112,7 @@ public class SpringUtilities { for (int r = 0; r < rows; r++) { width = Spring.max(width, getConstraintsForCell(r, c, parent, cols). - getWidth()); + getWidth()); } for (int r = 0; r < rows; r++) { SpringLayout.Constraints constraints = @@ -229,9 +128,7 @@ public class SpringUtilities { for (int r = 0; r < rows; r++) { Spring height = Spring.constant(0); for (int c = 0; c < cols; c++) { - height = Spring.max(height, - getConstraintsForCell(r, c, parent, cols). - getHeight()); + height = Spring.max(height, getConstraintsForCell(r, c, parent, cols).getHeight()); } for (int c = 0; c < cols; c++) { SpringLayout.Constraints constraints = -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm