Thanks. It helped me.

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Ryan
Gravener
Sent: Tuesday, April 15, 2008 2:53 PM
To: users@wicket.apache.org
Subject: Re: help wanted for wicket autocomplete component


Set the model object in getTextValue(java.lang.Object object)

but in your renderChoice(*) do not call getTextValue!!!  make another
method called getStringValue() and return the actor name, then in
getTextValue set the modelobject and return getStringValue().

I am not positive this will work.

On Tue, Apr 15, 2008 at 2:23 PM, Patel, Sanjay <[EMAIL PROTECTED]> wrote:
> Hi,
>
>
>
>  I am trying to implement a simple auto complete AJAX text box which gives me 
> the names of actors as I type in (by searching and getting the list of actors 
> from database),  and set the Model Object (which is Actor selected from the 
> auto complete drop down) for the Panel (in which this Auto complete Text 
> Field lies); In adding a Behavior to the field, I am trying to do a setModel( 
> ) for the panel (which contains the AutoCompleteTextField), but when I get 
> the object (autoCompleteTextField.getModelObject( )) inside the behavior 
> anonymous class, It returns a string, even though outside I seem to be 
> getting model Object fine (outside as in outside the anonymous class 
> declaration). Here's the full code as I know it.
>
>
>
>  final AutoCompleteTextField actorInformationAutoCompleteTextField = new 
> AutoCompleteTextField("input-auto-complete-actorForPanel-search", new 
> Model((Actor) getModel().getObject()),
>
>                         new AbstractAutoCompleteRenderer() {
>
>                               private static final long serialVersionUID = 1L;
>
>
>
>                               /**
>
>                                * [EMAIL PROTECTED]
>
>                                */
>
>                               @Override
>
>                               protected String getTextValue(Object object) {
>
>  return ((Actor) object).getLastName() + COMMA_SEPARATOR + (((Actor) 
> object).getFirstName());
>
>                               }
>
>
>
>                               /**
>
>                                * [EMAIL PROTECTED]
>
>                                */
>
>                               @Override
>
>                               protected void renderChoice(Object object, 
> Response response, String criteria) {
>
>                                     response.write(getTextValue(object));
>
>
>
>                               }
>
>                         }) {
>
>
>
>                   private static final long serialVersionUID = 1L;
>
>
>
>                   /**
>
>                    * [EMAIL PROTECTED]
>
>                    */
>
>                   @Override
>
>                   @SuppressWarnings("unchecked")
>
>                   protected final Iterator<Actor> getChoices(final String 
> input) {
>
>                         System.out.println(" getChoices called 
> -------------------> ");
>
>                         if (Strings.isEmpty(input)) {
>
>                               return Collections.EMPTY_LIST.iterator();
>
>                         }
>
>
>
>                         // our list of choices (this is displayed with when 
> user starts typing something)
>
>                         final List<Actor> choices = new ArrayList<Actor>(10);
>
>
>
>                         // set the search key for data provider ...
>
>                         List<Actor> actors = new ActorDataProvider(input, 
> 10).search(0, 10).getCollection();
>
>
>
>                         for (int i = 0; i < actors.size(); i++) {
>
>                               System.out.println(" Inside actors loop 
> >>>>>>>>>>>>");
>
>                               System.out.println(" Actor[i] ------------> " + 
> actors.get(i).getFirstName());
>
>                               final Actor actorTemp = actors.get(i);
>
>
>
>  if (actorTemp.getFirstName().trim().contains(input) || 
> actorTemp.getLastName().contains(input)) {
>
>                                     choices.add(actorTemp);
>
>
>
>                               }
>
>
>
>                               if (choices.size() == 10) {
>
>                                     break;
>
>                               }
>
>                         }
>
>
>
>                         return choices.iterator();
>
>                   }
>
>
>
>             };
>
>
>
>
>
>  Here is where I add Behavior:
>
>             actorInformationAutoCompleteTextField.add(new 
> AjaxFormSubmitBehavior("onchange") {
>
>                   private static final long serialVersionUID = 1L;
>
>
>
>                   /**
>
>                    * [EMAIL PROTECTED]
>
>                    */
>
>                   @Override
>
>                   protected final void onSubmit(final AjaxRequestTarget 
> target) {
>
>                         System.out.println(" onSubmit( ) for 
> AjaxFormSubmitBehavior called ....");
>
>                         // set the Model for the panel (with model object 
> actor)
>
>  AbstractActorInformationPanel.this.setModelObject((Actor)
>
>  
> AbstractActorInformationPanel.this.setReviewPlan(getReviewPlanForActor((Actor)
>  actorInformationAutoCompleteTextField .getModelObject())); 
> <------------------------ When I try to do getModelObject( ) here it gives me 
> Class Cast Exception! (Cannot convert from String to Actor)
>
>                   }
>
>
>
>                   /**
>
>                    * [EMAIL PROTECTED]
>
>                    */
>
>                   @Override
>
>                   protected final void onError(final AjaxRequestTarget 
> target) {
>
>                         System.out.println(" onError( ) for 
> AjaxFormSubmitBehavior called ....");
>
>                   }
>
>             });
>
>
>
>
>
>  Can someone tell me what's wrong?
>
>
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: [EMAIL PROTECTED]
>  For additional commands, e-mail: [EMAIL PROTECTED]
>
>



-- 
Ryan Gravener
http://ryangravener.com

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

Reply via email to