Add PaneContainer::observePanes and ::onDidAddPane

This commit is contained in:
Nathan Sobo
2014-08-28 17:14:15 -06:00
parent 5471e9bccc
commit cee7539e35
4 changed files with 52 additions and 6 deletions

View File

@@ -11,6 +11,10 @@ class PaneAxis extends Model
atom.deserializers.add(this)
Serializable.includeInto(this)
parent: null
container: null
orientation: null
constructor: ({@container, @orientation, children}) ->
@emitter = new Emitter
@subscriptionsByChild = new WeakMap
@@ -28,6 +32,14 @@ class PaneAxis extends Model
children: @children.map (child) -> child.serialize()
orientation: @orientation
getParent: -> @parent
setParent: (@parent) -> @parent
getContainer: -> @container
setContainer: (@container) -> @container
getViewClass: ->
if @orientation is 'vertical'
PaneColumnView ?= require './pane-column-view'
@@ -52,8 +64,8 @@ class PaneAxis extends Model
@emitter.on 'did-destroy', fn
addChild: (child, index=@children.length) ->
child.parent = this
child.container = @container
child.setParent(this)
child.setContainer(@container)
@subscribeToChild(child)
@@ -74,8 +86,8 @@ class PaneAxis extends Model
@unsubscribeFromChild(oldChild)
@subscribeToChild(newChild)
newChild.parent = this
newChild.container = @container
newChild.setParent(this)
newChild.setContainer(@container)
index = @children.indexOf(oldChild)
@children.splice(index, 1, newChild)