Beispiel #1
0
			# by moving to the cp position first, the connection's points get recalculated
			pos = obj.connections[8].pos
			con.move_handle(h, pos, 0, 0)
			h.connect(obj.connections[8]) # connect to mid-point
		if nodes.has_key(e.dest) :
			h = con.handles[-1]
			obj = nodes[e.dest]
			pos = obj.connections[8].pos
			con.move_handle(h, pos, 0, 0)
			h.connect (obj.connections[8]) # connect to mid-point
		if e.parms.has_key('label') :
			AddLabel (layer, e.LabelPos(), e.parms['label'], e.FontSize())
	diagram = None # FIXME: get it
	if diagram :
		for n, o in nodes.iteritems() :
			diagram.update_connections(o)
		diagram.update_extents()
	return diagramData

if __name__ == '__main__': 
	# just testing at the moment
	nodes, edges = Parse(sys.argv[1])
	for k, n in nodes.iteritems() :
		print "Name:", n.name, "Pos:", n.Pos(), "WxH:", n.Size()
	for e in edges :
		print e.src, "->", e.dest, e.LabelPos(), e.parms
else :
	# run as a Dia plug-in
	import dia
	dia.register_import ("Graphviz Dot", "dot", ImportFile)
Beispiel #2
0
		for s in class_map.keys () :
			c, o = class_map[s]
			print s, c, c.bases
			for b in c.bases :
				if class_map.has_key (b) :
					k, p = class_map[b]
					print c.id, "->", k.id
					con, h1, h2 = dia.get_object_type("UML - Generalization").create(0,0)
					layer.add_object (con)
					h1.connect (p.connections[6])
					h2.connect (o.connections[1])
		# ... and move appropriately
		
		# update placement depending on number of parents ?
		layer.update_extents()

	def import_files (sFile, diagramData) :
		# maybe we should select single file/directory, add inlude directories here
		files = glob.glob (os.path.dirname (sFile) + "/class*.xml")
		files.extend (glob.glob (os.path.dirname (sFile) + "/struct*.xml"))
		classes = GetClasses (files)
		return import_classes (classes, diagramData)

	def import_file (sFile, diagramData) :
		classes = GetClasses ([sFile])
		return import_classes (classes, diagramData)

	dia.register_import("Dox2UML", "xml", import_file)
	dia.register_import("Dox2UML (multiple)", "xml", import_files)
	#dia.register_import("Dox2UML", "h", import_headers)
Beispiel #3
0
        c = theLinks[s]
        for p in c.Parents():
            o, h1, h2 = dia.get_object_type("UML - Generalization").create(
                0, 0)
            layer.add_object(o)
            o2 = theObjects[p]
            h1.connect(o2.connections[6])
            h2.connect(o1.connections[1])
    # update placement depending on number of parents ?

    layer.update_extents()
    #dia.active_display().add_update_all()


if __name__ == '__main__':
    Process(sys.argv[1])
    for c in g_classes:
        if c.Name()[:2] != "__" and c.Name()[:5] != "std::":
            try:
                if c.IsClass():
                    c.Dump()
            except KeyError:
                pass
else:
    try:
        import dia
        #dia.register_import("Cpp via GCC_XML", "cpp", ImportCpp)
        dia.register_import(_("XML from GCC_XML"), "xml", ImportXml)
    except ImportError:
        pass
Beispiel #4
0
            c, o = class_map[s]
            print s, c, c.bases
            for b in c.bases:
                if class_map.has_key(b):
                    k, p = class_map[b]
                    print c.id, "->", k.id
                    con, h1, h2 = dia.get_object_type(
                        "UML - Generalization").create(0, 0)
                    layer.add_object(con)
                    h1.connect(p.connections[6])
                    h2.connect(o.connections[1])
        # ... and move appropriately

        # update placement depending on number of parents ?
        layer.update_extents()

    def import_files(sFile, diagramData):
        # maybe we should select single file/directory, add inlude directories here
        files = glob.glob(os.path.dirname(sFile) + "/class*.xml")
        files.extend(glob.glob(os.path.dirname(sFile) + "/struct*.xml"))
        classes = GetClasses(files)
        return import_classes(classes, diagramData)

    def import_file(sFile, diagramData):
        classes = GetClasses([sFile])
        return import_classes(classes, diagramData)

    dia.register_import("Dox2UML", "xml", import_file)
    dia.register_import("Dox2UML (multiple)", "xml", import_files)
    #dia.register_import("Dox2UML", "h", import_headers)
Beispiel #5
0
	if sName[-1] == "z" :
		import gzip
		f = gzip.open(sName)
	else :
		f = open(sName)
	imp.Parse(f.read())
	if len(sys.argv) > 2 :
		sys.stdout = open(sys.argv[2], "wb")
	imp.Dump()
	sys.exit(0)

if __name__ == '__main__': Test()

def import_svg(sFile, diagramData) :
	imp = Importer()
	f = open(sFile)
	imp.Parse(f.read())
	return imp.Render(diagramData)

def import_svgz(sFile, diagramData) :
	import gzip
	imp = Importer()
	f = gzip.open(sFile)
	imp.Parse(f.read())
	return imp.Render(diagramData)

import dia
dia.register_import("SVG plain", "svg", import_svg)
dia.register_import("SVG compressed", "svgz", import_svgz)

Beispiel #6
0
    nodeType = dia.get_object_type('Flowchart - Box')

    x = 0
    structs = parse_file(filename)
    oType = dia.get_object_type ("UML - Class")
    for [name, fields, methods] in structs:
        x += 10
        obj, h1, h2 = oType.create (x,0) # p.x, p.y
        obj.properties["name"] = name

        dia_fields = []
        dia_methods = []
        for f in fields:
            #print f
            dia_fields.append((f[1],f[0],'','doc',0,0,0))
        for m in methods:
            #print m
            dia_methods.append((m[1],m[0],'doc','',0,0,0,0,()))
        obj.properties["operations"] = dia_methods
        obj.properties["attributes"] = dia_fields
        layer.add_object(obj)
    if diagramData :
        diagramData.update_extents()
        #diagramData.flush()
    # work with bindings test
    #return data

# run as a Dia plug-in
dia.register_import ("c file to be convert", "c", ImportFile)
dia.register_import ("c header file to be convert", "h", ImportFile)
Beispiel #7
0
	for s in theLinks.keys() :
		o1 = theObjects[s]
		c = theLinks[s]
		for p in c.Parents() :
			o, h1, h2 = dia.get_object_type("UML - Generalization").create(0,0)
			layer.add_object(o)
			o2 = theObjects[p]
			h1.connect (o2.connections[6])
			h2.connect (o1.connections[1])
	# update placement depending on number of parents ?
	
	layer.update_extents()
	#dia.active_display().add_update_all()
			
if __name__ == '__main__': 
	Process(sys.argv[1])
	for c in g_classes :
		if c.Name()[:2] != "__" and c.Name()[:5] != "std::" :
			try :
				if c.IsClass() :
					c.Dump()
			except KeyError :
				pass
else :
	try :
		import dia
		#dia.register_import("Cpp via GCC_XML", "cpp", ImportCpp)
		dia.register_import("XML from GCC_XML", "xml", ImportXml)
	except ImportError :
		pass
Beispiel #8
0
            pos = obj.connections[8].pos
            con.move_handle(h, pos, 0, 0)
            h.connect(obj.connections[8])  # connect to mid-point
        if e.dest in nodes:
            h = con.handles[-1]
            obj = nodes[e.dest]
            pos = obj.connections[8].pos
            con.move_handle(h, pos, 0, 0)
            h.connect(obj.connections[8])  # connect to mid-point
        if 'label' in e.parms:
            AddLabel(layer, e.LabelPos(), e.parms['label'], e.FontSize())
    diagram = None  # FIXME: get it
    if diagram:
        for n, o in nodes.items():
            diagram.update_connections(o)
        diagram.update_extents()
    return diagramData


if __name__ == '__main__':
    # just testing at the moment
    nodes, edges = Parse(sys.argv[1])
    for k, n in nodes.items():
        print("Name:", n.name, "Pos:", n.Pos(), "WxH:", n.Size())
    for e in edges:
        print(e.src, "->", e.dest, e.LabelPos(), e.parms)
else:
    # run as a Dia plug-in
    import dia
    dia.register_import(_("Graphviz Dot"), "dot", ImportFile)
Beispiel #9
0
        f = open(sName)
    imp.Parse(f.read())
    if len(sys.argv) > 2:
        sys.stdout = open(sys.argv[2], "wb")
    imp.Dump()
    sys.exit(0)


if __name__ == '__main__': Test()


def import_svg(sFile, diagramData):
    imp = Importer()
    f = open(sFile)
    imp.Parse(f.read())
    return imp.Render(diagramData)


def import_svgz(sFile, diagramData):
    import gzip
    imp = Importer()
    f = gzip.open(sFile)
    imp.Parse(f.read())
    return imp.Render(diagramData)


import dia

dia.register_import(_("SVG plain"), "svg", import_svg)
dia.register_import(_("SVG compressed"), "svgz", import_svgz)
Beispiel #10
0
    nodeType = dia.get_object_type('Flowchart - Box')

    x = 0 
    y = 0
    w = 20
    h = 0.2

    lines = file(sFile).readlines()
    lines = [l.strip() for l in lines if l.strip()]
    max_len = max([len(l) for l in lines])
    box_width = max_len / 2.2
    #w = max_len / 2.2

    for line in lines:
        line = line.strip() 
        print line
        y = y+1.5
        obj, h1, h2 = nodeType.create(x-w/2, y-h/2) # Dot pos is center, Dia (usually) uses top/left
        obj.move_handle(h2, (x+w/2, y+h/2), 0, 0) # resize the object
        obj.properties["text"] = line
        layer.add_object(obj)

        obj.properties["elem_width"] = box_width
        obj.properties["padding"] = 0.10
        obj.properties["elem_height"] = 1.00


# run as a Dia plug-in
import dia
dia.register_import ("lines of names", "txt", ImportFile)
Beispiel #11
0
                y = (o.bounding_box.bottom + o.bounding_box.top) / 2
                x = (right[o.properties['text'].value.text] +
                     left[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)
Beispiel #12
0
		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] + left[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);

        supclass = cls.find("superClass")
        if supclass is not None: bases.append(transform_type(supclass, simple=False))
        for base in bases:
            if base in boilerplate_classes: continue
            if base not in objects:
                objects[base] = ({}, create_stub_class(base.split(".")[-1], layer))
            _, parent = objects[base]
            add_extends(obj, parent, layer)
    layer.update_extents()

def load_xml(fn):
    return ET.parse(fn).getroot()

def is_class(obj):
    return "UML - Class" == str(obj.type)

def change_class_colors(html_col, layer=None):
    layer = layer or dia.active_display().diagram.data.active_layer
    color = parse_html_color(html_col)
    for o in (layer.objects[i] for i in xrange(len(layer.objects))):
        if not is_class(o): continue
        o.properties["fill_colour"] = color

def import_file(fn, diagram_data):
    import_javadoc(load_xml(fn), diagram_data.active_layer)

def load_file(fn):
    import_file(fn, dia.active_display().diagram.data)

dia.register_import("xmldoclet", "xml", import_file)