You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Mihir Chhaya <mi...@gmail.com> on 2016/02/17 17:09:22 UTC

Wicketstuff editable grid - 7.1.0

Hello,

My apologies if this is not the right place to post wicketstuff related
issues. If so, then please advice me with right forum/link.

I am using Wicketstuff-editable-grid-7.1.0 (with dependency on
wicketstuff-inmethod-grid-7.1.0).

*Problem:*
When two editable grids from two separate child panels are rendered into
single container (parent panel), then clicking 'Edit' link in the row for
ClassA related editable grid throws 'No get method defined for the class'
error for ClassB property which is related to another editable grid.

*Requirement:*
I have a page with 4 different tabs. On one of the tabs, I want to use a
panel with two editable grids for two different static dataset Add/Edit
(One grid for tableA, another for tableB).

*Efforts:*
I have created two separate panel classes as below - each with it's own
form and editable grid with it's own editable data provider with respective
array list of different types. The columns supplied to EditableGrid class
contains
EditableTextFieldPropertyColumn<ClassA, String> and <ClassB, String>
respectively with own properties. Please note that I have used distinct
markup Ids for each panel and grid components to avoid any duplication;
with setting output markup id to true.

PanelA extends Panel{

    //Constructor
    // formA with editableGridA with editableDataProviderForClassA
}

PanelB extends Panel{

    //Constructor
    //formB with editableGridB with editableDataProviderForClassB using
}

Those two panels are added into parent panel as below:

TabbedPanel extends Panel{

     //Constructor
     // Panel panelA = new PanelA("aPanel");
     // Panel panelB = new PanelB("bPanel");
     // add(panelA); add(panelB);
}

As I have mentioned in the problem above; clicking on edit link for classA
related grid is throwing error for classB property, which is associated
with different editable grid.

Has anybody experienced similar issue? Any help/suggestions?

Thanks,
-Mihir.

Re: Wicketstuff editable grid - 7.1.0

Posted by Mihir Chhaya <mi...@gmail.com>.
Any suggestion, friends?

On Wed, Feb 17, 2016 at 11:09 AM, Mihir Chhaya <mi...@gmail.com>
wrote:

> Hello,
>
> My apologies if this is not the right place to post wicketstuff related
> issues. If so, then please advice me with right forum/link.
>
> I am using Wicketstuff-editable-grid-7.1.0 (with dependency on
> wicketstuff-inmethod-grid-7.1.0).
>
> *Problem:*
> When two editable grids from two separate child panels are rendered into
> single container (parent panel), then clicking 'Edit' link in the row for
> ClassA related editable grid throws 'No get method defined for the class'
> error for ClassB property which is related to another editable grid.
>
> *Requirement:*
> I have a page with 4 different tabs. On one of the tabs, I want to use a
> panel with two editable grids for two different static dataset Add/Edit
> (One grid for tableA, another for tableB).
>
> *Efforts:*
> I have created two separate panel classes as below - each with it's own
> form and editable grid with it's own editable data provider with respective
> array list of different types. The columns supplied to EditableGrid class
> contains
> EditableTextFieldPropertyColumn<ClassA, String> and <ClassB, String>
> respectively with own properties. Please note that I have used distinct
> markup Ids for each panel and grid components to avoid any duplication;
> with setting output markup id to true.
>
> PanelA extends Panel{
>
>     //Constructor
>     // formA with editableGridA with editableDataProviderForClassA
> }
>
> PanelB extends Panel{
>
>     //Constructor
>     //formB with editableGridB with editableDataProviderForClassB using
> }
>
> Those two panels are added into parent panel as below:
>
> TabbedPanel extends Panel{
>
>      //Constructor
>      // Panel panelA = new PanelA("aPanel");
>      // Panel panelB = new PanelB("bPanel");
>      // add(panelA); add(panelB);
> }
>
> As I have mentioned in the problem above; clicking on edit link for classA
> related grid is throwing error for classB property, which is associated
> with different editable grid.
>
> Has anybody experienced similar issue? Any help/suggestions?
>
> Thanks,
> -Mihir.
>
>
>

Re: Wicketstuff editable grid - 7.1.0

Posted by Mihir Chhaya <mi...@gmail.com>.
Done as below:
https://github.com/wicketstuff/core/issues/471

-Mihir.

On Wed, Feb 24, 2016 at 12:06 PM, Martin Grigorov <mg...@apache.org>
wrote:

> On Wed, Feb 24, 2016 at 5:59 PM, Mihir Chhaya <mi...@gmail.com>
> wrote:
>
> > Thanks, Martin for this.
> > Would this be an JIRA entry? As a bug or as an enhancement?
> >
>
> WicketStuff GitHub issue.
> It a problem in EditableGrid, not in Wicket.
>
>
> >
> > For now, It seems separating the editable grids on two different panels
> > would solve the problem.
> > As the newActionsColumn method in the EditableGrid is private, I can't
> > override.
>
>
> > -Mihir.
> >
> > On Wed, Feb 24, 2016 at 11:14 AM, Martin Grigorov <mg...@apache.org>
> > wrote:
> >
> > > Hi,
> > >
> > > The problem is in EditableGrid.
> > > When you click on "Save" button it
> > > executes
> > org.wicketstuff.egrid.column.EditableGridActionsPanel#newEditLink
> > > -> onClick().
> > > Here it does: send(getPage(), Broadcast.BREADTH, rowItem);
> > >
> > > As you can see this broadcasts the event to the whole page instead of
> > just
> > > the grid instance.
> > > Because of that both grid instances in the page receive this event and
> > try
> > > to use rowItem's (the payload) model. It works as desired for one of
> the
> > > grids but fails for the other.
> > >
> > >
> > > Martin Grigorov
> > > Wicket Training and Consulting
> > > https://twitter.com/mtgrigorov
> > >
> > > On Wed, Feb 24, 2016 at 3:42 PM, Martin Grigorov <mgrigorov@apache.org
> >
> > > wrote:
> > >
> > > > No sorry!
> > > > I didn't had a chance yet.
> > > >
> > > > Martin Grigorov
> > > > Wicket Training and Consulting
> > > > https://twitter.com/mtgrigorov
> > > >
> > > > On Wed, Feb 24, 2016 at 3:39 PM, Mihir Chhaya <
> mihir.chhaya@gmail.com>
> > > > wrote:
> > > >
> > > >> Martin,
> > > >>
> > > >> Just wanted to check if you got chance to look at the GitHub code
> and
> > if
> > > >> it
> > > >> is enough or any additional information is needed?
> > > >>
> > > >> Thanks,
> > > >> -Mihir.
> > > >>
> > > >> On Mon, Feb 22, 2016 at 10:26 AM, Mihir Chhaya <
> > mihir.chhaya@gmail.com>
> > > >> wrote:
> > > >>
> > > >> > Sure thing; I have put the code online at
> > > >> > https://github.com/mihirchhaya/egrid71
> > > >> >
> > > >> > Thanks,
> > > >> > -Mihir.
> > > >> >
> > > >> > On Sat, Feb 20, 2016 at 6:50 AM, Martin Grigorov <
> > > mgrigorov@apache.org>
> > > >> > wrote:
> > > >> >
> > > >> >> Hi,
> > > >> >>
> > > >> >> Please share the mini application somewhere, e.g. GitHub.
> > > >> >>
> > > >> >> Martin Grigorov
> > > >> >> Wicket Training and Consulting
> > > >> >> https://twitter.com/mtgrigorov
> > > >> >>
> > > >> >> On Fri, Feb 19, 2016 at 7:30 PM, Mihir Chhaya <
> > > mihir.chhaya@gmail.com>
> > > >> >> wrote:
> > > >> >>
> > > >> >> > Ok, so creating a small project with two panels(Person and
> > > Customer)
> > > >> >> and a
> > > >> >> > page for similar use case resulted in following stacktrace.
> > > >> >> > The panels are added in the order of PersonPanel, CustomerPanel
> > in
> > > >> the
> > > >> >> > parent page.
> > > >> >> >
> > > >> >> > The line# 163 in onSave method of EditableGrid is calling
> > > >> >> > EditableGrid.this.onSave(target, rowModel); I wonder if the
> > > >> reference to
> > > >> >> > this is referring to the first EditableGrid with Person
> records.
> > > >> >> Switching
> > > >> >> > the order of adding grid panels throws the error other way
> > around;
> > > >> >> > complaining for Person cannot be cast to Customer.
> > > >> >> >
> > > >> >> > *java.lang.ClassCastException: spikes.domain.Customer cannot be
> > > cast
> > > >> >> > to spikes.domain.Person*
> > > >> >> >      at spikes.view.PersonPanel$1.onSave(PersonPanel.java:68)
> > > >> >> >      at
> > > >> >>
> org.wicketstuff.egrid.EditableGrid$3.onSave(EditableGrid.java:163)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.wicketstuff.egrid.column.EditableGridActionsColumn$1.onSave(EditableGridActionsColumn.java:34)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.wicketstuff.egrid.column.EditableGridActionsPanel$2.onSuccess(EditableGridActionsPanel.java:71)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.wicketstuff.egrid.component.EditableGridSubmitLink.onSubmit(EditableGridSubmitLink.java:37)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:110)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$AjaxFormSubmitter.onSubmit(AjaxFormSubmitBehavior.java:215)
> > > >> >> >      at
> > > >> >> >
> > > >>
> org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1307)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.wicketstuff.egrid.EditableGrid$NonValidatingForm.process(EditableGrid.java:79)
> > > >> >> >      at
> > > >> >> >
> > > >>
> org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:795)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:171)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:155)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:588)
> > > >> >> >      at java.lang.reflect.Method.invoke(Method.java:606)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:203)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:284)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> > > >> >> >      at java.lang.Thread.run(Thread.java:744)
> > > >> >> >
> > > >> >> > Complete stack:
> > > >> >> >
> > > >> >> > org.apache.wicket.WicketRuntimeException: Method onRequest of
> > > >> >> > interface org.apache.wicket.behavior.IBehaviorListener targeted
> > at
> > > >> >> >
> org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1@47743d65
> > > on
> > > >> >> > component [EditableGridSubmitLink [Component id = save]] threw
> an
> > > >> >> > exception
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:268)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
> > > >> >> >
> > > >> >> > java.lang.reflect.InvocationTargetException
> > > >> >> >      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> > Method)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> > > >> >> >      at java.lang.reflect.Method.invoke(Method.java:606)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
> > > >> >> >      at
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
> > > >> >> >
> > > >> >> >
> > > >> >> > On Fri, Feb 19, 2016 at 12:15 PM, Mihir Chhaya <
> > > >> mihir.chhaya@gmail.com>
> > > >> >> > wrote:
> > > >> >> >
> > > >> >> > > Just realized that last two lines could be confusing: the
> > > >> >> decisionCode is
> > > >> >> > > the property of class PcaCodes in pcapanel, but showing up
> for
> > > >> >> > exccodepanel
> > > >> >> > > row item.
> > > >> >> > >
> > > >> >> > > On Fri, Feb 19, 2016 at 12:06 PM, Mihir Chhaya <
> > > >> >> mihir.chhaya@gmail.com>
> > > >> >> > > wrote:
> > > >> >> > >
> > > >> >> > >> My mistake about the inmethod grid dependency. I don't know
> > why
> > > I
> > > >> saw
> > > >> >> > >> compilation error in editable grid class when removed
> inmethod
> > > >> grid
> > > >> >> jar
> > > >> >> > >> from classpath.
> > > >> >> > >>
> > > >> >> > >> For debugging the respond method as your suggestion, I do
> see
> > > >> correct
> > > >> >> > >> class types for each rowItem (as attachment). But it fails
> > with
> > > >> >> > following
> > > >> >> > >> error:
> > > >> >> > >>
> > > >> >> > >> Last cause: No get method defined for class: class
> > > >> >> > >> packagename.ExceptionalDocCode expression: decisionCode
> > > >> >> > >> WicketMessage: Exception in rendering component:
> > > >> >> > >> [EditableTextFieldCellPanel [Component id = cell]]
> > > >> >> > >>
> > > >> >> > >>
> > > >> >> > >> On Thu, Feb 18, 2016 at 5:06 PM, Martin Grigorov <
> > > >> >> mgrigorov@apache.org>
> > > >> >> > >> wrote:
> > > >> >> > >>
> > > >> >> > >>> On Thu, Feb 18, 2016 at 10:53 PM, Mihir Chhaya <
> > > >> >> mihir.chhaya@gmail.com
> > > >> >> > >
> > > >> >> > >>> wrote:
> > > >> >> > >>>
> > > >> >> > >>> > Thanks, Martin.
> > > >> >> > >>> >
> > > >> >> > >>> > By writing dependency on wicket in-method grid I meant
> > > editable
> > > >> >> grid
> > > >> >> > >>> > inherently referring inmethod grid.
> > > >> >> > >>> >
> > > >> >> > >>>
> > > >> >> > >>>
> > > >> >> > >>>
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/editable-grid/pom.xml
> > > >> >> > >>>
> > > >> >> > >>>
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/pom.xml
> > > >> >> > >>> The only dependency is wicket-extensions.
> > > >> >> > >>> I am not sure what you mean by "inherently referring".
> > > >> >> > >>>
> > > >> >> > >>>
> > > >> >> > >>> >
> > > >> >> > >>> > I did check the Ajax url earlier and following are the
> > values
> > > >> in
> > > >> >> > >>> rendered
> > > >> >> > >>> > html page for the panel.
> > > >> >> > >>> >
> > > >> >> > >>> >
> > > >> >> > >>> >
> > > >> >> > >>>
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-pcapanel-pcacodegridForm-pcaDataTable-form-dataTable-body-rows-16-cells-6-cell-edit","c":"edit104","e":"click"});;
> > > >> >> > >>> >
> > > >> >> > >>> >
> > > >> >> > >>> >
> > > >> >> > >>>
> > > >> >> >
> > > >> >>
> > > >>
> > >
> >
> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-exccodepanel-excdoccodegridForm-excDataTable-form-dataTable-body-rows-10-cells-4-cell-edit","c":"edit113","e":"click"});;
> > > >> >> > >>> >
> > > >> >> > >>>
> > > >> >> > >>> Assuming that 'pcapanel' is 'aPanel' and 'exccodepanel' is
> > > >> 'bPanel'
> > > >> >> > >>> everything looks OK.
> > > >> >> > >>> Clicking on any of those cells should correctly find the
> > > >> respective
> > > >> >> > grid
> > > >> >> > >>> cell and execute its Ajax behavior.
> > > >> >> > >>> Put a breakpoint in AjaxEventBehavior#respond() and see why
> > it
> > > >> finds
> > > >> >> > >>> ClassB.
> > > >> >> > >>>
> > > >> >> > >>>
> > > >> >> > >>> >
> > > >> >> > >>> > Thanks,
> > > >> >> > >>> > -Mihir.
> > > >> >> > >>> >
> > > >> >> > >>> > On Thu, Feb 18, 2016 at 3:18 PM, Martin Grigorov <
> > > >> >> > mgrigorov@apache.org
> > > >> >> > >>> >
> > > >> >> > >>> > wrote:
> > > >> >> > >>> >
> > > >> >> > >>> > > Hi,
> > > >> >> > >>> > >
> > > >> >> > >>> > > On Wed, Feb 17, 2016 at 5:09 PM, Mihir Chhaya <
> > > >> >> > >>> mihir.chhaya@gmail.com>
> > > >> >> > >>> > > wrote:
> > > >> >> > >>> > >
> > > >> >> > >>> > > > Hello,
> > > >> >> > >>> > > >
> > > >> >> > >>> > > > My apologies if this is not the right place to post
> > > >> >> wicketstuff
> > > >> >> > >>> related
> > > >> >> > >>> > > > issues. If so, then please advice me with right
> > > forum/link.
> > > >> >> > >>> > > >
> > > >> >> > >>> > >
> > > >> >> > >>> > > This is the right forum!
> > > >> >> > >>> > >
> > > >> >> > >>> > >
> > > >> >> > >>> > > >
> > > >> >> > >>> > > > I am using Wicketstuff-editable-grid-7.1.0 (with
> > > >> dependency on
> > > >> >> > >>> > > > wicketstuff-inmethod-grid-7.1.0).
> > > >> >> > >>> > > >
> > > >> >> > >>> > >
> > > >> >> > >>> > > Why InMethod-Grid is needed? Or you are migrating from
> > > >> Inmethod
> > > >> >> to
> > > >> >> > >>> > Editable
> > > >> >> > >>> > > ?
> > > >> >> > >>> > >
> > > >> >> > >>> > >
> > > >> >> > >>> > > >
> > > >> >> > >>> > > > *Problem:*
> > > >> >> > >>> > > > When two editable grids from two separate child
> panels
> > > are
> > > >> >> > rendered
> > > >> >> > >>> > into
> > > >> >> > >>> > > > single container (parent panel), then clicking 'Edit'
> > > link
> > > >> in
> > > >> >> the
> > > >> >> > >>> row
> > > >> >> > >>> > for
> > > >> >> > >>> > > > ClassA related editable grid throws 'No get method
> > > defined
> > > >> for
> > > >> >> > the
> > > >> >> > >>> > class'
> > > >> >> > >>> > > > error for ClassB property which is related to another
> > > >> editable
> > > >> >> > >>> grid.
> > > >> >> > >>> > > >
> > > >> >> > >>> > >
> > > >> >> > >>> > > Check what is the url for the Ajax call that is made.
> > > >> >> > >>> > > This should tell you why it finds ClassB instead of
> > ClassA.
> > > >> >> > >>> > >
> > > >> >> > >>> > >
> > > >> >> > >>> > > >
> > > >> >> > >>> > > > *Requirement:*
> > > >> >> > >>> > > > I have a page with 4 different tabs. On one of the
> > tabs,
> > > I
> > > >> >> want
> > > >> >> > to
> > > >> >> > >>> use
> > > >> >> > >>> > a
> > > >> >> > >>> > > > panel with two editable grids for two different
> static
> > > >> dataset
> > > >> >> > >>> Add/Edit
> > > >> >> > >>> > > > (One grid for tableA, another for tableB).
> > > >> >> > >>> > > >
> > > >> >> > >>> > > > *Efforts:*
> > > >> >> > >>> > > > I have created two separate panel classes as below -
> > each
> > > >> with
> > > >> >> > >>> it's own
> > > >> >> > >>> > > > form and editable grid with it's own editable data
> > > provider
> > > >> >> with
> > > >> >> > >>> > > respective
> > > >> >> > >>> > > > array list of different types. The columns supplied
> to
> > > >> >> > EditableGrid
> > > >> >> > >>> > class
> > > >> >> > >>> > > > contains
> > > >> >> > >>> > > > EditableTextFieldPropertyColumn<ClassA, String> and
> > > >> <ClassB,
> > > >> >> > >>> String>
> > > >> >> > >>> > > > respectively with own properties. Please note that I
> > have
> > > >> used
> > > >> >> > >>> distinct
> > > >> >> > >>> > > > markup Ids for each panel and grid components to
> avoid
> > > any
> > > >> >> > >>> duplication;
> > > >> >> > >>> > > > with setting output markup id to true.
> > > >> >> > >>> > > >
> > > >> >> > >>> > > > PanelA extends Panel{
> > > >> >> > >>> > > >
> > > >> >> > >>> > > >     //Constructor
> > > >> >> > >>> > > >     // formA with editableGridA with
> > > >> >> > editableDataProviderForClassA
> > > >> >> > >>> > > > }
> > > >> >> > >>> > > >
> > > >> >> > >>> > > > PanelB extends Panel{
> > > >> >> > >>> > > >
> > > >> >> > >>> > > >     //Constructor
> > > >> >> > >>> > > >     //formB with editableGridB with
> > > >> >> editableDataProviderForClassB
> > > >> >> > >>> using
> > > >> >> > >>> > > > }
> > > >> >> > >>> > > >
> > > >> >> > >>> > > > Those two panels are added into parent panel as
> below:
> > > >> >> > >>> > > >
> > > >> >> > >>> > > > TabbedPanel extends Panel{
> > > >> >> > >>> > > >
> > > >> >> > >>> > > >      //Constructor
> > > >> >> > >>> > > >      // Panel panelA = new PanelA("aPanel");
> > > >> >> > >>> > > >      // Panel panelB = new PanelB("bPanel");
> > > >> >> > >>> > > >      // add(panelA); add(panelB);
> > > >> >> > >>> > > > }
> > > >> >> > >>> > > >
> > > >> >> > >>> > > > As I have mentioned in the problem above; clicking on
> > > edit
> > > >> >> link
> > > >> >> > for
> > > >> >> > >>> > > classA
> > > >> >> > >>> > > > related grid is throwing error for classB property,
> > which
> > > >> is
> > > >> >> > >>> associated
> > > >> >> > >>> > > > with different editable grid.
> > > >> >> > >>> > > >
> > > >> >> > >>> > > > Has anybody experienced similar issue? Any
> > > >> help/suggestions?
> > > >> >> > >>> > > >
> > > >> >> > >>> > >
> > > >> >> > >>> > > Everything looks OK.
> > > >> >> > >>> > > Check whether the url for the Ajax call after clicking
> on
> > > the
> > > >> >> cell
> > > >> >> > >>> > contains
> > > >> >> > >>> > > "aPanel" or "bPanel".
> > > >> >> > >>> > >
> > > >> >> > >>> > >
> > > >> >> > >>> > > >
> > > >> >> > >>> > > > Thanks,
> > > >> >> > >>> > > > -Mihir.
> > > >> >> > >>> > > >
> > > >> >> > >>> > >
> > > >> >> > >>> >
> > > >> >> > >>>
> > > >> >> > >>
> > > >> >> > >>
> > > >> >> > >
> > > >> >> >
> > > >> >>
> > > >> >
> > > >> >
> > > >>
> > > >
> > > >
> > >
> >
>

Re: Wicketstuff editable grid - 7.1.0

Posted by Martin Grigorov <mg...@apache.org>.
On Wed, Feb 24, 2016 at 5:59 PM, Mihir Chhaya <mi...@gmail.com>
wrote:

> Thanks, Martin for this.
> Would this be an JIRA entry? As a bug or as an enhancement?
>

WicketStuff GitHub issue.
It a problem in EditableGrid, not in Wicket.


>
> For now, It seems separating the editable grids on two different panels
> would solve the problem.
> As the newActionsColumn method in the EditableGrid is private, I can't
> override.


> -Mihir.
>
> On Wed, Feb 24, 2016 at 11:14 AM, Martin Grigorov <mg...@apache.org>
> wrote:
>
> > Hi,
> >
> > The problem is in EditableGrid.
> > When you click on "Save" button it
> > executes
> org.wicketstuff.egrid.column.EditableGridActionsPanel#newEditLink
> > -> onClick().
> > Here it does: send(getPage(), Broadcast.BREADTH, rowItem);
> >
> > As you can see this broadcasts the event to the whole page instead of
> just
> > the grid instance.
> > Because of that both grid instances in the page receive this event and
> try
> > to use rowItem's (the payload) model. It works as desired for one of the
> > grids but fails for the other.
> >
> >
> > Martin Grigorov
> > Wicket Training and Consulting
> > https://twitter.com/mtgrigorov
> >
> > On Wed, Feb 24, 2016 at 3:42 PM, Martin Grigorov <mg...@apache.org>
> > wrote:
> >
> > > No sorry!
> > > I didn't had a chance yet.
> > >
> > > Martin Grigorov
> > > Wicket Training and Consulting
> > > https://twitter.com/mtgrigorov
> > >
> > > On Wed, Feb 24, 2016 at 3:39 PM, Mihir Chhaya <mi...@gmail.com>
> > > wrote:
> > >
> > >> Martin,
> > >>
> > >> Just wanted to check if you got chance to look at the GitHub code and
> if
> > >> it
> > >> is enough or any additional information is needed?
> > >>
> > >> Thanks,
> > >> -Mihir.
> > >>
> > >> On Mon, Feb 22, 2016 at 10:26 AM, Mihir Chhaya <
> mihir.chhaya@gmail.com>
> > >> wrote:
> > >>
> > >> > Sure thing; I have put the code online at
> > >> > https://github.com/mihirchhaya/egrid71
> > >> >
> > >> > Thanks,
> > >> > -Mihir.
> > >> >
> > >> > On Sat, Feb 20, 2016 at 6:50 AM, Martin Grigorov <
> > mgrigorov@apache.org>
> > >> > wrote:
> > >> >
> > >> >> Hi,
> > >> >>
> > >> >> Please share the mini application somewhere, e.g. GitHub.
> > >> >>
> > >> >> Martin Grigorov
> > >> >> Wicket Training and Consulting
> > >> >> https://twitter.com/mtgrigorov
> > >> >>
> > >> >> On Fri, Feb 19, 2016 at 7:30 PM, Mihir Chhaya <
> > mihir.chhaya@gmail.com>
> > >> >> wrote:
> > >> >>
> > >> >> > Ok, so creating a small project with two panels(Person and
> > Customer)
> > >> >> and a
> > >> >> > page for similar use case resulted in following stacktrace.
> > >> >> > The panels are added in the order of PersonPanel, CustomerPanel
> in
> > >> the
> > >> >> > parent page.
> > >> >> >
> > >> >> > The line# 163 in onSave method of EditableGrid is calling
> > >> >> > EditableGrid.this.onSave(target, rowModel); I wonder if the
> > >> reference to
> > >> >> > this is referring to the first EditableGrid with Person records.
> > >> >> Switching
> > >> >> > the order of adding grid panels throws the error other way
> around;
> > >> >> > complaining for Person cannot be cast to Customer.
> > >> >> >
> > >> >> > *java.lang.ClassCastException: spikes.domain.Customer cannot be
> > cast
> > >> >> > to spikes.domain.Person*
> > >> >> >      at spikes.view.PersonPanel$1.onSave(PersonPanel.java:68)
> > >> >> >      at
> > >> >> org.wicketstuff.egrid.EditableGrid$3.onSave(EditableGrid.java:163)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.wicketstuff.egrid.column.EditableGridActionsColumn$1.onSave(EditableGridActionsColumn.java:34)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.wicketstuff.egrid.column.EditableGridActionsPanel$2.onSuccess(EditableGridActionsPanel.java:71)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.wicketstuff.egrid.component.EditableGridSubmitLink.onSubmit(EditableGridSubmitLink.java:37)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:110)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$AjaxFormSubmitter.onSubmit(AjaxFormSubmitBehavior.java:215)
> > >> >> >      at
> > >> >> >
> > >> org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1307)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.wicketstuff.egrid.EditableGrid$NonValidatingForm.process(EditableGrid.java:79)
> > >> >> >      at
> > >> >> >
> > >> org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:795)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:171)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:155)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:588)
> > >> >> >      at java.lang.reflect.Method.invoke(Method.java:606)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:203)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:284)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> > >> >> >      at java.lang.Thread.run(Thread.java:744)
> > >> >> >
> > >> >> > Complete stack:
> > >> >> >
> > >> >> > org.apache.wicket.WicketRuntimeException: Method onRequest of
> > >> >> > interface org.apache.wicket.behavior.IBehaviorListener targeted
> at
> > >> >> > org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1@47743d65
> > on
> > >> >> > component [EditableGridSubmitLink [Component id = save]] threw an
> > >> >> > exception
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:268)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
> > >> >> >
> > >> >> > java.lang.reflect.InvocationTargetException
> > >> >> >      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> > >> >> >      at java.lang.reflect.Method.invoke(Method.java:606)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
> > >> >> >      at
> > >> >> >
> > >> >>
> > >>
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
> > >> >> >
> > >> >> >
> > >> >> > On Fri, Feb 19, 2016 at 12:15 PM, Mihir Chhaya <
> > >> mihir.chhaya@gmail.com>
> > >> >> > wrote:
> > >> >> >
> > >> >> > > Just realized that last two lines could be confusing: the
> > >> >> decisionCode is
> > >> >> > > the property of class PcaCodes in pcapanel, but showing up for
> > >> >> > exccodepanel
> > >> >> > > row item.
> > >> >> > >
> > >> >> > > On Fri, Feb 19, 2016 at 12:06 PM, Mihir Chhaya <
> > >> >> mihir.chhaya@gmail.com>
> > >> >> > > wrote:
> > >> >> > >
> > >> >> > >> My mistake about the inmethod grid dependency. I don't know
> why
> > I
> > >> saw
> > >> >> > >> compilation error in editable grid class when removed inmethod
> > >> grid
> > >> >> jar
> > >> >> > >> from classpath.
> > >> >> > >>
> > >> >> > >> For debugging the respond method as your suggestion, I do see
> > >> correct
> > >> >> > >> class types for each rowItem (as attachment). But it fails
> with
> > >> >> > following
> > >> >> > >> error:
> > >> >> > >>
> > >> >> > >> Last cause: No get method defined for class: class
> > >> >> > >> packagename.ExceptionalDocCode expression: decisionCode
> > >> >> > >> WicketMessage: Exception in rendering component:
> > >> >> > >> [EditableTextFieldCellPanel [Component id = cell]]
> > >> >> > >>
> > >> >> > >>
> > >> >> > >> On Thu, Feb 18, 2016 at 5:06 PM, Martin Grigorov <
> > >> >> mgrigorov@apache.org>
> > >> >> > >> wrote:
> > >> >> > >>
> > >> >> > >>> On Thu, Feb 18, 2016 at 10:53 PM, Mihir Chhaya <
> > >> >> mihir.chhaya@gmail.com
> > >> >> > >
> > >> >> > >>> wrote:
> > >> >> > >>>
> > >> >> > >>> > Thanks, Martin.
> > >> >> > >>> >
> > >> >> > >>> > By writing dependency on wicket in-method grid I meant
> > editable
> > >> >> grid
> > >> >> > >>> > inherently referring inmethod grid.
> > >> >> > >>> >
> > >> >> > >>>
> > >> >> > >>>
> > >> >> > >>>
> > >> >> >
> > >> >>
> > >>
> >
> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/editable-grid/pom.xml
> > >> >> > >>>
> > >> >> > >>>
> > >> >> >
> > >> >>
> > >>
> >
> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/pom.xml
> > >> >> > >>> The only dependency is wicket-extensions.
> > >> >> > >>> I am not sure what you mean by "inherently referring".
> > >> >> > >>>
> > >> >> > >>>
> > >> >> > >>> >
> > >> >> > >>> > I did check the Ajax url earlier and following are the
> values
> > >> in
> > >> >> > >>> rendered
> > >> >> > >>> > html page for the panel.
> > >> >> > >>> >
> > >> >> > >>> >
> > >> >> > >>> >
> > >> >> > >>>
> > >> >> >
> > >> >>
> > >>
> >
> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-pcapanel-pcacodegridForm-pcaDataTable-form-dataTable-body-rows-16-cells-6-cell-edit","c":"edit104","e":"click"});;
> > >> >> > >>> >
> > >> >> > >>> >
> > >> >> > >>> >
> > >> >> > >>>
> > >> >> >
> > >> >>
> > >>
> >
> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-exccodepanel-excdoccodegridForm-excDataTable-form-dataTable-body-rows-10-cells-4-cell-edit","c":"edit113","e":"click"});;
> > >> >> > >>> >
> > >> >> > >>>
> > >> >> > >>> Assuming that 'pcapanel' is 'aPanel' and 'exccodepanel' is
> > >> 'bPanel'
> > >> >> > >>> everything looks OK.
> > >> >> > >>> Clicking on any of those cells should correctly find the
> > >> respective
> > >> >> > grid
> > >> >> > >>> cell and execute its Ajax behavior.
> > >> >> > >>> Put a breakpoint in AjaxEventBehavior#respond() and see why
> it
> > >> finds
> > >> >> > >>> ClassB.
> > >> >> > >>>
> > >> >> > >>>
> > >> >> > >>> >
> > >> >> > >>> > Thanks,
> > >> >> > >>> > -Mihir.
> > >> >> > >>> >
> > >> >> > >>> > On Thu, Feb 18, 2016 at 3:18 PM, Martin Grigorov <
> > >> >> > mgrigorov@apache.org
> > >> >> > >>> >
> > >> >> > >>> > wrote:
> > >> >> > >>> >
> > >> >> > >>> > > Hi,
> > >> >> > >>> > >
> > >> >> > >>> > > On Wed, Feb 17, 2016 at 5:09 PM, Mihir Chhaya <
> > >> >> > >>> mihir.chhaya@gmail.com>
> > >> >> > >>> > > wrote:
> > >> >> > >>> > >
> > >> >> > >>> > > > Hello,
> > >> >> > >>> > > >
> > >> >> > >>> > > > My apologies if this is not the right place to post
> > >> >> wicketstuff
> > >> >> > >>> related
> > >> >> > >>> > > > issues. If so, then please advice me with right
> > forum/link.
> > >> >> > >>> > > >
> > >> >> > >>> > >
> > >> >> > >>> > > This is the right forum!
> > >> >> > >>> > >
> > >> >> > >>> > >
> > >> >> > >>> > > >
> > >> >> > >>> > > > I am using Wicketstuff-editable-grid-7.1.0 (with
> > >> dependency on
> > >> >> > >>> > > > wicketstuff-inmethod-grid-7.1.0).
> > >> >> > >>> > > >
> > >> >> > >>> > >
> > >> >> > >>> > > Why InMethod-Grid is needed? Or you are migrating from
> > >> Inmethod
> > >> >> to
> > >> >> > >>> > Editable
> > >> >> > >>> > > ?
> > >> >> > >>> > >
> > >> >> > >>> > >
> > >> >> > >>> > > >
> > >> >> > >>> > > > *Problem:*
> > >> >> > >>> > > > When two editable grids from two separate child panels
> > are
> > >> >> > rendered
> > >> >> > >>> > into
> > >> >> > >>> > > > single container (parent panel), then clicking 'Edit'
> > link
> > >> in
> > >> >> the
> > >> >> > >>> row
> > >> >> > >>> > for
> > >> >> > >>> > > > ClassA related editable grid throws 'No get method
> > defined
> > >> for
> > >> >> > the
> > >> >> > >>> > class'
> > >> >> > >>> > > > error for ClassB property which is related to another
> > >> editable
> > >> >> > >>> grid.
> > >> >> > >>> > > >
> > >> >> > >>> > >
> > >> >> > >>> > > Check what is the url for the Ajax call that is made.
> > >> >> > >>> > > This should tell you why it finds ClassB instead of
> ClassA.
> > >> >> > >>> > >
> > >> >> > >>> > >
> > >> >> > >>> > > >
> > >> >> > >>> > > > *Requirement:*
> > >> >> > >>> > > > I have a page with 4 different tabs. On one of the
> tabs,
> > I
> > >> >> want
> > >> >> > to
> > >> >> > >>> use
> > >> >> > >>> > a
> > >> >> > >>> > > > panel with two editable grids for two different static
> > >> dataset
> > >> >> > >>> Add/Edit
> > >> >> > >>> > > > (One grid for tableA, another for tableB).
> > >> >> > >>> > > >
> > >> >> > >>> > > > *Efforts:*
> > >> >> > >>> > > > I have created two separate panel classes as below -
> each
> > >> with
> > >> >> > >>> it's own
> > >> >> > >>> > > > form and editable grid with it's own editable data
> > provider
> > >> >> with
> > >> >> > >>> > > respective
> > >> >> > >>> > > > array list of different types. The columns supplied to
> > >> >> > EditableGrid
> > >> >> > >>> > class
> > >> >> > >>> > > > contains
> > >> >> > >>> > > > EditableTextFieldPropertyColumn<ClassA, String> and
> > >> <ClassB,
> > >> >> > >>> String>
> > >> >> > >>> > > > respectively with own properties. Please note that I
> have
> > >> used
> > >> >> > >>> distinct
> > >> >> > >>> > > > markup Ids for each panel and grid components to avoid
> > any
> > >> >> > >>> duplication;
> > >> >> > >>> > > > with setting output markup id to true.
> > >> >> > >>> > > >
> > >> >> > >>> > > > PanelA extends Panel{
> > >> >> > >>> > > >
> > >> >> > >>> > > >     //Constructor
> > >> >> > >>> > > >     // formA with editableGridA with
> > >> >> > editableDataProviderForClassA
> > >> >> > >>> > > > }
> > >> >> > >>> > > >
> > >> >> > >>> > > > PanelB extends Panel{
> > >> >> > >>> > > >
> > >> >> > >>> > > >     //Constructor
> > >> >> > >>> > > >     //formB with editableGridB with
> > >> >> editableDataProviderForClassB
> > >> >> > >>> using
> > >> >> > >>> > > > }
> > >> >> > >>> > > >
> > >> >> > >>> > > > Those two panels are added into parent panel as below:
> > >> >> > >>> > > >
> > >> >> > >>> > > > TabbedPanel extends Panel{
> > >> >> > >>> > > >
> > >> >> > >>> > > >      //Constructor
> > >> >> > >>> > > >      // Panel panelA = new PanelA("aPanel");
> > >> >> > >>> > > >      // Panel panelB = new PanelB("bPanel");
> > >> >> > >>> > > >      // add(panelA); add(panelB);
> > >> >> > >>> > > > }
> > >> >> > >>> > > >
> > >> >> > >>> > > > As I have mentioned in the problem above; clicking on
> > edit
> > >> >> link
> > >> >> > for
> > >> >> > >>> > > classA
> > >> >> > >>> > > > related grid is throwing error for classB property,
> which
> > >> is
> > >> >> > >>> associated
> > >> >> > >>> > > > with different editable grid.
> > >> >> > >>> > > >
> > >> >> > >>> > > > Has anybody experienced similar issue? Any
> > >> help/suggestions?
> > >> >> > >>> > > >
> > >> >> > >>> > >
> > >> >> > >>> > > Everything looks OK.
> > >> >> > >>> > > Check whether the url for the Ajax call after clicking on
> > the
> > >> >> cell
> > >> >> > >>> > contains
> > >> >> > >>> > > "aPanel" or "bPanel".
> > >> >> > >>> > >
> > >> >> > >>> > >
> > >> >> > >>> > > >
> > >> >> > >>> > > > Thanks,
> > >> >> > >>> > > > -Mihir.
> > >> >> > >>> > > >
> > >> >> > >>> > >
> > >> >> > >>> >
> > >> >> > >>>
> > >> >> > >>
> > >> >> > >>
> > >> >> > >
> > >> >> >
> > >> >>
> > >> >
> > >> >
> > >>
> > >
> > >
> >
>

Re: Wicketstuff editable grid - 7.1.0

Posted by Mihir Chhaya <mi...@gmail.com>.
Thanks, Martin for this.
Would this be an JIRA entry? As a bug or as an enhancement?

For now, It seems separating the editable grids on two different panels
would solve the problem.
As the newActionsColumn method in the EditableGrid is private, I can't
override.

-Mihir.

On Wed, Feb 24, 2016 at 11:14 AM, Martin Grigorov <mg...@apache.org>
wrote:

> Hi,
>
> The problem is in EditableGrid.
> When you click on "Save" button it
> executes org.wicketstuff.egrid.column.EditableGridActionsPanel#newEditLink
> -> onClick().
> Here it does: send(getPage(), Broadcast.BREADTH, rowItem);
>
> As you can see this broadcasts the event to the whole page instead of just
> the grid instance.
> Because of that both grid instances in the page receive this event and try
> to use rowItem's (the payload) model. It works as desired for one of the
> grids but fails for the other.
>
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Wed, Feb 24, 2016 at 3:42 PM, Martin Grigorov <mg...@apache.org>
> wrote:
>
> > No sorry!
> > I didn't had a chance yet.
> >
> > Martin Grigorov
> > Wicket Training and Consulting
> > https://twitter.com/mtgrigorov
> >
> > On Wed, Feb 24, 2016 at 3:39 PM, Mihir Chhaya <mi...@gmail.com>
> > wrote:
> >
> >> Martin,
> >>
> >> Just wanted to check if you got chance to look at the GitHub code and if
> >> it
> >> is enough or any additional information is needed?
> >>
> >> Thanks,
> >> -Mihir.
> >>
> >> On Mon, Feb 22, 2016 at 10:26 AM, Mihir Chhaya <mi...@gmail.com>
> >> wrote:
> >>
> >> > Sure thing; I have put the code online at
> >> > https://github.com/mihirchhaya/egrid71
> >> >
> >> > Thanks,
> >> > -Mihir.
> >> >
> >> > On Sat, Feb 20, 2016 at 6:50 AM, Martin Grigorov <
> mgrigorov@apache.org>
> >> > wrote:
> >> >
> >> >> Hi,
> >> >>
> >> >> Please share the mini application somewhere, e.g. GitHub.
> >> >>
> >> >> Martin Grigorov
> >> >> Wicket Training and Consulting
> >> >> https://twitter.com/mtgrigorov
> >> >>
> >> >> On Fri, Feb 19, 2016 at 7:30 PM, Mihir Chhaya <
> mihir.chhaya@gmail.com>
> >> >> wrote:
> >> >>
> >> >> > Ok, so creating a small project with two panels(Person and
> Customer)
> >> >> and a
> >> >> > page for similar use case resulted in following stacktrace.
> >> >> > The panels are added in the order of PersonPanel, CustomerPanel in
> >> the
> >> >> > parent page.
> >> >> >
> >> >> > The line# 163 in onSave method of EditableGrid is calling
> >> >> > EditableGrid.this.onSave(target, rowModel); I wonder if the
> >> reference to
> >> >> > this is referring to the first EditableGrid with Person records.
> >> >> Switching
> >> >> > the order of adding grid panels throws the error other way around;
> >> >> > complaining for Person cannot be cast to Customer.
> >> >> >
> >> >> > *java.lang.ClassCastException: spikes.domain.Customer cannot be
> cast
> >> >> > to spikes.domain.Person*
> >> >> >      at spikes.view.PersonPanel$1.onSave(PersonPanel.java:68)
> >> >> >      at
> >> >> org.wicketstuff.egrid.EditableGrid$3.onSave(EditableGrid.java:163)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.wicketstuff.egrid.column.EditableGridActionsColumn$1.onSave(EditableGridActionsColumn.java:34)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.wicketstuff.egrid.column.EditableGridActionsPanel$2.onSuccess(EditableGridActionsPanel.java:71)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.wicketstuff.egrid.component.EditableGridSubmitLink.onSubmit(EditableGridSubmitLink.java:37)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:110)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$AjaxFormSubmitter.onSubmit(AjaxFormSubmitBehavior.java:215)
> >> >> >      at
> >> >> >
> >> org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1307)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.wicketstuff.egrid.EditableGrid$NonValidatingForm.process(EditableGrid.java:79)
> >> >> >      at
> >> >> >
> >> org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:795)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:171)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:155)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:588)
> >> >> >      at java.lang.reflect.Method.invoke(Method.java:606)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:203)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:284)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
> >> >> >      at
> >> >> >
> >> >>
> >>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> >> >> >      at
> >> >> >
> >> >>
> >>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> >> >> >      at java.lang.Thread.run(Thread.java:744)
> >> >> >
> >> >> > Complete stack:
> >> >> >
> >> >> > org.apache.wicket.WicketRuntimeException: Method onRequest of
> >> >> > interface org.apache.wicket.behavior.IBehaviorListener targeted at
> >> >> > org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1@47743d65
> on
> >> >> > component [EditableGridSubmitLink [Component id = save]] threw an
> >> >> > exception
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:268)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
> >> >> >
> >> >> > java.lang.reflect.InvocationTargetException
> >> >> >      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >> >> >      at
> >> >> >
> >> >>
> >>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> >> >> >      at java.lang.reflect.Method.invoke(Method.java:606)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
> >> >> >      at
> >> >> >
> >> >>
> >>
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
> >> >> >
> >> >> >
> >> >> > On Fri, Feb 19, 2016 at 12:15 PM, Mihir Chhaya <
> >> mihir.chhaya@gmail.com>
> >> >> > wrote:
> >> >> >
> >> >> > > Just realized that last two lines could be confusing: the
> >> >> decisionCode is
> >> >> > > the property of class PcaCodes in pcapanel, but showing up for
> >> >> > exccodepanel
> >> >> > > row item.
> >> >> > >
> >> >> > > On Fri, Feb 19, 2016 at 12:06 PM, Mihir Chhaya <
> >> >> mihir.chhaya@gmail.com>
> >> >> > > wrote:
> >> >> > >
> >> >> > >> My mistake about the inmethod grid dependency. I don't know why
> I
> >> saw
> >> >> > >> compilation error in editable grid class when removed inmethod
> >> grid
> >> >> jar
> >> >> > >> from classpath.
> >> >> > >>
> >> >> > >> For debugging the respond method as your suggestion, I do see
> >> correct
> >> >> > >> class types for each rowItem (as attachment). But it fails with
> >> >> > following
> >> >> > >> error:
> >> >> > >>
> >> >> > >> Last cause: No get method defined for class: class
> >> >> > >> packagename.ExceptionalDocCode expression: decisionCode
> >> >> > >> WicketMessage: Exception in rendering component:
> >> >> > >> [EditableTextFieldCellPanel [Component id = cell]]
> >> >> > >>
> >> >> > >>
> >> >> > >> On Thu, Feb 18, 2016 at 5:06 PM, Martin Grigorov <
> >> >> mgrigorov@apache.org>
> >> >> > >> wrote:
> >> >> > >>
> >> >> > >>> On Thu, Feb 18, 2016 at 10:53 PM, Mihir Chhaya <
> >> >> mihir.chhaya@gmail.com
> >> >> > >
> >> >> > >>> wrote:
> >> >> > >>>
> >> >> > >>> > Thanks, Martin.
> >> >> > >>> >
> >> >> > >>> > By writing dependency on wicket in-method grid I meant
> editable
> >> >> grid
> >> >> > >>> > inherently referring inmethod grid.
> >> >> > >>> >
> >> >> > >>>
> >> >> > >>>
> >> >> > >>>
> >> >> >
> >> >>
> >>
> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/editable-grid/pom.xml
> >> >> > >>>
> >> >> > >>>
> >> >> >
> >> >>
> >>
> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/pom.xml
> >> >> > >>> The only dependency is wicket-extensions.
> >> >> > >>> I am not sure what you mean by "inherently referring".
> >> >> > >>>
> >> >> > >>>
> >> >> > >>> >
> >> >> > >>> > I did check the Ajax url earlier and following are the values
> >> in
> >> >> > >>> rendered
> >> >> > >>> > html page for the panel.
> >> >> > >>> >
> >> >> > >>> >
> >> >> > >>> >
> >> >> > >>>
> >> >> >
> >> >>
> >>
> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-pcapanel-pcacodegridForm-pcaDataTable-form-dataTable-body-rows-16-cells-6-cell-edit","c":"edit104","e":"click"});;
> >> >> > >>> >
> >> >> > >>> >
> >> >> > >>> >
> >> >> > >>>
> >> >> >
> >> >>
> >>
> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-exccodepanel-excdoccodegridForm-excDataTable-form-dataTable-body-rows-10-cells-4-cell-edit","c":"edit113","e":"click"});;
> >> >> > >>> >
> >> >> > >>>
> >> >> > >>> Assuming that 'pcapanel' is 'aPanel' and 'exccodepanel' is
> >> 'bPanel'
> >> >> > >>> everything looks OK.
> >> >> > >>> Clicking on any of those cells should correctly find the
> >> respective
> >> >> > grid
> >> >> > >>> cell and execute its Ajax behavior.
> >> >> > >>> Put a breakpoint in AjaxEventBehavior#respond() and see why it
> >> finds
> >> >> > >>> ClassB.
> >> >> > >>>
> >> >> > >>>
> >> >> > >>> >
> >> >> > >>> > Thanks,
> >> >> > >>> > -Mihir.
> >> >> > >>> >
> >> >> > >>> > On Thu, Feb 18, 2016 at 3:18 PM, Martin Grigorov <
> >> >> > mgrigorov@apache.org
> >> >> > >>> >
> >> >> > >>> > wrote:
> >> >> > >>> >
> >> >> > >>> > > Hi,
> >> >> > >>> > >
> >> >> > >>> > > On Wed, Feb 17, 2016 at 5:09 PM, Mihir Chhaya <
> >> >> > >>> mihir.chhaya@gmail.com>
> >> >> > >>> > > wrote:
> >> >> > >>> > >
> >> >> > >>> > > > Hello,
> >> >> > >>> > > >
> >> >> > >>> > > > My apologies if this is not the right place to post
> >> >> wicketstuff
> >> >> > >>> related
> >> >> > >>> > > > issues. If so, then please advice me with right
> forum/link.
> >> >> > >>> > > >
> >> >> > >>> > >
> >> >> > >>> > > This is the right forum!
> >> >> > >>> > >
> >> >> > >>> > >
> >> >> > >>> > > >
> >> >> > >>> > > > I am using Wicketstuff-editable-grid-7.1.0 (with
> >> dependency on
> >> >> > >>> > > > wicketstuff-inmethod-grid-7.1.0).
> >> >> > >>> > > >
> >> >> > >>> > >
> >> >> > >>> > > Why InMethod-Grid is needed? Or you are migrating from
> >> Inmethod
> >> >> to
> >> >> > >>> > Editable
> >> >> > >>> > > ?
> >> >> > >>> > >
> >> >> > >>> > >
> >> >> > >>> > > >
> >> >> > >>> > > > *Problem:*
> >> >> > >>> > > > When two editable grids from two separate child panels
> are
> >> >> > rendered
> >> >> > >>> > into
> >> >> > >>> > > > single container (parent panel), then clicking 'Edit'
> link
> >> in
> >> >> the
> >> >> > >>> row
> >> >> > >>> > for
> >> >> > >>> > > > ClassA related editable grid throws 'No get method
> defined
> >> for
> >> >> > the
> >> >> > >>> > class'
> >> >> > >>> > > > error for ClassB property which is related to another
> >> editable
> >> >> > >>> grid.
> >> >> > >>> > > >
> >> >> > >>> > >
> >> >> > >>> > > Check what is the url for the Ajax call that is made.
> >> >> > >>> > > This should tell you why it finds ClassB instead of ClassA.
> >> >> > >>> > >
> >> >> > >>> > >
> >> >> > >>> > > >
> >> >> > >>> > > > *Requirement:*
> >> >> > >>> > > > I have a page with 4 different tabs. On one of the tabs,
> I
> >> >> want
> >> >> > to
> >> >> > >>> use
> >> >> > >>> > a
> >> >> > >>> > > > panel with two editable grids for two different static
> >> dataset
> >> >> > >>> Add/Edit
> >> >> > >>> > > > (One grid for tableA, another for tableB).
> >> >> > >>> > > >
> >> >> > >>> > > > *Efforts:*
> >> >> > >>> > > > I have created two separate panel classes as below - each
> >> with
> >> >> > >>> it's own
> >> >> > >>> > > > form and editable grid with it's own editable data
> provider
> >> >> with
> >> >> > >>> > > respective
> >> >> > >>> > > > array list of different types. The columns supplied to
> >> >> > EditableGrid
> >> >> > >>> > class
> >> >> > >>> > > > contains
> >> >> > >>> > > > EditableTextFieldPropertyColumn<ClassA, String> and
> >> <ClassB,
> >> >> > >>> String>
> >> >> > >>> > > > respectively with own properties. Please note that I have
> >> used
> >> >> > >>> distinct
> >> >> > >>> > > > markup Ids for each panel and grid components to avoid
> any
> >> >> > >>> duplication;
> >> >> > >>> > > > with setting output markup id to true.
> >> >> > >>> > > >
> >> >> > >>> > > > PanelA extends Panel{
> >> >> > >>> > > >
> >> >> > >>> > > >     //Constructor
> >> >> > >>> > > >     // formA with editableGridA with
> >> >> > editableDataProviderForClassA
> >> >> > >>> > > > }
> >> >> > >>> > > >
> >> >> > >>> > > > PanelB extends Panel{
> >> >> > >>> > > >
> >> >> > >>> > > >     //Constructor
> >> >> > >>> > > >     //formB with editableGridB with
> >> >> editableDataProviderForClassB
> >> >> > >>> using
> >> >> > >>> > > > }
> >> >> > >>> > > >
> >> >> > >>> > > > Those two panels are added into parent panel as below:
> >> >> > >>> > > >
> >> >> > >>> > > > TabbedPanel extends Panel{
> >> >> > >>> > > >
> >> >> > >>> > > >      //Constructor
> >> >> > >>> > > >      // Panel panelA = new PanelA("aPanel");
> >> >> > >>> > > >      // Panel panelB = new PanelB("bPanel");
> >> >> > >>> > > >      // add(panelA); add(panelB);
> >> >> > >>> > > > }
> >> >> > >>> > > >
> >> >> > >>> > > > As I have mentioned in the problem above; clicking on
> edit
> >> >> link
> >> >> > for
> >> >> > >>> > > classA
> >> >> > >>> > > > related grid is throwing error for classB property, which
> >> is
> >> >> > >>> associated
> >> >> > >>> > > > with different editable grid.
> >> >> > >>> > > >
> >> >> > >>> > > > Has anybody experienced similar issue? Any
> >> help/suggestions?
> >> >> > >>> > > >
> >> >> > >>> > >
> >> >> > >>> > > Everything looks OK.
> >> >> > >>> > > Check whether the url for the Ajax call after clicking on
> the
> >> >> cell
> >> >> > >>> > contains
> >> >> > >>> > > "aPanel" or "bPanel".
> >> >> > >>> > >
> >> >> > >>> > >
> >> >> > >>> > > >
> >> >> > >>> > > > Thanks,
> >> >> > >>> > > > -Mihir.
> >> >> > >>> > > >
> >> >> > >>> > >
> >> >> > >>> >
> >> >> > >>>
> >> >> > >>
> >> >> > >>
> >> >> > >
> >> >> >
> >> >>
> >> >
> >> >
> >>
> >
> >
>

Re: Wicketstuff editable grid - 7.1.0

Posted by Martin Grigorov <mg...@apache.org>.
Hi,

The problem is in EditableGrid.
When you click on "Save" button it
executes org.wicketstuff.egrid.column.EditableGridActionsPanel#newEditLink
-> onClick().
Here it does: send(getPage(), Broadcast.BREADTH, rowItem);

As you can see this broadcasts the event to the whole page instead of just
the grid instance.
Because of that both grid instances in the page receive this event and try
to use rowItem's (the payload) model. It works as desired for one of the
grids but fails for the other.


Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Wed, Feb 24, 2016 at 3:42 PM, Martin Grigorov <mg...@apache.org>
wrote:

> No sorry!
> I didn't had a chance yet.
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Wed, Feb 24, 2016 at 3:39 PM, Mihir Chhaya <mi...@gmail.com>
> wrote:
>
>> Martin,
>>
>> Just wanted to check if you got chance to look at the GitHub code and if
>> it
>> is enough or any additional information is needed?
>>
>> Thanks,
>> -Mihir.
>>
>> On Mon, Feb 22, 2016 at 10:26 AM, Mihir Chhaya <mi...@gmail.com>
>> wrote:
>>
>> > Sure thing; I have put the code online at
>> > https://github.com/mihirchhaya/egrid71
>> >
>> > Thanks,
>> > -Mihir.
>> >
>> > On Sat, Feb 20, 2016 at 6:50 AM, Martin Grigorov <mg...@apache.org>
>> > wrote:
>> >
>> >> Hi,
>> >>
>> >> Please share the mini application somewhere, e.g. GitHub.
>> >>
>> >> Martin Grigorov
>> >> Wicket Training and Consulting
>> >> https://twitter.com/mtgrigorov
>> >>
>> >> On Fri, Feb 19, 2016 at 7:30 PM, Mihir Chhaya <mi...@gmail.com>
>> >> wrote:
>> >>
>> >> > Ok, so creating a small project with two panels(Person and Customer)
>> >> and a
>> >> > page for similar use case resulted in following stacktrace.
>> >> > The panels are added in the order of PersonPanel, CustomerPanel in
>> the
>> >> > parent page.
>> >> >
>> >> > The line# 163 in onSave method of EditableGrid is calling
>> >> > EditableGrid.this.onSave(target, rowModel); I wonder if the
>> reference to
>> >> > this is referring to the first EditableGrid with Person records.
>> >> Switching
>> >> > the order of adding grid panels throws the error other way around;
>> >> > complaining for Person cannot be cast to Customer.
>> >> >
>> >> > *java.lang.ClassCastException: spikes.domain.Customer cannot be cast
>> >> > to spikes.domain.Person*
>> >> >      at spikes.view.PersonPanel$1.onSave(PersonPanel.java:68)
>> >> >      at
>> >> org.wicketstuff.egrid.EditableGrid$3.onSave(EditableGrid.java:163)
>> >> >      at
>> >> >
>> >>
>> org.wicketstuff.egrid.column.EditableGridActionsColumn$1.onSave(EditableGridActionsColumn.java:34)
>> >> >      at
>> >> >
>> >>
>> org.wicketstuff.egrid.column.EditableGridActionsPanel$2.onSuccess(EditableGridActionsPanel.java:71)
>> >> >      at
>> >> >
>> >>
>> org.wicketstuff.egrid.component.EditableGridSubmitLink.onSubmit(EditableGridSubmitLink.java:37)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:110)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$AjaxFormSubmitter.onSubmit(AjaxFormSubmitBehavior.java:215)
>> >> >      at
>> >> >
>> org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1307)
>> >> >      at
>> >> >
>> >>
>> org.wicketstuff.egrid.EditableGrid$NonValidatingForm.process(EditableGrid.java:79)
>> >> >      at
>> >> >
>> org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:795)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:171)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:155)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:588)
>> >> >      at java.lang.reflect.Method.invoke(Method.java:606)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:203)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:284)
>> >> >      at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>> >> >      at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>> >> >      at
>> >> >
>> >>
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
>> >> >      at
>> >> >
>> >>
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>> >> >      at
>> >> >
>> >>
>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>> >> >      at
>> >> >
>> >>
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
>> >> >      at
>> >> >
>> >>
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
>> >> >      at
>> >> >
>> >>
>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
>> >> >      at
>> >> >
>> >>
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>> >> >      at
>> >> >
>> >>
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
>> >> >      at
>> >> >
>> >>
>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
>> >> >      at
>> >> >
>> >>
>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
>> >> >      at
>> >> >
>> >>
>> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
>> >> >      at
>> >> >
>> >>
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>> >> >      at
>> >> >
>> >>
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>> >> >      at java.lang.Thread.run(Thread.java:744)
>> >> >
>> >> > Complete stack:
>> >> >
>> >> > org.apache.wicket.WicketRuntimeException: Method onRequest of
>> >> > interface org.apache.wicket.behavior.IBehaviorListener targeted at
>> >> > org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1@47743d65 on
>> >> > component [EditableGridSubmitLink [Component id = save]] threw an
>> >> > exception
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:268)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
>> >> >
>> >> > java.lang.reflect.InvocationTargetException
>> >> >      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> >> >      at
>> >> >
>> >>
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>> >> >      at java.lang.reflect.Method.invoke(Method.java:606)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
>> >> >      at
>> >> >
>> >>
>> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
>> >> >
>> >> >
>> >> > On Fri, Feb 19, 2016 at 12:15 PM, Mihir Chhaya <
>> mihir.chhaya@gmail.com>
>> >> > wrote:
>> >> >
>> >> > > Just realized that last two lines could be confusing: the
>> >> decisionCode is
>> >> > > the property of class PcaCodes in pcapanel, but showing up for
>> >> > exccodepanel
>> >> > > row item.
>> >> > >
>> >> > > On Fri, Feb 19, 2016 at 12:06 PM, Mihir Chhaya <
>> >> mihir.chhaya@gmail.com>
>> >> > > wrote:
>> >> > >
>> >> > >> My mistake about the inmethod grid dependency. I don't know why I
>> saw
>> >> > >> compilation error in editable grid class when removed inmethod
>> grid
>> >> jar
>> >> > >> from classpath.
>> >> > >>
>> >> > >> For debugging the respond method as your suggestion, I do see
>> correct
>> >> > >> class types for each rowItem (as attachment). But it fails with
>> >> > following
>> >> > >> error:
>> >> > >>
>> >> > >> Last cause: No get method defined for class: class
>> >> > >> packagename.ExceptionalDocCode expression: decisionCode
>> >> > >> WicketMessage: Exception in rendering component:
>> >> > >> [EditableTextFieldCellPanel [Component id = cell]]
>> >> > >>
>> >> > >>
>> >> > >> On Thu, Feb 18, 2016 at 5:06 PM, Martin Grigorov <
>> >> mgrigorov@apache.org>
>> >> > >> wrote:
>> >> > >>
>> >> > >>> On Thu, Feb 18, 2016 at 10:53 PM, Mihir Chhaya <
>> >> mihir.chhaya@gmail.com
>> >> > >
>> >> > >>> wrote:
>> >> > >>>
>> >> > >>> > Thanks, Martin.
>> >> > >>> >
>> >> > >>> > By writing dependency on wicket in-method grid I meant editable
>> >> grid
>> >> > >>> > inherently referring inmethod grid.
>> >> > >>> >
>> >> > >>>
>> >> > >>>
>> >> > >>>
>> >> >
>> >>
>> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/editable-grid/pom.xml
>> >> > >>>
>> >> > >>>
>> >> >
>> >>
>> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/pom.xml
>> >> > >>> The only dependency is wicket-extensions.
>> >> > >>> I am not sure what you mean by "inherently referring".
>> >> > >>>
>> >> > >>>
>> >> > >>> >
>> >> > >>> > I did check the Ajax url earlier and following are the values
>> in
>> >> > >>> rendered
>> >> > >>> > html page for the panel.
>> >> > >>> >
>> >> > >>> >
>> >> > >>> >
>> >> > >>>
>> >> >
>> >>
>> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-pcapanel-pcacodegridForm-pcaDataTable-form-dataTable-body-rows-16-cells-6-cell-edit","c":"edit104","e":"click"});;
>> >> > >>> >
>> >> > >>> >
>> >> > >>> >
>> >> > >>>
>> >> >
>> >>
>> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-exccodepanel-excdoccodegridForm-excDataTable-form-dataTable-body-rows-10-cells-4-cell-edit","c":"edit113","e":"click"});;
>> >> > >>> >
>> >> > >>>
>> >> > >>> Assuming that 'pcapanel' is 'aPanel' and 'exccodepanel' is
>> 'bPanel'
>> >> > >>> everything looks OK.
>> >> > >>> Clicking on any of those cells should correctly find the
>> respective
>> >> > grid
>> >> > >>> cell and execute its Ajax behavior.
>> >> > >>> Put a breakpoint in AjaxEventBehavior#respond() and see why it
>> finds
>> >> > >>> ClassB.
>> >> > >>>
>> >> > >>>
>> >> > >>> >
>> >> > >>> > Thanks,
>> >> > >>> > -Mihir.
>> >> > >>> >
>> >> > >>> > On Thu, Feb 18, 2016 at 3:18 PM, Martin Grigorov <
>> >> > mgrigorov@apache.org
>> >> > >>> >
>> >> > >>> > wrote:
>> >> > >>> >
>> >> > >>> > > Hi,
>> >> > >>> > >
>> >> > >>> > > On Wed, Feb 17, 2016 at 5:09 PM, Mihir Chhaya <
>> >> > >>> mihir.chhaya@gmail.com>
>> >> > >>> > > wrote:
>> >> > >>> > >
>> >> > >>> > > > Hello,
>> >> > >>> > > >
>> >> > >>> > > > My apologies if this is not the right place to post
>> >> wicketstuff
>> >> > >>> related
>> >> > >>> > > > issues. If so, then please advice me with right forum/link.
>> >> > >>> > > >
>> >> > >>> > >
>> >> > >>> > > This is the right forum!
>> >> > >>> > >
>> >> > >>> > >
>> >> > >>> > > >
>> >> > >>> > > > I am using Wicketstuff-editable-grid-7.1.0 (with
>> dependency on
>> >> > >>> > > > wicketstuff-inmethod-grid-7.1.0).
>> >> > >>> > > >
>> >> > >>> > >
>> >> > >>> > > Why InMethod-Grid is needed? Or you are migrating from
>> Inmethod
>> >> to
>> >> > >>> > Editable
>> >> > >>> > > ?
>> >> > >>> > >
>> >> > >>> > >
>> >> > >>> > > >
>> >> > >>> > > > *Problem:*
>> >> > >>> > > > When two editable grids from two separate child panels are
>> >> > rendered
>> >> > >>> > into
>> >> > >>> > > > single container (parent panel), then clicking 'Edit' link
>> in
>> >> the
>> >> > >>> row
>> >> > >>> > for
>> >> > >>> > > > ClassA related editable grid throws 'No get method defined
>> for
>> >> > the
>> >> > >>> > class'
>> >> > >>> > > > error for ClassB property which is related to another
>> editable
>> >> > >>> grid.
>> >> > >>> > > >
>> >> > >>> > >
>> >> > >>> > > Check what is the url for the Ajax call that is made.
>> >> > >>> > > This should tell you why it finds ClassB instead of ClassA.
>> >> > >>> > >
>> >> > >>> > >
>> >> > >>> > > >
>> >> > >>> > > > *Requirement:*
>> >> > >>> > > > I have a page with 4 different tabs. On one of the tabs, I
>> >> want
>> >> > to
>> >> > >>> use
>> >> > >>> > a
>> >> > >>> > > > panel with two editable grids for two different static
>> dataset
>> >> > >>> Add/Edit
>> >> > >>> > > > (One grid for tableA, another for tableB).
>> >> > >>> > > >
>> >> > >>> > > > *Efforts:*
>> >> > >>> > > > I have created two separate panel classes as below - each
>> with
>> >> > >>> it's own
>> >> > >>> > > > form and editable grid with it's own editable data provider
>> >> with
>> >> > >>> > > respective
>> >> > >>> > > > array list of different types. The columns supplied to
>> >> > EditableGrid
>> >> > >>> > class
>> >> > >>> > > > contains
>> >> > >>> > > > EditableTextFieldPropertyColumn<ClassA, String> and
>> <ClassB,
>> >> > >>> String>
>> >> > >>> > > > respectively with own properties. Please note that I have
>> used
>> >> > >>> distinct
>> >> > >>> > > > markup Ids for each panel and grid components to avoid any
>> >> > >>> duplication;
>> >> > >>> > > > with setting output markup id to true.
>> >> > >>> > > >
>> >> > >>> > > > PanelA extends Panel{
>> >> > >>> > > >
>> >> > >>> > > >     //Constructor
>> >> > >>> > > >     // formA with editableGridA with
>> >> > editableDataProviderForClassA
>> >> > >>> > > > }
>> >> > >>> > > >
>> >> > >>> > > > PanelB extends Panel{
>> >> > >>> > > >
>> >> > >>> > > >     //Constructor
>> >> > >>> > > >     //formB with editableGridB with
>> >> editableDataProviderForClassB
>> >> > >>> using
>> >> > >>> > > > }
>> >> > >>> > > >
>> >> > >>> > > > Those two panels are added into parent panel as below:
>> >> > >>> > > >
>> >> > >>> > > > TabbedPanel extends Panel{
>> >> > >>> > > >
>> >> > >>> > > >      //Constructor
>> >> > >>> > > >      // Panel panelA = new PanelA("aPanel");
>> >> > >>> > > >      // Panel panelB = new PanelB("bPanel");
>> >> > >>> > > >      // add(panelA); add(panelB);
>> >> > >>> > > > }
>> >> > >>> > > >
>> >> > >>> > > > As I have mentioned in the problem above; clicking on edit
>> >> link
>> >> > for
>> >> > >>> > > classA
>> >> > >>> > > > related grid is throwing error for classB property, which
>> is
>> >> > >>> associated
>> >> > >>> > > > with different editable grid.
>> >> > >>> > > >
>> >> > >>> > > > Has anybody experienced similar issue? Any
>> help/suggestions?
>> >> > >>> > > >
>> >> > >>> > >
>> >> > >>> > > Everything looks OK.
>> >> > >>> > > Check whether the url for the Ajax call after clicking on the
>> >> cell
>> >> > >>> > contains
>> >> > >>> > > "aPanel" or "bPanel".
>> >> > >>> > >
>> >> > >>> > >
>> >> > >>> > > >
>> >> > >>> > > > Thanks,
>> >> > >>> > > > -Mihir.
>> >> > >>> > > >
>> >> > >>> > >
>> >> > >>> >
>> >> > >>>
>> >> > >>
>> >> > >>
>> >> > >
>> >> >
>> >>
>> >
>> >
>>
>
>

Re: Wicketstuff editable grid - 7.1.0

Posted by Martin Grigorov <mg...@apache.org>.
No sorry!
I didn't had a chance yet.

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Wed, Feb 24, 2016 at 3:39 PM, Mihir Chhaya <mi...@gmail.com>
wrote:

> Martin,
>
> Just wanted to check if you got chance to look at the GitHub code and if it
> is enough or any additional information is needed?
>
> Thanks,
> -Mihir.
>
> On Mon, Feb 22, 2016 at 10:26 AM, Mihir Chhaya <mi...@gmail.com>
> wrote:
>
> > Sure thing; I have put the code online at
> > https://github.com/mihirchhaya/egrid71
> >
> > Thanks,
> > -Mihir.
> >
> > On Sat, Feb 20, 2016 at 6:50 AM, Martin Grigorov <mg...@apache.org>
> > wrote:
> >
> >> Hi,
> >>
> >> Please share the mini application somewhere, e.g. GitHub.
> >>
> >> Martin Grigorov
> >> Wicket Training and Consulting
> >> https://twitter.com/mtgrigorov
> >>
> >> On Fri, Feb 19, 2016 at 7:30 PM, Mihir Chhaya <mi...@gmail.com>
> >> wrote:
> >>
> >> > Ok, so creating a small project with two panels(Person and Customer)
> >> and a
> >> > page for similar use case resulted in following stacktrace.
> >> > The panels are added in the order of PersonPanel, CustomerPanel in the
> >> > parent page.
> >> >
> >> > The line# 163 in onSave method of EditableGrid is calling
> >> > EditableGrid.this.onSave(target, rowModel); I wonder if the reference
> to
> >> > this is referring to the first EditableGrid with Person records.
> >> Switching
> >> > the order of adding grid panels throws the error other way around;
> >> > complaining for Person cannot be cast to Customer.
> >> >
> >> > *java.lang.ClassCastException: spikes.domain.Customer cannot be cast
> >> > to spikes.domain.Person*
> >> >      at spikes.view.PersonPanel$1.onSave(PersonPanel.java:68)
> >> >      at
> >> org.wicketstuff.egrid.EditableGrid$3.onSave(EditableGrid.java:163)
> >> >      at
> >> >
> >>
> org.wicketstuff.egrid.column.EditableGridActionsColumn$1.onSave(EditableGridActionsColumn.java:34)
> >> >      at
> >> >
> >>
> org.wicketstuff.egrid.column.EditableGridActionsPanel$2.onSuccess(EditableGridActionsPanel.java:71)
> >> >      at
> >> >
> >>
> org.wicketstuff.egrid.component.EditableGridSubmitLink.onSubmit(EditableGridSubmitLink.java:37)
> >> >      at
> >> >
> >>
> org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:110)
> >> >      at
> >> >
> >>
> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$AjaxFormSubmitter.onSubmit(AjaxFormSubmitBehavior.java:215)
> >> >      at
> >> > org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1307)
> >> >      at
> >> >
> >>
> org.wicketstuff.egrid.EditableGrid$NonValidatingForm.process(EditableGrid.java:79)
> >> >      at
> >> > org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:795)
> >> >      at
> >> >
> >>
> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:171)
> >> >      at
> >> >
> >>
> org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:155)
> >> >      at
> >> >
> >>
> org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:588)
> >> >      at java.lang.reflect.Method.invoke(Method.java:606)
> >> >      at
> >> >
> >>
> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
> >> >      at
> >> >
> >>
> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
> >> >      at
> >> >
> >>
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
> >> >      at
> >> >
> >>
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
> >> >      at
> >> >
> >>
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
> >> >      at
> >> >
> >>
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
> >> >      at
> >> >
> >>
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
> >> >      at
> >> >
> >>
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
> >> >      at
> >> >
> >>
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
> >> >      at
> >> >
> >>
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
> >> >      at
> >> >
> >>
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:203)
> >> >      at
> >> >
> >>
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:284)
> >> >      at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> >> >      at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> >> >      at
> >> >
> >>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
> >> >      at
> >> >
> >>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
> >> >      at
> >> >
> >>
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> >> >      at
> >> >
> >>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
> >> >      at
> >> >
> >>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
> >> >      at
> >> >
> >>
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
> >> >      at
> >> >
> >>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> >> >      at
> >> >
> >>
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> >> >      at
> >> >
> >>
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
> >> >      at
> >> >
> >>
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
> >> >      at
> >> >
> >>
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
> >> >      at
> >> >
> >>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> >> >      at
> >> >
> >>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> >> >      at java.lang.Thread.run(Thread.java:744)
> >> >
> >> > Complete stack:
> >> >
> >> > org.apache.wicket.WicketRuntimeException: Method onRequest of
> >> > interface org.apache.wicket.behavior.IBehaviorListener targeted at
> >> > org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1@47743d65 on
> >> > component [EditableGridSubmitLink [Component id = save]] threw an
> >> > exception
> >> >      at
> >> >
> >>
> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:268)
> >> >      at
> >> >
> >>
> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
> >> >      at
> >> >
> >>
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
> >> >      at
> >> >
> >>
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
> >> >      at
> >> >
> >>
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
> >> >      at
> >> >
> >>
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
> >> >      at
> >> >
> >>
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
> >> >      at
> >> >
> >>
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
> >> >      at
> >> >
> >>
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
> >> >      at
> >> >
> >>
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
> >> >
> >> > java.lang.reflect.InvocationTargetException
> >> >      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >> >      at
> >> >
> >>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> >> >      at java.lang.reflect.Method.invoke(Method.java:606)
> >> >      at
> >> >
> >>
> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
> >> >      at
> >> >
> >>
> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
> >> >      at
> >> >
> >>
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
> >> >      at
> >> >
> >>
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
> >> >      at
> >> >
> >>
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
> >> >      at
> >> >
> >>
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
> >> >      at
> >> >
> >>
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
> >> >      at
> >> >
> >>
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
> >> >      at
> >> >
> >>
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
> >> >      at
> >> >
> >>
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
> >> >
> >> >
> >> > On Fri, Feb 19, 2016 at 12:15 PM, Mihir Chhaya <
> mihir.chhaya@gmail.com>
> >> > wrote:
> >> >
> >> > > Just realized that last two lines could be confusing: the
> >> decisionCode is
> >> > > the property of class PcaCodes in pcapanel, but showing up for
> >> > exccodepanel
> >> > > row item.
> >> > >
> >> > > On Fri, Feb 19, 2016 at 12:06 PM, Mihir Chhaya <
> >> mihir.chhaya@gmail.com>
> >> > > wrote:
> >> > >
> >> > >> My mistake about the inmethod grid dependency. I don't know why I
> saw
> >> > >> compilation error in editable grid class when removed inmethod grid
> >> jar
> >> > >> from classpath.
> >> > >>
> >> > >> For debugging the respond method as your suggestion, I do see
> correct
> >> > >> class types for each rowItem (as attachment). But it fails with
> >> > following
> >> > >> error:
> >> > >>
> >> > >> Last cause: No get method defined for class: class
> >> > >> packagename.ExceptionalDocCode expression: decisionCode
> >> > >> WicketMessage: Exception in rendering component:
> >> > >> [EditableTextFieldCellPanel [Component id = cell]]
> >> > >>
> >> > >>
> >> > >> On Thu, Feb 18, 2016 at 5:06 PM, Martin Grigorov <
> >> mgrigorov@apache.org>
> >> > >> wrote:
> >> > >>
> >> > >>> On Thu, Feb 18, 2016 at 10:53 PM, Mihir Chhaya <
> >> mihir.chhaya@gmail.com
> >> > >
> >> > >>> wrote:
> >> > >>>
> >> > >>> > Thanks, Martin.
> >> > >>> >
> >> > >>> > By writing dependency on wicket in-method grid I meant editable
> >> grid
> >> > >>> > inherently referring inmethod grid.
> >> > >>> >
> >> > >>>
> >> > >>>
> >> > >>>
> >> >
> >>
> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/editable-grid/pom.xml
> >> > >>>
> >> > >>>
> >> >
> >>
> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/pom.xml
> >> > >>> The only dependency is wicket-extensions.
> >> > >>> I am not sure what you mean by "inherently referring".
> >> > >>>
> >> > >>>
> >> > >>> >
> >> > >>> > I did check the Ajax url earlier and following are the values in
> >> > >>> rendered
> >> > >>> > html page for the panel.
> >> > >>> >
> >> > >>> >
> >> > >>> >
> >> > >>>
> >> >
> >>
> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-pcapanel-pcacodegridForm-pcaDataTable-form-dataTable-body-rows-16-cells-6-cell-edit","c":"edit104","e":"click"});;
> >> > >>> >
> >> > >>> >
> >> > >>> >
> >> > >>>
> >> >
> >>
> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-exccodepanel-excdoccodegridForm-excDataTable-form-dataTable-body-rows-10-cells-4-cell-edit","c":"edit113","e":"click"});;
> >> > >>> >
> >> > >>>
> >> > >>> Assuming that 'pcapanel' is 'aPanel' and 'exccodepanel' is
> 'bPanel'
> >> > >>> everything looks OK.
> >> > >>> Clicking on any of those cells should correctly find the
> respective
> >> > grid
> >> > >>> cell and execute its Ajax behavior.
> >> > >>> Put a breakpoint in AjaxEventBehavior#respond() and see why it
> finds
> >> > >>> ClassB.
> >> > >>>
> >> > >>>
> >> > >>> >
> >> > >>> > Thanks,
> >> > >>> > -Mihir.
> >> > >>> >
> >> > >>> > On Thu, Feb 18, 2016 at 3:18 PM, Martin Grigorov <
> >> > mgrigorov@apache.org
> >> > >>> >
> >> > >>> > wrote:
> >> > >>> >
> >> > >>> > > Hi,
> >> > >>> > >
> >> > >>> > > On Wed, Feb 17, 2016 at 5:09 PM, Mihir Chhaya <
> >> > >>> mihir.chhaya@gmail.com>
> >> > >>> > > wrote:
> >> > >>> > >
> >> > >>> > > > Hello,
> >> > >>> > > >
> >> > >>> > > > My apologies if this is not the right place to post
> >> wicketstuff
> >> > >>> related
> >> > >>> > > > issues. If so, then please advice me with right forum/link.
> >> > >>> > > >
> >> > >>> > >
> >> > >>> > > This is the right forum!
> >> > >>> > >
> >> > >>> > >
> >> > >>> > > >
> >> > >>> > > > I am using Wicketstuff-editable-grid-7.1.0 (with dependency
> on
> >> > >>> > > > wicketstuff-inmethod-grid-7.1.0).
> >> > >>> > > >
> >> > >>> > >
> >> > >>> > > Why InMethod-Grid is needed? Or you are migrating from
> Inmethod
> >> to
> >> > >>> > Editable
> >> > >>> > > ?
> >> > >>> > >
> >> > >>> > >
> >> > >>> > > >
> >> > >>> > > > *Problem:*
> >> > >>> > > > When two editable grids from two separate child panels are
> >> > rendered
> >> > >>> > into
> >> > >>> > > > single container (parent panel), then clicking 'Edit' link
> in
> >> the
> >> > >>> row
> >> > >>> > for
> >> > >>> > > > ClassA related editable grid throws 'No get method defined
> for
> >> > the
> >> > >>> > class'
> >> > >>> > > > error for ClassB property which is related to another
> editable
> >> > >>> grid.
> >> > >>> > > >
> >> > >>> > >
> >> > >>> > > Check what is the url for the Ajax call that is made.
> >> > >>> > > This should tell you why it finds ClassB instead of ClassA.
> >> > >>> > >
> >> > >>> > >
> >> > >>> > > >
> >> > >>> > > > *Requirement:*
> >> > >>> > > > I have a page with 4 different tabs. On one of the tabs, I
> >> want
> >> > to
> >> > >>> use
> >> > >>> > a
> >> > >>> > > > panel with two editable grids for two different static
> dataset
> >> > >>> Add/Edit
> >> > >>> > > > (One grid for tableA, another for tableB).
> >> > >>> > > >
> >> > >>> > > > *Efforts:*
> >> > >>> > > > I have created two separate panel classes as below - each
> with
> >> > >>> it's own
> >> > >>> > > > form and editable grid with it's own editable data provider
> >> with
> >> > >>> > > respective
> >> > >>> > > > array list of different types. The columns supplied to
> >> > EditableGrid
> >> > >>> > class
> >> > >>> > > > contains
> >> > >>> > > > EditableTextFieldPropertyColumn<ClassA, String> and <ClassB,
> >> > >>> String>
> >> > >>> > > > respectively with own properties. Please note that I have
> used
> >> > >>> distinct
> >> > >>> > > > markup Ids for each panel and grid components to avoid any
> >> > >>> duplication;
> >> > >>> > > > with setting output markup id to true.
> >> > >>> > > >
> >> > >>> > > > PanelA extends Panel{
> >> > >>> > > >
> >> > >>> > > >     //Constructor
> >> > >>> > > >     // formA with editableGridA with
> >> > editableDataProviderForClassA
> >> > >>> > > > }
> >> > >>> > > >
> >> > >>> > > > PanelB extends Panel{
> >> > >>> > > >
> >> > >>> > > >     //Constructor
> >> > >>> > > >     //formB with editableGridB with
> >> editableDataProviderForClassB
> >> > >>> using
> >> > >>> > > > }
> >> > >>> > > >
> >> > >>> > > > Those two panels are added into parent panel as below:
> >> > >>> > > >
> >> > >>> > > > TabbedPanel extends Panel{
> >> > >>> > > >
> >> > >>> > > >      //Constructor
> >> > >>> > > >      // Panel panelA = new PanelA("aPanel");
> >> > >>> > > >      // Panel panelB = new PanelB("bPanel");
> >> > >>> > > >      // add(panelA); add(panelB);
> >> > >>> > > > }
> >> > >>> > > >
> >> > >>> > > > As I have mentioned in the problem above; clicking on edit
> >> link
> >> > for
> >> > >>> > > classA
> >> > >>> > > > related grid is throwing error for classB property, which is
> >> > >>> associated
> >> > >>> > > > with different editable grid.
> >> > >>> > > >
> >> > >>> > > > Has anybody experienced similar issue? Any help/suggestions?
> >> > >>> > > >
> >> > >>> > >
> >> > >>> > > Everything looks OK.
> >> > >>> > > Check whether the url for the Ajax call after clicking on the
> >> cell
> >> > >>> > contains
> >> > >>> > > "aPanel" or "bPanel".
> >> > >>> > >
> >> > >>> > >
> >> > >>> > > >
> >> > >>> > > > Thanks,
> >> > >>> > > > -Mihir.
> >> > >>> > > >
> >> > >>> > >
> >> > >>> >
> >> > >>>
> >> > >>
> >> > >>
> >> > >
> >> >
> >>
> >
> >
>

Re: Wicketstuff editable grid - 7.1.0

Posted by Mihir Chhaya <mi...@gmail.com>.
Martin,

Just wanted to check if you got chance to look at the GitHub code and if it
is enough or any additional information is needed?

Thanks,
-Mihir.

On Mon, Feb 22, 2016 at 10:26 AM, Mihir Chhaya <mi...@gmail.com>
wrote:

> Sure thing; I have put the code online at
> https://github.com/mihirchhaya/egrid71
>
> Thanks,
> -Mihir.
>
> On Sat, Feb 20, 2016 at 6:50 AM, Martin Grigorov <mg...@apache.org>
> wrote:
>
>> Hi,
>>
>> Please share the mini application somewhere, e.g. GitHub.
>>
>> Martin Grigorov
>> Wicket Training and Consulting
>> https://twitter.com/mtgrigorov
>>
>> On Fri, Feb 19, 2016 at 7:30 PM, Mihir Chhaya <mi...@gmail.com>
>> wrote:
>>
>> > Ok, so creating a small project with two panels(Person and Customer)
>> and a
>> > page for similar use case resulted in following stacktrace.
>> > The panels are added in the order of PersonPanel, CustomerPanel in the
>> > parent page.
>> >
>> > The line# 163 in onSave method of EditableGrid is calling
>> > EditableGrid.this.onSave(target, rowModel); I wonder if the reference to
>> > this is referring to the first EditableGrid with Person records.
>> Switching
>> > the order of adding grid panels throws the error other way around;
>> > complaining for Person cannot be cast to Customer.
>> >
>> > *java.lang.ClassCastException: spikes.domain.Customer cannot be cast
>> > to spikes.domain.Person*
>> >      at spikes.view.PersonPanel$1.onSave(PersonPanel.java:68)
>> >      at
>> org.wicketstuff.egrid.EditableGrid$3.onSave(EditableGrid.java:163)
>> >      at
>> >
>> org.wicketstuff.egrid.column.EditableGridActionsColumn$1.onSave(EditableGridActionsColumn.java:34)
>> >      at
>> >
>> org.wicketstuff.egrid.column.EditableGridActionsPanel$2.onSuccess(EditableGridActionsPanel.java:71)
>> >      at
>> >
>> org.wicketstuff.egrid.component.EditableGridSubmitLink.onSubmit(EditableGridSubmitLink.java:37)
>> >      at
>> >
>> org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:110)
>> >      at
>> >
>> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$AjaxFormSubmitter.onSubmit(AjaxFormSubmitBehavior.java:215)
>> >      at
>> > org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1307)
>> >      at
>> >
>> org.wicketstuff.egrid.EditableGrid$NonValidatingForm.process(EditableGrid.java:79)
>> >      at
>> > org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:795)
>> >      at
>> >
>> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:171)
>> >      at
>> >
>> org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:155)
>> >      at
>> >
>> org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:588)
>> >      at java.lang.reflect.Method.invoke(Method.java:606)
>> >      at
>> >
>> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
>> >      at
>> >
>> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
>> >      at
>> >
>> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
>> >      at
>> >
>> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
>> >      at
>> >
>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
>> >      at
>> >
>> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
>> >      at
>> >
>> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
>> >      at
>> >
>> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
>> >      at
>> >
>> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
>> >      at
>> >
>> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
>> >      at
>> >
>> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:203)
>> >      at
>> >
>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:284)
>> >      at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>> >      at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>> >      at
>> >
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
>> >      at
>> >
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>> >      at
>> >
>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>> >      at
>> >
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
>> >      at
>> >
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
>> >      at
>> >
>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
>> >      at
>> >
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>> >      at
>> >
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
>> >      at
>> >
>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
>> >      at
>> >
>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
>> >      at
>> >
>> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
>> >      at
>> >
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>> >      at
>> >
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>> >      at java.lang.Thread.run(Thread.java:744)
>> >
>> > Complete stack:
>> >
>> > org.apache.wicket.WicketRuntimeException: Method onRequest of
>> > interface org.apache.wicket.behavior.IBehaviorListener targeted at
>> > org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1@47743d65 on
>> > component [EditableGridSubmitLink [Component id = save]] threw an
>> > exception
>> >      at
>> >
>> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:268)
>> >      at
>> >
>> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
>> >      at
>> >
>> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
>> >      at
>> >
>> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
>> >      at
>> >
>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
>> >      at
>> >
>> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
>> >      at
>> >
>> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
>> >      at
>> >
>> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
>> >      at
>> >
>> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
>> >      at
>> >
>> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
>> >
>> > java.lang.reflect.InvocationTargetException
>> >      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> >      at
>> >
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>> >      at java.lang.reflect.Method.invoke(Method.java:606)
>> >      at
>> >
>> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
>> >      at
>> >
>> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
>> >      at
>> >
>> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
>> >      at
>> >
>> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
>> >      at
>> >
>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
>> >      at
>> >
>> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
>> >      at
>> >
>> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
>> >      at
>> >
>> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
>> >      at
>> >
>> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
>> >      at
>> >
>> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
>> >
>> >
>> > On Fri, Feb 19, 2016 at 12:15 PM, Mihir Chhaya <mi...@gmail.com>
>> > wrote:
>> >
>> > > Just realized that last two lines could be confusing: the
>> decisionCode is
>> > > the property of class PcaCodes in pcapanel, but showing up for
>> > exccodepanel
>> > > row item.
>> > >
>> > > On Fri, Feb 19, 2016 at 12:06 PM, Mihir Chhaya <
>> mihir.chhaya@gmail.com>
>> > > wrote:
>> > >
>> > >> My mistake about the inmethod grid dependency. I don't know why I saw
>> > >> compilation error in editable grid class when removed inmethod grid
>> jar
>> > >> from classpath.
>> > >>
>> > >> For debugging the respond method as your suggestion, I do see correct
>> > >> class types for each rowItem (as attachment). But it fails with
>> > following
>> > >> error:
>> > >>
>> > >> Last cause: No get method defined for class: class
>> > >> packagename.ExceptionalDocCode expression: decisionCode
>> > >> WicketMessage: Exception in rendering component:
>> > >> [EditableTextFieldCellPanel [Component id = cell]]
>> > >>
>> > >>
>> > >> On Thu, Feb 18, 2016 at 5:06 PM, Martin Grigorov <
>> mgrigorov@apache.org>
>> > >> wrote:
>> > >>
>> > >>> On Thu, Feb 18, 2016 at 10:53 PM, Mihir Chhaya <
>> mihir.chhaya@gmail.com
>> > >
>> > >>> wrote:
>> > >>>
>> > >>> > Thanks, Martin.
>> > >>> >
>> > >>> > By writing dependency on wicket in-method grid I meant editable
>> grid
>> > >>> > inherently referring inmethod grid.
>> > >>> >
>> > >>>
>> > >>>
>> > >>>
>> >
>> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/editable-grid/pom.xml
>> > >>>
>> > >>>
>> >
>> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/pom.xml
>> > >>> The only dependency is wicket-extensions.
>> > >>> I am not sure what you mean by "inherently referring".
>> > >>>
>> > >>>
>> > >>> >
>> > >>> > I did check the Ajax url earlier and following are the values in
>> > >>> rendered
>> > >>> > html page for the panel.
>> > >>> >
>> > >>> >
>> > >>> >
>> > >>>
>> >
>> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-pcapanel-pcacodegridForm-pcaDataTable-form-dataTable-body-rows-16-cells-6-cell-edit","c":"edit104","e":"click"});;
>> > >>> >
>> > >>> >
>> > >>> >
>> > >>>
>> >
>> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-exccodepanel-excdoccodegridForm-excDataTable-form-dataTable-body-rows-10-cells-4-cell-edit","c":"edit113","e":"click"});;
>> > >>> >
>> > >>>
>> > >>> Assuming that 'pcapanel' is 'aPanel' and 'exccodepanel' is 'bPanel'
>> > >>> everything looks OK.
>> > >>> Clicking on any of those cells should correctly find the respective
>> > grid
>> > >>> cell and execute its Ajax behavior.
>> > >>> Put a breakpoint in AjaxEventBehavior#respond() and see why it finds
>> > >>> ClassB.
>> > >>>
>> > >>>
>> > >>> >
>> > >>> > Thanks,
>> > >>> > -Mihir.
>> > >>> >
>> > >>> > On Thu, Feb 18, 2016 at 3:18 PM, Martin Grigorov <
>> > mgrigorov@apache.org
>> > >>> >
>> > >>> > wrote:
>> > >>> >
>> > >>> > > Hi,
>> > >>> > >
>> > >>> > > On Wed, Feb 17, 2016 at 5:09 PM, Mihir Chhaya <
>> > >>> mihir.chhaya@gmail.com>
>> > >>> > > wrote:
>> > >>> > >
>> > >>> > > > Hello,
>> > >>> > > >
>> > >>> > > > My apologies if this is not the right place to post
>> wicketstuff
>> > >>> related
>> > >>> > > > issues. If so, then please advice me with right forum/link.
>> > >>> > > >
>> > >>> > >
>> > >>> > > This is the right forum!
>> > >>> > >
>> > >>> > >
>> > >>> > > >
>> > >>> > > > I am using Wicketstuff-editable-grid-7.1.0 (with dependency on
>> > >>> > > > wicketstuff-inmethod-grid-7.1.0).
>> > >>> > > >
>> > >>> > >
>> > >>> > > Why InMethod-Grid is needed? Or you are migrating from Inmethod
>> to
>> > >>> > Editable
>> > >>> > > ?
>> > >>> > >
>> > >>> > >
>> > >>> > > >
>> > >>> > > > *Problem:*
>> > >>> > > > When two editable grids from two separate child panels are
>> > rendered
>> > >>> > into
>> > >>> > > > single container (parent panel), then clicking 'Edit' link in
>> the
>> > >>> row
>> > >>> > for
>> > >>> > > > ClassA related editable grid throws 'No get method defined for
>> > the
>> > >>> > class'
>> > >>> > > > error for ClassB property which is related to another editable
>> > >>> grid.
>> > >>> > > >
>> > >>> > >
>> > >>> > > Check what is the url for the Ajax call that is made.
>> > >>> > > This should tell you why it finds ClassB instead of ClassA.
>> > >>> > >
>> > >>> > >
>> > >>> > > >
>> > >>> > > > *Requirement:*
>> > >>> > > > I have a page with 4 different tabs. On one of the tabs, I
>> want
>> > to
>> > >>> use
>> > >>> > a
>> > >>> > > > panel with two editable grids for two different static dataset
>> > >>> Add/Edit
>> > >>> > > > (One grid for tableA, another for tableB).
>> > >>> > > >
>> > >>> > > > *Efforts:*
>> > >>> > > > I have created two separate panel classes as below - each with
>> > >>> it's own
>> > >>> > > > form and editable grid with it's own editable data provider
>> with
>> > >>> > > respective
>> > >>> > > > array list of different types. The columns supplied to
>> > EditableGrid
>> > >>> > class
>> > >>> > > > contains
>> > >>> > > > EditableTextFieldPropertyColumn<ClassA, String> and <ClassB,
>> > >>> String>
>> > >>> > > > respectively with own properties. Please note that I have used
>> > >>> distinct
>> > >>> > > > markup Ids for each panel and grid components to avoid any
>> > >>> duplication;
>> > >>> > > > with setting output markup id to true.
>> > >>> > > >
>> > >>> > > > PanelA extends Panel{
>> > >>> > > >
>> > >>> > > >     //Constructor
>> > >>> > > >     // formA with editableGridA with
>> > editableDataProviderForClassA
>> > >>> > > > }
>> > >>> > > >
>> > >>> > > > PanelB extends Panel{
>> > >>> > > >
>> > >>> > > >     //Constructor
>> > >>> > > >     //formB with editableGridB with
>> editableDataProviderForClassB
>> > >>> using
>> > >>> > > > }
>> > >>> > > >
>> > >>> > > > Those two panels are added into parent panel as below:
>> > >>> > > >
>> > >>> > > > TabbedPanel extends Panel{
>> > >>> > > >
>> > >>> > > >      //Constructor
>> > >>> > > >      // Panel panelA = new PanelA("aPanel");
>> > >>> > > >      // Panel panelB = new PanelB("bPanel");
>> > >>> > > >      // add(panelA); add(panelB);
>> > >>> > > > }
>> > >>> > > >
>> > >>> > > > As I have mentioned in the problem above; clicking on edit
>> link
>> > for
>> > >>> > > classA
>> > >>> > > > related grid is throwing error for classB property, which is
>> > >>> associated
>> > >>> > > > with different editable grid.
>> > >>> > > >
>> > >>> > > > Has anybody experienced similar issue? Any help/suggestions?
>> > >>> > > >
>> > >>> > >
>> > >>> > > Everything looks OK.
>> > >>> > > Check whether the url for the Ajax call after clicking on the
>> cell
>> > >>> > contains
>> > >>> > > "aPanel" or "bPanel".
>> > >>> > >
>> > >>> > >
>> > >>> > > >
>> > >>> > > > Thanks,
>> > >>> > > > -Mihir.
>> > >>> > > >
>> > >>> > >
>> > >>> >
>> > >>>
>> > >>
>> > >>
>> > >
>> >
>>
>
>

Re: Wicketstuff editable grid - 7.1.0

Posted by Mihir Chhaya <mi...@gmail.com>.
Sure thing; I have put the code online at
https://github.com/mihirchhaya/egrid71

Thanks,
-Mihir.

On Sat, Feb 20, 2016 at 6:50 AM, Martin Grigorov <mg...@apache.org>
wrote:

> Hi,
>
> Please share the mini application somewhere, e.g. GitHub.
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Fri, Feb 19, 2016 at 7:30 PM, Mihir Chhaya <mi...@gmail.com>
> wrote:
>
> > Ok, so creating a small project with two panels(Person and Customer) and
> a
> > page for similar use case resulted in following stacktrace.
> > The panels are added in the order of PersonPanel, CustomerPanel in the
> > parent page.
> >
> > The line# 163 in onSave method of EditableGrid is calling
> > EditableGrid.this.onSave(target, rowModel); I wonder if the reference to
> > this is referring to the first EditableGrid with Person records.
> Switching
> > the order of adding grid panels throws the error other way around;
> > complaining for Person cannot be cast to Customer.
> >
> > *java.lang.ClassCastException: spikes.domain.Customer cannot be cast
> > to spikes.domain.Person*
> >      at spikes.view.PersonPanel$1.onSave(PersonPanel.java:68)
> >      at
> org.wicketstuff.egrid.EditableGrid$3.onSave(EditableGrid.java:163)
> >      at
> >
> org.wicketstuff.egrid.column.EditableGridActionsColumn$1.onSave(EditableGridActionsColumn.java:34)
> >      at
> >
> org.wicketstuff.egrid.column.EditableGridActionsPanel$2.onSuccess(EditableGridActionsPanel.java:71)
> >      at
> >
> org.wicketstuff.egrid.component.EditableGridSubmitLink.onSubmit(EditableGridSubmitLink.java:37)
> >      at
> >
> org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:110)
> >      at
> >
> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$AjaxFormSubmitter.onSubmit(AjaxFormSubmitBehavior.java:215)
> >      at
> > org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1307)
> >      at
> >
> org.wicketstuff.egrid.EditableGrid$NonValidatingForm.process(EditableGrid.java:79)
> >      at
> > org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:795)
> >      at
> >
> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:171)
> >      at
> >
> org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:155)
> >      at
> >
> org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:588)
> >      at java.lang.reflect.Method.invoke(Method.java:606)
> >      at
> >
> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
> >      at
> >
> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
> >      at
> >
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
> >      at
> >
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
> >      at
> >
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
> >      at
> >
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
> >      at
> >
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
> >      at
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
> >      at
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
> >      at
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
> >      at
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:203)
> >      at
> >
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:284)
> >      at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> >      at
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> >      at
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
> >      at
> >
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
> >      at
> >
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> >      at
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
> >      at
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
> >      at
> > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
> >      at
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> >      at
> >
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> >      at
> >
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
> >      at
> >
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
> >      at
> >
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
> >      at
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> >      at
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> >      at java.lang.Thread.run(Thread.java:744)
> >
> > Complete stack:
> >
> > org.apache.wicket.WicketRuntimeException: Method onRequest of
> > interface org.apache.wicket.behavior.IBehaviorListener targeted at
> > org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1@47743d65 on
> > component [EditableGridSubmitLink [Component id = save]] threw an
> > exception
> >      at
> >
> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:268)
> >      at
> >
> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
> >      at
> >
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
> >      at
> >
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
> >      at
> >
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
> >      at
> >
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
> >      at
> >
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
> >      at
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
> >      at
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
> >      at
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
> >
> > java.lang.reflect.InvocationTargetException
> >      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >      at
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> >      at java.lang.reflect.Method.invoke(Method.java:606)
> >      at
> >
> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
> >      at
> >
> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
> >      at
> >
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
> >      at
> >
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
> >      at
> >
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
> >      at
> >
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
> >      at
> >
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
> >      at
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
> >      at
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
> >      at
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
> >
> >
> > On Fri, Feb 19, 2016 at 12:15 PM, Mihir Chhaya <mi...@gmail.com>
> > wrote:
> >
> > > Just realized that last two lines could be confusing: the decisionCode
> is
> > > the property of class PcaCodes in pcapanel, but showing up for
> > exccodepanel
> > > row item.
> > >
> > > On Fri, Feb 19, 2016 at 12:06 PM, Mihir Chhaya <mihir.chhaya@gmail.com
> >
> > > wrote:
> > >
> > >> My mistake about the inmethod grid dependency. I don't know why I saw
> > >> compilation error in editable grid class when removed inmethod grid
> jar
> > >> from classpath.
> > >>
> > >> For debugging the respond method as your suggestion, I do see correct
> > >> class types for each rowItem (as attachment). But it fails with
> > following
> > >> error:
> > >>
> > >> Last cause: No get method defined for class: class
> > >> packagename.ExceptionalDocCode expression: decisionCode
> > >> WicketMessage: Exception in rendering component:
> > >> [EditableTextFieldCellPanel [Component id = cell]]
> > >>
> > >>
> > >> On Thu, Feb 18, 2016 at 5:06 PM, Martin Grigorov <
> mgrigorov@apache.org>
> > >> wrote:
> > >>
> > >>> On Thu, Feb 18, 2016 at 10:53 PM, Mihir Chhaya <
> mihir.chhaya@gmail.com
> > >
> > >>> wrote:
> > >>>
> > >>> > Thanks, Martin.
> > >>> >
> > >>> > By writing dependency on wicket in-method grid I meant editable
> grid
> > >>> > inherently referring inmethod grid.
> > >>> >
> > >>>
> > >>>
> > >>>
> >
> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/editable-grid/pom.xml
> > >>>
> > >>>
> >
> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/pom.xml
> > >>> The only dependency is wicket-extensions.
> > >>> I am not sure what you mean by "inherently referring".
> > >>>
> > >>>
> > >>> >
> > >>> > I did check the Ajax url earlier and following are the values in
> > >>> rendered
> > >>> > html page for the panel.
> > >>> >
> > >>> >
> > >>> >
> > >>>
> >
> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-pcapanel-pcacodegridForm-pcaDataTable-form-dataTable-body-rows-16-cells-6-cell-edit","c":"edit104","e":"click"});;
> > >>> >
> > >>> >
> > >>> >
> > >>>
> >
> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-exccodepanel-excdoccodegridForm-excDataTable-form-dataTable-body-rows-10-cells-4-cell-edit","c":"edit113","e":"click"});;
> > >>> >
> > >>>
> > >>> Assuming that 'pcapanel' is 'aPanel' and 'exccodepanel' is 'bPanel'
> > >>> everything looks OK.
> > >>> Clicking on any of those cells should correctly find the respective
> > grid
> > >>> cell and execute its Ajax behavior.
> > >>> Put a breakpoint in AjaxEventBehavior#respond() and see why it finds
> > >>> ClassB.
> > >>>
> > >>>
> > >>> >
> > >>> > Thanks,
> > >>> > -Mihir.
> > >>> >
> > >>> > On Thu, Feb 18, 2016 at 3:18 PM, Martin Grigorov <
> > mgrigorov@apache.org
> > >>> >
> > >>> > wrote:
> > >>> >
> > >>> > > Hi,
> > >>> > >
> > >>> > > On Wed, Feb 17, 2016 at 5:09 PM, Mihir Chhaya <
> > >>> mihir.chhaya@gmail.com>
> > >>> > > wrote:
> > >>> > >
> > >>> > > > Hello,
> > >>> > > >
> > >>> > > > My apologies if this is not the right place to post wicketstuff
> > >>> related
> > >>> > > > issues. If so, then please advice me with right forum/link.
> > >>> > > >
> > >>> > >
> > >>> > > This is the right forum!
> > >>> > >
> > >>> > >
> > >>> > > >
> > >>> > > > I am using Wicketstuff-editable-grid-7.1.0 (with dependency on
> > >>> > > > wicketstuff-inmethod-grid-7.1.0).
> > >>> > > >
> > >>> > >
> > >>> > > Why InMethod-Grid is needed? Or you are migrating from Inmethod
> to
> > >>> > Editable
> > >>> > > ?
> > >>> > >
> > >>> > >
> > >>> > > >
> > >>> > > > *Problem:*
> > >>> > > > When two editable grids from two separate child panels are
> > rendered
> > >>> > into
> > >>> > > > single container (parent panel), then clicking 'Edit' link in
> the
> > >>> row
> > >>> > for
> > >>> > > > ClassA related editable grid throws 'No get method defined for
> > the
> > >>> > class'
> > >>> > > > error for ClassB property which is related to another editable
> > >>> grid.
> > >>> > > >
> > >>> > >
> > >>> > > Check what is the url for the Ajax call that is made.
> > >>> > > This should tell you why it finds ClassB instead of ClassA.
> > >>> > >
> > >>> > >
> > >>> > > >
> > >>> > > > *Requirement:*
> > >>> > > > I have a page with 4 different tabs. On one of the tabs, I want
> > to
> > >>> use
> > >>> > a
> > >>> > > > panel with two editable grids for two different static dataset
> > >>> Add/Edit
> > >>> > > > (One grid for tableA, another for tableB).
> > >>> > > >
> > >>> > > > *Efforts:*
> > >>> > > > I have created two separate panel classes as below - each with
> > >>> it's own
> > >>> > > > form and editable grid with it's own editable data provider
> with
> > >>> > > respective
> > >>> > > > array list of different types. The columns supplied to
> > EditableGrid
> > >>> > class
> > >>> > > > contains
> > >>> > > > EditableTextFieldPropertyColumn<ClassA, String> and <ClassB,
> > >>> String>
> > >>> > > > respectively with own properties. Please note that I have used
> > >>> distinct
> > >>> > > > markup Ids for each panel and grid components to avoid any
> > >>> duplication;
> > >>> > > > with setting output markup id to true.
> > >>> > > >
> > >>> > > > PanelA extends Panel{
> > >>> > > >
> > >>> > > >     //Constructor
> > >>> > > >     // formA with editableGridA with
> > editableDataProviderForClassA
> > >>> > > > }
> > >>> > > >
> > >>> > > > PanelB extends Panel{
> > >>> > > >
> > >>> > > >     //Constructor
> > >>> > > >     //formB with editableGridB with
> editableDataProviderForClassB
> > >>> using
> > >>> > > > }
> > >>> > > >
> > >>> > > > Those two panels are added into parent panel as below:
> > >>> > > >
> > >>> > > > TabbedPanel extends Panel{
> > >>> > > >
> > >>> > > >      //Constructor
> > >>> > > >      // Panel panelA = new PanelA("aPanel");
> > >>> > > >      // Panel panelB = new PanelB("bPanel");
> > >>> > > >      // add(panelA); add(panelB);
> > >>> > > > }
> > >>> > > >
> > >>> > > > As I have mentioned in the problem above; clicking on edit link
> > for
> > >>> > > classA
> > >>> > > > related grid is throwing error for classB property, which is
> > >>> associated
> > >>> > > > with different editable grid.
> > >>> > > >
> > >>> > > > Has anybody experienced similar issue? Any help/suggestions?
> > >>> > > >
> > >>> > >
> > >>> > > Everything looks OK.
> > >>> > > Check whether the url for the Ajax call after clicking on the
> cell
> > >>> > contains
> > >>> > > "aPanel" or "bPanel".
> > >>> > >
> > >>> > >
> > >>> > > >
> > >>> > > > Thanks,
> > >>> > > > -Mihir.
> > >>> > > >
> > >>> > >
> > >>> >
> > >>>
> > >>
> > >>
> > >
> >
>

Re: Wicketstuff editable grid - 7.1.0

Posted by Martin Grigorov <mg...@apache.org>.
Hi,

Please share the mini application somewhere, e.g. GitHub.

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Fri, Feb 19, 2016 at 7:30 PM, Mihir Chhaya <mi...@gmail.com>
wrote:

> Ok, so creating a small project with two panels(Person and Customer) and a
> page for similar use case resulted in following stacktrace.
> The panels are added in the order of PersonPanel, CustomerPanel in the
> parent page.
>
> The line# 163 in onSave method of EditableGrid is calling
> EditableGrid.this.onSave(target, rowModel); I wonder if the reference to
> this is referring to the first EditableGrid with Person records. Switching
> the order of adding grid panels throws the error other way around;
> complaining for Person cannot be cast to Customer.
>
> *java.lang.ClassCastException: spikes.domain.Customer cannot be cast
> to spikes.domain.Person*
>      at spikes.view.PersonPanel$1.onSave(PersonPanel.java:68)
>      at org.wicketstuff.egrid.EditableGrid$3.onSave(EditableGrid.java:163)
>      at
> org.wicketstuff.egrid.column.EditableGridActionsColumn$1.onSave(EditableGridActionsColumn.java:34)
>      at
> org.wicketstuff.egrid.column.EditableGridActionsPanel$2.onSuccess(EditableGridActionsPanel.java:71)
>      at
> org.wicketstuff.egrid.component.EditableGridSubmitLink.onSubmit(EditableGridSubmitLink.java:37)
>      at
> org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:110)
>      at
> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$AjaxFormSubmitter.onSubmit(AjaxFormSubmitBehavior.java:215)
>      at
> org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1307)
>      at
> org.wicketstuff.egrid.EditableGrid$NonValidatingForm.process(EditableGrid.java:79)
>      at
> org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:795)
>      at
> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:171)
>      at
> org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:155)
>      at
> org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:588)
>      at java.lang.reflect.Method.invoke(Method.java:606)
>      at
> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
>      at
> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
>      at
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
>      at
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
>      at
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
>      at
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
>      at
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
>      at
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
>      at
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
>      at
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
>      at
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:203)
>      at
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:284)
>      at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>      at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>      at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
>      at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>      at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>      at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
>      at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
>      at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
>      at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>      at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
>      at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
>      at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
>      at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
>      at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>      at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>      at java.lang.Thread.run(Thread.java:744)
>
> Complete stack:
>
> org.apache.wicket.WicketRuntimeException: Method onRequest of
> interface org.apache.wicket.behavior.IBehaviorListener targeted at
> org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1@47743d65 on
> component [EditableGridSubmitLink [Component id = save]] threw an
> exception
>      at
> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:268)
>      at
> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
>      at
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
>      at
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
>      at
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
>      at
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
>      at
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
>      at
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
>      at
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
>      at
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
>
> java.lang.reflect.InvocationTargetException
>      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>      at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>      at java.lang.reflect.Method.invoke(Method.java:606)
>      at
> org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
>      at
> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
>      at
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
>      at
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
>      at
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
>      at
> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
>      at
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
>      at
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
>      at
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
>      at
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
>
>
> On Fri, Feb 19, 2016 at 12:15 PM, Mihir Chhaya <mi...@gmail.com>
> wrote:
>
> > Just realized that last two lines could be confusing: the decisionCode is
> > the property of class PcaCodes in pcapanel, but showing up for
> exccodepanel
> > row item.
> >
> > On Fri, Feb 19, 2016 at 12:06 PM, Mihir Chhaya <mi...@gmail.com>
> > wrote:
> >
> >> My mistake about the inmethod grid dependency. I don't know why I saw
> >> compilation error in editable grid class when removed inmethod grid jar
> >> from classpath.
> >>
> >> For debugging the respond method as your suggestion, I do see correct
> >> class types for each rowItem (as attachment). But it fails with
> following
> >> error:
> >>
> >> Last cause: No get method defined for class: class
> >> packagename.ExceptionalDocCode expression: decisionCode
> >> WicketMessage: Exception in rendering component:
> >> [EditableTextFieldCellPanel [Component id = cell]]
> >>
> >>
> >> On Thu, Feb 18, 2016 at 5:06 PM, Martin Grigorov <mg...@apache.org>
> >> wrote:
> >>
> >>> On Thu, Feb 18, 2016 at 10:53 PM, Mihir Chhaya <mihir.chhaya@gmail.com
> >
> >>> wrote:
> >>>
> >>> > Thanks, Martin.
> >>> >
> >>> > By writing dependency on wicket in-method grid I meant editable grid
> >>> > inherently referring inmethod grid.
> >>> >
> >>>
> >>>
> >>>
> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/editable-grid/pom.xml
> >>>
> >>>
> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/pom.xml
> >>> The only dependency is wicket-extensions.
> >>> I am not sure what you mean by "inherently referring".
> >>>
> >>>
> >>> >
> >>> > I did check the Ajax url earlier and following are the values in
> >>> rendered
> >>> > html page for the panel.
> >>> >
> >>> >
> >>> >
> >>>
> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-pcapanel-pcacodegridForm-pcaDataTable-form-dataTable-body-rows-16-cells-6-cell-edit","c":"edit104","e":"click"});;
> >>> >
> >>> >
> >>> >
> >>>
> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-exccodepanel-excdoccodegridForm-excDataTable-form-dataTable-body-rows-10-cells-4-cell-edit","c":"edit113","e":"click"});;
> >>> >
> >>>
> >>> Assuming that 'pcapanel' is 'aPanel' and 'exccodepanel' is 'bPanel'
> >>> everything looks OK.
> >>> Clicking on any of those cells should correctly find the respective
> grid
> >>> cell and execute its Ajax behavior.
> >>> Put a breakpoint in AjaxEventBehavior#respond() and see why it finds
> >>> ClassB.
> >>>
> >>>
> >>> >
> >>> > Thanks,
> >>> > -Mihir.
> >>> >
> >>> > On Thu, Feb 18, 2016 at 3:18 PM, Martin Grigorov <
> mgrigorov@apache.org
> >>> >
> >>> > wrote:
> >>> >
> >>> > > Hi,
> >>> > >
> >>> > > On Wed, Feb 17, 2016 at 5:09 PM, Mihir Chhaya <
> >>> mihir.chhaya@gmail.com>
> >>> > > wrote:
> >>> > >
> >>> > > > Hello,
> >>> > > >
> >>> > > > My apologies if this is not the right place to post wicketstuff
> >>> related
> >>> > > > issues. If so, then please advice me with right forum/link.
> >>> > > >
> >>> > >
> >>> > > This is the right forum!
> >>> > >
> >>> > >
> >>> > > >
> >>> > > > I am using Wicketstuff-editable-grid-7.1.0 (with dependency on
> >>> > > > wicketstuff-inmethod-grid-7.1.0).
> >>> > > >
> >>> > >
> >>> > > Why InMethod-Grid is needed? Or you are migrating from Inmethod to
> >>> > Editable
> >>> > > ?
> >>> > >
> >>> > >
> >>> > > >
> >>> > > > *Problem:*
> >>> > > > When two editable grids from two separate child panels are
> rendered
> >>> > into
> >>> > > > single container (parent panel), then clicking 'Edit' link in the
> >>> row
> >>> > for
> >>> > > > ClassA related editable grid throws 'No get method defined for
> the
> >>> > class'
> >>> > > > error for ClassB property which is related to another editable
> >>> grid.
> >>> > > >
> >>> > >
> >>> > > Check what is the url for the Ajax call that is made.
> >>> > > This should tell you why it finds ClassB instead of ClassA.
> >>> > >
> >>> > >
> >>> > > >
> >>> > > > *Requirement:*
> >>> > > > I have a page with 4 different tabs. On one of the tabs, I want
> to
> >>> use
> >>> > a
> >>> > > > panel with two editable grids for two different static dataset
> >>> Add/Edit
> >>> > > > (One grid for tableA, another for tableB).
> >>> > > >
> >>> > > > *Efforts:*
> >>> > > > I have created two separate panel classes as below - each with
> >>> it's own
> >>> > > > form and editable grid with it's own editable data provider with
> >>> > > respective
> >>> > > > array list of different types. The columns supplied to
> EditableGrid
> >>> > class
> >>> > > > contains
> >>> > > > EditableTextFieldPropertyColumn<ClassA, String> and <ClassB,
> >>> String>
> >>> > > > respectively with own properties. Please note that I have used
> >>> distinct
> >>> > > > markup Ids for each panel and grid components to avoid any
> >>> duplication;
> >>> > > > with setting output markup id to true.
> >>> > > >
> >>> > > > PanelA extends Panel{
> >>> > > >
> >>> > > >     //Constructor
> >>> > > >     // formA with editableGridA with
> editableDataProviderForClassA
> >>> > > > }
> >>> > > >
> >>> > > > PanelB extends Panel{
> >>> > > >
> >>> > > >     //Constructor
> >>> > > >     //formB with editableGridB with editableDataProviderForClassB
> >>> using
> >>> > > > }
> >>> > > >
> >>> > > > Those two panels are added into parent panel as below:
> >>> > > >
> >>> > > > TabbedPanel extends Panel{
> >>> > > >
> >>> > > >      //Constructor
> >>> > > >      // Panel panelA = new PanelA("aPanel");
> >>> > > >      // Panel panelB = new PanelB("bPanel");
> >>> > > >      // add(panelA); add(panelB);
> >>> > > > }
> >>> > > >
> >>> > > > As I have mentioned in the problem above; clicking on edit link
> for
> >>> > > classA
> >>> > > > related grid is throwing error for classB property, which is
> >>> associated
> >>> > > > with different editable grid.
> >>> > > >
> >>> > > > Has anybody experienced similar issue? Any help/suggestions?
> >>> > > >
> >>> > >
> >>> > > Everything looks OK.
> >>> > > Check whether the url for the Ajax call after clicking on the cell
> >>> > contains
> >>> > > "aPanel" or "bPanel".
> >>> > >
> >>> > >
> >>> > > >
> >>> > > > Thanks,
> >>> > > > -Mihir.
> >>> > > >
> >>> > >
> >>> >
> >>>
> >>
> >>
> >
>

Re: Wicketstuff editable grid - 7.1.0

Posted by Mihir Chhaya <mi...@gmail.com>.
Ok, so creating a small project with two panels(Person and Customer) and a
page for similar use case resulted in following stacktrace.
The panels are added in the order of PersonPanel, CustomerPanel in the
parent page.

The line# 163 in onSave method of EditableGrid is calling
EditableGrid.this.onSave(target, rowModel); I wonder if the reference to
this is referring to the first EditableGrid with Person records. Switching
the order of adding grid panels throws the error other way around;
complaining for Person cannot be cast to Customer.

*java.lang.ClassCastException: spikes.domain.Customer cannot be cast
to spikes.domain.Person*
     at spikes.view.PersonPanel$1.onSave(PersonPanel.java:68)
     at org.wicketstuff.egrid.EditableGrid$3.onSave(EditableGrid.java:163)
     at org.wicketstuff.egrid.column.EditableGridActionsColumn$1.onSave(EditableGridActionsColumn.java:34)
     at org.wicketstuff.egrid.column.EditableGridActionsPanel$2.onSuccess(EditableGridActionsPanel.java:71)
     at org.wicketstuff.egrid.component.EditableGridSubmitLink.onSubmit(EditableGridSubmitLink.java:37)
     at org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:110)
     at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$AjaxFormSubmitter.onSubmit(AjaxFormSubmitBehavior.java:215)
     at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1307)
     at org.wicketstuff.egrid.EditableGrid$NonValidatingForm.process(EditableGrid.java:79)
     at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:795)
     at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:171)
     at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:155)
     at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:588)
     at java.lang.reflect.Method.invoke(Method.java:606)
     at org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
     at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
     at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
     at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
     at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
     at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
     at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
     at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
     at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
     at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
     at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:203)
     at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:284)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
     at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
     at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
     at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
     at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
     at java.lang.Thread.run(Thread.java:744)

Complete stack:

org.apache.wicket.WicketRuntimeException: Method onRequest of
interface org.apache.wicket.behavior.IBehaviorListener targeted at
org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1@47743d65 on
component [EditableGridSubmitLink [Component id = save]] threw an
exception
     at org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:268)
     at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
     at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
     at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
     at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
     at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
     at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
     at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
     at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
     at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)

java.lang.reflect.InvocationTargetException
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
     at java.lang.reflect.Method.invoke(Method.java:606)
     at org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
     at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
     at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
     at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
     at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
     at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
     at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
     at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
     at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
     at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)


On Fri, Feb 19, 2016 at 12:15 PM, Mihir Chhaya <mi...@gmail.com>
wrote:

> Just realized that last two lines could be confusing: the decisionCode is
> the property of class PcaCodes in pcapanel, but showing up for exccodepanel
> row item.
>
> On Fri, Feb 19, 2016 at 12:06 PM, Mihir Chhaya <mi...@gmail.com>
> wrote:
>
>> My mistake about the inmethod grid dependency. I don't know why I saw
>> compilation error in editable grid class when removed inmethod grid jar
>> from classpath.
>>
>> For debugging the respond method as your suggestion, I do see correct
>> class types for each rowItem (as attachment). But it fails with following
>> error:
>>
>> Last cause: No get method defined for class: class
>> packagename.ExceptionalDocCode expression: decisionCode
>> WicketMessage: Exception in rendering component:
>> [EditableTextFieldCellPanel [Component id = cell]]
>>
>>
>> On Thu, Feb 18, 2016 at 5:06 PM, Martin Grigorov <mg...@apache.org>
>> wrote:
>>
>>> On Thu, Feb 18, 2016 at 10:53 PM, Mihir Chhaya <mi...@gmail.com>
>>> wrote:
>>>
>>> > Thanks, Martin.
>>> >
>>> > By writing dependency on wicket in-method grid I meant editable grid
>>> > inherently referring inmethod grid.
>>> >
>>>
>>>
>>> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/editable-grid/pom.xml
>>>
>>> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/pom.xml
>>> The only dependency is wicket-extensions.
>>> I am not sure what you mean by "inherently referring".
>>>
>>>
>>> >
>>> > I did check the Ajax url earlier and following are the values in
>>> rendered
>>> > html page for the panel.
>>> >
>>> >
>>> >
>>> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-pcapanel-pcacodegridForm-pcaDataTable-form-dataTable-body-rows-16-cells-6-cell-edit","c":"edit104","e":"click"});;
>>> >
>>> >
>>> >
>>> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-exccodepanel-excdoccodegridForm-excDataTable-form-dataTable-body-rows-10-cells-4-cell-edit","c":"edit113","e":"click"});;
>>> >
>>>
>>> Assuming that 'pcapanel' is 'aPanel' and 'exccodepanel' is 'bPanel'
>>> everything looks OK.
>>> Clicking on any of those cells should correctly find the respective grid
>>> cell and execute its Ajax behavior.
>>> Put a breakpoint in AjaxEventBehavior#respond() and see why it finds
>>> ClassB.
>>>
>>>
>>> >
>>> > Thanks,
>>> > -Mihir.
>>> >
>>> > On Thu, Feb 18, 2016 at 3:18 PM, Martin Grigorov <mgrigorov@apache.org
>>> >
>>> > wrote:
>>> >
>>> > > Hi,
>>> > >
>>> > > On Wed, Feb 17, 2016 at 5:09 PM, Mihir Chhaya <
>>> mihir.chhaya@gmail.com>
>>> > > wrote:
>>> > >
>>> > > > Hello,
>>> > > >
>>> > > > My apologies if this is not the right place to post wicketstuff
>>> related
>>> > > > issues. If so, then please advice me with right forum/link.
>>> > > >
>>> > >
>>> > > This is the right forum!
>>> > >
>>> > >
>>> > > >
>>> > > > I am using Wicketstuff-editable-grid-7.1.0 (with dependency on
>>> > > > wicketstuff-inmethod-grid-7.1.0).
>>> > > >
>>> > >
>>> > > Why InMethod-Grid is needed? Or you are migrating from Inmethod to
>>> > Editable
>>> > > ?
>>> > >
>>> > >
>>> > > >
>>> > > > *Problem:*
>>> > > > When two editable grids from two separate child panels are rendered
>>> > into
>>> > > > single container (parent panel), then clicking 'Edit' link in the
>>> row
>>> > for
>>> > > > ClassA related editable grid throws 'No get method defined for the
>>> > class'
>>> > > > error for ClassB property which is related to another editable
>>> grid.
>>> > > >
>>> > >
>>> > > Check what is the url for the Ajax call that is made.
>>> > > This should tell you why it finds ClassB instead of ClassA.
>>> > >
>>> > >
>>> > > >
>>> > > > *Requirement:*
>>> > > > I have a page with 4 different tabs. On one of the tabs, I want to
>>> use
>>> > a
>>> > > > panel with two editable grids for two different static dataset
>>> Add/Edit
>>> > > > (One grid for tableA, another for tableB).
>>> > > >
>>> > > > *Efforts:*
>>> > > > I have created two separate panel classes as below - each with
>>> it's own
>>> > > > form and editable grid with it's own editable data provider with
>>> > > respective
>>> > > > array list of different types. The columns supplied to EditableGrid
>>> > class
>>> > > > contains
>>> > > > EditableTextFieldPropertyColumn<ClassA, String> and <ClassB,
>>> String>
>>> > > > respectively with own properties. Please note that I have used
>>> distinct
>>> > > > markup Ids for each panel and grid components to avoid any
>>> duplication;
>>> > > > with setting output markup id to true.
>>> > > >
>>> > > > PanelA extends Panel{
>>> > > >
>>> > > >     //Constructor
>>> > > >     // formA with editableGridA with editableDataProviderForClassA
>>> > > > }
>>> > > >
>>> > > > PanelB extends Panel{
>>> > > >
>>> > > >     //Constructor
>>> > > >     //formB with editableGridB with editableDataProviderForClassB
>>> using
>>> > > > }
>>> > > >
>>> > > > Those two panels are added into parent panel as below:
>>> > > >
>>> > > > TabbedPanel extends Panel{
>>> > > >
>>> > > >      //Constructor
>>> > > >      // Panel panelA = new PanelA("aPanel");
>>> > > >      // Panel panelB = new PanelB("bPanel");
>>> > > >      // add(panelA); add(panelB);
>>> > > > }
>>> > > >
>>> > > > As I have mentioned in the problem above; clicking on edit link for
>>> > > classA
>>> > > > related grid is throwing error for classB property, which is
>>> associated
>>> > > > with different editable grid.
>>> > > >
>>> > > > Has anybody experienced similar issue? Any help/suggestions?
>>> > > >
>>> > >
>>> > > Everything looks OK.
>>> > > Check whether the url for the Ajax call after clicking on the cell
>>> > contains
>>> > > "aPanel" or "bPanel".
>>> > >
>>> > >
>>> > > >
>>> > > > Thanks,
>>> > > > -Mihir.
>>> > > >
>>> > >
>>> >
>>>
>>
>>
>

Re: Wicketstuff editable grid - 7.1.0

Posted by Mihir Chhaya <mi...@gmail.com>.
Just realized that last two lines could be confusing: the decisionCode is
the property of class PcaCodes in pcapanel, but showing up for exccodepanel
row item.

On Fri, Feb 19, 2016 at 12:06 PM, Mihir Chhaya <mi...@gmail.com>
wrote:

> My mistake about the inmethod grid dependency. I don't know why I saw
> compilation error in editable grid class when removed inmethod grid jar
> from classpath.
>
> For debugging the respond method as your suggestion, I do see correct
> class types for each rowItem (as attachment). But it fails with following
> error:
>
> Last cause: No get method defined for class: class
> packagename.ExceptionalDocCode expression: decisionCode
> WicketMessage: Exception in rendering component:
> [EditableTextFieldCellPanel [Component id = cell]]
>
>
> On Thu, Feb 18, 2016 at 5:06 PM, Martin Grigorov <mg...@apache.org>
> wrote:
>
>> On Thu, Feb 18, 2016 at 10:53 PM, Mihir Chhaya <mi...@gmail.com>
>> wrote:
>>
>> > Thanks, Martin.
>> >
>> > By writing dependency on wicket in-method grid I meant editable grid
>> > inherently referring inmethod grid.
>> >
>>
>>
>> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/editable-grid/pom.xml
>>
>> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/pom.xml
>> The only dependency is wicket-extensions.
>> I am not sure what you mean by "inherently referring".
>>
>>
>> >
>> > I did check the Ajax url earlier and following are the values in
>> rendered
>> > html page for the panel.
>> >
>> >
>> >
>> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-pcapanel-pcacodegridForm-pcaDataTable-form-dataTable-body-rows-16-cells-6-cell-edit","c":"edit104","e":"click"});;
>> >
>> >
>> >
>> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-exccodepanel-excdoccodegridForm-excDataTable-form-dataTable-body-rows-10-cells-4-cell-edit","c":"edit113","e":"click"});;
>> >
>>
>> Assuming that 'pcapanel' is 'aPanel' and 'exccodepanel' is 'bPanel'
>> everything looks OK.
>> Clicking on any of those cells should correctly find the respective grid
>> cell and execute its Ajax behavior.
>> Put a breakpoint in AjaxEventBehavior#respond() and see why it finds
>> ClassB.
>>
>>
>> >
>> > Thanks,
>> > -Mihir.
>> >
>> > On Thu, Feb 18, 2016 at 3:18 PM, Martin Grigorov <mg...@apache.org>
>> > wrote:
>> >
>> > > Hi,
>> > >
>> > > On Wed, Feb 17, 2016 at 5:09 PM, Mihir Chhaya <mihir.chhaya@gmail.com
>> >
>> > > wrote:
>> > >
>> > > > Hello,
>> > > >
>> > > > My apologies if this is not the right place to post wicketstuff
>> related
>> > > > issues. If so, then please advice me with right forum/link.
>> > > >
>> > >
>> > > This is the right forum!
>> > >
>> > >
>> > > >
>> > > > I am using Wicketstuff-editable-grid-7.1.0 (with dependency on
>> > > > wicketstuff-inmethod-grid-7.1.0).
>> > > >
>> > >
>> > > Why InMethod-Grid is needed? Or you are migrating from Inmethod to
>> > Editable
>> > > ?
>> > >
>> > >
>> > > >
>> > > > *Problem:*
>> > > > When two editable grids from two separate child panels are rendered
>> > into
>> > > > single container (parent panel), then clicking 'Edit' link in the
>> row
>> > for
>> > > > ClassA related editable grid throws 'No get method defined for the
>> > class'
>> > > > error for ClassB property which is related to another editable grid.
>> > > >
>> > >
>> > > Check what is the url for the Ajax call that is made.
>> > > This should tell you why it finds ClassB instead of ClassA.
>> > >
>> > >
>> > > >
>> > > > *Requirement:*
>> > > > I have a page with 4 different tabs. On one of the tabs, I want to
>> use
>> > a
>> > > > panel with two editable grids for two different static dataset
>> Add/Edit
>> > > > (One grid for tableA, another for tableB).
>> > > >
>> > > > *Efforts:*
>> > > > I have created two separate panel classes as below - each with it's
>> own
>> > > > form and editable grid with it's own editable data provider with
>> > > respective
>> > > > array list of different types. The columns supplied to EditableGrid
>> > class
>> > > > contains
>> > > > EditableTextFieldPropertyColumn<ClassA, String> and <ClassB, String>
>> > > > respectively with own properties. Please note that I have used
>> distinct
>> > > > markup Ids for each panel and grid components to avoid any
>> duplication;
>> > > > with setting output markup id to true.
>> > > >
>> > > > PanelA extends Panel{
>> > > >
>> > > >     //Constructor
>> > > >     // formA with editableGridA with editableDataProviderForClassA
>> > > > }
>> > > >
>> > > > PanelB extends Panel{
>> > > >
>> > > >     //Constructor
>> > > >     //formB with editableGridB with editableDataProviderForClassB
>> using
>> > > > }
>> > > >
>> > > > Those two panels are added into parent panel as below:
>> > > >
>> > > > TabbedPanel extends Panel{
>> > > >
>> > > >      //Constructor
>> > > >      // Panel panelA = new PanelA("aPanel");
>> > > >      // Panel panelB = new PanelB("bPanel");
>> > > >      // add(panelA); add(panelB);
>> > > > }
>> > > >
>> > > > As I have mentioned in the problem above; clicking on edit link for
>> > > classA
>> > > > related grid is throwing error for classB property, which is
>> associated
>> > > > with different editable grid.
>> > > >
>> > > > Has anybody experienced similar issue? Any help/suggestions?
>> > > >
>> > >
>> > > Everything looks OK.
>> > > Check whether the url for the Ajax call after clicking on the cell
>> > contains
>> > > "aPanel" or "bPanel".
>> > >
>> > >
>> > > >
>> > > > Thanks,
>> > > > -Mihir.
>> > > >
>> > >
>> >
>>
>
>

Re: Wicketstuff editable grid - 7.1.0

Posted by Mihir Chhaya <mi...@gmail.com>.
My mistake about the inmethod grid dependency. I don't know why I saw
compilation error in editable grid class when removed inmethod grid jar
from classpath.

For debugging the respond method as your suggestion, I do see correct class
types for each rowItem (as attachment). But it fails with following error:

Last cause: No get method defined for class: class
packagename.ExceptionalDocCode expression: decisionCode
WicketMessage: Exception in rendering component:
[EditableTextFieldCellPanel [Component id = cell]]


On Thu, Feb 18, 2016 at 5:06 PM, Martin Grigorov <mg...@apache.org>
wrote:

> On Thu, Feb 18, 2016 at 10:53 PM, Mihir Chhaya <mi...@gmail.com>
> wrote:
>
> > Thanks, Martin.
> >
> > By writing dependency on wicket in-method grid I meant editable grid
> > inherently referring inmethod grid.
> >
>
>
> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/editable-grid/pom.xml
>
> https://github.com/wicketstuff/core/blob/master/editable-grid-parent/pom.xml
> The only dependency is wicket-extensions.
> I am not sure what you mean by "inherently referring".
>
>
> >
> > I did check the Ajax url earlier and following are the values in rendered
> > html page for the panel.
> >
> >
> >
> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-pcapanel-pcacodegridForm-pcaDataTable-form-dataTable-body-rows-16-cells-6-cell-edit","c":"edit104","e":"click"});;
> >
> >
> >
> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-exccodepanel-excdoccodegridForm-excDataTable-form-dataTable-body-rows-10-cells-4-cell-edit","c":"edit113","e":"click"});;
> >
>
> Assuming that 'pcapanel' is 'aPanel' and 'exccodepanel' is 'bPanel'
> everything looks OK.
> Clicking on any of those cells should correctly find the respective grid
> cell and execute its Ajax behavior.
> Put a breakpoint in AjaxEventBehavior#respond() and see why it finds
> ClassB.
>
>
> >
> > Thanks,
> > -Mihir.
> >
> > On Thu, Feb 18, 2016 at 3:18 PM, Martin Grigorov <mg...@apache.org>
> > wrote:
> >
> > > Hi,
> > >
> > > On Wed, Feb 17, 2016 at 5:09 PM, Mihir Chhaya <mi...@gmail.com>
> > > wrote:
> > >
> > > > Hello,
> > > >
> > > > My apologies if this is not the right place to post wicketstuff
> related
> > > > issues. If so, then please advice me with right forum/link.
> > > >
> > >
> > > This is the right forum!
> > >
> > >
> > > >
> > > > I am using Wicketstuff-editable-grid-7.1.0 (with dependency on
> > > > wicketstuff-inmethod-grid-7.1.0).
> > > >
> > >
> > > Why InMethod-Grid is needed? Or you are migrating from Inmethod to
> > Editable
> > > ?
> > >
> > >
> > > >
> > > > *Problem:*
> > > > When two editable grids from two separate child panels are rendered
> > into
> > > > single container (parent panel), then clicking 'Edit' link in the row
> > for
> > > > ClassA related editable grid throws 'No get method defined for the
> > class'
> > > > error for ClassB property which is related to another editable grid.
> > > >
> > >
> > > Check what is the url for the Ajax call that is made.
> > > This should tell you why it finds ClassB instead of ClassA.
> > >
> > >
> > > >
> > > > *Requirement:*
> > > > I have a page with 4 different tabs. On one of the tabs, I want to
> use
> > a
> > > > panel with two editable grids for two different static dataset
> Add/Edit
> > > > (One grid for tableA, another for tableB).
> > > >
> > > > *Efforts:*
> > > > I have created two separate panel classes as below - each with it's
> own
> > > > form and editable grid with it's own editable data provider with
> > > respective
> > > > array list of different types. The columns supplied to EditableGrid
> > class
> > > > contains
> > > > EditableTextFieldPropertyColumn<ClassA, String> and <ClassB, String>
> > > > respectively with own properties. Please note that I have used
> distinct
> > > > markup Ids for each panel and grid components to avoid any
> duplication;
> > > > with setting output markup id to true.
> > > >
> > > > PanelA extends Panel{
> > > >
> > > >     //Constructor
> > > >     // formA with editableGridA with editableDataProviderForClassA
> > > > }
> > > >
> > > > PanelB extends Panel{
> > > >
> > > >     //Constructor
> > > >     //formB with editableGridB with editableDataProviderForClassB
> using
> > > > }
> > > >
> > > > Those two panels are added into parent panel as below:
> > > >
> > > > TabbedPanel extends Panel{
> > > >
> > > >      //Constructor
> > > >      // Panel panelA = new PanelA("aPanel");
> > > >      // Panel panelB = new PanelB("bPanel");
> > > >      // add(panelA); add(panelB);
> > > > }
> > > >
> > > > As I have mentioned in the problem above; clicking on edit link for
> > > classA
> > > > related grid is throwing error for classB property, which is
> associated
> > > > with different editable grid.
> > > >
> > > > Has anybody experienced similar issue? Any help/suggestions?
> > > >
> > >
> > > Everything looks OK.
> > > Check whether the url for the Ajax call after clicking on the cell
> > contains
> > > "aPanel" or "bPanel".
> > >
> > >
> > > >
> > > > Thanks,
> > > > -Mihir.
> > > >
> > >
> >
>

Re: Wicketstuff editable grid - 7.1.0

Posted by Martin Grigorov <mg...@apache.org>.
On Thu, Feb 18, 2016 at 10:53 PM, Mihir Chhaya <mi...@gmail.com>
wrote:

> Thanks, Martin.
>
> By writing dependency on wicket in-method grid I meant editable grid
> inherently referring inmethod grid.
>

https://github.com/wicketstuff/core/blob/master/editable-grid-parent/editable-grid/pom.xml
https://github.com/wicketstuff/core/blob/master/editable-grid-parent/pom.xml
The only dependency is wicket-extensions.
I am not sure what you mean by "inherently referring".


>
> I did check the Ajax url earlier and following are the values in rendered
> html page for the panel.
>
>
> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-pcapanel-pcacodegridForm-pcaDataTable-form-dataTable-body-rows-16-cells-6-cell-edit","c":"edit104","e":"click"});;
>
>
> Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-exccodepanel-excdoccodegridForm-excDataTable-form-dataTable-body-rows-10-cells-4-cell-edit","c":"edit113","e":"click"});;
>

Assuming that 'pcapanel' is 'aPanel' and 'exccodepanel' is 'bPanel'
everything looks OK.
Clicking on any of those cells should correctly find the respective grid
cell and execute its Ajax behavior.
Put a breakpoint in AjaxEventBehavior#respond() and see why it finds ClassB.


>
> Thanks,
> -Mihir.
>
> On Thu, Feb 18, 2016 at 3:18 PM, Martin Grigorov <mg...@apache.org>
> wrote:
>
> > Hi,
> >
> > On Wed, Feb 17, 2016 at 5:09 PM, Mihir Chhaya <mi...@gmail.com>
> > wrote:
> >
> > > Hello,
> > >
> > > My apologies if this is not the right place to post wicketstuff related
> > > issues. If so, then please advice me with right forum/link.
> > >
> >
> > This is the right forum!
> >
> >
> > >
> > > I am using Wicketstuff-editable-grid-7.1.0 (with dependency on
> > > wicketstuff-inmethod-grid-7.1.0).
> > >
> >
> > Why InMethod-Grid is needed? Or you are migrating from Inmethod to
> Editable
> > ?
> >
> >
> > >
> > > *Problem:*
> > > When two editable grids from two separate child panels are rendered
> into
> > > single container (parent panel), then clicking 'Edit' link in the row
> for
> > > ClassA related editable grid throws 'No get method defined for the
> class'
> > > error for ClassB property which is related to another editable grid.
> > >
> >
> > Check what is the url for the Ajax call that is made.
> > This should tell you why it finds ClassB instead of ClassA.
> >
> >
> > >
> > > *Requirement:*
> > > I have a page with 4 different tabs. On one of the tabs, I want to use
> a
> > > panel with two editable grids for two different static dataset Add/Edit
> > > (One grid for tableA, another for tableB).
> > >
> > > *Efforts:*
> > > I have created two separate panel classes as below - each with it's own
> > > form and editable grid with it's own editable data provider with
> > respective
> > > array list of different types. The columns supplied to EditableGrid
> class
> > > contains
> > > EditableTextFieldPropertyColumn<ClassA, String> and <ClassB, String>
> > > respectively with own properties. Please note that I have used distinct
> > > markup Ids for each panel and grid components to avoid any duplication;
> > > with setting output markup id to true.
> > >
> > > PanelA extends Panel{
> > >
> > >     //Constructor
> > >     // formA with editableGridA with editableDataProviderForClassA
> > > }
> > >
> > > PanelB extends Panel{
> > >
> > >     //Constructor
> > >     //formB with editableGridB with editableDataProviderForClassB using
> > > }
> > >
> > > Those two panels are added into parent panel as below:
> > >
> > > TabbedPanel extends Panel{
> > >
> > >      //Constructor
> > >      // Panel panelA = new PanelA("aPanel");
> > >      // Panel panelB = new PanelB("bPanel");
> > >      // add(panelA); add(panelB);
> > > }
> > >
> > > As I have mentioned in the problem above; clicking on edit link for
> > classA
> > > related grid is throwing error for classB property, which is associated
> > > with different editable grid.
> > >
> > > Has anybody experienced similar issue? Any help/suggestions?
> > >
> >
> > Everything looks OK.
> > Check whether the url for the Ajax call after clicking on the cell
> contains
> > "aPanel" or "bPanel".
> >
> >
> > >
> > > Thanks,
> > > -Mihir.
> > >
> >
>

Re: Wicketstuff editable grid - 7.1.0

Posted by Mihir Chhaya <mi...@gmail.com>.
Thanks, Martin.

By writing dependency on wicket in-method grid I meant editable grid
inherently referring inmethod grid.

I did check the Ajax url earlier and following are the values in rendered
html page for the panel.

Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-pcapanel-pcacodegridForm-pcaDataTable-form-dataTable-body-rows-16-cells-6-cell-edit","c":"edit104","e":"click"});;

Wicket.Ajax.ajax({"u":"./appcontext?5-2.IBehaviorListener.0-admincontroltabs-panel-exccodepanel-excdoccodegridForm-excDataTable-form-dataTable-body-rows-10-cells-4-cell-edit","c":"edit113","e":"click"});;

Thanks,
-Mihir.

On Thu, Feb 18, 2016 at 3:18 PM, Martin Grigorov <mg...@apache.org>
wrote:

> Hi,
>
> On Wed, Feb 17, 2016 at 5:09 PM, Mihir Chhaya <mi...@gmail.com>
> wrote:
>
> > Hello,
> >
> > My apologies if this is not the right place to post wicketstuff related
> > issues. If so, then please advice me with right forum/link.
> >
>
> This is the right forum!
>
>
> >
> > I am using Wicketstuff-editable-grid-7.1.0 (with dependency on
> > wicketstuff-inmethod-grid-7.1.0).
> >
>
> Why InMethod-Grid is needed? Or you are migrating from Inmethod to Editable
> ?
>
>
> >
> > *Problem:*
> > When two editable grids from two separate child panels are rendered into
> > single container (parent panel), then clicking 'Edit' link in the row for
> > ClassA related editable grid throws 'No get method defined for the class'
> > error for ClassB property which is related to another editable grid.
> >
>
> Check what is the url for the Ajax call that is made.
> This should tell you why it finds ClassB instead of ClassA.
>
>
> >
> > *Requirement:*
> > I have a page with 4 different tabs. On one of the tabs, I want to use a
> > panel with two editable grids for two different static dataset Add/Edit
> > (One grid for tableA, another for tableB).
> >
> > *Efforts:*
> > I have created two separate panel classes as below - each with it's own
> > form and editable grid with it's own editable data provider with
> respective
> > array list of different types. The columns supplied to EditableGrid class
> > contains
> > EditableTextFieldPropertyColumn<ClassA, String> and <ClassB, String>
> > respectively with own properties. Please note that I have used distinct
> > markup Ids for each panel and grid components to avoid any duplication;
> > with setting output markup id to true.
> >
> > PanelA extends Panel{
> >
> >     //Constructor
> >     // formA with editableGridA with editableDataProviderForClassA
> > }
> >
> > PanelB extends Panel{
> >
> >     //Constructor
> >     //formB with editableGridB with editableDataProviderForClassB using
> > }
> >
> > Those two panels are added into parent panel as below:
> >
> > TabbedPanel extends Panel{
> >
> >      //Constructor
> >      // Panel panelA = new PanelA("aPanel");
> >      // Panel panelB = new PanelB("bPanel");
> >      // add(panelA); add(panelB);
> > }
> >
> > As I have mentioned in the problem above; clicking on edit link for
> classA
> > related grid is throwing error for classB property, which is associated
> > with different editable grid.
> >
> > Has anybody experienced similar issue? Any help/suggestions?
> >
>
> Everything looks OK.
> Check whether the url for the Ajax call after clicking on the cell contains
> "aPanel" or "bPanel".
>
>
> >
> > Thanks,
> > -Mihir.
> >
>

Re: Wicketstuff editable grid - 7.1.0

Posted by Martin Grigorov <mg...@apache.org>.
Hi,

On Wed, Feb 17, 2016 at 5:09 PM, Mihir Chhaya <mi...@gmail.com>
wrote:

> Hello,
>
> My apologies if this is not the right place to post wicketstuff related
> issues. If so, then please advice me with right forum/link.
>

This is the right forum!


>
> I am using Wicketstuff-editable-grid-7.1.0 (with dependency on
> wicketstuff-inmethod-grid-7.1.0).
>

Why InMethod-Grid is needed? Or you are migrating from Inmethod to Editable
?


>
> *Problem:*
> When two editable grids from two separate child panels are rendered into
> single container (parent panel), then clicking 'Edit' link in the row for
> ClassA related editable grid throws 'No get method defined for the class'
> error for ClassB property which is related to another editable grid.
>

Check what is the url for the Ajax call that is made.
This should tell you why it finds ClassB instead of ClassA.


>
> *Requirement:*
> I have a page with 4 different tabs. On one of the tabs, I want to use a
> panel with two editable grids for two different static dataset Add/Edit
> (One grid for tableA, another for tableB).
>
> *Efforts:*
> I have created two separate panel classes as below - each with it's own
> form and editable grid with it's own editable data provider with respective
> array list of different types. The columns supplied to EditableGrid class
> contains
> EditableTextFieldPropertyColumn<ClassA, String> and <ClassB, String>
> respectively with own properties. Please note that I have used distinct
> markup Ids for each panel and grid components to avoid any duplication;
> with setting output markup id to true.
>
> PanelA extends Panel{
>
>     //Constructor
>     // formA with editableGridA with editableDataProviderForClassA
> }
>
> PanelB extends Panel{
>
>     //Constructor
>     //formB with editableGridB with editableDataProviderForClassB using
> }
>
> Those two panels are added into parent panel as below:
>
> TabbedPanel extends Panel{
>
>      //Constructor
>      // Panel panelA = new PanelA("aPanel");
>      // Panel panelB = new PanelB("bPanel");
>      // add(panelA); add(panelB);
> }
>
> As I have mentioned in the problem above; clicking on edit link for classA
> related grid is throwing error for classB property, which is associated
> with different editable grid.
>
> Has anybody experienced similar issue? Any help/suggestions?
>

Everything looks OK.
Check whether the url for the Ajax call after clicking on the cell contains
"aPanel" or "bPanel".


>
> Thanks,
> -Mihir.
>