Repository: syncope Updated Branches: refs/heads/2_0_X 658141b2e -> 166c4910b refs/heads/master eb4cb4485 -> 166b2f9f9
[SYNCOPE-1034] fixes type extension model object handling Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/c6e10f92 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/c6e10f92 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/c6e10f92 Branch: refs/heads/master Commit: c6e10f92ffb37391c6509725838e8d61aaac7fab Parents: bfcac4b Author: fmartelli <fabio.marte...@gmail.com> Authored: Tue Mar 7 15:01:20 2017 +0100 Committer: fmartelli <fabio.marte...@gmail.com> Committed: Tue Mar 7 15:01:20 2017 +0100 ---------------------------------------------------------------------- .../panels/TypeExtensionDirectoryPanel.java | 18 +++++++++++ .../wizards/any/TypeExtensionWizardBuilder.java | 32 +++++++++++--------- 2 files changed, 36 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/c6e10f92/client/console/src/main/java/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.java index 5333eef..2eefdfc 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/TypeExtensionDirectoryPanel.java @@ -198,4 +198,22 @@ public class TypeExtensionDirectoryPanel } } + + @Override + protected void customActionCallback(final AjaxRequestTarget target) { + // change modal foter visibility + send(TypeExtensionDirectoryPanel.this, Broadcast.BUBBLE, new BaseModal.ChangeFooterVisibilityEvent(target)); + } + + @Override + protected void customActionOnCancelCallback(final AjaxRequestTarget target) { + // change modal foter visibility + send(TypeExtensionDirectoryPanel.this, Broadcast.BUBBLE, new BaseModal.ChangeFooterVisibilityEvent(target)); + } + + @Override + protected void customActionOnFinishCallback(final AjaxRequestTarget target) { + // change modal foter visibility + send(TypeExtensionDirectoryPanel.this, Broadcast.BUBBLE, new BaseModal.ChangeFooterVisibilityEvent(target)); + } } http://git-wip-us.apache.org/repos/asf/syncope/blob/c6e10f92/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/TypeExtensionWizardBuilder.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/TypeExtensionWizardBuilder.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/TypeExtensionWizardBuilder.java index fb0106e..fc69e26 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/TypeExtensionWizardBuilder.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/TypeExtensionWizardBuilder.java @@ -18,9 +18,11 @@ */ package org.apache.syncope.client.console.wizards.any; +import java.io.Serializable; import java.util.ArrayList; import java.util.List; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.ListUtils; import org.apache.commons.collections4.Predicate; import org.apache.syncope.client.console.rest.AnyTypeClassRestClient; import org.apache.syncope.client.console.rest.AnyTypeRestClient; @@ -65,32 +67,34 @@ public class TypeExtensionWizardBuilder extends AjaxWizardBuilder<TypeExtensionT @Override protected WizardModel buildModelSteps(final TypeExtensionTO modelObject, final WizardModel wizardModel) { - wizardModel.add(new Details(modelObject.getAnyType())); + wizardModel.add(new Details(modelObject)); return wizardModel; } - + @Override - protected void onCancelInternal(final TypeExtensionTO modelObject) { - this.groupTO.getTypeExtensions().remove(modelObject); + protected Serializable onApplyInternal(final TypeExtensionTO modelObject) { + final List<TypeExtensionTO> typeExtensions + = ListUtils.select(groupTO.getTypeExtensions(), new Predicate<TypeExtensionTO>() { + + @Override + public boolean evaluate(final TypeExtensionTO object) { + return !object.getAnyType().equals(modelObject.getAnyType()); + } + }); + typeExtensions.add(modelObject); + groupTO.getTypeExtensions().clear(); + groupTO.getTypeExtensions().addAll(typeExtensions); + return groupTO; } public class Details extends WizardStep { private static final long serialVersionUID = 6472869166547883903L; - public Details(final String anyType) { + public Details(final TypeExtensionTO typeExtensionTO) { super(); setOutputMarkupId(true); - TypeExtensionTO typeExtensionTO; - if (groupTO.getTypeExtension(anyType) == null) { - typeExtensionTO = new TypeExtensionTO(); - typeExtensionTO.setAnyType(anyType); - groupTO.getTypeExtensions().add(typeExtensionTO); - } else { - typeExtensionTO = groupTO.getTypeExtension(anyType); - } - add(new Label("anyType.label", anyTypeLabel)); if (typeExtensionTO.getAnyType() == null) {