Re: [Wicket-user] bind Map to DropDownChoice

2006-04-12 Thread Vincent Jenks
OK, I did this exactly how you showed me here...and I'm still getting the error.

Here's my model:

IModel dropDownModel = new Model()
{
protected Object load()
{
return new
ArrayListString(StringValues.getUSAStates().keySet()); //via proxy
}
};

Here's my dropdown:

add(new DropDownChoice(billingState, dropDownModel, 
new IChoiceRenderer()
{
public String getDisplayValue(Object object)
{
return 
StringValues.getUSAStates().get(object);
}

public String getIdValue(Object object, int 
index)
{
return object.toString();
}
}));

Here's the exception:

13:00:19,000 ERROR [RequestCycle] Unexpected runtime exception [page =
[Page class = com.myapp.ui.AddressInfo, id = 3]]
java.lang.NullPointerException
at 
wicket.markup.html.form.AbstractChoice.onComponentTagBody(AbstractChoice.java:290)
at wicket.Component.renderComponent(Component.java:1888)
at 
wicket.markup.html.WebMarkupContainer.onRender(WebMarkupContainer.java:77)
at wicket.Component.render(Component.java:1163)
at wicket.MarkupContainer.renderNext(MarkupContainer.java:1136)
at 
wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:811)
at wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:753)
at wicket.Component.renderComponent(Component.java:1888)
at 
wicket.markup.html.WebMarkupContainer.onRender(WebMarkupContainer.java:77)
at wicket.markup.html.form.Form.onRender(Form.java:517)
at wicket.Component.render(Component.java:1163)
at 
wicket.markup.html.BodyOnLoadContainer.resolve(BodyOnLoadContainer.java:106)
at wicket.MarkupContainer.renderNext(MarkupContainer.java:1159)
at 
wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:811)
at wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:753)
at wicket.Component.renderComponent(Component.java:1888)
at 
wicket.markup.html.WebMarkupContainer.onRender(WebMarkupContainer.java:77)
at wicket.Component.render(Component.java:1163)
at wicket.MarkupContainer.autoAdd(MarkupContainer.java:170)
at 
wicket.markup.html.BodyOnLoadResolver.resolve(BodyOnLoadResolver.java:60)
at wicket.MarkupContainer.renderNext(MarkupContainer.java:1146)
at wicket.MarkupContainer.renderAll(MarkupContainer.java:779)
at wicket.Page.onRender(Page.java:788)
at wicket.Component.render(Component.java:1163)
at wicket.Page.doRender(Page.java:251)
at 
wicket.protocol.http.WebRequestCycle.redirectTo(WebRequestCycle.java:276)
at wicket.RequestCycle.respond(RequestCycle.java:934)
at wicket.RequestCycle.request(RequestCycle.java:411)
at wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:208)
at wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:234)
..

It's definitely the dropdown that is the culprit...when I remove it
from the page the
page renders just fine.

Any ideas?

On 4/10/06, Johan Compagner [EMAIL PROTECTED] wrote:
 ok then youre dropdown is wrong.

  IModel dropDownModel = new Model()
 {
 public Object getObject(final Component component)
 {
return new
 ArrayList(StringValues.getUSAStates().keySet()); //via proxy
 }
 };


  add(new DropDownChoice(billingState, dropDownModel, new IChoiceRenderer()
 {
 public String getDisplayValue(Object object)
 {

 return StringValues.getUSAStates().get(object);


 }

 public String getIdValue(Object object, int index)
 {
 return object.toString();
 }
 }));

 I haven't seen many usecases for that because most of the time
 You have a List of States so getUSAStates doesn't return a map but directly
 a list.
 With State objects that has properties like: a key AL and as name
 Alabama.

 That is the most used usecase i know of.

 johan



  On 4/11/06, Vincent Jenks [EMAIL PROTECTED] wrote:
 
  I'm sorry, I don't think I quite understand.
 
  I have dropDownModel which looks like this:
 
 
  IModel dropDownModel = new Model()
  {
  protected Object load()
  {
 
  return StringValues.getUSAStates(); //via 

Re: [Wicket-user] bind Map to DropDownChoice

2006-04-12 Thread Gwyn Evans
On 12/04/06, Vincent Jenks [EMAIL PROTECTED] wrote:
 OK, I did this exactly how you showed me here...

No you didn't - In your model you've got protected Object load()
from somewhere, whereas what Johan said was public Object
getObject(final Component component)

/Gwyn

and I'm still getting the error.

 Here's my model:

 IModel dropDownModel = new Model()
 {
 protected Object load()
 {
 return new
 ArrayListString(StringValues.getUSAStates().keySet()); //via proxy
 }
 };



---
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnkkid0944bid$1720dat1642
___
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user


Re: [Wicket-user] bind Map to DropDownChoice

2006-04-12 Thread Johan Compagner
if you change that strange load method to what i and gwyn are saying does it work thenwhat wicket version are you using because if i look at 290 of AbstractChoice it is nothing.
On 4/12/06, Vincent Jenks [EMAIL PROTECTED] wrote:
OK, I did this exactly how you showed me here...and I'm still getting the error.Here's my model:IModel dropDownModel = new Model(){protected Object load()
{return newArrayListString(StringValues.getUSAStates().keySet()); //via proxy}};
Here's my dropdown:add(new DropDownChoice(billingState, dropDownModel, new IChoiceRenderer(){public String getDisplayValue(Object object)
{return StringValues.getUSAStates().get(object);}public String getIdValue(Object object, int index)
{return object.toString();}}));Here's the exception:13:00:19,000 ERROR [RequestCycle] Unexpected runtime exception [page =
[Page class = com.myapp.ui.AddressInfo, id = 3]]java.lang.NullPointerExceptionat wicket.markup.html.form.AbstractChoice.onComponentTagBody(AbstractChoice.java:290)at wicket.Component.renderComponent
(Component.java:1888)at wicket.markup.html.WebMarkupContainer.onRender(WebMarkupContainer.java:77)at wicket.Component.render(Component.java:1163)at wicket.MarkupContainer.renderNext(MarkupContainer.java
:1136)at wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:811)at wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:753)at wicket.Component.renderComponent
(Component.java:1888)at wicket.markup.html.WebMarkupContainer.onRender(WebMarkupContainer.java:77)at wicket.markup.html.form.Form.onRender(Form.java:517)at wicket.Component.render(Component.java
:1163)at wicket.markup.html.BodyOnLoadContainer.resolve(BodyOnLoadContainer.java:106)at wicket.MarkupContainer.renderNext(MarkupContainer.java:1159)at wicket.MarkupContainer.renderComponentTagBody
(MarkupContainer.java:811)at wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:753)at wicket.Component.renderComponent(Component.java:1888)at wicket.markup.html.WebMarkupContainer.onRender
(WebMarkupContainer.java:77)at wicket.Component.render(Component.java:1163)at wicket.MarkupContainer.autoAdd(MarkupContainer.java:170)at wicket.markup.html.BodyOnLoadResolver.resolve(BodyOnLoadResolver.java
:60)at wicket.MarkupContainer.renderNext(MarkupContainer.java:1146)at wicket.MarkupContainer.renderAll(MarkupContainer.java:779)at wicket.Page.onRender(Page.java:788)at wicket.Component.render
(Component.java:1163)at wicket.Page.doRender(Page.java:251)at wicket.protocol.http.WebRequestCycle.redirectTo(WebRequestCycle.java:276)at wicket.RequestCycle.respond(RequestCycle.java:934)
at wicket.RequestCycle.request(RequestCycle.java:411)at wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:208)at wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:234)
..It's definitely the dropdown that is the culprit...when I remove itfrom the page thepage renders just fine.Any ideas?On 4/10/06, Johan Compagner 
[EMAIL PROTECTED] wrote: ok then youre dropdown is wrong.IModel dropDownModel = new Model() { public Object getObject(final Component component)
 {return new ArrayList(StringValues.getUSAStates().keySet()); //via proxy } };add(new DropDownChoice(billingState, dropDownModel, new IChoiceRenderer()
 { public String getDisplayValue(Object object) { return StringValues.getUSAStates().get(object);
 } public String getIdValue(Object object, int index) { return object.toString(); } }));
 I haven't seen many usecases for that because most of the time You have a List of States so getUSAStates doesn't return a map but directly a list. With State objects that has properties like: a key AL and as name
 Alabama. That is the most used usecase i know of. johanOn 4/11/06, Vincent Jenks [EMAIL PROTECTED]
 wrote:   I'm sorry, I don't think I quite understand.   I have dropDownModel which looks like this:IModel dropDownModel = new Model()
  {  protected Object load()  {   return StringValues.getUSAStates(); //via proxy  }
  };   StringValues.getUSAStates() looks something like this:   public static MapString, String getUSAStates()  {  MapString, String states = new HashMapString, String();
  states.put(AL, Alabama);  states.put(AK, Alaska);  states.put(AZ, Arizona);  
states.put(AR, Arkansas);  states.put(CA, California);  ..   Where CA is the key and California is the value...which is exactly how
 I'd like to see it in the select dropdown.   Are you saying that I should split the keys and values into two different lists and look them up that way?   It would be extremely useful, in my opinion, if Wicket had support for
 these types of objects internally, given the frequency of which they're used.It would be very intuitive if I could supply key/value Map objects into what is essentially a list of key/value pairs.
   Thanks again... On 4/10/06, Johan Compagner  [EMAIL PROTECTED] wrote:  
   give the choice renderen the complete hashmap And give the dropdown a model with the keys of that hashmap as a list. so if 

Re: [Wicket-user] bind Map to DropDownChoice

2006-04-12 Thread Vincent Jenks
Good God...I don't believe I missed that!

Ok, this never happened...and thanks!

BTW - I'm using Wicket 1.1.1

On 4/12/06, Johan Compagner [EMAIL PROTECTED] wrote:
 if you change that strange load method to what i and gwyn are saying does it
 work then
 what wicket version are you using because if i look at 290 of AbstractChoice
 it is nothing.



  On 4/12/06, Vincent Jenks [EMAIL PROTECTED] wrote:
 
  OK, I did this exactly how you showed me here...and I'm still getting the
 error.

 Here's my model:

 IModel dropDownModel = new Model()
 {
 protected Object load()
 {
 return new
 ArrayListString(StringValues.getUSAStates().keySet()); //via proxy
 }
 };

 Here's my dropdown:

 add(new DropDownChoice(billingState,
 dropDownModel, new IChoiceRenderer()
 {
 public String
 getDisplayValue(Object object)
 {
 return
 StringValues.getUSAStates().get(object);
 }

 public String
 getIdValue(Object object, int index)
 {
 return
 object.toString();
 }
 }));

 Here's the exception:

 13:00:19,000 ERROR [RequestCycle] Unexpected runtime exception [page =
 [Page class = com.myapp.ui.AddressInfo, id = 3]]
 java.lang.NullPointerException
 at
 wicket.markup.html.form.AbstractChoice.onComponentTagBody(AbstractChoice.java:290)
 at wicket.Component.renderComponent
 (Component.java:1888)
 at
 wicket.markup.html.WebMarkupContainer.onRender(WebMarkupContainer.java:77)
 at wicket.Component.render(Component.java:1163)
 at
 wicket.MarkupContainer.renderNext(MarkupContainer.java
 :1136)
 at
 wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:811)
 at
 wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:753)
 at wicket.Component.renderComponent
 (Component.java:1888)
 at
 wicket.markup.html.WebMarkupContainer.onRender(WebMarkupContainer.java:77)
 at
 wicket.markup.html.form.Form.onRender(Form.java:517)
 at wicket.Component.render(Component.java :1163)
 at
 wicket.markup.html.BodyOnLoadContainer.resolve(BodyOnLoadContainer.java:106)
 at
 wicket.MarkupContainer.renderNext(MarkupContainer.java:1159)
 at wicket.MarkupContainer.renderComponentTagBody
 (MarkupContainer.java:811)
 at
 wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:753)
 at
 wicket.Component.renderComponent(Component.java:1888)
 at wicket.markup.html.WebMarkupContainer.onRender
 (WebMarkupContainer.java:77)
 at wicket.Component.render(Component.java:1163)
 at wicket.MarkupContainer.autoAdd(MarkupContainer.java:170)
 at
 wicket.markup.html.BodyOnLoadResolver.resolve(BodyOnLoadResolver.java
 :60)
 at
 wicket.MarkupContainer.renderNext(MarkupContainer.java:1146)
 at
 wicket.MarkupContainer.renderAll(MarkupContainer.java:779)
 at wicket.Page.onRender(Page.java:788)
 at wicket.Component.render (Component.java:1163)
 at wicket.Page.doRender(Page.java:251)
 at
 wicket.protocol.http.WebRequestCycle.redirectTo(WebRequestCycle.java:276)
 at wicket.RequestCycle.respond(RequestCycle.java:934)
 at wicket.RequestCycle.request(RequestCycle.java:411)
 at
 wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:208)
 at
 wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:234)
 ..

 It's definitely the dropdown that is the culprit...when I remove it
 from the page the
 page renders just fine.

 Any ideas?

 On 4/10/06, Johan Compagner  [EMAIL PROTECTED] wrote:
  ok then youre dropdown is wrong.
 
   IModel dropDownModel = new Model()
  {
  public Object getObject(final Component component)
  {
 return new
  ArrayList(StringValues.getUSAStates().keySet()); //via proxy
  }
  };
 
 
   add(new DropDownChoice(billingState, dropDownModel, new
 IChoiceRenderer()
  {
  public String getDisplayValue(Object object)
  {
 
  return StringValues.getUSAStates().get(object);
 
 
   }
 
  public String getIdValue(Object object, int index)
  {
  return object.toString();
  }
  }));
 
  I haven't seen many usecases for that because most of the time
  You have a List of States so getUSAStates doesn't return a map but
 

Re: [Wicket-user] bind Map to DropDownChoice

2006-04-12 Thread Gwyn Evans
The current equivalent is line 305, i.e.

protected void onComponentTagBody(final MarkupStream markupStream,
final ComponentTag openTag)
{
  List choices = getChoices();
  final AppendingStringBuffer buffer = new
AppendingStringBuffer((choices.size() * 50) + 16);

getChoices() is returning null there, as the model is empty and the
choices.size() causes the NPE.

Leaving aside the use of 'magic' numbers, should we do something
explict there, i.e. log something  then use Collections.EMPTY_LIST,
or even throw a NPE with an explicit message?

/Gwyn


On 12/04/06, Johan Compagner [EMAIL PROTECTED] wrote:
 if you change that strange load method to what i and gwyn are saying does it
 work then
 what wicket version are you using because if i look at 290 of AbstractChoice
 it is nothing.



  On 4/12/06, Vincent Jenks [EMAIL PROTECTED] wrote:
  OK, I did this exactly how you showed me here...and I'm still getting the
 error.
 
  Here's my model:
 
  IModel dropDownModel = new Model()
  {
  protected Object load()
  {
  return new
  ArrayListString(StringValues.getUSAStates().keySet()); //via proxy
  }
  };
 
  Here's my dropdown:
 
  add(new DropDownChoice(billingState,
 dropDownModel, new IChoiceRenderer()
  {
  public String
 getDisplayValue(Object object)
  {
  return
 StringValues.getUSAStates().get(object);
  }
 
  public String
 getIdValue(Object object, int index)
  {
  return
 object.toString();
  }
  }));
 
  Here's the exception:
 
  13:00:19,000 ERROR [RequestCycle] Unexpected runtime exception [page =
  [Page class = com.myapp.ui.AddressInfo, id = 3]]
  java.lang.NullPointerException
  at
 wicket.markup.html.form.AbstractChoice.onComponentTagBody(AbstractChoice.java:290)
  at wicket.Component.renderComponent
 (Component.java:1888)
  at
 wicket.markup.html.WebMarkupContainer.onRender(WebMarkupContainer.java:77)
  at wicket.Component.render(Component.java:1163)
  at
 wicket.MarkupContainer.renderNext(MarkupContainer.java
 :1136)
  at
 wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:811)
  at
 wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:753)
  at wicket.Component.renderComponent
 (Component.java:1888)
  at
 wicket.markup.html.WebMarkupContainer.onRender(WebMarkupContainer.java:77)
  at
 wicket.markup.html.form.Form.onRender(Form.java:517)
  at wicket.Component.render(Component.java :1163)
  at
 wicket.markup.html.BodyOnLoadContainer.resolve(BodyOnLoadContainer.java:106)
  at
 wicket.MarkupContainer.renderNext(MarkupContainer.java:1159)
  at wicket.MarkupContainer.renderComponentTagBody
 (MarkupContainer.java:811)
  at
 wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:753)
  at
 wicket.Component.renderComponent(Component.java:1888)
  at wicket.markup.html.WebMarkupContainer.onRender
 (WebMarkupContainer.java:77)
  at wicket.Component.render(Component.java:1163)
  at wicket.MarkupContainer.autoAdd(MarkupContainer.java:170)
  at
 wicket.markup.html.BodyOnLoadResolver.resolve(BodyOnLoadResolver.java
 :60)
  at
 wicket.MarkupContainer.renderNext(MarkupContainer.java:1146)
  at
 wicket.MarkupContainer.renderAll(MarkupContainer.java:779)
  at wicket.Page.onRender(Page.java:788)
  at wicket.Component.render (Component.java:1163)
  at wicket.Page.doRender(Page.java:251)
  at
 wicket.protocol.http.WebRequestCycle.redirectTo(WebRequestCycle.java:276)
  at wicket.RequestCycle.respond(RequestCycle.java:934)
  at wicket.RequestCycle.request(RequestCycle.java:411)
  at
 wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:208)
  at
 wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:234)
  ..
 
  It's definitely the dropdown that is the culprit...when I remove it
  from the page the
  page renders just fine.
 
  Any ideas?
 
  On 4/10/06, Johan Compagner  [EMAIL PROTECTED] wrote:
   ok then youre dropdown is wrong.
  
IModel dropDownModel = new Model()
   {
   public Object getObject(final Component component)
   {
  return new
   ArrayList(StringValues.getUSAStates().keySet()); //via proxy
   }
   };
  
  
add(new DropDownChoice(billingState, dropDownModel, new
 

Re: [Wicket-user] bind Map to DropDownChoice

2006-04-12 Thread Vincent Jenks
It'd obviously be very helpful to have a more specific exception
message...it was so obvious I looked right over it (and I'm still
getting familiar w/ models.)

What I had done is copied some code where I was using a detachable
model...and just changed it to a regular model...that's where load()
came from...

On 4/12/06, Gwyn Evans [EMAIL PROTECTED] wrote:
 The current equivalent is line 305, i.e.

 protected void onComponentTagBody(final MarkupStream markupStream,
 final ComponentTag openTag)
 {
   List choices = getChoices();
   final AppendingStringBuffer buffer = new
 AppendingStringBuffer((choices.size() * 50) + 16);

 getChoices() is returning null there, as the model is empty and the
 choices.size() causes the NPE.

 Leaving aside the use of 'magic' numbers, should we do something
 explict there, i.e. log something  then use Collections.EMPTY_LIST,
 or even throw a NPE with an explicit message?

 /Gwyn


 On 12/04/06, Johan Compagner [EMAIL PROTECTED] wrote:
  if you change that strange load method to what i and gwyn are saying does it
  work then
  what wicket version are you using because if i look at 290 of AbstractChoice
  it is nothing.
 
 
 
   On 4/12/06, Vincent Jenks [EMAIL PROTECTED] wrote:
   OK, I did this exactly how you showed me here...and I'm still getting the
  error.
  
   Here's my model:
  
   IModel dropDownModel = new Model()
   {
   protected Object load()
   {
   return new
   ArrayListString(StringValues.getUSAStates().keySet()); //via proxy
   }
   };
  
   Here's my dropdown:
  
   add(new DropDownChoice(billingState,
  dropDownModel, new IChoiceRenderer()
   {
   public String
  getDisplayValue(Object object)
   {
   return
  StringValues.getUSAStates().get(object);
   }
  
   public String
  getIdValue(Object object, int index)
   {
   return
  object.toString();
   }
   }));
  
   Here's the exception:
  
   13:00:19,000 ERROR [RequestCycle] Unexpected runtime exception [page =
   [Page class = com.myapp.ui.AddressInfo, id = 3]]
   java.lang.NullPointerException
   at
  wicket.markup.html.form.AbstractChoice.onComponentTagBody(AbstractChoice.java:290)
   at wicket.Component.renderComponent
  (Component.java:1888)
   at
  wicket.markup.html.WebMarkupContainer.onRender(WebMarkupContainer.java:77)
   at wicket.Component.render(Component.java:1163)
   at
  wicket.MarkupContainer.renderNext(MarkupContainer.java
  :1136)
   at
  wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:811)
   at
  wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:753)
   at wicket.Component.renderComponent
  (Component.java:1888)
   at
  wicket.markup.html.WebMarkupContainer.onRender(WebMarkupContainer.java:77)
   at
  wicket.markup.html.form.Form.onRender(Form.java:517)
   at wicket.Component.render(Component.java :1163)
   at
  wicket.markup.html.BodyOnLoadContainer.resolve(BodyOnLoadContainer.java:106)
   at
  wicket.MarkupContainer.renderNext(MarkupContainer.java:1159)
   at wicket.MarkupContainer.renderComponentTagBody
  (MarkupContainer.java:811)
   at
  wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:753)
   at
  wicket.Component.renderComponent(Component.java:1888)
   at wicket.markup.html.WebMarkupContainer.onRender
  (WebMarkupContainer.java:77)
   at wicket.Component.render(Component.java:1163)
   at wicket.MarkupContainer.autoAdd(MarkupContainer.java:170)
   at
  wicket.markup.html.BodyOnLoadResolver.resolve(BodyOnLoadResolver.java
  :60)
   at
  wicket.MarkupContainer.renderNext(MarkupContainer.java:1146)
   at
  wicket.MarkupContainer.renderAll(MarkupContainer.java:779)
   at wicket.Page.onRender(Page.java:788)
   at wicket.Component.render (Component.java:1163)
   at wicket.Page.doRender(Page.java:251)
   at
  wicket.protocol.http.WebRequestCycle.redirectTo(WebRequestCycle.java:276)
   at wicket.RequestCycle.respond(RequestCycle.java:934)
   at wicket.RequestCycle.request(RequestCycle.java:411)
   at
  wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:208)
   at
  wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:234)
   ..
  
   It's definitely the dropdown that is the culprit...when I remove it
   from the page the
   page renders 

Re: [Wicket-user] bind Map to DropDownChoice

2006-04-10 Thread Vincent Jenks
Is there an example of this somewhere? I'm struggling to get this working where I have a HashMapString, String...the first String is the ID and the second String is the value.I have this:   IModel dropDownModel = new Model()
   {protected Object load(){ return StringValues.getUSAStates();}   };   add(new DropDownChoice(billingState, dropDownModel, new IChoiceRenderer()
   {public String getDisplayValue(Object object){ return object.toString();}public String getIdValue(Object object, int index)
{ return object.toString();}   }));I *just* wanted to see the page render...I know the values aren't right...but anything would have been acceptable. I keep getting a very unhelpful NullPointerException that I'm not even sure has anything to do w/ the dropdowns...but I assume it does since the rest of the form is very straightforward TextField components.
I don't see where this is being done in wicket-examplesI'm using 1.1.1Thanks!On 4/1/06, Johan Compagner 
[EMAIL PROTECTED] wrote:there is no map support for this.
What you could do is give the map to the ChoiceRenderer impland give the keys of the map as a list to the Choice.johan
On 3/31/06, 
Vincent Jenks [EMAIL PROTECTED] wrote:

I'm trying to get a Map of data so I can have the key be the value of the dropdown options and the value of the Map item be the value of the option in the dropdown. Problem is, it doesn't look like DropDownChoice will accept a Map...unless I'm doing it wrong?
Is a Map the best way to go? I was maybe considering using a single List collection and splitting a single string to get the two valuesbut that's pretty fugly too.






Re: [Wicket-user] bind Map to DropDownChoice

2006-04-10 Thread Johan Compagner
give the choice renderen the complete hashmapAnd give the dropdown a model with the keys of that hashmap as a list.so if StringValues.getUSAStates(); are th ids in the hashmap then that should go ok.
but youre choicerender is wrong: add(new DropDownChoice(billingState, dropDownModel, new IChoiceRenderer()
   {public String getDisplayValue(Object object){ return idValueHashmap.get(object);}public String getIdValue(Object object, int index)
{ return object.toString();}   }));On 4/11/06, Vincent Jenks 
[EMAIL PROTECTED] wrote:Is there an example of this somewhere? I'm struggling to get this working where I have a HashMapString, String...the first String is the ID and the second String is the value.
I have this:   IModel dropDownModel = new Model()
   {protected Object load(){ return StringValues.getUSAStates();}   };   add(new DropDownChoice(billingState, dropDownModel, new IChoiceRenderer()
   {public String getDisplayValue(Object object){ return object.toString();}public String getIdValue(Object object, int index)
{ return object.toString();}   }));I *just* wanted to see the page render...I know the values aren't right...but anything would have been acceptable. I keep getting a very unhelpful NullPointerException that I'm not even sure has anything to do w/ the dropdowns...but I assume it does since the rest of the form is very straightforward TextField components.
I don't see where this is being done in wicket-examplesI'm using 1.1.1Thanks!On 4/1/06, 
Johan Compagner 
[EMAIL PROTECTED] wrote:
there is no map support for this.
What you could do is give the map to the ChoiceRenderer impland give the keys of the map as a list to the Choice.johan

On 3/31/06, 
Vincent Jenks [EMAIL PROTECTED] wrote:


I'm trying to get a Map of data so I can have the key be the value of the dropdown options and the value of the Map item be the value of the option in the dropdown. Problem is, it doesn't look like DropDownChoice will accept a Map...unless I'm doing it wrong?
Is a Map the best way to go? I was maybe considering using a single List collection and splitting a single string to get the two valuesbut that's pretty fugly too.








Re: [Wicket-user] bind Map to DropDownChoice

2006-04-10 Thread Vincent Jenks
I'm sorry, I don't think I quite understand.I have dropDownModel which looks like this:   IModel dropDownModel = new Model()   {protected Object load(){
 return StringValues.getUSAStates(); //via proxy}   };StringValues.getUSAStates() looks something like this: public static MapString, String getUSAStates()
 {  MapString, String states = new HashMapString, String();  states.put(AL, Alabama);  states.put(AK, Alaska);  
states.put(AZ, Arizona);  states.put(AR, Arkansas);  states.put(CA, California);..Where CA is the key and California is the value...which is exactly how I'd like to see it in the select dropdown.
Are you saying that I should split the keys and values into two different lists and look them up that way?It would be extremely useful, in my opinion, if Wicket had support for these types of objects internally, given the frequency of which they're used. It would be very intuitive if I could supply key/value Map objects into what is essentially a list of key/value pairs.
Thanks again...On 4/10/06, Johan Compagner [EMAIL PROTECTED] wrote:
give the choice renderen the complete hashmapAnd give the dropdown a model with the keys of that hashmap as a list.so if StringValues.getUSAStates(); are th ids in the hashmap then that should go ok.

but youre choicerender is wrong: add(new DropDownChoice(billingState, dropDownModel, new IChoiceRenderer()
   {public String getDisplayValue(Object object){ return idValueHashmap.get(object);
}public String getIdValue(Object object, int index)
{ return object.toString();}   }));
On 4/11/06, Vincent Jenks 
[EMAIL PROTECTED] wrote:Is there an example of this somewhere? I'm struggling to get this working where I have a HashMapString, String...the first String is the ID and the second String is the value.
I have this:   IModel dropDownModel = new Model()
   {protected Object load(){ return StringValues.getUSAStates();}   };   add(new DropDownChoice(billingState, dropDownModel, new IChoiceRenderer()
   {public String getDisplayValue(Object object){ return object.toString();}public String getIdValue(Object object, int index)
{ return object.toString();}   }));I *just* wanted to see the page render...I know the values aren't right...but anything would have been acceptable. I keep getting a very unhelpful NullPointerException that I'm not even sure has anything to do w/ the dropdowns...but I assume it does since the rest of the form is very straightforward TextField components.
I don't see where this is being done in wicket-examplesI'm using 1.1.1Thanks!On 4/1/06, 
Johan Compagner 
[EMAIL PROTECTED] wrote:
there is no map support for this.
What you could do is give the map to the ChoiceRenderer impland give the keys of the map as a list to the Choice.johan


On 3/31/06, 
Vincent Jenks [EMAIL PROTECTED] wrote:



I'm trying to get a Map of data so I can have the key be the value of the dropdown options and the value of the Map item be the value of the option in the dropdown. Problem is, it doesn't look like DropDownChoice will accept a Map...unless I'm doing it wrong?
Is a Map the best way to go? I was maybe considering using a single List collection and splitting a single string to get the two valuesbut that's pretty fugly too.










Re: [Wicket-user] bind Map to DropDownChoice

2006-04-10 Thread Johan Compagner
ok then youre dropdown is wrong. IModel dropDownModel = new Model()   {public Object getObject(final Component component){
 return new ArrayList(StringValues.getUSAStates().keySet()); //via proxy}   };
add(new DropDownChoice(billingState, dropDownModel, new IChoiceRenderer()
   {public String getDisplayValue(Object object){ return StringValues.getUSAStates().get(object);

}public String getIdValue(Object object, int index)
{ return object.toString();}   }));I haven't seen many usecases for that because most of the timeYou have a List of States so getUSAStates doesn't return a map but directly a list.
With State objects that has properties like: a key AL and as name Alabama.That is the most used usecase i know of. johan
On 4/11/06, Vincent Jenks [EMAIL PROTECTED] wrote:
I'm sorry, I don't think I quite understand.I have dropDownModel which looks like this:   IModel dropDownModel = new Model()
   {protected Object load(){
 return StringValues.getUSAStates(); //via proxy}   };StringValues.getUSAStates() looks something like this:
 public static MapString, String getUSAStates()
 {  MapString, String states = new HashMapString, String();  states.put(AL, Alabama);  states.put(AK, Alaska);  
states.put(AZ, Arizona);  states.put(AR, Arkansas);  states.put(CA, California);..Where CA is the key and California is the value...which is exactly how I'd like to see it in the select dropdown.
Are you saying that I should split the keys and values into two different lists and look them up that way?It would be extremely useful, in my opinion, if Wicket had support for these types of objects internally, given the frequency of which they're used. It would be very intuitive if I could supply key/value Map objects into what is essentially a list of key/value pairs.
Thanks again...On 4/10/06, Johan Compagner 
[EMAIL PROTECTED] wrote:
give the choice renderen the complete hashmapAnd give the dropdown a model with the keys of that hashmap as a list.so if StringValues.getUSAStates(); are th ids in the hashmap then that should go ok.

but youre choicerender is wrong: add(new DropDownChoice(billingState, dropDownModel, new IChoiceRenderer()
   {public String getDisplayValue(Object object){ return idValueHashmap.get(object);

}public String getIdValue(Object object, int index)
{ return object.toString();}   }));
On 4/11/06, Vincent Jenks 
[EMAIL PROTECTED] wrote:Is there an example of this somewhere? I'm struggling to get this working where I have a HashMapString, String...the first String is the ID and the second String is the value.
I have this:   IModel dropDownModel = new Model()
   {protected Object load(){ return StringValues.getUSAStates();}   };   add(new DropDownChoice(billingState, dropDownModel, new IChoiceRenderer()
   {public String getDisplayValue(Object object){ return object.toString();}public String getIdValue(Object object, int index)
{ return object.toString();}   }));I *just* wanted to see the page render...I know the values aren't right...but anything would have been acceptable. I keep getting a very unhelpful NullPointerException that I'm not even sure has anything to do w/ the dropdowns...but I assume it does since the rest of the form is very straightforward TextField components.
I don't see where this is being done in wicket-examplesI'm using 1.1.1Thanks!On 4/1/06, 
Johan Compagner 
[EMAIL PROTECTED] wrote:
there is no map support for this.
What you could do is give the map to the ChoiceRenderer impland give the keys of the map as a list to the Choice.johan



On 3/31/06, 
Vincent Jenks [EMAIL PROTECTED] wrote:




I'm trying to get a Map of data so I can have the key be the value of the dropdown options and the value of the Map item be the value of the option in the dropdown. Problem is, it doesn't look like DropDownChoice will accept a Map...unless I'm doing it wrong?
Is a Map the best way to go? I was maybe considering using a single List collection and splitting a single string to get the two valuesbut that's pretty fugly too.












Re: [Wicket-user] bind Map to DropDownChoice

2006-04-01 Thread Johan Compagner
there is no map support for this.What you could do is give the map to the ChoiceRenderer impland give the keys of the map as a list to the Choice.johanOn 3/31/06, 
Vincent Jenks [EMAIL PROTECTED] wrote:
I'm trying to get a Map of data so I can have the key be the value of the dropdown options and the value of the Map item be the value of the option in the dropdown. Problem is, it doesn't look like DropDownChoice will accept a Map...unless I'm doing it wrong?
Is a Map the best way to go? I was maybe considering using a single List collection and splitting a single string to get the two valuesbut that's pretty fugly too.




Re: [Wicket-user] bind Map to DropDownChoice

2006-04-01 Thread Vincent Jenks
I see. I just went w/ a List and changed the value when I created the list. The dropdown was a list of dates so I just formatted the date differently for the view portion of the list.Thanks!
On 4/1/06, Johan Compagner [EMAIL PROTECTED] wrote:
there is no map support for this.What you could do is give the map to the ChoiceRenderer impland give the keys of the map as a list to the Choice.
johanOn 3/31/06, 
Vincent Jenks [EMAIL PROTECTED] wrote:

I'm trying to get a Map of data so I can have the key be the value of the dropdown options and the value of the Map item be the value of the option in the dropdown. Problem is, it doesn't look like DropDownChoice will accept a Map...unless I'm doing it wrong?
Is a Map the best way to go? I was maybe considering using a single List collection and splitting a single string to get the two valuesbut that's pretty fugly too.