Example usage for org.apache.wicket.markup.html.form Form getDefaultModel

List of usage examples for org.apache.wicket.markup.html.form Form getDefaultModel

Introduction

In this page you can find the example usage for org.apache.wicket.markup.html.form Form getDefaultModel.

Prototype

public final IModel<?> getDefaultModel() 

Source Link

Document

Gets the model.

Usage

From source file:by.parfen.disptaxi.webapp.etc.AutoComplitePage.java

License:Apache License

/**
 * Constructor./*from ww  w.java 2 s .  c  om*/
 */
public AutoComplitePage() {
    Injector.get().inject(this);

    sampleEvent = new SampleEvent();
    // selectedCity = cityService.get(15L);
    sampleEvent.setCityById(60L);
    streetsList = sampleEvent.getStreets();
    // pointsList = sampleEvent.getPointsList();

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

    Form<Void> form = new Form<Void>("form");
    add(form);

    final AutoCompleteTextField<String> field = new AutoCompleteTextField<String>("acStreet",
            new Model<String>("")) {
        @Override
        protected Iterator<String> getChoices(String input) {
            if (Strings.isEmpty(input)) {
                List<String> emptyList = Collections.emptyList();
                return emptyList.iterator();
            }

            List<String> choices = new ArrayList<String>(MAX_AUTO_COMPLETE_ELEMENTS);

            for (final Street streetItem : streetsList) {
                final String streetName = streetItem.getName();

                if (streetName.toUpperCase().startsWith(input.toUpperCase())) {
                    choices.add(streetName);
                    if (choices.size() == MAX_AUTO_COMPLETE_ELEMENTS) {
                        break;
                    }
                }
            }

            return choices.iterator();
        }
    };

    final AutoCompleteTextField<String> fieldPoint = new AutoCompleteTextField<String>("acPoint",
            new Model<String>("")) {
        @Override
        protected Iterator<String> getChoices(String input) {
            if (Strings.isEmpty(input)) {
                List<String> emptyList = Collections.emptyList();
                return emptyList.iterator();
            }

            List<String> choices = new ArrayList<String>(MAX_AUTO_COMPLETE_ELEMENTS);

            for (final Point pointItem : sampleEvent.getPointsList()) {
                final String pointName = pointItem.getName();

                if (pointName.toUpperCase().startsWith(input.toUpperCase())) {
                    choices.add(pointName);
                    if (choices.size() == MAX_AUTO_COMPLETE_ELEMENTS) {
                        break;
                    }
                }
            }

            return choices.iterator();
        }
    };

    final ItemPanel itemPanel = new ItemPanel("itemPanel");
    add(itemPanel);

    add(new Link<Void>("linkItemInfo") {

        @Override
        public void onClick() {
            info("onSubmit");
            info(itemPanel.getItemInfo());
        }

    });

    final Label label = new Label("label", form.getDefaultModel()) {

        @Override
        public void onEvent(IEvent<?> event) {
            Object payload = event.getPayload();
            if (payload instanceof SampleEvent) {
                SampleEvent sampelEvent = (SampleEvent) payload;
                setDefaultModel(Model
                        .of(sampelEvent.getSelectedStreetName() + ", " + sampelEvent.getSelectedPointName()));
                sampelEvent.getTarget().add(this);
            }
        }

    };

    label.setOutputMarkupId(true);
    add(label);

    form.add(field);
    form.add(fieldPoint);

    field.add(new AjaxFormSubmitBehavior(form, "onchange") {
        @Override
        protected void onSubmit(AjaxRequestTarget target) {
            sampleEvent.setTarget(target);
            sampleEvent.setSelectedStreetName(field.getDefaultModelObjectAsString());
            sampleEvent.setSelectedPointName("");
            send(getPage(), Broadcast.BREADTH, sampleEvent);
        }

        @Override
        protected void onError(AjaxRequestTarget target) {
        }
    });

    fieldPoint.add(new AjaxFormSubmitBehavior(form, "onchange") {
        @Override
        protected void onSubmit(AjaxRequestTarget target) {
            sampleEvent.setTarget(target);
            sampleEvent.setSelectedPointName(fieldPoint.getDefaultModelObjectAsString());
            send(getPage(), Broadcast.BREADTH, sampleEvent);
        }

        @Override
        protected void onError(AjaxRequestTarget target) {
        }
    });
}