I think a flag similar to  'noSelectionRequired' would make the most
sense....when true the unselectedLabel stays, when false it goes away
upon a selection.
 

Nate Perkins 
General Dynamics C4 Systems 

This email message is for the sole use of the intended recipient(s) and
may contain GDC4S 
 confidential or privileged information. Any unauthorized review, use,
disclosure or distribution 
 is prohibited. If you are not an intended recipient, please contact the
sender by reply email and 
 destroy all copies of the original message. 

 

________________________________

From: Gerhard Petracek [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, December 12, 2007 5:29 AM
To: MyFaces Discussion
Subject: Re: [Trinidad] selectOneChoice: Make "unselectedLabel" item go
away after selection?


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. permanentUnselectedLabel
or something similar, which indicates if the unselectedLabel should stay
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 

Reply via email to