[easel] Re: [gme-users] Invoking runComponent from GME Addon.
Peter Volgyesi
peter.volgyesi at vanderbilt.edu
Thu Dec 8 11:46:01 CST 2005
Daniel,
The problem is that - although one can implement add-on and interpreter
"interfaces" on the same component - BON2 does not support this completely.
Your particular problem can be solved by re-defining EXCETYPE in
ComponentObj.cpp after line 114:
#undef EXCETYPE
#define EXCETYPE (componenttype_enum)(COMPONENTTYPE_ADDON |
COMPONENTTYPE_INTERPRETER)
I've tried to implement a hybrid component in BON2. The easiest way is to
start as an add-on, since add-ons also have the invokeex method. By making
the modification above, I was able to invoke my add-on as an interpreter.
Now, I am running into some problems with object destructions at the end of
invokeex. I suspect, that nobody ever made a hybrid BON2 interpreter, so you
should be prepared for problems. At this moment I would suggest to implement
a hybrid interpreter in raw COM (like the Contraint Manager).
--
Peter Volgyesi
Vanderbilt University, ISIS
> -----Original Message-----
> From: gme-users-bounces at list.isis.vanderbilt.edu
> [mailto:gme-users-bounces at list.isis.vanderbilt.edu] On Behalf
> Of Daniel Waddington
> Sent: Thursday, December 08, 2005 10:24 AM
> To: A list for GME users to share thoughts and discuss bugs and fixes.
> Subject: Re: [easel] Re: [gme-users] Invoking runComponent
> from GME Addon.
>
> Hmm, apparently this is more complicated. GME now thinks it
> is an AddOn and will not let me run it as an interpreter!
>
> Ideas?
>
> Daniel.
>
>
> On Dec 8, 2005, at 10:19 AM, Daniel Waddington wrote:
>
> > How do I make the interpreter an addon apart from defining
> GME_ADDON
> > or whatever the symbol is?
> >
> > Daniel.
> >
> > On Dec 8, 2005, at 10:16 AM, Akos Ledeczi wrote:
> >
> >>
> >> The second idea is to make the interpreter, that you want to call
> >> from the Add-on, an Add-on itself. Then it will be called by GME
> >> automatically. The Constraint Manager is a similar animal: you can
> >> call it from the GME gui and it is called by events also.
> >>
> >> Akos
> >>
> >>
> >> Daniel Waddington wrote:
> >>> Larry,
> >>> I have a GME Addon which will happily respond to events
> from the
> >>> outside IDE. But as part of the event processing I need to make
> >>> sure that a given interpreter is run. Instead of
> getting the addon
> >>> to trigger the interpreter, is there a way to externally
> trigger an
> >>> interpreter?
> >>> Is this clearer?
> >>> Thanks,
> >>> Daniel.
> >>> On Dec 7, 2005, at 7:16 PM, Larry Howard wrote:
> >>>> Jonathan,
> >>>>
> >>>> The issue here has transitioned to invoking a component
> from within
> >>>> an event-based AddOn. The problem, conceptually, is that AddOns
> >>>> are invoked in a late phase of transaction-processing. The
> >>>> context is really very wrong
> >>>> for component invocation, since components are themselves
> >>>> transaction-based.
> >>>>
> >>>> The possibility for externally generating events has
> been addressed
> >>>> already in the affirmative. There are some issues of
> communicating
> >>>> application-specific data for the event from an external
> source,
> >>>> and Peter has provided a functional (if somewhat tortured)
> >>>> workaround.
> >>>>
> >>>> It might be better if Daniel were to tell us more about
> the "what"
> >>>> without
> >>>> choosing yet a "how". For example, just as it is possible to
> >>>> invoke an
> >>>> AddOn externally, by generating a global or object
> event, it is
> >>>> possible to
> >>>> invoke a model interpreter externally. Perhaps the
> external entity
> >>>> should be orchestrating. I don't know because I don't know what
> >>>> Daniel is trying to accomplish.
> >>>>
> >>>> -----Original Message-----
> >>>> From: gme-users-bounces at list.isis.vanderbilt.edu
> >>>> [mailto:gme-users-bounces at list.isis.vanderbilt.edu] On
> Behalf Of
> >>>> Jonathan Sprinkle
> >>>> Sent: Wednesday, December 07, 2005 5:52 PM
> >>>> To: 'gme-users'
> >>>> Cc: easel at atl.lmco.com
> >>>> Subject: RE: [easel] Re: [gme-users] Invoking
> runComponent from GME
> >>>> Addon.
> >>>>
> >>>>
> >>>> Peter,
> >>>>
> >>>> Is this a possible enhancement to GME? It seems like if
> the AddOn
> >>>> is running and waiting for events that there should be
> *some* way
> >>>> to send an event externally...after all, the mouse can do it. ;)
> >>>>
> >>>> Daniel,
> >>>>
> >>>> Maybe for demo purposes we can just have a special
> interpreter that
> >>>> does
> >>>> this interfacing (read: generate the event which the addon is
> >>>> listening
> >>>> for...) and work with Peter to figure out how to generate this
> >>>> through visual studio's editor later?
> >>>>
> >>>> I'm a little spotty following this conversation, I'll
> try to catch
> >>>> up on the thread this evening....
> >>>>
> >>>> Jonathan
> >>>>
> >>>>> -----Original Message-----
> >>>>> From: easel-bounces at atl.lmco.com [mailto:easel-
> >>>>> bounces at atl.lmco.com] On Behalf Of Daniel Waddington
> >>>>> Sent: Wednesday, December 07, 2005 2:43 PM
> >>>>> To: A list for GME users to share thoughts and discuss
> bugs and
> >>>>> fixes.
> >>>>> Cc: easel at atl.lmco.com
> >>>>> Subject: [easel] Re: [gme-users] Invoking runComponent
> from GME
> >>>>> Addon.
> >>>>>
> >>>>> Hi Peter,
> >>>>>
> >>>>> So basically your saying there is no way to trigger an
> interpreter
> >>>>> from an IMgaProject interface? Oh dear. Now I really am
> stuck ;-(
> >>>>>
> >>>>> Daniel.
> >>>>>
> >>>>> On Dec 7, 2005, at 1:39 PM, Peter Volgyesi wrote:
> >>>>>
> >>>>>> You are right, you cannot invoke another interpreter from the
> >>>>>> event handler.
> >>>>>>
> >>>>>> Even if you would invoke it by using a lower level COM API, it
> >>>>>> failed, since the interpreter would (try to) initate a
> >>>>>> transaction on its own.
> >>>>>>
> >>>>>> --
> >>>>>> Peter Volgyesi
> >>>>>> Vanderbilt University, ISIS
> >>>>>>
> >>>>>>> -----Original Message-----
> >>>>>>> From: gme-users-bounces at list.isis.vanderbilt.edu
> >>>>>>> [mailto:gme-users-bounces at list.isis.vanderbilt.edu]
> On Behalf Of
> >>>>>>> Daniel Waddington
> >>>>>>> Sent: Wednesday, December 07, 2005 11:51 AM
> >>>>>>> To: A list for GME users to share thoughts and
> discuss bugs and
> >>>>>>> fixes.
> >>>>>>> Subject: Re: [gme-users] Invoking runComponent from GME Addon.
> >>>>>>>
> >>>>>>> Short of discussing this with my self, is this because I am
> >>>>>>> already in a transaction, and runComponent tries to
> create a new
> >>>>>>> transaction? or am I totally off?
> >>>>>>>
> >>>>>>> Daniel.
> >>>>>>>
> >>>>>>> On Dec 7, 2005, at 8:58 AM, Daniel Waddington wrote:
> >>>>>>>
> >>>>>>>> Hi,
> >>>>>>>>
> >>>>>>>> I think I am seriously missing something in the execution
> >>>>>>>
> >>>>>>> architecture
> >>>>>>>
> >>>>>>>> of BON2. In my object event handling method, inside a GME
> >>>>>>>> Addon, I want to trigger an interpreter.
> >>>>>>>>
> >>>>>>>> So I thought I could do..
> >>>>>>>>
> >>>>>>>> object->getProject()->runComponent("MGA.Interpreter.EML");
> >>>>>>>>
> >>>>>>>> but then I get an exception in COMCLASS::Initialize(struct
> >>>>>>>
> >>>>>>> IMgaProject
> >>>>>>>
> >>>>>>>> *p) in a some CComPtr declaration???
> >>>>>>>>
> >>>>>>>> Please help, I'm in dispair!!!
> >>>>>>>>
> >>>>>>>> Daniel.
> >>>>>>>>
> >>>>>>>> =============================== Dr. Daniel G. Waddington
> >>>>>>>> Lockheed Martin ATL
> >>>>>>>> 3 Executive Campus, 6th Floor
> >>>>>>>> Cherry Hill, NJ 08002
> >>>>>>>> Tel:856 792 9740
> >>>>>>>> ===============================
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> _______________________________________________
> >>>>>>>> gme-users mailing list
> >>>>>>>> gme-users at list.isis.vanderbilt.edu
> >>>>>>>> http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users
> >>>>>>>
> >>>>>>>
> >>>>>>> ===============================
> >>>>>>> Dr. Daniel G. Waddington
> >>>>>>> Lockheed Martin ATL
> >>>>>>> 3 Executive Campus, 6th Floor
> >>>>>>> Cherry Hill, NJ 08002
> >>>>>>> Tel:856 792 9740
> >>>>>>> ===============================
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> gme-users mailing list
> >>>>>>> gme-users at list.isis.vanderbilt.edu
> >>>>>>> http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users
> >>>>>>
> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> gme-users mailing list
> >>>>>> gme-users at list.isis.vanderbilt.edu
> >>>>>> http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users
> >>>>>
> >>>>>
> >>>>> ===============================
> >>>>> Dr. Daniel G. Waddington
> >>>>> Lockheed Martin ATL
> >>>>> 3 Executive Campus, 6th Floor
> >>>>> Cherry Hill, NJ 08002
> >>>>> Tel:856 792 9740
> >>>>> ===============================
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> _______________________________________________
> >>>>> easel mailing list
> >>>>> easel at atl.lmco.com
> >>>>> http://www.atl.external.lmco.com/mailman/listinfo/easel
> >>>>
> >>>>
> >>>> _______________________________________________
> >>>> gme-users mailing list
> >>>> gme-users at list.isis.vanderbilt.edu
> >>>> http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users
> >>>>
> >>>> _______________________________________________
> >>>> gme-users mailing list
> >>>> gme-users at list.isis.vanderbilt.edu
> >>>> http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users
> >>> ===============================
> >>> Dr. Daniel G. Waddington
> >>> Lockheed Martin ATL
> >>> 3 Executive Campus, 6th Floor
> >>> Cherry Hill, NJ 08002
> >>> Tel:856 792 9740
> >>> ===============================
> >>> _______________________________________________
> >>> gme-users mailing list
> >>> gme-users at list.isis.vanderbilt.edu
> >>> http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users
> >> _______________________________________________
> >> gme-users mailing list
> >> gme-users at list.isis.vanderbilt.edu
> >> http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users
> >
> > ===============================
> > Dr. Daniel G. Waddington
> > Lockheed Martin ATL
> > 3 Executive Campus, 6th Floor
> > Cherry Hill, NJ 08002
> > Tel:856 792 9740
> > ===============================
> >
> >
> >
> >
> > _______________________________________________
> > gme-users mailing list
> > gme-users at list.isis.vanderbilt.edu
> > http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users
>
> ===============================
> Dr. Daniel G. Waddington
> Lockheed Martin ATL
> 3 Executive Campus, 6th Floor
> Cherry Hill, NJ 08002
> Tel:856 792 9740
> ===============================
>
>
>
>
> _______________________________________________
> gme-users mailing list
> gme-users at list.isis.vanderbilt.edu
> http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users
More information about the gme-users
mailing list