You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Stephane Bailliez <sb...@gmail.com> on 2007/11/23 01:06:18 UTC

validation with disabled parent

Hi gang,


Am I correct in thinking that having a parent component isEnabled() to 
false does not prevent the children validation (1.3.0-rc1 for that matter) ?


I see in Form

public Object formComponent(IFormVisitorParticipant component)
{
     if (component instanceof FormComponent)
     {
         FormComponent formComponent = (FormComponent)component;
         if (formComponent.isVisibleInHierarchy() && 
formComponent.isValid() &&
                 formComponent.isEnabled() && 
formComponent.isEnableAllowed())
         {
             validate(formComponent);
         }
     }

I would have thought at first glance that it did not make any sense to 
traverse the components for validation if the parent is disabled.

side note: (Also for personal knowledge, is there any reason why the 
check for visibility is actually backward for traversal ? validation is 
occurring by traversing the tree top down, so I would have think in 
theory that stopping the traversal would be enough to avoid having each 
component doing a bottom top check in isVisibleInHierarchy(). I suppose 
there is a reason for that (haven't checked yet the formvalidators logic 
to see how components are treated, if they are iterated over I guess 
that can explain while they all need to traverse the parent hierarchy)


I see in the same code that to avoid traversing the children I can make 
use of the method processChildren() to stop the traversal.. that's what 
I did right now, but I'm not sure if this is really the intent or if 
it's just a hack.


(basically I have a component (containing other components) which is 
enabled based on a checkbox input (which enable-show/disable-hide the 
children components through javascript), so I end up testing the water 
with something like:


MyParentComponent my = new MyParentComponent("test") {
     public boolean isEnabled() {
         return radio1.getMarkupId().equals(radiogroup.getInput());
     }
     public boolean processChildren() {
         return isEnabled();
     }
};

That seems a bit 'hacky' and I wonder if the recommended way is not to 
entirely make it wicketable with ajaxable component all around that 
always do server round-trip ?

thanks

-- stephane


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: validation with disabled parent

Posted by Stephane Bailliez <sb...@gmail.com>.
Stephane Bailliez wrote:
> Hi gang,
> 
> 
> Am I correct in thinking that having a parent component isEnabled() to 
> false does not prevent the children validation (1.3.0-rc1 for that 
> matter) ?

ah... I see that
http://www.nabble.com/isEnabledInHierarchy--tf4798745.html

is discussing a very much related thing.

-- stephane


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org