Example usage for org.apache.wicket.extensions.ajax.markup.html.autocomplete AutoCompleteTextField AutoCompleteTextField

List of usage examples for org.apache.wicket.extensions.ajax.markup.html.autocomplete AutoCompleteTextField AutoCompleteTextField

Introduction

In this page you can find the example usage for org.apache.wicket.extensions.ajax.markup.html.autocomplete AutoCompleteTextField AutoCompleteTextField.

Prototype

public AutoCompleteTextField(final String id) 

Source Link

Document

Constructor.

Usage

From source file:au.org.theark.core.web.component.customfield.form.SearchForm.java

License:Open Source License

public void initialiseFieldForm() {
    fieldIdTxtFld = new TextField<String>(Constants.FIELDVO_CUSTOMFIELD_ID);
    fieldNameTxtFld = new TextField<String>(Constants.FIELDVO_CUSTOMFIELD_NAME);
    fieldDescriptionTxtAreaFld = new TextArea<String>(Constants.FIELDVO_CUSTOMFIELD_DESCRIPTION);
    panelCustomUnitTypeDropDown = new WebMarkupContainer("panelCustomUnitTypeDropDown");
    panelCustomUnitTypeDropDown.setOutputMarkupId(true);
    panelCustomUnitTypeText = new WebMarkupContainer("panelCustomUnitTypeText");
    panelCustomUnitTypeText.setOutputMarkupId(true);
    fieldUnitsTxtFld = new AutoCompleteTextField<String>(Constants.FIELDVO_CUSTOMFIELD_UNIT_TYPE + ".name") {
        @Override/*  www .  j a  va  2  s  .  co  m*/
        protected Iterator getChoices(String input) {
            UnitType unitTypeCriteria = new UnitType();
            unitTypeCriteria.setName(input);
            unitTypeCriteria.setArkFunction(cpModel.getObject().getCustomField().getArkFunction());
            return iArkCommonService.getUnitTypeNames(unitTypeCriteria, 10).iterator();
        }
    };

    fieldUnitsInTextTxtFld = new TextField<String>(Constants.FIELDVO_CUSTOMFIELD_UNIT_TYPE_TXT);
    fieldMinValueTxtFld = new TextField<String>(Constants.FIELDVO_CUSTOMFIELD_MIN_VALUE);
    fieldMaxValueTxtFld = new TextField<String>(Constants.FIELDVO_CUSTOMFIELD_MAX_VALUE);
    initCustomFieldTypeDdc();

    //customfield category order Number.
    customeFieldCategoryOrderNoTxtFld = new TextField<Long>(
            Constants.FIELDVO_CUSTOMFIELD_CUSTOEMFIELDCATEGORY_ORDERNUMBER);
    customeFieldCategoryOrderNoTxtFld.setOutputMarkupId(true);
    customeFieldCategoryOrderNoTxtFld.setEnabled(false);

    initCustomeFieldCategoryDdc();
    initFieldTypeDdc();
    addFieldComponents();
}

From source file:au.org.theark.phenotypic.web.component.phenodatadictionary.form.SearchForm.java

License:Open Source License

public void initialiseFieldForm() {
    fieldIdTxtFld = new TextField<String>(Constants.FIELDVO_PHENODATASET_ID);
    fieldNameTxtFld = new TextField<String>(Constants.FIELDVO_PHENODATASET_NAME);
    fieldDescriptionTxtAreaFld = new TextArea<String>(Constants.FIELDVO_PHENODATASET_DESCRIPTION);
    panelCustomUnitTypeDropDown = new WebMarkupContainer("panelCustomUnitTypeDropDown");
    panelCustomUnitTypeDropDown.setOutputMarkupId(true);
    panelCustomUnitTypeText = new WebMarkupContainer("panelCustomUnitTypeText");
    panelCustomUnitTypeText.setOutputMarkupId(true);
    fieldUnitsTxtFld = new AutoCompleteTextField<String>(Constants.FIELDVO_PHENODATASET_UNIT_TYPE + ".name") {
        @Override//w  w w  .  ja va2  s .c  om
        protected Iterator getChoices(String input) {
            UnitType unitTypeCriteria = new UnitType();
            unitTypeCriteria.setName(input);
            unitTypeCriteria.setArkFunction(cpModel.getObject().getPhenoDataSetField().getArkFunction());
            return iArkCommonService.getUnitTypeNames(unitTypeCriteria, 10).iterator();
        }
    };

    fieldUnitsInTextTxtFld = new TextField<String>(Constants.FIELDVO_PHENODATASET_UNIT_TYPE_TXT);
    fieldMinValueTxtFld = new TextField<String>(Constants.FIELDVO_PHENODATASET_MIN_VALUE);
    fieldMaxValueTxtFld = new TextField<String>(Constants.FIELDVO_PHENODATASET_MAX_VALUE);
    //initCustomFieldTypeDdc();

    //customfield category order Number.
    //phenoDataSetCategoryOrderNoTxtFld = new TextField<Long>(Constants.FIELDVO_PHENODATASET_CUSTOEMFIELDCATEGORY_ORDERNUMBER);
    //phenoDataSetCategoryOrderNoTxtFld.setOutputMarkupId(true);
    //phenoDataSetCategoryOrderNoTxtFld.setEnabled(false);

    //initCustomeFieldCategoryDdc();
    initFieldTypeDdc();
    addFieldComponents();
}

From source file:org.apache.syncope.client.console.pages.PlainSchemaModalPage.java

License:Apache License

@Override
public void setSchemaModalPage(final PageReference pageRef, final ModalWindow window,
        final PlainSchemaTO schemaTO, final boolean createFlag) {

    final PlainSchemaTO schema = schemaTO == null ? new PlainSchemaTO() : schemaTO;

    final Form<PlainSchemaTO> schemaForm = new Form<>(FORM);

    schemaForm.setModel(new CompoundPropertyModel<>(schema));
    schemaForm.setOutputMarkupId(true);/*from   w  w  w.  j ava 2s.  c om*/

    final AjaxTextFieldPanel name = new AjaxTextFieldPanel("key", getString("key"),
            new PropertyModel<String>(schema, "key"));
    name.addRequiredLabel();
    name.setEnabled(createFlag);
    schemaForm.add(name);

    final AjaxDropDownChoicePanel<AttrSchemaType> type = new AjaxDropDownChoicePanel<>("type",
            getString("type"), new PropertyModel<AttrSchemaType>(schema, "type"));
    type.setChoices(Arrays.asList(AttrSchemaType.values()));
    type.addRequiredLabel();
    schemaForm.add(type);

    // -- long, double, date
    final AjaxTextFieldPanel conversionPattern = new AjaxTextFieldPanel("conversionPattern",
            getString("conversionPattern"), new PropertyModel<String>(schema, "conversionPattern"));
    schemaForm.add(conversionPattern);

    final WebMarkupContainer conversionParams = new WebMarkupContainer("conversionParams");
    conversionParams.setOutputMarkupPlaceholderTag(true);
    conversionParams.add(conversionPattern);
    schemaForm.add(conversionParams);

    final WebMarkupContainer typeParams = new WebMarkupContainer("typeParams");
    typeParams.setOutputMarkupPlaceholderTag(true);
    // -- enum
    final AjaxTextFieldPanel enumerationValuesPanel = new AjaxTextFieldPanel("panel", "enumerationValues",
            new Model<String>(null));
    @SuppressWarnings({ "unchecked", "rawtypes" })
    final MultiFieldPanel<String> enumerationValues = new MultiFieldPanel<>("enumerationValues", new Model(),
            enumerationValuesPanel);
    enumerationValues.setModelObject(getEnumValuesAsList(schema.getEnumerationValues()));

    @SuppressWarnings({ "unchecked", "rawtypes" })
    final MultiFieldPanel<String> enumerationKeys = new MultiFieldPanel<>("enumerationKeys", new Model(),
            new AjaxTextFieldPanel("panel", "enumerationKeys", new Model<String>(null)));
    enumerationKeys.setModelObject(getEnumValuesAsList(schema.getEnumerationKeys()));

    final WebMarkupContainer enumParams = new WebMarkupContainer("enumParams");
    enumParams.setOutputMarkupPlaceholderTag(true);
    enumParams.add(enumerationValues);
    enumParams.add(enumerationKeys);
    typeParams.add(enumParams);

    // -- encrypted
    final AjaxTextFieldPanel secretKey = new AjaxTextFieldPanel("secretKey", getString("secretKey"),
            new PropertyModel<String>(schema, "secretKey"));

    final AjaxDropDownChoicePanel<CipherAlgorithm> cipherAlgorithm = new AjaxDropDownChoicePanel<>(
            "cipherAlgorithm", getString("cipherAlgorithm"),
            new PropertyModel<CipherAlgorithm>(schema, "cipherAlgorithm"));
    cipherAlgorithm.setChoices(Arrays.asList(CipherAlgorithm.values()));

    final WebMarkupContainer encryptedParams = new WebMarkupContainer("encryptedParams");
    encryptedParams.setOutputMarkupPlaceholderTag(true);
    encryptedParams.add(secretKey);
    encryptedParams.add(cipherAlgorithm);
    typeParams.add(encryptedParams);

    // -- binary
    final AjaxTextFieldPanel mimeType = new AjaxTextFieldPanel("mimeType", getString("mimeType"),
            new PropertyModel<String>(schema, "mimeType"));
    mimeType.setChoices(mimeTypesInitializer.getMimeTypes());

    final WebMarkupContainer binaryParams = new WebMarkupContainer("binaryParams");
    binaryParams.setOutputMarkupPlaceholderTag(true);
    binaryParams.add(mimeType);
    typeParams.add(binaryParams);

    schemaForm.add(typeParams);

    // -- show or hide
    showHide(schema, type, conversionParams, conversionPattern, enumParams, enumerationValuesPanel,
            enumerationValues, enumerationKeys, encryptedParams, secretKey, cipherAlgorithm, binaryParams,
            mimeType);
    type.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {

        private static final long serialVersionUID = -1107858522700306810L;

        @Override
        protected void onUpdate(final AjaxRequestTarget target) {
            PlainSchemaModalPage.this.showHide(schema, type, conversionParams, conversionPattern, enumParams,
                    enumerationValuesPanel, enumerationValues, enumerationKeys, encryptedParams, secretKey,
                    cipherAlgorithm, binaryParams, mimeType);
            target.add(typeParams);
        }
    });

    final IModel<List<String>> validatorsList = new LoadableDetachableModel<List<String>>() {

        private static final long serialVersionUID = 5275935387613157437L;

        @Override
        protected List<String> load() {
            return schemaRestClient.getAllValidatorClasses();
        }
    };
    final AjaxDropDownChoicePanel<String> validatorClass = new AjaxDropDownChoicePanel<>("validatorClass",
            getString("validatorClass"), new PropertyModel<String>(schema, "validatorClass"));
    ((DropDownChoice) validatorClass.getField()).setNullValid(true);
    validatorClass.setChoices(validatorsList.getObject());
    schemaForm.add(validatorClass);

    final AutoCompleteTextField<String> mandatoryCondition = new AutoCompleteTextField<String>(
            "mandatoryCondition") {

        private static final long serialVersionUID = -2428903969518079100L;

        @Override
        protected Iterator<String> getChoices(final String input) {
            List<String> choices = new ArrayList<String>();

            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();
        }
    };
    mandatoryCondition.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {

        private static final long serialVersionUID = -1107858522700306810L;

        @Override
        protected void onUpdate(final AjaxRequestTarget target) {
        }
    });
    schemaForm.add(mandatoryCondition);

    final WebMarkupContainer pwdJexlHelp = JexlHelpUtils.getJexlHelpWebContainer("jexlHelp");

    final AjaxLink<Void> pwdQuestionMarkJexlHelp = JexlHelpUtils.getAjaxLink(pwdJexlHelp,
            "questionMarkJexlHelp");
    schemaForm.add(pwdQuestionMarkJexlHelp);
    pwdQuestionMarkJexlHelp.add(pwdJexlHelp);

    final AjaxCheckBoxPanel multivalue = new AjaxCheckBoxPanel("multivalue", getString("multivalue"),
            new PropertyModel<Boolean>(schema, "multivalue"));
    schemaForm.add(multivalue);

    final AjaxCheckBoxPanel readonly = new AjaxCheckBoxPanel("readonly", getString("readonly"),
            new PropertyModel<Boolean>(schema, "readonly"));
    schemaForm.add(readonly);

    final AjaxCheckBoxPanel uniqueConstraint = new AjaxCheckBoxPanel("uniqueConstraint",
            getString("uniqueConstraint"), new PropertyModel<Boolean>(schema, "uniqueConstraint"));
    schemaForm.add(uniqueConstraint);

    final AjaxButton submit = new IndicatingAjaxButton(APPLY, new ResourceModel(SUBMIT)) {

        private static final long serialVersionUID = -958724007591692537L;

        @Override
        protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
            final PlainSchemaTO schemaTO = (PlainSchemaTO) form.getDefaultModelObject();

            schemaTO.setEnumerationValues(getEnumValuesAsString(enumerationValues.getView().getModelObject()));
            schemaTO.setEnumerationKeys(getEnumValuesAsString(enumerationKeys.getView().getModelObject()));

            if (schemaTO.isMultivalue() && schemaTO.isUniqueConstraint()) {
                error(getString("multivalueAndUniqueConstr.validation"));
                feedbackPanel.refresh(target);
                return;
            }

            try {
                if (createFlag) {
                    schemaRestClient.createPlainSchema(kind, schemaTO);
                } else {
                    schemaRestClient.updatePlainSchema(kind, schemaTO);
                }
                if (pageRef.getPage() instanceof BasePage) {
                    ((BasePage) pageRef.getPage()).setModalResult(true);
                }

                window.close(target);
            } catch (SyncopeClientException e) {
                error(getString(Constants.ERROR) + ": " + e.getMessage());
                feedbackPanel.refresh(target);
            }
        }

        @Override
        protected void onError(final AjaxRequestTarget target, final Form<?> form) {
            feedbackPanel.refresh(target);
        }
    };
    schemaForm.add(submit);

    final AjaxButton cancel = new IndicatingAjaxButton(CANCEL, new ResourceModel(CANCEL)) {

        private static final long serialVersionUID = -958724007591692537L;

        @Override
        protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
            window.close(target);
        }
    };
    cancel.setDefaultFormProcessing(false);
    schemaForm.add(cancel);

    String allowedRoles = createFlag ? xmlRolesReader.getEntitlement("Schema", "create")
            : xmlRolesReader.getEntitlement("Schema", "update");

    MetaDataRoleAuthorizationStrategy.authorize(submit, ENABLE, allowedRoles);

    add(schemaForm);
}

From source file:org.apache.syncope.client.console.panels.PlainSchemaDetails.java

License:Apache License

public PlainSchemaDetails(final String id, final PageReference pageReference, final AbstractSchemaTO schemaTO) {
    super(id, pageReference, schemaTO);

    final AjaxDropDownChoicePanel<AttrSchemaType> type = new AjaxDropDownChoicePanel<>("type",
            getString("type"), new PropertyModel<AttrSchemaType>(schemaTO, "type"));

    type.setChoices(Arrays.asList(AttrSchemaType.values()));
    type.setEnabled(schemaTO == null || schemaTO.getKey() == null || schemaTO.getKey().isEmpty());
    type.addRequiredLabel();/*from ww  w.  j av  a2s  .com*/

    schemaForm.add(type);

    // long, double, date
    final AjaxTextFieldPanel conversionPattern = new AjaxTextFieldPanel("conversionPattern",
            getString("conversionPattern"), new PropertyModel<String>(schemaTO, "conversionPattern"));

    schemaForm.add(conversionPattern);

    final WebMarkupContainer conversionParams = new WebMarkupContainer("conversionParams");
    conversionParams.setOutputMarkupPlaceholderTag(true);
    conversionParams.add(conversionPattern);

    schemaForm.add(conversionParams);

    final WebMarkupContainer typeParams = new WebMarkupContainer("typeParams");

    typeParams.setOutputMarkupPlaceholderTag(true);

    // enum
    final AjaxTextFieldPanel enumerationValuesPanel = new AjaxTextFieldPanel("panel", "enumerationValues",
            new Model<String>(null));

    enumerationValues = new MultiFieldPanel.Builder<String>(
            new PropertyModel<List<String>>(schemaTO, "enumerationValues") {

                private static final long serialVersionUID = -4953564762272833993L;

                @Override
                public PropertyList<PlainSchemaTO> getObject() {
                    return new PropertyList<PlainSchemaTO>() {

                        @Override
                        public String getValues() {
                            return PlainSchemaTO.class.cast(schemaTO).getEnumerationValues();
                        }

                        @Override
                        public void setValues(final List<String> list) {
                            PlainSchemaTO.class.cast(schemaTO)
                                    .setEnumerationValues(getEnumValuesAsString(list));
                        }
                    };
                }

                @Override
                public void setObject(final List<String> object) {
                    PlainSchemaTO.class.cast(schemaTO)
                            .setEnumerationValues(PropertyList.getEnumValuesAsString(object));
                }
            }) {

        private static final long serialVersionUID = -8752965211744734798L;

        @Override
        protected String newModelObject() {
            return StringUtils.EMPTY;
        }

    }.build("enumerationValues", "enumerationValues", enumerationValuesPanel);

    enumerationKeys = new MultiFieldPanel.Builder<String>(
            new PropertyModel<List<String>>(schemaTO, "enumerationKeys") {

                private static final long serialVersionUID = -4953564762272833993L;

                @Override
                public PropertyList<PlainSchemaTO> getObject() {
                    return new PropertyList<PlainSchemaTO>() {

                        @Override
                        public String getValues() {
                            return PlainSchemaTO.class.cast(schemaTO).getEnumerationKeys();
                        }

                        @Override
                        public void setValues(final List<String> list) {
                            PlainSchemaTO.class.cast(schemaTO)
                                    .setEnumerationKeys(PropertyList.getEnumValuesAsString(list));
                        }
                    };
                }

                @Override
                public void setObject(final List<String> object) {
                    PlainSchemaTO.class.cast(schemaTO)
                            .setEnumerationKeys(PropertyList.getEnumValuesAsString(object));
                }
            }) {

        private static final long serialVersionUID = -8752965211744734798L;

        @Override
        protected String newModelObject() {
            return StringUtils.EMPTY;
        }

    }.build("enumerationKeys", "enumerationKeys",
            new AjaxTextFieldPanel("panel", "enumerationKeys", new Model<String>()));

    final WebMarkupContainer enumParams = new WebMarkupContainer("enumParams");
    enumParams.setOutputMarkupPlaceholderTag(true);
    enumParams.add(enumerationValues);
    enumParams.add(enumerationKeys);
    typeParams.add(enumParams);

    // encrypted
    final AjaxTextFieldPanel secretKey = new AjaxTextFieldPanel("secretKey", getString("secretKey"),
            new PropertyModel<String>(schemaTO, "secretKey"));

    final AjaxDropDownChoicePanel<CipherAlgorithm> cipherAlgorithm = new AjaxDropDownChoicePanel<>(
            "cipherAlgorithm", getString("cipherAlgorithm"),
            new PropertyModel<CipherAlgorithm>(schemaTO, "cipherAlgorithm"));

    cipherAlgorithm.setChoices(Arrays.asList(CipherAlgorithm.values()));

    final WebMarkupContainer encryptedParams = new WebMarkupContainer("encryptedParams");
    encryptedParams.setOutputMarkupPlaceholderTag(true);
    encryptedParams.add(secretKey);
    encryptedParams.add(cipherAlgorithm);

    typeParams.add(encryptedParams);

    // binary
    final AjaxTextFieldPanel mimeType = new AjaxTextFieldPanel("mimeType", getString("mimeType"),
            new PropertyModel<String>(schemaTO, "mimeType"));

    final WebMarkupContainer binaryParams = new WebMarkupContainer("binaryParams");
    binaryParams.setOutputMarkupPlaceholderTag(true);
    binaryParams.add(mimeType);
    typeParams.add(binaryParams);
    schemaForm.add(typeParams);

    // show or hide
    showHide(schemaTO, type, conversionParams, conversionPattern, enumParams, enumerationValuesPanel,
            enumerationValues, enumerationKeys, encryptedParams, secretKey, cipherAlgorithm, binaryParams,
            mimeType);

    type.getField().add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {

        private static final long serialVersionUID = -1107858522700306810L;

        @Override
        protected void onUpdate(final AjaxRequestTarget target) {
            PlainSchemaDetails.this.showHide(schemaTO, type, conversionParams, conversionPattern, enumParams,
                    enumerationValuesPanel, enumerationValues, enumerationKeys, encryptedParams, secretKey,
                    cipherAlgorithm, binaryParams, mimeType);
            target.add(conversionParams);
            target.add(typeParams);
        }
    });

    IModel<List<String>> validatorsList = new LoadableDetachableModel<List<String>>() {

        private static final long serialVersionUID = 5275935387613157437L;

        @Override
        protected List<String> load() {
            return new ArrayList<>(SyncopeConsoleSession.get().getPlatformInfo().getValidators());
        }
    };
    final AjaxDropDownChoicePanel<String> validatorClass = new AjaxDropDownChoicePanel<>("validatorClass",
            getString("validatorClass"), new PropertyModel<String>(schemaTO, "validatorClass"));
    ((DropDownChoice) validatorClass.getField()).setNullValid(true);
    validatorClass.setChoices(validatorsList.getObject());
    schemaForm.add(validatorClass);

    AutoCompleteTextField<String> mandatoryCondition = new AutoCompleteTextField<String>("mandatoryCondition") {

        private static final long serialVersionUID = -2428903969518079100L;

        @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();
        }
    };
    mandatoryCondition.add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {

        private static final long serialVersionUID = -1107858522700306810L;

        @Override
        protected void onUpdate(final AjaxRequestTarget target) {
        }
    });
    schemaForm.add(mandatoryCondition);

    schemaForm.add(Constants.getJEXLPopover(this, TooltipConfig.Placement.right));

    schemaForm.add(new AjaxCheckBoxPanel("multivalue", getString("multivalue"),
            new PropertyModel<Boolean>(schemaTO, "multivalue")));

    schemaForm.add(new AjaxCheckBoxPanel("readonly", getString("readonly"),
            new PropertyModel<Boolean>(schemaTO, "readonly")));

    schemaForm.add(new AjaxCheckBoxPanel("uniqueConstraint", getString("uniqueConstraint"),
            new PropertyModel<Boolean>(schemaTO, "uniqueConstraint")));

}

From source file:org.apache.syncope.console.pages.SchemaModalPage.java

License:Apache License

@Override
public void setSchemaModalPage(final PageReference pageRef, final ModalWindow window, final SchemaTO schemaTO,
        final boolean createFlag) {

    final SchemaTO schema = schemaTO == null ? new SchemaTO() : schemaTO;

    final Form<SchemaTO> schemaForm = new Form<SchemaTO>(FORM);

    schemaForm.setModel(new CompoundPropertyModel<SchemaTO>(schema));
    schemaForm.setOutputMarkupId(true);/*from  w  w  w. j a  v  a 2s.c o m*/

    final AjaxTextFieldPanel name = new AjaxTextFieldPanel("name", getString("name"),
            new PropertyModel<String>(schema, "name"));
    name.addRequiredLabel();
    name.setEnabled(createFlag);
    schemaForm.add(name);

    final AjaxDropDownChoicePanel<AttributeSchemaType> type = new AjaxDropDownChoicePanel<AttributeSchemaType>(
            "type", getString("type"), new PropertyModel<AttributeSchemaType>(schema, "type"));
    type.setChoices(Arrays.asList(AttributeSchemaType.values()));
    type.addRequiredLabel();
    schemaForm.add(type);

    // -- long, double, date
    final AjaxTextFieldPanel conversionPattern = new AjaxTextFieldPanel("conversionPattern",
            getString("conversionPattern"), new PropertyModel<String>(schema, "conversionPattern"));
    schemaForm.add(conversionPattern);

    final WebMarkupContainer conversionParams = new WebMarkupContainer("conversionParams");
    conversionParams.setOutputMarkupPlaceholderTag(true);
    conversionParams.add(conversionPattern);
    schemaForm.add(conversionParams);

    // -- enum
    final AjaxTextFieldPanel enumerationValuesPanel = new AjaxTextFieldPanel("panel", "enumerationValues",
            new Model<String>(null));
    @SuppressWarnings({ "unchecked", "rawtypes" })
    final MultiFieldPanel<String> enumerationValues = new MultiFieldPanel<String>("enumerationValues",
            new Model(), enumerationValuesPanel);
    enumerationValues.setModelObject(getEnumValuesAsList(schema.getEnumerationValues()));

    @SuppressWarnings({ "unchecked", "rawtypes" })
    final MultiFieldPanel<String> enumerationKeys = new MultiFieldPanel<String>("enumerationKeys", new Model(),
            new AjaxTextFieldPanel("panel", "enumerationKeys", new Model<String>(null)));
    enumerationKeys.setModelObject(getEnumValuesAsList(schema.getEnumerationKeys()));

    final WebMarkupContainer enumParams = new WebMarkupContainer("enumParams");
    enumParams.setOutputMarkupPlaceholderTag(true);
    enumParams.add(enumerationValues);
    enumParams.add(enumerationKeys);
    schemaForm.add(enumParams);

    // -- encrypted
    final AjaxTextFieldPanel secretKey = new AjaxTextFieldPanel("secretKey", getString("secretKey"),
            new PropertyModel<String>(schema, "secretKey"));

    final AjaxDropDownChoicePanel<CipherAlgorithm> cipherAlgorithm = new AjaxDropDownChoicePanel<CipherAlgorithm>(
            "cipherAlgorithm", getString("cipherAlgorithm"),
            new PropertyModel<CipherAlgorithm>(schema, "cipherAlgorithm"));
    cipherAlgorithm.setChoices(Arrays.asList(CipherAlgorithm.values()));

    final WebMarkupContainer encryptedParams = new WebMarkupContainer("encryptedParams");
    encryptedParams.setOutputMarkupPlaceholderTag(true);
    encryptedParams.add(secretKey);
    encryptedParams.add(cipherAlgorithm);
    schemaForm.add(encryptedParams);

    // -- binary
    final AjaxTextFieldPanel mimeType = new AjaxTextFieldPanel("mimeType", getString("mimeType"),
            new PropertyModel<String>(schema, "mimeType"));
    mimeType.setChoices(mimeTypesInitializer.getMimeTypes());

    final WebMarkupContainer binaryParams = new WebMarkupContainer("binaryParams");
    binaryParams.setOutputMarkupPlaceholderTag(true);
    binaryParams.add(mimeType);
    schemaForm.add(binaryParams);

    // -- show or hide
    showHide(schema, type, conversionParams, conversionPattern, enumParams, enumerationValuesPanel,
            enumerationValues, enumerationKeys, encryptedParams, secretKey, cipherAlgorithm, binaryParams,
            mimeType);
    type.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {

        private static final long serialVersionUID = -1107858522700306810L;

        @Override
        protected void onUpdate(final AjaxRequestTarget target) {
            SchemaModalPage.this.showHide(schema, type, conversionParams, conversionPattern, enumParams,
                    enumerationValuesPanel, enumerationValues, enumerationKeys, encryptedParams, secretKey,
                    cipherAlgorithm, binaryParams, mimeType);
            target.add(schemaForm);
        }
    });

    final IModel<List<String>> validatorsList = new LoadableDetachableModel<List<String>>() {

        private static final long serialVersionUID = 5275935387613157437L;

        @Override
        protected List<String> load() {
            return schemaRestClient.getAllValidatorClasses();
        }
    };
    final AjaxDropDownChoicePanel<String> validatorClass = new AjaxDropDownChoicePanel<String>("validatorClass",
            getString("validatorClass"), new PropertyModel<String>(schema, "validatorClass"));
    ((DropDownChoice) validatorClass.getField()).setNullValid(true);
    validatorClass.setChoices(validatorsList.getObject());
    schemaForm.add(validatorClass);

    final AutoCompleteTextField<String> mandatoryCondition = new AutoCompleteTextField<String>(
            "mandatoryCondition") {

        private static final long serialVersionUID = -2428903969518079100L;

        @Override
        protected Iterator<String> getChoices(final String input) {
            List<String> choices = new ArrayList<String>();

            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();
        }
    };
    mandatoryCondition.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {

        private static final long serialVersionUID = -1107858522700306810L;

        @Override
        protected void onUpdate(final AjaxRequestTarget target) {
        }
    });
    schemaForm.add(mandatoryCondition);

    final WebMarkupContainer pwdJexlHelp = JexlHelpUtil.getJexlHelpWebContainer("jexlHelp");

    final AjaxLink<Void> pwdQuestionMarkJexlHelp = JexlHelpUtil.getAjaxLink(pwdJexlHelp,
            "questionMarkJexlHelp");
    schemaForm.add(pwdQuestionMarkJexlHelp);
    pwdQuestionMarkJexlHelp.add(pwdJexlHelp);

    final AjaxCheckBoxPanel multivalue = new AjaxCheckBoxPanel("multivalue", getString("multivalue"),
            new PropertyModel<Boolean>(schema, "multivalue"));
    schemaForm.add(multivalue);

    final AjaxCheckBoxPanel readonly = new AjaxCheckBoxPanel("readonly", getString("readonly"),
            new PropertyModel<Boolean>(schema, "readonly"));
    schemaForm.add(readonly);

    final AjaxCheckBoxPanel uniqueConstraint = new AjaxCheckBoxPanel("uniqueConstraint",
            getString("uniqueConstraint"), new PropertyModel<Boolean>(schema, "uniqueConstraint"));
    schemaForm.add(uniqueConstraint);

    final AjaxButton submit = new IndicatingAjaxButton(APPLY, new ResourceModel(SUBMIT)) {

        private static final long serialVersionUID = -958724007591692537L;

        @Override
        protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
            final SchemaTO schemaTO = (SchemaTO) form.getDefaultModelObject();

            schemaTO.setEnumerationValues(getEnumValuesAsString(enumerationValues.getView().getModelObject()));
            schemaTO.setEnumerationKeys(getEnumValuesAsString(enumerationKeys.getView().getModelObject()));

            if (schemaTO.isMultivalue() && schemaTO.isUniqueConstraint()) {
                error(getString("multivalueAndUniqueConstr.validation"));
                feedbackPanel.refresh(target);
                return;
            }

            try {
                if (createFlag) {
                    schemaRestClient.createSchema(kind, schemaTO);
                } else {
                    schemaRestClient.updateSchema(kind, schemaTO);
                }
                if (pageRef.getPage() instanceof BasePage) {
                    ((BasePage) pageRef.getPage()).setModalResult(true);
                }

                window.close(target);
            } catch (SyncopeClientException e) {
                error(getString(Constants.ERROR) + ": " + e.getMessage());
                feedbackPanel.refresh(target);
            }
        }

        @Override
        protected void onError(final AjaxRequestTarget target, final Form<?> form) {
            feedbackPanel.refresh(target);
        }
    };
    schemaForm.add(submit);

    final AjaxButton cancel = new IndicatingAjaxButton(CANCEL, new ResourceModel(CANCEL)) {

        private static final long serialVersionUID = -958724007591692537L;

        @Override
        protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
            window.close(target);
        }
    };
    cancel.setDefaultFormProcessing(false);
    schemaForm.add(cancel);

    String allowedRoles = createFlag ? xmlRolesReader.getAllAllowedRoles("Schema", "create")
            : xmlRolesReader.getAllAllowedRoles("Schema", "update");

    MetaDataRoleAuthorizationStrategy.authorize(submit, ENABLE, allowedRoles);

    add(schemaForm);
}

From source file:org.openengsb.ui.admin.edb.EdbClient.java

License:Apache License

public EdbClient() {
    Form<Object> form = new Form<Object>("form");
    final DropDownChoice<Class<? extends OpenEngSBModel>> modelSelector = new DropDownChoice<Class<? extends OpenEngSBModel>>(
            "modelSelector", new Model<Class<? extends OpenEngSBModel>>(), new DomainModelListModel());
    modelSelector.add(new AjaxFormComponentUpdatingBehavior("onchange") {
        private static final long serialVersionUID = -1516333824153580148L;

        @Override/*from  www  .  j  a  v a  2 s.c  o m*/
        protected void onUpdate(AjaxRequestTarget target) {
            Class<? extends OpenEngSBModel> convertedInput = modelSelector.getConvertedInput();
            queryModel.getObject().setModel(convertedInput);
            queryField.setEnabled(convertedInput != null);
            target.add(queryField);
        }
    });
    modelSelector.setChoiceRenderer(new IChoiceRenderer<Class<?>>() {
        private static final long serialVersionUID = 805430071751617166L;

        @Override
        public Object getDisplayValue(Class<?> object) {
            return object.getSimpleName();
        }

        @Override
        public String getIdValue(Class<?> object, int index) {
            return object.getSimpleName();
        }

    });
    form.add(modelSelector);
    queryField = new AutoCompleteTextField<String>("query") {
        private static final long serialVersionUID = 5028249986331789802L;

        @Override
        protected Iterator<String> getChoices(final String input) {
            Class<? extends OpenEngSBModel> model = queryModel.getObject().getModel();
            BeanInfo beanInfo;
            try {
                beanInfo = Introspector.getBeanInfo(model);
            } catch (IntrospectionException e) {
                LOGGER.warn("error introspecting {}. Auto-completing won't work." + model);
                List<String> emptyList = Collections.emptyList();
                return emptyList.iterator();
            }
            List<String> allKeys = Lists.transform(Arrays.asList(beanInfo.getPropertyDescriptors()),
                    new Function<PropertyDescriptor, String>() {
                        @Override
                        public String apply(PropertyDescriptor input) {
                            return input.getName() + ":";
                        }
                    });
            if (Strings.isNullOrEmpty(input)) {
                return allKeys.iterator();
            }
            return Iterators.filter(allKeys.iterator(), new Predicate<String>() {
                @Override
                public boolean apply(String item) {
                    return item.contains(input);
                }
            });
        }

    };
    queryField.setEnabled(false);
    queryField.setOutputMarkupId(true);
    queryField.setModel(new PropertyModel<String>(queryModel.getObject(), "query"));
    form.add(queryField);

    form.add(new IndicatingAjaxButton("submit") {
        private static final long serialVersionUID = -5425144434508998591L;

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            EkbQuery query = queryModel.getObject();
            List<? extends OpenEngSBModel> models;
            try {
                models = ekbQueryInterface.queryForModels(query.getModel(), query.getQuery());
                resultModel.setObject(models);
                info(String.format("Found %s results", models.size()));
            } catch (Exception e) {
                error(String.format("Error when querying for models %s (%s)", e.getMessage(),
                        e.getClass().getName()));
            }
            target.add(feedback);
            target.add(resultContainer);
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form) {
        }
    });
    add(form);
    List<? extends OpenEngSBModel> emptyList = Collections.emptyList();
    resultModel = Model.ofList(emptyList);
    resultContainer = new WebMarkupContainer("result");
    resultContainer.setOutputMarkupId(true);
    add(resultContainer);
    resultContainer.add(new ListView<OpenEngSBModel>("list", resultModel) {
        private static final long serialVersionUID = 5459114215962851286L;

        @Override
        protected void populateItem(ListItem<OpenEngSBModel> item) {
            String idProperty = "id";
            Class<? extends OpenEngSBModel> modelClass = queryModel.getObject().getModel();
            for (Field m : modelClass.getDeclaredFields()) {
                if (m.getAnnotation(OpenEngSBModelId.class) != null) {
                    idProperty = m.getName();
                    break;
                }
            }
            AjaxLink<String> historyLink = new AjaxLink<String>("id",
                    new PropertyModel<String>(item.getModelObject(), idProperty)) {
                private static final long serialVersionUID = -6539033599615376277L;

                @Override
                public void onClick(AjaxRequestTarget target) {
                    this.setResponsePage(new EdbHistoryPanel(getModel().getObject()));
                }
            };
            historyLink.add(new Label("text", new PropertyModel<String>(item.getModelObject(), idProperty)));
            item.add(historyLink);
            MultiLineLabel multiLineLabel = new MultiLineLabel("entries",
                    item.getModelObject().toOpenEngSBModelEntries().toString());
            item.add(multiLineLabel);
        }
    });
    feedback = new FeedbackPanel("feedback");
    feedback.setOutputMarkupId(true);
    form.add(feedback);
}

From source file:org.syncope.console.pages.SchemaModalPage.java

License:Apache License

@Override
public void setSchemaModalPage(final PageReference callerPageRef, final ModalWindow window,
        AbstractBaseBean schemaTO, final boolean createFlag) {

    final SchemaTO schema = schemaTO == null ? new SchemaTO() : (SchemaTO) schemaTO;

    final Form schemaForm = new Form("form");

    schemaForm.setModel(new CompoundPropertyModel(schema));
    schemaForm.setOutputMarkupId(Boolean.TRUE);

    final AjaxTextFieldPanel name = new AjaxTextFieldPanel("name", getString("name"),
            new PropertyModel<String>(schema, "name"), true);
    name.addRequiredLabel();//from   w w w .  j  a  v  a 2 s .  c om
    name.setEnabled(createFlag);

    final AjaxTextFieldPanel conversionPattern = new AjaxTextFieldPanel("conversionPattern",
            getString("conversionPattern"), new PropertyModel<String>(schema, "conversionPattern"), true);

    final IModel<List<String>> validatorsList = new LoadableDetachableModel<List<String>>() {

        private static final long serialVersionUID = 5275935387613157437L;

        @Override
        protected List<String> load() {
            return restClient.getAllValidatorClasses();
        }
    };

    final AjaxDropDownChoicePanel<String> validatorClass = new AjaxDropDownChoicePanel<String>("validatorClass",
            getString("validatorClass"), new PropertyModel(schema, "validatorClass"), true);

    ((DropDownChoice) validatorClass.getField()).setNullValid(true);
    validatorClass.setChoices(validatorsList.getObject());

    final AjaxDropDownChoicePanel<SchemaType> type = new AjaxDropDownChoicePanel<SchemaType>("type",
            getString("type"), new PropertyModel(schema, "type"), false);
    type.setChoices(Arrays.asList(SchemaType.values()));
    type.addRequiredLabel();

    final AjaxTextFieldPanel enumerationValues = new AjaxTextFieldPanel("enumerationValues",
            getString("enumerationValues"), new PropertyModel<String>(schema, "enumerationValues"), false);

    if (schema != null && SchemaType.Enum.equals(((SchemaTO) schema).getType())) {
        enumerationValues.addRequiredLabel();
        enumerationValues.setEnabled(Boolean.TRUE);
    } else {
        enumerationValues.removeRequiredLabel();
        enumerationValues.setEnabled(Boolean.FALSE);
    }

    type.getField().add(new AjaxFormComponentUpdatingBehavior("onchange") {

        private static final long serialVersionUID = -1107858522700306810L;

        @Override
        protected void onUpdate(final AjaxRequestTarget target) {
            if (SchemaType.Enum.ordinal() == Integer.parseInt(type.getField().getValue())) {
                enumerationValues.addRequiredLabel();
                enumerationValues.setEnabled(Boolean.TRUE);
                enumerationValues.setModelObject(((SchemaTO) schema).getEnumerationValues());
            } else {
                enumerationValues.removeRequiredLabel();
                enumerationValues.setEnabled(Boolean.FALSE);
                enumerationValues.setModelObject(null);
            }

            target.add(schemaForm);
        }
    });

    final AutoCompleteTextField mandatoryCondition = new AutoCompleteTextField("mandatoryCondition") {

        private static final long serialVersionUID = -2428903969518079100L;

        @Override
        protected Iterator getChoices(String input) {
            List<String> choices = new ArrayList<String>();

            if (Strings.isEmpty(input)) {
                choices = Collections.emptyList();
                return choices.iterator();
            }

            if ("true".startsWith(input.toLowerCase())) {
                choices.add("true");
            } else if ("false".startsWith(input.toLowerCase())) {
                choices.add("false");
            }

            return choices.iterator();
        }
    };

    mandatoryCondition.add(new AjaxFormComponentUpdatingBehavior("onchange") {

        private static final long serialVersionUID = -1107858522700306810L;

        @Override
        protected void onUpdate(AjaxRequestTarget art) {
        }
    });

    final AjaxCheckBoxPanel multivalue = new AjaxCheckBoxPanel("multivalue", getString("multivalue"),
            new PropertyModel<Boolean>(schema, "multivalue"), true);

    final AjaxCheckBoxPanel readonly = new AjaxCheckBoxPanel("readonly", getString("readonly"),
            new PropertyModel<Boolean>(schema, "readonly"), true);

    final AjaxCheckBoxPanel uniqueConstraint = new AjaxCheckBoxPanel("uniqueConstraint",
            getString("uniqueConstraint"), new PropertyModel<Boolean>(schema, "uniqueConstraint"), true);

    final AjaxButton submit = new IndicatingAjaxButton("apply", new ResourceModel("submit")) {

        private static final long serialVersionUID = -958724007591692537L;

        @Override
        protected void onSubmit(final AjaxRequestTarget target, final Form form) {

            SchemaTO schemaTO = (SchemaTO) form.getDefaultModelObject();

            if (schemaTO.isMultivalue() && schemaTO.isUniqueConstraint()) {
                error(getString("multivalueAndUniqueConstr.validation"));
                target.add(feedbackPanel);
                return;
            }

            try {
                if (createFlag) {
                    restClient.createSchema(kind, schemaTO);
                } else {
                    restClient.updateSchema(kind, schemaTO);
                }
                if (callerPageRef.getPage() instanceof BasePage) {
                    ((BasePage) callerPageRef.getPage()).setModalResult(true);
                }

                window.close(target);
            } catch (SyncopeClientCompositeErrorException e) {
                error(getString("error") + ":" + e.getMessage());
                target.add(feedbackPanel);
            }
        }

        @Override
        protected void onError(final AjaxRequestTarget target, final Form form) {

            target.add(feedbackPanel);
        }
    };

    String allowedRoles;

    if (createFlag) {
        allowedRoles = xmlRolesReader.getAllAllowedRoles("Schema", "create");
    } else {
        allowedRoles = xmlRolesReader.getAllAllowedRoles("Schema", "update");
    }

    MetaDataRoleAuthorizationStrategy.authorize(submit, ENABLE, allowedRoles);

    schemaForm.add(name);
    schemaForm.add(conversionPattern);
    schemaForm.add(validatorClass);
    schemaForm.add(type);
    schemaForm.add(enumerationValues);
    schemaForm.add(mandatoryCondition);
    schemaForm.add(multivalue);
    schemaForm.add(readonly);
    schemaForm.add(uniqueConstraint);

    schemaForm.add(submit);

    add(schemaForm);
}