Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » GMF (Graphical Modeling Framework) » Use of ConnectionHandle to add new node with connection
Use of ConnectionHandle to add new node with connection [message #234666] Thu, 25 June 2009 12:41 Go to next message
Esteban Dugueperoux is currently offline Esteban DugueperouxFriend
Messages: 472
Registered: July 2009
Senior Member
Hi,

I have a gmf editor for which I have added a custom
ContainerNodeEditPolicy to the DiagramEditPart. In my custom
ContainerNodeEditPolicy I intercept CreateConnectionRequest request
with ContainerNodeEditPolicy.getPromptForConnectionAndEndCommand to
return a custom PromptForConnectionAndEndCommand which provide my custom
PopupMenu. One menu of this PopupMenu permits user to select a file
which will be a EAttribute value of a newly added model's element
connected to source model's element under sourceEditPart of used
ConnectionHandle.

When user has choosen his file, I use CreateViewAndElementRequest
request with location of ConnectionHandle's Popup location and get
corresponding command on my DiagramEditPart and execute it.
Then I use SetRequest to set values to previous created model's
element's EAttributes.
To finish I use CreateRelationshipRequest to add a EReference instance
between source model's element under the sourceEditPart of the
ConnectionHandle and previously created model's element.

The view of previously created model's element is visible but not his
EAttribute's values nor the Connection view, they are visible when I
save diagram, close editor and reopen diagram.

How can I do to see EAttribute and EReference related views.
DiagramEditPart.refresh() operation doesn't works.
Re: Use of ConnectionHandle to add new node with connection [message #234820 is a reply to message #234666] Mon, 29 June 2009 07:49 Go to previous message
Esteban Dugueperoux is currently offline Esteban DugueperouxFriend
Messages: 472
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------080107010000090201080506
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Ok I understand that my previous message isn't so clear, I give code
which do the work, but I don't know how to explain more clearly.
The code represents a method after user have choosen a file, the file is
given in parameter to initialize new created model's element.

Thanks.

--------------080107010000090201080506
Content-Type: text/plain;
name="code.java"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="code.java"

cHJpdmF0ZSB2b2lkIGNyZWF0ZUFuZENvbm5lY3RUb0V4dGVybmFsQnVzaW5l c3NNb2RlbChG
aWxlIGZpbGUpIHsNCgkJRWRpdFBhcnQgc291cmNlRWRpdFBhcnQgPSByZXF1 ZXN0LmdldFNv
dXJjZUVkaXRQYXJ0KCk7DQoJCUVkaXRQYXJ0IHRhcmdldEVkaXRQYXJ0ID0g cmVxdWVzdC5n
ZXRUYXJnZXRFZGl0UGFydCgpOw0KCQlNREFQcm9qZWN0RWRpdFBhcnQgbWRh UHJvamVjdEVk
aXRQYXJ0ID0gKE1EQVByb2plY3RFZGl0UGFydCkgdGFyZ2V0RWRpdFBhcnQ7 DQoJCUlucHV0
IGlucHV0ID0gKElucHV0KSBWaWV3VXRpbA0KCQkJCS5yZXNvbHZlU2VtYW50 aWNFbGVtZW50
KCgoVmlldykgc291cmNlRWRpdFBhcnQuZ2V0TW9kZWwoKSkpOw0KCQlJRWxl bWVudFR5cGUg
ZWxlbWVudFR5cGUgPSBNZGFFbGVtZW50VHlwZXMuQnVzaW5lc3NNb2RlbF8y MDA0Ow0KDQoJ
CVZpZXdBbmRFbGVtZW50RGVzY3JpcHRvciB2aWV3RGVzY3JpcHRvciA9IG5l dyBWaWV3QW5k
RWxlbWVudERlc2NyaXB0b3IoDQoJCQkJbmV3IENyZWF0ZUVsZW1lbnRSZXF1 ZXN0QWRhcHRl
cihuZXcgQ3JlYXRlRWxlbWVudFJlcXVlc3QoDQoJCQkJCQllbGVtZW50VHlw ZSkpLCBOb2Rl
LmNsYXNzLCAoKElIaW50ZWRUeXBlKSBlbGVtZW50VHlwZSkNCgkJCQkJCS5n ZXRTZW1hbnRp
Y0hpbnQoKSwgbWRhUHJvamVjdEVkaXRQYXJ0DQoJCQkJCQkuZ2V0RGlhZ3Jh bVByZWZlcmVu
Y2VzSGludCgpKTsNCg0KCQlDcmVhdGVWaWV3QW5kRWxlbWVudFJlcXVlc3Qg cmVxID0gbmV3
IENyZWF0ZVZpZXdBbmRFbGVtZW50UmVxdWVzdCgNCgkJCQl2aWV3RGVzY3Jp cHRvcik7DQoJ
CXJlcS5zZXRMb2NhdGlvbihkcm9wTG9jYXRpb24pOw0KCQlDb21tYW5kIGNy ZWF0ZUJ1c2lu
ZXNzQ21kID0gbWRhUHJvamVjdEVkaXRQYXJ0LmdldENvbW1hbmQocmVxKTsN Cg0KCQltZGFQ
cm9qZWN0RWRpdFBhcnQuZ2V0RGlhZ3JhbUVkaXREb21haW4oKS5nZXREaWFn cmFtQ29tbWFu
ZFN0YWNrKCkNCgkJCQkuZXhlY3V0ZShjcmVhdGVCdXNpbmVzc0NtZCk7DQoN CgkJQ29sbGVj
dGlvbjw/PiByZXN1bHQgPSBEaWFncmFtQ29tbWFuZFN0YWNrDQoJCQkJLmdl dFJldHVyblZh
bHVlcyhjcmVhdGVCdXNpbmVzc0NtZCk7DQovLwkJU3lzdGVtLm91dC5wcmlu dGxuKCJyZXN1
bHQgOiAiICsgcmVzdWx0KTsNCgkJZm9yIChPYmplY3QgcmVzIDogcmVzdWx0 KSB7DQoJCQlp
ZiAocmVzIGluc3RhbmNlb2YgSUFkYXB0YWJsZSkgew0KCQkJCUlBZGFwdGFi bGUgYWRhcHRl
ciA9IChJQWRhcHRhYmxlKSByZXM7DQoJCQkJVmlldyB2aWV3ID0gKFZpZXcp IGFkYXB0ZXIu
Z2V0QWRhcHRlcihWaWV3LmNsYXNzKTsNCgkJCQlpZiAodmlldyAhPSBudWxs KSB7DQoJCQkJ
CUlHcmFwaGljYWxFZGl0UGFydCBidXNpbmVzc01vZGVsRWRpdFBhcnQgPSBF ZGl0UGFydFNl
cnZpY2UuZ2V0SW5zdGFuY2UoKS5jcmVhdGVHcmFwaGljRWRpdFBhcnQodmll dyk7DQoJCQkJ
CQ0KCQkJCQlNb2RlbCBuZXdNb2RlbCA9IChNb2RlbCkgdmlldy5nZXRFbGVt ZW50KCk7DQoJ
CQkJCVN0cmluZyBmaWxlTmFtZSA9IGZpbGUuZ2V0TmFtZSgpOw0KCQkJCQlT dHJpbmcgbmFt
ZSA9IGZpbGVOYW1lLnN1YnN0cmluZygwLCBmaWxlTmFtZQ0KCQkJCQkJCS5s YXN0SW5kZXhP
ZigiLiIpKTsNCgkJCQkJU2V0UmVxdWVzdCByZXFTZXROYW1lID0gbmV3IFNl dFJlcXVlc3Qo
bWRhUHJvamVjdEVkaXRQYXJ0DQoJCQkJCQkJLmdldEVkaXRpbmdEb21haW4o KSwgbmV3TW9k
ZWwsIE1kYVBhY2thZ2UuZUlOU1RBTkNFDQoJCQkJCQkJLmdldE1vZGVsX05h bWUoKSwgbmFt
ZSk7DQoJCQkJCVNldFJlcXVlc3QgcmVxU2V0VVJJID0gbmV3IFNldFJlcXVl c3QobWRhUHJv
amVjdEVkaXRQYXJ0DQoJCQkJCQkJLmdldEVkaXRpbmdEb21haW4oKSwgbmV3 TW9kZWwsIE1k
YVBhY2thZ2UuZUlOU1RBTkNFDQoJCQkJCQkJLmdldE1vZGVsX0ZpbGUoKSwg ZmlsZSk7DQoN
CgkJCQkJU3RyaW5nIG1ldGFtb2RlbCA9ICJVTUwiOw0KCQkJCQl0cnkgew0K CQkJCQkJbWV0
YW1vZGVsID0gTWV0YW1vZGVsTWFwcGluZy5nZXREZWZhdWx0KCkNCgkJCQkJ CQkJLmdldEVN
Rk1ldGFtb2RlbEZyb21BVExBbGlhcyhtZXRhbW9kZWwpOw0KCQkJCQl9IGNh dGNoIChDb3Jy
ZXNwb25kaW5nTWV0YW1vZGVsTmFtZU5vdEZvdW5kIGUpIHsNCgkJCQkJCWUu cHJpbnRTdGFj
a1RyYWNlKCk7DQoJCQkJCX0NCgkJCQkJU2V0UmVxdWVzdCByZXFTZXRNZXRh bW9kZWwgPSBu
ZXcgU2V0UmVxdWVzdCgNCgkJCQkJCQltZGFQcm9qZWN0RWRpdFBhcnQuZ2V0 RWRpdGluZ0Rv
bWFpbigpLCBuZXdNb2RlbCwNCgkJCQkJCQlNZGFQYWNrYWdlLmVJTlNUQU5D RS5nZXRNb2Rl
bF9NZXRhbW9kZWwoKSwNCgkJCQkJCQltZXRhbW9kZWwpOw0KCQkJCQlTZXRW YWx1ZUNvbW1h
bmQgc2V0TmFtZU9wZXJhdGlvbiA9IG5ldyBTZXRWYWx1ZUNvbW1hbmQoDQoJ CQkJCQkJcmVx
U2V0TmFtZSk7DQoJCQkJCVNldFZhbHVlQ29tbWFuZCBzZXRVUklPcGVyYXRp b24gPSBuZXcg
U2V0VmFsdWVDb21tYW5kKA0KCQkJCQkJCXJlcVNldFVSSSk7DQoJCQkJCVNl dFZhbHVlQ29t
bWFuZCBzZXRNZXRhbW9kZWxPcGVyYXRpb24gPSBuZXcgU2V0VmFsdWVDb21t YW5kKA0KCQkJ
CQkJCXJlcVNldE1ldGFtb2RlbCk7DQoNCgkJCQkJbWRhUHJvamVjdEVkaXRQ YXJ0LmdldERp
YWdyYW1FZGl0RG9tYWluKCkNCgkJCQkJCQkuZ2V0RGlhZ3JhbUNvbW1hbmRT dGFjaygpLmV4
ZWN1dGUoDQoJCQkJCQkJCQluZXcgSUNvbW1hbmRQcm94eShzZXROYW1lT3Bl cmF0aW9uKSk7
DQoJCQkJCW1kYVByb2plY3RFZGl0UGFydC5nZXREaWFncmFtRWRpdERvbWFp bigpDQoJCQkJ
CQkJLmdldERpYWdyYW1Db21tYW5kU3RhY2soKS5leGVjdXRlKA0KCQkJCQkJ CQkJbmV3IElD
b21tYW5kUHJveHkoc2V0VVJJT3BlcmF0aW9uKSk7DQoJCQkJCW1kYVByb2pl Y3RFZGl0UGFy
dC5nZXREaWFncmFtRWRpdERvbWFpbigpDQoJCQkJCQkJLmdldERpYWdyYW1D b21tYW5kU3Rh
Y2soKS5leGVjdXRlKA0KCQkJCQkJCQkJbmV3IElDb21tYW5kUHJveHkoc2V0 TWV0YW1vZGVs
T3BlcmF0aW9uKSk7DQoNCgkJCQkJDQoJCQkJCUxpc3Q8SUVsZW1lbnRUeXBl PiBlbGVtZW50
VHlwZXMgPSBuZXcgQXJyYXlMaXN0PElFbGVtZW50VHlwZT4oKTsNCgkJCQkJ ZWxlbWVudFR5
cGVzLmFkZChNZGFFbGVtZW50VHlwZXMuTW9kZWxQb3J0VXNlcnNfNDAwMSk7 DQoJCQkJCUNy
ZWF0ZVVuc3BlY2lmaWVkVHlwZUNvbm5lY3Rpb25SZXF1ZXN0IGNyZWF0ZVVu c3BlY2lmaWVk
VHlwZUNvbm5lY3Rpb25SZXF1ZXN0ID0gbmV3IENyZWF0ZVVuc3BlY2lmaWVk VHlwZUNvbm5l
Y3Rpb25SZXF1ZXN0KGVsZW1lbnRUeXBlcywgZmFsc2UsIFByZWZlcmVuY2Vz SGludC5VU0Vf
REVGQVVMVFMpOw0KCQkJCQlDcmVhdGVSZXF1ZXN0IGNyZWF0ZVJlcXVlc3Qg PSBjcmVhdGVV
bnNwZWNpZmllZFR5cGVDb25uZWN0aW9uUmVxdWVzdC5nZXRSZXF1ZXN0Rm9y VHlwZShNZGFF
bGVtZW50VHlwZXMuTW9kZWxQb3J0VXNlcnNfNDAwMSk7DQoJCQkJCWlmIChj cmVhdGVSZXF1
ZXN0IGluc3RhbmNlb2YgQ3JlYXRlQ29ubmVjdGlvblZpZXdBbmRFbGVtZW50 UmVxdWVzdCkg
ew0KCQkJCQkJIENyZWF0ZUNvbm5lY3Rpb25WaWV3QW5kRWxlbWVudFJlcXVl c3QgcmVxdWVz
dCA9IChDcmVhdGVDb25uZWN0aW9uVmlld0FuZEVsZW1lbnRSZXF1ZXN0KSBj cmVhdGVSZXF1
ZXN0Ow0KCQkJCQkJIHJlcXVlc3Quc2V0VHlwZShSZXF1ZXN0Q29uc3RhbnRz LlJFUV9DT05O
RUNUSU9OX1NUQVJUKTsNCgkJCQkJCSByZXF1ZXN0LnNldFNvdXJjZUVkaXRQ YXJ0KHNvdXJj
ZUVkaXRQYXJ0KTsNCgkJCQkJCSByZXF1ZXN0LnNldFR5cGUoUmVxdWVzdENv bnN0YW50cy5S
RVFfQ09OTkVDVElPTl9FTkQpOw0KCQkJCQkJIHJlcXVlc3Quc2V0VGFyZ2V0 RWRpdFBhcnQo
YnVzaW5lc3NNb2RlbEVkaXRQYXJ0KTsNCgkJCQkJCSBDb21tYW5kIGRtbSA9 IG1kYVByb2pl
Y3RFZGl0UGFydC5nZXRDb21tYW5kKHJlcXVlc3QpOw0KCQkJCQkJIG1kYVBy b2plY3RFZGl0
UGFydC5nZXREaWFncmFtRWRpdERvbWFpbigpLmdldERpYWdyYW1Db21tYW5k U3RhY2soKS5l
eGVjdXRlKGRtbSk7DQoJCQkJCX0gDQoJCQkJfQ0KCQkJfQ0KCQl9DQoJfQ==
--------------080107010000090201080506--
Previous Topic:Arrange all without an editor
Next Topic:need help on GMF graphic definition, how to add a vertical line in a rectangle?
Goto Forum:
  


Current Time: Thu Apr 25 06:16:33 GMT 2024

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

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

Back to the top