You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Igor Vaynberg (JIRA)" <ji...@apache.org> on 2010/11/17 04:44:15 UTC
[jira] Reopened: (WICKET-3166) isVisibleInHierarchy() possibly
unnecessarily checks children whose parents are invisible?
[ https://issues.apache.org/jira/browse/WICKET-3166?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Igor Vaynberg reopened WICKET-3166:
-----------------------------------
> isVisibleInHierarchy() possibly unnecessarily checks children whose parents are invisible?
> ------------------------------------------------------------------------------------------
>
> Key: WICKET-3166
> URL: https://issues.apache.org/jira/browse/WICKET-3166
> Project: Wicket
> Issue Type: Bug
> Affects Versions: 1.4.13
> Reporter: Martin Makundi
> Assignee: Igor Vaynberg
> Fix For: 1.4.14, 1.5-M4
>
> Attachments: diff.txt, test-WICKET-3166.patch, Wicket-Quickstart.zip
>
> Original Estimate: 1h
> Remaining Estimate: 1h
>
> Hi!
> See attached quickstart with junit test reproducing the bug. See also patch proposal.
> I have a page with two panels:
> page.form.add(panel1);
> page.form.add(panel2);
> in some situations panel1 is not visible.
> However, a form submit event will visit all formcomponents of panel1 via:
> at org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrder(FormComponent.java:400)
> at org.apache.wicket.markup.html.form.Form.visitFormComponentsPostOrder(Form.java:1209)
> at org.apache.wicket.markup.html.form.Form.inputChanged(Form.java:1403)
> at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:865)
> This results in a crash because panel1 components are not prepared to
> be invoked via isvisible when the panel itself is not visible.
> I wonder if the component.isVisibleInHierarchy could be changed as
> follows, to first check parent visibility:
> public final boolean isVisibleInHierarchy()
> {
> Component component = this;
> while (component != null)
> {
> Component componentParent = component.getParent();
> if (((componentParent == null) ||
> componentParent.isVisibleInHierarchy()) &&
> component.determineVisibility())
> {
> component = componentParent;
> }
> else
> {
> return false;
> }
> }
> return true;
> }
> Similar change could/should maybe be possible also for isEnabledInHierarchy ?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.