diff --git a/spec/pane-element-spec.coffee b/spec/pane-element-spec.coffee index e20068bfc..bf3747199 100644 --- a/spec/pane-element-spec.coffee +++ b/spec/pane-element-spec.coffee @@ -4,6 +4,8 @@ describe "PaneElement", -> [paneElement, container, pane] = [] beforeEach -> + spyOn(atom, "open") + container = new PaneContainer(config: atom.config) pane = container.getActivePane() paneElement = atom.views.getView(pane) @@ -183,7 +185,6 @@ describe "PaneElement", -> describe "when a file is dragged to the pane", -> it "opens it", -> - spyOn(atom, "open") event = buildDragEvent("drop", [{path: "/fake1"}, {path: "/fake2"}]) paneElement.dispatchEvent(event) expect(atom.open.callCount).toBe 1 @@ -191,7 +192,6 @@ describe "PaneElement", -> describe "when a non-file is dragged to the pane", -> it "does nothing", -> - spyOn(atom, "open") event = buildDragEvent("drop", []) paneElement.dispatchEvent(event) expect(atom.open).not.toHaveBeenCalled() diff --git a/src/atom-environment.coffee b/src/atom-environment.coffee index 5ed6c2ef1..48145b8ce 100644 --- a/src/atom-environment.coffee +++ b/src/atom-environment.coffee @@ -205,8 +205,8 @@ class AtomEnvironment extends Model new PaneContainerElement().initialize(model, env) @views.addViewProvider PaneAxis, (model, env) -> new PaneAxisElement().initialize(model, env) - @views.addViewProvider Pane, (model) -> - new PaneElement().initialize(model) + @views.addViewProvider Pane, (model, env) -> + new PaneElement().initialize(model, env) @views.addViewProvider TextEditor, (model, env) -> new TextEditorElement().initialize(model, env) @views.addViewProvider(Gutter, createGutterView) diff --git a/src/pane-element.coffee b/src/pane-element.coffee index 41f110ddb..59f003300 100644 --- a/src/pane-element.coffee +++ b/src/pane-element.coffee @@ -44,14 +44,17 @@ class PaneElement extends HTMLElement event.stopPropagation() @getModel().activate() pathsToOpen = Array::map.call event.dataTransfer.files, (file) -> file.path - atom.open({pathsToOpen}) if pathsToOpen.length > 0 + @open({pathsToOpen}) if pathsToOpen.length > 0 @addEventListener 'focus', handleFocus, true @addEventListener 'blur', handleBlur, true @addEventListener 'dragover', handleDragOver @addEventListener 'drop', handleDrop - initialize: (@model) -> + initialize: (@model, {@views, @open}) -> + throw new Error("Must pass a views parameter when initializing PaneElements") unless @views? + throw new Error("Must pass a open parameter when initializing PaneElements") unless @open? + @subscriptions.add @model.onDidActivate(@activated.bind(this)) @subscriptions.add @model.observeActive(@activeStatusChanged.bind(this)) @subscriptions.add @model.observeActiveItem(@activeItemChanged.bind(this)) @@ -78,7 +81,7 @@ class PaneElement extends HTMLElement return unless item? hasFocus = @hasFocus() - itemView = atom.views.getView(item) + itemView = @views.getView(item) if itemPath = item.getPath?() @dataset.activeItemName = path.basename(itemPath) @@ -109,7 +112,7 @@ class PaneElement extends HTMLElement itemView.style.display = 'none' itemRemoved: ({item, index, destroyed}) -> - if viewToRemove = atom.views.getView(item) + if viewToRemove = @views.getView(item) viewToRemove.remove() paneDestroyed: -> @@ -118,7 +121,7 @@ class PaneElement extends HTMLElement flexScaleChanged: (flexScale) -> @style.flexGrow = flexScale - getActiveView: -> atom.views.getView(@model.getActiveItem()) + getActiveView: -> @views.getView(@model.getActiveItem()) hasFocus: -> this is document.activeElement or @contains(document.activeElement)