anchor.diff:      }
     }
   
  +  void _editor_enabledChanged(PropertyChangeRecord pcr) {
  +    if(_editor.enabled &&
  +        _controller.notes.selectedValue == _searchFieldOpenItem) {
  +      assert(_searchFieldOpenItem != null);
  +      _editor.focusText();
  +    }
  +    _searchFieldOpenItem = null;
  +  }
  +
     //
     // Implementation
     //
   
     void _openSearchText() {
  -    _log('_openSearchText');
  +    _log('_openSearchText - ${controller.searchTerm}');
       // TODO: ponder a locking model to prevent weirdness while waiting for
       // async methods called no controller?
       controller.openOrCreate()
         .then((Note item) {
  -        if(_editor.text == item.content) {
  +        if(_controller.notes.selectedValue == item && _editor.enabled) {
             _editor.focusText();
             _searchFieldOpenItem = null;
           } else {
  
positive.code: 
        _editor.enabled = true;
        _editor.text = value;
  
        if(notes.selectedValue == _searchFieldOpenItem) {
          _editor.focusText();
        }
        _searchFieldOpenItem = null;
      } else {
        _editor.enabled = false;
        // disabling editor should clear the next value
  
negative.code:       filterPropertyChangeRecords(_controller.notes, const Symbol('selectedValue'))
          .listen(_selectedNoteChanged);
  
        filterPropertyChangeRecords(_editor, const Symbol('enabled'))
          .listen(_editor_enabledChanged);
  
        notifyChange(new PropertyChangeRecord(const Symbol('controller')));
      });
    }
  