Don't use atom.views global in PanelElement

This commit is contained in:
Antonio Scandurra
2015-10-05 11:50:33 +02:00
committed by Nathan Sobo
parent d8b08d3240
commit e9cda3ea5c
4 changed files with 11 additions and 9 deletions

View File

@@ -119,7 +119,7 @@ class Atom extends Model
@registerDeserializers()
ViewRegistry = require './view-registry'
@views = new ViewRegistry
@views = new ViewRegistry(this)
@registerViewProviders()
NotificationManager = require './notification-manager'
@@ -199,8 +199,8 @@ class Atom extends Model
new WorkspaceElement().initialize(model)
@views.addViewProvider PanelContainer, (model) ->
new PanelContainerElement().initialize(model)
@views.addViewProvider Panel, (model) ->
new PanelElement().initialize(model)
@views.addViewProvider Panel, (model, env) ->
new PanelElement().initialize(model, env)
@views.addViewProvider PaneContainer, (model) ->
new PaneContainerElement().initialize(model)
@views.addViewProvider PaneAxis, (model) ->

View File

@@ -5,7 +5,9 @@ class PanelElement extends HTMLElement
createdCallback: ->
@subscriptions = new CompositeDisposable
initialize: (@model) ->
initialize: (@model, {@views}) ->
throw new Error("Must pass a views parameter when initializing PanelElements") unless @views?
@appendChild(@getItemView())
@classList.add(@model.getClassName().split(' ')...) if @model.getClassName()?
@@ -17,7 +19,7 @@ class PanelElement extends HTMLElement
@model ?= new Panel
getItemView: ->
atom.views.getView(@getModel().getItem())
@views.getView(@getModel().getItem())
attachedCallback: ->
@visibleChanged(@getModel().isVisible())

View File

@@ -49,7 +49,7 @@ class ViewRegistry
debouncedPerformDocumentPoll: null
minimumPollInterval: 200
constructor: ->
constructor: (@atomEnvironment) ->
@views = new WeakMap
@providers = []
@documentWriters = []
@@ -159,7 +159,7 @@ class ViewRegistry
else if object?.jquery
object[0]
else if provider = @findProvider(object)
element = provider.createView?(object)
element = provider.createView?(object, @atomEnvironment)
unless element?
element = new provider.viewConstructor
element.initialize?(object) ? element.setModel?(object)