def StackBrowser(root, flist=None, tb=None, top=None): if top is None: top = tk.Toplevel(root) sc = ScrolledCanvas(top, bg="white", highlightthickness=0) sc.frame.pack(expand=1, fill="both") item = StackTreeItem(flist, tb) node = TreeNode(sc.canvas, None, item) node.expand()
def remote_stack_viewer(self): from idlelib import debugobj_r oid = self.rpcclt.remotequeue('exec', 'stackviewer', ('flist', ), {}) if oid is None: self.tkconsole.root.bell() return item = debugobj_r.StubObjectTreeItem(self.rpcclt, oid) from idlelib.tree import ScrolledCanvas, TreeNode top = Toplevel(self.tkconsole.root) theme = idleConf.CurrentTheme() background = idleConf.GetHighlight(theme, 'normal')['background'] sc = ScrolledCanvas(top, bg=background, highlightthickness=0) sc.frame.pack(expand=1, fill='both') node = TreeNode(sc.canvas, None, item) node.expand()
def Find__Directpry(self): find__Dir = input('Enter Directory Path :: \n') locate__Dir = FileTreeItem(find__Dir) dirLocate__node = TreeNode(self.SC.canvas, None, locate__Dir) dirLocate__node.expand()
def Parent__Dir(self): Parent__Directory = self.home to__ParentDir = FileTreeItem(self.home) home__node = TreeNode(self.SC.canvas, to__ParentDir) home__node.expand()
class App(object): def __init__(self): self.root = tkinter.Tk() self.root.title("Source Monitor Treemap") self.initMenu() self.initDropDown() self.pane = tkinter.PanedWindow(self.root, orient=tkinter.HORIZONTAL) self.pane.pack(fill=tkinter.BOTH, expand=1) self.initTreeCanvas() self.initTreemapCanvas() self.filetree = None def initTreemapCanvas(self): self.tmcanvas = TreemapSquarified(self.pane, width='13i', height='8i') self.tmcanvas.config(bg='white') self.pane.config(bg='blue') self.pane.add(self.tmcanvas.frame) self.pane.paneconfigure(self.tmcanvas.frame, sticky=tkinter.N + tkinter.S + tkinter.E + tkinter.W) self.tooltip = TkCanvasToolTip(self.tmcanvas, follow=True) def initTreeCanvas(self): frame = tkinter.Frame(self.pane) self.treecanvas = createScrollableCanvas(frame, width='2i') self.pane.add(frame) self.pane.paneconfigure(frame, sticky=tkinter.N + tkinter.S + tkinter.E + tkinter.W) def initMenu(self): menubar = tkinter.Menu(self.root) filemenu = tkinter.Menu(menubar, tearoff=0) filemenu.add_command(label="Open", command=self.openSMFile) filemenu.add_command(label="Exit", command=self.root.quit) menubar.add_cascade(label="File", menu=filemenu) self.root.config(menu=menubar) def initDropDown(self): self.dropdownframe = tkinter.Frame(self.root) self.sizeOption = tkinter.StringVar() self.sizeOption.set(SIZE_PROP) self.colorOption = tkinter.StringVar() self.colorOption.set(CLR_PROP) # get the list of options options = set(SMPROP_MAPPING.itervalues()) # now convert the set to sorted list options = sorted(options) self.optionsSize = tkinter.OptionMenu(self.dropdownframe, self.sizeOption, command=self.optionchange, *options) self.optionsSize.grid(row=0, column=0) self.optionsClr = tkinter.OptionMenu(self.dropdownframe, self.colorOption, command=self.optionchange, *options) self.optionsClr.grid(row=0, column=1) self.dropdownframe.pack() def optionchange(self, param): sizepropname = self.sizeOption.get() clrpropname = self.colorOption.get() self.createtreemap(sizepropname=sizepropname, clrpropname=clrpropname) def createtreemap(self, tmrootnode=None, sizepropname=SIZE_PROP, clrpropname=CLR_PROP): del self.filetree if (tmrootnode != None): self.tmrootnode = tmrootnode ftreeroot = FileTreeItem(self.tmrootnode, self.tmcanvas) self.filetree = TreeNode(self.treecanvas, None, ftreeroot) self.filetree.update() self.filetree.expand() clrmap = self.getPropClrMap(self.tmrootnode, clrpropname) self.tmcanvas.set(tmcolormap=clrmap, sizeprop=sizepropname, clrprop=clrpropname, upper=[1200, 700], tooltip=self.tooltip) self.tmcanvas.drawTreemap(self.tmrootnode) def getNeutralVal(self, clrpropname, minval, maxval): neutralval = COLOR_PROP_CONFIG.get(clrpropname) if (neutralval == None): neutralval = 0.5 * (minval + maxval) return (neutralval) def getPropClrMap(self, tmrootnode, clrpropname): clrmap = TMColorMap(minclr=(0, 255, 0), maxclr=(255, 0, 0)) minval = tmrootnode.minclr(clrpropname) maxval = tmrootnode.maxclr(clrpropname) neutralval = self.getNeutralVal(clrpropname, minval, maxval) clrmap.setlimits(minval, maxval, neutralval=neutralval) return (clrmap) def openSMFile(self): filename = tkinter.filedialog.askopenfilename( title="Choose Source Monitor output file", filetypes=SMFILEFORMATS, defaultextension=".xml") smtree = SMTree(filename) self.createtreemap(smtree) def run(self): self.root.mainloop()