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

Reply via email to