Hello Chuck,

Actually that is what I ended up doing right now. Handling the actions in
EMRecipientAjaxGridCell which works fine.

The reason I wanted the action to be handled in the parent is that, I have
quite a few grids. Each grid has different EO models. Each model can be
deleted/updated from the grid directly. On "Update", the user is taken to
the "update" page for that particular model/item. On "Delete" taken to a
confirmation page of that model/item. ... etc.

So, I wanted to avoid repeatedly writing cell components like
EMRecipientAjaxGridCell for each kind of grid. (I'm kind of lazy ;) ). Am I
making sense? (besides the lazy part) ;)

Amiel



On Tue, Mar 3, 2009 at 12:47 PM, Chuck Hill <[email protected]>wrote:

> Hi Amiel,
>
> On Mar 2, 2009, at 8:18 PM, amiel montecillo wrote:
>
>  So I tried to do the Chuck way and he was right,
>>
>
> "There are two ways to do things, the Chuck way and the wrong way".  :-P
>
>
>  I did get to keep the pieces. Most notably a stacktrace :)
>>
>
> I was not really expecting that.  I've had that happen to me before, but I
> don't recall what caused it.
>
> Why do you need to process the action in Main?  Why can't
> EMRecipientAjaxGridCell handle the action itself?  Is it missing some
> information?  Is the action too specific and this component too general?
>  Supply some more details and I will see if I can find a solution for you.
>
>
> Chuck
>
>
>
>
>
>  Mar 03 12:07:57 EMManager[5555] DEBUG
>> com.ods.marketing.app.emmanager.components.email.EMRecipientAjaxGridCell  -
>> parent binding value: delete
>> Mar 03 12:07:57 EMManager[5555] DEBUG
>> com.ods.marketing.app.emmanager.components.Main  - DeleteAction called. <--
>> parent was indeed called!
>> Mar 03 12:07:57 EMManager[5555] WARN  NSLog  -
>> <com.webobjects.appserver._private.WOComponentRequestHandler>: Exception
>> occurred while handling request:
>> java.lang.NullPointerException
>> [2009-3-3 12:7:57 CST] <WorkerThread8> java.lang.NullPointerException
>>    at
>> com.webobjects.appserver._private.WOComponentReference._popComponentFromContext(WOComponentReference.java:108)
>>    at
>> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:128)
>>    at
>> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
>>    at
>> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
>>    at
>> er.extensions.components.conditionals.ERXElse.invokeAction(ERXElse.java:43)
>>    at
>> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
>>    at
>> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
>>    at er.ajax.AjaxDynamicElement.invokeAction(AjaxDynamicElement.java:98)
>>    at
>> er.ajax.AjaxUpdateContainer.invokeAction(AjaxUpdateContainer.java:62)
>>    at
>> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
>>    at
>> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
>>    at
>> com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
>>    at
>> er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:92)
>>    at
>> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
>>    at
>> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
>>    at
>> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
>>    at
>> er.extensions.components.ERXWOComponentContent.invokeAction(ERXWOComponentContent.java:217)
>>    at
>> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
>>    at
>> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
>>    at
>> com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
>>    at
>> er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:92)
>>    at
>> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
>>    at
>> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
>>    at
>> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
>>    at
>> com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
>>    at
>> er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:92)
>>    at com.webobjects.appserver.WOSession.invokeAction(WOSession.java:1357)
>>    at
>> com.webobjects.appserver.WOApplication.invokeAction(WOApplication.java:1745)
>>    at
>> er.extensions.appserver.ajax.ERXAjaxApplication.invokeAction(ERXAjaxApplication.java:49)
>>    at
>> er.extensions.appserver.ERXApplication.invokeAction(ERXApplication.java:1622)
>>    at
>> com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedPage(WOComponentRequestHandler.java:206)
>>    at
>> com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedSession(WOComponentRequestHandler.java:298)
>>    at
>> com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedApplication(WOComponentRequestHandler.java:332)
>>    at
>> com.webobjects.appserver._private.WOComponentRequestHandler._handleRequest(WOComponentRequestHandler.java:369)
>>    at
>> com.webobjects.appserver._private.WOComponentRequestHandler.handleRequest(WOComponentRequestHandler.java:442)
>>    at
>> com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1687)
>>    at
>> er.extensions.appserver.ERXApplication.dispatchRequestImmediately(ERXApplication.java:1737)
>>    at
>> er.extensions.appserver.ERXApplication.dispatchRequest(ERXApplication.java:1702)
>>    at
>> com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java:144)
>>    at
>> com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:226)
>>    at java.lang.Thread.run(Thread.java:595)
>>
>>
>>
>> On Tue, Mar 3, 2009 at 11:49 AM, Chuck Hill <[email protected]>
>> wrote:
>>
>> On Mar 2, 2009, at 7:40 PM, Andrew Lindesay wrote:
>>
>> Hello Amiel;
>>
>> I think I understand your question; you have a component in which you want
>> the action to be fired on the parent component?  Try to use the "^" as in;
>>
>>       ^goDelete
>>
>> This will invoke the method "goDelete" in the parent component.
>>
>> The problem here is that components are inserted into AjaxGrid cells via
>> WOSwitchComponent and the only bindings are:
>>
>> ColumnValue: WOSwitchComponent {
>>       WOComponentName = columnComponentName;
>>       value = columnValue;
>>       grid = thisComponent;
>> }
>>
>> This situations requires a little trickery or a different design.
>>  grid.parent should return the component that holds the grid.  So you can do
>> grid().parent().performActionNamed("foo"), but it if breaks you get to keep
>> the pieces.  :-)
>>
>>
>> Chuck
>>
>>
>>
>>
>>
>> cheers.
>>
>> The reason I asked this is that I wanted to embed the CRUD component to
>> one of the cells in an AjaxGrid. and needed the "Delete" and "Update" action
>> to be fired in the parent component of the AjaxGrid instead of the CRUD
>> component. So the CRUD can be reusable.
>>
>> ___
>> Andrew Lindesay
>> www.lindesay.co.nz
>>
>>
>>
>> --
>> Chuck Hill             Senior Consultant / VP Development
>>
>> Practical WebObjects - for developers who want to increase their overall
>> knowledge of WebObjects or who are trying to solve specific problems.
>> http://www.global-village.net/products/practical_webobjects
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> --
>> socket error: unable to connect to 127.0.0.1
>>
>
> --
> Chuck Hill             Senior Consultant / VP Development
>
> Practical WebObjects - for developers who want to increase their overall
> knowledge of WebObjects or who are trying to solve specific problems.
> http://www.global-village.net/products/practical_webobjects
>
>
>
>
>
>
>


-- 
socket error: unable to connect to 127.0.0.1
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to