def build_buttons(self): assert len(self.buttons) == 0 num_buttons = getattr(self.vidhub, self.num_buttons_property) if len(self.button_states) != num_buttons: self.button_states = [False] * num_buttons btns_per_row = int(num_buttons // 2) btngrp = ButtonGroup(justified=True) self.widget.addelement(btngrp) for i in range(num_buttons): if i % btns_per_row == 0: btngrp = ButtonGroup(justified=True) self.widget.addelement(btngrp) try: lbl = getattr(self.vidhub, self.label_property)[i] except IndexError: lbl = '' state = self.button_states[i] if state: severity = 'primary' else: severity = 'default' btn = Button(text=lbl, severity=severity, attrs=self.get_data_id_attr(i)) self.buttons.append(btn) btngrp.addelement(btn) btngrp = ButtonGroup() self.edit_enable_btn = Button(text='Edit Name', attrs=self.get_data_id_attr('edit')) btngrp.addelement(self.edit_enable_btn) self.widget.addelement(btngrp) self.edit_widget = InlineTextEdit(app=self.app) self.edit_widget.bind( value=self.on_edit_widget_value, hidden=self.on_edit_widget_hidden, ) self.widget.addelement(self.edit_widget.widget) self.bind( button_states=self.on_button_state, edit_enable=self.on_edit_enable, )
def __init__(self, **kwargs): super().__init__(**kwargs) self.label_text = kwargs.get('label', '') self.initial = kwargs.get('initial', '') self.hidden = kwargs.get('hidden', True) self.input_type = kwargs.get('input_type', 'text') if self.hidden: cl = 'panel hidden' else: cl = 'panel' self.widget = Div(cl=cl, attrs=self.get_data_id_attr()) body = Div(cl='panel-body') grp = Div(cl='input-group') self.label_widget = Span( text=self.label_text, cl='input-group-addon', attrs=self.get_data_id_attr('label'), ) attrs = self.get_data_id_attr('input') attrs['value'] = self.initial self.input_widget = Input( inputtype=self.input_type, attrs=attrs, ) grp.addelement(self.label_widget) grp.addelement(self.input_widget) body.addelement(grp) btngrp = ButtonGroup() self.ok_btn = Button(text='Ok', cl='text-edit-btn', severity='primary', attrs=self.get_data_id_attr('ok')) self.cancel_btn = Button(text='Cancel', cl='text-edit-btn', attrs=self.get_data_id_attr('cancel')) btngrp.addelement(self.ok_btn) btngrp.addelement(self.cancel_btn) body.addelement(btngrp) self.widget.addelement(body) self.bind( label_text=self.on_label_text, initial=self.on_initial, hidden=self.on_hidden, ) self.app.register('load', self.on_app_load)
def test_size_small(): assert(str(ButtonGroup(size='small')) == "<div class=\"btn-group btn-group-sm\" role=\"group\"></div>")
def test_size_large(): assert(str(ButtonGroup(size='large')) == "<div class=\"btn-group btn-group-lg\" role=\"group\"></div>")
def test_basic(): assert(str(ButtonGroup()) == "<div class=\"btn-group\" role=\"group\"></div>")
def test_custom_class_ident_and_style(): assert(str(ButtonGroup(justified=True, cl='abclass', ident='123', style="font-size:0.9em;")) == "<div id=\"123\" class=\"btn-group abclass btn-group-justified\" role=\"group\" style=\"font-size:0.9em;\"></div>")
def test_justified(): assert(str(ButtonGroup(justified=True)) == "<div class=\"btn-group btn-group-justified\" role=\"group\"></div>")
def test_size_xsmall(): assert(str(ButtonGroup(vertical=True, size='xsmall')) == "<div class=\"btn-group btn-group-vertical btn-group-xs\" role=\"group\"></div>")
async def oninit(event): logging.info("INIT") v = View("Sample Sofi Widget Application") n = Navbar(brand="SOFI", fixed='top') n.addlink("LINK 1") n.addlink("LINK 2") n.addtext("Just some Text with a " + str(Anchor("link", cl='navbar-link'))) n.addlink("LINK 2", active=True) b = Dropdown("Dropdown", align='right') b.addelement(DropdownItem('Item Header', header=True)) b.addelement(DropdownItem('Item 1')) b.addelement(DropdownItem('Item 2', disabled=True)) b.addelement(DropdownItem('', divider=True)) b.addelement(DropdownItem('Item 3')) n.adddropdown(b) v.addelement(n) c = Container() tb = ButtonToolbar() bgrp = ButtonGroup() btnDe = Button("Default") btnP = Button("Primary", "primary", ident='primary') btnI = Button("Info", "info") bgrp2 = ButtonGroup() btnS = Button("Success", "success", ident='secondary') btnW = Button("Warning", "warning") btnDa = Button("Danger", "danger") r = Row() bgrp.addelement(btnDe) bgrp.addelement(btnP) bgrp.addelement(btnI) bgrp2.addelement(btnS) bgrp2.addelement(btnW) bgrp2.addelement(btnDa) tb.addelement(bgrp) tb.addelement(bgrp2) r.addelement(tb) c.addelement(r) c.newrow(Heading(2, "Dude!")) c.newrow(Paragraph("Where's My Car?", ident="fiddle")) bd = ButtonDropdown('A Dropdown', size='xs', dropup=True, split=True, severity="success") bd.addelement(DropdownItem('Item Header', header=True)) bd.addelement(DropdownItem('Item 1')) bd.addelement(DropdownItem('Item 2', disabled=True)) bd.addelement(DropdownItem('', divider=True)) bd.addelement(DropdownItem('Item 3')) c.newrow(bd) r = Row() col = Column(count=3) p = Panel("Panel 1") col.addelement(p) r.addelement(col) col = Column(count=3) p = Panel("Panel 2", 'danger') col.addelement(p) r.addelement(col) c.newrow(Paragraph()) c.addelement(r) v.addelement(c) app.load(str(v), event['client'])
def __init__(self, **kwargs): super().__init__(**kwargs) self.vidhub = kwargs.get('vidhub') self.widget = Container(attrs=self.get_data_id_attr()) h = Heading(text='Presets') self.widget.addelement(h) row = Row() col = Column(count=12) btngrp = ButtonGroup(justified=True) for i in range(self.num_presets): try: preset = self.vidhub.presets[i] preset.bind(name=self.on_preset_name) name = preset.name active = preset.active except IndexError: name = str(i + 1) active = False attrs = self.get_data_id_attr(i) if active: severity = 'primary' else: severity = 'default' btn = Button(text=name, cl='preset-btn', severity=severity, attrs=attrs) btngrp.addelement(btn) self.preset_buttons.append(btn) col.addelement(btngrp) row.addelement(col) self.widget.addelement(row) row = Row() col = Column(count=4) btngrp = ButtonGroup() self.edit_enable_btn = Button(text='Edit Name', attrs=self.get_data_id_attr('edit')) self.record_enable_btn = Button(text='Record', attrs=self.get_data_id_attr('record')) btngrp.addelement(self.edit_enable_btn) btngrp.addelement(self.record_enable_btn) col.addelement(btngrp) row.addelement(col) col = Column(count=4) self.edit_widget = InlineTextEdit(app=self.app) self.edit_widget.bind( value=self.on_edit_widget_value, hidden=self.on_edit_widget_hidden, ) col.addelement(self.edit_widget.widget) row.addelement(col) self.widget.addelement(row) self.bind( edit_enable=self.on_edit_enable, record_enable=self.on_record_enable, ) self.vidhub.bind( on_preset_added=self.on_preset_added, on_preset_active=self.on_preset_active, )
async def oninit(event): logging.info("MAIN") v = View("Sample Sofi Widget Application") n = Navbar(brand="SOFI", fixed='top') n.addlink("LINK 1") n.addlink("LINK 2") n.addtext("Just some Text with a " + str(Anchor("link", cl='navbar-link'))) n.addlink("LINK 2", active=True) b = Dropdown("Dropdown", align='right') b.addelement(DropdownItem('Item Header', header=True)) b.addelement(DropdownItem('Item 1')) b.addelement(DropdownItem('Item 2', disabled=True)) b.addelement(DropdownItem('', divider=True)) b.addelement(DropdownItem('Item 3')) n.adddropdown(b) v.addelement(n) c = Container() tb = ButtonToolbar() bgrp = ButtonGroup() btnDe = Button("Default") btnP = Button("Primary", "primary", ident='primary') btnI = Button("Info", "info") bgrp2 = ButtonGroup() btnS = Button("Success", "success", ident='secondary') btnW = Button("Warning", "warning") btnDa = Button("Danger", "danger") r = Row() bgrp.addelement(btnDe) bgrp.addelement(btnP) bgrp.addelement(btnI) bgrp2.addelement(btnS) bgrp2.addelement(btnW) bgrp2.addelement(btnDa) tb.addelement(bgrp) tb.addelement(bgrp2) r.addelement(tb) c.addelement(r) c.newrow(Heading(2, "Dude!")) c.newrow(Paragraph("Where's My Car?", ident="fiddle")) bd = ButtonDropdown('A Dropdown', size='xs', dropup=True, split=True, severity="success") bd.addelement(DropdownItem('Item Header', header=True)) bd.addelement(DropdownItem('Item 1')) bd.addelement(DropdownItem('Item 2', disabled=True)) bd.addelement(DropdownItem('', divider=True)) bd.addelement(DropdownItem('Item 3')) c.newrow(bd) r = Row() col = Column(count=3) p = Panel("Panel 1") col.addelement(p) r.addelement(col) col = Column(count=3) p = Panel("Panel 2", 'danger') col.addelement(p) r.addelement(col) c.newrow(Paragraph()) c.addelement(r) v.addelement(c) app.load(str(v), event['client'])