This feels like something someone would have asked before, but I couldn't find any relevant answers.
I have a usecase where my page/components have role-based security; ENABLE/RENDER actions are dynamic as opposed to static based upon the user/data on the page. When data on the page changes that could affect another field, I want to refresh the other field so that it's ENABLE/RENDER function can be re-evaluated. In my specific example, a field in one Panel is enabled ONLY when you are in the List of Responsible Individuals (a field on a different Panel). If that list of RIs change, I want to immediately refresh (via AJAX) the other (dependent) field. I am working towards a Listerner(?) pattern whereby a Component registers itself with another Component to be refreshed. In order for that to work, I need to geta handle to the other Component and the only way I know to do that is by calling get from a common parent. Other ways? Given this hierarchy, I want to register OtherMdays to be refreshed when ResponsibleIndividuals changes (ResponsibleIndividuals panel is responsible for knowing when to refresh it's listeners). content (Panel) + form + headerSection (Panel) + collapsibleBody (WebMarkupContainer) + sections (RepeatingView) + header (Panel) + responsibleIndividuals (Panel) (other textfields, etc) + romEvents (RepeatingView) + baseEvent (Panel) + collapsibleBody (WebMarkupContainer) + sections (RepeatingView) + event (Panel) + rates (Panel) OtherMdays (TextField) (other textfields, etc) + signatures (Panel) So, the name of the RI Panel (relative to form) is "headerSection:collapsibleBody:sections:header:responsibleIndividuals". Therefore, I can do form.get("headerSection:collapsibleBody:sections:header:responsibleIndividuals") to return that Component. But that means that everywhere that I want to get a handle to the RI Panel, I need to use that string. Is that really the only/best way to do it? I suppose I could extract that string into a constant at the Page level so that at least I am not propagating a raw string, but it is still just a plain old string, then why not store a ref to the component at the page level? There could be many such "refreshers" that listener Components register with. Chuck -- View this message in context: http://www.nabble.com/find-a-%22cousin%22-Component-tf3401959.html#a9473809 Sent from the Wicket - User mailing list archive at Nabble.com. ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user