From a9294aebc3b1ceec2be05b030f8768503c520654 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Wed, 27 Aug 2014 15:25:52 -0600 Subject: [PATCH] =?UTF-8?q?Don=E2=80=99t=20use=20Sequence=20in=20PaneAxis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pane-axis.coffee | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/pane-axis.coffee b/src/pane-axis.coffee index f974c970e..12b335519 100644 --- a/src/pane-axis.coffee +++ b/src/pane-axis.coffee @@ -1,4 +1,4 @@ -{Model, Sequence} = require 'theorist' +{Model} = require 'theorist' {flatten} = require 'underscore-plus' Serializable = require 'serializable' @@ -11,14 +11,9 @@ class PaneAxis extends Model Serializable.includeInto(this) constructor: ({@container, @orientation, children}) -> - @children = Sequence.fromArray(children ? []) - - @subscribe @children.onEach (child) => - child.parent = this - child.container = @container - @subscribe child, 'destroyed', => @removeChild(child) - - @subscribe @children.onRemoval (child) => @unsubscribe(child) + @children = [] + if children? + @addChild(child) for child in children deserializeParams: (params) -> {container} = params @@ -40,27 +35,40 @@ class PaneAxis extends Model addChild: (child, index=@children.length) -> @children.splice(index, 0, child) + @childAdded(child) removeChild: (child) -> index = @children.indexOf(child) throw new Error("Removing non-existent child") if index is -1 @children.splice(index, 1) + @childRemoved(child) @reparentLastChild() if @children.length < 2 - replaceChild: (oldChild, newChild) -> index = @children.indexOf(oldChild) throw new Error("Replacing non-existent child") if index is -1 @children.splice(index, 1, newChild) + @childRemoved(oldChild) + @childAdded(newChild) insertChildBefore: (currentChild, newChild) -> index = @children.indexOf(currentChild) @children.splice(index, 0, newChild) + @childAdded(newChild) insertChildAfter: (currentChild, newChild) -> index = @children.indexOf(currentChild) @children.splice(index + 1, 0, newChild) + @childAdded(newChild) reparentLastChild: -> @parent.replaceChild(this, @children[0]) @destroy() + + childAdded: (child) -> + child.parent = this + child.container = @container + @subscribe child, 'destroyed', => @removeChild(child) + + childRemoved: (child) -> + @unsubscribe child