Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » Epsilon » Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop
Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #500745] Fri, 27 November 2009 23:56 Go to next message
marco  is currently offline marco
Messages: 82
Registered: September 2009
Member
Hi Dimitris
I'm trying to use Eugenia for Diagram Partition.

I wanted to create a new diagram involving only types.
The following EMF file is what I use.
compared to the previous diagram, I moved the annotation @ gmf.diagram from SoftwareArchitecture to TypesSpecification

I use Eugenia but don't work...
seems kind that come in an infinite loop ... and do not understand why.
someone tell me why?

regards
marco


@namespace(uri="http://a0.ecore", prefix="A0")

@gmf(foo="bar")
package A0;

@namespace(uri="core", prefix="core")
package core {
class SAComponent extends Component {
}

@gmf.node(figure="rounded",label="name")
class SAConnector extends Component {
}

@gmf.node(figure="a0_editor.diagram.figures.TypeFigure",label= "name")
class Type extends PropertyHolderElement {
@gmf.link(color="250,100,100")
ref TypedElement[*]#type implementations;
ref Type[*]#subtypes supertypes;
@gmf.link(color="50,200,100",target.decoration="closedarrow ")
ref Type[*]#supertypes subtypes;
}

@gmf.node(figure="rounded",label = "name")
class SAInterface extends InteractionPoint, ArchitecturalElement {
attr SAInterfaceDirection direction;
val Behavior[*] behavior;
}

@gmf.node(figure="rectangle",label="name")
abstract class Component extends ConnectableElement, ArchitecturalElement {
@gmf.compartment(foo="bar", collapsible="true")
val ArchitecturalElement[*] subElement;
}

@gmf.link(style="solid", width="2")
class SAChannel extends SARelationship {
}

abstract class Behavior extends Element {
}

abstract class Business extends Element {
}

abstract class Development extends Element {
}

abstract class Element {
attr String name;
attr String description;
val Development development;
val Business business;
}

@gmf.link(source="from",target="to",label="name")
abstract class Link extends PropertyHolderElement, TypedElement {
attr LinkNavigability navigability;
ref ConnectableElement[1] from;
ref ConnectableElement[1] to;
ref Component fromContext;
ref Component toContext;
}

abstract class ConnectableElement extends Element {
}

@gmf.node(figure="rounded", label="name")
abstract class TypedElement extends Element {
ref Type[*]#implementations type;
}

abstract class PropertyHolderElement extends Element {
val Property[*] properties;
}

@gmf.node(label="name,type,value", figure="rectangle", label.pattern="{1} {0} : {2}")
class Property extends Element {
attr PropertyType type;
attr String value;
}

enum SAInterfaceDirection {
input = 0;
output = 1;
inputOutput = 2;
}

@gmf.node(figure="rectangle", size="20,20", label="name",
label.placement="external", label.icon="false")
abstract class InteractionPoint extends ConnectableElement {
}

enum LinkNavigability {
bidirectional = 0;
unidirectional = 1;
}

@gmf.link(target.decoration="arrow",style="dash")
class SARelationship extends Link, ArchitecturalElement {
}

abstract class Architecture extends PropertyHolderElement {
val ArchitecturalElement[*] subElement;
val Behavior[*] behavior;
val Group[*] groups;
}

class SoftwareArchitecture extends Architecture {
}

abstract class ArchitecturalElement extends PropertyHolderElement, TypedElement {
}

@gmf.node(figure="ellipse",label = "name")
class Group extends Element {
@gmf.link(style="dot",tool.small.path="/a0_editor.edit/icons/full/obj16/Members.gif ",tool.large.path="/a0_editor.edit/icons/full/obj16/Members.gif ")
ref Element[*] members;
}


@gmf.diagram(foo = "bar")
class TypesSpecification {
val Type[*] types;
}

class SAType extends Type {
val Behavior[*] behavior;
}

enum PropertyType {
string = 0;
int = 1;
boolean = 2;
reference = 3;
float = 4;
double = 5;
short = 6;
long = 7;
any = 8;
}

class SAStructuredType extends SAType {
@gmf.compartment(collapsible="false")
val ArchitecturalElement[*] subElement;
}


@gmf.link(style="solid")
class SABinding extends SARelationship {
}

}
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #500929 is a reply to message #500745] Mon, 30 November 2009 10:47 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios Kolovos
Messages: 1776
Registered: July 2009
Senior Member
Hi Marco,

I've reproduced this. I'll try to figure out what goes wrong later on
today and get back to you.

Cheers,
Dimitris

marco wrote:
> Hi Dimitris
> I'm trying to use Eugenia for Diagram Partition.
>
> I wanted to create a new diagram involving only types.
> The following EMF file is what I use.
> compared to the previous diagram, I moved the annotation @ gmf.diagram
> from SoftwareArchitecture to TypesSpecification
>
> I use Eugenia but don't work...
> seems kind that come in an infinite loop ... and do not understand why.
> someone tell me why?
>
> regards
> marco
>
>
> @namespace(uri="http://a0.ecore", prefix="A0")
>
> @gmf(foo="bar")
> package A0;
>
> @namespace(uri="core", prefix="core")
> package core {
> class SAComponent extends Component {
> }
>
> @gmf.node(figure="rounded",label="name")
> class SAConnector extends Component {
> }
>
> @gmf.node(figure="a0_editor.diagram.figures.TypeFigure",label= "name")
> class Type extends PropertyHolderElement {
> @gmf.link(color="250,100,100") ref TypedElement[*]#type
> implementations;
> ref Type[*]#subtypes supertypes;
> @gmf.link(color="50,200,100",target.decoration="closedarrow ")
> ref Type[*]#supertypes subtypes;
> }
>
> @gmf.node(figure="rounded",label = "name")
> class SAInterface extends InteractionPoint, ArchitecturalElement {
> attr SAInterfaceDirection direction;
> val Behavior[*] behavior;
> }
>
> @gmf.node(figure="rectangle",label="name")
> abstract class Component extends ConnectableElement,
> ArchitecturalElement {
> @gmf.compartment(foo="bar", collapsible="true")
> val ArchitecturalElement[*] subElement;
> }
>
> @gmf.link(style="solid", width="2")
> class SAChannel extends SARelationship {
> }
>
> abstract class Behavior extends Element {
> }
>
> abstract class Business extends Element {
> }
>
> abstract class Development extends Element {
> }
>
> abstract class Element {
> attr String name;
> attr String description;
> val Development development;
> val Business business;
> }
>
> @gmf.link(source="from",target="to",label="name")
> abstract class Link extends PropertyHolderElement, TypedElement {
> attr LinkNavigability navigability;
> ref ConnectableElement[1] from;
> ref ConnectableElement[1] to;
> ref Component fromContext;
> ref Component toContext;
> }
>
> abstract class ConnectableElement extends Element {
> }
>
> @gmf.node(figure="rounded", label="name")
> abstract class TypedElement extends Element {
> ref Type[*]#implementations type;
> }
>
> abstract class PropertyHolderElement extends Element {
> val Property[*] properties;
> }
>
> @gmf.node(label="name,type,value", figure="rectangle",
> label.pattern="{1} {0} : {2}")
> class Property extends Element {
> attr PropertyType type;
> attr String value;
> }
>
> enum SAInterfaceDirection {
> input = 0;
> output = 1;
> inputOutput = 2;
> }
>
> @gmf.node(figure="rectangle", size="20,20", label="name",
> label.placement="external", label.icon="false")
> abstract class InteractionPoint extends ConnectableElement {
> }
>
> enum LinkNavigability {
> bidirectional = 0;
> unidirectional = 1;
> }
>
> @gmf.link(target.decoration="arrow",style="dash")
> class SARelationship extends Link, ArchitecturalElement {
> }
>
> abstract class Architecture extends PropertyHolderElement {
> val ArchitecturalElement[*] subElement;
> val Behavior[*] behavior;
> val Group[*] groups;
> }
>
> class SoftwareArchitecture extends Architecture {
> }
>
> abstract class ArchitecturalElement extends PropertyHolderElement,
> TypedElement {
> }
>
> @gmf.node(figure="ellipse",label = "name")
> class Group extends Element {
> @gmf.link(style="dot",tool.small.path="/a0_editor.edit/icons/full/obj16/Members.gif
> ",tool.large.path="/a0_editor.edit/icons/full/obj16/Members.gif ")
> ref Element[*] members;
> }
>
>
> @gmf.diagram(foo = "bar")
> class TypesSpecification {
> val Type[*] types;
> }
>
> class SAType extends Type {
> val Behavior[*] behavior;
> }
>
> enum PropertyType {
> string = 0;
> int = 1;
> boolean = 2;
> reference = 3;
> float = 4;
> double = 5;
> short = 6;
> long = 7;
> any = 8;
> }
>
> class SAStructuredType extends SAType {
> @gmf.compartment(collapsible="false")
> val ArchitecturalElement[*] subElement;
> }
>
>
> @gmf.link(style="solid")
> class SABinding extends SARelationship {
> }
>
> }
>


--
Spread the word: http://www.eclipse.org/gmt/epsilon/spreadtheword
Follow Epsilon on Twitter: http://twitter.com/epsilonews
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #501054 is a reply to message #500929] Mon, 30 November 2009 20:01 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios Kolovos
Messages: 1776
Registered: July 2009
Senior Member
Hi Marco,

It seems that the structure of your metamodel (somehow) makes EuGENia
produce elements (in the GMF mapping model) that are involved in a
cyclic containment (!) relationship (and this causes
EcoreUtil#isAncestor to fall into an infinite loop). Hard as I tried, I
haven't been able to come up with a minimal metamodel that reproduces
this so that I can understand the exact nature of the problem. I'll have
another go at it within the next few days...

Cheers,
Dimitris

Dimitris Kolovos wrote:
> Hi Marco,
>
> I've reproduced this. I'll try to figure out what goes wrong later on
> today and get back to you.
>
> Cheers,
> Dimitris
>
> marco wrote:
>> Hi Dimitris
>> I'm trying to use Eugenia for Diagram Partition.
>>
>> I wanted to create a new diagram involving only types.
>> The following EMF file is what I use.
>> compared to the previous diagram, I moved the annotation @ gmf.diagram
>> from SoftwareArchitecture to TypesSpecification
>>
>> I use Eugenia but don't work...
>> seems kind that come in an infinite loop ... and do not understand why.
>> someone tell me why?
>>
>> regards
>> marco
>>
>>
>> @namespace(uri="http://a0.ecore", prefix="A0")
>>
>> @gmf(foo="bar")
>> package A0;
>>
>> @namespace(uri="core", prefix="core")
>> package core {
>> class SAComponent extends Component {
>> }
>>
>> @gmf.node(figure="rounded",label="name")
>> class SAConnector extends Component {
>> }
>>
>> @gmf.node(figure="a0_editor.diagram.figures.TypeFigure",label= "name")
>> class Type extends PropertyHolderElement {
>> @gmf.link(color="250,100,100") ref TypedElement[*]#type
>> implementations;
>> ref Type[*]#subtypes supertypes;
>> @gmf.link(color="50,200,100",target.decoration="closedarrow ")
>> ref Type[*]#supertypes subtypes;
>> }
>>
>> @gmf.node(figure="rounded",label = "name")
>> class SAInterface extends InteractionPoint, ArchitecturalElement {
>> attr SAInterfaceDirection direction;
>> val Behavior[*] behavior;
>> }
>>
>> @gmf.node(figure="rectangle",label="name")
>> abstract class Component extends ConnectableElement,
>> ArchitecturalElement {
>> @gmf.compartment(foo="bar", collapsible="true")
>> val ArchitecturalElement[*] subElement;
>> }
>>
>> @gmf.link(style="solid", width="2")
>> class SAChannel extends SARelationship {
>> }
>>
>> abstract class Behavior extends Element {
>> }
>>
>> abstract class Business extends Element {
>> }
>>
>> abstract class Development extends Element {
>> }
>>
>> abstract class Element {
>> attr String name;
>> attr String description;
>> val Development development;
>> val Business business;
>> }
>>
>> @gmf.link(source="from",target="to",label="name")
>> abstract class Link extends PropertyHolderElement, TypedElement {
>> attr LinkNavigability navigability;
>> ref ConnectableElement[1] from;
>> ref ConnectableElement[1] to;
>> ref Component fromContext;
>> ref Component toContext;
>> }
>>
>> abstract class ConnectableElement extends Element {
>> }
>>
>> @gmf.node(figure="rounded", label="name")
>> abstract class TypedElement extends Element {
>> ref Type[*]#implementations type;
>> }
>>
>> abstract class PropertyHolderElement extends Element {
>> val Property[*] properties;
>> }
>>
>> @gmf.node(label="name,type,value", figure="rectangle",
>> label.pattern="{1} {0} : {2}")
>> class Property extends Element {
>> attr PropertyType type;
>> attr String value;
>> }
>>
>> enum SAInterfaceDirection {
>> input = 0;
>> output = 1;
>> inputOutput = 2;
>> }
>>
>> @gmf.node(figure="rectangle", size="20,20", label="name",
>> label.placement="external", label.icon="false")
>> abstract class InteractionPoint extends ConnectableElement {
>> }
>>
>> enum LinkNavigability {
>> bidirectional = 0;
>> unidirectional = 1;
>> }
>>
>> @gmf.link(target.decoration="arrow",style="dash")
>> class SARelationship extends Link, ArchitecturalElement {
>> }
>>
>> abstract class Architecture extends PropertyHolderElement {
>> val ArchitecturalElement[*] subElement;
>> val Behavior[*] behavior;
>> val Group[*] groups;
>> }
>>
>> class SoftwareArchitecture extends Architecture {
>> }
>>
>> abstract class ArchitecturalElement extends PropertyHolderElement,
>> TypedElement {
>> }
>>
>> @gmf.node(figure="ellipse",label = "name")
>> class Group extends Element {
>> @gmf.link(style="dot",tool.small.path="/a0_editor.edit/icons/full/obj16/Members.gif
>> ",tool.large.path="/a0_editor.edit/icons/full/obj16/Members.gif ")
>> ref Element[*] members;
>> }
>>
>>
>> @gmf.diagram(foo = "bar")
>> class TypesSpecification {
>> val Type[*] types;
>> }
>>
>> class SAType extends Type {
>> val Behavior[*] behavior;
>> }
>>
>> enum PropertyType {
>> string = 0;
>> int = 1;
>> boolean = 2;
>> reference = 3;
>> float = 4;
>> double = 5;
>> short = 6;
>> long = 7;
>> any = 8;
>> }
>>
>> class SAStructuredType extends SAType {
>> @gmf.compartment(collapsible="false")
>> val ArchitecturalElement[*] subElement;
>> }
>>
>>
>> @gmf.link(style="solid")
>> class SABinding extends SARelationship {
>> }
>>
>> }
>>
>
>


--
Spread the word: http://www.eclipse.org/gmt/epsilon/spreadtheword
Follow Epsilon on Twitter: http://twitter.com/epsilonews
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #501589 is a reply to message #501054] Wed, 02 December 2009 23:04 Go to previous messageGo to next message
marco  is currently offline marco
Messages: 82
Registered: September 2009
Member
Hi Dimitris

I am attaching a metamodel restricted with the same problem.

However I understand why you by.

If you try to remove @gmf.compartment (collapsible = "false")
val ArchitecturalElement [*] sub-element;

from the Component class, then it no longer the problem of infinite loop.

Now the problem is that I need an editor that works on the old metamodel, what can I do to get it working?

thanks
marco


@namespace(uri="http://a0.ecore", prefix="A0")

@gmf(foo="bar")
package A0;

@namespace(uri="core", prefix="core")
package core {

@gmf.node(figure="rectangle",label="name",border.color="0,0,0 ")
class Component extends ArchitecturalElement {
@gmf.compartment(collapsible="false")
val ArchitecturalElement[*] subElement;
}

abstract class ArchitecturalElement{

}

@gmf.diagram (foo="bar")
class TypesSpecification {
@gmf.compartment(foo="bar", collapsible="false")
val SAStructuredType[*] types;
}


class SAStructuredType {
@gmf.compartment(collapsible="false")
val ArchitecturalElement[*] subElement;
}

}



Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #501592 is a reply to message #501589] Wed, 02 December 2009 23:09 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios Kolovos
Messages: 1776
Registered: July 2009
Senior Member
Hi Marco,

Thanks for trimming down the metamodel. Now it should be a lot easier to
figure out what's going wrong. I'll have a look and let you know.

Cheers,
Dimitris

marco wrote:
> Hi Dimitris
>
> I am attaching a metamodel restricted with the same problem.
>
> However I understand why you by.
>
> If you try to remove @gmf.compartment (collapsible = "false")
> val ArchitecturalElement [*] sub-element;
>
> from the Component class, then it no longer the problem of infinite loop.
>
> Now the problem is that I need an editor that works on the old
> metamodel, what can I do to get it working?
>
> thanks
> marco
>
>
> @namespace(uri="http://a0.ecore", prefix="A0")
>
> @gmf(foo="bar")
> package A0;
>
> @namespace(uri="core", prefix="core")
> package core {
>
> @gmf.node(figure="rectangle",label="name",border.color="0,0,0 ")
> class Component extends ArchitecturalElement {
> @gmf.compartment(collapsible="false")
> val ArchitecturalElement[*] subElement;
> }
>
> abstract class ArchitecturalElement{
> }
>
> @gmf.diagram (foo="bar")
> class TypesSpecification {
> @gmf.compartment(foo="bar", collapsible="false")
> val SAStructuredType[*] types;
> }
>
>
> class SAStructuredType {
> @gmf.compartment(collapsible="false")
> val ArchitecturalElement[*] subElement;
> }
>
> }
>
>
>
>


--
Spread the word: http://www.eclipse.org/gmt/epsilon/spreadtheword
Follow Epsilon on Twitter: http://twitter.com/epsilonews
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #502506 is a reply to message #501592] Tue, 08 December 2009 15:18 Go to previous messageGo to next message
marco  is currently offline marco
Messages: 82
Registered: September 2009
Member
hi Dimitris

you have news for me?

regards
marco
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #502806 is a reply to message #502506] Wed, 09 December 2009 18:22 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios Kolovos
Messages: 1776
Registered: July 2009
Senior Member
Hi Marco,

I haven't been able to fix this yet. I'll give it a go tomorrow and
hopefully have it fixed in tomorrow's interim version.

Cheers,
Dimitris

On 08/12/2009 15:18, marco wrote:
> hi Dimitris
>
> you have news for me?
>
> regards
> marco
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #503841 is a reply to message #502806] Tue, 15 December 2009 23:24 Go to previous messageGo to next message
marco  is currently offline marco
Messages: 82
Registered: September 2009
Member
hi Dimitris

you have seen my problem?

have news for me?

thanks

marco
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #503885 is a reply to message #503841] Wed, 16 December 2009 09:06 Go to previous messageGo to next message
Louis Rose is currently offline Louis Rose
Messages: 440
Registered: July 2009
Location: York, United Kingdom
Senior Member
Hi Marco,

Dimitris is on vacation for a week or so. I'll try to take a look before I start my vacation on Friday, and let you know what I find.

Best,
Louis.
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #504500 is a reply to message #503885] Mon, 21 December 2009 01:53 Go to previous messageGo to next message
marco  is currently offline marco
Messages: 82
Registered: September 2009
Member
hi Louis

I wait your answer.

thanks

marco
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #504640 is a reply to message #504500] Mon, 21 December 2009 21:01 Go to previous messageGo to next message
Louis Rose is currently offline Louis Rose
Messages: 440
Registered: July 2009
Location: York, United Kingdom
Senior Member
marco wrote on Sun, 20 December 2009 20:53
hi Louis

I wait your answer.

thanks

marco


Marco,

I spent some time looking at this today. I'm afraid that I'm not familiar enough with the diagram partioning concept of Eugenia to be able to fix this issue.

I'll email Dimitris so that he is aware that the problem remains.

Best,
Louis.
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #505256 is a reply to message #504640] Mon, 28 December 2009 18:28 Go to previous messageGo to next message
marco  is currently offline marco
Messages: 82
Registered: September 2009
Member
hi Louis

thanks for your answer.

when Dimitris come back and ansewere me?

regards

marco
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #505258 is a reply to message #505256] Mon, 28 December 2009 23:28 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios Kolovos
Messages: 1776
Registered: July 2009
Senior Member
Hi Marco,

Apologies for the delay. I'm back online now but still on vacation (sort
of ...). I'll get back to you when I have something.

Cheers,
Dimitris

marco wrote:
> hi Louis
>
> thanks for your answer.
>
> when Dimitris come back and ansewere me?
>
> regards
> marco


--
Spread the word: http://www.eclipse.org/gmt/epsilon/spreadtheword
Follow Epsilon on Twitter: http://twitter.com/epsilonews
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #505467 is a reply to message #505258] Thu, 31 December 2009 03:42 Go to previous messageGo to next message
marco  is currently offline marco
Messages: 82
Registered: September 2009
Member
hello Dimitris

ok be waiting to hear from you Smile

I would also ask you something, as in the thesis must cite Eugenia, could you give me interesting articles which are in addition to that Eugenia GMF Tutorial and Eugenia: Polishing your GMF editor ...

thank you very much

I make so many New Year's greetings
regards
marco
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #505565 is a reply to message #505467] Fri, 01 January 2010 18:03 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios Kolovos
Messages: 1776
Registered: July 2009
Senior Member
Hi Marco,

You can cite this paper in your thesis:
http://www.computer.org/portal/web/csdl/doi/10.1109/MISE.200 9.5069891

Best wishes,
Dimitris

marco wrote:
> hello Dimitris
>
> ok be waiting to hear from you :)
>
> I would also ask you something, as in the thesis must cite Eugenia,
> could you give me interesting articles which are in addition to that
> Eugenia GMF Tutorial and Eugenia: Polishing your GMF editor ...
>
> thank you very much
>
> I make so many New Year's greetings
> regards
> marco


--
Spread the word: http://www.eclipse.org/gmt/epsilon/spreadtheword
Follow Epsilon on Twitter: http://twitter.com/epsilonews
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #583328 is a reply to message #500929] Mon, 30 November 2009 20:01 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios Kolovos
Messages: 1776
Registered: July 2009
Senior Member
Hi Marco,

It seems that the structure of your metamodel (somehow) makes EuGENia
produce elements (in the GMF mapping model) that are involved in a
cyclic containment (!) relationship (and this causes
EcoreUtil#isAncestor to fall into an infinite loop). Hard as I tried, I
haven't been able to come up with a minimal metamodel that reproduces
this so that I can understand the exact nature of the problem. I'll have
another go at it within the next few days...

Cheers,
Dimitris

Dimitris Kolovos wrote:
> Hi Marco,
>
> I've reproduced this. I'll try to figure out what goes wrong later on
> today and get back to you.
>
> Cheers,
> Dimitris
>
> marco wrote:
>> Hi Dimitris
>> I'm trying to use Eugenia for Diagram Partition.
>>
>> I wanted to create a new diagram involving only types.
>> The following EMF file is what I use.
>> compared to the previous diagram, I moved the annotation @ gmf.diagram
>> from SoftwareArchitecture to TypesSpecification
>>
>> I use Eugenia but don't work...
>> seems kind that come in an infinite loop ... and do not understand why.
>> someone tell me why?
>>
>> regards
>> marco
>>
>>
>> @namespace(uri="http://a0.ecore", prefix="A0")
>>
>> @gmf(foo="bar")
>> package A0;
>>
>> @namespace(uri="core", prefix="core")
>> package core {
>> class SAComponent extends Component {
>> }
>>
>> @gmf.node(figure="rounded",label="name")
>> class SAConnector extends Component {
>> }
>>
>> @gmf.node(figure="a0_editor.diagram.figures.TypeFigure",label= "name")
>> class Type extends PropertyHolderElement {
>> @gmf.link(color="250,100,100") ref TypedElement[*]#type
>> implementations;
>> ref Type[*]#subtypes supertypes;
>> @gmf.link(color="50,200,100",target.decoration="closedarrow ")
>> ref Type[*]#supertypes subtypes;
>> }
>>
>> @gmf.node(figure="rounded",label = "name")
>> class SAInterface extends InteractionPoint, ArchitecturalElement {
>> attr SAInterfaceDirection direction;
>> val Behavior[*] behavior;
>> }
>>
>> @gmf.node(figure="rectangle",label="name")
>> abstract class Component extends ConnectableElement,
>> ArchitecturalElement {
>> @gmf.compartment(foo="bar", collapsible="true")
>> val ArchitecturalElement[*] subElement;
>> }
>>
>> @gmf.link(style="solid", width="2")
>> class SAChannel extends SARelationship {
>> }
>>
>> abstract class Behavior extends Element {
>> }
>>
>> abstract class Business extends Element {
>> }
>>
>> abstract class Development extends Element {
>> }
>>
>> abstract class Element {
>> attr String name;
>> attr String description;
>> val Development development;
>> val Business business;
>> }
>>
>> @gmf.link(source="from",target="to",label="name")
>> abstract class Link extends PropertyHolderElement, TypedElement {
>> attr LinkNavigability navigability;
>> ref ConnectableElement[1] from;
>> ref ConnectableElement[1] to;
>> ref Component fromContext;
>> ref Component toContext;
>> }
>>
>> abstract class ConnectableElement extends Element {
>> }
>>
>> @gmf.node(figure="rounded", label="name")
>> abstract class TypedElement extends Element {
>> ref Type[*]#implementations type;
>> }
>>
>> abstract class PropertyHolderElement extends Element {
>> val Property[*] properties;
>> }
>>
>> @gmf.node(label="name,type,value", figure="rectangle",
>> label.pattern="{1} {0} : {2}")
>> class Property extends Element {
>> attr PropertyType type;
>> attr String value;
>> }
>>
>> enum SAInterfaceDirection {
>> input = 0;
>> output = 1;
>> inputOutput = 2;
>> }
>>
>> @gmf.node(figure="rectangle", size="20,20", label="name",
>> label.placement="external", label.icon="false")
>> abstract class InteractionPoint extends ConnectableElement {
>> }
>>
>> enum LinkNavigability {
>> bidirectional = 0;
>> unidirectional = 1;
>> }
>>
>> @gmf.link(target.decoration="arrow",style="dash")
>> class SARelationship extends Link, ArchitecturalElement {
>> }
>>
>> abstract class Architecture extends PropertyHolderElement {
>> val ArchitecturalElement[*] subElement;
>> val Behavior[*] behavior;
>> val Group[*] groups;
>> }
>>
>> class SoftwareArchitecture extends Architecture {
>> }
>>
>> abstract class ArchitecturalElement extends PropertyHolderElement,
>> TypedElement {
>> }
>>
>> @gmf.node(figure="ellipse",label = "name")
>> class Group extends Element {
>> @gmf.link(style="dot",tool.small.path="/a0_editor.edit/icons/full/obj16/Members.gif
>> ",tool.large.path="/a0_editor.edit/icons/full/obj16/Members.gif ")
>> ref Element[*] members;
>> }
>>
>>
>> @gmf.diagram(foo = "bar")
>> class TypesSpecification {
>> val Type[*] types;
>> }
>>
>> class SAType extends Type {
>> val Behavior[*] behavior;
>> }
>>
>> enum PropertyType {
>> string = 0;
>> int = 1;
>> boolean = 2;
>> reference = 3;
>> float = 4;
>> double = 5;
>> short = 6;
>> long = 7;
>> any = 8;
>> }
>>
>> class SAStructuredType extends SAType {
>> @gmf.compartment(collapsible="false")
>> val ArchitecturalElement[*] subElement;
>> }
>>
>>
>> @gmf.link(style="solid")
>> class SABinding extends SARelationship {
>> }
>>
>> }
>>
>
>


--
Spread the word: http://www.eclipse.org/gmt/epsilon/spreadtheword
Follow Epsilon on Twitter: http://twitter.com/epsilonews
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #583346 is a reply to message #501054] Wed, 02 December 2009 23:04 Go to previous messageGo to next message
marco  is currently offline marco
Messages: 82
Registered: September 2009
Member
Hi Dimitris

I am attaching a metamodel restricted with the same problem.

However I understand why you by.

If you try to remove @gmf.compartment (collapsible = "false")
val ArchitecturalElement [*] sub-element;

from the Component class, then it no longer the problem of infinite loop.

Now the problem is that I need an editor that works on the old metamodel, what can I do to get it working?

thanks
marco


@namespace(uri="http://a0.ecore", prefix="A0")

@gmf(foo="bar")
package A0;

@namespace(uri="core", prefix="core")
package core {

@gmf.node(figure="rectangle",label="name",border.color="0,0,0 ")
class Component extends ArchitecturalElement {
@gmf.compartment(collapsible="false")
val ArchitecturalElement[*] subElement;
}

abstract class ArchitecturalElement{

}

@gmf.diagram (foo="bar")
class TypesSpecification {
@gmf.compartment(foo="bar", collapsible="false")
val SAStructuredType[*] types;
}


class SAStructuredType {
@gmf.compartment(collapsible="false")
val ArchitecturalElement[*] subElement;
}

}
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #583358 is a reply to message #501589] Wed, 02 December 2009 23:09 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios Kolovos
Messages: 1776
Registered: July 2009
Senior Member
Hi Marco,

Thanks for trimming down the metamodel. Now it should be a lot easier to
figure out what's going wrong. I'll have a look and let you know.

Cheers,
Dimitris

marco wrote:
> Hi Dimitris
>
> I am attaching a metamodel restricted with the same problem.
>
> However I understand why you by.
>
> If you try to remove @gmf.compartment (collapsible = "false")
> val ArchitecturalElement [*] sub-element;
>
> from the Component class, then it no longer the problem of infinite loop.
>
> Now the problem is that I need an editor that works on the old
> metamodel, what can I do to get it working?
>
> thanks
> marco
>
>
> @namespace(uri="http://a0.ecore", prefix="A0")
>
> @gmf(foo="bar")
> package A0;
>
> @namespace(uri="core", prefix="core")
> package core {
>
> @gmf.node(figure="rectangle",label="name",border.color="0,0,0 ")
> class Component extends ArchitecturalElement {
> @gmf.compartment(collapsible="false")
> val ArchitecturalElement[*] subElement;
> }
>
> abstract class ArchitecturalElement{
> }
>
> @gmf.diagram (foo="bar")
> class TypesSpecification {
> @gmf.compartment(foo="bar", collapsible="false")
> val SAStructuredType[*] types;
> }
>
>
> class SAStructuredType {
> @gmf.compartment(collapsible="false")
> val ArchitecturalElement[*] subElement;
> }
>
> }
>
>
>
>


--
Spread the word: http://www.eclipse.org/gmt/epsilon/spreadtheword
Follow Epsilon on Twitter: http://twitter.com/epsilonews
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #583621 is a reply to message #501592] Tue, 08 December 2009 15:18 Go to previous messageGo to next message
marco  is currently offline marco
Messages: 82
Registered: September 2009
Member
hi Dimitris

you have news for me?

regards
marco
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #583668 is a reply to message #502506] Wed, 09 December 2009 18:22 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios Kolovos
Messages: 1776
Registered: July 2009
Senior Member
Hi Marco,

I haven't been able to fix this yet. I'll give it a go tomorrow and
hopefully have it fixed in tomorrow's interim version.

Cheers,
Dimitris

On 08/12/2009 15:18, marco wrote:
> hi Dimitris
>
> you have news for me?
>
> regards
> marco
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #583772 is a reply to message #502806] Tue, 15 December 2009 23:24 Go to previous messageGo to next message
marco  is currently offline marco
Messages: 82
Registered: September 2009
Member
hi Dimitris

you have seen my problem?

have news for me?

thanks

marco
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #583784 is a reply to message #583772] Wed, 16 December 2009 09:06 Go to previous messageGo to next message
Louis Rose is currently offline Louis Rose
Messages: 440
Registered: July 2009
Location: York, United Kingdom
Senior Member
Hi Marco,

Dimitris is on vacation for a week or so. I'll try to take a look before I start my vacation on Friday, and let you know what I find.

Best,
Louis.
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #583952 is a reply to message #583784] Mon, 21 December 2009 01:53 Go to previous messageGo to next message
marco  is currently offline marco
Messages: 82
Registered: September 2009
Member
hi Louis

I wait your answer.

thanks

marco
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #584038 is a reply to message #583952] Mon, 21 December 2009 21:01 Go to previous messageGo to next message
Louis Rose is currently offline Louis Rose
Messages: 440
Registered: July 2009
Location: York, United Kingdom
Senior Member
marco wrote on Sun, 20 December 2009 20:53
> hi Louis
>
> I wait your answer.
>
> thanks
>
> marco


Marco,

I spent some time looking at this today. I'm afraid that I'm not familiar enough with the diagram partioning concept of Eugenia to be able to fix this issue.

I'll email Dimitris so that he is aware that the problem remains.

Best,
Louis.
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #584073 is a reply to message #584038] Mon, 28 December 2009 18:28 Go to previous messageGo to next message
marco  is currently offline marco
Messages: 82
Registered: September 2009
Member
hi Louis

thanks for your answer.

when Dimitris come back and ansewere me?

regards

marco
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #584083 is a reply to message #584073] Mon, 28 December 2009 23:28 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios Kolovos
Messages: 1776
Registered: July 2009
Senior Member
Hi Marco,

Apologies for the delay. I'm back online now but still on vacation (sort
of ...). I'll get back to you when I have something.

Cheers,
Dimitris

marco wrote:
> hi Louis
>
> thanks for your answer.
>
> when Dimitris come back and ansewere me?
>
> regards
> marco


--
Spread the word: http://www.eclipse.org/gmt/epsilon/spreadtheword
Follow Epsilon on Twitter: http://twitter.com/epsilonews
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #584166 is a reply to message #505258] Thu, 31 December 2009 03:42 Go to previous messageGo to next message
marco  is currently offline marco
Messages: 82
Registered: September 2009
Member
hello Dimitris

ok be waiting to hear from you :)

I would also ask you something, as in the thesis must cite Eugenia, could you give me interesting articles which are in addition to that Eugenia GMF Tutorial and Eugenia: Polishing your GMF editor ...

thank you very much

I make so many New Year's greetings
regards
marco
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #584214 is a reply to message #584166] Fri, 01 January 2010 18:03 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios Kolovos
Messages: 1776
Registered: July 2009
Senior Member
Hi Marco,

You can cite this paper in your thesis:
http://www.computer.org/portal/web/csdl/doi/10.1109/MISE.200 9.5069891

Best wishes,
Dimitris

marco wrote:
> hello Dimitris
>
> ok be waiting to hear from you :)
>
> I would also ask you something, as in the thesis must cite Eugenia,
> could you give me interesting articles which are in addition to that
> Eugenia GMF Tutorial and Eugenia: Polishing your GMF editor ...
>
> thank you very much
>
> I make so many New Year's greetings
> regards
> marco


--
Spread the word: http://www.eclipse.org/gmt/epsilon/spreadtheword
Follow Epsilon on Twitter: http://twitter.com/epsilonews
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #632378 is a reply to message #505258] Tue, 12 October 2010 17:42 Go to previous messageGo to next message
Sorin Silaghi is currently offline Sorin Silaghi
Messages: 16
Registered: October 2010
Junior Member
was this ever solved ? I'm having the same problem with a similar model.
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #632393 is a reply to message #500745] Tue, 12 October 2010 18:18 Go to previous messageGo to next message
Sorin Silaghi is currently offline Sorin Silaghi
Messages: 16
Registered: October 2010
Junior Member
I think I found two different ways to write the same model out of which one works and one doesn't and it looks like the order in which the declarations are made is the issue. Here's the two models:

this one works:
@namespace(uri="mapping", prefix="mapping")
@gmf(foo="bar")
package mapping;

@gmf.diagram(foo="bar")
class Map {
    val Node[*] nodes;
    val Connection[*] connections;
}

abstract class Node {
    attr String name;
}

@gmf.node(label = "name")
class InputDataType extends Node{
    @gmf.compartment(foo="bar")
    val InputField rootField;   
}

@gmf.node(label = "name")
class OutputDataType extends Node{
    @gmf.compartment(foo="bar")
    val OutputField rootField;   
}

@gmf.node(label = "name")
class InputField {
    attr String name;
    @gmf.compartment(foo="bar")
    val InputField[*] fields;
    @gmf.affixed(foo="bar")
	val InputConnector connector;    
}

@gmf.node(label = "name")
class OutputField {
    attr String name;
    @gmf.compartment(foo="bar")
    val OutputField[*] fields;
    @gmf.affixed(foo="bar")
	val OutputConnector connector;    
}

@gmf.node(foo = "name")
class OutputConnector{
   
}

@gmf.node(foo = "name")
class InputConnector{
   
}

@gmf.link(source="source", target="target")
class Connection {
    ref OutputConnector source;
    ref InputConnector target;
}



and this one doesn't work:
@namespace(uri="mappingnogo", prefix="mappingnogo")
@gmf(foo="bar")
package mappingnogo;

@gmf.diagram(foo="bar")
class Map {
    val Node[*] nodes;
    val Connection[*] connections;
}

abstract class Node {
    attr String name;
}

@gmf.node(foo = "name")
class OutputConnector{
   
}

@gmf.node(foo = "name")
class InputConnector{
   
}

@gmf.node(label = "name")
class InputField {
	attr String name;
    @gmf.compartment(foo="bar")
    val InputField[*] children;
}

@gmf.node(label = "name")
class OutputField{
	attr String name;
    @gmf.compartment(foo="bar")
    val OutputField[*] children;
}

@gmf.node(label = "name")
class InputDataType extends Node {
    @gmf.compartment(foo="bar")
    val InputField rootChild;
}

@gmf.node(label = "name")
class OutputDataType extends Node {
    @gmf.compartment(foo="bar")
    val OutputField rootChild;
}

@gmf.link(source="source", target="target")
class Connection {
    ref OutputConnector source;
    ref InputConnector target;
}


The way I managed to get the working version was I started from scratch with a node that had children, tried it to see that it works and then just added stuff to it and checked each time to see if it goes into infinite loop.
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #632540 is a reply to message #632393] Wed, 13 October 2010 10:40 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios Kolovos
Messages: 1776
Registered: July 2009
Senior Member
Thanks for the update! Could you please file a bug report so that we can
keep track of this?

https://bugs.eclipse.org/bugs/enter_bug.cgi?product=GMT& component=Epsilon

Cheers,
Dimitris

Sorin Silaghi wrote:
> I think I found two different ways to write the same model out of which
> one works and one doesn't and it looks like the order in which the
> declarations are made is the issue. Here's the two models:
>
> this one works:
>
> @namespace(uri="mapping", prefix="mapping")
> @gmf(foo="bar")
> package mapping;
>
> @gmf.diagram(foo="bar")
> class Map {
> val Node[*] nodes;
> val Connection[*] connections;
> }
>
> abstract class Node {
> attr String name;
> }
>
> @gmf.node(label = "name")
> class InputDataType extends Node{
> @gmf.compartment(foo="bar")
> val InputField rootField; }
>
> @gmf.node(label = "name")
> class OutputDataType extends Node{
> @gmf.compartment(foo="bar")
> val OutputField rootField; }
>
> @gmf.node(label = "name")
> class InputField {
> attr String name;
> @gmf.compartment(foo="bar")
> val InputField[*] fields;
> @gmf.affixed(foo="bar")
> val InputConnector connector; }
>
> @gmf.node(label = "name")
> class OutputField {
> attr String name;
> @gmf.compartment(foo="bar")
> val OutputField[*] fields;
> @gmf.affixed(foo="bar")
> val OutputConnector connector; }
>
> @gmf.node(foo = "name")
> class OutputConnector{
> }
>
> @gmf.node(foo = "name")
> class InputConnector{
> }
>
> @gmf.link(source="source", target="target")
> class Connection {
> ref OutputConnector source;
> ref InputConnector target;
> }
>
>
>
> and this one doesn't work:
>
> @namespace(uri="mappingnogo", prefix="mappingnogo")
> @gmf(foo="bar")
> package mappingnogo;
>
> @gmf.diagram(foo="bar")
> class Map {
> val Node[*] nodes;
> val Connection[*] connections;
> }
>
> abstract class Node {
> attr String name;
> }
>
> @gmf.node(foo = "name")
> class OutputConnector{
> }
>
> @gmf.node(foo = "name")
> class InputConnector{
> }
>
> @gmf.node(label = "name")
> class InputField {
> attr String name;
> @gmf.compartment(foo="bar")
> val InputField[*] children;
> }
>
> @gmf.node(label = "name")
> class OutputField{
> attr String name;
> @gmf.compartment(foo="bar")
> val OutputField[*] children;
> }
>
> @gmf.node(label = "name")
> class InputDataType extends Node {
> @gmf.compartment(foo="bar")
> val InputField rootChild;
> }
>
> @gmf.node(label = "name")
> class OutputDataType extends Node {
> @gmf.compartment(foo="bar")
> val OutputField rootChild;
> }
>
> @gmf.link(source="source", target="target")
> class Connection {
> ref OutputConnector source;
> ref InputConnector target;
> }
>
>
> The way I managed to get the working version was I started from scratch
> with a node that had children, tried it to see that it works and then
> just added stuff to it and checked each time to see if it goes into
> infinite loop.
Re: Eugenia don't create gmfmap,gmftool,gmfgraph...come in an infinite loop [message #632546 is a reply to message #500745] Wed, 13 October 2010 11:36 Go to previous message
Sorin Silaghi is currently offline Sorin Silaghi
Messages: 16
Registered: October 2010
Junior Member
done:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=327646
Previous Topic:[ETL] ETL and launch configuration
Next Topic:Calling Operations from within Operations
Goto Forum:
  


Current Time: Thu Oct 23 18:34:46 GMT 2014

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

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