Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

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.