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 = {};
    }
@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