Merge pull request #7809 from atom/dh-register-views-earlier

Move view registration for Pane & Gutter related views earlier
This commit is contained in:
Nathan Sobo
2015-07-09 11:54:55 -05:00
2 changed files with 25 additions and 19 deletions

View File

@@ -265,6 +265,7 @@ class Atom extends Model
@notifications = new NotificationManager
@commands = new CommandRegistry
@views = new ViewRegistry
@registerViewProviders()
@packages = new PackageManager({devMode, configDirPath, resourcePath, safeMode})
@styles = new StyleManager
document.head.appendChild(new StylesElement)
@@ -291,6 +292,30 @@ class Atom extends Model
@windowEventHandler = new WindowEventHandler
# Register the core views as early as possible in case they are needed for
# package deserialization.
registerViewProviders: ->
Gutter = require './gutter'
Pane = require './pane'
PaneElement = require './pane-element'
PaneContainer = require './pane-container'
PaneContainerElement = require './pane-container-element'
PaneAxis = require './pane-axis'
PaneAxisElement = require './pane-axis-element'
TextEditor = require './text-editor'
TextEditorElement = require './text-editor-element'
{createGutterView} = require './gutter-component-helpers'
atom.views.addViewProvider PaneContainer, (model) ->
new PaneContainerElement().initialize(model)
atom.views.addViewProvider PaneAxis, (model) ->
new PaneAxisElement().initialize(model)
atom.views.addViewProvider Pane, (model) ->
new PaneElement().initialize(model)
atom.views.addViewProvider TextEditor, (model) ->
new TextEditorElement().initialize(model)
atom.views.addViewProvider(Gutter, createGutterView)
###
Section: Event Subscription
###

View File

@@ -2,16 +2,9 @@
Grim = require 'grim'
{Emitter, CompositeDisposable} = require 'event-kit'
Serializable = require 'serializable'
{createGutterView} = require './gutter-component-helpers'
Gutter = require './gutter'
Model = require './model'
Pane = require './pane'
PaneElement = require './pane-element'
PaneContainerElement = require './pane-container-element'
PaneAxisElement = require './pane-axis-element'
PaneAxis = require './pane-axis'
TextEditor = require './text-editor'
TextEditorElement = require './text-editor-element'
ItemRegistry = require './item-registry'
module.exports =
@@ -33,7 +26,6 @@ class PaneContainer extends Model
@subscriptions = new CompositeDisposable
@itemRegistry = new ItemRegistry
@registerViewProviders()
@setRoot(params?.root ? new Pane)
@setActivePane(@getPanes()[0]) unless @getActivePane()
@@ -53,17 +45,6 @@ class PaneContainer extends Model
root: @root?.serialize()
activePaneId: @activePane.id
registerViewProviders: ->
atom.views.addViewProvider PaneContainer, (model) ->
new PaneContainerElement().initialize(model)
atom.views.addViewProvider PaneAxis, (model) ->
new PaneAxisElement().initialize(model)
atom.views.addViewProvider Pane, (model) ->
new PaneElement().initialize(model)
atom.views.addViewProvider TextEditor, (model) ->
new TextEditorElement().initialize(model)
atom.views.addViewProvider(Gutter, createGutterView)
onDidChangeRoot: (fn) ->
@emitter.on 'did-change-root', fn