apache-flexmatepresentation-model

callback to model object


I am trying to figure out how to define a callback to my model object, via the Mate Frameworks LocalEventMap.

<EventHandlers type="{WebServiceEvent.RT_GET}" debug="true">
    <HTTPServiceInvoker url="/services/rtGet.asp">
        <resultHandlers>
            <CallBack method="rtGetHandleResult" arguments="{resultObject}"/>
        </resultHandlers>
        <faultHandlers>
            <CallBack method="rtGetHandleFault" arguments="{fault}"/>
        </faultHandlers>
    </HTTPServiceInvoker>
</EventHandlers>

The event is originally dispatched from the model, via the views (as the models dispatcher property). However, when the callback is ready to fire, I get the following error.

---------------------------------------------------------
- ERROR: Method rtFeesGetHandleResult not found in class OrderEntryView_0_Main 
- EVENT TYPE: "WebstoreServiceEvent.RT_FEES_GET" (rtFeesGet) 
- TAG: CallBack 
- METHOD: rtFeesGetHandleResult
- FILE: OrderEntryEventMap
- 1 ARGUMENT SUPPLIED: [object Object]
---------------------------------------------------------

I get essentially the same error if I try to make method="model.rtGetHandleResult"

So, in keeping with the presentation model... how do I have the event map get this to the model to execute?


Solution

  • Yes, there is a better way. In my case, there was no actual NEED to have the <resultHandler /> issue a <callback />. Simply replace the callback with methodInvoker, and add a generator property to it, pointing at the model in question.

    Now, if you really DO need a callback to work this way, I am pretty convinced by now that a pass-through function of some kind is your only way forward.