Dia Orgchart
Dia Orgchart
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
right[t[0]] = max(right[t[0]], x
)
edgeType = dia.get_object_type('
Standard - ZigZagLine')
con, h1, h2 = edgeType.create(x,
y)
h = con.handles[0]
pos = o.connections[2].pos
con.move_handle(h, pos, 0, 0)
h.connect(o.connections[2])
h = con.handles[1]
pos = p.connections[13].pos
con.move_handle(h, pos, 0, 0)
h.connect (p.connections[13])
edges.append(con)
self.objects.append(o)
x = x + 20
table.remove(t)
y = y + 10
for edge in edges:
self.objects.append(edge)
# center parents over children
for o in self.objects:
if 'text' in o.properties.keys() and o.properties['text'
].value.text in right:
y = (o.bounding_box.bottom + o.bounding_box.top)
/2
x = (right[o.properties['text'].value.text] + le
ft[o.properties['text'].value.text])/2
o.move(x,y)
# update connecting lines
for l in self.objects:
if l.type.name == 'Standard - ZigZagLine':
h = l.handles[0]
pos = h.connected_to.object.connections[2].pos
l.move_handle(h, pos, 0, 0)
h = l.handles[1]
pos = h.connected_to.object.connections[13].pos
l.move_handle(h, pos, 0, 0)
def Render(self,data) :
layer = data.active_layer
for o in self.objects :
layer.add_object(o)
data.update_extents ()
def import_csv(sFile, diagramData) :
imp = OrgchartImporter()
f = open(sFile)
imp.Parse(sFile)
return imp.Render(diagramData)
import dia
dia.register_import("CSV Organization Chart", "csv", import_csv);