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]

Reply via email to