Thanks Gerhard, that's a nice workaround!
As always there's just one more thing that does not work like it should.
How do I implement this solution if I have two dependent dropdowns?
Initially the first "Country" dropdown shows "Please choose" and the second one
"City" is disabled.
When a country ("Norway") is selected the list of cities is populated {"Oslo",
"Bergen"...} (via auto-submit and ppr) and the city dropdown is enabled and now
shows "Please choose".
At this point the "Please choose" entry of the "Country" dropdown is no longer
rendered.
Fine, so far. But:
How do I hide the "Please choose" in the "City" dropdown when a city is
selected?
I tried the same solution, but that would require setting the dropdown to
immediate="true" also.
But then I can no longer select another country as long as I have not selected
a city in the previous country first. (Both dropdowns are immediate -> both are
validated.)
Hope my explanation (and understanding of the issue) was fine.
Can anybody help?
hello,
@unselectedLabel:
let's think about the following scenario:
users have the option to select an entry (emphasis on option).
-> a user would like to discard his/her choice. with your suggestion there is
no neutral field any more.
-> the user has no easy possibility to deselect his/her choice.
ok - after the bug is fixed you have to use tr:selectItem instead of
unselectedLabel to provide a permanent neutral option for the scenario above.
or we have to introduce a new attribute (e.g. permanentUnselectedLabelor
something similar, which indicates if the unselectedLabel shouldstay available
or not).
what's your opinion about that?
@dynamic items:
again just sample source code:
<tr:selectOneChoice id="selectOne" value="-1"
valueChangeListener="#{bean.change}" autoSubmit="true"
partialTriggers="selectOne" immediate="true">
<tr:selectItem label="Please choose" value="-1"
rendered="#{!bean.valueSelected}"/>
<f:selectItems value="#{bean.items}"/>
</tr:selectOneChoice>
within the bean:
private boolean valueSelected;
private List<SelectItem> items;
public boolean isValueSelected()
{
return valueSelected;
}
public void setValueSelected(boolean valueSelected)
{
this.valueSelected = valueSelected;
}
public List<SelectItem> getItems()
{
if(items == null)
{
items = new ArrayList<SelectItem>();
for(int i = 0; i < 3; i++)
{
items.add( new SelectItem( i, "value: " + i ) );
}
}
return items;
}
public void setItems(List<SelectItem> items)
{
this.items = items;
}
public void change(ValueChangeEvent event)
{
setValueSelected( true );
}
regards,
gerhard
2007/12/12, Matthias Wessendorf <[EMAIL PROTECTED]>:this sounds odd to me as
well.
I would expect, the unselectedLabel goes away, once there was a selection.
Do you mind to file a bug for this?
-M
On Dec 12, 2007 12:21 PM, Stephen Friedrich <[EMAIL PROTECTED]> wrote:
> Thanks for the answer.
> So basically you are saying I can't use
> <tr:selectOneChoice unselectedLabel="Please choose" ...> for this?!
> As you suggested I can "fake" that label myself, but I wonder what's the
> purpose of the trinidad attribute if it does not do this automatically.
> Part of the problem is that my select items are not hardcoded (are they ever
> in real apps?), but based on a query. So I would have to wrap that query in
> my backing bean to dynamically add/remove the unselected label. If I do that
> I have to stop using entites (which are automatically converted to select
> items by seam's s:selectItems), but will have to explicitly create
> SelectItems. Quite a mess for such a simple feature.
>
> The current behaviour seems like a bug to me.
> Why the heck does trinidad show an "unselected label" if there actually _is_
> a selection?
>
>
>
> hello,
>
> just a sample source code:
>
> <tr:selectOneChoice id="selectOne" value="0"
> valueChangeListener="#{bean.change}" autoSubmit="true"
> partialTriggers="selectOne" immediate="true">
> <tr:selectItem label="Please choose" value="0"
> rendered="#{!bean.valueSelected}"/>
> <tr:selectItem label="one" value="1"/>
> <tr:selectItem label="two" value="2"/>
> </tr:selectOneChoice>
>
>
> within the bean:
>
> private boolean valueSelected;
>
> public boolean isValueSelected()
> {
> return valueSelected;
> }
>
> public void setValueSelected(boolean valueSelected)
> {
> this.valueSelected = valueSelected;
> }
>
> public void change(ValueChangeEvent event)
> {
> setValueSelected( true );
> }
>
> regards,
> gerhard
>
>
>
> 2007/12/12, Stephen Friedrich < [EMAIL PROTECTED]>:
> I like to show "Please choose" in a selectOneChoice as long as no
> option has been selected, yet.
> As soon as the user selects one of the items the label should vanish
> from the list.
> (autoSubmit is set and the selectOneChoice is partialTrigger for itself.)
> It really doesn't make any sense to select "Please choose" from
> the list after having already selected something for real.
>
>
>
> --
>
> http://www.irian.at
>
> Your JSF powerhouse -
> JSF Consulting, Development and
> Courses in English and German
>
> Professional Support for Apache MyFaces
--
Matthias Wessendorf
further stuff:
blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
mail: matzew-at-apache-dot-org
--
http://www.irian.at
Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German
Professional Support for Apache MyFaces