Sun, 09 Sep 2012 17:40:32 +0200
Refactored the UML graphics code.
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> <html><head> <title>eric5.Graphics.UMLClassDiagramBuilder</title> <style> body { background: #EDECE6; margin: 0em 1em 10em 1em; color: black; } h1 { color: white; background: #85774A; } h2 { color: white; background: #85774A; } h3 { color: white; background: #9D936E; } h4 { color: white; background: #9D936E; } a { color: #BA6D36; } </style> </head> <body><a NAME="top" ID="top"></a> <h1>eric5.Graphics.UMLClassDiagramBuilder</h1> <p> Module implementing a dialog showing a UML like class diagram. </p> <h3>Global Attributes</h3> <table> <tr><td>None</td></tr> </table> <h3>Classes</h3> <table> <tr> <td><a href="#UMLClassDiagramBuilder">UMLClassDiagramBuilder</a></td> <td>Class implementing a builder for UML like class diagrams.</td> </tr> </table> <h3>Functions</h3> <table> <tr><td>None</td></tr> </table> <hr /><hr /> <a NAME="UMLClassDiagramBuilder" ID="UMLClassDiagramBuilder"></a> <h2>UMLClassDiagramBuilder</h2> <p> Class implementing a builder for UML like class diagrams. </p> <h3>Derived from</h3> UMLDiagramBuilder <h3>Class Attributes</h3> <table> <tr><td>None</td></tr> </table> <h3>Class Methods</h3> <table> <tr><td>None</td></tr> </table> <h3>Methods</h3> <table> <tr> <td><a href="#UMLClassDiagramBuilder.__init__">UMLClassDiagramBuilder</a></td> <td>Constructor</td> </tr><tr> <td><a href="#UMLClassDiagramBuilder.__addExternalClass">__addExternalClass</a></td> <td>Private method to add a class defined outside the module.</td> </tr><tr> <td><a href="#UMLClassDiagramBuilder.__addLocalClass">__addLocalClass</a></td> <td>Private method to add a class defined in the module.</td> </tr><tr> <td><a href="#UMLClassDiagramBuilder.__arrangeClasses">__arrangeClasses</a></td> <td>Private method to arrange the shapes on the canvas.</td> </tr><tr> <td><a href="#UMLClassDiagramBuilder.__createAssociations">__createAssociations</a></td> <td>Private method to generate the associations between the class shapes.</td> </tr><tr> <td><a href="#UMLClassDiagramBuilder.__getCurrentShape">__getCurrentShape</a></td> <td>Private method to get the named shape.</td> </tr><tr> <td><a href="#UMLClassDiagramBuilder.buildDiagram">buildDiagram</a></td> <td>Public method to build the class shapes of the class diagram.</td> </tr> </table> <h3>Static Methods</h3> <table> <tr><td>None</td></tr> </table> <a NAME="UMLClassDiagramBuilder.__init__" ID="UMLClassDiagramBuilder.__init__"></a> <h4>UMLClassDiagramBuilder (Constructor)</h4> <b>UMLClassDiagramBuilder</b>(<i>dialog, view, project, file, noAttrs=False</i>) <p> Constructor </p><dl> <dt><i>dialog</i></dt> <dd> reference to the UML dialog (UMLDialog) </dd><dt><i>view</i></dt> <dd> reference to the view object (UMLGraphicsView) </dd><dt><i>project</i></dt> <dd> reference to the project object (Project) </dd><dt><i>file</i></dt> <dd> file name of a python module to be shown (string) </dd><dt><i>noAttrs=</i></dt> <dd> flag indicating, that no attributes should be shown (boolean) </dd> </dl><a NAME="UMLClassDiagramBuilder.__addExternalClass" ID="UMLClassDiagramBuilder.__addExternalClass"></a> <h4>UMLClassDiagramBuilder.__addExternalClass</h4> <b>__addExternalClass</b>(<i>_class, x, y</i>) <p> Private method to add a class defined outside the module. </p><p> If the canvas is too small to take the shape, it is enlarged. </p><dl> <dt><i>_class</i></dt> <dd> class to be shown (string) </dd><dt><i>x</i></dt> <dd> x-coordinate (float) </dd><dt><i>y</i></dt> <dd> y-coordinate (float) </dd> </dl><a NAME="UMLClassDiagramBuilder.__addLocalClass" ID="UMLClassDiagramBuilder.__addLocalClass"></a> <h4>UMLClassDiagramBuilder.__addLocalClass</h4> <b>__addLocalClass</b>(<i>className, _class, x, y, isRbModule=False</i>) <p> Private method to add a class defined in the module. </p><dl> <dt><i>className</i></dt> <dd> name of the class to be as a dictionary key (string) </dd><dt><i>_class</i></dt> <dd> class to be shown (ModuleParser.Class) </dd><dt><i>x</i></dt> <dd> x-coordinate (float) </dd><dt><i>y</i></dt> <dd> y-coordinate (float) </dd><dt><i>isRbModule</i></dt> <dd> flag indicating a Ruby module (boolean) </dd> </dl><a NAME="UMLClassDiagramBuilder.__arrangeClasses" ID="UMLClassDiagramBuilder.__arrangeClasses"></a> <h4>UMLClassDiagramBuilder.__arrangeClasses</h4> <b>__arrangeClasses</b>(<i>nodes, routes, whiteSpaceFactor=1.2</i>) <p> Private method to arrange the shapes on the canvas. </p><p> The algorithm is borrowed from Boa Constructor. </p><a NAME="UMLClassDiagramBuilder.__createAssociations" ID="UMLClassDiagramBuilder.__createAssociations"></a> <h4>UMLClassDiagramBuilder.__createAssociations</h4> <b>__createAssociations</b>(<i>routes</i>) <p> Private method to generate the associations between the class shapes. </p><dl> <dt><i>routes</i></dt> <dd> list of relationsships </dd> </dl><a NAME="UMLClassDiagramBuilder.__getCurrentShape" ID="UMLClassDiagramBuilder.__getCurrentShape"></a> <h4>UMLClassDiagramBuilder.__getCurrentShape</h4> <b>__getCurrentShape</b>(<i>name</i>) <p> Private method to get the named shape. </p><dl> <dt><i>name</i></dt> <dd> name of the shape (string) </dd> </dl><dl> <dt>Returns:</dt> <dd> shape (QGraphicsItem) </dd> </dl><a NAME="UMLClassDiagramBuilder.buildDiagram" ID="UMLClassDiagramBuilder.buildDiagram"></a> <h4>UMLClassDiagramBuilder.buildDiagram</h4> <b>buildDiagram</b>(<i></i>) <p> Public method to build the class shapes of the class diagram. </p><p> The algorithm is borrowed from Boa Constructor. </p> <div align="right"><a href="#top">Up</a></div> <hr /> </body></html>