]> git.saurik.com Git - wxWidgets.git/blob - utils/wxPython/demo/XMLtreeview.py
bugfix dealing with where the CWD is...
[wxWidgets.git] / utils / wxPython / demo / XMLtreeview.py
1
2 import string
3
4 from wxPython.wx import *
5 try:
6 from xml.parsers import pyexpat
7 haveXML = true
8 except ImportError:
9 haveXML = false
10
11 #----------------------------------------------------------------------
12
13 if not haveXML:
14 def runTest(frame, nb, log):
15 dlg = wxMessageDialog(frame, 'This demo requires the XML package. See http://www.python.org/sigs/xml-sig/',
16 'Sorry', wxOK | wxICON_INFORMATION)
17 dlg.ShowModal()
18 dlg.Destroy()
19
20 else:
21
22 class XMLTree(wxTreeCtrl):
23 def __init__(self, parent, ID):
24 wxTreeCtrl.__init__(self, parent, ID)
25 self.nodeStack = [self.AddRoot("Root")]
26
27 # Define a handler for start element events
28 def StartElement(self, name, attrs ):
29 self.nodeStack.append(self.AppendItem(self.nodeStack[-1], name))
30
31 def EndElement(self, name ):
32 self.nodeStack = self.nodeStack[:-1]
33
34 def CharacterData(self, data ):
35 if string.strip(data):
36 self.AppendItem(self.nodeStack[-1], data)
37
38
39 def LoadTree(self, filename):
40 # Create a parser
41 Parser = pyexpat.ParserCreate()
42
43 # Tell the parser what the start element handler is
44 Parser.StartElementHandler = self.StartElement
45 Parser.EndElementHandler = self.EndElement
46 Parser.CharacterDataHandler = self.CharacterData
47
48 # Parse the XML File
49 ParserStatus = Parser.Parse(open(filename,'r').read(), 1)
50
51
52 def runTest(frame, nb, log):
53 win = XMLTree(nb, -1)
54 win.LoadTree("paper.xml")
55 return win
56
57 #----------------------------------------------------------------------
58
59
60
61
62
63
64 overview = """\
65 """
66