pulsar/src/pane-container-view.coffee
Nathan Sobo 7f8ab72f53 Capitalize initialisms
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2015-01-12 22:00:24 -08:00

90 lines
2.2 KiB
CoffeeScript

{deprecate} = require 'grim'
Delegator = require 'delegato'
{CompositeDisposable} = require 'event-kit'
{$, View, callAttachHooks} = require './space-pen-extensions'
PaneView = require './pane-view'
PaneContainer = require './pane-container'
# Manages the list of panes within a {WorkspaceView}
module.exports =
class PaneContainerView extends View
Delegator.includeInto(this)
@delegatesMethod 'saveAll', toProperty: 'model'
@content: ->
@div class: 'panes'
constructor: (@element) ->
super
@subscriptions = new CompositeDisposable
setModel: (@model) ->
@subscriptions.add @model.onDidChangeActivePaneItem(@onActivePaneItemChanged)
getRoot: ->
view = atom.views.getView(@model.getRoot())
view.__spacePenView ? view
onActivePaneItemChanged: (activeItem) =>
@trigger 'pane-container:active-pane-item-changed', [activeItem]
confirmClose: ->
@model.confirmClose()
getPaneViews: ->
@find('atom-pane').views()
indexOfPane: (paneView) ->
@getPaneViews().indexOf(paneView.view())
paneAtIndex: (index) ->
@getPaneViews()[index]
eachPaneView: (callback) ->
callback(paneView) for paneView in @getPaneViews()
paneViewAttached = (e) -> callback($(e.target).view())
@on 'pane:attached', paneViewAttached
off: => @off 'pane:attached', paneViewAttached
getFocusedPane: ->
@find('atom-pane:has(:focus)').view()
getActivePane: ->
deprecate("Use PaneContainerView::getActivePaneView instead.")
@getActivePaneView()
getActivePaneView: ->
atom.views.getView(@model.getActivePane()).__spacePenView
getActivePaneItem: ->
@model.getActivePaneItem()
getActiveView: ->
@getActivePaneView()?.activeView
paneForUri: (uri) ->
atom.views.getView(@model.paneForURI(uri)).__spacePenView
focusNextPaneView: ->
@model.activateNextPane()
focusPreviousPaneView: ->
@model.activatePreviousPane()
focusPaneViewAbove: ->
@element.focusPaneViewAbove()
focusPaneViewBelow: ->
@element.focusPaneViewBelow()
focusPaneViewOnLeft: ->
@element.focusPaneViewOnLeft()
focusPaneViewOnRight: ->
@element.focusPaneViewOnRight()
getPanes: ->
deprecate("Use PaneContainerView::getPaneViews() instead")
@getPaneViews()