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 Class<T> type,
        final IAutoCompleteRenderer<T> renderer, final AutoCompleteSettings settings) 

Source Link

Document

Constructor for the given model using the given renderer.

Usage

From source file:cz.zcu.kiv.eegdatabase.wui.ui.administration.AdminManagePersonPage.java

License:Apache License

private void addPersonField(final PersonForm form) {

    // added autocomplete textfield for subject
    AutoCompleteSettings settings = prepareAutoCompleteSettings();

    AbstractAutoCompleteTextRenderer<Person> renderer = new AbstractAutoCompleteTextRenderer<Person>() {

        private static final long serialVersionUID = 1L;

        @Override//  w w  w.jav a 2  s . c  o  m
        protected String getTextValue(Person object) {
            return object.getAutoCompleteData();
        }
    };

    final AutoCompleteTextField<Person> personField = new AutoCompleteTextField<Person>("personField",
            new Model<Person>(), Person.class, renderer, settings) {

        private static final long serialVersionUID = 1L;

        @Override
        protected Iterator<Person> getChoices(String input) {
            List<Person> choices;
            List<Person> allChoices = personFacade.getAllRecords();

            if (Strings.isEmpty(input)) {
                choices = allChoices;
            } else {

                choices = new ArrayList<Person>(10);
                for (Person t : allChoices) {
                    if ((t.getAutoCompleteData() != null)
                            && t.getAutoCompleteData().toLowerCase().contains(input.toLowerCase())
                            || t.getAutoCompleteData().toLowerCase().startsWith(input.toLowerCase())) {
                        choices.add(t);
                    }
                }
            }
            Collections.sort(choices);
            return choices.iterator();
        }
    };

    personField.setLabel(ResourceUtils.getModel("label.subjectPerson"));
    personField.add(new AjaxFormComponentUpdatingBehavior("onChange") {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {

            Person person = personField.getModelObject();
            if (person.getPersonId() != 0) {
                form.setModelObject(person);
                form.setVisible(true);
            }

            target.add(getFeedback(), form);
        }
    });
    Form<Void> selectForm = new Form<Void>("selectForm");
    add(selectForm.add(personField));
}

From source file:cz.zcu.kiv.eegdatabase.wui.ui.experiments.forms.wizard.AddExperimentScenarioForm.java

License:Apache License

private void addScenario() {

    // added autocomplete textfield for scenario
    AutoCompleteSettings settings = prepareAutoCompleteSettings();

    AbstractAutoCompleteTextRenderer<Scenario> renderer = new AbstractAutoCompleteTextRenderer<Scenario>() {

        private static final long serialVersionUID = 1L;

        @Override//www  .  j a  v a 2s.c o m
        protected String getTextValue(Scenario object) {
            return object.getTitle();
        }
    };

    final AutoCompleteTextField<Scenario> scenarioField = new AutoCompleteTextField<Scenario>("scenario",
            new PropertyModel<Scenario>(model.getObject(), "scenario"), Scenario.class, renderer, settings) {

        private static final long serialVersionUID = 1L;

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

            List<Scenario> choices;
            List<Scenario> allChoices = scenarioFacade.getAllRecords();
            if (Strings.isEmpty(input)) {
                choices = allChoices;
            } else {
                choices = new ArrayList<Scenario>(10);
                for (Scenario t : allChoices) {
                    if ((t.getTitle() != null) && t.getTitle().toLowerCase().contains(input.toLowerCase())) {
                        choices.add(t);
                    }
                }
            }
            Collections.sort(choices);
            return choices.iterator();
        }
    };

    final FeedbackPanel scenarioFeedback = createFeedbackForComponent(scenarioField, "scenarioFeedback");
    //FIXME:  doenst work on Experiment EDIT form (change scenario) after migration to potgres + blob type
    //       scenarioField.add(new UniqueEntityValidator<Scenario>(scenarioFacade));
    scenarioField.setRequired(true);
    scenarioField.setLabel(ResourceUtils.getModel("label.scenario"));
    add(scenarioField, scenarioFeedback);

    scenarioField.add(new AjaxFormComponentUpdatingBehavior("onBlur") {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            prepareEndTime();
            target.add(finishDate);
        }

    });

}

From source file:cz.zcu.kiv.eegdatabase.wui.ui.experiments.forms.wizard.AddExperimentScenarioForm.java

License:Apache License

private void addTestedSubject() {

    // added autocomplete textfield for subject
    AutoCompleteSettings settings = prepareAutoCompleteSettings();

    AbstractAutoCompleteTextRenderer<Person> renderer = new AbstractAutoCompleteTextRenderer<Person>() {

        private static final long serialVersionUID = 1L;

        @Override/*from   w w w .ja v  a  2s .co  m*/
        protected String getTextValue(Person object) {
            return object.getAutoCompleteData();
        }
    };

    final AutoCompleteTextField<Person> personField = new AutoCompleteTextField<Person>(
            "personBySubjectPersonId", new PropertyModel<Person>(model.getObject(), "personBySubjectPersonId"),
            Person.class, renderer, settings) {

        private static final long serialVersionUID = 1L;

        @Override
        protected Iterator<Person> getChoices(String input) {
            List<Person> choices;
            List<Person> allChoices = personFacade.getAllRecords();

            if (Strings.isEmpty(input)) {
                choices = allChoices;
            } else {

                choices = new ArrayList<Person>(10);
                for (Person t : allChoices) {
                    if ((t.getFullName() != null)
                            && t.getFullName().toLowerCase().contains(input.toLowerCase())) {
                        choices.add(t);
                    }
                }
            }
            Collections.sort(choices);
            return choices.iterator();
        }
    };

    personField.add(new UniqueEntityValidator<Person>(personFacade));
    personField.setRequired(false);
    personField.setLabel(ResourceUtils.getModel("label.subjectPerson"));
    final FeedbackPanel personFeedback = createFeedbackForComponent(personField, "personFeedback");

    add(personField, personFeedback);
}

From source file:cz.zcu.kiv.eegdatabase.wui.ui.experiments.metadata.template.TemplateSharePage.java

License:Apache License

private void setupComponents() {
    int personId = EEGDataBaseSession.get().getLoggedUser().getPersonId();
    List<Template> templatesByPerson = templateFacade.getTemplatesByPerson(personId);
    templateModel = new Model<Template>();
    personModel = new Model<Person>();

    ChoiceRenderer<Template> templateChoiceRenderer = new ChoiceRenderer<Template>("name", "templateId");

    DropDownChoice<Template> templateSelection = new DropDownChoice<Template>("template-choice", templateModel,
            templatesByPerson, templateChoiceRenderer);

    // added autocomplete textfield for person
    AutoCompleteSettings settings = prepareAutoCompleteSettings();

    AbstractAutoCompleteTextRenderer<Person> renderer = new AbstractAutoCompleteTextRenderer<Person>() {

        private static final long serialVersionUID = 1L;

        @Override// w ww.j  av a 2s. c o m
        protected String getTextValue(Person object) {
            return object.getAutoCompleteData();
        }
    };

    final AutoCompleteTextField<Person> personSelection = new AutoCompleteTextField<Person>("person-choice",
            personModel, Person.class, renderer, settings) {

        private static final long serialVersionUID = 1L;

        @Override
        protected Iterator<Person> getChoices(String input) {
            List<Person> choices;
            List<Person> allChoices = personFacade.getAllRecords();

            if (Strings.isEmpty(input)) {
                choices = allChoices;
            } else {

                choices = new ArrayList<Person>(10);
                for (Person t : allChoices) {
                    if ((t.getAutoCompleteData() != null)
                            && t.getAutoCompleteData().toLowerCase().contains(input.toLowerCase())
                            || t.getAutoCompleteData().toLowerCase().startsWith(input.toLowerCase())) {
                        choices.add(t);
                    }
                }
            }
            Collections.sort(choices);
            return choices.iterator();
        }
    };

    personSelection.setLabel(ResourceUtils.getModel("label.subjectPerson"));
    Form<Void> form = new Form<Void>("form");
    add(form);
    form.add(personSelection);
    form.add(templateSelection);
    form.add(new AjaxButton("share-button", new Model<String>("Share")) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {

            Template template = templateModel.getObject();
            Person person = personModel.getObject();

            Template newTemplate = new Template();
            newTemplate.setName(template.getName());
            newTemplate.setPersonByPersonId(person);
            newTemplate.setTemplate(template.getTemplate());

            templateFacade.create(newTemplate);
            templateModel.setObject(null);
            personModel.setObject(null);

            info(ResourceUtils.getString("text.template.shared", template.getName(), person.getUsername()));
            target.add(getFeedback());
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form) {
            target.add(getFeedback());
        }

    });
}

From source file:cz.zcu.kiv.eegdatabase.wui.ui.lists.components.AutocompleteResearchGroupSelecForm.java

License:Apache License

public AutocompleteResearchGroupSelecForm(String id, final IModel<ResearchGroup> model,
        ListModel<ResearchGroup> choices, final MarkupContainer container) {
    super(id);// w  w  w  .j a  va2  s .  co  m
    this.setOutputMarkupPlaceholderTag(true);

    this.choices = choices;

    AutoCompleteSettings settings = prepareAutoCompleteSettings();

    AbstractAutoCompleteTextRenderer<ResearchGroup> renderer = new AbstractAutoCompleteTextRenderer<ResearchGroup>() {

        private static final long serialVersionUID = 1L;

        @Override
        protected String getTextValue(ResearchGroup object) {
            return object.getTitle();
        }
    };

    final AutoCompleteTextField<ResearchGroup> groupField = new AutoCompleteTextField<ResearchGroup>(
            "groupField", new Model<ResearchGroup>(), ResearchGroup.class, renderer, settings) {

        private static final long serialVersionUID = 1L;

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

            List<ResearchGroup> choices;
            List<ResearchGroup> allChoices = AutocompleteResearchGroupSelecForm.this.choices.getObject();

            if (Strings.isEmpty(input)) {
                choices = allChoices;
            } else {

                choices = new ArrayList<ResearchGroup>(10);
                for (ResearchGroup t : allChoices) {
                    if ((t.getTitle() != null) && t.getTitle().toLowerCase().contains(input.toLowerCase())
                            || t.getTitle().toLowerCase().startsWith(input.toLowerCase())) {
                        choices.add(t);
                    }
                }
            }
            Collections.sort(choices);
            return choices.iterator();
        }
    };

    groupField.add(new AjaxFormComponentUpdatingBehavior("onChange") {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {

            ResearchGroup group = groupField.getModelObject();
            model.setObject(group);

            target.add(container);
        }
    });

    add(groupField);
}

From source file:eu.uqasar.web.pages.admin.teams.panels.EditTeamPanel.java

License:Apache License

public EditTeamPanel(final String markupId, final StyledFeedbackPanel feedbackPanel, final Team team) {
    super(markupId);
    this.team = team;
    Form<Team> formEdit = new InputValidationForm<>("form.edit", Model.of(team));
    nameField = new TextField<>("name", new PropertyModel<String>(this.team, "name"));
    InputBorder<String> serverValidationBorder = new InputBorder<>("nameValidationBorder", nameField,
            new StringResourceModel("label.name", this, null));
    formEdit.add(serverValidationBorder);
    add(formEdit);//from www . j  a v a2s.  c  o m

    Form<TeamMembership> formAdd = new InputValidationForm<>("form.add", Model.of(membership));
    AutoCompleteSettings settings = new AutoCompleteSettings().setPreselect(true).setShowListOnFocusGain(true)
            .setShowListOnEmptyInput(true);
    AutoCompleteTextField<User> userComplete = new AutoCompleteTextField<User>("add.userName",
            new PropertyModel(membership, "user"), User.class, getAutocompleteRenderer(), settings) {

        @Override
        protected Iterator<User> getChoices(String input) {
            return getTeamableUsers(input);
        }

        @Override
        public <User> IConverter<User> getConverter(Class<User> type) {
            return (IConverter<User>) getAutocompleteConverter();
        }
    };

    DropDownChoice<Role> userRole = new DropDownChoice<>("add.userRole", new PropertyModel(membership, "role"),
            Arrays.asList(Role.teamAssignableRoles()));
    userRole.setNullValid(false);
    AjaxSubmitLink addMember = new AjaxSubmitLink("add.member", formAdd) {

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

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            TeamMembership membership = (TeamMembership) form.getModelObject();
            EditTeamPanel.this.team.getMembers().add(membership);
            teamMembersList.setModelObject(EditTeamPanel.this.team);
            target.add(teamMembersList);
        }
    };
    addMember.add(
            new Label("button.add.save", new StringResourceModel("button.add.save", this, Model.of(team))));
    formAdd.add(addMember);
    formAdd.add(userRole);
    formAdd.add(userComplete);
    add(formAdd);

    teamMembersList = new InputValidationForm<>("form.list", Model.of(team));
    DataView<TeamMembership> usersView = new DataView<TeamMembership>("members", getMembershipProvider(team)) {
        @Override
        protected void populateItem(Item<TeamMembership> item) {
            final TeamMembership team = item.getModelObject();
            Check<TeamMembership> check = newDeleteCheck(item);
            List<Role> roles = new ArrayList<>(Arrays.asList(Role.teamAssignableRoles()));
            item.add(check);
            item.add(new Label("td.membername", new PropertyModel<>(team.getUser(), "fullName")));
            DropDownChoice<Role> roleSelector = new DropDownChoice<>("td.role",
                    new PropertyModel<Role>(team, "role"), roles);
            roleSelector.setNullValid(false);
            item.add(roleSelector);
            item.setOutputMarkupId(true);
        }
    };
    teamMembersList.add(teamGroup = newCheckGroup());
    final WebMarkupContainer usersContainer = new WebMarkupContainer("membersContainer");
    teamGroup.add(usersContainer.setOutputMarkupId(true));
    CheckGroupSelector checkGroupSelector = new CheckGroupSelector("memberGroupSelector", teamGroup);
    usersContainer.add(checkGroupSelector);
    usersContainer.add(usersView);
    usersContainer.add(deleteSelectedButton = newDeleteSelectedButton(teamGroup));
    deleteSelectedButton.add(new Label("td.members.actions.batch.remove",
            new StringResourceModel("td.members.actions.batch.remove", this, Model.of(team))));
    add(teamMembersList.setOutputMarkupId(true));

    add(new Label("label.add.title", new StringResourceModel("label.add.title", this, Model.of(team))));
    add(new Label("label.list.title", new StringResourceModel("label.list.title", this, Model.of(team))));
}

From source file:ontopoly.components.AssociationFieldAutoCompleteTextField.java

License:Apache License

public AssociationFieldAutoCompleteTextField(String id, IModel<Topic> model,
        final RoleFieldModel valueFieldModel) {
    super(id);//from ww w  .  j  ava  2  s.c om

    AutoCompleteSettings opts = new AutoCompleteSettings();
    opts.setCssClassName("ontopoly-autocompleter");
    opts.setAdjustInputWidth(false);
    opts.setPreselect(true);

    this.textField = new AutoCompleteTextField<Topic>("autoComplete", model, Topic.class,
            new AbstractAutoCompleteRenderer<Topic>() {
                @Override
                protected String getTextValue(Topic o) {
                    return TOPIC_CONVERTER.convertToString(o);
                }

                @Override
                protected void renderChoice(Topic o, Response response, String criteria) {
                    response.write(o.getName());
                }
            }, opts) {

        @Override
        public IConverter getConverter(Class<?> type) {
            if (Topic.class.equals(type)) {
                return new TopicConverter();
            } else {
                return super.getConverter(type);
            }
        }

        @Override
        protected Iterator<Topic> getChoices(String input) {
            List<Topic> result = new ArrayList<Topic>(
                    valueFieldModel.getRoleField().searchAllowedPlayers(input));
            filterPlayers(result);
            Collections.sort(result, TopicComparator.INSTANCE);
            return result.iterator();
        }

        @Override
        protected void onModelChanged() {
            super.onModelChanged();
            Topic topic = getModelObject();
            if (topic != null) {
                AssociationFieldAutoCompleteTextField.this.onTopicSelected(topic);
            }
        }
    };
    add(textField);
}