Exemplo n.º 1
0
def main():
    """Run screen in test window."""
    from data_01_conflictModel import ConflictModel

    root = Tk()
    root.columnconfigure(0, weight=1)
    root.rowconfigure(0, weight=1)

    cFrame = ttk.Frame(root)
    cFrame.columnconfigure(0, weight=1)
    cFrame.rowconfigure(1, weight=1)
    cFrame.grid(column=0, row=0, sticky=NSEW)

    hSep = ttk.Separator(cFrame, orient=VERTICAL)
    hSep.grid(column=1, row=0, rowspan=10, sticky=NSEW)

    conf = ConflictModel()
    conf.load_from_file("save_files/Garrison.gmcr")

    testFrame = StabilityFrame(cFrame, conf)
    if testFrame.hasRequiredData():
        testFrame.buildFrame()
    else:
        print("data missing")
        return
    testFrame.enter()

    root.mainloop()
Exemplo n.º 2
0
def main():
    """Run screen in test window."""
    from data_01_conflictModel import ConflictModel

    root = Tk()
    root.columnconfigure(0, weight=1)
    root.rowconfigure(0, weight=1)

    cFrame = ttk.Frame(root)
    cFrame.columnconfigure(0, weight=1)
    cFrame.rowconfigure(1, weight=1)
    cFrame.grid(column=0, row=0, sticky=NSEW)

    hSep = ttk.Separator(cFrame, orient=VERTICAL)
    hSep.grid(column=1, row=0, rowspan=10, sticky=NSEW)

    conf = ConflictModel()
    conf.load_from_file("save_files/Garrison.gmcr")

    testFrame = PreferencesFrame(cFrame, conf)
    if testFrame.hasRequiredData():
        testFrame.buildFrame()
    else:
        print("data missing")
        return
    testFrame.enter()

    root.mainloop()
def main():
    """Run widget in test window."""
    root = Tk()
    root.columnconfigure(0, weight=1)
    root.rowconfigure(0, weight=1)

    g1 = ConflictModel()
    g1.load_from_file('Examples/SyriaIraq.gmcr')

    theTree = TreeInfeas(root, g1)
    theTree.grid(column=0, row=0, sticky=NSEW)

    root.mainloop()
def main():
    """Run widget in test window."""
    root = Tk()
    root.columnconfigure(0, weight=1)
    root.rowconfigure(0, weight=1)

    g1 = ConflictModel()
    g1.load_from_file('Examples/SyriaIraq.gmcr')

    radFrame = RadiobuttonEntry(root, g1)
    radFrame.grid(column=0, row=0, sticky=(N, W))

    root.mainloop()

    print(radFrame.getStates())
Exemplo n.º 5
0
def main():
    """Run widget in test window."""
    root = Tk()
    root.columnconfigure(0, weight=1)
    root.rowconfigure(0, weight=1)

    g1 = ConflictModel()
    g1.load_from_file('Examples/SyriaIraq.gmcr')

    radFrame = RadiobuttonEntry(root, g1)
    radFrame.grid(column=0, row=0, sticky=(N, W))

    root.mainloop()

    print(radFrame.getStates())
Exemplo n.º 6
0
def main():
    root = Tk()
    root.columnconfigure(0, weight=1)
    root.rowconfigure(0, weight=1)

    g1 = ConflictModel('pris.gmcr')

    res = InverseContent(root, g1)
    res.grid(column=0, row=0, sticky=NSEW)

    root.mainloop()
def main():
    root = Tk()
    root.columnconfigure(0,weight=1)
    root.rowconfigure(0,weight=1)

    g1 = ConflictModel('Prisoners.gmcr')

    f1 = IrreversibleSetter(root,g1)
    f1.grid(column=0,row=0,sticky=(N,S,E,W))

    root.mainloop()
Exemplo n.º 8
0
def main():
    """Run screen in test mode."""
    root = Tk()
    root.columnconfigure(0, weight=1)
    root.rowconfigure(0, weight=1)

    g1 = ConflictModel('Prisoners.gmcr')

    res = LogResultDisp(root, g1)
    res.grid(column=0, row=0, sticky=(N, S, E, W))

    root.mainloop()
Exemplo n.º 9
0
def main():
    """Run widget in test window."""
    root = Tk()
    root.columnconfigure(0, weight=1)
    root.rowconfigure(0, weight=1)

    g1 = ConflictModel('Prisoners.gmcr')

    FeasView = FeasDisp(root, g1)
    FeasView.grid(column=0, row=0, sticky=NSEW)

    root.mainloop()
def main():
    """Run widget in test window."""
    root = Tk()
    root.columnconfigure(0, weight=1)
    root.rowconfigure(0, weight=1)

    g1 = ConflictModel('AmRv2.gmcr')

    theTree = TreeInfeas(root, g1)
    theTree.grid(column=0, row=0, sticky=NSEW)

    root.mainloop()
Exemplo n.º 11
0
def main():
    """Run screen in test window."""
    root = Tk()
    root.columnconfigure(0, weight=1)
    root.rowconfigure(0, weight=1)

    cFrame = ttk.Frame(root)
    cFrame.columnconfigure(0, weight=1)
    cFrame.rowconfigure(1, weight=1)
    cFrame.grid(column=0, row=0, sticky=NSEW)

    hSep = ttk.Separator(cFrame, orient=VERTICAL)
    hSep.grid(column=1, row=0, rowspan=10, sticky=NSEW)

    g1 = ConflictModel()
    g1.load_from_file('Examples/SyriaIraq.gmcr')

    testFrame = MisperceptionFrame(cFrame, g1)
    testFrame.enter()

    root.mainloop()
Exemplo n.º 12
0
def main():
    """Run screen in test window."""
    root = Tk()
    root.columnconfigure(0, weight=1)
    root.rowconfigure(0, weight=1)

    g1 = ConflictModel('Prisoners.gmcr')

    radFrame = RadiobuttonEntry(root, g1)
    radFrame.grid(column=0, row=0, sticky=(N, W))

    root.mainloop()

    print(radFrame.getStates())
Exemplo n.º 13
0
def main():
    """Run screen in test window."""
    root = Tk()
    root.columnconfigure(0, weight=1)
    root.rowconfigure(0, weight=1)

    cFrame = ttk.Frame(root)
    cFrame.columnconfigure(0, weight=1)
    cFrame.rowconfigure(1, weight=1)
    cFrame.grid(column=0, row=0, sticky=NSEW)

    hSep = ttk.Separator(cFrame, orient=VERTICAL)
    hSep.grid(column=1, row=0, rowspan=10, sticky=NSEW)

    testConflict = ConflictModel('pris.gmcr')

    testFrame = InverseFrame(cFrame, testConflict)
    testFrame.enter()

    root.mainloop()
Exemplo n.º 14
0
    def __init__(self, file=None):
        """Initialize the window."""
        self.file = file  # file reference used for saving the conflict.

        self.root = Tk()
        self.root.iconbitmap('gmcr.ico')
        self.root.wm_title('GMCR+ v{} | New Model'.format(__version__))
        self.root.columnconfigure(0, weight=1)
        self.root.rowconfigure(0, weight=1)

        self.frameList = []
        self.frameBtnCmds = []
        self.frameBtnList = []

        self.topFrame = ttk.Frame(self.root)
        self.fileFrame = ttk.Frame(self.topFrame, border=3, relief='raised')
        self.pageSelectFrame = ttk.Frame(self.topFrame,
                                         border=3,
                                         relief='raised')
        self.contentFrame = ttk.Frame(self.topFrame)
        self.topVSep = ttk.Separator(self.topFrame, orient=HORIZONTAL)
        self.bottomHSep = ttk.Separator(self.contentFrame, orient=VERTICAL)

        self.topFrame.grid(column=0, row=0, sticky=NSEW)
        self.topFrame.columnconfigure(2, weight=1)
        self.topFrame.rowconfigure(3, weight=1)
        self.fileFrame.grid(column=0, row=1, sticky=NSEW)
        self.pageSelectFrame.grid(column=1,
                                  row=1,
                                  columnspan=4,
                                  sticky=(N, S, W))
        self.pageSelectFrame.rowconfigure(0, weight=1)
        self.topVSep.grid(column=0, row=2, columnspan=10, sticky=NSEW)
        self.bottomHSep.grid(column=1, row=0, rowspan=10, sticky=NSEW)
        self.contentFrame.grid(column=0, row=3, columnspan=5, sticky=NSEW)
        self.contentFrame.columnconfigure(0, weight=1)
        self.contentFrame.rowconfigure(1, weight=1)

        self.saveButton = ttk.Button(self.fileFrame,
                                     text='Save Conflict',
                                     command=self.saveConflict,
                                     width=20)
        self.saveAsButton = ttk.Button(self.fileFrame,
                                       text='Save Conflict As',
                                       command=self.saveAs,
                                       width=20)
        self.loadButton = ttk.Button(self.fileFrame,
                                     text='Load Conflict',
                                     command=self.loadConflict,
                                     width=20)
        self.newButton = ttk.Button(self.fileFrame,
                                    text='New Conflict',
                                    command=self.newConflict,
                                    width=20)

        self.saveButton.grid(column=0, row=0, sticky=(E, W))
        self.saveAsButton.grid(column=0, row=1, sticky=(E, W))
        self.loadButton.grid(column=0, row=2, sticky=(E, W))
        self.newButton.grid(column=0, row=3, sticky=(E, W))

        self.activeConflict = ConflictModel()

        self.contentFrame.currFrame = None

        self.addMod(DMInpFrame)
        self.addMod(InfeasInpFrame)
        self.addMod(MisperceptionFrame)
        self.addMod(IrrevInpFrame)
        self.addMod(PreferencesFrame)
        self.addMod(PreferenceRankingFrame)
        self.addMod(ResultFrame)
        self.addMod(InverseFrame)
        self.addMod(StabilityFrame)

        self.refreshActiveFrames()

        self.root.bind_all("<<checkData>>", self.checkFramesHaveData)

        if self.file is not None:
            self.loadConflict(self.file)

        self.root.mainloop()
Exemplo n.º 15
0
class MainAppWindow:
    """Top Level Window for the GMCR-py application."""
    def __init__(self, file=None):
        """Initialize the window."""
        self.file = file  # file reference used for saving the conflict.

        self.root = Tk()
        self.root.iconbitmap('gmcr.ico')
        self.root.wm_title('GMCR+ v{} | New Model'.format(__version__))
        self.root.columnconfigure(0, weight=1)
        self.root.rowconfigure(0, weight=1)

        self.frameList = []
        self.frameBtnCmds = []
        self.frameBtnList = []

        self.topFrame = ttk.Frame(self.root)
        self.fileFrame = ttk.Frame(self.topFrame, border=3, relief='raised')
        self.pageSelectFrame = ttk.Frame(self.topFrame,
                                         border=3,
                                         relief='raised')
        self.contentFrame = ttk.Frame(self.topFrame)
        self.topVSep = ttk.Separator(self.topFrame, orient=HORIZONTAL)
        self.bottomHSep = ttk.Separator(self.contentFrame, orient=VERTICAL)

        self.topFrame.grid(column=0, row=0, sticky=NSEW)
        self.topFrame.columnconfigure(2, weight=1)
        self.topFrame.rowconfigure(3, weight=1)
        self.fileFrame.grid(column=0, row=1, sticky=NSEW)
        self.pageSelectFrame.grid(column=1,
                                  row=1,
                                  columnspan=4,
                                  sticky=(N, S, W))
        self.pageSelectFrame.rowconfigure(0, weight=1)
        self.topVSep.grid(column=0, row=2, columnspan=10, sticky=NSEW)
        self.bottomHSep.grid(column=1, row=0, rowspan=10, sticky=NSEW)
        self.contentFrame.grid(column=0, row=3, columnspan=5, sticky=NSEW)
        self.contentFrame.columnconfigure(0, weight=1)
        self.contentFrame.rowconfigure(1, weight=1)

        self.saveButton = ttk.Button(self.fileFrame,
                                     text='Save Conflict',
                                     command=self.saveConflict,
                                     width=20)
        self.saveAsButton = ttk.Button(self.fileFrame,
                                       text='Save Conflict As',
                                       command=self.saveAs,
                                       width=20)
        self.loadButton = ttk.Button(self.fileFrame,
                                     text='Load Conflict',
                                     command=self.loadConflict,
                                     width=20)
        self.newButton = ttk.Button(self.fileFrame,
                                    text='New Conflict',
                                    command=self.newConflict,
                                    width=20)

        self.saveButton.grid(column=0, row=0, sticky=(E, W))
        self.saveAsButton.grid(column=0, row=1, sticky=(E, W))
        self.loadButton.grid(column=0, row=2, sticky=(E, W))
        self.newButton.grid(column=0, row=3, sticky=(E, W))

        self.activeConflict = ConflictModel()

        self.contentFrame.currFrame = None

        self.addMod(DMInpFrame)
        self.addMod(InfeasInpFrame)
        self.addMod(MisperceptionFrame)
        self.addMod(IrrevInpFrame)
        self.addMod(PreferencesFrame)
        self.addMod(PreferenceRankingFrame)
        self.addMod(ResultFrame)
        self.addMod(InverseFrame)
        self.addMod(StabilityFrame)

        self.refreshActiveFrames()

        self.root.bind_all("<<checkData>>", self.checkFramesHaveData)

        if self.file is not None:
            self.loadConflict(self.file)

        self.root.mainloop()

    def addMod(self, newMod):
        """Add a new input frame and Module to the Conflict."""
        newFrame = newMod(self.contentFrame, self.activeConflict)
        self.frameList.append(newFrame)
        newButton = newFrame.makeButton(self.pageSelectFrame, self)
        self.frameBtnList.append(newButton)
        newButton.grid(column=len(self.frameBtnList), row=0, sticky=NSEW)

    def checkFramesHaveData(self, event=None):
        """Check if required data exists for each frame then de/activate."""
        for idx, frame in enumerate(self.frameList):
            if frame.hasRequiredData():
                self.frameBtnList[idx].config(state="normal")
            else:
                frame.clearFrame()
                self.frameBtnList[idx].config(state="disabled")
            if frame != self.contentFrame.currFrame:
                frame.built = False

    def refreshActiveFrames(self, event=None):
        """Unload all frames and attempt to reload the current one."""
        self.unloadAllFrames()
        self.checkFramesHaveData()

        try:
            self.contentFrame.currFrame.built = False
        except AttributeError:
            pass

        try:
            if self.contentFrame.currFrame.hasRequiredData():
                self.contentFrame.currFrame.enter()
            else:
                self.frameBtnCmds[0](self)
        except AttributeError:
            self.frameBtnCmds[0](self)

    def unloadAllFrames(self, event=None):
        """Remove all frames (conflict screens) from the window."""
        for idx, frame in enumerate(self.frameList):
            frame.clearFrame()
            self.frameBtnList[idx].config(state="disabled")

    def frameLeave(self):
        """Ungrid the current frame and performs other exit tasks."""
        try:
            self.contentFrame.currFrame.leave()
        except AttributeError:
            pass

    def saveConflict(self):
        """Save all information to the currently active file."""
        if not self.file:
            self.saveAs()
            return
        try:
            self.contentFrame.currFrame.leave()
        except AttributeError:
            pass
        self.contentFrame.currFrame.enter()
        self.activeConflict.save_to_file(self.file)
        print('Saved')

    def saveAs(self):
        """Open a file dialog to save the conflict to file."""
        print('running saveAs')
        fileName = filedialog.asksaveasfilename(
            defaultextension='.gmcr',
            filetypes=(("GMCR+ Save Files", "*.gmcr"), ("All files", "*.*")),
            parent=self.root)
        if fileName:
            self.file = fileName
            self.root.wm_title('GMCR+ v{} | {}'.format(__version__, self.file))
            self.saveConflict()

    def loadConflict(self, fileName=None):
        """Open a file dialog that prompts for a save file to open."""
        if not fileName:
            fileName = filedialog.askopenfilename(
                filetypes=(("GMCR+ Save Files", "*.gmcr"), ("All files",
                                                            "*.*")),
                initialdir='{}/Examples'.format(os.getcwd()),
                parent=self.root)
        if fileName:
            self.file = fileName
            self.frameBtnCmds[0](self)
            self.frameLeave()
            self.unloadAllFrames()
            print('loading: {}'.format(fileName))
            self.root.wm_title('GMCR+ v{} | {}'.format(__version__, self.file))
            self.activeConflict.load_from_file(fileName)
            self.refreshActiveFrames()

    def newConflict(self):
        """Clear all data, creating a new conflict."""
        print("Initializing new conflict...")
        self.unloadAllFrames()
        self.activeConflict.__init__()
        self.file = None
        self.refreshActiveFrames()
        self.root.wm_title('GMCR+ v{} | New Model'.format(__version__))
Exemplo n.º 16
0
def main():
    from data_01_conflictModel import ConflictModel
    g1 = ConflictModel('Prisoners.gmcr')

    rms = LogicalSolver(g1)