i have dropdownchoices where choices model comes from the db and everything
works fine.

set a breakpoint in updatemodel() and see if ddc pushes the right value into
it.

have you also tried setreuseitems(true) on the listview? you should always
use that if it is in a form.

-igor


On 2/20/07, Alex Objelean <[EMAIL PROTECTED]> wrote:


Maybe the description was to long, and it's hard to follow... I'll try to
make it shorter:

Using DropDownChoice component this way inside the populate method of the
gridView:

DropDownChoice selYear = new DropDownChoice("year",
      new PropertyModel(item.getModel(), "year"), modelChoices);

makes the PropertyModel behave different, depending on modelChoices
implementation... If modelChoices model is constructed in a static way,
everything works ok, otherwise - it does not work. Do you have any idea
why
it happens?

Thank you!


Alex Objelean wrote:
>
> First of all, the functional description:
> I have a screen with the table which contains on each line a column with
> description, a dropDownChoice (DDC) with a list of configurations and
> another column with DDC with a list of years. When user changes a
> configuration , the list of years updates depending on selected
> configuration (using ajax).
>
> Below you can find the code.
>
> /**
>  * @see RefreshingView#populateItem(Item)
>  */
> protected void populateItem(final Item item) {
>   //get the configuration list
>   List configurationList = ...//call a service to get the list
>   DropDownChoice selConfig = new DropDownChoice("configuration",
>      new PropertyModel(item.getModel(), "configuration"),
>      configurationList, new ChoiceRenderer(
>         "description", "id"));
>   item.add(selConfig);
>
>   IModel modelChoices = new Model() {
>     public Object getObject(final Component component) {
>       List rValue = Collections.EMPTY_LIST;
>       ReportTemplateUI report = (ReportTemplateUI) item.getModelObject
();
>       Configuration config = report.getConfiguration();
>       if (config == null) {
>         return rValue;
>       }
>       rValue = getExtractionResultService().getAvailableYears(
>           config.getId());
>       return rValue;
>     }
>   };
>   DropDownChoice selYear = new DropDownChoice("year",
>       new PropertyModel(item.getModel(), "year"), modelChoices);
>   item.add(selYear);
>   //...
> }
>
>
> The modelObject of the Item looks like this:
>
> ReportTemplateUI implements Serializable{
>   private Integer year;
>   private Configuration configuration;
>   //other properties + getters & setters
> }
>
> As you can see, the DDC is constructed this way: it uses a PropertyModel
> for setting the "year" property on the item model; the modelChoices
(used
> to populate the DDC component) based on the Item current configuration,
> calls a service and returns a list of years associated with the selected
> configuration.
>
> Now the problem is that the PropertyModel does not set the year property
> on the Item objectModel - the year property always have the NULL value.
> Somehow I found that the problem is caused by calling
item.getModelObject,
> but it does not make sens for me (!?!)..   If instead of this I return a
> static list, everything seems to work fine... (@see below)
>
>   IModel modelChoices = new Model() {
>     public Object getObject(final Component component) {
>       List rValue = Collections.EMPTY_LIST;
>
>       // THE PROBLEM IS HERE - CALLING Item.getModleObject() method. !!!
>       ReportTemplateUI report = (ReportTemplateUI) item.getModelObject
();
>
>       Configuration config = report.getConfiguration();
>       if (config == null) {
>         return rValue;
>       }
>       rValue = getExtractionResultService().getAvailableYears(
>           config.getId());
>
>       //IF INSTEAD OF ABOVE CODE I RETURN A STATIC LIST - EVERYTHING
WORKS
> FINE
>
>       return rValue;
>     }
>   };
>   DropDownChoice selYear = new DropDownChoice("year",
>       new PropertyModel(item.getModel(), "year"), modelChoices);
>
> I found a workaround for this but it is a temporary solution until I
find
> the answer to this mysterious issue.
> Is it a known issue, a bug, or this is not a correct approach to solve
the
> problem? Can you help me?
>
> Thank you!
>
> PS: if you have any question regarding the code or anything else is not
> clear, please don't hesitate to ask! Thank you again!
>

--
View this message in context:
http://www.nabble.com/PropertyModel-misbehavior-tf3251590.html#a9060617
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user

-------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to