you should declare your Select2Choice as Select2Choice<Short> since that is its model type. once you do this the compiler will tell you that your TextChoiceProvider should be TextChoiceProvider<Short> instead of <HrpBbhepar5>
-igor On Tue, Sep 4, 2012 at 1:42 PM, Sandor Feher <[email protected]> wrote: > Okay. Just one more question. > > I have a domain model (HrpBbheerk) which contains a Short column. I would > like to fill this via Select2Choice. > I read the select2-examples but not able to get rid it. > > So the steps I took. > > 1. Fill my hepar5list list from my domain model (HrpBbhepar5). This contains > couple of columns but I only need for two. One for value and one for > description. If possible I don't want to create another wrapper class just > for this case. > 2. Create a form, added a model (HrpBbheerk) > 3. Added a new Select2Choice to the form with that Short column mentioned > above. > > Snippets: > > ... > fillHepar5(); // step 1 > HrpBbheertk heertk = fillHeertk(); > IModel model=new CompoundPropertyModel(heertk); > sform.setModel(model); // step 2 > Select2Choice dimelemert = new Select2Choice("dimelemert",new > PropertyModel(sform.getModel(),"dimelemert"),new Hepar5Provider()); // step > 3 > > ...... > > private static List<HrpBbhepar5> queryMatches(String term, int page, int > pageSize) { > > List<HrpBbhepar5> result = new ArrayList<HrpBbhepar5>(); > term = term.toUpperCase(); > > final int offset = page * pageSize; > > int matched = 0; > > for (HrpBbhepar5 hepar5 : hepar5list) { > if (result.size() == pageSize) { > break; > } > > if (hepar5.getDertekmegnev().toUpperCase().startsWith(term)) { > matched++; > if (matched > offset) { > result.add(hepar5); > } > } > } > return result; > } > > > public class Hepar5Provider extends TextChoiceProvider<HrpBbhepar5> { > > @Override > protected String getDisplayText(HrpBbhepar5 choice) { > return choice.getDertekmegnev(); > } > > @Override > protected Object getId(HrpBbhepar5 choice) { > return choice; > } > > @Override > public void query(String term, int page, Response<HrpBbhepar5> > response) { > response.addAll(queryMatches(term, page, 10)); > response.setHasMore(response.size() == 10); > } > > @Override > public Collection<HrpBbhepar5> toChoices(Collection<String> ids) { > ArrayList<HrpBbhepar5> hepar5idlist = new > ArrayList<HrpBbhepar5>(); > > Iterator it = hepar5list.iterator(); > while (it.hasNext()) { > HrpBbhepar5 h = (HrpBbhepar5) it.next(); > hepar5idlist.add(h); > } > return hepar5idlist; > } > } > > ..... > > It complains that java.lang.Short cannot be cast to > hu.xxx.model.HrpBbhepar5. > Please let me know what should I do. > > thnx., Sandor > > > > > > > > > -- > View this message in context: > http://apache-wicket.1842946.n4.nabble.com/select2-localization-questions-tp4651732p4651753.html > Sent from the Users forum mailing list archive at Nabble.com. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
