Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » GMF (Graphical Modeling Framework) » DnD between view and GMF editor
DnD between view and GMF editor [message #222375] Mon, 23 March 2009 16:00 Go to next message
Esteban Dugueperoux is currently offline Esteban DugueperouxFriend
Messages: 472
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------020208090209020400080902
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

I have a view (ViewPart) containing a tree of "AbstractCategory" objects
and a GMF diagram editor generated from the attached ecore metamodel.

I try by drag'n drop to add "MDAProject" object from my tree-based view
to my GMF editor.

Then in createPartControl method of my view I have writen:


int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance() };
viewer.addDragSupport(dndOperations, transfers, new
ViewerDragAdapter(viewer));

and in my GMF Editor I have written the initializeGraphicalViewer()
method (see MdaDiagramEditor attached file).

At the drop step, I can fetch the selected "MDAProject" objects but I
can't add them to model.

I don't understand why I can add any object conform to metamodel with
the TransactionalEditingDomain.

Someone has ideas?

Thanks in advance.

--------------020208090209020400080902
Content-Type: image/gif;
name="mda.gif"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="mda.gif"

R0lGODlhAwSwAff/AP///wAAAPj50XWGyCo3Z4NvN35sOHlqOnRoPHBlPW1k P7K84IKGgff4
1mpiP4KFgfj51vj41nFmPHFmPX1rOX1sOYpyNZV4MZ18L3JmPZt7MJd4MJN3 Mo51NIlyNqGY
bKCYbD9ffwAAgD8/X6bK8H+fvxk/dl9/n//78AAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAwSwAQAI/gABCBxIsKDB gwgTKlzIsKHD
hxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bN mzhz6tzJs6fP
n0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZ s2jTql3Ltq3b
t3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AVBphMubLl y5gza97MubPn
z6BDiw4QubTp06gVBxDAurXr17Bjy55Nu7bt27hz69ZNOrXv38CDw129u7jx 48iTK6/dW7jz
59CjWyW+vLpr6taza7fdXLr37+DD/vPEvj05+eu0z5dfL7u7+Pfw48sXqZ59 /fP1BeTXr/w+
+/SIjSbggAQWCNphBiao4IIFzuegRvtlN1lsE7JmmYWUYThhZRpWyN9qGXZ4 nXoe/nddgCam
qGJ7CK7o4osnPihjRREuV2JrJWKHn4UU8sgfjx6CiN6IFNZonXuDGfkaBkw2 2SSMUL6GZGDU
OWlllFgiN+WMXC6kpHE3YgibjmP6KKWZQv4I5JBSkvillijuhkFsc2YJ5ZZ/ VUnnbm/aKWGX
gDrUZ3Fh6kcmjh0SR92FaqZJ5mVtFukinnkWp0Fsl7YZIm+Jcorbm5T2RV2m r5E626HMaTli
oYjaF+ir/pKtWGiFjw6pqK2I3ppre27CGKqoxW3QQAMQQBCBsRuU2Wpuupqp HagtsiYsscYi
yxyq6alqKJvKrvcrrFwOqm2Zi6a57Y/lOrsoeof6d2ecunHwAQj01stBt41u yqGhm3547r7/
6pshwMxFK4C89dqb7boCK8ohrQ2DOHCREG8YscO0bsswuBwTJK59G2qYL78j 5xuxn6fCm1sH
sbF8Zqu1wqzuuWo2WrO5y972rV7Uufyazz2mu6aPDrdXM9HcIb3r0uiui27H UH+M8qc5T/2p
yrh5EJvWmgbJLq78Zpwzw1+/fLVh1HH9mtrKOo1u26ce/Xaqc9ftr9JK7wy1 /nxSW51t1X4X
bHBuBQxb7LERFAD32DfjzfiyEj+ML3cGF04t4or36DjGupJ34Y5yd9q05Ezf zbTee8PXd+Ca
O8s6gIPjZgADD9RuuwHdum363KDPPDS3rgteGHWz2347xSFiyzu3ODv+eLOM x3x66uCu/vr1
5mF92wGxcW+23Th3ji+q4csNLdqtef+a+syjaTb06YKeY8nNhiym057rSD2s 1mPvP5/asw0C
YjPA742uXDkKU/7mFzYcCexsw2tNAV8zwapFLkgJXGDFhMYoRgVMR8lL3uRQ R6P9NaZ//0sh
5WJ3mwQYrloRSMDrUDgmg7nwcsaSoQptxCwpWeRX/qQJoglVs8MieiuAtVGA A5bIRAcoYIau
Qh9rlNjEJT7RiMf5En4oQpmGdHGIiaGhiQZAgNYQYACEwqKFkKjGMYnRh1Js o436RTc4cpEh
QiQhGO/yxvWQUQBkROMZ3bgv6BVRj3ZhkCIXyUhE0qWRkIxkgn4oqD2GUYV/ FAABNsmaQQLP
gDt05CPliDJRyqWPpIRTCS2ZGlRu54+B1CQaQck7Ol7PlKdMpZ1wORxdWs2U vGSlX1y5nQWU
sZMLaB2ulDdDNvrSRMF0CzGfCcGJRFOYe5mmdTL3Gm46sJC/C13grtkWbVKz hnE8Z5SA6bGB
kBObbzHncopnvAfgjpa3/oLU/965Fnmqc43p/OeLHGkZgTSHn/Bkiz+Tw770 TQ5pC7WRM1Oo
Tw+6C4ABbY2VnDTODgLsoqpMqOp2WEEJPvRtzGQdQtMS0WeNMHjZyyhrLhAb mvqtd857lkjj
01Lj3PBwOTxp52zZTBayZqNPOtPJgFQ0ESkzeG4aWD5JJjocGVUAFohNVpWK Qa9B7JsghSry
JLami8GunTuNTk+LQ8UqXlGgdoxgTecaKbEGLJwkeqi75udV4K30LPWpwAsR VwE3Aq6pGUsp
TmHaNHaRDXAxMuhf01opuKpzsmapz1Zfs9nHgc1mKR0r5/Cn1LK5DrNkqU8G qrjEDIxvcaD9
/iSvCvnR0zYutACdDGW9s1bLHvGqgsVhBAr7vdG6j6kE+9vfDFk+5aF2LKtr Fzjdp8+k0Y25
t5UtWCXJ3e5694u7FZRvz/lc6Mpmtax1bXEbZ7Nw9vC6tpXe0coblhqZQLm7 q1/p3rvc+JpW
nLmlL1oE/KrvGvjA3p2odX8ntthCdrHzdV5zHRjXJNXGBPeN2+n0i9enmu9l 2JUeqwAq2ROG
9yG9Ha9Or8rf0dUNf0Q1n0f7RcfykcxzLG5Nho0GM/u5jXM8XlUIaXwjG08s ZQXRrWpOLF4V
+5LAX0mxEXEs09fs2MkaZtEqEYIkKAPFy12SMmOxLFswc0XMoayw/mAihOEr k5mWVt0yWrus
FjPPSFxi7C0Ka1RRmNpZK2jGXnL1k+M3zzZC7EwInVnKZC+eFMD9GRecd4nf OFfZ0GAqNKaz
GJHKACCISv60QSX7RfCK5c8PAqGkxNTA9n5UhK2mqqxpRqRTAdnVRL11mYk2 sAAh+NeNRBCw
hw1JiLgn1L1Jtqjduexm17fReGR1XT9prh1BuNrtpbBhg3w6vbL3wXhFNVYC rUZxT2fT5UHd
sec86u4IEbDQ9tKsworSoHnbc9daNSinem+/djDcCkb3CuUq8CMZO8nsFrW7 SV0Wc/NN2rW2
FTgRaD+JD/mb25522ya+XXL5VXMXNDVh/siNRYdTheSkVDfCmb3sd48araeO d6y0rXEjg+/D
zn1frxa2TN/9F99wo/KlC64zTRP9U6OBecvb7U6XmxwmT38PhKlL8x83z3QV x7Y4jVTtH2v7
sXkD+c2iLhWUH9LoRx+4oLrbFbKHB88i092Rpzv3rh4p7mPzcY+9Frqhbijg aUcnwQPP6Zqw
HSduBw/cqWl2Na+Z8BgdPOQjf5WkmyTx31n8MxsfWclP/qwj/3ym63wSzPOW 2KhP/YHQ/nnT
M4XzJe9n6WVO+3GLvuhDvz2FZH/52vv+5KoPvmiELfziD5/0vf+98stp5lAv n5LCoa/rn099
lFymJZ6uvjWd/iN97Xv/zNd3SUG/70Vn+6b75E8/8MOPffar3yAu/w3630// pmAG6u6vf7On
3/bZ6///R5EZ+Dd+AHhQwTF/AJiAQXF/McGA+rdu8ud/CjiBPSGADZh/7weB 5yeBFNiBiJd9
NIGB6qeBqCFg/OeB/+d8H6iCI3gQJzhu1oeCMjgTLJgTIpd+U/KClReDM9iD 2DcUOqh4itZK
POiDRsiBC0h/eBKEJ1eER/iEIcGESud9oSKFUWGCUJiFH2GFU1h9nlGCTqiF Ygh9ScGFahV9
YTiGaohiZgh/9deGU4GFaziHlfQUcHiAaIiEdLiHKwcVdxiBeKiHfMiHf8hl GZiH/sk3iIpY
iEOIg4hYEoyoiNWzg+QXifaXhpI4hpYoGZX4iCSxiZkoIzXYhFToiSMBiqE4 H6iIR6UYiImY
ilC4iuXnhaZIH7CYhbI4i9SXi0Yhh7dohLyoi8sXjEThi784g8QojL+XjEJh jMcIbUvYacyo
jLU3jV+Gic8YXtGIYsgHIdRjjT/hjNl4YttIjZm1EVtCgOZoiIwBjj4hjuM4 iUqGbOA1fiCY
bKNofoyWEenYhfxoYq4IifGYOvOobAt3kOxmgG4oTV7yafjYdKVWau0EaqR2 UPhIj7rlaTdI
JbUYhQO5NwqpcBM5kiwXfwsZT5LxkCLJciTZbiG5f85m/pJL93IjF5AC+ZEd E5Lxt5MOmX0X
mWTuKGd9aIALh3D2qHRE2ZIluWTAQWBBiZMwSJM8iZAnKZWJxI4wWZQFtWg0 mZVbeZIbCRhP
qRNOCZUco5MxuX88uZIzeZVgyWxUyXR9mJZy2YVcmSQ2+YlmOYlW2ZMW+W73 yHD6+EhvWZcZ
2XT6WJRWGZdL2ZVrlpenuJe0mE1DWZKH2ZNsyZIVOWf12JmYiTaQaYuSOYyi IhNjOR6h6ZGj
uYx50oDPcZqIlxKwuZqA9kOz2RF2lo9kaXy82Zu+uRlCqZe0mWqsKJPryBe3 eZyseUfYOJyZ
p5sQuX3DExfJmReiVJbOqYrF/jmYnIggw9GJzCmI2SmEyomVwgkW1Wmekymd 4jmevAUSwQRE
mdl/5QSe7PmK7vl2HgGdXsSfn4meDPl91ymb+ak6uMkR8mmcftidvNeK93mT BaqfLIlI77Qz
d5ig3Jmh0GWfEoGdEXp6EumY5slPwRiWQFmFmrmhAhqckfmhBJmi3hiVnKig jdlwHNppBOqi
UQOjMUqJrDiLyZmefMSi3IijOpqTIoqOMLeJJKqhZ3ajB0ekDHqkBeaQ8OmT PFqGEGKQ57ii
Q9iZ82ilfumSF6lyVMo/FmmdCEqRNuqlXPaSVopsE6mQeiSkZ6oUIkiYE0oj JvqkbuqCU3iZ
XbmW/nV6p17xm4jqn3GIpUl6oon6qJCqegE6ohW5k19Zo0VqqFsBe/uEF5yq eyk3qYAKl4ip
mJqpbEaqqYBmIkjFJE/mqerUqnUCqpMiqlUJmIKallrZoaq6qay6JxKSZSuW SLEKrLQqK7bq
qH85n4wqlWbaq7b3H6bSGtNKa9bKbZMWU8R6TtUqANVaZCE3PoNWaeQaqvXZ iKPanNDqhyYy
LUAVAcmicdfqYZAlUXNZTurkrjAUrxF3Px/nWS7FeMnqj40qmut6bv+BMAkD AvdSWkPzakOm
O3+CmNSpTgqbMA1rWkICdFj3NRv0dSczruU2sFnqpFt4sJVnIkDTGivb/rET VjqGZHBimkvn
1LIC0LLY1jxg9yhyB7MfJrDnyqs5irInZyJs0xpHW2/5lV0yk26RCqnqlLQC kLT8prPH9W+e
9bLa1UZ2SrA/qq5EuxTTZDnv6k0Q1WE8O13boZI0S01kC0Nmq7RW62qvBTlh U3H1yrUk+7Xt
GbZiayL0ZDz3xCZgt7R5lW4e07UuqE6Bezzvs1/G9bM+d3VTJ0eKW7ANObR+ y67/0VCs4ble
J2I2h7hA2Uvn5LkCALp22y4O2z6r+19jNrJBm6p9u7lIMU0lxRq5e7gQe0B5 q6118am6kbsC
sLtBU1uwO1805lSxNmJTtreZC7a224sm8lMw/qRDqXS5XqJO1os42HtT6Ka9 BKUS2rua09RW
TfRW5uq1dZiy54S+TKS+vxS+0Dul+Dm9f3usu3eg0aq/RyK8v6VQ4Vm7+FuM T2t8bghqBhmm
cNlFfVqGBxzBEsxd9YuuBFzAzei/gtfAHFyXMwmn9qfBIoxkAvygEIrBeDrC lkaqLOzBqMqL
AKzCglbB6nnCKHy7MkxoRqmUhBqdZZfDOSy+A3y/N1wUMaxSCczDdHmXTnHE QHxTNJyuF1zE
FRjESdzCbMnAIPx6AhVj5ea8zzu7USq9VFzFKTdjfPdowoPFCoyRavmfnAsb shqsVDNr2cod
IoutyzViTqx23Ui7/kRcxguYvS8FaYSSqQ0nGzb1GovsK7/bN7hlHo/8T0Js wucpyMUoG3PM
VRSXK00Va/smVA8zVWbVedGbyFqVypzMVMz7sSJCOpHzyjGGUxura67cQLBM VaMMxp0qxogc
yJj8jopMVxEnP4j1bdT2aJ/8IYUrdHybWrIRXO9KXMVMM+TDtIQrbeIDbuuV xg7mXrjWtJHc
yyUstGQczIgnG53VGuuMzHjTzEhHW/riXz5rynOhWqzlAOrVPtgCz70DP5sT zw32bVprt+wF
0JYbxVUJzOi8E4E1WMZCzc+jtgzjQXWkYSH2c473y2cWafVMXZ+TO76D0AsG sBVNOtl8/tA+
J7vlDMg23NDCHBvoVUX7HD2fVbgtxmMZ/dEkxr5MF5T2hV82RnWhHNA3pzN1 S9TJbNQkzdIN
Osalp6gwTYMezWActrTeZkDb7LNCs8JwrGhSfYUX5mbd7LqGK9Iq7c52Zdbf vDtXCzbj7D+V
DMggaL9rV76SGV0W92J7R28VRTA1dtB4q8P3Cqg0irC0QdZCxlzL27xmxbrM W9T+xkAQS3Gj
C8pO/ceIbKrwF9aVOtXh6L/OXLKF7asXVq5ITV76O9dQzdlSfNeeDdrYJ9qO h9dshmHC6imM
t9oKjZQ+bbLKGtuyTb6gOmg5aLqShnTk1cdYwto/yqWkjbku/pinw03VMnzc 8fTEKuzcmQvd
0g3ciauO1W0TExx8UrzF6KndI8zdDQmYv12ndT3e5G3F4c3A4J0VzK3eWcLe M9qWbUmCsI3X
ZpnfpQSrqu0t+s3fKelu9Tih8Y1Hwi3fpUff2yrHrUrHqd1nhpweWEvg49Tb ghnVAj7gFB68
wwwbjTxQsSs1++HhUOzL5QmfEk6WJf7dqAwb7YxV5JJYttzjFpNrvMYqU+d3 Lt7c0ljeSC58
M46gJR7hhxrNED1cGUdWk4vNTQtiai25Pfe7t0dCRf7EIx6L9O3kUXZe+VzT M9PPXL1xdJfl
onW2XC56Xj41m6zfWrbk/BjESW58/lWN1SCN0le+TBZdrvk06LxtbHRurHa+ wXj+Q2Me5p9m
G4pt01mr5TmltHwidl++S502Nd36rflzt3rlxRu+vo3u6NeduG0rG7gtrEPd 1pTrZx2W1Vge
163X6Sijr4jDrzTnrxa0XnpMXqeOEXtObJ2N3LMx6aKjQRbXySKzOCI75EG+ 6b6C635ysQrT
uhv7uBILVrLcVa5MVt1e7cM+iEGd2zm96HJt7XZiszgbWxyrdf1l5c3ldZxe 7oQ41sr+MdSu
wXOOMlJLtQ8bYXQLX/Ru5W69TvgOHV5uh32u3OoeSuyeJW+LOUHnXhx2H3QX 0muevO9iTcUe
8iK/50PU/vBNHPG0+u9+0ri1M7gG7daRe7hhV9aQW+rQxEUon/O1Gi4hSqYZ ad8K58Bkbt06
f+uIjjKoq7pKbTc3x0FpTmHyFbs736FFX/VRJIpK3HJJ2Zjo/WVWP3kqbyfE a7w7Ps+E2zAj
07u3VrnkTvWL3u/0e2dZj6ou/HKFCPdfD7yOhjLdG1RTlu4Kb03qnh8tnvd+ rJ1sbPdz78MB
qMkXfnd1jBnQlMf0qtPVBbQoNjXwa0UlV8cFLvgpr8eEj9qAb/OBB+kOvfi6 mnC/PR4nzsjN
fceQL/VZJPsJffRATPm2ryIEVdw7J+qttsuR6y9LBXG9Xtzh0pJarPwvHN1m /ozjquxYhd7K
Pn5BlR7Lkb3UZdXj1P/jPbv9zn5LRz7y5E/BoN96v6/WMbs8rDzrx2/8ch5m YKqWBOjApTr0
pgnlwiXR2mzN2QwQAQQMFCBQIMGBBwkqLLiwoEKDCBk6RNjQYQCIEi9qnGiR YsKLGRl2rFjS
5EmUKSUCYNnS5UuWJFXOpFnT5k2cOXXu5JkQ5s+fMnsOJdoTo8mjFUeWPEiy 6UaPDZcydSq0
6FWsNwMA5drV61ewYcWOJVvW7FmvW9GuZdu2pcwMDuTOdZCBKUeNHyNCzfsR 5FO+UVNiJAzS
r0i8ShUnXjo1a1G1Yq0+plzZ8uWdkclOxtyZZ1Kl/o4tEk4KkbRhqailkp4I WiJnz7Ezu6Vd
2/Zt3LY15+ZdG/bgxKpFshYsuPVojsRpdhQ9/DTzxVAbK5dtc/fX39W1b+eO 8nrY7N3FP0QK
+G9e88jPR91Ltfx4+Fp7z6df337Z7/f1d+VsAnhgx9rzSzXj1FsPJ+gOC4zA AhkLLr7BNoNw
Qgplyw+7CjNk8MCjTDPMQ/YUnEqm8DTU7sL9UlRxRRZbbGsyE/zz7sEAQ0xw QI8a62tHBpsD
sLjjotMRxwlRDMpEJJOczawSleyusKY6XMggKRMyj7rTnNRyJRe79PJLMLvs b7AsWyuMoiwf
Am3Nu6w8U00S2+QxzdHe/kyTTSHvfFNDI2FqcktA4esTqD8DNVSvQxPlMkxG G3X0UbTGnFGn
Qk/KSNCsLk10UJcqVfTTyjj1E1RSJ92w1CRFhXRVVltdEcYYTUUQK9GepJXH QFUFwFNUe10S
P199rTVYE3V19Vhkk3WL1yZdI2rY6pwdCtotdeWVWGxVMjambLv1tsJtlRV3 XHKP/PbcQ61F
d91fJWT3XXgfC7dceus9ljV889V3X3779fdfgAMWeGCCCzb44HzdjXdhS8+6 lmGI0Z3XXoor
DvPhiDPOyVqEO/b4Y5BDFrlfhzU2+eSFLFZ55WQxRvllpBSGmd1wXfZ2AAII ImCAaqWdeVGW
/oMW+uKfi4ZMZqO9rTnpgXAWAGeed6Zqz5myi1Iom2keemuuW8yaaY3VBVvp kpN2WgAC0h5I
6h2/zvG/sYHuem66eZssBBFCiHs5t2+lTOy9iV2aaaehRpvn6FIrzc6rTesQ yr8Wf9xnmCeu
+3LMXxJKhBECICGAEUQwakqq/7aUWr/Dw9fNae201DqmkC4Jb70zk/N23BvM fV2sy2Z6gZzX
XgCp5BQ8MDUhrURTOKYtz/z5uoUaoQQSSKB+hNF1PxF1yHCVNfGN0Xs29rE2 7/zz0CmVs0zi
gWzb+91rGql0+P0mH1imCzBJ/9DO9PF4AaEmPYDhnsmcBz0Ebk0m/iHw3AkC cIISBKB2/ZNc
40jkP/+piXRPKY2bOIgm1y1ug6R7X/vq1zgBerBHqwGRniY3EtkRZHrVu576 FjOk1yWvhNr6
jPFMeBmn+M5oBmDAA4x4RAPk7n8shJwOR8S8pB0wgVNcmUxEUL0AoCAAJSiB 6BInIAL+0Eaa
CgmNkOc+8qQRjG9DI/iKg6P2QEeOmlrjjVJWvpMwkAQOhKAEy7OmMj2HeK6r EyE5pEHWwYlK
KlQhdSjYSMZhsINVYqNShFi0A5gkk25cYgDbOMAP1e9kUqRiKe21wC3yMYIT FJH4PJgeG+Eq
gHUM5Q0RhUM4ys+RCfLkGX8EwDbeUTIn/rni57TIRS/OCJe9xNMHlxccNl0q Sq/jZdVqCczp
IAqOl/wZAkziTU7ukJZOdGUBw2ZKdCZQetbj4gmwdzsqsW+QFKRkIevpyzja 80ohCSQZTxU/
fXJIkIqp0ers6BM8moSBJVClH4GzzDc+EZ9QNJAvr3mXavKwouM8nkWZw82Z JaABDYAABCJg
0gQo8ZEgBGRL63kl+lUunTPNnPm2CLpkvs8p1Aznj46Dw4hI9G1WgeUbxWhG 5OESmB0NJkKH
eZIRsJOh75zaS2MJz1AKlY0jaiY90XjBDCqSox7VnlNjCDMF0GUuCrBf4EJF U7jS7W55M5VV
K0pWn06pQMuM/uM+sflM7x0UmnTUa4gMO1HBAq4knLtp+rAK0Z0+c43skSeB wthKW2L1rlft
6Czvd1a3Tiu0liFlXE3rqGs1kU4vdBwKDQu5IFVWjVUiLJxI6ENOEieSldRg azfIVZcW1qxg
mSsr85SjvjJPosnlLWIl25d78pa5oPSQUptaEJCONjN9G21pT/vdL9mMu6Uy J5+MAlrr0Fa9
fe3gc3sL2Mjt9rYkdO1sW4pc27LOtQcNIpO0+18neRe8A2aReJv3TyV5SrHk /ZbV3IhdJo1M
whOmcIUtfGEMg4zAG6ZXamNaufGGilno3ZTS5PdgCOMPwCvOkIA5/GL6ZFjG M6Zx/o0rTOIS
C+vDmo2Zf1n84yLBWMhDJrLKbHxkJCf5X9k9EZDjRj8XF1nKU6ZylYX8JwOf K8S2AyKdrHli
RB5VblYmc5nNfOYhCxbB2bMhQJ28HFH2EMFERXOd7XxnPFNxfu9RXn6lGUkC yjfMaQwNmSpY
RkIXj9D1fc0kg8vCEUK6R4BGtLR0dOg+uzCee4knJNeUZ1CHWtSjrtc03RNO f1rUfYixbFXE
yNVMn7q9/FU0YlO9yItytk6x1ikZWc3UP7v3Q6QmdrGNfWyv+Yxy1dxpYst6 6kLPyZXNrWRR
g/TXXyL12hOttlcPO9QHpfC1UIwyss19bnSH2tTRRg/7/lrrSQsmctB9Zre0 AXtrbcZbp8kZ
6If6fdfpVNafdiyobtdHbnKnW+ELZ3jD9wxtbnM63NweEIjqDT6h4lvck8Us sM2oVV1r89md
vK40y4mehqdc5StXd/x+jSf8ylGvLz/VZLbtVwPVdrrK/fhgx73Rn291hT4c 68ZPjiaWJ13p
S5cylvV7mPUGmtP3fZYka5vzfD8duRX07WulhCUBUlrc6uHvnuqr6cl2PcVM Z3vb3Z5Op7/5
e2yu1nbK/Xa8513vjYq73MXMZUBt2ZJ7J3zhDd9hJSde8YtnvJIP/3jIR17y k6d85S1/ecxn
XvOb53znPf950Ide9KMnfelN/n961Kde9atnfetd/3rYx172s6d97W1/e9zn Xve7533vff97
4Adf+MMnfvGNf3zkJ1/5y2d+853/fOhHX/rTp371rX997Gdf+9vnfve9/33w h1/84yd/+c1/
fvSnX/3rZ3/73f9++Mdf/vOnf/3tf3/851//++d///3/fwAMQAEcQAIsQAM8 QARMQAVcQAZs
QAd8QAiMQAmcQAqsQAu8QAzMQA3cQA7sQA/8QBAMQREcQRIsQRM8QRRMQRVc QRZsQRd8QRiM
QRmcQRqsQRu8QRzMQR3cQR7sQR/8QSAMQiEcQiIsQiM8QiRMQiVcQiZsQid8 QiiMQimcQiqs
Qiu8/kIszEIt3EIu7EIv/EIwDEMxHEMyLEMzPEM0TEM1XEM2bEM3fEM4jEM5 nEM6rEM7vEM8
zEM93EM+7EM//ENADERBHERCLERDPERETERFXERGbERHfERIjERJnERKrERL vERMzERN3ERO
7ERP/ERQDEVRHEVSLEVTPEVUTEVVXEVWbEVXfEVYjEVZnEVarEVbvEVczEVd 3EVe7EVf/EVg
DEZhHEZiLEZjPEZkTEZlXEZmbEZnfEZojEZpnEZqrEZrvEZszEZt3EZu7EZv /EZwDEdxHEdy
LEdzPEd0TEd1XEd2bEd3fEd4jEd5nEd6rEd7vEd8zEd93Ed+7Ed//EeA/gxI gRxIgixIgzxI
hExIhVxIhmxIhzSzxotIfnnIJRS8YLk7ikRBixSWjEzCjewVjOzIEvxI01mz oxFJI4wsN7OV
NkOx4ULJIDQTPvMzRHoiEWIkXOunqXO0h7s4YYJJIbS41+i1X7rJOooTcEM0 43C1wQPKoEw0
4eq4iLulibs3XWPKegtJp/xAoYxKg9K2WzK4Rmsv56o4rPzJrfRBmZS1x5q2 X8OtfYIoehvK
HkvLH1RJguo5XkvKpVKjvIIvUdJKu9xALAsrf5O4jTNMrSOP/YozbRnMuwwt wYRMDCRJ8qLM
HrRMUplMzKxAzQQVzuzMCfzMTwlN0YxA0lQU/tM8zQcskbM5nHhZTdZswPAo HKlhm7FUHdgR
K+6SzdlcwOw4m7QJHtykqExxSVr5TRuszZwxnOLkOUyzL9+6E+iStPyqGuWs wRIBHp0Znsfy
tb+0txSKJsdcu+yEQbdRDpKzrm1LKqR6zPOUwRKRiwmoAAu4AAw4qvUUS/Fc j4DbMbSMzxZM
Tx7jy1ySNuraGAGNwfl0gPq8z/xUKaILuZGTStjwzQUdQALFOLNjpOuEOb3Q NPnJ0Bds0AfF
z+O0n4fBUBIFwNRcSa0oT+xsURZ80agcHyJRUBpdQYnsUXzZUR6VTCBVQRs1 FBYdUv0r0lxB
Uo0UUiY1QSUNvCeF/tJ0yVHMONIprb8ohbPxwNIsnT8Ps7r4irScFNPGBFAd /dIQFAq5kAAK
gNAfOkqfQsq3xDWjahc19UA2dVD7RNG2DE9Vs0q5vAovzdP3YxZ+a6L4UtRX Gs/3PElD1VPR
WhAK/Z86/bZniVSunFTG1Mu+JMuxEi9NldTW2UlQoslGizmclNERHVUOzLIG c9VXTdFYlVUN
DNMtfStbzcBcDbBd5VUn/VUL7NUEE9YL7FU05Y5CNdbxSy1aLck7jRBmpUBn bSt5mZZppdZS
fZxVla/nyCBHozedtKcxbcpshcA9dVM4bZ9lWzShGyO6JEtBrbXWOFcJ3NMT jdA2wZpKg+W5
6hy6S62VZbXX7qtWM2HUq4Evz0pMwwxVcyVYBjTYfau4i1pYA43LRzVPiFVA iQ1RzrqszqLK
vXTYMdtYBFxRZ4GtdqMjxey291Kexqw4k6XNYJ3ZBCTWVLFZ4KxZnTVAH/1Z jOhZoR1aoi1a
oz1apE1apV1apm1ap31aqI3aKwwIADs=
--------------020208090209020400080902
Content-Type: text/plain;
name="MdaDiagramEditor.java"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="MdaDiagramEditor.java"

package com.miasoftware.miastudio.model.mda.diagram.part;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.emf.common.command.Command;
import org.eclipse.emf.common.ui.URIEditorInput;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.edit.command.AddCommand;
import org.eclipse.emf.edit.command.CommandParameter;
import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
import org.eclipse.emf.query.conditions.eobjects.EObjectInstanceCon dition;
import org.eclipse.emf.query.statements.FROM;
import org.eclipse.emf.query.statements.SELECT;
import org.eclipse.emf.query.statements.WHERE;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
import org.eclipse.gef.palette.PaletteRoot;
import org.eclipse.gmf.runtime.common.ui.services.marker.MarkerNavi gationService;
import org.eclipse.gmf.runtime.diagram.core.preferences.Preferences Hint;
import org.eclipse.gmf.runtime.diagram.ui.actions.ActionIds;
import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramDropTargetLi stener;
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document .IDiagramDocument;
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document .IDocument;
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document .IDocumentProvider;
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.parts.Di agramDocumentEditor;
import org.eclipse.gmf.runtime.notation.Diagram;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.dialogs.IMessageProvider;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.util.TransferDropTargetListener;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.window.Window;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.dnd.DropTargetEvent;
import org.eclipse.swt.dnd.TransferData;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorMatchingStrategy;
import org.eclipse.ui.IEditorReference;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.dialogs.SaveAsDialog;
import org.eclipse.ui.ide.IGotoMarker;
import org.eclipse.ui.navigator.resources.ProjectExplorer;
import org.eclipse.ui.part.FileEditorInput;
import org.eclipse.ui.part.IShowInTargetList;
import org.eclipse.ui.part.ShowInContext;

import com.miasoftware.miastudio.model.mda.AbstractCategory;
import com.miasoftware.miastudio.model.mda.MDACategory;
import com.miasoftware.miastudio.model.mda.MDAProject;
import com.miasoftware.miastudio.model.mda.MdaPackage;
import com.miasoftware.miastudio.model.mda.diagram.navigator.MdaNav igatorItem;

/**
* @generated
*/
public class MdaDiagramEditor extends DiagramDocumentEditor implements
IGotoMarker {

private static final String EDITING_DOMAIN_ID = "org.eclipse.gmf.examples.runtime.diagram.logicEditingDomain "; //$NON-NLS-1$
private static final List SUPPORTED_DRAG_DROP_ECLASSES = new ArrayList();
static {
SUPPORTED_DRAG_DROP_ECLASSES.add(MdaPackage.eINSTANCE.getMDA Project());
// SUPPORTED_DRAG_DROP_ECLASSES.add(SemanticPackage.eINSTANCE.g etAndGate());
}

/**
* @generated
*/
public static final String ID = " com.miasoftware.miastudio.model.mda.diagram.part.MdaDiagramE ditorID "; //$NON-NLS-1$

/**
* @generated
*/
public static final String CONTEXT_ID = " com.miasoftware.miastudio.model.mda.diagram.ui.diagramContex t "; //$NON-NLS-1$

/**
* @generated
*/
public MdaDiagramEditor() {
super(true);
// getDiagramGraphicalViewer().addDragSourceListener(new TransferDragSourceListener(){
//
// public Transfer getTransfer() {
// return null;
// }
//
// public void dragFinished(DragSourceEvent event) {
//
// }
//
// public void dragSetData(DragSourceEvent event) {
//
// }
//
// public void dragStart(DragSourceEvent event) {
//
// }
//
// });
// getDiagramGraphicalViewer().add
// getDiagramGraphicalViewer().addDropTargetListener(new TransferDropTargetListener(){
//
// public Transfer getTransfer() {
// System.out.println("MdadiagramEditor.getTransfer");
// return MySimpleObjectTransfer.getInstance();
// }
//
// public boolean isEnabled(DropTargetEvent event) {
// System.out.println("MdadiagramEditor.isEnabled");
// return false;
// }
//
// public void dragEnter(DropTargetEvent event) {
// System.out.println("MdadiagramEditor.dragEnter");
//
// }
//
// public void dragLeave(DropTargetEvent event) {
// System.out.println("MdadiagramEditor.dragLeave");
// }
//
// public void dragOperationChanged(DropTargetEvent event) {
// System.out.println("MdadiagramEditor.dragOperationChanged");
// }
//
// public void dragOver(DropTargetEvent event) {
// System.out.println("MdadiagramEditor.dragOver");
// }
//
// public void drop(DropTargetEvent event) {
// System.out.println("MdadiagramEditor.drop");
// }
//
// public void dropAccept(DropTargetEvent event) {
// System.out.println("MdadiagramEditor.dropAccept");
// }
//
// });
}

protected void initializeGraphicalViewer() {
super.initializeGraphicalViewer();
getDiagramGraphicalViewer().addDropTargetListener(
(TransferDropTargetListener) new DiagramDropTargetListener(
getDiagramGraphicalViewer(), LocalTransfer
.getInstance()) {

protected List getObjectsBeingDropped() {
System.out.println("MdaDiagramEditor.getObjectsBeingDropped ");
TransferData[] data = getCurrentEvent().dataTypes;
List<MDAProject> ret = new ArrayList<MDAProject>();

for(TransferData obj : data){
System.out.println("MdaDiagramEditor.getObjectsBeingDropped data : "+obj);
}
for (int i = 0; i < data.length; i++) {
boolean cond = LocalTransfer.getInstance().isSupportedType(data[i]);
System.out.println("LocalTransfer.getInstance().isSupportedType(data[i]) : "+cond);

if (cond) {
IStructuredSelection selection = (IStructuredSelection) LocalTransfer
.getInstance().nativeToJava(data[i]);
System.out.println("selection : "+selection);
System.out.println("selection.toList() : "+selection.toList());
for(Object obj : selection.toList()){
if( obj instanceof AbstractCategory){
AbstractCategory cat = (AbstractCategory) obj;
ret.addAll(fetchSelectedMDAProject(cat));
}
}
}
}
System.out.println("MdaDiagramEditor.getObjectsBeingDropped eObjects.size() : "+ret.size());
for(Object obj : ret){
System.out.println("MdaDiagramEditor.getObjectsBeingDropped eObjects : "+obj);
}
return ret;
}

private Collection<MDAProject> fetchSelectedMDAProject(
AbstractCategory cat) {
Collection<MDAProject> ret = new ArrayList<MDAProject>();
if(cat instanceof MDAProject){
MDAProject project = (MDAProject) cat;
ret.add(project);
}else{
MDACategory category = (MDACategory) cat;
for(AbstractCategory abstractCategory : category.getChilds()){
ret.addAll(fetchSelectedMDAProject(abstractCategory));
}
}
return ret;
}

public boolean isEnabled(DropTargetEvent event) {
System.out.println("MdaDiagramEditor.isEnabled");
boolean ret = true;
// if (super.isEnabled(event)) {
// Object modelObj = getViewer().getContents()
// .getModel();
// if (modelObj instanceof EObject) {
// List eObjects = getDropObjectsRequest()
// .getObjects();
//
// if (eObjects == null)
// ret = false;
//
// for (Iterator i = eObjects.iterator(); i
// .hasNext();) {
// Object o = i.next();
//
// if (!(o instanceof EObject))
// ret = false;
//
// if (!SUPPORTED_DRAG_DROP_ECLASSES
// .contains(((EObject) o).eClass()))
// ret = false;
// }
//
// ret = true;
// }
// }
//
// ret = false;
System.out.println("MdaDiagramEditor.isEnabled ret : "+ret);
return ret;
}

@Override
protected void handleDrop() {
super.handleDrop();
List<Object> droppedProjects = getObjectsBeingDropped();
List<MDAProject> projects = new ArrayList<MDAProject>();
TransactionalEditingDomain domain = getEditingDomain();
for(Object obj : droppedProjects){
if(obj instanceof MDAProject){
MDAProject project = (MDAProject) obj;
System.out.println("obj is instance of MDAProject");
projects.add(project);
System.out.println("project.eContainer() : "+project.eContainer());
System.out.println("project.eContainingFeature() : "+project.eContainingFeature());
}
System.out.println("dropped obj : "+obj);
}

// EList<EObject> objs = domain.getResourceSet().getResources().iterator().next().get Contents();
// System.err.println("objs : "+objs);
// SELECT query = new SELECT(
// new FROM(objs),
// new WHERE(new EObjectInstanceCondition(MdaPackage.eINSTANCE.getRootProject ()))
// );
// Collection resultObjs = query.execute();
// for(Object obj : resultObjs){
// System.err.println("query.execute(); obj : "+obj);
// }

// System.out.println("MdaPackage.eINSTANCE.getRootProject() : "+MdaPackage.eINSTANCE.getRootProject());
// System.out.println("MdaPackage.eINSTANCE.getRootProject_MdaProjects() : "+MdaPackage.eINSTANCE.getRootProject_MdaProjects());

// AddCommand cmd = new AddCommand(domain, (EObject) resultObjs.iterator().next(), MdaPackage.eINSTANCE.getRootProject_MdaProjects(), projects);

CommandParameter param = new CommandParameter(MdaPackage.eINSTANCE.getRootProject(), MdaPackage.eINSTANCE.getRootProject_MdaProjects(), projects);
Command addCommand = domain.createCommand(AddCommand.class, param);

domain.getCommandStack().execute(addCommand);
boolean canExecute = addCommand.canExecute();
System.out.println("canExecute : "+canExecute);




try {
domain.getResourceSet().getResources().iterator().next().sav e(null);
for(Resource resource : domain.getResourceSet().getResources()){
resource.save(null);
}
} catch (IOException e) {
e.printStackTrace();
}
}

});
}

// protected void initializeGraphicalViewer() {
// super.initializeGraphicalViewer();
// getDiagramGraphicalViewer().addDropTargetListener(
// new DropTargetListener(getDiagramGraphicalViewer(),
// LocalSelectionTransfer.getTransfer()) {
//
// protected Object getJavaObject(TransferData data) {
// return LocalSelectionTransfer.getTransfer()
// .nativeToJava(data);
// }
//
// });
// getDiagramGraphicalViewer().addDropTargetListener(
// new DropTargetListener(getDiagramGraphicalViewer(),
// LocalTransfer.getInstance()) {
//
// protected Object getJavaObject(TransferData data) {
// return LocalTransfer.getInstance().nativeToJava(data);
// }
//
// });
// }

/**
* @generated
*/
protected String getContextID() {
return CONTEXT_ID;
}

/**
* @generated
*/
protected PaletteRoot createPaletteRoot(PaletteRoot existingPaletteRoot) {
PaletteRoot root = super.createPaletteRoot(existingPaletteRoot);
new MdaPaletteFactory().fillPalette(root);
return root;
}

/**
* @generated
*/
protected PreferencesHint getPreferencesHint() {
return MdaDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT;
}

/**
* @generated
*/
public String getContributorId() {
return MdaDiagramEditorPlugin.ID;
}

/**
* @generated
*/
public Object getAdapter(Class type) {
if (type == IShowInTargetList.class) {
return new IShowInTargetList() {
public String[] getShowInTargetIds() {
return new String[] { ProjectExplorer.VIEW_ID };
}
};
}
return super.getAdapter(type);
}

/**
* @generated
*/
protected IDocumentProvider getDocumentProvider(IEditorInput input) {
if (input instanceof IFileEditorInput
|| input instanceof URIEditorInput) {
return MdaDiagramEditorPlugin.getInstance().getDocumentProvider();
}
return super.getDocumentProvider(input);
}

/**
* @generated
*/
public TransactionalEditingDomain getEditingDomain() {
IDocument document = getEditorInput() != null ? getDocumentProvider()
.getDocument(getEditorInput()) : null;
if (document instanceof IDiagramDocument) {
return ((IDiagramDocument) document).getEditingDomain();
}
return super.getEditingDomain();
}

/**
* @generated
*/
protected void setDocumentProvider(IEditorInput input) {
if (input instanceof IFileEditorInput
|| input instanceof URIEditorInput) {
setDocumentProvider(MdaDiagramEditorPlugin.getInstance()
.getDocumentProvider());
} else {
super.setDocumentProvider(input);
}
}

/**
* @generated
*/
public void gotoMarker(IMarker marker) {
MarkerNavigationService.getInstance().gotoMarker(this, marker);
}

/**
* @generated
*/
public boolean isSaveAsAllowed() {
return true;
}

/**
* @generated
*/
public void doSaveAs() {
performSaveAs(new NullProgressMonitor());
}

/**
* @generated
*/
protected void performSaveAs(IProgressMonitor progressMonitor) {
Shell shell = getSite().getShell();
IEditorInput input = getEditorInput();
SaveAsDialog dialog = new SaveAsDialog(shell);
IFile original = input instanceof IFileEditorInput ? ((IFileEditorInput) input)
.getFile()
: null;
if (original != null) {
dialog.setOriginalFile(original);
}
dialog.create();
IDocumentProvider provider = getDocumentProvider();
if (provider == null) {
// editor has been programmatically closed while the dialog was open
return;
}
if (provider.isDeleted(input) && original != null) {
String message = NLS.bind(
Messages.MdaDiagramEditor_SavingDeletedFile, original
.getName());
dialog.setErrorMessage(null);
dialog.setMessage(message, IMessageProvider.WARNING);
}
if (dialog.open() == Window.CANCEL) {
if (progressMonitor != null) {
progressMonitor.setCanceled(true);
}
return;
}
IPath filePath = dialog.getResult();
if (filePath == null) {
if (progressMonitor != null) {
progressMonitor.setCanceled(true);
}
return;
}
IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
IFile file = workspaceRoot.getFile(filePath);
final IEditorInput newInput = new FileEditorInput(file);
// Check if the editor is already open
IEditorMatchingStrategy matchingStrategy = getEditorDescriptor()
.getEditorMatchingStrategy();
IEditorReference[] editorRefs = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage()
.getEditorReferences();
for (int i = 0; i < editorRefs.length; i++) {
if (matchingStrategy.matches(editorRefs[i], newInput)) {
MessageDialog.openWarning(shell,
Messages.MdaDiagramEditor_SaveAsErrorTitle,
Messages.MdaDiagramEditor_SaveAsErrorMessage);
return;
}
}
boolean success = false;
try {
provider.aboutToChange(newInput);
getDocumentProvider(newInput).saveDocument(progressMonitor,
newInput,
getDocumentProvider().getDocument(getEditorInput()), true);
success = true;
} catch (CoreException x) {
IStatus status = x.getStatus();
if (status == null || status.getSeverity() != IStatus.CANCEL) {
ErrorDialog.openError(shell,
Messages.MdaDiagramEditor_SaveErrorTitle,
Messages.MdaDiagramEditor_SaveErrorMessage, x
.getStatus());
}
} finally {
provider.changed(newInput);
if (success) {
setInput(newInput);
}
}
if (progressMonitor != null) {
progressMonitor.setCanceled(!success);
}
}

/**
* @generated
*/
public ShowInContext getShowInContext() {
return new ShowInContext(getEditorInput(), getNavigatorSelection());
}

/**
* @generated
*/
private ISelection getNavigatorSelection() {
IDiagramDocument document = getDiagramDocument();
if (document == null) {
return StructuredSelection.EMPTY;
}
Diagram diagram = document.getDiagram();
IFile file = WorkspaceSynchronizer.getFile(diagram.eResource());
if (file != null) {
MdaNavigatorItem item = new MdaNavigatorItem(diagram, file, false);
return new StructuredSelection(item);
}
return StructuredSelection.EMPTY;
}

/**
* @generated
*/
protected void configureGraphicalViewer() {
super.configureGraphicalViewer();
DiagramEditorContextMenuProvider provider = new DiagramEditorContextMenuProvider(
this, getDiagramGraphicalViewer());
getDiagramGraphicalViewer().setContextMenu(provider);
getSite().registerContextMenu(ActionIds.DIAGRAM_EDITOR_CONTE XT_MENU,
provider, getDiagramGraphicalViewer());
}

}

--------------020208090209020400080902--
Re: DnD between view and GMF editor [message #222461 is a reply to message #222375] Tue, 24 March 2009 00:27 Go to previous messageGo to next message
Alexander Shatalin is currently offline Alexander ShatalinFriend
Messages: 2928
Registered: July 2009
Senior Member
Hello Esteban,

> At the drop step, I can fetch the selected "MDAProject" objects but I
> can't add them to model.
Why? Any exceptions?

> I don't understand why I can add any object conform to metamodel with
> the TransactionalEditingDomain.
I suppose corresponding elements was loaded using different ResourceSet instance.
Try getting URI of the selected objects and reload these objects once more
into appropriate ResourceSet.

-----------------
Alex Shatalin
Re: DnD between view and GMF editor [message #222473 is a reply to message #222461] Tue, 24 March 2009 08:46 Go to previous message
Esteban Dugueperoux is currently offline Esteban DugueperouxFriend
Messages: 472
Registered: July 2009
Senior Member
Alex Shatalin a écrit :
> Hello Esteban,
>
>> At the drop step, I can fetch the selected "MDAProject" objects but I
>> can't add them to model.
> Why? Any exceptions?
>
>> I don't understand why I can add any object conform to metamodel with
>> the TransactionalEditingDomain.
> I suppose corresponding elements was loaded using different ResourceSet
> instance. Try getting URI of the selected objects and reload these
> objects once more into appropriate ResourceSet.
>
> -----------------
> Alex Shatalin
>
>

Hi Alex,

Yes it works, I used bad ResourceSet, thanks for your help.
In fact I dropped "MDAProject" objects created from scratch without
Resource containing them to Resource of my ecore model.
Now I have another problem, after dropping "MDAProject" objects to my
GMF editor I add these "MDAProject" to my ecore model under the GMF
editor, but my editor is notified of my ecore model change only when I
click on and graphical representation of my "MDAProject" objects aren't
put at drop cursor position.


Thanks.
Previous Topic:static picture on canvas
Next Topic:compartment with various nodes
Goto Forum:
  


Current Time: Fri Apr 19 12:43:47 GMT 2024

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

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

Back to the top