Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

135 lines (109 sloc) 4.888 kB
#-------------------------------------------------------------------------------
#
# TableEditor test case for Traits UI
#
# Written by: David C. Morrill
#
# Date: 11/11/2005
#
# (c) Copyright 2005 by Enthought, Inc.
# License: BSD Style.
#
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Imports:
#-------------------------------------------------------------------------------
from traits.api \
import HasStrictTraits, Str, Int, Regex, List, Instance
from traitsui.api \
import View, Item, VSplit, TableEditor, ListEditor
from traitsui.table_column \
import ObjectColumn
from traitsui.table_filter \
import TableFilter, RuleTableFilter, RuleFilterTemplate, \
MenuFilterTemplate, EvalFilterTemplate
#-------------------------------------------------------------------------------
# 'Person' class:
#-------------------------------------------------------------------------------
class Person ( HasStrictTraits ):
#---------------------------------------------------------------------------
# Trait definitions:
#---------------------------------------------------------------------------
name = Str
age = Int
phone = Regex( value = '000-0000', regex = '\d\d\d[-]\d\d\d\d' )
#---------------------------------------------------------------------------
# Traits view definition:
#---------------------------------------------------------------------------
traits_view = View( 'name', 'age', 'phone',
width = 0.18,
buttons = [ 'OK', 'Cancel' ] )
#-------------------------------------------------------------------------------
# Sample data:
#-------------------------------------------------------------------------------
people = [
Person( name = 'Dave', age = 39, phone = '555-1212' ),
Person( name = 'Mike', age = 28, phone = '555-3526' ),
Person( name = 'Joe', age = 34, phone = '555-6943' ),
Person( name = 'Tom', age = 22, phone = '555-7586' ),
Person( name = 'Dick', age = 63, phone = '555-3895' ),
Person( name = 'Harry', age = 46, phone = '555-3285' ),
Person( name = 'Sally', age = 43, phone = '555-8797' ),
Person( name = 'Fields', age = 31, phone = '555-3547' )
]
#-------------------------------------------------------------------------------
# Table editor definition:
#-------------------------------------------------------------------------------
filters = [ EvalFilterTemplate, MenuFilterTemplate, RuleFilterTemplate ]
table_editor = TableEditor(
columns = [ ObjectColumn( name = 'name' ),
ObjectColumn( name = 'age' ),
ObjectColumn( name = 'phone' ) ],
editable = True,
deletable = True,
sortable = True,
sort_model = True,
filters = filters,
search = RuleTableFilter(),
row_factory = Person
)
#-------------------------------------------------------------------------------
# 'ListTraitTest' class:
#-------------------------------------------------------------------------------
class ListTraitTest ( HasStrictTraits ):
#---------------------------------------------------------------------------
# Trait definitions:
#---------------------------------------------------------------------------
people = List( Person )
#---------------------------------------------------------------------------
# Traits view definitions:
#---------------------------------------------------------------------------
traits_view = View(
VSplit(
Item( 'people',
id = 'table',
editor = table_editor ),
Item( 'people@',
id = 'list',
editor = ListEditor( style = 'custom',
rows = 5 ) ),
Item( 'people@',
id = 'notebook',
editor = ListEditor( use_notebook = True,
deletable = True,
export = 'DockShellWindow',
page_name = '.name' ) ),
id = 'splitter',
show_labels = False ),
title = 'List Trait Editor Test',
id = 'traitsui.tests.list_traits_ui_test',
dock = 'horizontal',
width = .4,
height = .6,
resizable = True,
kind = 'live' )
#-------------------------------------------------------------------------------
# Run the tests:
#-------------------------------------------------------------------------------
if __name__ == '__main__':
ListTraitTest( people = people ).configure_traits()
Jump to Line
Something went wrong with that request. Please try again.