You can just create an instance of SelectModelImpl.  To simplify things a
bit, I've just implemented the interface and delegated to a SelectModelImpl
instance.

public class ProductTypeSelectModel implements SelectModel
{
    private final SelectModel model;

    public ProductTypeSelectModel(final ObjectContext context)
    {
        final List<OptionModel> options = new ArrayList<OptionModel>();

        final SelectQuery query = new SelectQuery(ProductType.class);
        query.addOrdering(ProductType.NAME_PROPERTY, true);

        final List<ProductType> productTypes = (List<ProductType>)
context.performQuery(query);

        options.add(new OptionModelImpl("None (root level)", false, null));
        for (final ProductType pt : productTypes)
        {
            options.add(new OptionModelImpl(pt.getName(), false, pt));
        }

        model = new SelectModelImpl(null, options);
    }

    public List<OptionGroupModel> getOptionGroups()
    {
        return model.getOptionGroups();
    }

    public List<OptionModel> getOptions()
    {
        return model.getOptions();
    }

    public void visit(final SelectModelVisitor visitor)
    {
        model.visit(visitor);
    }
}

This example uses Cayenne to query for my "product_types" and sorts them by
name.  Even if you're not familiar with Cayenne, it should be fairly
straightforward.


On 12/1/07 11:34 PM, in article [EMAIL PROTECTED], "Angelo Chen"
<[EMAIL PROTECTED]> wrote:

> 
> Hi,
> 
> I use a TreeMap for the 'Select' component, it works but it is always sorted
> in the key order, not the name of country when showing to the user, i read
> somewhere it can be a list, any suggestions, sample codes? thanks.
> 
> A.C.
> 
>  public TreeMap<String, String> getCountryList() {return ...}
> 
> <input t:type="select" t:id="country" model="countryList" t:value="country"
> /><br/>
> 

-- 
Kevin Menard
Servprise International, Inc.
Remote reboot & power control for network equipment
www.servprise.com              +1 508.892.3823 x308



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

Reply via email to