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))
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")