easiest way to help you is if you create a quickstart and attach it to
a jira issue

-igor

On Thu, Oct 7, 2010 at 7:08 AM, Rut Bastoni <rut.bast...@poste.it> wrote:
> Hi everyone,
> i'm trying to implement a  custom TextField that fires "onchange" event
> without using Ajax (it is a requirement of my project - i have good reasons
> not to use Ajax).
>
> Looking at the source files of DropDownChoice, CheckBox etc. (they all
> implement the "wantOnSelectionChangedNotifications()" mechanism) i created a
> class:
>
> class OnChangeTextField<T> extends TextField<T> implements IOnChangeListener
> {
>
>   // ..... my stuff....
>
>   @Override
>   public void onSelectionChanged()
>   {
>           updateModel();
>           onSelectionChanged(getModelObject());
>   }
>
>   protected void onSelectionChanged(final Object newSelection)
>    {
>           System.out.println("Event fired");
>    }
>
>   /**
> * Processes the component tag - This is like DropDownChoice and other
> default FormComponents di
>    */
>   @Override
>   protected void onComponentTag(final ComponentTag tag)
>   {
>       // url that points to this components IOnChangeListener method
>       CharSequence url = urlFor(IOnChangeListener.INTERFACE);
>
>       Form<?> form = findParent(Form.class);
>       if (form != null)
>       {
>           tag.put("onchange", form.getJsForInterfaceUrl(url));
>       }
>           super.onComponentTag(tag);
>   }
>
> but that doesn't work. When i type into my textfield, i get an error page
> saying:
>
> WicketMessage: Attempt to access unknown request listener interface
> IRedirectListener
>
> Root cause:
>
> org.apache.wicket.WicketRuntimeException: Attempt to access unknown request
> listener interface IRedirectListener
> at org.apache.wicket.markup.html.form.Form.dispatchEvent(Form.java:1320)
> at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:870)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:182)
> at
> org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73)
>
> .... etc. etc.
>
> I looked into the sources, in particular Form.java, it seems like the url of
> my listener (obtained by "urlFor(IOnChangeListener.INTERFACE)") is wrong,
> because this is the value that get stored in the hidden fild of the form,
> and when the form dispatches events, it does not cause the correct
> IListenerInterfaceRequestTarget be created.
>
> I wonder, why does this mechanism work on DropDownChoice and others, and not
> on my component?
> Is this a bug? Or am I doing some mistake?
>
> Thanks a Lot
>
> Rut Bastoni
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to