Repository: syncope Updated Branches: refs/heads/master 72e3836cf -> 5279aca98
[SYNCOPE-156] fix mimetype autocomplition Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/5279aca9 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/5279aca9 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/5279aca9 Branch: refs/heads/master Commit: 5279aca98962f2ed0b86687b604776c9c0a5af09 Parents: 72e3836 Author: fmartelli <fabio.marte...@gmail.com> Authored: Tue Dec 22 13:04:42 2015 +0100 Committer: fmartelli <fabio.marte...@gmail.com> Committed: Tue Dec 22 13:04:42 2015 +0100 ---------------------------------------------------------------------- .../client/console/init/MIMETypesLoader.java | 25 +++++---- .../console/panels/PlainSchemaDetails.java | 58 +++++++++++--------- .../META-INF/resources/css/syncopeConsole.css | 21 +++++++ 3 files changed, 66 insertions(+), 38 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/5279aca9/client/console/src/main/java/org/apache/syncope/client/console/init/MIMETypesLoader.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/init/MIMETypesLoader.java b/client/console/src/main/java/org/apache/syncope/client/console/init/MIMETypesLoader.java index 62dcff3..db47844 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/init/MIMETypesLoader.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/init/MIMETypesLoader.java @@ -23,6 +23,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.wicket.util.io.IOUtils; import org.slf4j.Logger; @@ -35,19 +36,21 @@ public class MIMETypesLoader { private List<String> mimeTypes; public void load() { - Set<String> mediaTypes = new HashSet<>(); - this.mimeTypes = new ArrayList<>(); - try { - final String mimeTypesFile = IOUtils.toString(getClass().getResourceAsStream("/MIMETypes")); - for (String fileRow : mimeTypesFile.split("\n")) { - if (StringUtils.isNotBlank(fileRow) && !fileRow.startsWith("#")) { - mediaTypes.add(fileRow); + if (CollectionUtils.isEmpty(mimeTypes)) { + Set<String> mediaTypes = new HashSet<>(); + this.mimeTypes = new ArrayList<>(); + try { + final String mimeTypesFile = IOUtils.toString(getClass().getResourceAsStream("/MIMETypes")); + for (String fileRow : mimeTypesFile.split("\n")) { + if (StringUtils.isNotBlank(fileRow) && !fileRow.startsWith("#")) { + mediaTypes.add(fileRow); + } } + this.mimeTypes.addAll(mediaTypes); + Collections.sort(this.mimeTypes); + } catch (Exception e) { + LOG.error("Error reading file MIMETypes from resources", e); } - this.mimeTypes.addAll(mediaTypes); - Collections.sort(this.mimeTypes); - } catch (Exception e) { - LOG.error("Error reading file MIMETypes from resources", e); } } http://git-wip-us.apache.org/repos/asf/syncope/blob/5279aca9/client/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java index aa58e19..175d758 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java @@ -95,20 +95,20 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel { typeParams.setOutputMarkupPlaceholderTag(true); // enum - final AjaxTextFieldPanel enumerationValuesPanel = - new AjaxTextFieldPanel("panel", "enumerationValues", new Model<String>(null)); + final AjaxTextFieldPanel enumerationValuesPanel = new AjaxTextFieldPanel("panel", "enumerationValues", + new Model<String>(null)); enumerationValues = new MultiFieldPanel.Builder<>( new ListModel<String>(getEnumValuesAsList(((PlainSchemaTO) schemaTO).getEnumerationValues()))).build( - "enumerationValues", - "enumerationValues", - enumerationValuesPanel); + "enumerationValues", + "enumerationValues", + enumerationValuesPanel); enumerationKeys = new MultiFieldPanel.Builder<>( new ListModel<String>(getEnumValuesAsList(((PlainSchemaTO) schemaTO).getEnumerationKeys()))).build( - "enumerationKeys", - "enumerationKeys", - new AjaxTextFieldPanel("panel", "enumerationKeys", new Model<String>())); + "enumerationKeys", + "enumerationKeys", + new AjaxTextFieldPanel("panel", "enumerationKeys", new Model<String>())); final WebMarkupContainer enumParams = new WebMarkupContainer("enumParams"); enumParams.setOutputMarkupPlaceholderTag(true); @@ -137,8 +137,6 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel { final AjaxTextFieldPanel mimeType = new AjaxTextFieldPanel("mimeType", getString("mimeType"), new PropertyModel<String>(schemaTO, "mimeType")); - mimeType.setChoices(MIME_TYPES_INITIALIZER.getMimeTypes()); - final WebMarkupContainer binaryParams = new WebMarkupContainer("binaryParams"); binaryParams.setOutputMarkupPlaceholderTag(true); binaryParams.add(mimeType); @@ -185,26 +183,26 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel { validatorClass.setChoices(validatorsList.getObject()); schemaForm.add(validatorClass); - final AutoCompleteTextField<String> mandatoryCondition = - new AutoCompleteTextField<String>("mandatoryCondition") { - - private static final long serialVersionUID = -2428903969518079100L; + final AutoCompleteTextField<String> mandatoryCondition + = new AutoCompleteTextField<String>("mandatoryCondition") { - @Override - protected Iterator<String> getChoices(final String input) { - List<String> choices = new ArrayList<>(); + private static final long serialVersionUID = -2428903969518079100L; - if (Strings.isEmpty(input)) { - choices = Collections.emptyList(); - } else if ("true".startsWith(input.toLowerCase())) { - choices.add("true"); - } else if ("false".startsWith(input.toLowerCase())) { - choices.add("false"); - } + @Override + protected Iterator<String> getChoices(final String input) { + List<String> choices = new ArrayList<>(); + + if (Strings.isEmpty(input)) { + choices = Collections.emptyList(); + } else if ("true".startsWith(input.toLowerCase())) { + choices.add("true"); + } else if ("false".startsWith(input.toLowerCase())) { + choices.add("false"); + } - return choices.iterator(); - } - }; + return choices.iterator(); + } + }; mandatoryCondition.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) { private static final long serialVersionUID = -1107858522700306810L; @@ -269,6 +267,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel { binaryParams.setVisible(false); mimeType.setModelObject(null); + mimeType.setChoices(null); } else if (AttrSchemaType.Enum.ordinal() == typeOrdinal) { conversionParams.setVisible(false); conversionPattern.setModelObject(null); @@ -292,6 +291,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel { binaryParams.setVisible(false); mimeType.setModelObject(null); + mimeType.setChoices(null); } else if (AttrSchemaType.Encrypted.ordinal() == typeOrdinal) { conversionParams.setVisible(false); conversionPattern.setModelObject(null); @@ -313,6 +313,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel { binaryParams.setVisible(false); mimeType.setModelObject(null); + mimeType.setChoices(null); } else if (AttrSchemaType.Binary.ordinal() == typeOrdinal) { conversionParams.setVisible(false); conversionPattern.setModelObject(null); @@ -335,6 +336,8 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel { cipherAlgorithm.setModelObject(null); binaryParams.setVisible(true); + MIME_TYPES_INITIALIZER.load(); + mimeType.setChoices(MIME_TYPES_INITIALIZER.getMimeTypes()); } else { conversionParams.setVisible(false); conversionPattern.setModelObject(null); @@ -358,6 +361,7 @@ public class PlainSchemaDetails extends AbstractSchemaDetailsPanel { binaryParams.setVisible(false); mimeType.setModelObject(null); + mimeType.setChoices(null); } } http://git-wip-us.apache.org/repos/asf/syncope/blob/5279aca9/client/console/src/main/resources/META-INF/resources/css/syncopeConsole.css ---------------------------------------------------------------------- diff --git a/client/console/src/main/resources/META-INF/resources/css/syncopeConsole.css b/client/console/src/main/resources/META-INF/resources/css/syncopeConsole.css index 5ad319f..6042058 100644 --- a/client/console/src/main/resources/META-INF/resources/css/syncopeConsole.css +++ b/client/console/src/main/resources/META-INF/resources/css/syncopeConsole.css @@ -358,4 +358,25 @@ div.searchResult{ .logs .box{ border-top: 0px !important; +} + +*::after, *::before { + box-sizing: border-box; +} + + +.wicket-aa-container { + border-color: #eee; + box-shadow: none; + background-clip: padding-box; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 4px; + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.176); + float: left; + font-size: 14px; + list-style: outside none none; + min-width: 160px; + text-align: left; + max-height: 250px; } \ No newline at end of file