anchor.diff:   * Manages a list of open editors.
    */
   class EditorArea extends TabView {
  -  static final RegExp _imageFileType =
  -      new RegExp(r'\.(jpe?g|png|gif|ico)$', caseSensitive: false);
  -
     final EditorProvider editorProvider;
     final Map<Resource, EditorTab> _tabOfFile = {};
   
  -  final Workspace _workspace;
  -
  -  bool _allowsLabelBar = true;
  +  bool allowsLabelBar;
   
     StreamController<String> _nameController = new StreamController.broadcast();
   
  -  EditorArea(Element parentElement,
  -             this.editorProvider, this._workspace,
  -             {bool allowsLabelBar: true})
  +  EditorArea(Element parentElement, this.editorProvider, Workspace workspace,
  +             {this.allowsLabelBar: true})
         : super(parentElement) {
       onClose.listen((EditorTab tab) => closeFile(tab.file));
  -    this.allowsLabelBar = allowsLabelBar;
       showLabelBar = true;
   
  -    _workspace.onResourceChange.listen((ResourceChangeEvent event) {
  +    workspace.onResourceChange.listen((ResourceChangeEvent event) {
         // TODO(dvh): reflect name change instead of closing the file.
         event = new ResourceChangeEvent.fromList(event.changes, filterRename: true);
         for (ChangeDelta delta in event.changes) {
  
positive.code: 
    Stream<String> get onNameChange => _nameController.stream;
  
    bool get allowsLabelBar => _allowsLabelBar;
    set allowsLabelBar(bool value) {
      _allowsLabelBar = value;
    }
  
    // TabView
    Tab add(EditorTab tab, {bool switchesTab: true}) {
      _tabOfFile[tab.file] = tab;
  
negative.code:   }
  
    /// Switches to a file. If the file is not opened and [forceOpen] is `true`,
    /// [selectFile] will be called instead. Otherwise the editor provider is
    /// requested to switch the file to the editor in case the editor is shared.
    Future selectFile(Resource file,
                      {bool forceOpen: false, bool switchesTab: true,
  