Exemplo n.º 1
0
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()
Exemplo n.º 2
0
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()
Exemplo n.º 3
0
 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()
Exemplo n.º 4
0
    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()
Exemplo n.º 5
0
    def Parent__Dir(self):
        Parent__Directory = self.home
        to__ParentDir = FileTreeItem(self.home)

        home__node = TreeNode(self.SC.canvas, to__ParentDir)
        home__node.expand()
Exemplo n.º 6
0
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()