示例#1
0
    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,
        )
示例#2
0
    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)
示例#3
0
def test_size_small():
    assert(str(ButtonGroup(size='small')) == "<div class=\"btn-group btn-group-sm\" role=\"group\"></div>")
示例#4
0
def test_size_large():
    assert(str(ButtonGroup(size='large')) == "<div class=\"btn-group btn-group-lg\" role=\"group\"></div>")
示例#5
0
def test_basic():
    assert(str(ButtonGroup()) == "<div class=\"btn-group\" role=\"group\"></div>")
示例#6
0
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>")
示例#7
0
def test_justified():
    assert(str(ButtonGroup(justified=True)) == "<div class=\"btn-group btn-group-justified\" role=\"group\"></div>")
示例#8
0
def test_size_xsmall():
    assert(str(ButtonGroup(vertical=True, size='xsmall')) == "<div class=\"btn-group btn-group-vertical btn-group-xs\" role=\"group\"></div>")
示例#9
0
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'])
示例#10
0
    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,
        )
示例#11
0
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'])