branch develop-2.x updated (7c62d1f -> 1d1e99f)
This is an automated email from the git hooks/post-receive script. New change to branch develop-2.x in repository jaxx. See https://gitlab.nuiton.org/nuiton/jaxx.git from 7c62d1f fixes #4141 [JAXX-Demo] jaxx.cssExtension property is missing new 1d1e99f Add a force option in BeanComboBox to set selectedItem value (Fixes #4157) 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 1d1e99f5d948edac056ef4146edcfbc3bcd091c4 Author: Tony CHEMIT <dev@tchemit.fr> Date: Fri Mar 3 11:54:54 2017 +0100 Add a force option in BeanComboBox to set selectedItem value (Fixes #4157) Summary of changes: .../runtime/swing/editor/bean/BeanComboBox.jaxx | 2 + .../swing/editor/bean/BeanComboBoxHandler.java | 45 +++++++++++----------- 2 files changed, 25 insertions(+), 22 deletions(-) -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop-2.x in repository jaxx. See https://gitlab.nuiton.org/nuiton/jaxx.git commit 1d1e99f5d948edac056ef4146edcfbc3bcd091c4 Author: Tony CHEMIT <dev@tchemit.fr> Date: Fri Mar 3 11:54:54 2017 +0100 Add a force option in BeanComboBox to set selectedItem value (Fixes #4157) --- .../runtime/swing/editor/bean/BeanComboBox.jaxx | 2 + .../swing/editor/bean/BeanComboBoxHandler.java | 45 +++++++++++----------- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBox.jaxx b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBox.jaxx index 1a1b5cc..f3fd545 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBox.jaxx +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBox.jaxx @@ -89,6 +89,8 @@ <String id='i18nPrefix' javaBean='"entitycombobox.common."'/> + <Boolean id='force' javaBean='false'/> + <!-- popup to change sorted property--> <JPopupMenu id='popup' onPopupMenuWillBecomeInvisible='getChangeDecorator().setSelected(false)' diff --git a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBoxHandler.java b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBoxHandler.java index efa1aa2..fd5a3d4 100644 --- a/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBoxHandler.java +++ b/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBoxHandler.java @@ -34,9 +34,7 @@ import org.nuiton.decorator.JXPathDecorator; import org.nuiton.decorator.MultiJXPathDecorator; import org.nuiton.util.beans.BeanUtil; -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JPopupMenu; +import javax.swing.*; import javax.swing.event.PopupMenuEvent; import javax.swing.event.PopupMenuListener; import javax.swing.text.Document; @@ -48,14 +46,15 @@ import java.beans.PropertyChangeListener; import java.lang.reflect.Method; import java.util.Collections; import java.util.List; +import java.util.Objects; /** * Le handler d'un {@link BeanComboBox}. - * + * <p> * Note: ce handler n'est pas stateless et n'est donc pas partageable entre plusieurs ui. * * @param <O> le type des objet contenus dans le modèle du composant. - * @author Tony Chemit - chemit@codelutin.com + * @author Tony Chemit - dev@tchemit.fr * @see BeanComboBox */ public class BeanComboBoxHandler<O> implements PropertyChangeListener { @@ -148,13 +147,17 @@ public class BeanComboBoxHandler<O> implements PropertyChangeListener { public void popupMenuWillBecomeInvisible(PopupMenuEvent e) { O newSelectedItem = (O) combobox.getSelectedItem(); + log.debug(String.format("old ui value: %s, new value: %s :: %s", ui.getSelectedItem(), newSelectedItem, Objects.equals(ui.getSelectedItem(), newSelectedItem))); + log.debug(String.format("old value: %s, new value: %s :: %s", selectedItem, newSelectedItem, Objects.equals(selectedItem, newSelectedItem))); if (canceled) { ui.setSelectedItem(null); - } else if ((newSelectedItem == null ^ selectedItem == null) - || (newSelectedItem != null - && !selectedItem.equals(newSelectedItem))) { - ui.setSelectedItem(newSelectedItem); + } else { + + if (ui.isForce()) { + ui.setSelectedItem(null); + } + setSelectedItem(selectedItem, newSelectedItem); } selectedItem = null; canceled = false; @@ -210,7 +213,7 @@ public class BeanComboBoxHandler<O> implements PropertyChangeListener { /** * Add the given items into the comboBox. - * + * <p> * <strong>Note:</strong> The item will be inserted at his correct following * the selected ordering. * @@ -234,7 +237,7 @@ public class BeanComboBoxHandler<O> implements PropertyChangeListener { /** * Remove the given items from the comboBox model. - * + * <p> * <strong>Note:</strong> If this item was selected, then selection will be * cleared. * @@ -275,7 +278,7 @@ public class BeanComboBoxHandler<O> implements PropertyChangeListener { /** * Add the given item into the comboBox. - * + * <p> * <strong>Note:</strong> The item will be inserted at his correct following * the selected ordering. * @@ -289,7 +292,7 @@ public class BeanComboBoxHandler<O> implements PropertyChangeListener { /** * Remove the given item from the comboBox model. - * + * <p> * <strong>Note:</strong> If this item was selected, then selection will be * cleared. * @@ -407,10 +410,7 @@ public class BeanComboBoxHandler<O> implements PropertyChangeListener { if (ui.isSortable()) { try { // Sort data with the decorator jxpath tokens. - DecoratorUtil.sort(decorator, - data, - index, - reversesort); + DecoratorUtil.sort(decorator, data, index, reversesort); } catch (Exception eee) { log.warn(eee.getMessage(), eee); @@ -438,10 +438,12 @@ public class BeanComboBoxHandler<O> implements PropertyChangeListener { * @param newValue la nouvelle valeur */ protected void setSelectedItem(O oldValue, O newValue) { + log.debug(String.format("old value: %s, new value: %s", oldValue, newValue)); if (ui.getBean() == null) { return; } + if (newValue == null) { if (ui.getCombobox().getSelectedItem() == null) { return; @@ -508,7 +510,6 @@ public class BeanComboBoxHandler<O> implements PropertyChangeListener { @Override public void propertyChange(PropertyChangeEvent evt) { String propertyName = evt.getPropertyName(); - if (BeanComboBox.PROPERTY_SELECTED_ITEM.equals(propertyName)) { setSelectedItem((O) evt.getOldValue(), (O) evt.getNewValue()); return; @@ -517,7 +518,7 @@ public class BeanComboBoxHandler<O> implements PropertyChangeListener { if (BeanComboBox.PROPERTY_AUTO_COMPLETE.equals(propertyName)) { setAutoComplete((Boolean) evt.getOldValue(), - (Boolean) evt.getNewValue()); + (Boolean) evt.getNewValue()); return; } @@ -525,7 +526,7 @@ public class BeanComboBoxHandler<O> implements PropertyChangeListener { // decorator index has changed, force reload of data in ui setIndex((Integer) evt.getOldValue(), - (Integer) evt.getNewValue()); + (Integer) evt.getNewValue()); return; } @@ -533,7 +534,7 @@ public class BeanComboBoxHandler<O> implements PropertyChangeListener { // sort order has changed, force reload of data in ui setSortOrder((Boolean) evt.getOldValue(), - (Boolean) evt.getNewValue()); + (Boolean) evt.getNewValue()); return; } @@ -550,7 +551,7 @@ public class BeanComboBoxHandler<O> implements PropertyChangeListener { protected void fireEmpty(boolean wasEmpty) { ui.firePropertyChange(BeanComboBox.PROPERTY_EMPTY, wasEmpty, - isEmpty()); + isEmpty()); } } -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm