@@ -56,16 +56,14 @@ def destroy(self):
56
56
"""
57
57
58
58
if self .object :
59
- self .object .observe (
60
- self ._enabled_update ,
61
- trait (self .enabled_name , optional = True ),
62
- remove = True
63
- )
64
- self .object .observe (
65
- self ._visible_update ,
66
- trait (self .visible_name , optional = True ),
67
- remove = True
68
- )
59
+ if self .enabled_name :
60
+ self .object .observe (
61
+ self ._enabled_update , self .enabled_name , remove = True
62
+ )
63
+ if self .visible_name :
64
+ self .object .observe (
65
+ self ._visible_update , self .visible_name , remove = True
66
+ )
69
67
70
68
def perform (self , event = None ):
71
69
""" Call the appropriate function.
@@ -125,11 +123,12 @@ def _object_changed(self, old, new):
125
123
for kind in ("enabled" , "visible" ):
126
124
method = getattr (self , "_%s_update" % kind )
127
125
name = getattr (self , "%s_name" % kind )
128
- if old and old is not Undefined :
129
- old .observe (method , trait (name , optional = True ), remove = True )
130
- if new :
131
- new .observe (method , trait (name , optional = True ))
132
- method ()
126
+ if name :
127
+ if old and old is not Undefined :
128
+ old .observe (method , name , remove = True )
129
+ if new :
130
+ new .observe (method , name )
131
+ method ()
133
132
134
133
def _enabled_update (self , event = None ):
135
134
if self .enabled_name :
0 commit comments