Ate Douma pushed to branch master at cms-community / hippo-cms

Commits:
031abbe8 by Canh Ngo at 2016-03-30T14:51:17+02:00
CMS-10003: re-merge Re-merge lost merge commit for CMS#9460: fixed the field 
with multiple, ordered properties not to redraw unnecessarily.
It should be redrawn only when its values' orders or number of of values are 
changes
(cherry picked from commit fa0f55bea1130efee97ca5ae796cddada6e55886)

- - - - -


1 changed file:

- 
editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/field/PropertyFieldPlugin.java


Changes:

=====================================
editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/field/PropertyFieldPlugin.java
=====================================
--- 
a/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/field/PropertyFieldPlugin.java
+++ 
b/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/field/PropertyFieldPlugin.java
@@ -54,9 +54,13 @@ public class PropertyFieldPlugin extends 
AbstractFieldPlugin<Property, JcrProper
     private long nrValues;
     private IObserver propertyObserver;
 
+    // flag to check if the value orders have been changed when the property 
is ordered and multiple
+    private boolean hasChangedPropValueOrder;
+
     public PropertyFieldPlugin(IPluginContext context, IPluginConfig config) {
         super(context, config);
 
+        hasChangedPropValueOrder = false;
         nodeModel = (JcrNodeModel) getDefaultModel();
 
         // use caption for backwards compatibility; i18n should use field name
@@ -127,10 +131,14 @@ public class PropertyFieldPlugin extends 
AbstractFieldPlugin<Property, JcrProper
 
                 public void onEvent(Iterator<? extends 
IEvent<JcrPropertyModel>> events) {
                     //Only redraw if the number of properties or their order 
has changed.
-                    if (propertyModel.size() != nrValues || field.isOrdered()) 
{
+                    if (propertyModel.size() != nrValues ||
+                        (field.isOrdered() && hasChangedPropValueOrder)) {
                         nrValues = propertyModel.size();
                         resetValidation();
                         redraw();
+
+                        // reset flag after redraw
+                        hasChangedPropValueOrder = false;
                     }
                 }
 
@@ -210,6 +218,7 @@ public class PropertyFieldPlugin extends 
AbstractFieldPlugin<Property, JcrProper
             @Override
             public void onClick(AjaxRequestTarget target) {
                 onRemoveItem(model, target);
+                hasChangedPropValueOrder = true;
             }
         };
         if (!canRemoveItem()) {
@@ -225,6 +234,7 @@ public class PropertyFieldPlugin extends 
AbstractFieldPlugin<Property, JcrProper
             @Override
             public void onClick(AjaxRequestTarget target) {
                 onMoveItemUp(model, target);
+                hasChangedPropValueOrder = true;
             }
         };
         boolean isFirst = (model.getIndex() == 0);
@@ -244,6 +254,7 @@ public class PropertyFieldPlugin extends 
AbstractFieldPlugin<Property, JcrProper
                 JcrPropertyValueModel nextModel = new 
JcrPropertyValueModel(model.getIndex() + 1, model
                         .getJcrPropertymodel());
                 onMoveItemUp(nextModel, target);
+                hasChangedPropValueOrder = true;
             }
         };
         boolean isLast = (model.getIndex() == provider.size() - 1);



View it on GitLab: 
https://code.onehippo.org/cms-community/hippo-cms/commit/031abbe8bc06b5c4624a43528493860caee1b76a
_______________________________________________
Hippocms-svn mailing list
Hippocms-svn@lists.onehippo.org
https://lists.onehippo.org/mailman/listinfo/hippocms-svn

Reply via email to