Beispiel #1
0
    def __init__(self, view, address_book_ui):
        super(AddressBookPanel, self).__init__(view)
        self.rows = self.initialise_rows()

        self.add_child(H(view, 1, text='Addresses'))

        form = self.add_child(Form(view, 'address_table_form'))
        self.define_event_handler(self.events.delete_selected)

        def make_link_widget(view, row):
            return A.from_bookmark(
                view,
                address_book_ui.get_edit_bookmark(row.address,
                                                  description='Edit'))

        def make_checkbox_widget(view, row):
            return PrimitiveCheckboxInput(form, row.fields.selected_by_user)

        def make_delete_selected_button(view):
            return Button(form, self.events.delete_selected)

        columns = [
            StaticColumn(Field(label='Name'), 'name'),
            StaticColumn(EmailField(label='Email'), 'email_address'),
            DynamicColumn('', make_link_widget),
            DynamicColumn(make_delete_selected_button, make_checkbox_widget)
        ]

        table = Table(view,
                      caption_text='All my friends',
                      summary='Summary for screen reader')
        table.use_layout(TableLayout(striped=True))
        table.with_data(columns, self.rows)

        form.add_child(table)
Beispiel #2
0
def test_table_layout_header_options(web_fixture, layout_scenarios):
    """TableLayout can style a table header row."""

    data = [DataItem(1, 'T'), DataItem(2, 'H'), DataItem(3, 'E')]

    column_definitions = [
        StaticColumn(Field(label='Row Number'), 'row'),
        StaticColumn(Field(label='Alpha'), 'alpha')
    ]

    layout = TableLayout(heading_theme=layout_scenarios.theme)
    table = Table(web_fixture.view).with_data(column_definitions, data)
    table.use_layout(layout)

    if layout_scenarios.theme is not None:
        assert layout.widget.thead.get_attribute(
            'class') == '%s' % layout_scenarios.expected_css_class
    else:
        assert not layout.widget.thead.has_attribute('class')