Add to_directory method to relevant object classes
[oam.git] / code / network-topology-instance-generator / view / network_viewer.py
index dc6037a..957f8ec 100644 (file)
@@ -17,7 +17,6 @@
 Provides functions to convert the Network into different formats
 """
 
-import encodings
 import json
 from lxml import etree
 from model.python.tapi_common_context import TapiCommonContext
@@ -54,24 +53,34 @@ class NetworkViewer:
         """
         print(self.__network)
 
-    def save(self, filename: str):
+    def save(self, filename: str, running: bool):
         """
         Method saving the class content to a file in json format.
         :param filename: A valid path to a file on the system.
         :type filename: string
         """
         with open(filename, "w", encoding='utf-8') as json_file:
-            output = self.__network.json()
+            output = self.__network.json(running)
             json.dump(output, json_file,
                       ensure_ascii=False, indent=2)
-            for key in ["Node", "Link"]:
-                print(key + "s:", len(output
-                                      ["tapi-common:context"]
-                                      ["tapi-topology:topology-context"]
-                                      ["topology"][0][key.lower()])
-                      )
+            if running is False:
+                for key in ["Node", "Link"]:
+                    print(key + "s:", len(output
+                                        ["tapi-common:context"]
+                                        ["tapi-topology:topology-context"]
+                                        ["topology"][0][key.lower()])
+                        )
             print("File '" + filename + "' saved!")
 
+    def readStylesFromFile(self) -> str:
+        """
+        Method reading the css styles from known file
+        return: content of the file as string
+        """
+        with open('view/svg.style.css') as styles:
+            content = styles.read()
+            return content
+
     def svg(self, filename: str):
         """
         Method saving the class content to a file in xml/svg format.
@@ -80,10 +89,14 @@ class NetworkViewer:
         :type filename: string
         """
         root = self.__network.svg(0, 0)
-        root.addprevious(
-            etree.ProcessingInstruction("xml-stylesheet",
-                                        'href="svg.style.css" type="text/css"')
-        )
+        # not preferred see OAM-257
+        # root.addprevious(
+        #     etree.ProcessingInstruction("xml-stylesheet",
+        #                                 'href="svg.style.css" type="text/css"')
+        # )
+        style = etree.Element("style")
+        style.text = self.readStylesFromFile()
+        root.getchildren()[0].addnext(style)
         etree.ElementTree(root).write(filename,
                                       encoding="utf-8",
                                       xml_declaration=True,