diff options
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 |