List of usage examples for org.apache.wicket.extensions.ajax.markup.html.autocomplete AutoCompleteBehavior AutoCompleteBehavior
public AutoCompleteBehavior(final IAutoCompleteRenderer<T> renderer)
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); }