summaryrefslogtreecommitdiffstats
path: root/backend/tour_menuobject.py~
diff options
context:
space:
mode:
Diffstat (limited to 'backend/tour_menuobject.py~')
-rw-r--r--backend/tour_menuobject.py~63
1 files changed, 51 insertions, 12 deletions
diff --git a/backend/tour_menuobject.py~ b/backend/tour_menuobject.py~
index f72ffab..9bf1d84 100644
--- a/backend/tour_menuobject.py~
+++ b/backend/tour_menuobject.py~
@@ -20,15 +20,21 @@
import io
import os.path
import xml.parsers.expat
+import sys
class MenuNode:
parent = 0
class MenuObject:
- isValid = True;
- currenElement = False;
- rootNode = False;
- activeNode = False;
+ isValid = True
+ currenElement = False
+ rootNode = False
+ activeNode = False
+
+ Icon = False
+ DocRoot = False
+ Locale = False
+ Priority = False
def __init__(self,package):
if not os.path.isfile(package):
@@ -42,30 +48,63 @@ class MenuObject:
self.parser.ParseFile(open(package,"r"))
- def addNode(self,parent):
+ def addNode(self,parent,nodeType):
node = MenuNode()
- if parent = False:
+ node.nodes = list()
+ node.parent = False
+ node.nodeType = nodeType
+
+ if parent != False:
node.parent = parent
parent.nodes.append(node)
-
return node
def parserCharData(self, data):
if self.currenElement == False:
pass
+
+ elif self.currentElement == "DisplayName":
+ self.activeNode.displayName = data
+
+ elif self.currentElement == "Icon":
+ self.activeNode.icon = findIcon(data)
+
+ elif self.currentElement == "DocRoot":
+ self.activeNode.
def parserStartElement(self, name, attrs):
+ print "Encountered "+name+" node Start"
+
+ self.currentElement = name
+
if name == "Package":
- self.rootNode = self.addNode(False)
- self.currentElement = "Package"
+ self.rootNode = self.addNode(False,"Package")
+ self.activeNode = self.rootNode
elif name == "Page":
- self.activeNode = self.addNode(activeNode)
- self.currentElement = "Page"
+ self.activeNode = self.addNode(self.activeNode, "Page")
+
+ elif name == "DisplayName":
+ self.currentElement = "DisplayName"
+
+ elif name == "Icon" or name == "DocRoot" or name == "Locale" or name == "Priority":
+ """
+ These tags are only allowed under root, so we should err if this happens.
+ """
+ if self.activeNode.parent != False:
+ print self.rootNode
+ print self.activeNode
+ print "<"+name+"> node is only allowed underneath the <Package> Node. Please file a bug on the Fedora-tour Fedora component at http://bugzilla.redhat.com"
+ sys.exit()
def parserEndElement(self, name):
- print name
+ print "Encountered "+name+" node End"
+
+ self.currentElement == False
+
+ if name == "Page":
+ self.activeNode = self.activeNode.parent
print MenuObject("../data/package.xml").isValid \ No newline at end of file