Repository: syncope Updated Branches: refs/heads/master 288179f26 -> 83509d7eb
[SYNCOPE-156] some fixes improve derived and virtual attributes management Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/83509d7e Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/83509d7e Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/83509d7e Branch: refs/heads/master Commit: 83509d7eb8322ba8066f9278c25ba38a829cb439 Parents: 288179f Author: fmartelli <fabio.marte...@gmail.com> Authored: Fri Dec 18 10:41:08 2015 +0100 Committer: fmartelli <fabio.marte...@gmail.com> Committed: Fri Dec 18 10:41:08 2015 +0100 ---------------------------------------------------------------------- .../panels/search/AbstractSearchPanel.java | 14 ++++++-- .../panels/search/AnyObjectSearchPanel.java | 11 ++++-- .../console/panels/search/UserSearchPanel.java | 2 +- .../client/console/wizards/any/DerAttrs.java | 35 +++++++++++--------- .../console/wizards/any/DynamicMemberships.java | 2 +- .../client/console/wizards/any/Roles.java | 4 +-- .../client/console/wizards/any/VirAttrs.java | 22 ++++++------ .../client/console/panels/ListViewPanel.html | 3 +- 8 files changed, 56 insertions(+), 37 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/83509d7e/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java index fae623a..365d0c7 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java @@ -77,6 +77,8 @@ public abstract class AbstractSearchPanel extends Panel { protected final AnyTypeKind typeKind; + protected final String type; + protected final boolean required; protected final boolean enableSearch; @@ -108,13 +110,19 @@ public abstract class AbstractSearchPanel extends Panel { public abstract T build(final String id); } - protected AbstractSearchPanel(final String id, final AnyTypeKind typeKind, final Builder<?> builder) { + protected AbstractSearchPanel(final String id, final AnyTypeKind kind, final Builder<?> builder) { + this(id, kind, kind.name(), builder); + } + + protected AbstractSearchPanel( + final String id, final AnyTypeKind kind, final String type, final Builder<?> builder) { super(id); populate(); this.model = builder.model; - this.typeKind = typeKind; + this.typeKind = kind; + this.type = type; this.required = builder.required; this.enableSearch = builder.enableSearch; @@ -186,7 +194,7 @@ public abstract class AbstractSearchPanel extends Panel { @Override protected List<String> load() { return CollectionUtils.collect(schemaRestClient.getSchemas(SchemaType.PLAIN, - anyTypeRestClient.get(typeKind.name()).getClasses().toArray(new String[] {})), + anyTypeRestClient.get(type).getClasses().toArray(new String[] {})), new Transformer<AbstractSchemaTO, String>() { @Override http://git-wip-us.apache.org/repos/asf/syncope/blob/83509d7e/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnyObjectSearchPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnyObjectSearchPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnyObjectSearchPanel.java index 681ab1c..369c99b 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnyObjectSearchPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AnyObjectSearchPanel.java @@ -38,13 +38,16 @@ public class AnyObjectSearchPanel extends AbstractSearchPanel { private static final long serialVersionUID = 6308997285778809578L; - public Builder(final IModel<List<SearchClause>> model) { + private final String type; + + public Builder(final String type, final IModel<List<SearchClause>> model) { super(model); + this.type = type; } @Override public AnyObjectSearchPanel build(final String id) { - return new AnyObjectSearchPanel(id, AnyTypeKind.ANY_OBJECT, this); + return new AnyObjectSearchPanel(id, AnyTypeKind.ANY_OBJECT, type, this); } } @@ -52,6 +55,10 @@ public class AnyObjectSearchPanel extends AbstractSearchPanel { super(id, kind, builder); } + protected AnyObjectSearchPanel(final String id, final AnyTypeKind kind, final String type, final Builder builder) { + super(id, kind, type, builder); + } + @Override protected void populate() { super.populate(); http://git-wip-us.apache.org/repos/asf/syncope/blob/83509d7e/client/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSearchPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSearchPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSearchPanel.java index 910986a..2d01fc2 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSearchPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/UserSearchPanel.java @@ -31,7 +31,7 @@ public final class UserSearchPanel extends AnyObjectSearchPanel { private static final long serialVersionUID = 6308997285778809578L; public Builder(final IModel<List<SearchClause>> model) { - super(model); + super(AnyTypeKind.USER.name(), model); } @Override http://git-wip-us.apache.org/repos/asf/syncope/blob/83509d7e/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DerAttrs.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DerAttrs.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DerAttrs.java index 8ac047b..6629082 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DerAttrs.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DerAttrs.java @@ -61,11 +61,11 @@ public class DerAttrs extends AbstractAttrs { anyTypeRestClient.getAnyTypeClass(getAllAuxClasses().toArray(new String[] {})), new Transformer<AnyTypeClassTO, String>() { - @Override - public String transform(final AnyTypeClassTO input) { - return input.getKey(); - } - }, new ArrayList<String>(Arrays.asList(anyTypeClass))); + @Override + public String transform(final AnyTypeClassTO input) { + return input.getKey(); + } + }, new ArrayList<String>(Arrays.asList(anyTypeClass))); final List<DerSchemaTO> derSchemas = schemaRestClient.getSchemas(SchemaType.DERIVED, classes.toArray(new String[] {})); @@ -73,18 +73,21 @@ public class DerAttrs extends AbstractAttrs { final Map<String, AttrTO> currents = entityTO.getDerAttrMap(); entityTO.getDerAttrs().clear(); - return CollectionUtils.collect(derSchemas, new Transformer<DerSchemaTO, AttrTO>() { + // This conversion from set to lis is required by the ListView. + // Didn't performed by using collect parameter because entityTO change is required. + return new ArrayList<AttrTO>( + CollectionUtils.collect(derSchemas, new Transformer<DerSchemaTO, AttrTO>() { - @Override - public AttrTO transform(final DerSchemaTO input) { - AttrTO attrTO = currents.get(input.getKey()); - if (attrTO == null) { - attrTO = new AttrTO(); - attrTO.setSchema(input.getKey()); - } - return attrTO; - } - }, new ArrayList<>(entityTO.getDerAttrs())); + @Override + public AttrTO transform(final DerSchemaTO input) { + AttrTO attrTO = currents.get(input.getKey()); + if (attrTO == null) { + attrTO = new AttrTO(); + attrTO.setSchema(input.getKey()); + } + return attrTO; + } + }, entityTO.getDerAttrs())); } }; http://git-wip-us.apache.org/repos/asf/syncope/blob/83509d7e/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DynamicMemberships.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DynamicMemberships.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DynamicMemberships.java index 7288163..8df2cdd 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DynamicMemberships.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/DynamicMemberships.java @@ -104,7 +104,7 @@ public class DynamicMemberships extends WizardStep { @Override public Panel getPanel(final String panelId) { return new AnyObjectSearchPanel.Builder( - new MapOfListModel<SearchClause>(groupHandler, "aDynClauses", key)). + key, new MapOfListModel<SearchClause>(groupHandler, "aDynClauses", key)). required(false).build(panelId); } }), Model.of(StringUtils.isBlank(groupHandler.getADynMembershipConds().get(key)) ? -1 : 0)) http://git-wip-us.apache.org/repos/asf/syncope/blob/83509d7e/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Roles.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Roles.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Roles.java index f5f7afd..6ac91b1 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Roles.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Roles.java @@ -35,8 +35,6 @@ public class Roles extends WizardStep { private static final long serialVersionUID = 552437609667518888L; - private final RoleRestClient roleRestClient = new RoleRestClient(); - public <T extends AnyTO> Roles(final UserTO entityTO) { this.setOutputMarkupId(true); @@ -56,6 +54,6 @@ public class Roles extends WizardStep { add(new AjaxPalettePanel.Builder<String>().build("dynroles", new PropertyModel<List<String>>(entityTO, "dynRoles"), - new ListModel<>(allRoles)).setOutputMarkupId(true)); + new ListModel<>(allRoles)).setEnabled(false).setOutputMarkupId(true)); } } http://git-wip-us.apache.org/repos/asf/syncope/blob/83509d7e/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/VirAttrs.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/VirAttrs.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/VirAttrs.java index 1c247e0..2f69864 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/VirAttrs.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/VirAttrs.java @@ -59,11 +59,11 @@ public class VirAttrs extends AbstractAttrs { anyTypeRestClient.getAnyTypeClass(getAllAuxClasses().toArray(new String[] {})), new Transformer<AnyTypeClassTO, String>() { - @Override - public String transform(final AnyTypeClassTO input) { - return input.getKey(); - } - }, new ArrayList<String>(Arrays.asList(anyTypeClass))); + @Override + public String transform(final AnyTypeClassTO input) { + return input.getKey(); + } + }, new ArrayList<String>(Arrays.asList(anyTypeClass))); final List<VirSchemaTO> virSchemas = schemaRestClient.getSchemas(SchemaType.VIRTUAL, classes.toArray(new String[] {})); @@ -71,7 +71,9 @@ public class VirAttrs extends AbstractAttrs { final Map<String, AttrTO> currents = entityTO.getVirAttrMap(); entityTO.getVirAttrs().clear(); - return CollectionUtils.collect(virSchemas, new Transformer<VirSchemaTO, AttrTO>() { + // This conversion from set to lis is required by the ListView. + // Didn't performed by using collect parameter because entityTO change is required. + return new ArrayList<>(CollectionUtils.collect(virSchemas, new Transformer<VirSchemaTO, AttrTO>() { @Override public AttrTO transform(final VirSchemaTO input) { @@ -87,7 +89,7 @@ public class VirAttrs extends AbstractAttrs { attrTO.setReadonly(input.isReadonly()); return attrTO; } - }, new ArrayList<>(entityTO.getVirAttrs())); + }, entityTO.getVirAttrs())); } }; @@ -120,9 +122,9 @@ public class VirAttrs extends AbstractAttrs { item.add(new MultiFieldPanel.Builder<String>( new PropertyModel<List<String>>(attrTO, "values")).build( - "panel", - attrTO.getSchema(), - panel).setEnabled(!attrTO.isReadonly())); + "panel", + attrTO.getSchema(), + panel).setEnabled(!attrTO.isReadonly())); } }; http://git-wip-us.apache.org/repos/asf/syncope/blob/83509d7e/client/console/src/main/resources/org/apache/syncope/client/console/panels/ListViewPanel.html ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ListViewPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ListViewPanel.html index e30cf50..0c1a727 100644 --- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/ListViewPanel.html +++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/ListViewPanel.html @@ -54,7 +54,8 @@ under the License. </tr> </span> - </tbody></table> + </tbody> + </table> </div><!-- /.box-body --> </div><!-- /.box --> </div>