enthought / enthought/traitsui

Editing 'name' trait in InstanceEditor breaks drop-down menu

Open
#157 0 comments 0 reactions 0 assignees View on GitHub
type: bug
Dominant language
Python
Stars
306
Forks
99
PR merge metrics
No merged PRs in 30d

Description

As reported on the enthought-dev mailing list:

"""
In the traitsui documentation there is the example below of editing a list of Instances.

When the View is constructed it seems to be using the name attribute on the Person to populate the drop down of list contents.

However if you edit the name trait on a Person instance then you can no longer edit the Person, because the drop down is not updated to reflect the new name. I assume there is a lookup somewhere that is not updated.

Seems like a bug, or at least not 'intuitive' behaviour?

```
# instance_editor_selection.py -- Example of an instance editor
# with instance selection

from traits.api \
import HasStrictTraits, Int, Instance, List, Regex, Str
from traitsui.api \
import View, Item, InstanceEditor

class Person ( HasStrictTraits ):
name = Str
age = Int
phone = Regex( value = '000-0000',
regex = '\d\d\d[-]\d\d\d\d' )

traits_view = View( 'name', 'age', 'phone' )

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' )
]

class Team ( HasStrictTraits ):

name = Str
captain = Instance( Person )
roster = List( Person )

traits_view = View( Item('name'),
Item('_'),
Item( 'captain',
label='Team Captain',
editor =
InstanceEditor( name = 'roster',
editable = True),
style = 'custom',
),
buttons = ['OK'])

if __name__ == '__main__':
Team( name = 'Vultures',
captain = people[0],
roster = people ).configure_traits()

```

"""

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.