Changeset 1894

Show
Ignore:
Timestamp:
08/09/07 10:50:11 (1 year ago)
Author:
wrobe..@pld-linux.org
Message:

- updated lifeline item and message item connection adapter, it does not

use temporary adapter attributes anymore

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • gaphor/trunk/gaphor/adapters/connectors.py

    r1889 r1894  
    12681268 
    12691269    def glue(self, handle): 
     1270        """ 
     1271        Glue to lifeline's head or lifetime. If other side of line is 
     1272        connected, then glue in such way that heads or lifetimes are on 
     1273        both ends. 
     1274        """ 
    12701275        element = self.element 
    12711276        line = self.line 
    12721277        opposite = line.opposite(handle) 
    1273         opposite_connected_to = opposite.connected_to 
    12741278 
    12751279        is_lifetime, lifetime_pos = self._is_lifetime(element, handle) 
     1280 
     1281        if opposite.connected_to: 
     1282            c_is_lifetime, _ = self._is_lifetime(opposite.connected_to, 
     1283                    opposite) 
     1284        else: 
     1285            c_is_lifetime = is_lifetime 
     1286 
     1287        # both has to be heads or lifetimes 
     1288        if is_lifetime ^ c_is_lifetime: 
     1289            return None 
     1290 
    12761291        if is_lifetime: 
    12771292            glue_pos = lifetime_pos 
     
    12801295        return glue_pos 
    12811296         
    1282         is_lifetime, lifetime_pos = self._is_lifetime(x, y, element) 
    1283  
    1284         glue_ok = True 
    1285         c_is_lifetime = False 
    1286         if connected_to: 
    1287             px, py = opposite.pos 
    1288             c_is_lifetime = opposite.is_lifetime 
    1289  
    1290             # connect only if both are lifeline heads or lifetimes 
    1291             glue_ok = not (is_lifetime ^ c_is_lifetime) 
    1292  
    1293  
    1294         # Return the position, but remember if we should connect to the 
    1295         # Lifetime or Lifeline instance 
    1296         if glue_ok and is_lifetime: 
    1297             self._connect_to_lifetime = True 
    1298             handle.is_lifetime = True 
    1299             return lifetime_pos 
    1300         elif glue_ok: 
    1301             self._connect_to_lifetime = False 
    1302             handle.is_lifetime = False 
    1303             return head_pos 
     1297 
     1298    def _get_segment(self, handle): 
     1299        """ 
     1300        Return handles of one of lifeline head's side or lifetime handles. 
     1301        """ 
     1302        element = self.element 
     1303        is_lifetime, _ = self._is_lifetime(element, handle) 
     1304        if is_lifetime: 
     1305            return element.handles()[-2:] # return lifeline's lifetime handles 
    13041306        else: 
    1305             return None 
    1306  
    1307  
    1308     def side(self, (hx, hy), glued): 
    1309         """ 
    1310         Return handles of one of lifeline head's side or lifetime handles. 
    1311         """ 
    1312         if self._is_lifetime(glued, handle): 
    1313             return glued.handles()[-2:] 
    1314         else: 
    1315             return super(MessageLifelineConnect, self).side(glued, handle) 
     1307            return super(MessageLifelineConnect, self)._get_segment(handle) 
    13161308        assert False 
    13171309 
  • gaphor/trunk/test-diagrams/interactions.gaphor

    r1852 r1894  
    11<?xml version="1.0" encoding="utf-8"?> 
    2 <gaphor version="3.0" gaphor-version="0.11.2"><Package id="DCE:F8E963BA-2105-11DC-B98C-000D93868322"><name><val><![CDATA[New model]]></val></name><ownedClassifier><reflist><ref refid="DCE:FA4CD4EE-2105-11DC-B98C-000D93868322"></ref></reflist></ownedClassifier><ownedDiagram><reflist><ref refid="DCE:F8E9A42E-2105-11DC-B98C-000D93868322"></ref></reflist></ownedDiagram></Package><Diagram id="DCE:F8E9A42E-2105-11DC-B98C-000D93868322"><name><val><![CDATA[main]]></val></name><package><ref refid="DCE:F8E963BA-2105-11DC-B98C-000D93868322"></ref></package><canvas><item type="InteractionItem" id="DCE:FA4E5CB0-2105-11DC-B98C-000D93868322"><matrix><val>(1.0, 0.0, 0.0, 1.0, 133.0, 76.0)</val></matrix><width><val>300.0</val></width><height><val>300.0</val></height><subject><ref refid="DCE:FA4CD4EE-2105-11DC-B98C-000D93868322"></ref></subject><item type="LifelineItem" id="DCE:FC7544EA-2105-11DC-B98C-000D93868322"><matrix><val>(1.0, 0.0, 0.0, 1.0, 22.0, 44.0)</val></matrix><width><val>110.0</val></width><height><val>50.0</val></height><subject><ref refid="DCE:FC750D20-2105-11DC-B98C-000D93868322"></ref></subject><lifetime-length><val>10.0</val></lifetime-length></item></item><item type="LifelineItem" id="DCE:FB79B44A-2105-11DC-B98C-000D93868322"><matrix><val>(1.0, 0.0, 0.0, 1.0, 11.0, 121.0)</val></matrix><width><val>110.0</val></width><height><val>50.0</val></height><subject><ref refid="DCE:FB797000-2105-11DC-B98C-000D93868322"></ref></subject><lifetime-length><val>10.0</val></lifetime-length></item></canvas></Diagram><Interaction id="DCE:FA4CD4EE-2105-11DC-B98C-000D93868322"><lifeline><reflist><ref refid="DCE:FB797000-2105-11DC-B98C-000D93868322"></ref><ref refid="DCE:FC750D20-2105-11DC-B98C-000D93868322"></ref></reflist></lifeline><name><val><![CDATA[NewInteraction]]></val></name><package><ref refid="DCE:F8E963BA-2105-11DC-B98C-000D93868322"></ref></package><presentation><reflist><ref refid="DCE:FA4E5CB0-2105-11DC-B98C-000D93868322"></ref></reflist></presentation></Interaction><Lifeline id="DCE:FB797000-2105-11DC-B98C-000D93868322"><interaction><ref refid="DCE:FA4CD4EE-2105-11DC-B98C-000D93868322"></ref></interaction><name><val><![CDATA[NewLifeline]]></val></name><presentation><reflist><ref refid="DCE:FB79B44A-2105-11DC-B98C-000D93868322"></ref></reflist></presentation></Lifeline><Lifeline id="DCE:FC750D20-2105-11DC-B98C-000D93868322"><interaction><ref refid="DCE:FA4CD4EE-2105-11DC-B98C-000D93868322"></ref></interaction><name><val><![CDATA[NewLifeline]]></val></name><presentation><reflist><ref refid="DCE:FC7544EA-2105-11DC-B98C-000D93868322"></ref></reflist></presentation></Lifeline></gaphor> 
     2<gaphor version="3.0" gaphor-version="0.11.2"><Package id="DCE:F8E963BA-2105-11DC-B98C-000D93868322"><name><val><![CDATA[New model]]></val></name><ownedClassifier><reflist><ref refid="DCE:FA4CD4EE-2105-11DC-B98C-000D93868322"></ref></reflist></ownedClassifier><ownedDiagram><reflist><ref refid="DCE:F8E9A42E-2105-11DC-B98C-000D93868322"></ref></reflist></ownedDiagram></Package><Diagram id="DCE:F8E9A42E-2105-11DC-B98C-000D93868322"><name><val><![CDATA[main]]></val></name><package><ref refid="DCE:F8E963BA-2105-11DC-B98C-000D93868322"></ref></package><canvas><item type="InteractionItem" id="DCE:FA4E5CB0-2105-11DC-B98C-000D93868322"><matrix><val>(1.0, 0.0, 0.0, 1.0, 45.0, 56.0)</val></matrix><width><val>623.0</val></width><height><val>442.0</val></height><subject><ref refid="DCE:FA4CD4EE-2105-11DC-B98C-000D93868322"></ref></subject><item type="LifelineItem" id="DCE:FC7544EA-2105-11DC-B98C-000D93868322"><matrix><val>(1.0, 0.0, 0.0, 1.0, 32.0, 55.0)</val></matrix><width><val>114.0</val></width><height><val>50.0</val></height><subject><ref refid="DCE:FC750D20-2105-11DC-B98C-000D93868322"></ref></subject><lifetime-length><val>261.0</val></lifetime-length></item><item type="LifelineItem" id="DCE:FB79B44A-2105-11DC-B98C-000D93868322"><matrix><val>(1.0, 0.0, 0.0, 1.0, 177.0, 55.0)</val></matrix><width><val>114.0</val></width><height><val>50.0</val></height><subject><ref refid="DCE:FB797000-2105-11DC-B98C-000D93868322"></ref></subject><lifetime-length><val>261.0</val></lifetime-length></item><item type="LifelineItem" id="DCE:19BCE274-450D-11DC-A6AA-00123F877750"><matrix><val>(1.0, 0.0, 0.0, 1.0, 307.0, 164.0)</val></matrix><width><val>114.0</val></width><height><val>50.0</val></height><subject><ref refid="DCE:19BCC554-450D-11DC-A6AA-00123F877750"></ref></subject><lifetime-length><val>10.0</val></lifetime-length></item><item type="LifelineItem" id="DCE:1BD5FCBE-450D-11DC-A6AA-00123F877750"><matrix><val>(1.0, 0.0, 0.0, 1.0, 489.0, 167.0)</val></matrix><width><val>114.0</val></width><height><val>50.0</val></height><subject><ref refid="DCE:1BD5DF2C-450D-11DC-A6AA-00123F877750"></ref></subject><lifetime-length><val>10.0</val></lifetime-length></item></item><item type="MessageItem" id="DCE:F55A4932-450C-11DC-B72D-00123F877750"><subject><ref refid="DCE:F55BCEB2-450C-11DC-B72D-00123F877750"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 134.0, 211.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (145.0, 3.0)]</val></points><head-connection><ref refid="DCE:FC7544EA-2105-11DC-B98C-000D93868322"></ref></head-connection><tail-connection><ref refid="DCE:FB79B44A-2105-11DC-B98C-000D93868322"></ref></tail-connection></item><item type="MessageItem" id="DCE:FA7CE65C-450C-11DC-B72D-00123F877750"><subject><ref refid="DCE:FA7E9382-450C-11DC-B72D-00123F877750"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 279.0, 271.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (-145.0, 0.0)]</val></points><head-connection><ref refid="DCE:FB79B44A-2105-11DC-B98C-000D93868322"></ref></head-connection><tail-connection><ref refid="DCE:FC7544EA-2105-11DC-B98C-000D93868322"></ref></tail-connection></item><item type="MessageItem" id="DCE:1E89FC58-450D-11DC-A6AA-00123F877750"><subject><ref refid="DCE:1E8B6840-450D-11DC-A6AA-00123F877750"></ref></subject><matrix><val>(1.0, 0.0, 0.0, 1.0, 534.0, 247.0)</val></matrix><orthogonal><val>0</val></orthogonal><horizontal><val>0</val></horizontal><points><val>[(0.0, 0.0), (-68.0, 0.0)]</val></points><head-connection><ref refid="DCE:1BD5FCBE-450D-11DC-A6AA-00123F877750"></ref></head-connection><tail-connection><ref refid="DCE:19BCE274-450D-11DC-A6AA-00123F877750"></ref></tail-connection></item></canvas></Diagram><Interaction id="DCE:FA4CD4EE-2105-11DC-B98C-000D93868322"><lifeline><reflist><ref refid="DCE:FC750D20-2105-11DC-B98C-000D93868322"></ref><ref refid="DCE:FB797000-2105-11DC-B98C-000D93868322"></ref><ref refid="DCE:19BCC554-450D-11DC-A6AA-00123F877750"></ref><ref refid="DCE:1BD5DF2C-450D-11DC-A6AA-00123F877750"></ref></reflist></lifeline><name><val><![CDATA[NewInteraction]]></val></name><package><ref refid="DCE:F8E963BA-2105-11DC-B98C-000D93868322"></ref></package><presentation><reflist><ref refid="DCE:FA4E5CB0-2105-11DC-B98C-000D93868322"></ref></reflist></presentation></Interaction><Lifeline id="DCE:FB797000-2105-11DC-B98C-000D93868322"><coveredBy><reflist><ref refid="DCE:F723DF9E-450C-11DC-B72D-00123F877750"></ref><ref refid="DCE:FA7F6956-450C-11DC-B72D-00123F877750"></ref></reflist></coveredBy><interaction><ref refid="DCE:FA4CD4EE-2105-11DC-B98C-000D93868322"></ref></interaction><name><val><![CDATA[b]]></val></name><presentation><reflist><ref refid="DCE:FB79B44A-2105-11DC-B98C-000D93868322"></ref></reflist></presentation></Lifeline><Lifeline id="DCE:FC750D20-2105-11DC-B98C-000D93868322"><coveredBy><reflist><ref refid="DCE:F55CBED8-450C-11DC-B72D-00123F877750"></ref><ref refid="DCE:FB4C4A2A-450C-11DC-B72D-00123F877750"></ref></reflist></coveredBy><interaction><ref refid="DCE:FA4CD4EE-2105-11DC-B98C-000D93868322"></ref></interaction><name><val><![CDATA[a]]></val></name><presentation><reflist><ref refid="DCE:FC7544EA-2105-11DC-B98C-000D93868322"></ref></reflist></presentation></Lifeline><Message id="DCE:F55BCEB2-450C-11DC-B72D-00123F877750"><presentation><reflist><ref refid="DCE:F55A4932-450C-11DC-B72D-00123F877750"></ref></reflist></presentation><receiveEvent><ref refid="DCE:F723DF9E-450C-11DC-B72D-00123F877750"></ref></receiveEvent><sendEvent><ref refid="DCE:F55CBED8-450C-11DC-B72D-00123F877750"></ref></sendEvent></Message><EventOccurrence id="DCE:F55CBED8-450C-11DC-B72D-00123F877750"><covered><ref refid="DCE:FC750D20-2105-11DC-B98C-000D93868322"></ref></covered><sendMessage><ref refid="DCE:F55BCEB2-450C-11DC-B72D-00123F877750"></ref></sendMessage></EventOccurrence><EventOccurrence id="DCE:F723DF9E-450C-11DC-B72D-00123F877750"><covered><ref refid="DCE:FB797000-2105-11DC-B98C-000D93868322"></ref></covered><receiveMessage><ref refid="DCE:F55BCEB2-450C-11DC-B72D-00123F877750"></ref></receiveMessage></EventOccurrence><Message id="DCE:FA7E9382-450C-11DC-B72D-00123F877750"><presentation><reflist><ref refid="DCE:FA7CE65C-450C-11DC-B72D-00123F877750"></ref></reflist></presentation><receiveEvent><ref refid="DCE:FB4C4A2A-450C-11DC-B72D-00123F877750"></ref></receiveEvent><sendEvent><ref refid="DCE:FA7F6956-450C-11DC-B72D-00123F877750"></ref></sendEvent></Message><EventOccurrence id="DCE:FA7F6956-450C-11DC-B72D-00123F877750"><covered><ref refid="DCE:FB797000-2105-11DC-B98C-000D93868322"></ref></covered><sendMessage><ref refid="DCE:FA7E9382-450C-11DC-B72D-00123F877750"></ref></sendMessage></EventOccurrence><EventOccurrence id="DCE:FB4C4A2A-450C-11DC-B72D-00123F877750"><covered><ref refid="DCE:FC750D20-2105-11DC-B98C-000D93868322"></ref></covered><receiveMessage><ref refid="DCE:FA7E9382-450C-11DC-B72D-00123F877750"></ref></receiveMessage></EventOccurrence><Lifeline id="DCE:19BCC554-450D-11DC-A6AA-00123F877750"><coveredBy><reflist><ref refid="DCE:200CF670-450D-11DC-A6AA-00123F877750"></ref></reflist></coveredBy><interaction><ref refid="DCE:FA4CD4EE-2105-11DC-B98C-000D93868322"></ref></interaction><name><val><![CDATA[c]]></val></name><presentation><reflist><ref refid="DCE:19BCE274-450D-11DC-A6AA-00123F877750"></ref></reflist></presentation></Lifeline><Lifeline id="DCE:1BD5DF2C-450D-11DC-A6AA-00123F877750"><coveredBy><reflist><ref refid="DCE:1E8C1308-450D-11DC-A6AA-00123F877750"></ref></reflist></coveredBy><interaction><ref refid="DCE:FA4CD4EE-2105-11DC-B98C-000D93868322"></ref></interaction><name><val><![CDATA[d]]></val></name><presentation><reflist><ref refid="DCE:1BD5FCBE-450D-11DC-A6AA-00123F877750"></ref></reflist></presentation></Lifeline><Message id="DCE:1E8B6840-450D-11DC-A6AA-00123F877750"><presentation><reflist><ref refid="DCE:1E89FC58-450D-11DC-A6AA-00123F877750"></ref></reflist></presentation><receiveEvent><ref refid="DCE:200CF670-450D-11DC-A6AA-00123F877750"></ref></receiveEvent><sendEvent><ref refid="DCE:1E8C1308-450D-11DC-A6AA-00123F877750"></ref></sendEvent></Message><EventOccurrence id="DCE:1E8C1308-450D-11DC-A6AA-00123F877750"><covered><ref refid="DCE:1BD5DF2C-450D-11DC-A6AA-00123F877750"></ref></covered><sendMessage><ref refid="DCE:1E8B6840-450D-11DC-A6AA-00123F877750"></ref></sendMessage></EventOccurrence><EventOccurrence id="DCE:200CF670-450D-11DC-A6AA-00123F877750"><covered><ref refid="DCE:19BCC554-450D-11DC-A6AA-00123F877750"></ref></covered><receiveMessage><ref refid="DCE:1E8B6840-450D-11DC-A6AA-00123F877750"></ref></receiveMessage></EventOccurrence></gaphor>