Esempio n. 1
0
        def _set_n_var():
            '''
            '''
            n_var, success = self._try_get_val(
                self.widget['design_unified']['disp_n_var'],
                'Number of variables')
            if not success: return

            if 'excel' in self.widget['design_unified']:
                self.widget['design_unified']['excel'].grid_remove()

            if problem_type == 'continuous':
                self.widget['design_unified']['excel'] = Excel(
                    master=frame_excel,
                    rows=n_var,
                    columns=3,
                    width=15,
                    title=['Name', 'Lower bound', 'Upper bound'],
                    dtype=[str, float, float],
                    required=[True] * 3)

            elif problem_type == 'integer':
                self.widget['design_unified']['excel'] = Excel(
                    master=frame_excel,
                    rows=n_var,
                    columns=3,
                    width=15,
                    title=['Name', 'Lower bound', 'Upper bound'],
                    dtype=[str, int, int],
                    required=[True] * 3)

            elif problem_type == 'binary':
                self.widget['design_unified']['excel'] = Excel(
                    master=frame_excel,
                    rows=n_var,
                    columns=1,
                    width=15,
                    title=['Name'],
                    dtype=[str],
                    required=[True])

            elif problem_type == 'categorical':
                self.widget['design_unified']['excel'] = Excel(
                    master=frame_excel,
                    rows=n_var,
                    columns=2,
                    width=15,
                    title=['Name', 'Choices'],
                    dtype=[str, str],
                    required=[True] * 2)

            else:
                raise Exception(f'invalid problem type {problem_type}')

            self.widget['design_unified']['excel'].grid(row=1, column=0)
            self.widget['design_unified']['excel'].set_column(
                0, [f'x{i}' for i in range(1, n_var + 1)])
            self.widget['next'].enable()
Esempio n. 2
0
    def __init__(self, root_view, lock):
        self.root_view = root_view

        title = 'Lock Entries' if lock else 'Release Entries'
        self.window = create_widget('toplevel',
                                    master=self.root_view.root,
                                    title=title)

        self.widget = {}

        frame_n_row = create_widget('frame',
                                    master=self.window,
                                    row=0,
                                    column=0,
                                    sticky=None,
                                    pady=0)
        self.widget['disp_n_row'] = create_widget('labeled_entry',
                                                  master=frame_n_row,
                                                  row=0,
                                                  column=0,
                                                  text='Number of rows',
                                                  class_type='int')
        self.widget['set_n_row'] = create_widget('button',
                                                 master=frame_n_row,
                                                 row=0,
                                                 column=1,
                                                 text='Update')

        self.widget['rowid_excel'] = Excel(master=self.window,
                                           rows=1,
                                           columns=1,
                                           width=10,
                                           title=['Row number'],
                                           dtype=[int],
                                           default=None,
                                           required=[True],
                                           required_mark=False)
        self.widget['rowid_excel'].grid(row=1, column=0)

        frame_action = create_widget('frame',
                                     master=self.window,
                                     row=2,
                                     column=0,
                                     sticky=None,
                                     pady=0)
        self.widget['start'] = create_widget(
            'button',
            master=frame_action,
            row=0,
            column=0,
            text='Lock' if lock else 'Release')
        self.widget['cancel'] = create_widget('button',
                                              master=frame_action,
                                              row=0,
                                              column=1,
                                              text='Cancel')
Esempio n. 3
0
    def __init__(self, root_view, n_obj):
        self.root_view = root_view

        self.window = create_widget('toplevel',
                                    master=self.root_view.root,
                                    title='Enter Performance')

        self.widget = {}

        frame_n_row = create_widget('frame',
                                    master=self.window,
                                    row=0,
                                    column=0,
                                    sticky=None,
                                    pady=0)
        self.widget['disp_n_row'] = create_widget('labeled_entry',
                                                  master=frame_n_row,
                                                  row=0,
                                                  column=0,
                                                  text='Number of rows',
                                                  class_type='int')
        self.widget['set_n_row'] = create_widget('button',
                                                 master=frame_n_row,
                                                 row=0,
                                                 column=1,
                                                 text='Update')

        self.widget['performance_excel'] = Excel(
            master=self.window,
            rows=1,
            columns=n_obj + 1,
            width=10,
            title=['Row number'] + [f'f{i + 1}' for i in range(n_obj)],
            dtype=[int] + [float] * n_obj,
            default=None,
            required=[True] * (n_obj + 1),
            required_mark=False)
        self.widget['performance_excel'].grid(row=1, column=0)

        frame_action = create_widget('frame',
                                     master=self.window,
                                     row=2,
                                     column=0,
                                     sticky=None,
                                     pady=0)
        self.widget['save'] = create_widget('button',
                                            master=frame_action,
                                            row=0,
                                            column=0,
                                            text='Save')
        self.widget['cancel'] = create_widget('button',
                                              master=frame_action,
                                              row=0,
                                              column=1,
                                              text='Cancel')
Esempio n. 4
0
    def __init__(self, root_view, problem_cfg):
        self.root_view = root_view

        self.window = create_widget('toplevel',
                                    master=self.root_view.window,
                                    title='Set Reference Point')

        self.widget = {}

        frame_ref_point = create_widget('labeled_frame',
                                        master=self.window,
                                        text='Reference Point',
                                        row=0,
                                        column=0)
        frame_excel = create_widget('frame',
                                    master=frame_ref_point,
                                    row=0,
                                    column=0)
        self.widget['excel'] = Excel(master=frame_excel,
                                     rows=problem_cfg['n_obj'],
                                     columns=2,
                                     width=15,
                                     title=['Name', 'Reference Point'],
                                     dtype=[str, float])
        self.widget['excel'].grid(row=0, column=0)
        self.widget['excel'].set_column(0, problem_cfg['obj_name'])
        self.widget['excel'].disable_column(0)

        frame_action = create_widget('frame',
                                     master=self.window,
                                     row=1,
                                     column=0,
                                     padx=0,
                                     pady=0,
                                     sticky=None)
        self.widget['save'] = create_widget('button',
                                            master=frame_action,
                                            text='Save',
                                            row=0,
                                            column=0)
        self.widget['cancel'] = create_widget('button',
                                              master=frame_action,
                                              text='Cancel',
                                              row=0,
                                              column=1)
Esempio n. 5
0
    def __init__(self, root_view):
        self.root_view = root_view

        self.window = create_widget('toplevel', master=self.root_view.root, title='Stop Evaluation')

        self.widget = {}

        frame_n_row = create_widget('frame', master=self.window, row=0, column=0, sticky=None, pady=0)
        self.widget['disp_n_row'] = create_widget('labeled_entry',
            master=frame_n_row, row=0, column=0, text='Number of rows', class_type='int')
        self.widget['disp_n_row'].set(1)
        self.widget['set_n_row'] = create_widget('button', master=frame_n_row, row=0, column=1, text='Update')

        self.widget['rowid_excel'] = Excel(master=self.window, rows=1, columns=1, width=10, 
            title=['Row number'], dtype=[int], default=None, required=[True])
        self.widget['rowid_excel'].grid(row=1, column=0)

        frame_action = create_widget('frame', master=self.window, row=2, column=0, sticky=None, pady=0)
        self.widget['stop'] = create_widget('button', master=frame_action, row=0, column=0, text='Stop')
        self.widget['cancel'] = create_widget('button', master=frame_action, row=0, column=1, text='Cancel')
Esempio n. 6
0
        def _set_n_obj():
            '''
            '''
            n_obj, success = self._try_get_val(
                self.widget['performance']['disp_n_obj'],
                'Number of objectives')
            if not success: return

            self.widget['performance']['excel'] = Excel(
                master=frame_excel,
                rows=n_obj,
                columns=3,
                width=15,
                title=['Name', 'Type', 'Reference'],
                dtype=[str, str, float],
                required=[True, True, False],
                valid_check=[None, lambda x: x in ['min', 'max'], None])
            self.widget['performance']['excel'].grid(row=0, column=0)
            self.widget['performance']['excel'].set_column(
                0, [f'f{i}' for i in range(1, n_obj + 1)])
            self.widget['performance']['excel'].set_column(1, ['min'] * n_obj)
            self.widget['next'].enable()
Esempio n. 7
0
    def __init__(self, root_view, problem_cfg):
        self.root_view = root_view

        n_var, var_type = problem_cfg['n_var'], problem_cfg['type']

        var_type_map = {
            'continuous': float,
            'integer': int,
            'binary': int,
            'categorical': str,
            'mixed': object,
        }

        if var_type == 'mixed':
            dtype = []
            for var_info in problem_cfg['var'].values():
                dtype.append(var_type_map[var_info['type']])
        else:
            dtype = [var_type_map[var_type]] * n_var

        self.window = create_widget('toplevel', master=self.root_view.root, title='Enter Design Variables')

        self.widget = {}

        frame_n_row = create_widget('frame', master=self.window, row=0, column=0, sticky=None, pady=0)
        self.widget['disp_n_row'] = create_widget('labeled_entry',
            master=frame_n_row, row=0, column=0, text='Number of rows', class_type='int')
        self.widget['set_n_row'] = create_widget('button', master=frame_n_row, row=0, column=1, text='Update')

        self.widget['design_excel'] = Excel(master=self.window, rows=1, columns=n_var, width=10, 
            title=[f'x{i + 1}' for i in range(n_var)], dtype=dtype, required=[True] * n_var, required_mark=False)
        self.widget['design_excel'].grid(row=1, column=0)

        self.widget['eval_var'] = create_widget('checkbutton', master=self.window, row=2, column=0, text='Automatically evaluate')

        frame_action = create_widget('frame', master=self.window, row=3, column=0, sticky=None, pady=0)
        self.widget['save'] = create_widget('button', master=frame_action, row=0, column=0, text='Save')
        self.widget['cancel'] = create_widget('button', master=frame_action, row=0, column=1, text='Cancel')