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