~ubuntu-branches/ubuntu/trusty/python-traitsui/trusty

« back to all changes in this revision

Viewing changes to examples/demo/Standard_Editors/RangeEditor_demo.py

  • Committer: Bazaar Package Importer
  • Author(s): Varun Hiremath
  • Date: 2011-07-09 13:57:39 UTC
  • Revision ID: james.westby@ubuntu.com-20110709135739-x5u20q86huissmn1
Tags: upstream-4.0.0
ImportĀ upstreamĀ versionĀ 4.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#  Copyright (c) 2007, Enthought, Inc.
 
2
#  License: BSD Style.
 
3
 
 
4
"""
 
5
Implementation of a RangeEditor demo plugin for the Traits UI demo program.
 
6
 
 
7
This demo shows each of the four styles of the RangeEditor. Variations for
 
8
a small integer range, a medium-sized integer range, a large integer range
 
9
and a float range are demonstrated on separate tabs.
 
10
"""
 
11
 
 
12
# Imports:
 
13
from traits.api \
 
14
    import HasTraits, Range
 
15
 
 
16
from traitsui.api \
 
17
    import Item, Group, View
 
18
 
 
19
# The main demo class:
 
20
class RangeEditorDemo ( HasTraits ):
 
21
    """ Defines the RangeEditor demo class.
 
22
    """
 
23
 
 
24
    # Define a trait for each of four range variants:
 
25
    small_int_range  = Range( 1, 16 )
 
26
    medium_int_range = Range( 1, 25 )
 
27
    large_int_range  = Range( 1, 150 )
 
28
    float_range      = Range( 0.0, 150.0 )
 
29
 
 
30
    # RangeEditor display for narrow integer Range traits (< 17 wide):
 
31
    int_range_group1 = Group(
 
32
        Item( 'small_int_range',  style = 'simple',  label = 'Simple' ),
 
33
        Item( '_' ),
 
34
        Item( 'small_int_range',  style = 'custom',  label = 'Custom' ),
 
35
        Item( '_' ),
 
36
        Item( 'small_int_range', style = 'text',     label = 'Text' ),
 
37
        Item( '_' ),
 
38
        Item( 'small_int_range', style = 'readonly', label = 'ReadOnly' ),
 
39
        label = 'Small Int'
 
40
    )
 
41
 
 
42
    # RangeEditor display for medium-width integer Range traits (17 to 100):
 
43
    int_range_group2 = Group(
 
44
        Item( 'medium_int_range', style = 'simple',   label = 'Simple' ),
 
45
        Item( '_' ),
 
46
        Item( 'medium_int_range', style = 'custom',   label = 'Custom' ),
 
47
        Item( '_' ),
 
48
        Item( 'medium_int_range', style = 'text',     label = 'Text' ),
 
49
        Item( '_' ),
 
50
        Item( 'medium_int_range', style = 'readonly', label = 'ReadOnly' ),
 
51
        label = 'Medium Int'
 
52
    )
 
53
 
 
54
    # RangeEditor display for wide integer Range traits (> 100):
 
55
    int_range_group3 = Group(
 
56
        Item( 'large_int_range', style = 'simple',   label = 'Simple' ),
 
57
        Item( '_' ),
 
58
        Item( 'large_int_range', style = 'custom',   label = 'Custom' ),
 
59
        Item( '_' ),
 
60
        Item( 'large_int_range', style = 'text',     label = 'Text' ),
 
61
        Item( '_' ),
 
62
        Item( 'large_int_range', style = 'readonly', label = 'ReadOnly' ),
 
63
        label = 'Large Int'
 
64
    )
 
65
 
 
66
    # RangeEditor display for float Range traits:
 
67
    float_range_group = Group(
 
68
        Item( 'float_range', style = 'simple',   label = 'Simple' ),
 
69
        Item( '_' ),
 
70
        Item( 'float_range', style = 'custom',   label = 'Custom' ),
 
71
        Item( '_' ),
 
72
        Item( 'float_range', style = 'text',     label = 'Text' ),
 
73
        Item( '_' ),
 
74
        Item( 'float_range', style = 'readonly', label = 'ReadOnly' ),
 
75
        label = 'Float'
 
76
    )
 
77
 
 
78
    # The view includes one group per data type. These will be displayed
 
79
    # on separate tabbed panels:
 
80
    view = View(
 
81
        int_range_group1,
 
82
        int_range_group2,
 
83
        int_range_group3,
 
84
        float_range_group,
 
85
        title     = 'RangeEditor',
 
86
        buttons   = [ 'OK' ],
 
87
        resizable = True
 
88
    )
 
89
 
 
90
 
 
91
# Create the demo:
 
92
demo =  RangeEditorDemo()
 
93
 
 
94
# Run the demo (if invoked from the comand line):
 
95
if __name__ == '__main__':
 
96
    demo.configure_traits()