Home » Modeling » GMF (Graphical Modeling Framework) » Implementation of non-graphical non-containament references
|
Re: Implementation of non-graphical non-containament references [message #509529 is a reply to message #508941] |
Fri, 22 January 2010 16:55 |
Ali Koudri Messages: 118 Registered: July 2009 |
Senior Member |
|
|
Hi,
What you want is not an easy task. Apparently, you need more than a
simple label to represent your expression, which is not directly covered
by GMF models. I suggest you to use a compartment with a label inside
and edit the generated code to change the label into a TextFlow
(currently not supported by GMG-GRAPH models) which, I think, will suit
to your need.
----------------------------------------
//notational element
IFigure rect = new Rectangle();
//customize figure (layout, border, etc.)
....
//Create and add multi-line text area
FlowPage flowPage = new FlowPage();
TextFlow textFlow = new TextFlow();
textFlow.setLayoutManager(new ParagraphTextLayout(textFlow,
ParagraphTextLayout.WORD_WRAP_TRUNCATE));
flowPage.add(textFlow);
rect.add(flowPage);
....
---------------------------------------
After that you will have to manage direct editing as for the label.
Hope it will help.
Cheers.
Le 20/01/2010 20:20, Milan Milanovich a écrit :
> Hi,
>
> I have one general question regarding non-containament references which
> are not defined graphically in gmf, e.g. I have following classes in my
> ecore domain model:
>
> class SequenceFlow{
> expression[0..1]: Expression;
> }
>
> class FormalExpression extends Expression { <- this class is not defined
> graphically
> body : EObject;
> language : EString;
> }
>
>
> I want to enable that when a user clicks on the SequenceFlow, he can
> define its expression, by instantiating
> the FormalExpression and populating the body with empty String and the
> language with asting. Then, user
> should enter body of the FormalExpression.
> What is the best strategy for this kind of situations (some example
> maybe?)?
>
> --
> Regards, Milan
|
|
| |
Re: Implementation of non-graphical non-containament references [message #509582 is a reply to message #509551] |
Sat, 23 January 2010 04:28 |
Ali Koudri Messages: 118 Registered: July 2009 |
Senior Member |
|
|
Hi Milan,
Actually, your property does not have to appear graphically but only in
the property view, Am I right ? And your expression is a string that
conforms to some BNF grammar ? If it is the case then this is not really
a GMF issue. Still, I don't think I have really understood what you aim
to do, do you have some sketch that you make this clear for me ?
Cheers.
Le 22/01/2010 21:38, Milan a écrit :
> Dear Ali,
>
> I'm not sure that I follow this. The SequenceFlow is a node, and an
> FormalExpression is its property that should be instantiated and
> populated (i.e., its properties body and language) by a user in some
> tree-based style.
>
> --
> Regards, Milan
|
|
|
Re: Implementation of non-graphical non-containament references [message #509586 is a reply to message #509582] |
Sat, 23 January 2010 11:34 |
Milan Milanovich Messages: 201 Registered: July 2009 |
Senior Member |
|
|
Dear Ali,
Ali Koudri wrote on Fri, 22 January 2010 23:28 | Hi Milan,
Actually, your property does not have to appear graphically but only in
the property view, Am I right ?
|
yes. But, I would like to show the Expression body as a label.
Ali Koudri wrote on Fri, 22 January 2010 23:28 |
And your expression is a string that
conforms to some BNF grammar ?
|
No, actually, it is a plain string, contained in the body property of the Expression.
Ali Koudri wrote on Fri, 22 January 2010 23:28 |
If it is the case then this is not really
a GMF issue. Still, I don't think I have really understood what you aim
to do, do you have some sketch that you make this clear for me ?
|
I have a Node (SequenceFlow), which have the Expression property. This expression have a body (EObject, which actually should be a String in this case), and a language (String). So, when a user click on the Node (SequenceFlow) in the diagram, I need to enable him to populate Expression properties (body and language) in property view.
--
Best regards, Milan
|
|
|
Re: Implementation of non-graphical non-containament references [message #509619 is a reply to message #509586] |
Sat, 23 January 2010 17:01 |
Ali Koudri Messages: 118 Registered: July 2009 |
Senior Member |
|
|
Le 23/01/2010 12:34, Milan a écrit :
> Dear Ali,
>
> Ali Koudri wrote on Fri, 22 January 2010 23:28
>> Hi Milan,
>>
>> Actually, your property does not have to appear graphically but only
>> in the property view, Am I right ?
>
>
> yes. But, I would like to show the Expression body as a label.
>
I don't get it, a label is a graphical element ! You define it in the
gmfgraph model.
> Ali Koudri wrote on Fri, 22 January 2010 23:28
>> And your expression is a string that conforms to some BNF grammar ?
>
>
> No, actually, it is a plain string, contained in the body property of
> the Expression.
>
> Ali Koudri wrote on Fri, 22 January 2010 23:28
>> If it is the case then this is not really a GMF issue. Still, I don't
>> think I have really understood what you aim to do, do you have some
>> sketch that you make this clear for me ?
>
>
> I have a Node (SequenceFlow), which have the Expression property. This
> expression have a body (EObject, which actually should be a String in
> this case), and a language (String). So, when a user click on the Node
> (SequenceFlow) in the diagram, I need to enable him to populate
> Expression properties (body and language) in property view.
So you just want to see the node representing your sequence flow,
automatically create an expression associated to it, and edit properties
of that expression in the node ? If this is what you want to use OCL to
express derived attributes, or use invisible rectangle as notational
element for the expression.
>
> --
> Best regards, Milan
>
|
|
|
Re: Implementation of non-graphical non-containament references [message #509640 is a reply to message #509619] |
Sat, 23 January 2010 22:33 |
Milan Milanovich Messages: 201 Registered: July 2009 |
Senior Member |
|
|
Dear Ali,
Ali Koudri wrote on Sat, 23 January 2010 12:01 | Le 23/01/2010 12:34, Milan a écrit :
> I have a Node (SequenceFlow), which have the Expression property. This
> expression have a body (EObject, which actually should be a String in
> this case), and a language (String). So, when a user click on the Node
> (SequenceFlow) in the diagram, I need to enable him to populate
> Expression properties (body and language) in property view.
So you just want to see the node representing your sequence flow,
automatically create an expression associated to it, and edit properties
of that expression in the node ? If this is what you want to use OCL to
express derived attributes, or use invisible rectangle as notational
element for the expression.
|
Yes, that's what I want to do. How OCL derived attributes can help here?
--
Regards, Milan
|
|
|
Re: Implementation of non-graphical non-containament references [message #509656 is a reply to message #509640] |
Sun, 24 January 2010 11:35 |
Ali Koudri Messages: 118 Registered: July 2009 |
Senior Member |
|
|
You could for instance declare two derivate attributes (body and
language) which are computed from its expression (self.body =
self.expression.body) and in the mapping, intanciate a new expression
(using Feature Seq Initializer) and perform the mapping between the
labels and the derived attributes.
Cheers.
Le 23/01/2010 23:33, Milan a écrit :
> Dear Ali,
>
> Ali Koudri wrote on Sat, 23 January 2010 12:01
>> Le 23/01/2010 12:34, Milan a écrit :
>>
>> > I have a Node (SequenceFlow), which have the Expression property. This
>> > expression have a body (EObject, which actually should be a String in
>> > this case), and a language (String). So, when a user click on the Node
>> > (SequenceFlow) in the diagram, I need to enable him to populate
>> > Expression properties (body and language) in property view.
>>
>> So you just want to see the node representing your sequence flow,
>> automatically create an expression associated to it, and edit
>> properties of that expression in the node ? If this is what you want
>> to use OCL to express derived attributes, or use invisible rectangle
>> as notational element for the expression.
>
>
> Yes, that's what I want to do. How OCL derived attributes can help here?
>
> --
> Regards, Milan
>
|
|
|
Goto Forum:
Current Time: Wed Sep 25 23:00:49 GMT 2024
Powered by FUDForum. Page generated in 0.04172 seconds
|