Exemple #1
0
def get_batch_grid(items, batch_size, titles):
    layout = widgets.Layout(
        width="100%",
        grid_template_columns=" ".join([f"{int(100 / batch_size)}%"] *
                                       batch_size),
    )
    return widgets.GridBox([item.render() for item in items], layout=layout)
def get_row(items: List[Renderable]) -> widgets.GridBox:
    if len(items) == 1:
        layout = widgets.Layout(width="100%", grid_template_columns="100%")
    elif len(items) == 2:
        layout = widgets.Layout(width="100%", grid_template_columns="50% 50%")
    elif len(items) == 3:
        layout = widgets.Layout(width="100%",
                                grid_template_columns="25% 25% 50%")
    elif len(items) == 4:
        layout = widgets.Layout(width="100%",
                                grid_template_columns="25% 25% 25% 25%")
    else:
        raise ValueError("Layout undefined for this number of columns")

    return widgets.GridBox([item.render() for item in items], layout=layout)
Exemple #3
0
    def pack(self,
             children,
             layout,
             template_rows="auto auto auto",
             template_columns="33% 34% 33%",
             name="grid",
             width="100%"):

        return widgets.GridBox(children=children,
                               layout=widgets.Layout(
                                   width=width,
                                   grid_gap='0px 0px',
                                   grid_template_rows=template_rows,
                                   grid_template_columns=template_columns,
                                   grid_template_areas=layout,
                                   grid_area=name))
def get_batch_grid(items: List[Renderable], batch_size: int, titles: bool,
                   subtitles: bool) -> widgets.GridBox:
    layout = widgets.Layout(
        width="100%",
        grid_template_columns=" ".join([f"{int(100 / batch_size)}%"] *
                                       batch_size),
    )
    out = []
    for item in items:
        if subtitles:
            out.append(
                widgets.VBox([
                    widgets.HTML(f"<h5><em>{ item.name }</em></h5>"),
                    item.render()
                ]))
        elif titles:
            out.append(
                widgets.VBox(
                    [widgets.HTML(f"<h4>{ item.name }</h4>"),
                     item.render()]))
        else:
            out.append(item.render())

    return widgets.GridBox(out, layout=layout)
Exemple #5
0
def get_row(items):
    layout = widgets.Layout(width="100%", grid_template_columns="75% 25%")
    return widgets.GridBox([item for item in items], layout=layout)
Exemple #6
0
def get_row(items: List[widgets.Widget]) -> widgets.GridBox:
    layout = widgets.Layout(width="100%", grid_template_columns="75% 25%")
    return widgets.GridBox(items, layout=layout)
Exemple #7
0
    def initiate(self):

        tab_children = []
        ###########################
        # data 1 box
        d1_vbox_childs = []
        ##
        ###
        d1_button_next = widgets.Button(description='next measurement')
        d1_button_prev = widgets.Button(description='prev measurement')

        d1_button_next.on_click(self.on_d1_botton_next)
        d1_button_prev.on_click(self.on_d1_botton_prev)

        d1_dropdown_fnames_options = [
            i.name for i in self.controller.data.dataset1.path2data_list
        ]
        d1_dropdown_fnames_value = self.controller.data.dataset1.path2active.name
        self.d1_dropdown_fnames = widgets.Dropdown(
            options=d1_dropdown_fnames_options,
            value=d1_dropdown_fnames_value,
            #     description='N',
            # disabled=disable_data_2,
        )

        self.d1_dropdown_fnames.observe(self.on_change_d1_dropdown_fnames)

        d1_box_h_1 = widgets.HBox(
            [d1_button_prev, d1_button_next, self.d1_dropdown_fnames])
        ###
        d1_vbox_childs.append(d1_box_h_1)

        ##
        ###
        d1_text_path = widgets.Text(placeholder='path name', disabled=False)
        self.d1_text_path = d1_text_path
        d1_vbox_childs.append(d1_text_path)

        ##
        d1_vbox = widgets.VBox(d1_vbox_childs)
        tab_children.append({'element': d1_vbox, 'title': 'iMet'})

        ############################
        # data 2 box
        if isinstance(self.controller.data.dataset2, type(None)):
            disable_data_2 = True
            d2_dropdown_fnames_options = []
            d2_dropdown_fnames_value = None
        else:
            disable_data_2 = False
            d2_dropdown_fnames_options = [
                i.name for i in self.controller.data.dataset2.path2data_list
            ]
            d2_dropdown_fnames_value = self.controller.data.dataset2.path2active.name

        d2_vbox_childs = []
        ##
        ###
        d2_button_next = widgets.Button(description='next measurement',
                                        disabled=disable_data_2)
        d2_button_prev = widgets.Button(description='prev measurement',
                                        disabled=disable_data_2)
        self.d2_dropdown_fnames = widgets.Dropdown(
            options=d2_dropdown_fnames_options,
            value=d2_dropdown_fnames_value,
            #     description='N',
            disabled=disable_data_2,
        )

        d2_button_next.on_click(self.on_d2_botton_next)
        d2_button_prev.on_click(self.on_d2_botton_prev)
        self.d2_dropdown_fnames.observe(self.on_change_d2_dropdown_fnames)

        d2_box_h_1 = widgets.HBox(
            [d2_button_prev, d2_button_next, self.d2_dropdown_fnames])
        ###
        d2_vbox_childs.append(d2_box_h_1)

        ##
        ###
        ## text field showing the path
        d2_text_path = widgets.Text(placeholder='path name', disabled=False)
        self.d2_text_path = d2_text_path

        d2_vbox_childs.append(d2_text_path)

        ##
        d2_vbox = widgets.VBox(d2_vbox_childs)
        tab_children.append({'element': d2_vbox, 'title': 'POPS'})

        # others box

        # Tab
        tab = widgets.Tab([child['element'] for child in tab_children])
        for e, child in enumerate(tab_children):
            tab.set_title(e, child['title'])

    # accordeon
        txt = 'keymap:\t'
        txt += ' - '.join([
            '{}:{}'.format(i[0], i[1])
            for i in self.controller.view.plot.keymap.items()
        ])
        box_layout = widgets.Layout(border='solid 1px')
        description = widgets.Box((widgets.Label(txt), ), layout=box_layout)
        # items = [widgets.Label('change point'), widgets.Label('followed by'), widgets.Label('')]
        self.gridbox = widgets.GridBox(
            [],
            layout=widgets.Layout(grid_template_columns="repeat(3, 200px)"))
        self.populate_gridbox_from_database()
        self.controller.tp_gb = self.gridbox

        self.button_gridbox_reinitiate = widgets.Button(
            description='sort by datetime')
        self.button_gridbox_reinitiate.on_click(
            self.populate_gridbox_from_database)
        # the old one

        # self.accordeon_start = widgets.Text(value='',
        #                                     placeholder='hit z key',
        #                                     description='start:',
        #                                     disabled=False
        #                                     )
        # self.accordeon_end = widgets.Text(value='',
        #                                     placeholder='hit x key',
        #                                     description='end:',
        #                                     disabled=False
        #                                     )
        # self.accordeon_alt = widgets.Text(value='',
        #                                   placeholder='hit a key',
        #                                   description='altitude:',
        #                                   disabled=False
        #                                   )
        # hbox_accordeon_start_stop = widgets.HBox([self.accordeon_start, self.accordeon_end])

        # self.dropdown_gps_bar_bad= widgets.Dropdown(options=['gps', 'baro', 'bad', 'bad_but_usable_gps', 'bad_but_usable_baro'],
        #                                             value='gps',
        #                                             description='which alt to use:',
        #                                             disabled=False,
        #                                             )

        # self.button_save_unsave_flight = widgets.Button(description = 'save/unsave flight')
        # self.button_save_unsave_flight.on_click(self.on_button_save_flight)

        # hbox_accordeon_alt_source = widgets.HBox([self.dropdown_gps_bar_bad, self.accordeon_alt])

        accordon_box = widgets.VBox(
            [description, self.button_gridbox_reinitiate, self.gridbox]
        )  #,hbox_accordeon_start_stop, hbox_accordeon_alt_source, self.button_save_unsave_flight])
        accordion_children = [accordon_box]
        accordion = widgets.Accordion(children=accordion_children)
        accordion.set_title(0, 'do_stuff')

        # messages
        self.messages = widgets.Textarea('\n'.join(self.controller._message),
                                         layout={'width': '100%'})
        # message_box = widgets.HBox([self.messages])
        # OverVbox

        overVbox = widgets.VBox([tab, accordion, self.messages])
        display(overVbox)
        ####################
        self.update_d1()
        self.update_d2()
        self.update_accordeon()
Exemple #8
0
 def make_horizontal_box(children, layout=Layout()):
     "Make a grid box with `children` and `layout`."
     return widgets.GridBox(children, layout=layout)