1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
#-------------------------------------------------------------------------------
#
# TableEditor test case for Traits UI
#
# Written by: David C. Morrill
#
# Date: 07/05/2005
#
# (c) Copyright 2005 by Enthought, Inc.
# License: BSD Style.
#
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Imports:
#-------------------------------------------------------------------------------
from traits.api \
import HasStrictTraits, Str, Int, Regex, List
from traitsui.api \
import View
#-------------------------------------------------------------------------------
# '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',
title = 'Create new person',
width = 0.18,
buttons = [ 'OK', 'Cancel' ] )
#-------------------------------------------------------------------------------
# 'WorkingPerson' class
#-------------------------------------------------------------------------------
class WorkingPerson ( Person ):
#---------------------------------------------------------------------------
# Trait definitions:
#---------------------------------------------------------------------------
job = Str
#---------------------------------------------------------------------------
# Traits view definition:
#---------------------------------------------------------------------------
traits_view = View( 'name', 'age', 'phone', 'job',
title = 'Create new working person.........',
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' ),
WorkingPerson( name = 'Joe', age = 34, phone = '555-6943', job = 'Fireman' ),
Person( name = 'Tom', age = 22, phone = '555-7586' ),
Person( name = 'Dick', age = 63, phone = '555-3895' ),
Person( name = 'Harry', age = 46, phone = '555-3285' ),
WorkingPerson( name = 'Sally', age = 43, phone = '555-8797', job = 'Soldier' ),
Person( name = 'Fields', age = 31, phone = '555-3547' )
]
#-------------------------------------------------------------------------------
# 'TableTest' class:
#-------------------------------------------------------------------------------
class TableTest ( HasStrictTraits ):
#---------------------------------------------------------------------------
# Trait definitions:
#---------------------------------------------------------------------------
people = List( Person )
#---------------------------------------------------------------------------
# Traits view definitions:
#---------------------------------------------------------------------------
traits_view = View( [ 'people#', '|<>' ], resizable = True )
#-------------------------------------------------------------------------------
# Run the tests:
#-------------------------------------------------------------------------------
if __name__ == '__main__':
tt = TableTest( people = people )
tt.configure_traits()
for p in tt.people:
p.print_traits()
print '--------------'
|