eric7/Graphics/UMLDiagramBuilder.py

branch
eric7
changeset 8312
800c432b34c8
parent 8295
3f5e8b0a338e
child 8318
962bce857696
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/Graphics/UMLDiagramBuilder.py	Sat May 15 18:45:04 2021 +0200
@@ -0,0 +1,111 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the UML diagram builder base class.
+"""
+
+from PyQt5.QtCore import QObject
+
+
+class UMLDiagramBuilder(QObject):
+    """
+    Class implementing the UML diagram builder base class.
+    """
+    def __init__(self, dialog, view, project):
+        """
+        Constructor
+        
+        @param dialog reference to the UML dialog
+        @type UMLDialog
+        @param view reference to the view object
+        @type UMLGraphicsView
+        @param project reference to the project object
+        @type Project
+        """
+        super().__init__(dialog)
+        
+        self.umlView = view
+        self.scene = self.umlView.scene()
+        self.project = project
+    
+    def initialize(self):
+        """
+        Public method to initialize the object.
+        """
+        return
+    
+    def buildErrorMessage(self, msg):
+        """
+        Public method to build an error string to be included in the scene.
+        
+        @param msg error message
+        @type str
+        @return prepared error string
+        @rtype str
+        """
+        return (
+            "<font color='{0}'>".format(
+                self.umlView.getDrawingColors()[0].name()) +
+            msg +
+            "</font>"
+        )
+    
+    def buildDiagram(self):
+        """
+        Public method to build the diagram.
+        
+        This class must be implemented in subclasses.
+        
+        @exception NotImplementedError raised to indicate that this class
+            must be subclassed
+        """
+        raise NotImplementedError(
+            "Method 'buildDiagram' must be implemented in subclasses.")
+    
+    def getPersistenceData(self):
+        """
+        Public method to get a string for data to be persisted.
+        
+        @return persisted data string
+        @rtype str
+        """
+        return ""
+    
+    def parsePersistenceData(self, version, data):
+        """
+        Public method to parse persisted data.
+        
+        @param version version of the data
+        @type str
+        @param data persisted data to be parsed
+        @type str
+        @return flag indicating success
+        @rtype bool
+        """
+        return True
+    
+    def toDict(self):
+        """
+        Public method to collect data to be persisted.
+        
+        @return dictionary containing data to be persisted
+        @rtype dict
+        """
+        return {}
+    
+    def fromDict(self, version, data):
+        """
+        Public method to populate the class with data persisted by 'toDict()'.
+        
+        @param version version of the data
+        @type str
+        @param data dictionary containing the persisted data
+        @type dict
+        @return tuple containing a flag indicating success and an info
+            message in case the diagram belongs to a different project
+        @rtype tuple of (bool, str)
+        """
+        return True, ""

eric ide

mercurial