示例#1
0
文件: ui.py 项目: markwingerd/dft_old
class DeleteFittingWindow(Frame):
    """ Handles the window for deleting a Fitting. """
    def __init__(self, parent):
        self.parent = parent
        self.window = Toplevel(self.parent)
        self.window.resizable(width=False, height=False)
        self.fitting_library = FittingLibrary()

        # Call pertinent methods for this window.
        self.combobox_select_fitting()

    def combobox_select_fitting(self):
        """ Gets fitting from the user with an entrybox, adds Okay and Cancel buttons. """
        fitting_list = self.fitting_library.get_fitting_list()

        lbl_enter_name = Label(self.window, text='Select fitting to delete')
        self.cbx_select_fitting = ttk.Combobox(self.window, values=fitting_list)
        btn_cancel = Button(self.window, text='Cancel', command=self.cancel)
        btn_delete = Button(self.window, text='Okay', command=self.delete)

        # Grid management
        lbl_enter_name.grid(column=0, row=0, columnspan=2, sticky=W)
        self.cbx_select_fitting.grid(column=0, row=1, columnspan=2, sticky=EW)
        btn_cancel.grid(column=0, row=2, sticky=E)
        btn_delete.grid(column=1, row=2, sticky=E)

    def cancel(self, *args):
        self.window.destroy()

    def delete(self, *args):
        """  """
        name = self.cbx_select_fitting.get()
        fitting = self.fitting_library.get_fitting(name)
        self.fitting_library.delete_fitting(fitting)

        # Update main window to show some other fitting.
        other_fitting = self.fitting_library.get_fitting_list()[0]
        self.parent.update_fitting(other_fitting)
        self.window.destroy()