[
https://issues.apache.org/jira/browse/WICKET-6622?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16758342#comment-16758342
]
Sven Meier commented on WICKET-6622:
------------------------------------
Stupid Jira shortcuts - I didn't want to change the assignment :P
One objection to this solution: isVisibilityAllowed is usually used for
authorization, what if that flag is changed *after* the enclosure's
onConfigure()?
An alternative idea:
What If we unified resolvers with queued components, i.e. components 'inside'
an enclosure are considered as if being queued instead of added? If a component
is inside an enclosure, it gets relocated into the enclosure's children. This
would solve a lot of problems related to enclosures.
One disadvantage I see with this proposal is that a component might not be
accessible with the id it was added. Personally I prefer to access my
components via instance variables anyway.
What other requirements are there to keep a component at the exact position it
was added to?
> Enclosure Ajax Bug
> ------------------
>
> Key: WICKET-6622
> URL: https://issues.apache.org/jira/browse/WICKET-6622
> Project: Wicket
> Issue Type: Bug
> Components: wicket
> Affects Versions: 8.2.0
> Reporter: Michael Gerhards
> Priority: Minor
> Attachments: Error Message.PNG, Wicket_Enclosure_Ajax_Bug.zip
>
>
> WICKET AJAX DEBUG produces the error message
> ERROR: Cannot bind a listener for event "inputchange change" on element
> "text1" because the element is not in the DOM
> when component is not visible caused by enclosure:
> HTML
> <wicket:enclosure child="other">
> <input type="text" wicket:id="text"/>
> <div wicket:id="other" />
> </wicket:enclosure>
> JAVA
> other.setVisibilityAllowed(false);
>
> HTML Page source head script contains
> Wicket.Ajax.ajax(\{"u":"./?0-1.0-text","m":"POST","c":"text1","e":"inputchange
> change"});;
> but not text1 since it is invisible.
> See attached source project and screenshot.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)