added XML visualization for RSpecs
[sface.git] / sface / domItem.py
diff --git a/sface/domItem.py b/sface/domItem.py
new file mode 100644 (file)
index 0000000..8ee3940
--- /dev/null
@@ -0,0 +1,33 @@
+# from PyQt4.QtXml import QDomNode
+
+class domItem:
+    # wrapper around PyQt4.QtXml.QDomNode
+    # it keeps an hash of childrens for
+    # performance reasons
+
+    def __init__(self, node, row, parent = 0):
+        # node is of type PyQt4.QtXml.QDomNode
+        self.domNode = node
+        self.parentItem = parent
+        self.rowNumber = row
+        self.childItems = {}
+
+    def child(self, i):
+        if i in self.childItems:
+            return self.childItems[i]
+        if i >= 0 and i < self.domNode.childNodes().count():
+            childNode = self.domNode.childNodes().item(i)
+            childItem = domItem(childNode, i, self)
+            self.childItems[i] = childItem
+            return childItem
+        return None
+            
+    def parent(self):
+        return self.parentItem
+
+    def node(self):
+        return self.domNode
+
+    def row(self):
+        return self.rowNumber
+