def test_toolbar_add():
    t = Toolbar(items=[
        toolbar.Item(text='text1',
                     secondary_text='text2',
                     url='url',
                     new_window=True,
                     icon='icon',
                     icon_color='green',
                     icon_only=False,
                     split=True,
                     divider=True)
    ],
                overflow=[
                    toolbar.Item(text='text12',
                                 secondary_text='text22',
                                 url='url2',
                                 new_window=True,
                                 icon='icon',
                                 icon_color='green',
                                 icon_only=False,
                                 split=True,
                                 divider=True),
                    toolbar.Item(text="overflow")
                ],
                far=[toolbar.Item(text='far')])

    assert isinstance(t, pglet.Control)
    assert isinstance(t, pglet.Toolbar)
    assert t.get_cmd_str() == (
        'toolbar\n'
        '  item divider="true" icon="icon" iconColor="green" iconOnly="false" newWindow="true" '
        'secondaryText="text2" split="true" text="text1" url="url"\n'
        '  overflow\n'
        '    item divider="true" icon="icon" iconColor="green" iconOnly="false" newWindow="true" '
        'secondaryText="text22" split="true" text="text12" url="url2"\n'
        '    item text="overflow"\n'
        '  far\n'
        '    item text="far"'), "Test failed"
Exemple #2
0
def main(page):
    page.title = "Grid example"
    page.update()

    # Basic grid
    page.add(
        Text("Basic grid", size="large"),
        Stack(
            width="50%",
            controls=[
                Grid(
                    columns=[
                        Column(name="First name", field_name="first_name"),
                        Column(name="Last name", field_name="last_name"),
                        Column(name="Age", field_name="age"),
                    ],
                    items=[
                        Person(first_name="John", last_name="Smith", age=30),
                        Person(first_name="Samantha", last_name="Fox", age=43),
                        Person(first_name="Alice", last_name="Brown", age=25),
                    ],
                )
            ],
        ),
    )

    # Sortable grid
    page.add(
        Text("Sortable grid with resizable columns and selectable rows",
             size="large"),
        Grid(
            selection_mode="single",
            preserve_selection=True,
            columns=[
                Column(
                    resizable=True,
                    sortable="string",
                    name="First name",
                    field_name="first_name",
                ),
                Column(
                    resizable=True,
                    sortable="string",
                    sorted="asc",
                    name="Last name",
                    field_name="last_name",
                ),
                Column(resizable=True,
                       sortable="number",
                       name="Age",
                       field_name="age"),
            ],
            items=[
                Person(first_name="John", last_name="Smith", age=30),
                Person(first_name="Samantha", last_name="Fox", age=43),
                Person(first_name="Alice", last_name="Brown", age=25),
            ],
        ),
    )

    # Compact grid
    page.add(
        Text("Compact grid with no header and multiple selection",
             size="large"),
        Grid(
            compact=True,
            header_visible=False,
            selection_mode="multiple",
            preserve_selection=True,
            columns=[
                Column(max_width=100, field_name="first_name"),
                Column(max_width=100, field_name="last_name"),
                Column(max_width=100, field_name="age"),
            ],
            items=[
                Person(first_name="John", last_name="Smith", age=30),
                Person(first_name="Samantha", last_name="Fox", age=43),
                Person(first_name="Alice", last_name="Brown", age=25),
            ],
        ),
    )

    # Dynamic grid
    grid = None

    def delete_records(e):
        for r in grid.selected_items:
            grid.items.remove(r)
        page.update()

    delete_records = toolbar.Item(text="Delete records",
                                  icon="Delete",
                                  disabled=True,
                                  on_click=delete_records)
    grid_toolbar = Toolbar(items=[delete_records])

    def grid_items_selected(e):
        delete_records.disabled = len(e.control.selected_items) == 0
        delete_records.update()

    grid = Grid(
        selection_mode="multiple",
        compact=True,
        header_visible=True,
        columns=[
            Column(name="First name",
                   template_controls=[Textbox(value="{first_name}")]),
            Column(name="Last name",
                   template_controls=[Textbox(value="{last_name}")]),
            Column(name="Age", template_controls=[Text(value="{age}")]),
            Column(
                name="Favorite color",
                template_controls=[
                    Dropdown(
                        value="{color}",
                        options=[
                            dropdown.Option("red", "Red"),
                            dropdown.Option("green", "Green"),
                            dropdown.Option("blue", "Blue"),
                        ],
                    )
                ],
            ),
            Column(name="Is employee",
                   template_controls=[Checkbox(value_field="employee")]),
        ],
        items=[
            Person(
                first_name="John",
                last_name="Smith",
                age=30,
                employee=False,
                color="blue",
            ),
            Person(
                first_name="Jack",
                last_name="Brown",
                age=43,
                employee=True,
                color="green",
            ),
            Person(first_name="Alice", last_name="Fox", age=25,
                   employee=False),
        ],
        margin=0,
        on_select=grid_items_selected,
    )

    first_name = Textbox("First name")
    last_name = Textbox("Last name")
    age = Textbox("Age")

    def add_record(e):
        grid.items.append(
            Person(
                first_name=first_name.value,
                last_name=last_name.value,
                age=age.value,
                employee=True,
            ))
        first_name.value = ""
        last_name.value = ""
        age.value = ""
        page.update()

    page.add(
        Text("Dynamic grid with template columns", size="large"),
        grid_toolbar,
        grid,
        Text("Add new employee record", size="medium"),
        Stack(horizontal=True, controls=[first_name, last_name, age]),
        Button("Add record", on_click=add_record),
    )
def main(page):
    page.title = "Grid example"
    page.update()

    # Basic grid
    page.add(
        Text("Basic grid", size='large'),
        Stack(width='50%',
              controls=[
                  Grid(columns=[
                      Column(name="First name", field_name="first_name"),
                      Column(name="Last name", field_name="last_name"),
                      Column(name="Age", field_name="age")
                  ],
                       items=[
                           Person(first_name='John', last_name='Smith',
                                  age=30),
                           Person(first_name='Samantha',
                                  last_name='Fox',
                                  age=43),
                           Person(first_name='Alice',
                                  last_name='Brown',
                                  age=25)
                       ])
              ]))

    # Sortable grid
    page.add(
        Text("Sortable grid with resizable columns and selectable rows",
             size='large'),
        Grid(selection_mode='single',
             preserve_selection=True,
             columns=[
                 Column(resizable=True,
                        sortable='string',
                        name="First name",
                        field_name="first_name"),
                 Column(resizable=True,
                        sortable='string',
                        sorted='asc',
                        name="Last name",
                        field_name="last_name"),
                 Column(resizable=True,
                        sortable='number',
                        name="Age",
                        field_name="age")
             ],
             items=[
                 Person(first_name='John', last_name='Smith', age=30),
                 Person(first_name='Samantha', last_name='Fox', age=43),
                 Person(first_name='Alice', last_name='Brown', age=25)
             ]))

    # Compact grid
    page.add(
        Text("Compact grid with no header and multiple selection",
             size='large'),
        Grid(compact=True,
             header_visible=False,
             selection_mode='multiple',
             preserve_selection=True,
             columns=[
                 Column(max_width=100, field_name="first_name"),
                 Column(max_width=100, field_name="last_name"),
                 Column(max_width=100, field_name="age")
             ],
             items=[
                 Person(first_name='John', last_name='Smith', age=30),
                 Person(first_name='Samantha', last_name='Fox', age=43),
                 Person(first_name='Alice', last_name='Brown', age=25)
             ]))

    # Dynamic grid
    grid = None

    def delete_records(e):
        for r in grid.selected_items:
            grid.items.remove(r)
        page.update()

    delete_records = toolbar.Item(text="Delete records",
                                  icon='Delete',
                                  disabled=True,
                                  on_click=delete_records)
    grid_toolbar = Toolbar(items=[delete_records])

    def grid_items_selected(e):
        delete_records.disabled = (len(e.control.selected_items) == 0)
        delete_records.update()

    grid = Grid(
        selection_mode='multiple',
        compact=True,
        header_visible=True,
        columns=[
            Column(name='First name',
                   template_controls=[Textbox(value="{first_name}")]),
            Column(name='Last name',
                   template_controls=[Textbox(value="{last_name}")]),
            Column(name='Age', template_controls=[Text(value="{age}")]),
            Column(name='Is employee',
                   template_controls=[Checkbox(value_field="employee")])
        ],
        items=[
            Person(first_name='John',
                   last_name='Smith',
                   age=30,
                   employee=False),
            Person(first_name='Jack', last_name='Brown', age=43,
                   employee=True),
            Person(first_name='Alice', last_name='Fox', age=25, employee=False)
        ],
        margin=0,
        on_select=grid_items_selected)

    first_name = Textbox('First name')
    last_name = Textbox('Last name')
    age = Textbox('Age')

    def add_record(e):
        grid.items.append(
            Person(first_name=first_name.value,
                   last_name=last_name.value,
                   age=age.value,
                   employee=True))
        first_name.value = ''
        last_name.value = ''
        age.value = ''
        page.update()

    page.add(Text("Dynamic grid with template columns",
                  size='large'), grid_toolbar, grid,
             Text("Add new employee record", size='medium'),
             Stack(horizontal=True, controls=[first_name, last_name, age]),
             Button("Add record", on_click=add_record))
Exemple #4
0
],
         items=[
             Contact(first_name='Inesa', last_name='Fitsner'),
             Contact(first_name='Fiodar', last_name='Fitsner')
         ])

#page.add(g)

p = Panel(title='Hello',
          open=True,
          controls=[Text(value='Are you sure?')],
          footer=[Button(text='OK'), Button(text="Cancel")])

#page.add(p)

t = Toolbar(items=[toolbar.Item(text='Are you sure?')],
            overflow=[toolbar.Item(text='OK'),
                      toolbar.Item(text="Cancel")],
            far=[toolbar.Item(text='far')])

#page.add(t)

vbc = VerticalBarChart(x_type='number',
                       data=[
                           P(x='1', y=100),
                           P(x='80', y=200),
                           P(x='100', y=300),
                       ])

page.add(vbc)
Exemple #5
0
def test_toolbar_add():
    t = Toolbar(
        inverted=True,
        items=[
            toolbar.Item(
                text="text1",
                secondary_text="text2",
                url="url",
                new_window=True,
                icon="icon",
                icon_color="green",
                icon_only=False,
                split=True,
                divider=True,
            )
        ],
        overflow=[
            toolbar.Item(
                text="text12",
                secondary_text="text22",
                url="url2",
                new_window=True,
                icon="icon",
                icon_color="green",
                icon_only=False,
                split=True,
                divider=True,
            ),
            toolbar.Item(text="overflow"),
        ],
        far=[toolbar.Item(text="far")],
    )

    assert isinstance(t, pglet.Control)
    assert isinstance(t, pglet.Toolbar)
    assert t.get_cmd_str() == [
        Command(indent=0, name=None, values=["toolbar"], attrs={"inverted": "true"}, lines=[], commands=[]),
        Command(
            indent=2,
            name=None,
            values=["item"],
            attrs={
                "divider": "true",
                "icon": "icon",
                "iconcolor": "green",
                "icononly": "false",
                "newwindow": "true",
                "secondarytext": "text2",
                "split": "true",
                "text": "text1",
                "url": "url",
            },
            lines=[],
            commands=[],
        ),
        Command(indent=2, name=None, values=["overflow"], attrs={}, lines=[], commands=[]),
        Command(
            indent=4,
            name=None,
            values=["item"],
            attrs={
                "divider": "true",
                "icon": "icon",
                "iconcolor": "green",
                "icononly": "false",
                "newwindow": "true",
                "secondarytext": "text22",
                "split": "true",
                "text": "text12",
                "url": "url2",
            },
            lines=[],
            commands=[],
        ),
        Command(indent=4, name=None, values=["item"], attrs={"text": "overflow"}, lines=[], commands=[]),
        Command(indent=2, name=None, values=["far"], attrs={}, lines=[], commands=[]),
        Command(indent=4, name=None, values=["item"], attrs={"text": "far"}, lines=[], commands=[]),
    ], "Test failed"
def toolbars(page):
    def item_clicked(e):
        page.controls.insert(
            0,
            Message(value=f'Menu item "{e.control.text}" was clicked',
                    dismiss=True))
        page.update()

    standard_toolbar = Toolbar(items=[
        toolbar.Item(text='New',
                     icon='Add',
                     items=[
                         toolbar.Item(text='Email message',
                                      icon='Mail',
                                      on_click=item_clicked),
                         toolbar.Item(text='Calendar event',
                                      icon='Calendar',
                                      on_click=item_clicked)
                     ]),
        toolbar.Item(text='Share',
                     icon='Share',
                     split=True,
                     items=[
                         toolbar.Item(text='Share to Twitter',
                                      on_click=item_clicked),
                         toolbar.Item(text='Share to Facebook',
                                      on_click=item_clicked),
                         toolbar.Item(text='Share to Somewhere',
                                      disabled=True,
                                      on_click=item_clicked),
                         toolbar.Item(text='Share to Email',
                                      data='sharetoemail',
                                      items=[
                                          toolbar.Item(text='Share to Outlook',
                                                       on_click=item_clicked),
                                          toolbar.Item(text='Share to Gmail',
                                                       on_click=item_clicked)
                                      ])
                     ]),
        toolbar.Item(text='To to Google',
                     icon='Globe',
                     url='https://google.com',
                     new_window=True,
                     secondary_text='New window')
    ],
                               overflow=[
                                   toolbar.Item(text='Item 1',
                                                icon='Shop',
                                                on_click=item_clicked),
                                   toolbar.Item(text='Item 2',
                                                icon='Airplane',
                                                on_click=item_clicked)
                               ],
                               far=[
                                   toolbar.Item(text='Grid view',
                                                icon='Tiles',
                                                icon_only=True,
                                                on_click=item_clicked),
                                   toolbar.Item(text='Info',
                                                icon='Info',
                                                icon_color='green',
                                                icon_only=True,
                                                on_click=item_clicked)
                               ])

    inverted_toolbar = Toolbar(
        inverted=True,
        items=[
            toolbar.Item(text='New',
                         icon='Add',
                         items=[
                             toolbar.Item(text='Email message', icon='Mail'),
                             toolbar.Item(text='Calendar event',
                                          icon='Calendar')
                         ]),
            toolbar.Item(text='Share',
                         icon='Share',
                         split=True,
                         items=[
                             toolbar.Item(text='Share to Twitter'),
                             toolbar.Item(text='Share to Facebook'),
                             toolbar.Item(text='Share to Somewhere',
                                          disabled=True),
                             toolbar.Item(
                                 text='Share to Email',
                                 data='sharetoemail',
                                 items=[
                                     toolbar.Item(text='Share to Outlook'),
                                     toolbar.Item(text='Share to Gmail')
                                 ])
                         ]),
            toolbar.Item(text='To to Google',
                         icon='Globe',
                         url='https://google.com',
                         new_window=True,
                         secondary_text='New window')
        ],
        overflow=[
            toolbar.Item(text='Item 1', icon='Shop'),
            toolbar.Item(text='Item 2', icon='Airplane')
        ],
        far=[
            toolbar.Item(text='Grid view', icon='Tiles', icon_only=True),
            toolbar.Item(text='Info',
                         icon='Info',
                         icon_color='green',
                         icon_only=True)
        ])

    return Stack(
        gap=30,
        controls=[
            Stack(controls=[
                Text("Standard toolbar with Click events", size="xLarge"),
                standard_toolbar
            ]),
            Stack(controls=[
                Text("Inverted toolbar (for top application menu)",
                     size="xLarge"),
                Stack(bgcolor='magentaLight', controls=[inverted_toolbar])
            ])
        ])