Beispiel #1
0
    def __init__(self, root):
        super().__init__(root)

        self["padding"] = (7, 7, 9, 9)

        self.root = root
        self.fileStorage = self.root.fileStorage

        # file selection
        self.saveToVar = StringVar()
        self.saveToVar.set(True)
        self.fileStorageFrame = FileStorageFrame(self)
        self.fileStorageFrame.grid(column = 1, row = 0, columnspan = 2, sticky = (N, S, E, W),
                                   pady = 5, padx = 2)

        # statusbar
        self.status = StringVar()
        
        self.statusBar = ttk.Label(self, textvariable = self.status)
        self.statusBar.grid(column = 0, row = 4, columnspan = 2, sticky = (S, E, W))
        
        # control button
        self.process = ttk.Button(self, text = "Control", command = self.controlFun)
        self.process.grid(column = 2, row = 4, sticky = E)
        self.process.state(["disabled"])
        
        # report
        self.reportFrame = ttk.LabelFrame(self, text = "Report")
        self.reportFrame.grid(column = 0, row = 0, rowspan = 4, sticky = (N, S, E, W), padx = 5)
        self.reportFrame.columnconfigure(0, weight = 1)
        self.reportFrame.rowconfigure(0, weight = 1)

        self.upFrame = ttk.Frame(self.reportFrame)
        self.upFrame.grid(column = 0, row = 0, columnspan = 2, sticky = (N, S, E, W))
        self.upFrame.columnconfigure(0, weight = 1)
        self.upFrame.rowconfigure(0, weight = 1)
        
        self.contentTree = ttk.Treeview(self.upFrame, selectmode = "none")
        self.contentTree.grid(column = 0, row = 0, sticky = (N, S, E, W))
        self.contentTree["columns"] = ("description", "importance", "tag")
        self.contentTree.column("#0", width = 250, anchor = "w")
        self.contentTree.heading("#0", text = "Problem",
                                 command = lambda: self.orderReport("name"))
        self.contentTree.column("description", width = 200, anchor = "e")
        self.contentTree.heading("description", text = "Description",
                                 command = lambda: self.orderReport("description"))
        self.contentTree.column("importance", width = 60, anchor = "e")
        self.contentTree.heading("importance", text = "Importance",
                                 command = lambda: self.orderReport("importance"))
        self.contentTree.column("tag", width = 10, anchor = "center")
        self.contentTree.heading("tag", text = "Tag", command = lambda: self.orderReport("tag"))
        self.scrollbar = ttk.Scrollbar(self.upFrame, orient = VERTICAL,
                                       command = self.contentTree.yview)
        self.scrollbar.grid(column = 1, row = 0, sticky = (N, S, E))
        self.contentTree.configure(yscrollcommand = self.scrollbar.set)
        
        self.saveToFrame = SaveToFrame(self.reportFrame, label = False)
        self.saveToFrame.grid(column = 0, row = 1, sticky = (E, W))

        self.saveBut = ttk.Button(self.reportFrame, text = "Save", command = self.saveFun)
        self.saveBut.grid(column = 1, row = 1, sticky = E, padx = 2)
    
        self.controlReport = ControlReport(self)
                       
        self.contentTree.tag_bind("file", "<Double-1>", lambda e: self.treeDoubleClick(e))
        self.contentTree.tag_bind("file", "<3>", lambda e: self.filePopUp(e))
        self.contentTree.tag_bind("ok", "<3>", lambda e: self.okPopUp(e))
        self.contentTree.tag_bind("control", "<3>", lambda e: self.controlPopUp(e))
        self.contentTree.tag_configure("comment", background = commentColor())
        
        # method selection frame                
        self.controlFrame = ControlFrame(self)
        self.controlFrame.grid(column = 1, row = 1, columnspan = 2, sticky = (N, W), padx = 10,
                               pady = 55)

        # time frame
        self.timeFrame = TimeFrame(self)
        self.timeFrame.grid(column = 1, row = 2, columnspan = 2, sticky = (N, W), padx = 10)


        self.columnconfigure(0, weight = 1)
        self.rowconfigure(2, weight = 1)
Beispiel #2
0
    def __init__(self, root, files, controlled=False):
        super().__init__(root)

        self.rowconfigure(0, weight=1)

        self.allFiles = files  # used when un-selecting files
        self.files = files  # currently diplayed files
        self.controlled = controlled  # True if FileTree called from controller
        self.root = root
        self.fileStorage = self.root.fileStorage
        self.index = self.root.index  # which file is selected when the FileTree is initialized
        self.usedProblemOrder = -1  # by which method is the tree ordered (index)

        # tree
        self.treeFrame = ttk.Frame(self)
        self.treeFrame.grid(column=0, row=0, columnspan=3, sticky=(N, S, E, W))
        self.treeFrame.rowconfigure(0, weight=1)
        self.treeFrame.columnconfigure(0, weight=1)

        self.tree = ttk.Treeview(self.treeFrame,
                                 selectmode="browse",
                                 height=20)
        self.tree.grid(column=0, row=0, sticky=(N, S, E, W))

        if self.controlled:
            columns = ("problem", "tag")
        else:
            columns = ("tag")
        self.tree["columns"] = columns

        self.tree.column("#0", width=240, anchor="w")
        self.tree.heading("#0", text="File", command=self.orderByNames)

        self.tree.column("tag", width=40, anchor="center")
        self.tree.heading("tag", text="Tag", command=self.orderByTag)

        if self.controlled:
            self.tree.column("problem", width=160, anchor="e")
            self.tree.heading("problem",
                              text="Problems",
                              command=self.orderByProblem)

        self.scrollbar = ttk.Scrollbar(self.treeFrame,
                                       orient=VERTICAL,
                                       command=self.tree.yview)
        self.scrollbar.grid(column=1, row=0, sticky=(N, S, E))
        self.tree.configure(yscrollcommand=self.scrollbar.set)

        self.tree.bind("<1>", lambda e: self.click(e))
        self.tree.bind("<3>", lambda e: self.popUp(e))

        self.tree.tag_configure("comment", background=commentColor())

        self.drawTree()

        # bottom frame
        self.bottomFrame = ttk.Frame(self)
        self.bottomFrame.grid(column=0, row=1, columnspan=2)
        self.bottomFrame.columnconfigure(3, weight=1)
        self.bottomFrame.rowconfigure(1, weight=1)

        # previous and next buttons
        self.fileLabFrame = ttk.Labelframe(self.bottomFrame, text="File")
        self.fileLabFrame.grid(column=0, row=0, sticky=(N, W), pady=3, padx=1)

        self.previousBut = ttk.Button(self.fileLabFrame,
                                      text="Previous",
                                      command=self.previousFun)
        self.previousBut.grid(column=0, row=0, padx=3)

        self.nextBut = ttk.Button(self.fileLabFrame,
                                  text="Next",
                                  command=self.nextFun)
        self.nextBut.grid(column=1, row=0, padx=3)

        # tag buttons
        self.tagLabFrame = ttk.Labelframe(self.bottomFrame, text="Tagging")
        self.tagLabFrame.grid(column=0,
                              row=1,
                              sticky=(N, W),
                              rowspan=2,
                              padx=1,
                              pady=4)

        self.tagBut = ttk.Button(self.tagLabFrame,
                                 text="Tag file",
                                 command=self.tagFun)
        self.tagBut.grid(column=1, row=1, padx=3)
        self.checkTag()

        self.tagAllBut = ttk.Button(self.tagLabFrame,
                                    text="Tag all",
                                    command=self.tagAllFun)
        self.tagAllBut.grid(column=2, row=1, padx=3)

        self.untagAllBut = ttk.Button(self.tagLabFrame,
                                      text="Remove all tags",
                                      command=self.untagAllFun)
        self.untagAllBut.grid(column=3, row=1, padx=3)

        # time frame
        self.timeLabFrame = ttk.Labelframe(self.bottomFrame, text="Time")
        self.timeLabFrame.grid(column=3, row=0, rowspan=2, sticky=N, pady=3)
        self.timeLabFrame.root = self.root

        self.timeFrame = TimeFrame(self.timeLabFrame,
                                   onChange=True,
                                   observe=False)
        self.timeFrame.grid(column=0, row=0)
        self.timeFrame.timeVar.set(TimeFrame.stop)
        self.timeFrame.startTimeVar.set(TimeFrame.start)

        # remove reflections checkbutton
        self.removeReflectionsVar = BooleanVar()
        self.removeReflectionsVar.set(False)
        self.removeReflections = ttk.Checkbutton(
            self.bottomFrame,
            text="Remove reflections",
            variable=self.removeReflectionsVar,
            command=self.toggleReflections)
        self.removeReflections.grid(column=2,
                                    row=2,
                                    padx=7,
                                    pady=5,
                                    sticky=(N, W),
                                    columnspan=2)

        # frame radiobuttons
        self.frameFrame = ttk.Labelframe(self.bottomFrame, text="Frame")
        self.frameFrame.grid(column=2,
                             row=0,
                             padx=5,
                             rowspan=2,
                             pady=3,
                             sticky=N)

        self.frameVar = StringVar()
        self.frameVar.set("arena")

        self.arenaFrameRB = ttk.Radiobutton(self.frameFrame,
                                            text="Arena",
                                            variable=self.frameVar,
                                            value="arena",
                                            command=self.toggleFrame)
        self.arenaFrameRB.grid(column=0, row=0, pady=2)

        self.roomFrameRB = ttk.Radiobutton(self.frameFrame,
                                           text="Room",
                                           variable=self.frameVar,
                                           value="room",
                                           command=self.toggleFrame)
        self.roomFrameRB.grid(column=0, row=1, pady=2)
Beispiel #3
0
    def __init__(self, root, files):
        super().__init__(root)

        self.root = root
        self.fileStorage = self.root.root.root.fileStorage

        self["padx"] = 4
        self["pady"] = 4
        self.grab_set()
        self.focus_set()
        placeWindow(self, 758, 760)
        self.columnconfigure(0, weight=1)
        self.rowconfigure(0, weight=1)

        if files == "arenafiles":
            self.title("Matched files")
            self.initfiles = self.fileStorage.arenafiles
        elif files == "wrongfiles":
            self.title("Non-matched files")
            self.initfiles = self.fileStorage.wrongfiles

        self.shownFiles = files

        # frame with files
        self.filesFrame = ttk.Frame(self)
        self.filesFrame.grid(column=0, row=0, sticky=(N, S, E, W))
        self.filesFrame.columnconfigure(1, weight=1)
        self.filesFrame.rowconfigure(0, weight=1)

        self.filesTree = ttk.Treeview(self.filesFrame, height=35)
        self.filesTree.grid(column=1, row=0, sticky=(N, S, E, W))
        if files == "wrongfiles":
            self.filesTree["columns"] = ("directory")
            directoryWidth = 480
        else:
            self.filesTree["columns"] = ("directory", "tag")
            self.filesTree.column("tag", width=30, anchor="center")
            self.filesTree.heading("tag", text="Tag", command=self.orderByTag)
            directoryWidth = 450
        self.filesTree.column("#0", width=250, anchor="w")
        self.filesTree.heading("#0",
                               text="Filename",
                               command=self.orderByFilename)
        self.filesTree.column("directory", width=directoryWidth, anchor="w")
        self.filesTree.heading("directory",
                               text="Directory",
                               command=self.orderByDirectory)

        self.scrollbar = ttk.Scrollbar(self.filesFrame,
                                       orient=VERTICAL,
                                       command=self.filesTree.yview)
        self.scrollbar.grid(column=2, row=0, sticky=(N, S, E))
        self.filesTree.configure(yscrollcommand=self.scrollbar.set)

        # button frame
        self.buttonFrame = ttk.Frame(self)
        self.buttonFrame.grid(column=0, row=1, sticky=(E, W))
        self.buttonFrame.columnconfigure(3, weight=1)
        self.buttonFrame.columnconfigure(6, weight=1)

        self.removeBut = ttk.Button(self.buttonFrame,
                                    text="Remove Files",
                                    command=self.removeFun)
        self.removeBut.grid(column=0, row=0)

        self.cropBut = ttk.Button(self.buttonFrame,
                                  text="Crop Files",
                                  command=self.cropFun)
        self.cropBut.grid(column=1, row=0)

        self.selectAllBut = ttk.Button(self.buttonFrame,
                                       text="Select All",
                                       command=self.selectAllFun)
        self.selectAllBut.grid(column=2, row=0)

        self.closeBut = ttk.Button(self.buttonFrame,
                                   text="Close",
                                   command=self.closeFun)
        self.closeBut.grid(column=8, row=0)

        if files == "wrongfiles":
            self.pairSelectedBut = ttk.Button(self.buttonFrame,
                                              text="Pair Selected",
                                              command=self.pairSelectedFun)
            self.pairSelectedBut.grid(column=4, row=0)

            self.findPairsBut = ttk.Button(self.buttonFrame,
                                           text="Find Pairs",
                                           command=self.findPairsFun)
            self.findPairsBut.grid(column=5, row=0)

            self.showArenafilesBut = ttk.Button(self.buttonFrame,
                                                text="Show Matched Files",
                                                command=self.showArenafilesFun)
            self.showArenafilesBut.grid(column=7, row=0)
        else:
            self.tagFilesBut = ttk.Button(self.buttonFrame,
                                          text="Tag Files",
                                          command=self.tagFilesFun)
            self.tagFilesBut.grid(column=4, row=0)
            self.untagFilesBut = ttk.Button(self.buttonFrame,
                                            text="Untag Files",
                                            command=self.untagFilesFun)
            self.untagFilesBut.grid(column=5, row=0)
            self.showWrongfilesBut = ttk.Button(self.buttonFrame,
                                                text="Show Non-matched Files",
                                                command=self.showWrongfilesFun)
            self.showWrongfilesBut.grid(column=7, row=0)

        self.filesTree.bind("<3>", lambda e: self.popUp(e))
        self.filesTree.bind("<Double-1>", lambda e: self.doubleClick(e))
        self.filesTree.tag_configure("comment", background=commentColor())

        self.protocol("WM_DELETE_WINDOW", lambda: self.closeFun())

        self.initialize()
Beispiel #4
0
    def __init__(self, root, files, controlled = False):
        super().__init__(root)

        self.rowconfigure(0, weight = 1)

        self.allFiles = files # used when un-selecting files
        self.files = files # currently diplayed files
        self.controlled = controlled # True if FileTree called from controller
        self.root = root
        self.fileStorage = self.root.fileStorage
        self.index = self.root.index # which file is selected when the FileTree is initialized
        self.usedProblemOrder = -1 # by which method is the tree ordered (index)

        # tree
        self.treeFrame = ttk.Frame(self)
        self.treeFrame.grid(column = 0, row = 0, columnspan = 3, sticky = (N, S, E, W))
        self.treeFrame.rowconfigure(0, weight = 1)
        self.treeFrame.columnconfigure(0, weight = 1)
        
        self.tree = ttk.Treeview(self.treeFrame, selectmode = "browse", height = 20)
        self.tree.grid(column = 0, row = 0, sticky = (N, S, E, W))
        
        if self.controlled:
            columns = ("problem", "tag")
        else:
            columns = ("tag")
        self.tree["columns"] = columns

        self.tree.column("#0", width = 240, anchor = "w")        
        self.tree.heading("#0", text = "File", command = self.orderByNames)

        self.tree.column("tag", width = 40, anchor = "center")
        self.tree.heading("tag", text = "Tag", command = self.orderByTag)
        
        if self.controlled:
            self.tree.column("problem", width = 160, anchor = "e")
            self.tree.heading("problem", text = "Problems", command = self.orderByProblem)
            
        self.scrollbar = ttk.Scrollbar(self.treeFrame, orient = VERTICAL,
                                       command = self.tree.yview)
        self.scrollbar.grid(column = 1, row = 0, sticky = (N, S, E))
        self.tree.configure(yscrollcommand = self.scrollbar.set)

        self.tree.bind("<1>", lambda e: self.click(e))
        self.tree.bind("<3>", lambda e: self.popUp(e))

        self.tree.tag_configure("comment", background = commentColor())

        self.drawTree()

        # bottom frame
        self.bottomFrame = ttk.Frame(self)
        self.bottomFrame.grid(column = 0, row = 1, columnspan = 2)
        self.bottomFrame.columnconfigure(3, weight = 1)
        self.bottomFrame.rowconfigure(1, weight = 1)

        # previous and next buttons
        self.fileLabFrame = ttk.Labelframe(self.bottomFrame, text = "File")
        self.fileLabFrame.grid(column = 0, row = 0, sticky = (N, W), pady = 3, padx = 1)
        
        self.previousBut = ttk.Button(self.fileLabFrame, text = "Previous",
                                      command = self.previousFun)
        self.previousBut.grid(column = 0, row = 0, padx = 3)
        
        self.nextBut = ttk.Button(self.fileLabFrame, text = "Next", command = self.nextFun)
        self.nextBut.grid(column = 1, row = 0, padx = 3)

        # tag buttons
        self.tagLabFrame = ttk.Labelframe(self.bottomFrame, text = "Tagging")
        self.tagLabFrame.grid(column = 0, row = 1, sticky = (N, W), rowspan = 2,
                              padx = 1, pady = 4)
        
        self.tagBut = ttk.Button(self.tagLabFrame, text = "Tag file", command = self.tagFun)
        self.tagBut.grid(column = 1, row = 1, padx = 3)
        self.checkTag()

        self.tagAllBut = ttk.Button(self.tagLabFrame, text = "Tag all", command = self.tagAllFun)
        self.tagAllBut.grid(column = 2, row = 1, padx = 3)

        self.untagAllBut = ttk.Button(self.tagLabFrame, text = "Remove all tags",
                                      command = self.untagAllFun)
        self.untagAllBut.grid(column = 3, row = 1, padx = 3)

        # time frame
        self.timeLabFrame = ttk.Labelframe(self.bottomFrame, text = "Time")
        self.timeLabFrame.grid(column = 3, row = 0, rowspan = 2, sticky = N, pady = 3)
        self.timeLabFrame.root = self.root
    
        self.timeFrame = TimeFrame(self.timeLabFrame, onChange = True, observe = False)
        self.timeFrame.grid(column = 0, row = 0)
        self.timeFrame.timeVar.set(TimeFrame.stop)
        self.timeFrame.startTimeVar.set(TimeFrame.start)

        # remove reflections checkbutton
        self.removeReflectionsVar = BooleanVar()
        self.removeReflectionsVar.set(False)
        self.removeReflections = ttk.Checkbutton(self.bottomFrame, text = "Remove reflections",
                                                 variable = self.removeReflectionsVar,
                                                 command = self.toggleReflections)
        self.removeReflections.grid(column = 2, row = 2, padx = 7, pady = 5, sticky = (N, W),
                                    columnspan = 2)

        # frame radiobuttons       
        self.frameFrame = ttk.Labelframe(self.bottomFrame, text = "Frame")
        self.frameFrame.grid(column = 2, row = 0, padx = 5, rowspan = 2, pady = 3, sticky = N)

        self.frameVar = StringVar()
        self.frameVar.set("arena")
        
        self.arenaFrameRB = ttk.Radiobutton(self.frameFrame, text = "Arena",
                                            variable = self.frameVar, value = "arena",
                                            command = self.toggleFrame)
        self.arenaFrameRB.grid(column = 0, row = 0, pady = 2)
        
        self.roomFrameRB = ttk.Radiobutton(self.frameFrame, text = "Room",
                                           variable = self.frameVar, value = "room",
                                           command = self.toggleFrame)
        self.roomFrameRB.grid(column = 0, row = 1, pady = 2)
Beispiel #5
0
    def __init__(self, root):
        super().__init__(root)

        self["padding"] = (7, 7, 9, 9)

        self.root = root
        self.fileStorage = self.root.fileStorage

        # file selection
        self.saveToVar = StringVar()
        self.saveToVar.set(True)
        self.fileStorageFrame = FileStorageFrame(self)
        self.fileStorageFrame.grid(column = 1, row = 0, columnspan = 2, sticky = (N, S, E, W),
                                   pady = 5, padx = 2)

        # statusbar
        self.status = StringVar()
        
        self.statusBar = ttk.Label(self, textvariable = self.status)
        self.statusBar.grid(column = 0, row = 4, columnspan = 2, sticky = (S, E, W))
        
        # control button
        self.process = ttk.Button(self, text = "Control", command = self.controlFun)
        self.process.grid(column = 2, row = 4, sticky = E)
        self.process.state(["disabled"])
        
        # report
        self.reportFrame = ttk.LabelFrame(self, text = "Report")
        self.reportFrame.grid(column = 0, row = 0, rowspan = 4, sticky = (N, S, E, W), padx = 5)
        self.reportFrame.columnconfigure(0, weight = 1)
        self.reportFrame.rowconfigure(0, weight = 1)

        self.upFrame = ttk.Frame(self.reportFrame)
        self.upFrame.grid(column = 0, row = 0, columnspan = 2, sticky = (N, S, E, W))
        self.upFrame.columnconfigure(0, weight = 1)
        self.upFrame.rowconfigure(0, weight = 1)
        
        self.contentTree = ttk.Treeview(self.upFrame, selectmode = "none")
        self.contentTree.grid(column = 0, row = 0, sticky = (N, S, E, W))
        self.contentTree["columns"] = ("description", "importance", "tag")
        self.contentTree.column("#0", width = 250, anchor = "w")
        self.contentTree.heading("#0", text = "Problem",
                                 command = lambda: self.orderReport("name"))
        self.contentTree.column("description", width = 200, anchor = "e")
        self.contentTree.heading("description", text = "Description",
                                 command = lambda: self.orderReport("description"))
        self.contentTree.column("importance", width = 60, anchor = "e")
        self.contentTree.heading("importance", text = "Importance",
                                 command = lambda: self.orderReport("importance"))
        self.contentTree.column("tag", width = 10, anchor = "center")
        self.contentTree.heading("tag", text = "Tag", command = lambda: self.orderReport("tag"))
        self.scrollbar = ttk.Scrollbar(self.upFrame, orient = VERTICAL,
                                       command = self.contentTree.yview)
        self.scrollbar.grid(column = 1, row = 0, sticky = (N, S, E))
        self.contentTree.configure(yscrollcommand = self.scrollbar.set)
        
        self.saveToFrame = SaveToFrame(self.reportFrame, label = False)
        self.saveToFrame.grid(column = 0, row = 1, sticky = (E, W))

        self.saveBut = ttk.Button(self.reportFrame, text = "Save", command = self.saveFun)
        self.saveBut.grid(column = 1, row = 1, sticky = E, padx = 2)
    
        self.controlReport = ControlReport(self)
                       
        self.contentTree.tag_bind("file", "<Double-1>", lambda e: self.treeDoubleClick(e))
        self.contentTree.tag_bind("file", "<3>", lambda e: self.filePopUp(e))
        self.contentTree.tag_bind("ok", "<3>", lambda e: self.okPopUp(e))
        self.contentTree.tag_bind("control", "<3>", lambda e: self.controlPopUp(e))
        self.contentTree.tag_configure("comment", background = commentColor())
        
        # method selection frame                
        self.controlFrame = ControlFrame(self)
        self.controlFrame.grid(column = 1, row = 1, columnspan = 2, sticky = (N, W), padx = 10,
                               pady = 55)

        # time frame
        self.timeFrame = TimeFrame(self)
        self.timeFrame.grid(column = 1, row = 2, columnspan = 2, sticky = (N, W), padx = 10)


        self.columnconfigure(0, weight = 1)
        self.rowconfigure(2, weight = 1)