X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f6bcfd974ef26faf6f91a62cac09827e09463fd1..7b11429dc38b6fd1b70d013db023eb62aeae062a:/wxPython/tests/testTree.py diff --git a/wxPython/tests/testTree.py b/wxPython/tests/testTree.py index e445371c94..1b91ffd427 100644 --- a/wxPython/tests/testTree.py +++ b/wxPython/tests/testTree.py @@ -7,110 +7,110 @@ from stat import * GlobalObjList = [] class Obj: - def __init__(self, obj): - self.obj = obj - # Uncomment next line to eliminate crash. - # GlobalObjList.append(self) - - def Name(self): - head, tail = os.path.split(self.obj) - if tail: - return tail - else: - return head - - def HasChildren(self): - return os.path.isdir(self.obj) - - def Children(self): - objList = os.listdir(self.obj) - objList.sort() - objList = map(lambda obj,parent=self.obj: os.path.join(parent,obj), - objList) - objectList = map(Obj, objList) - return objectList - - def __str__(self): - return self.obj - - def __repr__(self): - return self.obj - - def __del__(self): - print 'del', self.obj - + def __init__(self, obj): + self.obj = obj + # Uncomment next line to eliminate crash. + # GlobalObjList.append(self) + + def Name(self): + head, tail = os.path.split(self.obj) + if tail: + return tail + else: + return head + + def HasChildren(self): + return os.path.isdir(self.obj) + + def Children(self): + objList = os.listdir(self.obj) + objList.sort() + objList = map(lambda obj,parent=self.obj: os.path.join(parent,obj), + objList) + objectList = map(Obj, objList) + return objectList + + def __str__(self): + return self.obj + + def __repr__(self): + return self.obj + + def __del__(self): + print 'del', self.obj + #---------------------------------------------------------------------- class pyTree(wx.wxTreeCtrl): - def __init__(self, parent, id, obj): - wx.wxTreeCtrl.__init__(self, parent, id) - self.root = self.AddRoot(obj.Name(), -1, -1, wx.wxTreeItemData('')) - self.SetPyData(self.root, obj) - if obj.HasChildren(): - self.SetItemHasChildren(self.root, wx.TRUE) - wx.EVT_TREE_ITEM_EXPANDING(self, self.GetId(), self.OnItemExpanding) - wx.EVT_TREE_ITEM_COLLAPSED(self, self.GetId(), self.OnItemCollapsed) - wx.EVT_TREE_SEL_CHANGED(self, self.GetId(), self.OnSelChanged) - self.output = None - - def SetOutput(self, output): - self.output = output - - def OnItemExpanding(self,event): - item = event.GetItem() - obj = self.GetPyData(item) - children = obj.Children() - for child in children: - new_item = self.AppendItem(item, child.Name(), -1, -1, - wx.wxTreeItemData('')) - self.SetPyData(new_item, child) - if child.HasChildren(): - self.SetItemHasChildren(new_item, wx.TRUE) - - def OnItemCollapsed(self, event): - item = event.GetItem() - self.DeleteChildren(item) - - def OnSelChanged(self, event): - if not self.output: - return - obj = self.GetPyData( event.GetItem() ) - apply(self.output, (`obj`,)) + def __init__(self, parent, id, obj): + wx.wxTreeCtrl.__init__(self, parent, id) + self.root = self.AddRoot(obj.Name(), -1, -1, wx.wxTreeItemData('')) + self.SetPyData(self.root, obj) + if obj.HasChildren(): + self.SetItemHasChildren(self.root, wx.TRUE) + wx.EVT_TREE_ITEM_EXPANDING(self, self.GetId(), self.OnItemExpanding) + wx.EVT_TREE_ITEM_COLLAPSED(self, self.GetId(), self.OnItemCollapsed) + wx.EVT_TREE_SEL_CHANGED(self, self.GetId(), self.OnSelChanged) + self.output = None + + def SetOutput(self, output): + self.output = output + + def OnItemExpanding(self,event): + item = event.GetItem() + obj = self.GetPyData(item) + children = obj.Children() + for child in children: + new_item = self.AppendItem(item, child.Name(), -1, -1, + wx.wxTreeItemData('')) + self.SetPyData(new_item, child) + if child.HasChildren(): + self.SetItemHasChildren(new_item, wx.TRUE) + + def OnItemCollapsed(self, event): + item = event.GetItem() + self.DeleteChildren(item) + + def OnSelChanged(self, event): + if not self.output: + return + obj = self.GetPyData( event.GetItem() ) + apply(self.output, (`obj`,)) #---------------------------------------------------------------------- if __name__ == '__main__': - class MyFrame(wx.wxFrame): - - def __init__(self): - wx.wxFrame.__init__(self, wx.NULL, -1, 'PyTreeItemData Test', - wx.wxDefaultPosition, wx.wxSize(600,500)) - split = wx.wxSplitterWindow(self, -1) - - if sys.platform == 'win32': - tree = pyTree(split, -1, Obj('C:\\')) - else: - tree = pyTree(split, -1, Obj('/')) - - text = wx.wxTextCtrl(split, -1, '', wx.wxDefaultPosition, - wx.wxDefaultSize, wx.wxTE_MULTILINE) - split.SplitVertically(tree, text, 200) - tree.SetOutput(text.SetValue) - tree.SelectItem(tree.root) - - class MyApp(wx.wxApp): - - def OnInit(self): - frame = MyFrame() - frame.Show(wx.TRUE) - self.SetTopWindow(frame) - return wx.TRUE - - app = MyApp(0) - app.MainLoop() + class MyFrame(wx.wxFrame): + + def __init__(self): + wx.wxFrame.__init__(self, wx.NULL, -1, 'PyTreeItemData Test', + wx.wxDefaultPosition, wx.wxSize(600,500)) + split = wx.wxSplitterWindow(self, -1) + + if sys.platform == 'win32': + tree = pyTree(split, -1, Obj('C:\\')) + else: + tree = pyTree(split, -1, Obj('/')) + + text = wx.wxTextCtrl(split, -1, '', wx.wxDefaultPosition, + wx.wxDefaultSize, wx.wxTE_MULTILINE) + split.SplitVertically(tree, text, 200) + tree.SetOutput(text.SetValue) + tree.SelectItem(tree.root) + + class MyApp(wx.wxApp): + + def OnInit(self): + frame = MyFrame() + frame.Show(wx.TRUE) + self.SetTopWindow(frame) + return wx.TRUE + + app = MyApp(0) + app.MainLoop()