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

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

Introduction

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

Prototype

public AutoCompleteBehavior(final IAutoCompleteRenderer<T> renderer) 

Source Link

Document

Constructor

Usage

From source file:de.codepitbull.behavior.HomePage.java

License:Apache License

public HomePage(final PageParameters parameters) {
    final List<String> choices = new ArrayList<String>();
    final IModel<String> input = Model.of("");
    add(new Label("roundtrips", new PropertyModel<Integer>(this, "roundtrips"))
            .add(new AjaxSelfUpdatingTimerBehavior(Duration.ONE_SECOND) {
                @Override/*  w  ww .j  av  a  2 s . c om*/
                protected void onPostProcessTarget(AjaxRequestTarget target) {
                    roundtrips++;
                }
            }));
    add(new Form("inputForm") {
        @Override
        protected void onSubmit() {
            super.onSubmit();
            choices.add(input.getObject());
        }
    }.add(new TextField<String>("autocomplete", input)
            .add(new AutoCompleteBehavior<Object>(new StringAutoCompleteRenderer()) {
                @Override
                protected Iterator<Object> getChoices(String input) {
                    List<Object> ret = new ArrayList<Object>();
                    for (String choice : choices) {
                        if (choice.startsWith(input)) {
                            ret.add(choice);
                        }
                    }
                    return ret.iterator();
                }
            })));
}

From source file:de.codepitbull.events.HomePage.java

License:Apache License

public HomePage(final PageParameters parameters) {
    final IModel<String> input = Model.of("");

    add(new Label("inhalt", new PropertyModel<Integer>(choices, "size")) {
        @Override/* www.  j a  v  a 2s .  co  m*/
        public void onEvent(IEvent<?> event) {
            //Verwendung des Ajax-Default-Events zum Updaten
            if (event.getPayload() instanceof AjaxRequestTarget) {
                ((AjaxRequestTarget) event.getPayload()).add(this);
            }
        }
    }.setOutputMarkupId(true));
    add(new Form("inputForm") {
        @Override
        protected void onSubmit() {
            super.onSubmit();
            //Neuese Element hinzufgen
            choices.add(input.getObject());
        }
    }.add(new TextField<String>("autocomplete", input)
            .add(new AutoCompleteBehavior<Object>(new StringAutoCompleteRenderer()) {
                @Override
                protected Iterator<Object> getChoices(String input) {
                    List<Object> ret = new ArrayList<Object>();
                    for (String choice : choices) {
                        if (choice.startsWith(input)) {
                            ret.add(choice);
                        }
                    }
                    return ret.iterator();
                }
            })));
    add(new ResetEventLink("resetLink"));
}

From source file:hsa.awp.admingui.edit.event.tabs.TabGeneral.java

License:Open Source License

/**
 * Constructor for tab.//from   w w w  .ja v  a  2 s.c  om
 *
 * @param id         wicket id
 * @param evt        event which is edited oder created.
 * @param eventPanel panel to update the details of the EventPanel.
 */
public TabGeneral(String id, Event evt, final EventPanel eventPanel) {

    super(id);

    this.event = evt;

    Form<Event> form = new Form<Event>("event.tabGeneral.form");
    add(form);

    feedbackPanel = new FeedbackPanel("event.tabGeneral.feedbackPanel");
    feedbackPanel.setOutputMarkupId(true);
    form.add(feedbackPanel);

    eventIdField = new TextField<Integer>("event.tabGeneral.eventId", new Model<Integer>(event.getEventId()),
            Integer.class);
    form.add(eventIdField);
    eventIdField.add(new IValidator<Integer>() {

        /**
         * unique serialization id.
         */
        private static final long serialVersionUID = 5605293764293745302L;

        @Override
        public void validate(IValidatable<Integer> validatable) {

            Integer val = validatable.getValue();

            if (val < 1) {
                validatable.error(new IValidationError() {

                    @Override
                    public String getErrorMessage(IErrorMessageSource messageSource) {

                        return "Veranstaltungsnummer muss grer 0 sein.";
                    }
                });
            } else if (val > 9999) {

                validatable.error(new IValidationError() {

                    @Override
                    public String getErrorMessage(IErrorMessageSource messageSource) {

                        return "Veranstaltungsnummer muss kleiner 10000 sein.";
                    }
                });
            }

        }

    });

    eventIdField.add(new MinimumValidator<Integer>(1));

    maxParticipantsField = new TextField<Integer>("event.tabGeneral.maxParticipants",
            new Model<Integer>(event.getMaxParticipants()), Integer.class);
    form.add(maxParticipantsField);
    maxParticipantsField.add(new MinimumValidator<Integer>(1));

    termChoice = new DropDownChoice<Term>("event.tabGeneral.term", new Model<Term>(event.getTerm()),
            controller.getTermsByMandator(getSession()), new ChoiceRenderer<Term>());
    form.add(termChoice);

    detailInfoField = new TextField<String>("event.tabGeneral.informationDetail",
            new Model<String>(event.getDetailInformation()));
    detailInfoField.setRequired(true);
    form.add(detailInfoField);

    String subjectName = "";
    if (event.getSubject() != null) {
        subjectName = event.getSubject().getName();
    }

    subjectField = new TextField<String>("event.tabGeneral.subject", new Model<String>(subjectName));
    form.add(subjectField);
    subjectField.add(new AutoCompleteBehavior<String>(new AbstractAutoCompleteRenderer<String>() {

        /**
         * generated UID.
         */
        private static final long serialVersionUID = 5609814253082290571L;

        @Override
        protected String getTextValue(String sub) {

            return sub;
        }

        @Override
        protected void renderChoice(String sub, Response response, String criteria) {

            response.write(getTextValue(sub));
        }
    }) {

        /**
         * generated serialization id.
         */
        private static final long serialVersionUID = 1220805798637698821L;

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

            input = input.toLowerCase();
            List<String> names = new LinkedList<String>();
            for (Subject subject : controller.getSubjectsByMandator(getSession())) {
                if (subject.getName().toLowerCase().startsWith(input)) {
                    names.add(subject.getName());
                }
            }
            Collections.sort(names);

            return names.iterator();
        }
    });

    form.add(new AjaxButton("event.tabGeneral.submit") {

        /**
         * generated serialization id.
         */
        private static final long serialVersionUID = -6537464906539587006L;

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

            target.addComponent(feedbackPanel);
        }

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

            int eventId = eventIdField.getModelObject();
            Subject subject = controller.getSubjectByNameAndMandator(subjectField.getModelObject(),
                    getSession());

            // TODO Sprache:
            // TODO basti refactoring
            if (subject == null) {
                feedbackPanel.error("Kein gltiges Fach angegeben");
            } else {
                boolean isNew = event.getId() == 0L;

                event.setEventId(eventId);
                event.setMaxParticipants(new Integer(maxParticipantsField.getModelObject()));
                event.setSubject(subject);
                event.setTerm(termChoice.getModelObject());
                event.setDetailInformation(
                        detailInfoField.getModelObject() == null ? "" : detailInfoField.getModelObject());

                event = controller.writeEvent(event);

                if (isNew) {
                    setResponsePage(new OnePanelPage(new EventPanel(OnePanelPage.getPanelIdOne(), event)));
                } else {
                    feedbackPanel.info("Eingaben bernommen");
                }
                eventPanel.updateEventDetails(target);
            }

            target.addComponent(form);
            target.addComponent(feedbackPanel);
        }

    });
}

From source file:hsa.awp.admingui.rule.rules.StudyCourseAndTermRulePanel.java

License:Open Source License

/**
 * Creates a new {@link StudyCourseAndTermRule}.
 *
 * @param id   wicket-id.//ww  w .  java  2s.c om
 * @param rule rule to edit.
 */
public StudyCourseAndTermRulePanel(String id, final StudyCourseAndTermRule rule) {

    super(id, rule);

    studyCourse = new TextField<String>("rule.studyCourse", new Model<String>(""));
    form.add(studyCourse);
    studyCourse.setRequired(true);
    studyCourse.add(new AutoCompleteBehavior<String>(new AbstractAutoCompleteRenderer<String>() {

        /**
         * unique serialization id.
         */
        private static final long serialVersionUID = 2464228194248252417L;

        @Override
        protected String getTextValue(String object) {

            return object;
        }

        @Override
        protected void renderChoice(String object, Response response, String criteria) {

            response.write(getTextValue(object));

        }
    }) {

        /**
         * unique serialization id.
         */
        private static final long serialVersionUID = 338482863240127475L;

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

            input = input.toLowerCase();
            List<String> choices = new LinkedList<String>();

            for (StudyCourse studyCourse : controller.getAllStudyCourses()) {
                String name = studyCourse.getName().toLowerCase();
                if (name.startsWith(input)) {
                    choices.add(studyCourse.getName());
                }
            }

            return choices.iterator();
        }
    });

    studyCourse.add(new StudyCourseValidator());

    minTerm = new TextField<Integer>("rule.minTerm", new Model<Integer>(1), Integer.class);
    minTerm.add(new MinTermValidator(0));
    minTerm.setRequired(true);
    form.add(minTerm);

}