Search code examples
javaonclickwicketdatefield

Immediately forward to other page after a date is clicked in DateField in Apache Wicket


as in topic - I want to forward to other page after a date is clicked in DateField in Apache Wicket (something like setResponsePage works with buttons).

is there any way to achieve that? Here's my DateField:

    final DateField datePublishDateFrom = new DateField("publishDateFromInput", new Model<Date>(Const.DATE)) {

        @Override
        protected DateTextField newDateTextField(String id, PropertyModel dateFieldModel) {
            return DateTextField.forDatePattern(id, dateFieldModel, "yyyy-MM-dd");
        }
    };

    add(datePublishDateFrom);

Solution

  • Found solution, similar to what @svenmeier suggested. Adding behaviour works just fine

      final DateField datePublishDateFrom = new DateField("publishDateFromInput", new Model<Date>(Const.DATE)) {
    
            @Override
        protected DateTextField newDateTextField(String id, PropertyModel dateFieldModel) {
                     DateTextField dateInput =  DateTextField.forDatePattern(id, dateFieldModel, "yyyy-MM-dd");
                    dateInput.add(createAjax());
                return dateInput;
            }
        };  
    
    
    
    private AjaxFormComponentUpdatingBehavior createAjax() {
        return new AjaxFormComponentUpdatingBehavior("onchange") {
            @Override
            protected void onUpdate(AjaxRequestTarget target) {
                setResponsePage(BasePage.class);
            }
        };
    }