AbstractAjaxBehavior.class.get[Declared]Field()
On Nov 9, 2014 5:44 PM, "Maxim Solodovnik" <solomax...@gmail.com> wrote:

> aab.getClass().getField("component")
>
> NoSuchFieldException :(
> Debugger displays "component" field ....
>
> aab.getClass().getMethod("getComponent")
> NoSuchMethodException
>
> not sure what's happening
>
> On 9 November 2014 21:33, Martin Grigorov <mgrigo...@apache.org> wrote:
>
> > Use getField() instead
> > On Nov 9, 2014 4:34 PM, "Maxim Solodovnik" <solomax...@gmail.com> wrote:
> >
> > > Somehow "component" field is not accessible via reflection:
> > >
> > > Field f = submittingButton.getClass().getDeclaredField("this$0");
> > > if (!f.isAccessible()) {
> > > f.setAccessible(true);
> > > }
> > > Object o = f.get(submittingButton);
> > > if (o instanceof AbstractAjaxBehavior) {
> > > AbstractAjaxBehavior aab = (AbstractAjaxBehavior)o;
> > > Field inputf = aab.getClass().getDeclaredField("component");
> > > inputName = ((IFormSubmittingComponent)inputf.get(o)).getInputName();
> > > }
> > >
> > > results NoSuchFieldException in this:
> > > Field inputf = aab.getClass().getDeclaredField("component");
> > > line.
> > >
> > > seems to be dead-end :(
> > >
> > > On 9 November 2014 20:01, Maxim Solodovnik <solomax...@gmail.com>
> wrote:
> > >
> > > > Yes, Thanks!
> > > > currently adding another reflection call to get component :)
> > > >
> > > > On 9 November 2014 19:59, Martin Grigorov <mgrigo...@apache.org>
> > wrote:
> > > >
> > > >> True.
> > > >>
> > > >> Another approach is to add getFormSubmittingComponent() to
> > > IFormSubmitter
> > > >> interface.
> > > >> But this is definitely only for 7.x.
> > > >>
> > > >> Did it work with this$0 ?
> > > >>
> > > >> Martin Grigorov
> > > >> Wicket Training and Consulting
> > > >> https://twitter.com/mtgrigorov
> > > >>
> > > >> On Sun, Nov 9, 2014 at 3:52 PM, Maxim Solodovnik <
> > solomax...@gmail.com>
> > > >> wrote:
> > > >>
> > > >> > one more thing: getComponent() is protected and not accessible :(
> > > >> >
> > > >> > On 9 November 2014 19:27, Maxim Solodovnik <solomax...@gmail.com>
> > > >> wrote:
> > > >> >
> > > >> > > Done: https://issues.apache.org/jira/browse/WICKET-5753
> > > >> > > Thanks a lot Martin, will try "to use the special variable
> > "this$0"
> > > >> via
> > > >> > > reflection"
> > > >> > >
> > > >> > > On 9 November 2014 19:14, Martin Grigorov <mgrigo...@apache.org
> >
> > > >> wrote:
> > > >> > >
> > > >> > >> I don't see a clean way how to accomplish what you need :-/
> > > >> > >> What I would try is to use the special variable "this$0" via
> > > >> reflection
> > > >> > to
> > > >> > >> get a reference to the AjaxFormSubmitBehavior instance
> > > >> > >>
> > > >> > >> I see a way to simplify this code so it will be possible to do
> > what
> > > >> you
> > > >> > >> need:
> > > >> > >> 1) AjaxFormSubmitBehavior should implement IFormSubmitter
> > > >> > >> 2) onEvent() should do:
> > > getForm().getRootForm().onFormSubmitted(this)
> > > >> > >>
> > > >> > >> then you can cast to AbstractAjaxBehavior and call
> getComponent()
> > > and
> > > >> > then
> > > >> > >> cast to IFormSubmittingComponent to get the input name
> > > >> > >>
> > > >> > >> I'm not sure whether clirr-maven-plugin will allow this change
> in
> > > 6.x
> > > >> > >> though
> > > >> > >>
> > > >> > >> Please file a ticket and I'll take a look in the next days.
> > > >> > >>
> > > >> > >>
> > > >> > >> Martin Grigorov
> > > >> > >> Wicket Training and Consulting
> > > >> > >> https://twitter.com/mtgrigorov
> > > >> > >>
> > > >> > >> On Sun, Nov 9, 2014 at 3:01 PM, Maxim Solodovnik <
> > > >> solomax...@gmail.com>
> > > >> > >> wrote:
> > > >> > >>
> > > >> > >> > Multi-submit button form, and the logic should be in onSubmit
> > > >> method
> > > >> > but
> > > >> > >> > should be different based on button
> > > >> > >> >
> > > >> > >> > On 9 November 2014 19:00, Maxim Solodovnik <
> > solomax...@gmail.com
> > > >
> > > >> > >> wrote:
> > > >> > >> >
> > > >> > >> > > In old code there was logic to perform different actions
> > based
> > > on
> > > >> > >> > > inputName :(
> > > >> > >> > >
> > > >> > >> > >
> > > >> > >> > > On 9 November 2014 18:57, Martin Grigorov <
> > > mgrigo...@apache.org>
> > > >> > >> wrote:
> > > >> > >> > >
> > > >> > >> > >> Hi,
> > > >> > >> > >>
> > > >> > >> > >> It is an anonymous instance -
> > > >> > >> > >>
> > > >> > >> > >>
> > > >> > >> >
> > > >> > >>
> > > >> >
> > > >>
> > >
> >
> https://github.com/apache/wicket/blob/master/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehavior.java#L159
> > > >> > >> > >> And there is no way to get an inputName because it is not
> > > >> > associated
> > > >> > >> > >> with IFormSubmittingComponent
> > > >> > >> > >>
> > > >> > >> > >> Why do you need the inputName ?
> > > >> > >> > >>
> > > >> > >> > >> Martin Grigorov
> > > >> > >> > >> Wicket Training and Consulting
> > > >> > >> > >> https://twitter.com/mtgrigorov
> > > >> > >> > >>
> > > >> > >> > >> On Sun, Nov 9, 2014 at 2:52 PM, Maxim Solodovnik <
> > > >> > >> solomax...@gmail.com>
> > > >> > >> > >> wrote:
> > > >> > >> > >>
> > > >> > >> > >> > unfortunately I'm unable to guess :(
> > > >> > >> > >> >
> > > >> > >> > >> > submittingButton instanceof IFormSubmitter
> > > >> > >> > >> >
> > > >> > >> > >> > I'm out of ideas, this is why i wrote to the list :(
> > > >> > >> > >> >
> > > >> > >> > >> > On 9 November 2014 18:49, Francois Meillet <
> > > >> > >> > francois.meil...@gmail.com>
> > > >> > >> > >> > wrote:
> > > >> > >> > >> >
> > > >> > >> > >> > > What instanceof is this submittingButton  ?
> > > >> > >> > >> > >
> > > >> > >> > >> > > François Meillet
> > > >> > >> > >> > > Formation Wicket - Développement Wicket
> > > >> > >> > >> > >
> > > >> > >> > >> > >
> > > >> > >> > >> > >
> > > >> > >> > >> > >
> > > >> > >> > >> > >
> > > >> > >> > >> > > Le 9 nov. 2014 à 13:42, Maxim Solodovnik <
> > > >> solomax...@gmail.com
> > > >> > >
> > > >> > >> a
> > > >> > >> > >> écrit
> > > >> > >> > >> > :
> > > >> > >> > >> > >
> > > >> > >> > >> > > > Thanks for the quick response!
> > > >> > >> > >> > > >
> > > >> > >> > >> > > > Unfortunately this solution is not working due to:
> > > >> > >> > >> > > > submittingButton instanceof
> > > >> > >> > >> > > > org.apache.wicket.markup.html.form.FormComponent ==
> > > false
> > > >> > >> > >> > > > submittingButton instanceof
> > org.apache.wicket.Component
> > > ==
> > > >> > >> false
> > > >> > >> > >> > > > submittingButton instanceof submittingButton
> > instanceof
> > > >> > >> > >> > > > org.apache.wicket.behavior.Behavior == false
> > > >> > >> > >> > > >
> > > >> > >> > >> > > >
> > > >> > >> > >> > > > On 9 November 2014 18:37, Francois Meillet <
> > > >> > >> > >> francois.meil...@gmail.com
> > > >> > >> > >> > >
> > > >> > >> > >> > > > wrote:
> > > >> > >> > >> > > >
> > > >> > >> > >> > > >> String inputName = ((FormComponent)
> > > >> > >> > >> submittingButton).getInputName();
> > > >> > >> > >> > > >>
> > > >> > >> > >> > > >>
> > > >> > >> > >> > > >> François Meillet
> > > >> > >> > >> > > >> Formation Wicket - Développement Wicket
> > > >> > >> > >> > > >>
> > > >> > >> > >> > > >>
> > > >> > >> > >> > > >>
> > > >> > >> > >> > > >>
> > > >> > >> > >> > > >>
> > > >> > >> > >> > > >> Le 9 nov. 2014 à 13:08, Maxim Solodovnik <
> > > >> > >> solomax...@gmail.com>
> > > >> > >> > a
> > > >> > >> > >> > > écrit :
> > > >> > >> > >> > > >>
> > > >> > >> > >> > > >>> Hello All,
> > > >> > >> > >> > > >>>
> > > >> > >> > >> > > >>> I'm trying to migrate project from Wicket 1.4 to
> > > Wicket
> > > >> 6.
> > > >> > >> > >> > > >>>
> > > >> > >> > >> > > >>> previously Form.delegateSubmit was
> > > Form.delegateSubmit(
> > > >> > >> > >> > > >>> IFormSubmittingComponent
> > > >> > >> > >> > > >>> <
> > > >> > >> > >> > > >>
> > > >> > >> > >> > >
> > > >> > >> > >> >
> > > >> > >> > >>
> > > >> > >> >
> > > >> > >>
> > > >> >
> > > >>
> > >
> >
> http://ci.apache.org/projects/wicket/apidocs/1.4.x/org/apache/wicket/markup/html/form/IFormSubmittingComponent.html
> > > >> > >> > >> > > >>>
> > > >> > >> > >> > > >>> submittingComponent) and the code:
> > > >> > >> > >> > > >>> submittingComponent.getInputName() worked as
> > expected
> > > >> > >> > >> > > >>> right now it is:
> Form.delegateSubmit(IFormSubmitter
> > > >> > >> > >> submittingButton)
> > > >> > >> > >> > > and
> > > >> > >> > >> > > >>> it is impossible to get inputName anymore :(
> > > >> > >> > >> > > >>>
> > > >> > >> > >> > > >>> I tried to cast submittingComponent to
> > > >> > >> IFormSubmittingComponent
> > > >> > >> > >> but
> > > >> > >> > >> > it
> > > >> > >> > >> > > is
> > > >> > >> > >> > > >>> not working due to submittingComponent is of type
> > > >> > >> > >> > > >>>
> > > >> > >> "org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$1@33b88671
> "
> > > >> > >> > >> and
> > > >> > >> > >> > > I'm
> > > >> > >> > >> > > >>> unable to cast it to something useful :(
> > > >> > >> > >> > > >>>
> > > >> > >> > >> > > >>> Thanks in advance!
> > > >> > >> > >> > > >>>
> > > >> > >> > >> > > >>> --
> > > >> > >> > >> > > >>> WBR
> > > >> > >> > >> > > >>> Maxim aka solomax
> > > >> > >> > >> > > >>
> > > >> > >> > >> > > >>
> > > >> > >> > >> > > >
> > > >> > >> > >> > > >
> > > >> > >> > >> > > > --
> > > >> > >> > >> > > > WBR
> > > >> > >> > >> > > > Maxim aka solomax
> > > >> > >> > >> > >
> > > >> > >> > >> > >
> > > >> > >> > >> >
> > > >> > >> > >> >
> > > >> > >> > >> > --
> > > >> > >> > >> > WBR
> > > >> > >> > >> > Maxim aka solomax
> > > >> > >> > >> >
> > > >> > >> > >>
> > > >> > >> > >
> > > >> > >> > >
> > > >> > >> > >
> > > >> > >> > > --
> > > >> > >> > > WBR
> > > >> > >> > > Maxim aka solomax
> > > >> > >> > >
> > > >> > >> >
> > > >> > >> >
> > > >> > >> >
> > > >> > >> > --
> > > >> > >> > WBR
> > > >> > >> > Maxim aka solomax
> > > >> > >> >
> > > >> > >>
> > > >> > >
> > > >> > >
> > > >> > >
> > > >> > > --
> > > >> > > WBR
> > > >> > > Maxim aka solomax
> > > >> > >
> > > >> >
> > > >> >
> > > >> >
> > > >> > --
> > > >> > WBR
> > > >> > Maxim aka solomax
> > > >> >
> > > >>
> > > >
> > > >
> > > >
> > > > --
> > > > WBR
> > > > Maxim aka solomax
> > > >
> > >
> > >
> > >
> > > --
> > > WBR
> > > Maxim aka solomax
> > >
> >
>
>
>
> --
> WBR
> Maxim aka solomax
>

Reply via email to