Skip to content

Commit

Permalink
Loading of lines now works.
Browse files Browse the repository at this point in the history
git-svn-id: file:///Users/arjan/backup/gaphor/gaphor/branches/new-canvas@1079 a8418922-720d-0410-834f-a69b97ada669
  • Loading branch information
amolenaar committed Nov 21, 2006
1 parent 77f9aed commit 88dfefb
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 18 deletions.
2 changes: 1 addition & 1 deletion gaphor/actions/mainactions.py
Expand Up @@ -91,7 +91,7 @@ def execute(self):
factory.flush()
gc.collect()
model = factory.create(UML.Package)
model.name = 'New model'
model.name = _('New model')
diagram = factory.create(UML.Diagram)
diagram.package = model
diagram.name='main'
Expand Down
4 changes: 4 additions & 0 deletions gaphor/adapters/connectors.py
Expand Up @@ -106,8 +106,12 @@ def disconnect(self, handle):
class CommentLineConnect(SimpleConnect):
"""Connect a comment line to a comment item.
Connect Comment.annotatedElement to any element
TODO: adapt both ElementItem and DiagramLine
use component.provideAdapter?
"""
component.adapts(items.ElementItem, items.CommentLineItem)
component.adapts(items.DiagramLine, items.CommentLineItem)

def glue(self, handle, x, y):
"""In addition to the normal check, both line ends may not be connected
Expand Down
4 changes: 1 addition & 3 deletions gaphor/diagram/diagramitem.py
Expand Up @@ -78,11 +78,9 @@ def save(self, save_func):

def load(self, name, value):
if name == 'subject':
print self, 'loading subject', value
type(self).subject.load(self, value)
print self, 'subject =', self.subject
else:
log.debug('Setting unknown property "%s" -> "%s"' % (name, value))
#log.debug('Setting unknown property "%s" -> "%s"' % (name, value))
try:
setattr(self, name.replace('-', '_'), eval(value))
except:
Expand Down
12 changes: 6 additions & 6 deletions gaphor/diagram/diagramline.py
Expand Up @@ -115,21 +115,21 @@ def postload(self):
from zope import component
if hasattr(self, '_load_head_connection'):
adapter = component.queryMultiAdapter((self._load_head_connection, self), IConnect)
#self._load_head_connection.connect_handle(self.handles[0])
h = self.handles()[0]
assert adapter, 'No IConnect adapter to connect %s to %s' % (self._load_head_connection, self)
h = self.head

x, y = self.canvas.get_matrix_i2w(self, calculate=True).transform_point(h.x, h.y)
x, y = self.canvas.get_matrix_w2i(self._load_head_connection, calculate=True).transform_point(x, y)
adapter.connect(self.handles()[0], x, y)
adapter.connect(h, x, y)
del self._load_head_connection
if hasattr(self, '_load_tail_connection'):
#self._load_tail_connection.connect_handle(self.handles[-1])
adapter = component.queryMultiAdapter((self._load_tail_connection, self), IConnect)
h = self.handles()[0]
assert adapter, 'No IConnect adapter to connect %s to %s' % (self._load_tail_connection, self)
h = self.tail

x, y = self.canvas.get_matrix_i2w(self, calculate=True).transform_point(h.x, h.y)
x, y = self.canvas.get_matrix_w2i(self._load_tail_connection, calculate=True).transform_point(x, y)
adapter.connect(self.handles()[0], x, y)
adapter.connect(h, x, y)
del self._load_tail_connection
LineItem.postload(self)

Expand Down
2 changes: 0 additions & 2 deletions gaphor/parser.py
Expand Up @@ -178,7 +178,6 @@ def startElement(self, name, attrs):
id = attrs['id']
e = element(id, name)
assert id not in self.elements.keys(), '%s already defined' % (id)#, self.elements[id])
print 'Add model element %s' % id
self.elements[id] = e
self.push(e, name == 'Diagram' and DIAGRAM or ELEMENT)

Expand All @@ -193,7 +192,6 @@ def startElement(self, name, attrs):
id = attrs['id']
c = canvasitem(id, attrs['type'])
assert id not in self.elements.keys(), '%s already defined' % (id) #, self.elements[id])
print 'Add item %s' % id
self.elements[id] = c
self.peek().canvasitems.append(c)
self.push(c, ITEM)
Expand Down
12 changes: 6 additions & 6 deletions gaphor/tests/test_storage.py
Expand Up @@ -188,14 +188,14 @@ def test_load_uml_relationships(self):
assert aa.handles()[1].pos == (50, 60), aa.handles()[1].pos
d1 = d.canvas.select(lambda e: isinstance(e, items.ClassItem))[0]
assert d1
print d1, d1.subject
#print d1, d1.subject

def test_connection(self):
"""
Test connection loading of an association and two classes.
(Should count for all line-like objects alike if this works).
"""
filename = '%s.gaphor' % __module__
filename = '%s_c.gaphor' % __module__

diagram = UML.create(UML.Diagram)
c1 = diagram.create(items.ClassItem, subject=UML.create(UML.Class))
Expand Down Expand Up @@ -235,10 +235,10 @@ def test_connection(self):
storage.load(filename)

assert len(UML.lselect(lambda e: e.isKindOf(UML.Diagram))) == 1
d = UML.select(lambda e: e.isKindOf(UML.Diagram)).next()
assert len(d.canvas.select(lambda i: isinstance(i, items.AssociationItem))) == 1
a = d.canvas.select(lambda i: isinstance(i, items.AssociationItem))[0]
print a.head.connected_to, a.tail.connected_to
d = UML.lselect(lambda e: e.isKindOf(UML.Diagram))[0]
a = d.canvas.select(lambda e: isinstance(e, items.AssociationItem))[0]
assert a.head.connected_to
assert a.tail.connected_to
assert not a.head.connected_to is a.tail.connected_to


Expand Down

0 comments on commit 88dfefb

Please sign in to comment.