continued A next step is the editing of existing instances. In the DOPartiesList, we need to use a NewListModel instead of the ListModel, as that understands doubleClick actions. DOPartiesList>initializeWidgets - list := self newList. + list := self instantiate: NewListModel. To edit a party, we modify addPartyBlockIn: anEditor to create editParty:in:. We set the data values and the title. In the okAction we don't have to add the party. DOPartiesList>editParty: aParty in: anEditor aParty class fields do: [ :field | (anEditor model perform: field) text: (aParty perform: field) ]. anEditor title: 'Edit ',aParty fullName. anEditor okAction: [ anEditor model partyClass fields do: [ :field | aParty perform: (field asMutator) with: (anEditor model perform: field) text ]. self refreshItems ]. In initializePresenter, we can then add an edit action. The list currently needs to know that it should handle doubleClicks, and then call a partyeditor DOPartiesList>initializePresenter + list handlesDoubleClick: true. + list doubleClickAction: [ |party edit| + party := list selectedItem. + edit := (DOPartyEditor on: party class) openDialogWithSpec. + self editParty: party in: edit]