You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2014/11/04 01:34:19 UTC

[21/27] git commit: ISIS-537 Do not re-add the ScalarPanel's AjaxFormComponentUpdatingBehavior again and again even when rebuilding the whole GUI for the panel

ISIS-537 Do not re-add the ScalarPanel's AjaxFormComponentUpdatingBehavior again and again even when rebuilding the whole GUI for the panel

https://trello.com/c/DgiUR5Cj/97-improve-the-behavior-of-the-select2-components


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/4bbe17e0
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/4bbe17e0
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/4bbe17e0

Branch: refs/heads/master
Commit: 4bbe17e0e024ca308149b5fb90ee018cd3c3bcdd
Parents: 7cf69d9
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Sun Nov 2 21:43:41 2014 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Sun Nov 2 21:43:41 2014 +0200

----------------------------------------------------------------------
 .../components/scalars/ScalarPanelAbstract.java | 43 +++++++++++---------
 .../widgets/select2/Select2ChoiceUtil.java      | 14 -------
 .../valuechoices/ValueChoicesSelect2Panel.java  |  3 ++
 3 files changed, 26 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/4bbe17e0/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 78afa72..b67814a 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -238,29 +238,32 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
         addCssForMetaModel();
         
         if(!subscribers.isEmpty()) {
-            addFormComponentBehavior(new AjaxFormComponentUpdatingBehavior("change"){
-
-                private static final long serialVersionUID = 1L;
-
-                @Override
-                protected void onUpdate(AjaxRequestTarget target) {
-                    for (ScalarModelSubscriber subscriber : subscribers) {
-                        subscriber.onUpdate(target, ScalarPanelAbstract.this);
-                    }
-                }
-                
-                @Override
-                protected void onError(AjaxRequestTarget target, RuntimeException e) {
-                    super.onError(target, e);
-                    for (ScalarModelSubscriber subscriber : subscribers) {
-                        subscriber.onError(target, ScalarPanelAbstract.this);
-                    }
-
-                }
-            });
+            addFormComponentBehavior(new ScalarUpdatingBehavior());
         }
     }
 
+    protected class ScalarUpdatingBehavior extends AjaxFormComponentUpdatingBehavior {
+        private static final long serialVersionUID = 1L;
+
+        private ScalarUpdatingBehavior() {
+            super("change");
+        }
+
+        @Override
+        protected void onUpdate(AjaxRequestTarget target) {
+            for (ScalarModelSubscriber subscriber : subscribers) {
+                subscriber.onUpdate(target, ScalarPanelAbstract.this);
+            }
+        }
+
+        @Override
+        protected void onError(AjaxRequestTarget target, RuntimeException e) {
+            super.onError(target, e);
+            for (ScalarModelSubscriber subscriber : subscribers) {
+                subscriber.onError(target, ScalarPanelAbstract.this);
+            }
+        }
+    }
 
     /**
      * Mandatory hook.

http://git-wip-us.apache.org/repos/asf/isis/blob/4bbe17e0/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceUtil.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceUtil.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceUtil.java
index ba37ef7..fb82253 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceUtil.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceUtil.java
@@ -18,7 +18,6 @@ package org.apache.isis.viewer.wicket.ui.components.widgets.select2;
 
 import com.vaynberg.wicket.select2.Select2Choice;
 
-import org.apache.wicket.behavior.AttributeAppender;
 import org.apache.wicket.model.IModel;
 
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
@@ -28,22 +27,9 @@ public final class Select2ChoiceUtil  {
 
     private Select2ChoiceUtil(){}
 
-    // a guesstimate to convert a single character into 'em' units
-    private static final double CHAR_TO_EM_MULTIPLIER = 0.8;
-
-    // a further fudge, add some additional characters prior to multiplication.
-    private static final int ADDITIONAL_CHARS = 3;
-
     public static Select2Choice<ObjectAdapterMemento> newSelect2Choice(String id, final IModel<ObjectAdapterMemento> modelObject, ScalarModel scalarModel) {
         Select2Choice<ObjectAdapterMemento> select2Choice = new Select2Choice<>(id, modelObject);
-        int typicalLength = scalarModel.getTypicalLength();
-        select2Choice.add(new AttributeAppender("style", asCssStyleWidth(typicalLength)));
         select2Choice.setRequired(scalarModel.isRequired());
         return select2Choice;
     }
-
-    private static String asCssStyleWidth(int numChars) {
-        return "width: " + ((numChars+ADDITIONAL_CHARS) * CHAR_TO_EM_MULTIPLIER) + "em;";
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/4bbe17e0/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java
index b5a1529..e30d698 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java
@@ -214,6 +214,9 @@ public class ValueChoicesSelect2Panel extends ScalarPanelAbstract implements Sca
     
     @Override
     protected void addFormComponentBehavior(Behavior behavior) {
+        for (Behavior b : select2Field.getBehaviors(ScalarUpdatingBehavior.class)) {
+            select2Field.remove(b);
+        }
         select2Field.add(behavior);
     }