Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » GMF (Graphical Modeling Framework) » Problems with the Mapping model
Problems with the Mapping model [message #213228] Thu, 11 December 2008 14:26 Go to next message
Anna is currently offline AnnaFriend
Messages: 34
Registered: July 2009
Member
We are creating a statechart editor with three kinds of states (nodes) and
one type of transition (link). The same kind of link should be able to be
mapped between the different kinds of nodes. This is where our problem
lies:

As far as we can see we can only create one link mapping when we generate
the mapping model through the gmf dashboard. (this is the one we will
refer to as the "generated" one)
We can add other link mapping siblings to the link mapping that was
"generated" and when we look in the **itemSemanticEditPolicy.java it looks
like these mappings are correct. But the problem comes when we actually
want to draw these links in the editor we created. Only the one
"generated" is the kind of mapping that works. We "generate" all three
mappings one at a time, with the same result, only the one "generated"
works.
However the rules for the mappings seem to work, ie some nodes are not
allowed to have incoming or outgoing links and when you try to do a
"forbidden" action the cursor indicates that this is not allowed. But,when
you do something that is allowed and finishes the action nothing happens,
the link is never drawn (unless it is the "generated" mapping of course.)

Is there a way to generate all of our mappings when we generate the
mapping file?
or
Where is this set in the code later on so that we can do some manipulation
of our own in the Java code?

sincerely Anna and Linda
Re: Problems with the Mapping model [message #213293 is a reply to message #213228] Thu, 11 December 2008 17:09 Go to previous messageGo to next message
Alexander Shatalin is currently offline Alexander ShatalinFriend
Messages: 2928
Registered: July 2009
Senior Member
Hello Anna,

In general it should be possible to cover your use case with GMF, so the
problem is probably covered behind some particular specific of your domain
model/used .gmfmap. First I suggest you to edit .gmfmap directly in emf-generated
editor (do not use dashboard). Try to remove all the existing links and create
manually first link mapping. Will it be working or not?

Then you can try adding more links each with own toolbar tools.

If you want to “combine” all the links into the single toolbar tool then
you can try it as a last step.

In general if something wrong goes with the link creation then I suppose
the reason (taking into account the fact that link creation was enabled)
is in generated ???ViewProvider. getEdgeViewClass() method – looks like this
method will return null instead of the proper Link ViewFactory class.

-----------------
Alex Shatalin
Re: Problems with the Mapping model [message #213323 is a reply to message #213293] Fri, 12 December 2008 08:14 Go to previous messageGo to next message
Anna is currently offline AnnaFriend
Messages: 34
Registered: July 2009
Member
Not sure I understood everything...but I've tried to not generated any
link mappings through the dashboard now. Instead, I've created new link
mapping-children to the mapping-node in the .gmfmap-editor, but
unfortunately with the same result as before, only the first child is
drawn when I use my statechart-editor.

I don't want to have the different link mappings to have their own toolbar
tools since they are the same type of link...I want them combined from the
beginning (if possible).

Maybe my explanation was a bit messy before, I'll try to clear it up...my
problem is that I have three different nodes; A, B and C. I want to create
different mappings so that it's possible to draw links like this.
A -> B
B -> B
B -> C

They should all share the same tool, but if I try to create a link from B
to A or from A to C, this should not be possible.

I've tried to look at the getEdgeViewClass() method, but I can't see any
difference between the case that works and the cases that don't...but
maybe that was not what I was supposed to do? I know all the correct
visual_ID:s are created, so at least that should not be a problem.

I'm sorry if I don't explain/understand properly, I'm pretty new to both
Eclipse and GMF...

/Anna
Re: Problems with the Mapping model [message #213353 is a reply to message #213323] Fri, 12 December 2008 10:24 Go to previous messageGo to next message
Salva is currently offline SalvaFriend
Messages: 29
Registered: July 2009
Junior Member
Hi Anna and Alex,

I had a similar issue some time ago and if your problem is the same as
mine you should look at DiagramUpdater, ViewProvider and VisualIdRegistry
classes.

In my case, two classes on my metamodel were using the same link and
therefore I created two link mappings, however as the target of the links
were the same and the unique difference was the containment feature, in
the generated code VisualIdRegistry always returned the same visual_Id
(the one for the first created linkmapping). Then, when the link was to be
painted a suitable ViewProvider were searched but unfortunately, as we had
a bad Visual_ID, in somewhere (Sorry, I don't remember exactly where) a
check returned null. I solve that using java constraints to check the
parents of the links and then make VisualIdRegistry able to dintinguish
between the two links.

I don't know if your problem is the same as mine but I think that looking
at that classes can be helpful. Well, Alex can say if it's the correct
point or if I am wrong.

Regards!

Salva.
Re: Problems with the Mapping model [message #213360 is a reply to message #213323] Fri, 12 December 2008 11:00 Go to previous messageGo to next message
Anna is currently offline AnnaFriend
Messages: 34
Registered: July 2009
Member
We have done tests to see if the getEdgeViewClass() method actually does
return null, but it doesn't seem to do that...so is there any other
examples of where we can look?

We're not sure if the actual mapping is wrong, because when we run our
editor we seem to be able to draw all our desired links at first, but when
you release the mouse button to actually place the link, it's never
drawn/displayed (except in the first case though, as always...). Also, if
we try to place a "forbidden" link, the editor tells us that this can't be
done, so that seems OK too...just not the actual drawing/displaying of the
allowed links.

/Linda & Anna
Re: Problems with the Mapping model [message #213368 is a reply to message #213353] Fri, 12 December 2008 11:03 Go to previous messageGo to next message
Anna is currently offline AnnaFriend
Messages: 34
Registered: July 2009
Member
Thanks for the tip, we'll look into that. However, we have the same
containment feature for our links. Maybe our problem won't be able to be
solved in the same way because of this?
Re: Problems with the Mapping model [message #213374 is a reply to message #213353] Fri, 12 December 2008 11:15 Go to previous messageGo to next message
Alexander Shatalin is currently offline Alexander ShatalinFriend
Messages: 2928
Registered: July 2009
Senior Member
Hello Salva,

> looking at that classes can be helpful. Well, Alex can say if it's the
> correct point or if I am wrong.
You are absolutely right. I suppose the reason is in the incorrect visual
ID returned by Visual ID registry and this problem should be solved by introducing
new constraints into .gmfmap model (either OCL or Java).

-----------------
Alex Shatalin
Re: Problems with the Mapping model [message #213382 is a reply to message #213368] Fri, 12 December 2008 11:18 Go to previous messageGo to next message
Alexander Shatalin is currently offline Alexander ShatalinFriend
Messages: 2928
Registered: July 2009
Senior Member
Hello Anna,

> Thanks for the tip, we'll look into that. However, we have the same
> containment feature for our links. Maybe our problem won't be able to
If you have same containment feature and same link meta-class then what is
the difference between these three link mappings? (Does A, B in your example
have same super-class?)

BTW, I still think the reason is in mixing visual IDs so I suggest you debugging
(or tracing) ???ViewProvider.getEdgeViewClass() method during the link creation
(and the moment you can not create a proper link) to see the actual reason.

-----------------
Alex Shatalin
Re: Problems with the Mapping model [message #213391 is a reply to message #213360] Fri, 12 December 2008 11:22 Go to previous messageGo to next message
Alexander Shatalin is currently offline Alexander ShatalinFriend
Messages: 2928
Registered: July 2009
Senior Member
Hello Anna,

You can debug link creation process - the following commands should be executed
during link creation:
1. generated ???CreateCommand
2. generated ???ViewFactory

So if you put a break point first into ???CreateCommand.canExecute/doExecuteWithResult
and then into ???ViewFactory you'll see where does link creation fails.

-----------------
Alex Shatalin
Re: Problems with the Mapping model [message #213398 is a reply to message #213391] Fri, 12 December 2008 12:25 Go to previous messageGo to next message
Anna is currently offline AnnaFriend
Messages: 34
Registered: July 2009
Member
Hello again,

We seem to have located our problem...or at least something related to our
problem. We seem to get in and out of the CreateCommand-methods, but in
the ViewFactory it only works for the first link (like before). However,
we can't seem to find the classes that call the createStyles- and
decorateView-methods described in the ViewFactory? And we're guessing that
the problem lies somewhere in them...

/Linda & Anna
Re: Problems with the Mapping model [message #213406 is a reply to message #213382] Fri, 12 December 2008 12:50 Go to previous messageGo to next message
Anna is currently offline AnnaFriend
Messages: 34
Registered: July 2009
Member
Yes, A, B and C has the same superclass.
What we want is to have one start node that should have 1 outgoing link,
one normal node that should have 0-* outgoing and incoming links and one
final node that should have 1 incoming link. The link type should always
be the same, it should be up to the node to decide or "know" whether it
should accept an incoming/outgoing link.
The reason that we chose to have three types of nodes is because they
should not look the same when drawn in the editor.


It seem as though the editor has "understood" the rules of what kind of
nodes that can be combined in a certain way but the actual creation of the
link is not done. We think it is the connection between the graphic
display part and the controller - get/set variables that is "broken"
rather than the actual drawing of the link. The link is not "saved"
anywhere so when "repaint" or whatever is done there is no link
information to paint.

Where is this done?
Re: Problems with the Mapping model [message #213446 is a reply to message #213406] Fri, 12 December 2008 15:06 Go to previous messageGo to next message
Alexander Shatalin is currently offline Alexander ShatalinFriend
Messages: 2928
Registered: July 2009
Senior Member
Hello Anna,

> Yes, A, B and C has the same superclass. What we want is to have one
> start node that should have 1 outgoing link, one normal node that
> should have 0-* outgoing and incoming links and one final node that
> should have 1 incoming link. The link type should always be the same,
Then you can solve this problem having only one LinkMapping with complex
link creation constraints like:

(source constraint): if self.oclIsKindOf(A) then self.outgoingConnections->size()
= 0 else not self.oclIsKindOf(C) endif

(target constraint): if self.oclIsKindOf(C) then self.incomingConnections->size()
= 0 else not self.oclIsKindOf(A) endif


-----------------
Alex Shatalin
Re: Problems with the Mapping model [message #213454 is a reply to message #213398] Fri, 12 December 2008 15:07 Go to previous messageGo to next message
Alexander Shatalin is currently offline Alexander ShatalinFriend
Messages: 2928
Registered: July 2009
Senior Member
Hello Anna,

> However, we can't seem to find the classes that call the createStyles-
> and decorateView-methods described in the ViewFactory? And we're
It should be in .view.factories package.

-----------------
Alex Shatalin
Re: Problems with the Mapping model [message #213606 is a reply to message #213446] Mon, 15 December 2008 14:34 Go to previous messageGo to next message
Linda is currently offline LindaFriend
Messages: 11
Registered: July 2009
Junior Member
Ok, but what about the other half of our question? Any thoughts on that?

----------------------
The reason that we chose to have three types of nodes is because they
should not look the same when drawn in the editor. It seem as though the
editor has "understood" the rules of what kind of nodes that can be
combined in a certain way but the actual creation of the link is not done.
We think it is the connection between the graphic display part and the
controller - get/set variables that is "broken" rather than the actual
drawing of the link. The link is not "saved" anywhere so when "repaint" or
whatever is done there is no link information to paint.

Where is this done?
----------------------------------

Best Reguards
Re: Problems with the Mapping model [message #213613 is a reply to message #213454] Mon, 15 December 2008 14:57 Go to previous messageGo to next message
Linda is currently offline LindaFriend
Messages: 11
Registered: July 2009
Junior Member
Hello Again!

I think you misunderstood us.
We have found the createStyles and decorativeView-mtehods in the
view.factories package. The Question was:

Where are these methods called upon in the code? What triggers them? What
makes them run?

Best Regards
--- Linda and Anna



Alex Shatalin wrote:

> Hello Anna,

>> However, we can't seem to find the classes that call the createStyles-
>> and decorateView-methods described in the ViewFactory? And we're
> It should be in .view.factories package.

> -----------------
> Alex Shatalin
Re: Problems with the Mapping model [message #213621 is a reply to message #213613] Mon, 15 December 2008 16:02 Go to previous messageGo to next message
Alexander Shatalin is currently offline Alexander ShatalinFriend
Messages: 2928
Registered: July 2009
Senior Member
Hello Linda,

Following sequence will be executed:
1. ???ViewProvider.createEdge()
1.1. getEdgeViewClass() -> Non-null ViewClass should be returned
1.2. createNewView()
1.2.1. ???ViewFactory.createView() executed

-----------------
Alex Shatalin
Re: Problems with the Mapping model [message #213629 is a reply to message #213606] Mon, 15 December 2008 16:24 Go to previous messageGo to next message
Alexander Shatalin is currently offline Alexander ShatalinFriend
Messages: 2928
Registered: July 2009
Senior Member
Hello Linda,

> The reason that we chose to have three types of nodes is because they
> should not look the same when drawn in the editor. It seem as though
It’s not a problem to stay with three type of nodes but keep only one link
with proper constraints.

> combined in a certain way but the actual creation of the link is not
> done.
Again, I think the reason is: incorrect type of the link was “recognized”
by GMF-generated code. I.e. we are creating link of type-1, but somewhere
in VisualIdRegistry/ViewProvider this type will be substituted by another
one ant type-2 ViewProvider will be returned which is incorrect… So, try
following my suggestions with the single link and several constraints or
try to debugging ???ViewProvider to see which class of ViewFactory will be
returned.

> We think it is the connection between the graphic display part and the
> controller - get/set variables that is "broken" rather than the actual
> drawing of the link. The link is not "saved" anywhere so when
> "repaint" or whatever is done there is no link information to paint.
> Where is this done?
I simply do not understand what do you mean here.. If you are talking about
some misplacing the actual type of the link with incorrect one then this
is exactly what I was thinking about and in this case you have to debug ???VisualIdRegistry
+ ???ViewProvideer.

-----------------
Alex Shatalin
Re: Problems with the Mapping model [message #213657 is a reply to message #213446] Tue, 16 December 2008 08:23 Go to previous messageGo to next message
Anna is currently offline AnnaFriend
Messages: 34
Registered: July 2009
Member
Alex Shatalin wrote:


> (source constraint): if self.oclIsKindOf(A) then
self.outgoingConnections->size()
> = 0 else not self.oclIsKindOf(C) endif

> (target constraint): if self.oclIsKindOf(C) then
self.incomingConnections->size()
> = 0 else not self.oclIsKindOf(A) endif


Should A and C be substituted with the ID-numbers for the respective nodes
then (because I'm guessing that you can't just keep the letters and hope
for a miracle :))? And in what file should we put these constraints?

/Linda & Anna
Re: Problems with the Mapping model [message #213664 is a reply to message #213621] Tue, 16 December 2008 09:16 Go to previous messageGo to next message
Anna is currently offline AnnaFriend
Messages: 34
Registered: July 2009
Member
We seem to have located a part of the problem...in our xxxViewProvider we
have the following code in the class getEdgeViewClass:

--------------
if (domainElement != null &&
visualID != Renegade.diagram.part.

RenegadeVisualIDRegistry.getLinkWithClassVisualID(domainElem ent)) {

return null;
// visual id for link EClass should match visual id from element type
---------------
and our id:s don't match. So we looked in the .getLinkWithClassVisualID
and found this:
--------------------
public static int getLinkWithClassVisualID(EObject domainElement) {
if (domainElement == null) {
return -1;
}
if (Renegade.RenegadePackage.eINSTANCE.getTransition().isSuperT ypeOf(
domainElement.eClass())) {
return Renegade.diagram.edit.parts.TransitionEditPart.VISUAL_ID;
}
if (Renegade.RenegadePackage.eINSTANCE.getTransition().isSuperT ypeOf(
domainElement.eClass())) {
return Renegade.diagram.edit.parts.Transition2EditPart.VISUAL_ID;
}
if (Renegade.RenegadePackage.eINSTANCE.getTransition().isSuperT ypeOf(
domainElement.eClass())) {
return Renegade.diagram.edit.parts.Transition3EditPart.VISUAL_ID;
}
return -1;
}
------------------------
and since if-statements have the same conditions the first statement is
always chosen. Where can we go from here? Is there an easy way to change
the if-statements so that the statements for transition 2 and 3 can be
chosen when we need them to be? There must be something else than the
SuperType that differs between them...

/Anna & Linda
Re: Problems with the Mapping model [message #213710 is a reply to message #213657] Tue, 16 December 2008 13:11 Go to previous messageGo to next message
Alexander Shatalin is currently offline Alexander ShatalinFriend
Messages: 2928
Registered: July 2009
Senior Member
Hello Anna,

> Should A and C be substituted with the ID-numbers for the respective
No. You can use <packageName>::<className> notation as everywhere in OCL

> and hope for a miracle :))? And in what file should we put these
> constraints?
In .gmfmap model. You can create “CreationConstraints” node below LinkMapping
and then create source/target end constraints there.

-----------------
Alex Shatalin
Re: Problems with the Mapping model [message #213719 is a reply to message #213664] Tue, 16 December 2008 13:19 Go to previous messageGo to next message
Alexander Shatalin is currently offline Alexander ShatalinFriend
Messages: 2928
Registered: July 2009
Senior Member
Hello Anna,

> and since if-statements have the same conditions the first statement
> is always chosen. Where can we go from here? Is there an easy way to
> change the if-statements so that the statements for transition 2 and 3
> can be chosen when we need them to be? There must be something else
> than the SuperType that differs between them...
Sure. One solution as I already tald you in this thread is to create _only_one_
link so there will be only one if() statement in generated ???VisualIdRegistry.
Another solution (except modifying this code by hands) is to create additional
constraints in .gmfmap model to distinguish between these different types
of the links. Like (domain specialization element below LinkMapping):

self.source.oclIsKindOf(A)

But I really suggest you creating one link with proper source/target end
creation constraints.

-----------------
Alex Shatalin
Re: Problems with the Mapping model [message #213743 is a reply to message #213719] Tue, 16 December 2008 14:54 Go to previous messageGo to next message
Anna is currently offline AnnaFriend
Messages: 34
Registered: July 2009
Member
Maybe we are giving some redundant information now, but we would like to
explain again what our class diagram looks like.
We are making an editor for UML Statemachines and our ecore diagram looks
like this:

http://farm4.static.flickr.com/3075/3113506390_bfe95dd614_o. jpg

We have read through the whole thread and realized that that there was
some things that we continued to ask that you had already explained. But,
there is still some things that we donŽt understand (surprise :-) )


> Sure. One solution as I already tald you in this thread is to create
_only_one_
> link so there will be only one if() statement in generated
???VisualIdRegistry.

-----------
We guess that you mean create only one link mapping. For example we can
create one like this:
<Transition{Transition.sources:State->Transition.targets:State}/Transition >

But then how do we get ONE link mapping to connect to the three kinds of
nodes. If it is somewhere in the gmfmap, please specify where.

--------
> Another solution (except modifying this code by hands) is to create
additional
> constraints in .gmfmap model to distinguish between these different types
> of the links. Like (domain specialization element below LinkMapping):
> self.source.oclIsKindOf(A)

We have never written any ocl and donŽt really understand how to write the
constraints in it. We have looked at your example but we still donŽt
understand how we should do it. (We added link constraints in the mapping
model to the link Mapping and wrote some code snippets in the body part
that didnŽt work.)Is there a way to set this in Java instead :-)

This is the first time we use GMF or any kind of framework in Eclipse by
the way and we understand that we ask a lot of stupid questions. Sorry
about that....
Re: Problems with the Mapping model [message #213760 is a reply to message #213743] Tue, 16 December 2008 16:40 Go to previous messageGo to next message
Alexander Shatalin is currently offline Alexander ShatalinFriend
Messages: 2928
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
----++Omea_Parts_Splitter.479896796159398
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello=20Linda,

> =20We=20guess=20that=20you=20mean=20create=20only=20one=20li nk=20mapping=2e=20For=20example=20we
Right=2e

>=20create=20one=20like=20this:
>=20<Transition{Transition=2esources:State->Transition=2etargets:State}/Transi
>=20tion>
> =20But=20then=20how=20do=20we=20get=20ONE=20link=20mapping=2 0to=20connect=20to=20the=20three=20kinds
> =20of=20nodes=2e=20If=20it=20is=20somewhere=20in=20the=20gmf map,=20please=20specify=20where=2e
Well,=20AFAIR,=20you=20said=20me=20there=20is=20a=20common=2 0super-class=20for=20all=20States=20in=20your=20model=20=e2= 80=93=20something=20like=20=e2=80=9cAbstractState=e2=80=9d=2 e=20Mistakenly=20I=20supposed=20that=20Transition=20link=20i n=20your=20model=20is=20a=20connection=20between=20two=20Abs tractStates=20(or=20just=20two=20states=20if=20the=20common= 20super-class=20is=20State)=2e=20

BTW,=20taking=20into=20account=20this=20diagram=20I=20can=20 not=20understand=20which=20particular=20element=20is=20mappe d=20to=20the=20link=20connecting=20different=20states=20in=2 0your=20diagram?=20Is=20it=20Transition=20element?=20Then=20 which=20features=20do=20you=20specify=20as=20source/target=2 0meta-features=20for=20the=20corresponding=20link=20mapping( s)?

I=20can=20suggest=20you=20to=20modify=20meta-model=20to=20ma ke=20it=20similar=20to=20the=20=2eecore=20diagram=20attached =2e=20In=20this=20case=20you=20can=20create=20LinkMapping=20 associated=20with=20Transition=20domain=20model=20element=20 always=20having=20one=20source/target=20element=20tepresente d=20by=20source/target=20meta-features=20in=20link=20mapping =2e=20In=20addition=20you=20can=20create=20LinkConstraints=2 0below=20this=20LinkMapping=20containing=20following=20sourc e/target=20end=20constraints:

Source:=20not=20self=2eoclIsKindOf(FinalState)
Target:=20not=20self=2eoclIsKinfOf(InitialState)

If=20you=20want=20to=20disable=20direct=20transitions=20from =20IitialState=20to=20Final=20one=20then:

Target:=20if=20self=2eoclIsKindOf(FinalState)=20then=20not=2 0oppositeEnd=2eoclIsKindOf(InitialState)=20else=20not=20self =2eoclIsKinfOf(InitialState)=20endif

If=20you=20still=20want=20to=20stay=20with=20your=20domain=2 0model=20then=20you=20have=20to=20describe=20me=20which=20do main=20model=20elements/features=20you=20want=20to=20represe nt=20as=20a=20links=20on=20a=20diagram=20and=20if=20same=20d omain=20model=20element=20should=20be=20represented=20as=20d ifferent=20links=20(=2egmfmap=20file=20contains=20several=20 LinkMappings=20associated=20with=20same=20domain=20model=20e lement=20=e2=80=9cTransition=e2=80=9d)=20depending=20on=20it =e2=80=99s=20source/target=20elements=20then=20you=20have=20 to=20add=20appropriate=20constraints=20to=20each=20of=20exis ting=20LinkMappings=20to=20show=20GMF=20how=20to=20represent =20each=20instance=20of=20=e2=80=9cTransition=e2=80=9d=20bas ed=20on=20it=e2=80=99s=20source/target=20elements=2e

> =20We=20have=20never=20written=20any=20ocl=20and=20don=c5=bd t=20really=20understand=20how=20to=20write
> =20the=20constraints=20in=20it=2e=20=20We=20have=20looked=20 at=20your=20example=20but=20we=20still
> =20don=c5=bdt=20understand=20how=20we=20should=20do=20it=2e= 20(We=20added=20link=20constraints=20in
> =20the=20mapping=20model=20to=20the=20link=20Mapping=20and=2 0wrote=20some=20code=20snippets=20in
> =20the=20body=20part=20that=20didn=c5=bdt=20work=2e)Is=20the re=20a=20way=20to=20set=20this=20in=20Java
>=20instead=20:-)
Sure=2e=20Set=20constraint=20language=20=3d=20java,=20write= 20java=20code=20there,=20perform=20=2egmfmap- > =2emgfgen=20transformation,=20find=20GenJavaExpressionProvid er=20node=20inside=20created=20=2egmfgen=20file=20,=20set=20 injectExpressionBody=20property=20to=20true=20and=20re-gener ate=20code=20- > =20corresponding=20line=20of=20code=20will=20be=20injected=2 0into=20the=20generated=20???VisualIdRegistry=20class=2e

-----------------
Alex=20Shatalin
P=2eS=2e=20BTW,=20you=20can=20find=20useful=20UML2Tools=20pr oject=20implementing=20State=20Machine=20diagram=20based=20o n=20GMF=20(http://wiki=2eeclipse=2eorg/MDT-UML2Tools)

----++Omea_Parts_Splitter.479896796159398
Content-Type: image/x-png; name="Statechart.PNG"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Statechart.PNG"

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
F15//fWxbWVGKpnXxPz85z9fGvISyutSMBky3fP3jNGWg85OR8R3/3b0vDWb
34Mucl9lE753KZkMwVAIeCCQ+bhqI+bDZV2bKKSeQprQRl3NVE8s8RkQEL4f
x8MYErDJZsPQQPoI32okeeNVf0/SuW+6Sz0go/mujAvy9y5xoUGgcALzV1Re
JXwMcbo2UUg9hVS/C8ZsPHrzzTfP1dKPq4+ZQ3r48KEpmVdO4s04AesbiCzv
Huq+3WrhOwftXdhN0l3qUQXYuOD8vUtROYgxEHBFIIPrfSkKHy7r2kQh9RRS
/Uv9Lhgjkr7//e8btWQ2JJmlt3feecdoo8ePH7Nle2m6p19+5H1Y/e1J9vcA
GudF7xwce+WWBZ7uUo8qCo0LDt+7FJWDGAMBVwQyuN6XovDhsq5NFJJFITVf
1e+CMWTv3btn9kwsDTPlIeCDwMSl/u2vf27sx2JJvVB4eXi3e/Xpvzm+3VB+
+r5e/ju8cLpToRWGvX3rHb3Yee/0yYhzF9a/d8kHatqEwOYEdLf2zc1eY4AP
l3VtopCmFNKaGFMXAp4ITFzq/+9r//PFpw/Pf8z3Iwqp1UXd7U83o2c7DcqP
VK+k103VpfVUBN1o5Ylnns02b1lf5J6u1qIuKLyQQIEXi3HZvKTW7eYz3TZZ
FNKUQuI8pIXXMsVDEJgYMf/vV3/PqpDM96NzSLWQGdMy3e+nn8s7rBPWsmjk
zKeOBdsP+h7eBjNPOER2HPuoVm0ts3fTJuhqBXSrxK62v1iCU4/HZd7L1tOp
TSZwHlLwi4IOpQQmho//85X/9ZsX1+bnxafVT/2HF9fm+/n7d180yM52Gjv9
0nrm09S/RqTOuyqXr0KaXt8c46er5SoatDNBwO1USiqtRZISzCH1Rm3OQ4ok
LzFjesQc+9uv/u8vfPlLXzz/Md8vUEj13bIRP2Png49NKQnEx+b/Rmz2XlVS
buy1es0aYS0Xj1MyrXa8uGhXE+uyx09dcvjyvpBZPXdkhN0WXa2QfhXY1+YX
S3jm8biMQuopJM5DSuVfGIXb6WbMGpM4wrOdRhfdBvUtxm4/Ap7JuKmtV53l
qu46VKUnjkKy2177Z4FYdBPKs1Z0WkdXy5MLNFsT2P5iCR6JeFxGIfUUEuch
Bb8W6HAxAWfDx9QkkO1sp+l9SJ2/HWxn2e+GG2KcubAY3qnCtHYZmzYbHPjZ
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
OUikZatswgmw4wZwZpJ0+Y9C0nGjFgRCE/jwww/v3bsX8gyhYB6ax/7No3le
u0MhecW7tHH7luquFqlnZY5bsC3zPL2t1dKd2p3n11pd1ZVIg7mg2i2BQhru
jD5ZPjb3s9+1pjTN1wpp0N3xyzM003vbre0vDRLl2alNDkAgCQJmosXs14nt
lCNX6AI8+Y9CchUsR+0cFVCrgjoTKseFp668GO7baX6/uNx3z5O0NTu9D+mk
gapOB62JFVL/Uf3d5ckkwT6k/nN0lfDpOntSSL0eZs5H6DXRe+LOUfDKaYY5
pHJijaepEjACwpyUbY6CTNUBgd2+35SCQhIEIc0igxWulU64bW2lMVTfmgAK
aesI0D8E5giYV9Kad67NlUr+770++Y9CSj4/Og6YiZVmY816SeO2tZw44wsK
iRyAQNQEfE+uxOO82Whlpso82YNC8gR2k2Y7a2ndg5WUtrhtTWkE1aIkgEKK
MiwYBYGKgFlZM6Ihy93Z1gj7e/IfhcQlBQEILCWAQlpKjPIQCETAnJptFp7M
CdqB+ougG+Ps1dWVD0WIQoogvJgAgcQIoJASCxjmlkPAzB6Zhady/K09NQc+
mWOfnHuNQnKOlAYhkD0BFFL2IcbBJAl4Egrxs/D05D8KKf7QYyEEYiOAQoot
ItgDgc8++OADsyOnWBA+jg5HIRWbTjgOATUBFJIaHRUh4IXA8+fPzfYjH3tx
vJjrp1HnT/6jkPwEilYhkDMBFFLO0cW35AgUuDvbGqNnz56ZV6w4DN/t27fN
YMcHAhCAgJyAGTfOR6FbDgem9U15+sefp2bX+0sLJRPw97h7clRBkVzIMBgC
JRBAIZUQZXyMjsBPq090Zm1kEKuNG4GnWwhAYIoACon8gEBoAs7XlUI74KG/
Yh/o88CSJjUEzHHbzVtiNfWpkyMBFFKOUcWniAmYkxLN3mSzCSliGzcw7cWL
FwaL+e8GfdNlTgQOL287fJq3uc04d1JGw//nxARftARQSFpy1IPAcgLmsTWj
A8yi0vKq+dfw8eR//tTwsEPg8Nq140RQ9QY2oUqqRNVut7swP+JKgC+BAAqp
hCjjYywE7t+///Tp01isicwOIx/feuutjz/+ODK7MCcVAgel04qi/m+zPhyK
s8w2i6mwAiikwgKOu9sRYI5kln3h52fO8qHAFIGBxpHPIlVzSBfmwxwSGdYn
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
VwEAAAAASUVORK5CYII=
----++Omea_Parts_Splitter.479896796159398--
Re: Problems with the Mapping model [message #213805 is a reply to message #213760] Wed, 17 December 2008 13:46 Go to previous messageGo to next message
Anna is currently offline AnnaFriend
Messages: 34
Registered: July 2009
Member
> I can suggest you to modify meta-model to make it similar to the .ecore
diagram attached. In this case you can create LinkMapping associated with
Transition domain model element always having one source/target element
tepresented by source/target meta-features in link mapping. In addition you
can create LinkConstraints below this LinkMapping containing following
source/target end constraints:

> Source: not self.oclIsKindOf(FinalState)
> Target: not self.oclIsKinfOf(InitialState)

> If you want to disable direct transitions from IitialState to Final one then:

> Target: if self.oclIsKindOf(FinalState) then not
oppositeEnd.oclIsKindOf(InitialState) else not self.oclIsKinfOf(InitialState)
endif

Thank you, this worked wonders! We changed to your model and it got much
better. However, we still have some things that we would like to fix...for
example that we only want one outgoing link from our InitialState. In an
earlier post, you suggested that we should use a constraint like:

if self.oclIsKindOf(A) then self.outgoingTransition->size() = 0 else not
self.oclIsKindOf(C) endif

However, when we try to do this (but adding our Final and Initial States
instead of A and C), we can't draw any transitions at all...

Also, we would like to set a constraint that says that we can only draw
one InitialState-node. We thought this would be solved automatically since
the ecore-diagram states that the Statechart hasInitial 0..1, but
apparently not...any ideas?

/Linda & Anna
Re: Problems with the Mapping model [message #213839 is a reply to message #213805] Wed, 17 December 2008 17:26 Go to previous messageGo to next message
Alexander Shatalin is currently offline Alexander ShatalinFriend
Messages: 2928
Registered: July 2009
Senior Member
Hello Anna,

> Also, we would like to set a constraint that says that we can only
> draw one InitialState-node. We thought this would be solved
> automatically since the ecore-diagram states that the Statechart
> hasInitial 0..1, but apparently not...any ideas?
It should be.. Are you sure InitialState was added on creation into both
“states” containment feature and “hasInitial” non-containment one on (according
to the model diagram I sent you in last message)?

In order to do it you have to fill ChildReference for InitialState (in .gmfmap
file) with both containmentFeature = states and childrenFeature = hasInitial.

-----------------
Alex Shatalin
Re: Problems with the Mapping model [message #213872 is a reply to message #213839] Thu, 18 December 2008 09:07 Go to previous messageGo to next message
Anna is currently offline AnnaFriend
Messages: 34
Registered: July 2009
Member
> It should be.. Are you sure InitialState was added on creation into both
> “states” containment feature and “hasInitial” non-containment one on
(according
> to the model diagram I sent you in last message)?

> In order to do it you have to fill ChildReference for InitialState (in
gmfmap
> file) with both containmentFeature = states and childrenFeature = hasInitial.

No, of course we had forgotten about that one...sorry about that.
Did you have an answer for our other question? We still only want one
outgoing link from our InitialState. In an earlier post, you suggested
that we should use a constraint like:

if self.oclIsKindOf(A) then self.outgoingTransition->size() = 0 else not
self.oclIsKindOf(C) endif

But when we try to do this (but adding our Final and Initial States
instead of A and C), we can't draw any transitions at all...the other
constraints we tried worked just fine, what could we be doing wrong with
this one?

And at last, a question from another thread..you gave a tip about setting
a fixed size for nodes in .gmfgraph with
Node.setResizeConstraint(Direction.NONE)
Where in the gmfgraph can we do this? We have tried a few different
options, but none of them worked like we wanted them to. If we mark the
node it is possible to set a variable named Resize Constraint to NONE, but
the only thing that does is preventing us from changing the size of the
node once it's drawn...and we want it to have a fixed, unchangeable size
from the beginning.
Re: Problems with the Mapping model [message #213905 is a reply to message #213872] Thu, 18 December 2008 12:52 Go to previous messageGo to next message
Alexander Shatalin is currently offline Alexander ShatalinFriend
Messages: 2928
Registered: July 2009
Senior Member
Hello Anna,

> you have an answer for our other question? We still only want one
> outgoing link from our InitialState. In an earlier post, you suggested
> that we should use a constraint like:
The following constraint should be helpful in your situation:

if self.oclIsKindOf(InitialState) then self.outgoingTransition->size() =
0 else not self.oclIsKindOf(FinalState) endif

Was “outgoingTransition” feature actually populated with outgoing transition
instances in your model after transition link creation? You can check by:
creating outgoing transition from InitialState, exploring InitialState properties
to see if it gets reference to this transition in “outgoingTransitions”.

Hint: you can set “outgoingTransitions” feature as an “opposite” one for
“source” EReference in EMF and then the rest should be done for you by EMF-generated
code.

> And at last, a question from another thread..you gave a tip about
> setting a fixed size for nodes in .gmfgraph with
> Node.setResizeConstraint(Direction.NONE)
> Where in the gmfgraph can we do this? We have tried a few different
Just in the properties of the diagram node referencing corresponding Figure.
There should be a field “resize constraint” with possibility to set it to
“none”.

-----------------
Alex Shatalin
Re: Problems with the Mapping model [message #213917 is a reply to message #213905] Thu, 18 December 2008 14:07 Go to previous messageGo to next message
Anna is currently offline AnnaFriend
Messages: 34
Registered: July 2009
Member
Hello again!

----
> The following constraint should be helpful in your situation:
> if self.oclIsKindOf(InitialState) then self.outgoingTransition->size() =
> 0 else not self.oclIsKindOf(FinalState) endif
----
But that was exactly what we said you had suggested earlier and when we
tried that it didnÂŽt work. The other constraints worked just fine, but
not this one. Do you have any other ideás?


-----
> Was “outgoingTransition” feature actually populated with outgoing
transition
> instances in your model after transition link creation? You can check by:
> creating outgoing transition from InitialState, exploring InitialState
properties
> to see if it gets reference to this transition in “outgoingTransitions”.
> Hint: you can set “outgoingTransitions” feature as an “opposite” one
for
> “source” EReference in EMF and then the rest should be done for you by
EMF-generated
> code.
-------
Unfortunately we couldn't test this because if we use the constraint above
weÂŽre not able to draw any transition from any state. Something goes
terribly wrong.



-----
>> And at last, a question from another thread..you gave a tip about
>> setting a fixed size for nodes in .gmfgraph with
>> Node.setResizeConstraint(Direction.NONE)
>> Where in the gmfgraph can we do this? We have tried a few different
> Just in the properties of the diagram node referencing corresponding Figure.
> There should be a field “resize constraint” with possibility to set it
to
> “none”.
-------
Yes. We tried that. As we said in the previous post. It only makes the
object non resizable when it is already drawn.
We would like to have a fixed size from the beginning, the person using
the editor should NOT be able to choose how big the initalState is but it
will be, say 15*15 pixels all the time. No bigger no smaller ever. Can
this be done?



best regards
/Linda and Anna
Re: Problems with the Mapping model [message #213926 is a reply to message #213917] Thu, 18 December 2008 14:37 Go to previous message
Alexander Shatalin is currently offline Alexander ShatalinFriend
Messages: 2928
Registered: July 2009
Senior Member
Hello Anna,

> Unfortunately we couldn't test this because if we use the constraint
> above weÂŽre not able to draw any transition from any state. Something goes
> terribly wrong.
Try
1. Remove constraint above and draw transition + perform these checks.
2. Or create a transition in EMF editor and see what’s happening.
I really suppose the reason of the problem is not in OCL malfunctioning,
but in incorrectly implemented/used model (created transition was not atached
to outgoingTransition reference)..

> Yes. We tried that. As we said in the previous post. It only makes the
> object non resizable when it is already drawn.
Well, looks like this is all we have in GMF. The rest should be done by modifying
generated code.

-----------------
Alex Shatalin
Previous Topic:Using grouped SWT widgets in GMF editor.
Next Topic:What`s the name of this small menu?
Goto Forum:
  


Current Time: Wed Sep 25 19:57:58 GMT 2024

Powered by FUDForum. Page generated in 0.07781 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top