eric6/Graphics/UMLDialog.py

changeset 8270
6ba3564b7161
parent 8269
87f521f359d5
child 8273
698ae46f40a4
child 8276
1436fd09d1e1
--- a/eric6/Graphics/UMLDialog.py	Thu Apr 29 17:39:17 2021 +0200
+++ b/eric6/Graphics/UMLDialog.py	Fri Apr 30 19:54:20 2021 +0200
@@ -47,8 +47,14 @@
         super().__init__(parent)
         self.setObjectName("UMLDialog")
         
+        self.__project = project
         self.__diagramType = diagramType
-        self.__project = project
+        self.__diagramTypeString = {
+            UMLDialog.ClassDiagram: "Class Diagram",
+            UMLDialog.PackageDiagram: "Package Diagram",
+            UMLDialog.ImportsDiagram: "Imports Diagram",
+            UMLDialog.ApplicationDiagram: "Application Diagram",
+        }.get(diagramType, "Illegal Diagram Type")
         
         from .UMLGraphicsView import UMLGraphicsView
         self.scene = QGraphicsScene(0.0, 0.0, 800.0, 600.0)
@@ -67,7 +73,7 @@
         
         self.umlView.relayout.connect(self.__relayout)
         
-        self.setWindowTitle(self.__diagramTypeString())
+        self.setWindowTitle(self.__diagramTypeString)
     
     def __initActions(self):
         """
@@ -191,29 +197,13 @@
         else:
             return None
     
-    def __diagramTypeString(self):
-        """
-        Private method to generate a readable string for the diagram type.
-        
-        @return readable type string (string)
-        """
-        if self.__diagramType == UMLDialog.ClassDiagram:
-            return "Class Diagram"
-        elif self.__diagramType == UMLDialog.PackageDiagram:
-            return "Package Diagram"
-        elif self.__diagramType == UMLDialog.ImportsDiagram:
-            return "Imports Diagram"
-        elif self.__diagramType == UMLDialog.ApplicationDiagram:
-            return "Application Diagram"
-        else:
-            return "Illegal Diagram Type"
-    
     def __save(self):
         """
         Private slot to save the diagram with the current name.
         """
         self.__saveAs(self.__fileName)
     
+    # TODO: change this to save file in JSON format
     @pyqtSlot()
     def __saveAs(self, filename=""):
         """
@@ -250,7 +240,7 @@
         lines = [
             "version: 1.0",
             "diagram_type: {0} ({1})".format(
-                self.__diagramType, self.__diagramTypeString()),
+                self.__diagramType, self.__diagramTypeString),
             "scene_size: {0};{1}".format(self.scene.width(),
                                          self.scene.height()),
         ]
@@ -273,6 +263,8 @@
         
         self.__fileName = filename
     
+    # TODO: add loading of file in JSON format
+    # TODO: delete the current one with eric7
     def load(self):
         """
         Public method to load a diagram from a file.
@@ -325,7 +317,10 @@
                 self.__showInvalidDataMessage(filename, linenum)
                 return False
             try:
-                self.__diagramType = int(value.strip().split(None, 1)[0])
+                diagramType, diagramTypeString = value.strip().split(None, 1)
+                self.__diagramType = int(self.__diagramType)
+                self.__diagramTypeString = diagramTypeString[1:-1]
+                # remove opening an closing bracket
             except ValueError:
                 self.__showInvalidDataMessage(filename, linenum)
                 return False
@@ -368,7 +363,7 @@
         
         # everything worked fine, so remember the file name and set the
         # window title
-        self.setWindowTitle(self.__diagramTypeString())
+        self.setWindowTitle(self.__diagramTypeString)
         self.__fileName = filename
         
         return True

eric ide

mercurial