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"
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))
], 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)
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]) ]) ])