Example #1
0
def loadclass(widget, lista,outer):
    for c in lista :
        clas=clase()
        clas=c
	cw=GtkUmlClassWidget(clas.name)
	if clas.Lmethod!=None:
	        for m in clas.Lmethod:
	            mm=method()
	            mm=m
	            listtuples=[]
	            for arg in mm.Largument:
			a=argument()
			a=arg
			listtuples.append((a.type,a.name))
	            cw.add_method(UmlAttributeAccess[mm.accesmod],mm.ret,mm.name,listtuples)

	if clas.Lvar!=None:
	        for v in clas.Lvar:
	            vv=variable()
	            vv=v
	            cw.add_attribute(UmlAttributeAccess[vv.accesmod],vv.vtype,vv.name)
	if outer==None:
		widget.add_class(cw,super_class=clas.extends )	#Superclases added first
	if outer!=None:
		widget.add_class(cw,super_class=clas.extends,outer_class=outer )	#Superclases added first		
        if clas.Linnerclass!=None:
            		clas.Linnerclass.append( loadclass( widget,clas.Linnerclass,clas.name))
Example #2
0
def load(umlWidget, xml):
	# Class, method and attribute loading example. Currently it's all hardcoded, please modify to have all the data loaded from the project's xml format
	
	# Create a Class: GtkUmlClassWidget(ClassName)
	umlClassWidget = GtkUmlClassWidget("My Class")
	
	# Add an attribute: my_class.add_attribute(accessModifier, type, name)
	# Where accessModifier can be: UmlAttributeAccess["public" | "private" | "protected"]
	umlClassWidget.add_attribute(UmlAttributeAccess["public"],"int","id")
	umlClassWidget.add_attribute(UmlAttributeAccess["public"],"String","nombre")
	umlClassWidget.add_attribute(UmlAttributeAccess["protected"],"long","version_interna")
	
	# Add a method: my_class.add_method(accessModifier, type, name, params)
	# Where params is a python list of tuples containing the type and name: [(parameter_type, parameter_name),...] or []
	umlClassWidget.add_method(UmlAttributeAccess["public"],"int","suma",[("int","sumandoA"),("int","sumandoB")])
	umlClassWidget.add_method(UmlAttributeAccess["public"],"float","suma",[("float","sumandoA"),("float","sumandoB")])
	
	# Finally, we must add our recently created class to the TOPMOST GtkUmlLayout widget.
	# This will be passed as a parameter, together with the xml
	umlWidget.add_class(umlClassWidget)
	
	# More examples follow:
	umlClassWidget = GtkUmlClassWidget("My Class 2")
	umlWidget.add_class(umlClassWidget)
	
	# IMPORTANT - Adding a class with a super class (The super class MUST be added first)
	# EG. My Class 3 is a subclass of My Class
	umlClassWidget = GtkUmlClassWidget("My Class 3")
	umlWidget.add_class(umlClassWidget,super_class="My Class")
	
	umlClassWidget = GtkUmlClassWidget("My Class 7")
	umlWidget.add_class(umlClassWidget,super_class="My Class")
	
	# IMPORTANT - Adding a class with an outer class (The outer class MUST be added first)
	# EG. My Class 4 is an inner class of My Class 2
	umlClassWidget = GtkUmlClassWidget("My Class 4")
	umlWidget.add_class(umlClassWidget,outer_class="My Class 2")
	
	umlClassWidget = GtkUmlClassWidget("My Class 5")
	umlWidget.add_class(umlClassWidget,super_class="My Class 3")
	
	# Two examples with both, super and outer clases
	umlClassWidget = GtkUmlClassWidget("My Class 6")
	umlWidget.add_class(umlClassWidget,super_class="My Class 4",outer_class="My Class 2")
	umlClassWidget = GtkUmlClassWidget("My Class 8")
	umlWidget.add_class(umlClassWidget,super_class="My Class 4",outer_class="My Class 2")