You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by "Hill, Joel (DTMB)" <Hi...@michigan.gov> on 2012/06/21 16:17:34 UTC

FormComponentPanel with default form processing disabled

With a normal FormComponent, you can disable default form processing on a submit button, and still process that component by calling processInput().  This doesn't work with FormComponentPanel, because processInput() doesn't call the processInput() method of child FormComponents, and is final so it cannot be overridden.  The result is that after processing, the FormComponentPanel will always be null.  Is there a proper way of processing FormComponentPanels when default form processing is disabled?

I tried adding the following method to my FormComponentPanel class:

public final void process() {
  visitFormComponentsPostOrder(this, new IVisitor<FormComponent<?>, Void>() {
    @Override
    public void component(FormComponent<?> formComponent, IVisit<Void> visit) {
      formComponent.processInput();
    }
  });
}

Now I can call formComponentPanel.process() in the onSubmit of my Button and it seems to work just fine.   Is there another way of doing this?  If not, should this method, or something similar, be part of the FormComponentPanel class?

Joel