Not to be harsh, but I don't think I've ever written a select box with constant values (Enum). Seems like even Male/Female drop downs need to be data-driven now-a-days. :->
I've started to stub out a very simple "real world example" of a select component in T5, but it doesn't appear to be as simple as I thought it would be. A shiny nickel to anyone that can spot the flaw, because I sure can't... I'm new to Tapestry in general so I could be missing something really mundane here, but seems like it should work in my mind. Here are the players: << THE ERROR >> [ERROR] DefaultRequestExceptionHandler Processing of request failed with uncaught exception: com.foo.data.Brand cannot be cast to java.lang.String java.lang.ClassCastException: com.foo.data.Brand cannot be cast to java.lang.String at org.apache.tapestry.corelib.components.Select$1.toClient(Select.java:62) at org.apache.tapestry.corelib.components.Select.writeOptions(Select.java:1 94) at org.apache.tapestry.corelib.components.Select.options(Select.java:169) at org.apache.tapestry.corelib.components.Select.beforeRenderTemplate(Selec t.java) << Main.html (abridged) >> <t:form> <select t:type="select" t:id="brand" value="brand" model="brandSelectModel"/> </t:form> << Main.java (abridged) >> package com.foo.pages; import com.foo.data.Brand; public class Main { private Brand brand; public Brand getBrand() { return brand; } public void setBrand(Brand brand) { this.brand = brand; } public BrandSelectModel getBrandSelectModel() { return new BrandSelectModel(getBrands()); } public List<Brand> getBrands() { List<Brand> brands = new ArrayList<Brand>(); brands.add(new Brand("1", "Brand 1")); brands.add(new Brand("2", "Brand 2")); brands.add(new Brand("3", "Brand 3")); return brands; } } << Brand.java (abridged) >> package com.foo.data; public class Brand { private String id; private String description; public Brand() {} public Brand(String id, String description) { this.id = id; this.description = description; } public String getId() { return id; } public String getDescription() { return description; } } << BrandSelectModel.java >> package com.foo.uisupport; import com.foo.data.Brand; public class BrandSelectModel implements SelectModel { private List<Brand> brands; public BrandSelectModel(List<Brand> brands) { this.brands = brands; } public List<OptionGroupModel> getOptionGroups() { return null; } public List<OptionModel> getOptions() { List<OptionModel> optionModelList = new ArrayList<OptionModel>(); for(Brand brand: brands) { optionModelList.add(new OptionModelImpl(brand.getDescription(), false, brand, new String[0])); } return optionModelList; } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]