Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » GMF (Graphical Modeling Framework) » Missing connections/edges(Connections are missing from diagram upon reopening)
Missing connections/edges [message #647849] Sun, 09 January 2011 22:54 Go to next message
Thomas Spall is currently offline Thomas Spall
Messages: 29
Registered: July 2009
Junior Member
I have an editor which uses diagram partitioning (two levels deep):
Scenario Diagram > Component State Diagram > Submethod Diagram

When I double-click on a component in the Scenario Diagram, the Component State Diagram correctly opens in a new editor tab. The State Diagram contains nodes which are connected by edges representing state transitions.

If I now double click on one of the states in the State Diagram to open the state's Submethod Diagram (which opens correctly in yet another separate editor tab) and then go back to the State Diagram all my state transitions are no longer displayed!

Now I click on the connection tool and create a new transition between any two states and suddenly those transitions OUTGOING from the state used as starting point are displayed again. If I then close the State Diagram and then reopen it (via double-click on the same node in the Scenario Diagram as before) I suddenly see ALL state transitions again.

Any idea what is happening here and how it can be fixed?

[Updated on: Sun, 09 January 2011 22:57]

Report message to a moderator

Re: Missing connections/edges [message #647851 is a reply to message #647849] Sun, 09 January 2011 23:09 Go to previous messageGo to next message
Thomas Spall is currently offline Thomas Spall
Messages: 29
Registered: July 2009
Junior Member
I checked the content of the file holding the model and diagram notation and found something interesting.

When opening the component in the Component State Diagram the first time, the diagram file just contains the following, despite showing all states and transitions:

<notation:Diagram xmi:id="_-PjikBxlEeCfIsZ_Cp5Wlgg" type="FSMEditor" element="_6XMJ4BxlEeCfIsZ_Cp5Wlg" measurementUnit="Pixel">
    <styles xmi:type="notation:DiagramStyle" xmi:id="_-PjikRxlEeCfIsZ_Cp5Wlg"/>
  </notation:Diagram>


I.e. though the notation section in the xml file does not contain any entries for children or edges, the nodes and connections are correctly displayed.

Then I double-click on one of the states and open the Submethod Diagram and suddenly the model/diagram notation file contains:

<notation:Diagram xmi:id="_-PjikBxlEeCfIsZ_Cp5Wlg" type="FSMEditor" element="_6XMJ4BxlEeCfIsZ_Cp5Wlg" measurementUnit="Pixel">
    <children xmi:type="notation:Node" xmi:id="_-QqV0BxlEeCfIsZ_Cp5Wlg" type="2001" element="_6Xfr4BxlEeCfIsZ_Cp5Wlg">
      <children xmi:type="notation:DecorationNode" xmi:id="_-Qq84BxlEeCfIsZ_Cp5Wlg" type="5002"/>
      <children xmi:type="notation:BasicCompartment" xmi:id="_-Qq84RxlEeCfIsZ_Cp5Wlg" type="7001">
        <styles xmi:type="notation:TitleStyle" xmi:id="_-Qq84hxlEeCfIsZ_Cp5Wlg" showTitle="true"/>
        <styles xmi:type="notation:SortingStyle" xmi:id="_-Qq84xxlEeCfIsZ_Cp5Wlg"/>
        <styles xmi:type="notation:FilteringStyle" xmi:id="_-Qq85BxlEeCfIsZ_Cp5Wlg"/>
      </children>
...


BUT, there are no <edges> entries! Now, when going back to the State Diagram I indeed don't see any connections, only nodes!

Then I draw a new connection in the State Diagram, save the diagram, close it and then bring it up again. Now my model/diagram notation file suddenly contains:

<notation:Diagram xmi:id="_-PjikBxlEeCfIsZ_Cp5Wlg" type="FSMEditor" element="_6XMJ4BxlEeCfIsZ_Cp5Wlg" measurementUnit="Pixel">
    <children xmi:type="notation:Node" xmi:id="_-QqV0BxlEeCfIsZ_Cp5Wlg" type="2001" element="_6Xfr4BxlEeCfIsZ_Cp5Wlg">
      <children xmi:type="notation:DecorationNode" xmi:id="_-Qq84BxlEeCfIsZ_Cp5Wlg" type="5002"/>
...(lots more children)
<edges xmi:type="notation:Connector" xmi:id="_IHreQBxmEeCH6_HofmebEw" type="4001" element="_6XgS9BxlEeCfIsZ_Cp5Wlg" source="_-Qq87RxlEeCfIsZ_Cp5Wlg" target="_-QsLDRxlEeCfIsZ_Cp5Wlg">
      <children xmi:type="notation:DecorationNode" xmi:id="_IHsFUBxmEeCH6_HofmebEw" type="6001">
        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_IHsFUhxmEeCH6_HofmebEw" hint="ConditionEditor"/>
        <layoutConstraint xmi:type="notation:Location" xmi:id="_IHsFURxmEeCH6_HofmebEw" y="40"/>
      </children>
      <styles xmi:type="notation:FontStyle" xmi:id="_IHreQRxmEeCH6_HofmebEw" fontName="Ubuntu"/>
      <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_IHreQhxmEeCH6_HofmebEw" hint="ConditionEditor"/>
      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IHreQxxmEeCH6_HofmebEw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
    </edges>
...(lots more edges)


I.e. suddenly there are <edges> entries produced by something and my diagram displays correctly again.

Why are all those entries not produced the first time the diagram is opened? And why do I suddenly only have the <children> entries but not the <edges>?
Re: Missing connections/edges [message #648236 is a reply to message #647851] Tue, 11 January 2011 18:24 Go to previous message
Thomas Spall is currently offline Thomas Spall
Messages: 29
Registered: July 2009
Junior Member
I found a solution. In case anyone else hits this at some stage, here is what I did:

In the XXXCanonicalEditPolicy which is generated by GMF per default change the parent class from CanonicalEditPolicy to CanonicalConnectionEditPolicy.

Then implement the 3 extra methods which are defined by CanonicalConnectionEditPolicy. Now the transitions show up as expected in the diagram.
Previous Topic:LayoutProvider: how to layout connections?
Next Topic:change adanced property values programattically
Goto Forum:
  


Current Time: Sat Aug 23 05:47:25 EDT 2014

Powered by FUDForum. Page generated in 0.01670 seconds