You should not set a list directly on your dropdown but load it using
for example a loadabledetachable model, that way your getCountriesList
method is executed every time the component is rendered.

Maurice

On Wed, Apr 2, 2008 at 10:12 AM, Sergey Podatelev
<[EMAIL PROTECTED]> wrote:
> Thanks for quick reply, Nino.
>
>  No, I'm not using ajax so far.
>
>  Let me describe a bit more: there's a registration page, which has a
>  RegisterForm. Also, the page has an OptionsPanel unrelated to the
>  RegisterForm with a language selector DDC. That DDC is bound to Session's
>  "language" property via PropertyModel. What I want is to reorder items in
>  RegisterForm's DDCs.
>
>  I've actually implemented it this way (list of countries is one of the lists
>  that must be reordered):
>
>  OptionsPanel:
>
>  add(new DDC(...) {
>   onSelectionChanged() {
>     ...
>     ((BasePage) getPage()).notifyLanguageSwitch();
>   }
>  });
>
>
>  RegisterPage:
>
>  RegisterPage extends BasePage {
>
>   init() {
>   ...
>     processLocaleSpecificComponents();
>   ...
>   }
>
>   notifyLanguageSwitch() {
>     processLocaleSpecificComponents();
>   }
>
>   processLocaleSpecificComponents() {
>
>     Component countriesChoice = get("countryChoice");
>
>     DDC newCountriesChoice = new DDC("countryChoice",
>  getCountriesList(getLanguageId()), new ChoiceRenderer(...));
>
>     if (countriesChoice != null) {
>       countriesChoice.replaceWith(newCountriesChoice);
>     } else {
>       add(countriesChoice);
>     }
>   }
>  }
>
>  But you're saying, I don't have to reconstruct components. How can I control
>  order of items in the DDC then? Even though data is provided dynamically,
>  like this:
>
>  add(new DropDownChoice("countryChoice", getCountriesList(getLanguageId()),
>  new ChoiceRenderer("name", "id"));
>
>  the getCountriesList() method isn't called when page is reloaded to switch
>  language.
>
>
>
>  On Wed, Apr 2, 2008 at 11:14 AM, Nino Saturnino Martinez Vazquez Wael <
>  [EMAIL PROTECTED]> wrote:
>
>  you could use call modelchanged on the forms model. Or make the components
>  > take an ajaxrequesttarget, depending if youre using ajax?
>  >
>  > You should'nt have to reconstruct them. But that depends if youre using
>  > models or not etc..
>  >
>
>
> > The problem is, when user changes language via selector, all dropdown
>  > > lists
>  > > must be reordered to keep being alphabetically sorted.
>  > >
>  > > I guess I have to re-construct my DropDownChoice components for this,
>  > > but
>  > > I'm not sure how to notify the page of the language change event. Can I
>  > > somehow make the form on the registration page listen to an unrelated
>  > > component's onChange event?
>  > >
>  >
>  --
>  sp
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to