Home » Modeling » GMF (Graphical Modeling Framework) » Nested Rectangles and Layout
Nested Rectangles and Layout [message #92275] |
Fri, 12 January 2007 15:50  |
Eclipse User |
|
|
|
Originally posted by: me.you.com
Hi
I have 2 Rectangles in my .gmfgraph, one nested inside the other:
+Rectangle rect1
--+GridLayout
--+Rectangle rect2 (nested)
-----+GridLayoutData
And there are two Nodes:
-Node node1 (Figure rect1)
-Node node2 (Figure rect2)
This doesn't seem to work and causes an error, when generating diagram
code (although it validates without errors).
The reason why I want the Rectangles nested is because I want to use a
GridLayout on rect1 and GridLayoutData on rect2 (I have the GridLayout
patch).
Is it possible at all to use GridLayout on Nodes nested in a Node?
If not how do I go around this problem?
|
|
| | | | |
Re: Nested Rectangles and Layout [message #96211 is a reply to message #95351] |
Wed, 24 January 2007 13:50   |
Eclipse User |
|
|
|
Guess, I do not understand your usecase and reason you need explicitly
defined child nodes if you merely use them as figures (iow, "All boxes
should have assigned nodes" makes me puzzled). As you .gmfmap screenshot
suggests, you expect to get Box1 with all nested nodes/figures using
Box1Creation tool. If all the nodes/figures are right there at the creation
time (moreover, they need GridLayoutData assigned), what's the purpose of
Rect2Node?
If your usecase is about creating Box2 inside Box1 on demand, than you might
need to tweak Box2's EditPart class, refreshBounds method. Alternatively,
you may use intermediate comparments for each child node (layout constraints
should be attached to compartment in this case).
I've just ran simple GMF sample similar to what you described (two nested
boxes, layout), see attached screenshots. The only change I had to made was
Rect2NodeEditPart#refreshBounds to enforce proper layout data (not
XYLayout's Rectangle which is default for shape-kind children). However, I'm
not sure this is what you are trying to achieve.
Artem
"exquisitus" <me@you.com> wrote in message
news:24278037413b9fd3217ceadca93b38bd$1@www.eclipse.org...
>I tried to put Rect2 outside Rect1 but that couses an error when running
> the generated code:
>
> http://img250.imageshack.us/img250/1705/scr43qz.gif
>
> And here's the .gmfmap:
>
> http://img201.imageshack.us/img201/7378/scr54wy.gif
>
> What I'm trying to do is to create a box that has more boxes inside
> arranged in GridLayout and I wan't to use just one tool to create that box
> with all boxes inside. All boxes should have assigned nodes.
>
> Maybe I will file a bug later.
>
|
|
|
Re: Nested Rectangles and Layout [message #96575 is a reply to message #96211] |
Thu, 25 January 2007 05:19   |
Eclipse User |
|
|
|
Originally posted by: me.you.com
hello Artem,
Of course this is just a simple example that highlights my problem, not
really useful by itself.
What I want to do, is to add next nested elements inside Box2 (but this
time on user demand - not on creation). And for that Box2 needs to be a
Node so that I can map a ChildReference in .gmfmap.
Your suggestion to use intermediate compartments is exactly what I'm doing
now! And that works fine, using just Nodes was an alternative solution
that I wanted to try. The problem with using Compartments is that by
default they only support XYLayout and ListLayout with 1 column. I need
other Layouts (preferably GridLayout).
Here's a picture:
http://img407.imageshack.us/img407/6127/scr65wj.gif
I know, not your typical UML diagram :)
Unfortunately I can't see your attachments (I'm using the Web interface to
read this newsgroup and all I get is a column of text characters...). I
appreciate your help though.
Artem Tikhomirov wrote:
> Guess, I do not understand your usecase and reason you need explicitly
> defined child nodes if you merely use them as figures (iow, "All boxes
> should have assigned nodes" makes me puzzled). As you .gmfmap screenshot
> suggests, you expect to get Box1 with all nested nodes/figures using
> Box1Creation tool. If all the nodes/figures are right there at the creation
> time (moreover, they need GridLayoutData assigned), what's the purpose of
> Rect2Node?
> If your usecase is about creating Box2 inside Box1 on demand, than you might
> need to tweak Box2's EditPart class, refreshBounds method. Alternatively,
> you may use intermediate comparments for each child node (layout constraints
> should be attached to compartment in this case).
> I've just ran simple GMF sample similar to what you described (two nested
> boxes, layout), see attached screenshots. The only change I had to made was
> Rect2NodeEditPart#refreshBounds to enforce proper layout data (not
> XYLayout's Rectangle which is default for shape-kind children). However, I'm
> not sure this is what you are trying to achieve.
> Artem
> "exquisitus" <me@you.com> wrote in message
> news:24278037413b9fd3217ceadca93b38bd$1@www.eclipse.org...
>>I tried to put Rect2 outside Rect1 but that couses an error when running
>> the generated code:
>>
>> http://img250.imageshack.us/img250/1705/scr43qz.gif
>>
>> And here's the .gmfmap:
>>
>> http://img201.imageshack.us/img201/7378/scr54wy.gif
>>
>> What I'm trying to do is to create a box that has more boxes inside
>> arranged in GridLayout and I wan't to use just one tool to create that box
>> with all boxes inside. All boxes should have assigned nodes.
>>
>> Maybe I will file a bug later.
>>
> begin 666 untitled2.png
> MB5!.1PT*&@H````-24A$4@```>8```#'" ,```#[R@#:```#`%!,5$4`````
> M`%4``*H``/`) ``)%4`)*H`)/`20``254`2:H`2?`;0``;54`;:H`;?`
> MD@``DE4`DJH`DO`M@``ME4`MJH`MO`VP``VU4`VZH`V_`_P``_U4`_ZH`
> M__D```D`%4D`*HD`/D) `D)%4D)*HD)/D20`D254D2:HD2?D;0`D;54D
> M;:HD;?DD@`DDE4DDJHDDODM@`DME4DMJHDMODVP`DVU4DVZHDV_D_P`D
> M_U4D_ZHD__])``!)`%5)`*I)`/])) !))%5))*I))/])20!)255)2:I)2?])
> M;0!);55);:I);?])D@!)DE5)DJI)DO])M@!)ME5)MJI)MO])VP!)VU5)VZI )
> MV_])_P!)_U5)_ZI)__]M``!M`%5M`*IM`/]M) !M)%5M)*IM)/]M20!M255M
> M2:IM2?]M;0!M;55M;:IM;?]MD@!MDE5MDJIMDO]MM@!MME5MMJIMMO]MVP! M
> MVU5MVZIMV_]M_P!M_U5M_ZIM__^2``"2`%62`*J2`/^2) "2)%62)*J2)/^2
> M20"225622:J22?^2;0"2;562;:J2;?^2D@"2DE62DJJ2DO^2M@"2ME62MJJ2
> MMO^2VP"2VU62VZJ2V_^2_P"2_U62_ZJ2__^V``"V`%6V`*JV`/^V) "V)%6V
> M)*JV)/^V20"V256V2:JV2?^V;0"V;56V;:JV;?^VD@"VDE6VDJJVDO^VM@ "V
> MME6VMJJVMO^VVP"VVU6VVZJVV_^V_P"V_U6V_ZJV___;``#;`%7;`*K;`/_;
> M) #;)%7;)*K;)/_;20#;257;2:K;2?_;;0#;;57;;:K;;?_;D@#;DE7;DJK;
> MDO_;M@#;ME7;MJK;MO_;VP#;VU7;VZK;V__;_P#;_U7;_ZK;____``#_`%7 _
> M`*K_`/__) #_)%7_)*K_)/__20#_257_2:K_2?__;0#_;57_;:K_;?__D@#_
> MDE7_DJK_DO__M@#_ME7_MJK_MO__VP#_VU7_VZK_V____P#__U7__ZK____ J
> MFVXN````"7!(67,``!)T```2= '>9A]X```@`$E$051XG.U]W8X;R;%FW8P!
> M[S/XUL9*P/%3>(!I`>H+O<4!EK5H"IYY"A*GJ1TV,'J)HP&<A <EZ#F=B,R^T
> M+W$NQ@9<&]_W11;9W1P?6:+19)M9XD_]-E51$1D_7T1TY3+^!497^MX]F/=
> M+;[Z[?-<;I^:@TYI=+_]U6^_^MU7S^_]5U^M:FEILM[+;5[3]>O'R&+WM;
> ME).XQ4_^CL_NM[^SI__YO7[WVY=]C>6RQ!2*<?-+//@O__.#%GQ_)HMQ<T[Y
> M7^3?UU=??ZW7;JNOEUJ#D=G&BY<?)HX_?WAJXAQM>?ER;?+*'N=_A7_Q:O+Q
> M8K?QQ1468V=PLWU]]>+5?TX?IS_^<?GG/W^X>OGJI5Z3;7^IU]2VO7IIE]IM
> M?[CO_IY?>NV=4NO3[S2_NO*!LZ^NL*Z_:>6)=B37/E7C.9K]*^9NV/AB9
> M7UV_M.46F_[/,AF=7[ZV#:^GZU?3J]]/KU_]_M6_O;JVKZ]^?X77].H5CGQ
> MOWC8-??QL'_[;U_[5[O67WOXLHM.>W_C4UZO[']Z]?*UO7_SOJ5+2_ S2%A
> M;GKN[R5<O6A+1U?O_CZZ@]7T_],L20C[7=D:OKU50_?OS^)DX?;VW#:[M-
> MD]%X>J7OU]-K.P;'X5O[KA>VV'';E_]C+_WVK_:+QQOA_Q^[V]RNL%'N@K
> MOKUZ_=(>INME@2GQ_!?[ETJR?UJTI5Q]`Z)_?:6#C,P8_S']]:?X_2).?[U]
> M]5J;[(;9^^^O*0M>^?K4WD$B'F5/VGK-1Z+U_O[YJO<6[]_M7:YW=#6W<GS
> MAFG_@CIQ_[P_2&S]P5>O%B6-MM1GOMC4-)8::XGV?30R!R-V+K_%O?BF&/T'
> M8V@G^ICO/FC<?/'^A_M9E_[K78"3?<^?*=_3O,Y#_;MG[7[F#[[CF8'X;=
> M97<'3?L'-R+?H_,+ZB#SZA*/<4FP*9[SJ]:40.V<C-;V,H4KV#MGZZ#Z+_C
> MYM5/Z^^#D?FOTZK?(D]8NX1[)?)?)B#S^O'UQMCUSW#WUT[OWKWR?SU3XS
> MV__)'G2(,)@4S_95H56/)>98(X5VSL;*)65,S:9G&_W+4$K7]]=]O[S]Z >:/
> M$-KUXVW_IL>VZW[J];;LW[A@GOKK"8=+B,(GSMO?<R,.OEY>M/ZGA]+6_Q8
> M?MJZO;_IY-L`[^WP4W7.H4[_!B_UGSBTE^[8WKFKZZ7$+?'*&"X+$/ >/B?
> MX6?*E-T%BA9I;0M9&/1/=M (LG=OELOEFWX5Q<U3N;7[@VUXM_)WNTFVX*[
> M;.M:<L;[,>6::ES;(=][7G,FXE[K]]<^[%O/GFFE=;^F&3;2;]&? >X,5-
> MNNP;_SLX1I_7;][,)_*<'CMYVILWX.4_X.T%5NU7+^PVX/&F1I+E]GM^GY&4
> M+)#=$=[=7'/*)L=(_)%**$(7(M_JIYOOX_>W:=ZN^26:[[W)*D3T^X=;O?U
> MM&SD%1GL[0T.NO:-V/0:]6_MW.6.F<I:O?M%(W>GR<<,CTXM_=+\2^/7'S
> M@$&U?/,UWGFAY=(DU@BA%I+?DN?W&8LX>2QP:6:H8.#BPDDZ@/HI!6/R;OG6
> MEN7B8US<;'L8UUQ`S?R;;*W:?+/Y5O]PQ:[X_[)+=HSX<NDT2EMZ>U<A
> MN=].TXY2^/Z_<;WEWB%MQ[Q!5WV[]VN6?EYO[U^_('VOOOD:V^S8-1[CQ* <^
> MTL2,S^X3=#2]"W*YFH8-'=NT;INIQ-_9:#W2H@*9[=:M:HTQ_O13_;C ZK*]
> M
|
|
|
Re: Nested Rectangles and Layout [message #96823 is a reply to message #96575] |
Thu, 25 January 2007 10:19  |
Eclipse User |
|
|
|
Well, if Box2 is merely a grouping for other nodes, compartments are the
right choice.
XYLayout and ListLayout are most common use cases, hence the support.
Bugzilla is the forum to get some more ;)
Artem
"exquisitus" <me@you.com> wrote in message
news:98efeb3c7340eeaf057ce48ac68d1294$1@www.eclipse.org...
> hello Artem,
>
> Of course this is just a simple example that highlights my problem, not
> really useful by itself.
>
> What I want to do, is to add next nested elements inside Box2 (but this
> time on user demand - not on creation). And for that Box2 needs to be a
> Node so that I can map a ChildReference in .gmfmap.
>
> Your suggestion to use intermediate compartments is exactly what I'm doing
> now! And that works fine, using just Nodes was an alternative solution
> that I wanted to try. The problem with using Compartments is that by
> default they only support XYLayout and ListLayout with 1 column. I need
> other Layouts (preferably GridLayout).
>
> Here's a picture:
>
> http://img407.imageshack.us/img407/6127/scr65wj.gif
>
> I know, not your typical UML diagram :)
>
> Unfortunately I can't see your attachments (I'm using the Web interface to
> read this newsgroup and all I get is a column of text characters...). I
> appreciate your help though.
>
>
> Artem Tikhomirov wrote:
>
>> Guess, I do not understand your usecase and reason you need explicitly
>> defined child nodes if you merely use them as figures (iow, "All boxes
>> should have assigned nodes" makes me puzzled). As you .gmfmap screenshot
>> suggests, you expect to get Box1 with all nested nodes/figures using
>> Box1Creation tool. If all the nodes/figures are right there at the
>> creation time (moreover, they need GridLayoutData assigned), what's the
>> purpose of Rect2Node?
>
>> If your usecase is about creating Box2 inside Box1 on demand, than you
>> might need to tweak Box2's EditPart class, refreshBounds method.
>> Alternatively, you may use intermediate comparments for each child node
>> (layout constraints should be attached to compartment in this case).
>
>> I've just ran simple GMF sample similar to what you described (two nested
>> boxes, layout), see attached screenshots. The only change I had to made
>> was Rect2NodeEditPart#refreshBounds to enforce proper layout data (not
>> XYLayout's Rectangle which is default for shape-kind children). However,
>> I'm not sure this is what you are trying to achieve.
>
>
>> Artem
>
>
>> "exquisitus" <me@you.com> wrote in message
>> news:24278037413b9fd3217ceadca93b38bd$1@www.eclipse.org...
>>>I tried to put Rect2 outside Rect1 but that couses an error when running
>>> the generated code:
>>>
>>> http://img250.imageshack.us/img250/1705/scr43qz.gif
>>>
>>> And here's the .gmfmap:
>>>
>>> http://img201.imageshack.us/img201/7378/scr54wy.gif
>>>
>>> What I'm trying to do is to create a box that has more boxes inside
>>> arranged in GridLayout and I wan't to use just one tool to create that
>>> box
>>> with all boxes inside. All boxes should have assigned nodes.
>>>
>>> Maybe I will file a bug later.
>>>
>
>
>> begin 666 untitled2.png
>> MB5!.1PT*&@H````-24A$4@```>8```#'" ,```#[R@#:```#`%!,5$4`````
>> M`%4``*H``/`) ``)%4`)*H`)/`20``254`2:H`2?`;0``;54`;:H`;?`
>> MD@``DE4`DJH`DO`M@``ME4`MJH`MO`VP``VU4`VZH`V_`_P``_U4`_ZH`
>> M__D```D`%4D`*HD`/D) `D)%4D)*HD)/D20`D254D2:HD2?D;0`D;54D
>> M;:HD;?DD@`DDE4DDJHDDODM@`DME4DMJHDMODVP`DVU4DVZHDV_D_P`D
>> M_U4D_ZHD__])``!)`%5)`*I)`/])) !))%5))*I))/])20!)255)2:I)2?])
>> M;0!);55);:I);?])D@!)DE5)DJI)DO])M@!)ME5)MJI)MO])VP!)VU5)VZI )
>> MV_])_P!)_U5)_ZI)__]M``!M`%5M`*IM`/]M) !M)%5M)*IM)/]M20!M255M
>> M2:IM2?]M;0!M;55M;:IM;?]MD@!MDE5MDJIMDO]MM@!MME5MMJIMMO]MVP! M
>> MVU5MVZIMV_]M_P!M_U5M_ZIM__^2``"2`%62`*J2`/^2) "2)%62)*J2)/^2
>> M20"225622:J22?^2;0"2;562;:J2;?^2D@"2DE62DJJ2DO^2M@"2ME62MJJ2
>> MMO^2VP"2VU62VZJ2V_^2_P"2_U62_ZJ2__^V``"V`%6V`*JV`/^V) "V)%6V
>> M)*JV)/^V20"V256V2:JV2?^V;0"V;56V;:JV;?^VD@"VDE6VDJJVDO^VM@ "V
>> MME6VMJJVMO^VVP"VVU6VVZJVV_^V_P"V_U6V_ZJV___;``#;`%7;`*K;`/_;
>> M) #;)%7;)*K;)/_;20#;257;2:K;2?_;;0#;;57;;:K;;?_;D@#;DE7;DJK;
>> MDO_;M@#;ME7;MJK;MO_;VP#;VU7;VZK;V__;_P#;_U7;_ZK;____``#_`%7 _
>> M`*K_`/__) #_)%7_)*K_)/__20#_257_2:K_2?__;0#_;57_;:K_;?__D@#_
>> MDE7_DJK_DO__M@#_ME7_MJK_MO__VP#_VU7_VZK_V____P#__U7__ZK____ J
>> MFVXN````"7!(67,``!)T```2= '>9A]X```@`$E$051XG.U]W8X;R;%FW8P!
>> M[S/XUL9*P/%3>(!I`>H+O<4!EK5H"IYY"A*GJ1TV,'J)HP&<A <EZ#F=B,R^T
>> M+W$NQ@9<&]_W11;9W1P?6:+19)M9XD_]-E51$1D_7T1TY3+^!497^MX]F/=
>> M+;[Z[?-<;I^:@TYI=+_]U6^_^MU7S^_]5U^M:FEILM[+;5[3]>O'R&+WM;
>> ME).XQ4_^CL_NM[^SI__YO7[WVY=]C>6RQ!2*<?-+//@O__.#%GQ_)HMQ<T[Y
>> M7^3?UU=??ZW7;JNOEUJ#D=G&BY<?)HX_?WAJXAQM>?ER;?+*'N=_A7_Q:O+Q
>> M8K?QQ1468V=PLWU]]>+5?TX?IS_^<?GG/W^X>OGJI5Z3;7^IU]2VO7IIE]IM
>> M?[CO_IY?>NV=4NO3[S2_NO*!LZ^NL*Z_:>6)=B37/E7C.9K]*^9NV/AB9
>> M7UV_M.46F_[/,AF=7[ZV#:^GZU?3J]]/KU_]_M6_O;JVKZ]^?X77].H5CGQ
>> MOWC8-??QL'_[;U_[5[O67WOXLHM.>W_C4UZO[']Z]?*UO7_SOJ5+2_ S2%A
>> M;GKN[R5<O6A+1U?O_CZZ@]7T_],L20C[7=D:OKU50_?OS^)DX?;VW#:[M-
>> MD]%X>J7OU]-K.P;'X5O[KA>VV'';E_]C+_WVK_:+QQOA_Q^[V]RNL%'N@K
>> MOKUZ_=(>INME@2GQ_!?[ETJR?UJTI5Q]`Z)_?:6#C,P8_S']]:?X_2).?[U]
>> M]5J;[(;9^^^O*0M>^?K4WD$B'F5/VGK-1Z+U_O[YJO<6[]_M7:YW=#6W<GS
>> MAFG_@CIQ_[P_2&S]P5>O%B6-MM1GOMC4-)8::XGV?30R!R-V+K_%O?BF&/T'
>> M8V@G^ICO/FC<?/'^A_M9E_[K78"3?<^?*=_3O,Y#_;MG[7[F#[[CF8'X;=
>> M97<'3?L'-R+?H_,+ZB#SZA*/<4FP*9[SJ]:40.V<C-;V,H4KV#MGZZ#Z+_C
>> MYM5/Z^^#D?FOTZK?(D]8NX1[)?)?)B#S^O'UQMCUSW#WUT[OWKWR?SU3XS
>> MV__)'G2(,)@4S_95H56/)>98(X5VSL;*)65,S:9G&_W+4$K7]]=]O[S]Z >:/
>> M$-KUXVW_IL>VZW[J];;LW[A@GOKK"8=+B,(GSMO?<R,.OEY>M/ZGA]+6_Q8
>> M?MJZO;_IY-L`[^WP4W7.H4[_!B_UGSBTE^[8WKFKZZ7$+?'*&"X+$/ >/B?
>> MX6?*E-T%BA9I;0M9&/1/=M (LG=OELOEFWX5Q<U3N;7[@VUXM_)WNTFVX*[
>> M;.M:<L;[,>6::ES;(=][7G,FXE[K]]<^[%O/GFFE=;^F&3;2;]&? >X,5-
>> MNNP;_SLX1I_7;][,)_*<'CMYVILWX.4_X.T%5NU7+^PVX/&F1I+E]GM^GY&4
>> M+)#=$=[=7'/*)L=(_)%**$(7(M_JIYOOX_>W:=ZN^26:[[W)*D3T^X=;O?U
>> MM&SD%1GL[0T.NO:-V/0:]6_MW.6.F<I:O?M%(W>GR<<,CTXM_=+\2^/7'S
>> M@$&U?/,UWGFAY=(DU@BA%I+?DN?W&8LX>2QP:6:H8.#BPDDZ@/HI!6/R;OG6
>> MEN7B8US<;'L8UUQ`S?R;;*W:?+/Y5O]PQ:[X_[)+=HSX<NDT2EMZ>U<A
>> MN=].TXY2^/Z_<;WEWB%MQ[Q!5WV[]VN6?EYO[U^_('VOOOD:V^S8-1[CQ* <^
>> MTL2,S^X3=#2]"W*YFH8-'=NT;INIQ-_9:#W2H@*9[=:M:HTQ_O13_;C ZK*]
>> M
>
|
|
|
Goto Forum:
Current Time: Thu May 08 03:57:40 EDT 2025
Powered by FUDForum. Page generated in 0.06434 seconds
|