Search in sources :

Example 46 with TextField

use of org.apache.wicket.markup.html.form.TextField in project midpoint by Evolveum.

the class TextFormGroup method initLayout.

private void initLayout(IModel<String> label, final String tooltipKey, String labelCssClass, String textCssClass, final boolean required, final boolean markAsRequired, boolean isSimilarAsPropertyPanel) {
    WebMarkupContainer labelContainer = new WebMarkupContainer(ID_LABEL_CONTAINER);
    add(labelContainer);
    Label l = new Label(ID_LABEL, label);
    if (StringUtils.isNotEmpty(labelCssClass)) {
        labelContainer.add(AttributeAppender.prepend("class", labelCssClass));
    }
    if (isSimilarAsPropertyPanel) {
        labelContainer.add(AttributeAppender.prepend("class", " col-xs-2 prism-property-label "));
    } else {
        labelContainer.add(AttributeAppender.prepend("class", " control-label "));
    }
    labelContainer.add(l);
    Label tooltipLabel = new Label(ID_TOOLTIP, new Model<>());
    tooltipLabel.add(new AttributeAppender("data-original-title", new IModel<String>() {

        @Override
        public String getObject() {
            return getString(tooltipKey);
        }
    }));
    tooltipLabel.add(new InfoTooltipBehavior());
    tooltipLabel.add(new VisibleEnableBehaviour() {

        @Override
        public boolean isVisible() {
            return tooltipKey != null;
        }
    });
    tooltipLabel.setOutputMarkupId(true);
    tooltipLabel.setOutputMarkupPlaceholderTag(true);
    labelContainer.add(tooltipLabel);
    WebMarkupContainer requiredContainer = new WebMarkupContainer(ID_REQUIRED);
    requiredContainer.add(new VisibleEnableBehaviour() {

        @Override
        public boolean isVisible() {
            return markAsRequired;
        }
    });
    labelContainer.add(requiredContainer);
    WebMarkupContainer propertyLabel = new WebMarkupContainer(ID_PROPERTY_LABEL);
    WebMarkupContainer rowLabel = new WebMarkupContainer(ID_ROW);
    WebMarkupContainer textWrapper = new WebMarkupContainer(ID_TEXT_WRAPPER);
    if (StringUtils.isNotEmpty(textCssClass)) {
        textWrapper.add(AttributeAppender.prepend("class", textCssClass));
    }
    if (isSimilarAsPropertyPanel) {
        propertyLabel.add(AttributeAppender.prepend("class", " col-md-10 prism-property-value "));
        rowLabel.add(AttributeAppender.prepend("class", " row "));
    }
    propertyLabel.add(rowLabel);
    rowLabel.add(textWrapper);
    add(propertyLabel);
    TextField text = createText(getModel(), label, required);
    text.setLabel(label);
    textWrapper.add(text);
    FeedbackPanel feedback = new FeedbackPanel(ID_FEEDBACK, new ContainerFeedbackMessageFilter(this));
    feedback.setOutputMarkupId(true);
    textWrapper.add(feedback);
}
Also used : InfoTooltipBehavior(com.evolveum.midpoint.web.util.InfoTooltipBehavior) IModel(org.apache.wicket.model.IModel) FeedbackPanel(org.apache.wicket.markup.html.panel.FeedbackPanel) Label(org.apache.wicket.markup.html.basic.Label) TextField(org.apache.wicket.markup.html.form.TextField) VisibleEnableBehaviour(com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour) ContainerFeedbackMessageFilter(org.apache.wicket.feedback.ContainerFeedbackMessageFilter) WebMarkupContainer(org.apache.wicket.markup.html.WebMarkupContainer) AttributeAppender(org.apache.wicket.behavior.AttributeAppender)

Example 47 with TextField

use of org.apache.wicket.markup.html.form.TextField in project midpoint by Evolveum.

the class MultiValueChoosePanel method initLayout.

private void initLayout(final IModel<List<T>> chosenValues, final List<PrismReferenceValue> filterValues, final boolean required, final boolean multiselect) {
    AjaxLink<String> addButton = new AjaxLink<String>(ID_ADD_BUTTON) {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            editValuePerformed(chosenValues.getObject(), filterValues, target, multiselect);
        }
    };
    addButton.setOutputMarkupPlaceholderTag(true);
    add(addButton);
    ListView<T> selectedRowsList = new ListView<T>(ID_SELECTED_ROWS, chosenValues) {

        @Override
        protected void populateItem(ListItem<T> item) {
            WebMarkupContainer textWrapper = new WebMarkupContainer(ID_TEXT_WRAPPER);
            textWrapper.setOutputMarkupPlaceholderTag(true);
            // was value
            TextField<String> text = new TextField<>(ID_TEXT, createTextModel(item.getModel()));
            text.add(new AjaxFormComponentUpdatingBehavior("blur") {

                private static final long serialVersionUID = 1L;

                @Override
                protected void onUpdate(AjaxRequestTarget ajaxRequestTarget) {
                }
            });
            text.setRequired(required);
            text.setEnabled(false);
            text.setOutputMarkupPlaceholderTag(true);
            textWrapper.add(text);
            FeedbackPanel feedback = new FeedbackPanel(ID_FEEDBACK, new ComponentFeedbackMessageFilter(text));
            feedback.setOutputMarkupPlaceholderTag(true);
            textWrapper.add(feedback);
            initButtons(item, item);
            item.add(textWrapper);
        }
    };
    selectedRowsList.setReuseItems(true);
    add(selectedRowsList);
}
Also used : AjaxFormComponentUpdatingBehavior(org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior) PolyString(com.evolveum.midpoint.prism.polystring.PolyString) WebMarkupContainer(org.apache.wicket.markup.html.WebMarkupContainer) AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) ComponentFeedbackMessageFilter(org.apache.wicket.feedback.ComponentFeedbackMessageFilter) FeedbackPanel(org.apache.wicket.markup.html.panel.FeedbackPanel) ListView(org.apache.wicket.markup.html.list.ListView) TextField(org.apache.wicket.markup.html.form.TextField) ListItem(org.apache.wicket.markup.html.list.ListItem) AjaxLink(org.apache.wicket.ajax.markup.html.AjaxLink)

Example 48 with TextField

use of org.apache.wicket.markup.html.form.TextField in project midpoint by Evolveum.

the class MultiValueTextPanel method initLayout.

private void initLayout(final NonEmptyModel<Boolean> readOnlyModel, final boolean emptyStringToNull) {
    WebMarkupContainer placeholderContainer = new WebMarkupContainer(ID_PLACEHOLDER_CONTAINER);
    placeholderContainer.setOutputMarkupPlaceholderTag(true);
    placeholderContainer.setOutputMarkupPlaceholderTag(true);
    placeholderContainer.add(new VisibleEnableBehaviour() {

        @Override
        public boolean isVisible() {
            return getModel().getObject().isEmpty();
        }
    });
    add(placeholderContainer);
    AjaxLink<Void> placeholderAdd = new AjaxLink<Void>(ID_PLACEHOLDER_ADD) {

        @Override
        public void onClick(AjaxRequestTarget target) {
            addValuePerformed(target);
        }
    };
    placeholderAdd.add(WebComponentUtil.visibleIfFalse(readOnlyModel));
    placeholderAdd.add(new AttributeAppender("class", new IModel<String>() {

        @Override
        public String getObject() {
            if (buttonsDisabled()) {
                return " " + CSS_DISABLED;
            }
            return "";
        }
    }));
    placeholderAdd.setOutputMarkupId(true);
    placeholderAdd.setOutputMarkupPlaceholderTag(true);
    placeholderContainer.add(placeholderAdd);
    ListView repeater = new ListView<T>(ID_REPEATER, getModel()) {

        @Override
        protected void populateItem(final ListItem<T> item) {
            TextField text = new TextField<>(ID_TEXT, createTextModel(item.getModel()));
            text.add(new AjaxFormComponentUpdatingBehavior("blur") {

                @Override
                protected void onUpdate(AjaxRequestTarget target) {
                    T updatedValue = (T) text.getConvertedInput();
                    List<T> modelObject = MultiValueTextPanel.this.getModelObject();
                    modelObject.set(item.getIndex(), updatedValue);
                    modelObjectUpdatePerformed(target, modelObject);
                }
            });
            text.add(AttributeAppender.replace("placeholder", createEmptyItemPlaceholder()));
            text.add(WebComponentUtil.enabledIfFalse(readOnlyModel));
            text.setConvertEmptyInputStringToNull(emptyStringToNull);
            item.add(text);
            WebMarkupContainer buttonGroup = new WebMarkupContainer(ID_BUTTON_GROUP);
            item.add(buttonGroup);
            initButtons(buttonGroup, item, readOnlyModel);
        }
    };
    repeater.setOutputMarkupId(true);
    repeater.setOutputMarkupPlaceholderTag(true);
    repeater.add(new VisibleEnableBehaviour() {

        @Override
        public boolean isVisible() {
            return !getModel().getObject().isEmpty();
        }
    });
    add(repeater);
}
Also used : AjaxFormComponentUpdatingBehavior(org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior) IModel(org.apache.wicket.model.IModel) WebMarkupContainer(org.apache.wicket.markup.html.WebMarkupContainer) AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) ListView(org.apache.wicket.markup.html.list.ListView) TextField(org.apache.wicket.markup.html.form.TextField) ArrayList(java.util.ArrayList) List(java.util.List) VisibleEnableBehaviour(com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour) ListItem(org.apache.wicket.markup.html.list.ListItem) AjaxLink(org.apache.wicket.ajax.markup.html.AjaxLink) AttributeAppender(org.apache.wicket.behavior.AttributeAppender)

Example 49 with TextField

use of org.apache.wicket.markup.html.form.TextField in project midpoint by Evolveum.

the class QNameEditorPanel method initLayout.

private void initLayout(String localPartTooltipKey, String namespaceTooltipKey, boolean markLocalPartAsRequired, boolean markNamespaceAsRequired) {
    Label localPartLabel = new Label(ID_LOCAL_PART_LABEL, getString("SchemaHandlingStep.association.label.associationName"));
    localPartLabel.setOutputMarkupId(true);
    localPartLabel.setOutputMarkupPlaceholderTag(true);
    localPartLabel.add(getSpecificLabelStyleAppender());
    add(localPartLabel);
    WebMarkupContainer localPartRequired = new WebMarkupContainer(ID_LOCAL_PART_REQUIRED);
    localPartRequired.add(new VisibleEnableBehaviour() {

        private static final long serialVersionUID = 1L;

        @Override
        public boolean isVisible() {
            return markLocalPartAsRequired;
        }
    });
    add(localPartRequired);
    Label namespaceLabel = new Label(ID_NAMESPACE_LABEL, getString("SchemaHandlingStep.association.label.associationNamespace"));
    namespaceLabel.setOutputMarkupId(true);
    namespaceLabel.setOutputMarkupPlaceholderTag(true);
    namespaceLabel.add(getSpecificLabelStyleAppender());
    add(namespaceLabel);
    WebMarkupContainer namespaceRequired = new WebMarkupContainer(ID_NAMESPACE_REQUIRED);
    namespaceRequired.add(new VisibleEnableBehaviour() {

        private static final long serialVersionUID = 1L;

        @Override
        public boolean isVisible() {
            return markNamespaceAsRequired;
        }
    });
    add(namespaceRequired);
    TextField<?> localPart = new TextField<>(ID_LOCAL_PART, localPartModel);
    localPart.setOutputMarkupId(true);
    localPart.setOutputMarkupPlaceholderTag(true);
    localPart.setRequired(isLocalPartRequired());
    localPart.add(new UpdateBehavior());
    add(localPart);
    DropDownChoice<?> namespace = new DropDownChoice<>(ID_NAMESPACE, namespaceModel, prepareNamespaceList());
    namespace.setOutputMarkupId(true);
    namespace.setOutputMarkupPlaceholderTag(true);
    namespace.setNullValid(false);
    namespace.setRequired(isNamespaceRequired());
    namespace.add(new UpdateBehavior());
    add(namespace);
    Label localPartTooltip = new Label(ID_T_LOCAL_PART);
    localPartTooltip.add(new AttributeAppender("data-original-title", getString(localPartTooltipKey)));
    localPartTooltip.add(new InfoTooltipBehavior());
    localPartTooltip.setOutputMarkupPlaceholderTag(true);
    localPartTooltip.add(new VisibleEnableBehaviour() {

        private static final long serialVersionUID = 1L;

        @Override
        public boolean isVisible() {
            return localPartTooltipKey != null;
        }
    });
    add(localPartTooltip);
    Label namespaceTooltip = new Label(ID_T_NAMESPACE);
    namespaceTooltip.add(new AttributeAppender("data-original-title", getString(namespaceTooltipKey)));
    namespaceTooltip.add(new VisibleEnableBehaviour() {

        private static final long serialVersionUID = 1L;

        @Override
        public boolean isVisible() {
            return namespaceTooltipKey != null;
        }
    });
    namespaceTooltip.add(new InfoTooltipBehavior());
    namespaceTooltip.setOutputMarkupPlaceholderTag(true);
    add(namespaceTooltip);
}
Also used : InfoTooltipBehavior(com.evolveum.midpoint.web.util.InfoTooltipBehavior) DropDownChoice(org.apache.wicket.markup.html.form.DropDownChoice) Label(org.apache.wicket.markup.html.basic.Label) TextField(org.apache.wicket.markup.html.form.TextField) VisibleEnableBehaviour(com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour) WebMarkupContainer(org.apache.wicket.markup.html.WebMarkupContainer) AttributeAppender(org.apache.wicket.behavior.AttributeAppender)

Example 50 with TextField

use of org.apache.wicket.markup.html.form.TextField in project midpoint by Evolveum.

the class MyPasswordQuestionsPanel method initLayout.

public void initLayout(IModel<SecurityQuestionAnswerDTO> model) {
    final Label question = new Label(ID_QUESTION, new PropertyModel<String>(model, SecurityQuestionAnswerDTO.F_PASSWORD_QUESTION_ITSELF));
    question.setOutputMarkupId(true);
    add(question);
    final TextField<String> answer = new TextField<String>(ID_ANSWER, new PropertyModel(model, SecurityQuestionAnswerDTO.F_PASSWORD_QUESTION_ANSWER));
    answer.setOutputMarkupId(true);
    add(answer);
}
Also used : Label(org.apache.wicket.markup.html.basic.Label) PropertyModel(org.apache.wicket.model.PropertyModel) TextField(org.apache.wicket.markup.html.form.TextField)

Aggregations

TextField (org.apache.wicket.markup.html.form.TextField)61 AjaxRequestTarget (org.apache.wicket.ajax.AjaxRequestTarget)37 WebMarkupContainer (org.apache.wicket.markup.html.WebMarkupContainer)30 Label (org.apache.wicket.markup.html.basic.Label)25 VisibleEnableBehaviour (com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour)20 AjaxFormComponentUpdatingBehavior (org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior)20 AjaxLink (org.apache.wicket.ajax.markup.html.AjaxLink)18 ListItem (org.apache.wicket.markup.html.list.ListItem)15 ListView (org.apache.wicket.markup.html.list.ListView)15 IModel (org.apache.wicket.model.IModel)14 ArrayList (java.util.ArrayList)13 PropertyModel (org.apache.wicket.model.PropertyModel)13 ComponentFeedbackMessageFilter (org.apache.wicket.feedback.ComponentFeedbackMessageFilter)11 DropDownChoice (org.apache.wicket.markup.html.form.DropDownChoice)11 FeedbackPanel (org.apache.wicket.markup.html.panel.FeedbackPanel)11 List (java.util.List)10 CheckBox (org.apache.wicket.markup.html.form.CheckBox)10 InfoTooltipBehavior (com.evolveum.midpoint.web.util.InfoTooltipBehavior)9 Form (org.apache.wicket.markup.html.form.Form)9 EmptyOnBlurAjaxFormUpdatingBehaviour (com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnBlurAjaxFormUpdatingBehaviour)6