code: function ProjectModel(initial) {
          initial = initial || {};
          if (initial.projectRoot) {
              this.projectRoot = initial.projectRoot;
          }
  
          if (initial.focused !== undefined) {
              this._focused = initial.focused;
          }
          this._viewModel = new FileTreeViewModel.FileTreeViewModel();
          this._viewModel.on(FileTreeViewModel.EVENT_CHANGE, function () {
              this.trigger(EVENT_CHANGE);
          }.bind(this));
          this._selections = {};
      }
docs: @constructor
  
  The ProjectModel provides methods for accessing information about the current open project.
  It also manages the view model to display a FileTreeView of the project.
  
  Events:
  - EVENT_CHANGE (`change`) - Fired when there's a change that should refresh the UI
  - EVENT_SHOULD_SELECT (`select`) - Fired when a selection has been made in the file tree and the file tree should be selected
  - EVENT_SHOULD_FOCUS (`focus`)
  - ERROR_CREATION (`creationError`) - Triggered when there's a problem creating a file