Logo Search packages:      
Sourcecode: matplotlib version File versions

test_property_notifications.py

#------------------------------------------------------------------------------
# Copyright (c) 2005, Enthought, Inc.
# All rights reserved.
# 
# This software is provided without warranty under the terms of the BSD
# license included in enthought/LICENSE.txt and may be redistributed only
# under the conditions described in the aforementioned license.  The license
# is also available online at http://www.enthought.com/licenses/BSD.txt
# Thanks for using Enthought open source!
# 
# Author: David C. Morrill
# Description: <Traits component>
#------------------------------------------------------------------------------
from enthought.traits.api import HasTraits, TraitProperty

class Test ( HasTraits ):
    
    __traits__ = { }
    
    def __value_get ( self ):
        return self.__dict__.get( '_value', 0 )
        
    def __value_set ( self, value ):
        old_value = self.__dict__.get( '_value', 0 )
        if value != old_value:
            self._value = value
            self.trait_property_changed( 'value', old_value, value )
        
    __traits__[ 'value' ] = TraitProperty( __value_get, __value_set )

    
class Test_1 ( Test ):

    def value_changed ( self, value ):
        print 'value_changed:', value
    
        
class Test_2 ( Test ):

    def anytrait_changed ( self, name, value ):
        print 'anytrait_changed for %s: %s' % ( name, value )
        
        
class Test_3 ( Test_2 ):        

    def value_changed ( self, value ):
        print 'value_changed:', value

        
def on_value_changed ( value ):
    print 'on_value_changed:', value
        
def on_anyvalue_changed ( value ):
    print 'on_anyvalue_changed:', value
    
    
Test_1().value = 'test 1'    
Test_2().value = 'test 2'    
Test_3().value = 'test 3'

test_4 = Test()
test_4.on_trait_change( on_value_changed, 'value' )
test_4.value = 'test 4'
    
test_5 = Test()
test_5.on_trait_change( on_anyvalue_changed )
test_5.value = 'test 5'
    
test_6 = Test()
test_6.on_trait_change( on_value_changed, 'value' )
test_6.on_trait_change( on_anyvalue_changed )
test_6.value = 'test 6'
    
test_7 = Test_3()
test_7.on_trait_change( on_value_changed, 'value' )
test_7.on_trait_change( on_anyvalue_changed )
test_7.value = 'test 7'
    

Generated by  Doxygen 1.6.0   Back to index