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, final IModel<T> model, final IAutoCompleteRenderer<T> renderer) 

Source Link

Document

Constructor for the given model using the given renderer.

Usage

From source file:com.evolveum.midpoint.web.component.form.multivalue.MultiValueAutoCompleteTextPanel.java

License:Apache License

private void initLayout(final boolean inputEnabled) {
    WebMarkupContainer placeholderContainer = new WebMarkupContainer(ID_PLACEHOLDER_CONTAINER);
    placeholderContainer.setOutputMarkupPlaceholderTag(true);
    placeholderContainer.setOutputMarkupPlaceholderTag(true);
    placeholderContainer.add(new VisibleEnableBehaviour() {

        @Override//from   ww w. j a v  a  2 s.  c  o m
        public boolean isVisible() {
            return getModel().getObject().isEmpty();
        }
    });
    add(placeholderContainer);

    AjaxLink placeholderAdd = new AjaxLink(ID_PLACEHOLDER_ADD) {

        @Override
        public void onClick(AjaxRequestTarget target) {
            addValuePerformed(target);
        }
    };
    placeholderAdd.add(new AttributeAppender("class", new AbstractReadOnlyModel<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) {
            AutoCompleteSettings autoCompleteSettings = new AutoCompleteSettings();
            autoCompleteSettings.setShowListOnEmptyInput(true);
            AutoCompleteTextField<String> autoCompleteEditor = new AutoCompleteTextField<String>(ID_TEXT,
                    createTextModel(item.getModel()), autoCompleteSettings) {

                @Override
                protected Iterator<String> getChoices(String input) {
                    return createAutoCompleteObjectList(input);
                }
            };
            autoCompleteEditor.add(createAutoCompleteValidator());
            autoCompleteEditor.add(new AjaxFormComponentUpdatingBehavior("onchange") {

                @Override
                protected void onUpdate(AjaxRequestTarget target) {
                }
            });
            item.add(autoCompleteEditor);

            autoCompleteEditor.add(AttributeAppender.replace("placeholder", createEmptyItemPlaceholder()));

            if (!inputEnabled) {
                autoCompleteEditor.add(new AttributeModifier("disabled", "disabled"));
            }
            item.add(autoCompleteEditor);

            WebMarkupContainer buttonGroup = new WebMarkupContainer(ID_BUTTON_GROUP);
            item.add(buttonGroup);
            initButtons(buttonGroup, item);
        }
    };
    repeater.setOutputMarkupId(true);
    repeater.setOutputMarkupPlaceholderTag(true);
    repeater.add(new VisibleEnableBehaviour() {

        @Override
        public boolean isVisible() {
            return !getModel().getObject().isEmpty();
        }
    });
    add(repeater);
}

From source file:com.evolveum.midpoint.web.component.input.AutoCompleteTextPanel.java

License:Apache License

public AutoCompleteTextPanel(String id, IModel<T> model, Class clazz) {
    super(id);/*w  ww  .j  a v  a  2  s. com*/

    AutoCompleteSettings autoCompleteSettings = new AutoCompleteSettings();
    autoCompleteSettings.setShowListOnEmptyInput(true);
    final AutoCompleteTextField<T> input = new AutoCompleteTextField<T>(ID_INPUT, model, autoCompleteSettings) {

        @Override
        protected Iterator<T> getChoices(String input) {
            return getIterator(input);
        }
    };
    input.setType(clazz);
    add(input);
}

From source file:com.evolveum.midpoint.web.component.search.TextPopupPanel.java

License:Apache License

private TextField initTextField() {
    IModel data = new PropertyModel(getModel(), SearchValue.F_VALUE);

    if (lookup == null) {
        return new TextField(ID_TEXT_INPUT, data);
    }/*from w  ww.  ja  va2  s.co m*/

    AutoCompleteSettings settings = new AutoCompleteSettings();
    settings.setShowListOnEmptyInput(true);

    return new AutoCompleteTextField(ID_TEXT_INPUT, data, settings) {

        @Override
        protected Iterator getChoices(String input) {
            return prepareAutoCompleteList(input).iterator();
        }
    };
}

From source file:com.evolveum.midpoint.web.page.admin.server.handlers.ResourceRelatedHandlerPanel.java

License:Apache License

private void initLayout() {

    final VisibleEnableBehaviour visibleIfEdit = new VisibleEnableBehaviour() {
        @Override/*from  w  ww . j  a v a 2 s. co m*/
        public boolean isVisible() {
            return parentPage.isEdit();
        }
    };
    final VisibleEnableBehaviour visibleIfView = new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return !parentPage.isEdit();
        }
    };
    final VisibleEnableBehaviour enabledIfEdit = new VisibleEnableBehaviour() {

        @Override
        public boolean isEnabled() {
            return parentPage.isEdit();
        }
    };
    final VisibleEnableBehaviour visibleForResourceCoordinates = new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return getTaskDto().configuresResourceCoordinates();
        }
    };

    final WebMarkupContainer resourceRefContainer = new WebMarkupContainer(ID_RESOURCE_REF_CONTAINER);
    resourceRefContainer.add(visibleForResourceCoordinates);
    resourceRefContainer.setOutputMarkupId(true);
    add(resourceRefContainer);

    final DropDownChoice<TaskAddResourcesDto> resourceRef = new DropDownChoice<>(ID_RESOURCE_REF,
            new PropertyModel<TaskAddResourcesDto>(getModel(), ResourceRelatedHandlerDto.F_RESOURCE_REFERENCE),
            new AbstractReadOnlyModel<List<TaskAddResourcesDto>>() {
                @Override
                public List<TaskAddResourcesDto> getObject() {
                    return createResourceList();
                }
            }, new ChoiceableChoiceRenderer<TaskAddResourcesDto>());
    resourceRef.setOutputMarkupId(true);
    resourceRef.add(enabledIfEdit);
    resourceRef.add(new AjaxFormComponentUpdatingBehavior("change") {

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            Task task = parentPage.createSimpleTask(OPERATION_LOAD_RESOURCE);
            OperationResult result = task.getResult();
            List<QName> objectClassList = new ArrayList<>();

            TaskAddResourcesDto resourcesDto = getModelObject().getResourceRef();

            if (resourcesDto != null) {
                PrismObject<ResourceType> resource = WebModelServiceUtils.loadObject(ResourceType.class,
                        resourcesDto.getOid(), parentPage, task, result);

                try {
                    ResourceSchema schema = RefinedResourceSchema.getResourceSchema(resource,
                            parentPage.getPrismContext());
                    schema.getObjectClassDefinitions();

                    for (Definition def : schema.getDefinitions()) {
                        objectClassList.add(def.getTypeName());
                    }

                    getModelObject().setObjectClassList(objectClassList);
                } catch (Exception e) {
                    LoggingUtils.logUnexpectedException(LOGGER,
                            "Couldn't load object class list from resource.", e);
                    error("Couldn't load object class list from resource.");
                }

            }
            target.add(resourceRefContainer);
        }
    });
    resourceRefContainer.add(resourceRef);

    WebMarkupContainer kindContainer = new WebMarkupContainer(ID_KIND_CONTAINER);
    kindContainer.add(visibleForResourceCoordinates);
    add(kindContainer);

    final DropDownChoice kind = new DropDownChoice<>(ID_KIND,
            new PropertyModel<ShadowKindType>(getModel(), ResourceRelatedHandlerDto.F_KIND),
            WebComponentUtil.createReadonlyModelFromEnum(ShadowKindType.class),
            new EnumChoiceRenderer<ShadowKindType>());
    kind.setOutputMarkupId(true);
    kind.setNullValid(true);
    kindContainer.add(kind);

    WebMarkupContainer intentContainer = new WebMarkupContainer(ID_INTENT_CONTAINER);
    intentContainer.add(visibleForResourceCoordinates);
    add(intentContainer);

    final TextField<String> intent = new TextField<>(ID_INTENT,
            new PropertyModel<String>(getModel(), ResourceRelatedHandlerDto.F_INTENT));
    intentContainer.add(intent);
    intent.setOutputMarkupId(true);
    intent.add(enabledIfEdit);

    WebMarkupContainer objectClassContainer = new WebMarkupContainer(ID_OBJECT_CLASS_CONTAINER);
    objectClassContainer.add(visibleForResourceCoordinates);
    add(objectClassContainer);

    AutoCompleteSettings autoCompleteSettings = new AutoCompleteSettings();
    autoCompleteSettings.setShowListOnEmptyInput(true);
    final AutoCompleteTextField<String> objectClass = new AutoCompleteTextField<String>(ID_OBJECT_CLASS,
            new PropertyModel<String>(getModel(), ResourceRelatedHandlerDto.F_OBJECT_CLASS),
            autoCompleteSettings) {

        @Override
        protected Iterator<String> getChoices(String input) {

            return prepareObjectClassChoiceList(input);
        }
    };
    objectClass.add(enabledIfEdit);
    objectClassContainer.add(objectClass);

    WebMarkupContainer optionsContainer = new WebMarkupContainer(ID_OPTIONS_CONTAINER);
    optionsContainer.add(new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return getTaskDto().configuresDryRun();
        }
    });
    add(optionsContainer);

    WebMarkupContainer dryRunContainer = new WebMarkupContainer(ID_DRY_RUN_CONTAINER);
    dryRunContainer.add(new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return getTaskDto().configuresDryRun();
        }
    });
    optionsContainer.add(dryRunContainer);
    CheckBox dryRun = new CheckBox(ID_DRY_RUN,
            new PropertyModel<Boolean>(getModel(), ResourceRelatedHandlerDto.F_DRY_RUN));
    dryRun.add(enabledIfEdit);
    dryRunContainer.add(dryRun);
}

From source file:io.ucoin.ucoinj.web.pages.home.HomePage.java

License:Open Source License

public HomePage(final PageParameters parameters) {
    super(parameters);
    setUseGlobalFeedback(false);//ww w .  j  a va  2s  .  c  o m

    form = new Form<HomePage>("searchForm");
    form.setOutputMarkupId(true);
    add(form);

    // FeedbackPanel
    final FeedbackPanel feedback = new JQueryFeedbackPanel("feedback");
    feedback.setOutputMarkupId(true);
    form.add(feedback);

    IAutoCompleteRenderer autoCompleteRenderer = new IAutoCompleteRenderer<String>() {
        private static final long serialVersionUID = 1L;

        public void renderHeader(Response response) {
            response.write("<ul>");
        }

        public void render(String choice, Response response, String criteria) {
            response.write("<li textvalue=\"" + choice + "\"");
            response.write(">");

            // Put the substring after the criteria in bold
            if (choice.startsWith(criteria) && choice.length() > criteria.length()) {
                choice = criteria + "<b>" + choice.substring(criteria.length()) + "</b>";
            }

            response.write(choice);
            response.write("</li>");
        }

        public void renderFooter(Response response, int count) {
            response.write("</ul>");
        }
    };

    // Search text
    searchTextField = new AutoCompleteTextField<String>("searchText",
            new PropertyModel<String>(this, "searchQuery"), autoCompleteRenderer) {
        private static final long serialVersionUID = 1L;

        @Override
        protected Iterator<String> getChoices(String input) {
            return doSuggestions(input).iterator();
        }
    };
    searchTextField.add(new AjaxFormComponentUpdatingBehavior("keyup") {
        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            // do search
            searchTextField.updateModel();
        }

        @Override
        protected void onError(AjaxRequestTarget target, RuntimeException e) {
            // Here the Component's model object will remain unchanged,
            // so that it doesn't hold invalid input
        }
    });
    searchTextField.setRequired(true);
    form.add(searchTextField);

    // Submit button
    {
        Button searchButton = new AjaxButton("searchButton") {

            @Override
            protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
                // do search
                doSearch(target, searchQuery);

                // Force to hide autocomplete choices
                target.appendJavaScript("$('div.wicket-aa-container').hide();" + "$('#"
                        + searchTextField.getMarkupId() + "').attr('autocomplete', 'off');");
            }
        };
        searchButton.setDefaultFormProcessing(false);
        searchButton.setOutputMarkupId(true);
        form.add(searchButton);
        form.setDefaultButton(searchButton);
    }

    //form.add(new AjaxFormValidatingBehavior("keyup", Duration.ONE_SECOND));

    // Search result
    {
        // Parent container
        resultParent = new WebMarkupContainer("resultParent");
        resultParent.setOutputMarkupId(true);
        resultParent.setOutputMarkupPlaceholderTag(true);
        resultParent.setVisible(false);
        add(resultParent);

        // History items
        {
            resultListView = new ListView<SearchResult>("resultItems", new ListModel<SearchResult>()) {
                protected void populateItem(ListItem<SearchResult> item) {
                    SearchResult result = item.getModelObject();

                    // link
                    PageParameters pageParameters = new PageParameters();
                    pageParameters.add(CurrencyPage.CURRENCY_PARAMETER, result.getId());
                    BookmarkablePageLink link = new BookmarkablePageLink("openCurrencyLink", CurrencyPage.class,
                            pageParameters);
                    item.add(link);

                    // Currency name
                    Label label = new Label("currencyName", result.getValue());
                    label.setEscapeModelStrings(false);
                    label.setOutputMarkupPlaceholderTag(false);
                    link.add(label);
                }
            };
            resultListView.setReuseItems(true);
            resultListView.setOutputMarkupId(true);
            resultParent.add(resultListView);
        }
    }
}

From source file:org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel.java

License:Apache License

public AjaxTextFieldPanel(final String id, final String name, final IModel<String> model,
        final boolean enableOnChange) {
    super(id, name, model);

    questionMarkJexlHelp = Constants.getJEXLPopover(this, TooltipConfig.Placement.right);
    add(questionMarkJexlHelp.setVisible(false));

    final AutoCompleteSettings settings = new AutoCompleteSettings();
    settings.setShowCompleteListOnFocusGain(true);
    settings.setShowListOnEmptyInput(true);

    field = new AutoCompleteTextField<String>("textField", model, settings) {

        private static final long serialVersionUID = -6648767303091874219L;

        @Override//  www. j  a v  a  2 s . co  m
        protected Iterator<String> getChoices(final String input) {
            return AjaxTextFieldPanel.this.getChoices(input);
        }

        @Override
        protected AutoCompleteBehavior<String> newAutoCompleteBehavior(
                final IAutoCompleteRenderer<String> renderer, final AutoCompleteSettings settings) {
            return new IndicatorAutoCompleteBehavior<String>(renderer, settings) {

                private static final long serialVersionUID = 1070808433195962931L;

                @Override
                protected Iterator<String> getChoices(final String input) {
                    return AjaxTextFieldPanel.this.getChoices(input);
                }
            };
        }
    };
    add(field.setLabel(new ResourceModel(name, name)).setOutputMarkupId(true));

    if (enableOnChange && !isReadOnly()) {
        field.add(new IndicatorAjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {

            private static final long serialVersionUID = -1107858522700306810L;

            @Override
            protected void onUpdate(final AjaxRequestTarget target) {
                // nothing to do
            }
        });
    }
}

From source file:org.apache.syncope.console.wicket.markup.html.form.AjaxTextFieldPanel.java

License:Apache License

public AjaxTextFieldPanel(final String id, final String name, final IModel<String> model) {
    super(id, model);

    final AutoCompleteSettings settings = new AutoCompleteSettings();
    settings.setShowCompleteListOnFocusGain(true);
    settings.setShowListOnEmptyInput(true);

    field = new AutoCompleteTextField<String>("textField", model, settings) {

        private static final long serialVersionUID = -6648767303091874219L;

        @Override/*from  w  w  w  . j  av a2s  .  c o  m*/
        protected Iterator<String> getChoices(final String input) {
            final Pattern pattern = Pattern.compile(".*" + Pattern.quote(input) + ".*",
                    Pattern.CASE_INSENSITIVE);

            final List<String> result = new ArrayList<String>();

            for (String choice : choices) {
                if (pattern.matcher(choice).matches()) {
                    result.add(choice);
                }
            }

            return result.iterator();
        }
    };
    add(field.setLabel(new Model<String>(name)).setOutputMarkupId(true));

    if (!isReadOnly()) {
        field.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {

            private static final long serialVersionUID = -1107858522700306810L;

            @Override
            protected void onUpdate(final AjaxRequestTarget target) {
                // nothing to do
            }
        });
    }
}

From source file:org.geoserver.web.netcdf.GHRSSTExtensionPanel.java

License:Open Source License

AutoCompleteTextField<String> getAutocompleter(String id, IModel<String> model, List<String> choices) {
    AutoCompleteSettings settings = new AutoCompleteSettings();
    settings.setShowCompleteListOnFocusGain(true);
    settings.setShowListOnEmptyInput(true);
    return new AutoCompleteTextField<String>(id, model, settings) {
        @Override/*  ww w  .j  a  v a  2s . c o  m*/
        protected Iterator<String> getChoices(String input) {
            if (input == null || input.trim().length() == 0) {
                return choices.iterator();
            }

            String reference = input.trim().toLowerCase();
            return choices.stream().filter(c -> c.toLowerCase().contains(reference)).iterator();
        }
    };
}

From source file:org.hippoecm.frontend.plugins.console.menu.open.OpenDialog.java

License:Apache License

private AutoCompleteTextField<String> makeValueField(final PropertyModel<String> value) {
    return new AutoCompleteTextField<String>(WICKET_ELEMENT_ID, value, getAutoCompleteSettings()) {
        private static final long serialVersionUID = 1L;

        @Override/* ww  w  .j av  a 2  s .  c  o  m*/
        protected Iterator<String> getChoices(String input) {
            Collection<String> result = new TreeSet<>();
            addMatchingNodes(input, result);
            return result.iterator();
        }

        @Override
        public void renderHead(final IHeaderResponse response) {
            super.renderHead(response);
            String script = "document.getElementById('" + getMarkupId() + "').focus(); "
                    + "document.getElementById('" + getMarkupId() + "').select();";
            response.render(OnDomReadyHeaderItem.forScript(script));
            response.render(CssHeaderItem.forReference(new CssResourceReference(
                    DefaultCssAutoCompleteTextField.class, "DefaultCssAutoCompleteTextField.css")));
        }
    };
}