Repository: syncope Updated Branches: refs/heads/master cb4059fab -> bc4976f5a
Parameters order and boolean management, #SYNCOPE-156 Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/bc4976f5 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/bc4976f5 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/bc4976f5 Branch: refs/heads/master Commit: bc4976f5a6fcf88cec9804f7e20aaf9c30655755 Parents: cb4059f Author: Massimiliano Perrone <massimiliano.perr...@tirasa.net> Authored: Thu Jan 28 17:59:03 2016 +0100 Committer: Massimiliano Perrone <massimiliano.perr...@tirasa.net> Committed: Thu Jan 28 18:00:31 2016 +0100 ---------------------------------------------------------------------- .../panels/ParametersCreateWizardAttrStep.java | 35 +++++++++++++++++-- .../console/panels/ParametersDetailsPanel.java | 36 ++++++++++++++++++-- .../client/console/panels/ParametersPanel.java | 11 ++++-- .../client/console/wizards/any/PlainAttrs.java | 1 - 4 files changed, 74 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/bc4976f5/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersCreateWizardAttrStep.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersCreateWizardAttrStep.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersCreateWizardAttrStep.java index 4ddb9a7..f33276c 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersCreateWizardAttrStep.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersCreateWizardAttrStep.java @@ -94,6 +94,34 @@ public class ParametersCreateWizardAttrStep extends WizardStep { panel = new AjaxDateFieldPanel( id, valueHeaderName, new Model<Date>(), plainSchemaTO.getConversionPattern()); break; + case Boolean: + panel = new AjaxDropDownChoicePanel<>(id, valueHeaderName, new Model<String>(), false); + ((AjaxDropDownChoicePanel<String>) panel).setChoices(Arrays.asList("true", "false")); + + if (!attrTO.getValues().isEmpty()) { + ((AjaxDropDownChoicePanel) panel).setChoiceRenderer(new IChoiceRenderer<String>() { + + private static final long serialVersionUID = -3724971416312135885L; + + @Override + public String getDisplayValue(final String value) { + return value; + } + + @Override + public String getIdValue(final String value, final int i) { + return value; + } + + @Override + public String getObject( + final String id, final IModel<? extends List<? extends String>> choices) { + return id; + } + }); + } + ((AjaxDropDownChoicePanel<String>) panel).setNullValid(false); + break; case Enum: panel = new AjaxDropDownChoicePanel<>(id, valueHeaderName, new Model<String>(), false); ((AjaxDropDownChoicePanel<String>) panel).setChoices(SchemaUtils.getEnumeratedValues(plainSchemaTO)); @@ -120,6 +148,8 @@ public class ParametersCreateWizardAttrStep extends WizardStep { } }); } + ((AjaxDropDownChoicePanel<String>) panel).setNullValid( + "true".equalsIgnoreCase(plainSchemaTO.getMandatoryCondition())); break; case Long: @@ -139,9 +169,8 @@ public class ParametersCreateWizardAttrStep extends WizardStep { } else { panel.setNewModel(attrTO.getValues()); } - if (plainSchemaTO.getMandatoryCondition().equalsIgnoreCase("true")) { - panel.setRequired(true); - } + + panel.setRequired("true".equalsIgnoreCase(plainSchemaTO.getMandatoryCondition())); return panel; } } http://git-wip-us.apache.org/repos/asf/syncope/blob/bc4976f5/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersDetailsPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersDetailsPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersDetailsPanel.java index eae63bc..8e6662d 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersDetailsPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersDetailsPanel.java @@ -18,6 +18,7 @@ */ package org.apache.syncope.client.console.panels; +import java.util.Arrays; import java.util.Date; import java.util.List; import org.apache.syncope.client.console.SyncopeConsoleSession; @@ -80,6 +81,34 @@ public class ParametersDetailsPanel extends Panel { panel = new AjaxDateFieldPanel( id, valueHeaderName, new Model<Date>(), schemaTO.getConversionPattern()); break; + case Boolean: + panel = new AjaxDropDownChoicePanel<>(id, valueHeaderName, new Model<String>(), false); + ((AjaxDropDownChoicePanel<String>) panel).setChoices(Arrays.asList("true", "false")); + + if (!attrTO.getValues().isEmpty()) { + ((AjaxDropDownChoicePanel) panel).setChoiceRenderer(new IChoiceRenderer<String>() { + + private static final long serialVersionUID = -3724971416312135885L; + + @Override + public String getDisplayValue(final String value) { + return value; + } + + @Override + public String getIdValue(final String value, final int i) { + return value; + } + + @Override + public String getObject( + final String id, final IModel<? extends List<? extends String>> choices) { + return id; + } + }); + } + ((AjaxDropDownChoicePanel<String>) panel).setNullValid(false); + break; case Enum: panel = new AjaxDropDownChoicePanel<>(id, valueHeaderName, new Model<String>(), false); ((AjaxDropDownChoicePanel<String>) panel).setChoices(SchemaUtils.getEnumeratedValues(schemaTO)); @@ -106,6 +135,8 @@ public class ParametersDetailsPanel extends Panel { } }); } + ((AjaxDropDownChoicePanel<String>) panel).setNullValid( + "false".equalsIgnoreCase(schemaTO.getMandatoryCondition())); break; case Long: @@ -125,9 +156,8 @@ public class ParametersDetailsPanel extends Panel { } else { panel.setNewModel(attrTO.getValues()); } - if (schemaTO.getMandatoryCondition().equalsIgnoreCase("true")) { - panel.setRequired(true); - } + + panel.setRequired("true".equalsIgnoreCase(schemaTO.getMandatoryCondition())); return panel; } } http://git-wip-us.apache.org/repos/asf/syncope/blob/bc4976f5/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersPanel.java index 803f478..d5e1ec3 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ParametersPanel.java @@ -31,6 +31,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.syncope.client.console.SyncopeConsoleSession; import org.apache.syncope.client.console.commons.Constants; import org.apache.syncope.client.console.commons.SearchableDataProvider; +import org.apache.syncope.client.console.commons.SortableDataProviderComparator; import org.apache.syncope.client.console.pages.BasePage; import org.apache.syncope.client.console.panels.ParametersPanel.ParametersProvider; import org.apache.syncope.client.console.rest.BaseRestClient; @@ -47,6 +48,7 @@ import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy; import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow.WindowClosedCallback; import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; +import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder; import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn; @@ -210,8 +212,8 @@ public class ParametersPanel extends AbstractSearchResultPanel< final AttrTO attrTO = model.getObject(); - final ActionLinksPanel.Builder<Serializable> actionLinks = - ActionLinksPanel.builder(page.getPageReference()); + final ActionLinksPanel.Builder<Serializable> actionLinks = ActionLinksPanel.builder(page. + getPageReference()); actionLinks.setDisableIndicator(true); ActionLinksPanel.Builder<Serializable> addWithRoles = actionLinks .addWithRoles(new ActionLink<Serializable>() { @@ -261,13 +263,18 @@ public class ParametersPanel extends AbstractSearchResultPanel< private static final long serialVersionUID = -185944053385660794L; + private final SortableDataProviderComparator<AttrTO> comparator; + private ParametersProvider(final int paginatorRows) { super(paginatorRows); + setSort("schema", SortOrder.DESCENDING); + comparator = new SortableDataProviderComparator<>(this); } @Override public Iterator<AttrTO> iterator(final long first, final long count) { final List<AttrTO> list = SyncopeConsoleSession.get().getService(ConfigurationService.class).list(); + Collections.sort(list, comparator); return list.subList((int) first, (int) first + (int) count).iterator(); } http://git-wip-us.apache.org/repos/asf/syncope/blob/bc4976f5/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PlainAttrs.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PlainAttrs.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PlainAttrs.java index 0088163..0f8ade9 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PlainAttrs.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/PlainAttrs.java @@ -199,7 +199,6 @@ public class PlainAttrs extends AbstractAttrs { panel = new AjaxCheckBoxPanel("panel", schemaTO.getKey(), new Model<Boolean>(), false); panel.setRequired(required); break; - case Date: panel = new AjaxDateFieldPanel( "panel", schemaTO.getKey(), new Model<Date>(), schemaTO.getConversionPattern());