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
|
# Copyright (c) 2007, Enthought, Inc.
# License: BSD Style.
from traits.api import *
from traitsui.api import *
from traitsui.instance_choice import InstanceChoice
#-------------------------------------------------------------------------------
# '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' )
#-------------------------------------------------------------------------------
# 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' )
]
#-------------------------------------------------------------------------------
# 'Team' class:
#-------------------------------------------------------------------------------
class Team ( HasStrictTraits ):
#---------------------------------------------------------------------------
# Trait definitions:
#---------------------------------------------------------------------------
name = Str
captain = Instance( Person )
roster = List( Person )
#---------------------------------------------------------------------------
# Traits view definitions:
#---------------------------------------------------------------------------
traits_view = View( 'name', '_',
Item( 'captain@',
editor = InstanceEditor( name = 'roster' ) ), '_',
'roster' )
#-------------------------------------------------------------------------------
# Run the test:
#-------------------------------------------------------------------------------
if __name__ == '__main__':
Team( name = 'Vultures',
captain = people[0],
roster = people ).configure_traits()
|