[Uml-devel] KDE/kdesdk/umbrello/umbrello

Sharan Rao sharanrao at gmail.com
Thu Jul 19 14:52:15 UTC 2007


SVN commit 689923 by sharan:

xmi representation and other related stuff complete, now you can save and open EER documents.

TODO:
*still can't drag a category from listview to canvas.



 M  +19 -1     association.cpp  
 M  +8 -0      object_factory.cpp  
 M  +1 -0      umllistview.cpp  
 M  +3 -0      widget_factory.cpp  


--- trunk/KDE/kdesdk/umbrello/umbrello/association.cpp #689922:689923
@@ -187,6 +187,21 @@
         qElement.appendChild( assocElement );
         return;
     }
+    if (m_AssocType == Uml::at_Child2Category ) {
+        QDomElement assocElement = UMLObject::save("UML:Child2Category", qDoc);
+        assocElement.setAttribute( "client", ID2STR(getObjectId(A)) );
+        assocElement.setAttribute( "supplier", ID2STR(getObjectId(B)) );
+        qElement.appendChild( assocElement );
+        return;
+    }
+    if (m_AssocType == Uml::at_Category2Parent ) {
+        QDomElement assocElement = UMLObject::save("UML:Category2Parent", qDoc);
+        assocElement.setAttribute( "client", ID2STR(getObjectId(A)) );
+        assocElement.setAttribute( "supplier", ID2STR(getObjectId(B)) );
+        qElement.appendChild( assocElement );
+        return;
+    }
+
     QDomElement associationElement = UMLObject::save("UML:Association", qDoc);
     QDomElement connElement = qDoc.createElement("UML:Association.connection");
     getUMLRole(A)->saveToXMI (qDoc, connElement);
@@ -203,7 +218,10 @@
     UMLObject * obj[2] = { NULL, NULL };
     if (m_AssocType == Uml::at_Generalization ||
         m_AssocType == Uml::at_Realization ||
-        m_AssocType == Uml::at_Dependency) {
+        m_AssocType == Uml::at_Dependency ||
+        m_AssocType == Uml::at_Child2Category ||
+        m_AssocType == Uml::at_Category2Parent
+        ) {
         for (unsigned r = Uml::A; r <= Uml::B; r++) {
             const QString fetch = (m_AssocType == Uml::at_Generalization ?
                                    r == Uml::A ? "child" : "parent"
--- trunk/KDE/kdesdk/umbrello/umbrello/object_factory.cpp #689922:689923
@@ -298,6 +298,8 @@
         pObject = new UMLEnum();
     } else if (Uml::tagEq(xmiTag, "Entity")) {
         pObject = new UMLEntity();
+    } else if (Uml::tagEq(xmiTag, "Category")) {
+        pObject = new UMLCategory();
     } else if (Uml::tagEq(xmiTag, "Stereotype")) {
         pObject = new UMLStereotype();
     } else if (Uml::tagEq(xmiTag, "Association") ||
@@ -310,7 +312,13 @@
         pObject = new UMLAssociation(Uml::at_Realization);
     } else if (Uml::tagEq(xmiTag, "Dependency")) {
         pObject = new UMLAssociation(Uml::at_Dependency);
+    } else if (Uml::tagEq(xmiTag, "Child2Category")) {
+        pObject = new UMLAssociation(Uml::at_Child2Category);
+    } else if (Uml::tagEq(xmiTag, "Category2Parent")) {
+        pObject = new UMLAssociation(Uml::at_Category2Parent);
     }
+
+
     return pObject;
 }
 
--- trunk/KDE/kdesdk/umbrello/umbrello/umllistview.cpp #689922:689923
@@ -2579,6 +2579,7 @@
         case Uml::lvt_Component_Folder:
         case Uml::lvt_Deployment_Folder:
         case Uml::lvt_EntityRelationship_Folder:
+        case Uml::lvt_Category:
             item = findItem(nID);
             if (item == NULL) {
                 kError() << pfx << "INTERNAL ERROR: "
--- trunk/KDE/kdesdk/umbrello/umbrello/widget_factory.cpp #689922:689923
@@ -258,6 +258,9 @@
         } else if (tag == "entitywidget") {
             if (validateObjType(Uml::ot_Entity, o, id))
                 widget = new EntityWidget(view, static_cast<UMLEntity*>(o));
+        } else if (tag == "categorywidget") {
+            if (validateObjType(Uml::ot_Category, o, id))
+                widget = new CategoryWidget(view, static_cast<UMLCategory*>(o));
         } else if (tag == "objectwidget" || tag == "UML:ObjectWidget") {
             widget = new ObjectWidget(view, o );
         } else {




More information about the umbrello-devel mailing list