From afa58160b3face16b860145a18a26dff5e11ccac Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Tue, 16 Apr 2013 11:59:25 -0600 Subject: [PATCH] Oops. Fix tree-view auto-scrolling and specs after breaking them. --- src/packages/tree-view/lib/tree-view.coffee | 25 ++++++++----------- .../tree-view/spec/tree-view-spec.coffee | 14 ++++++----- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/src/packages/tree-view/lib/tree-view.coffee b/src/packages/tree-view/lib/tree-view.coffee index e74454d9a..c16845d37 100644 --- a/src/packages/tree-view/lib/tree-view.coffee +++ b/src/packages/tree-view/lib/tree-view.coffee @@ -12,7 +12,7 @@ module.exports = class TreeView extends ScrollView @content: (rootView) -> @div class: 'tree-view-resizer', => - @div class: 'tree-view-scroller', => + @div class: 'tree-view-scroller', outlet: 'scroller', => @ol class: 'list-unstyled tree-view tool-panel', tabindex: -1, outlet: 'treeViewList' @div class: 'tree-view-resize-handle', outlet: 'resizeHandle' @@ -309,33 +309,30 @@ class TreeView extends ScrollView @treeViewList.find('.selected').removeClass('selected') scrollTop: (top) -> - if top - @treeViewList.scrollTop(top) + if top? + @scroller.scrollTop(top) else - @treeViewList.scrollTop() + @scroller.scrollTop() scrollBottom: (bottom) -> - if bottom - @treeViewList.scrollBottom(bottom) + if bottom? + @scroller.scrollBottom(bottom) else - @treeViewList.scrollBottom() + @scroller.scrollBottom() scrollToEntry: (entry) -> displayElement = if entry instanceof DirectoryView then entry.header else entry - top = @scrollTop() + displayElement.position().top + top = displayElement.position().top bottom = top + displayElement.outerHeight() if bottom > @scrollBottom() - @treeViewList.scrollBottom(bottom) + @scrollBottom(bottom) if top < @scrollTop() - @treeViewList.scrollTop(top) + @scrollTop(top) scrollToBottom: -> - super() - @selectEntry(@root.find('.entry:last')) if @root @scrollToEntry(@root.find('.entry:last')) if @root scrollToTop: -> - super() @selectEntry(@root) if @root - @treeViewList.scrollTop(0) + @scrollTop(0) diff --git a/src/packages/tree-view/spec/tree-view-spec.coffee b/src/packages/tree-view/spec/tree-view-spec.coffee index f1b331b06..10dbf1e6f 100644 --- a/src/packages/tree-view/spec/tree-view-spec.coffee +++ b/src/packages/tree-view/spec/tree-view-spec.coffee @@ -428,7 +428,7 @@ describe "TreeView", -> treeView.height(100) treeView.attachToDom() $(element).view().expand() for element in treeView.find('.directory') - expect(treeView.treeViewList.prop('scrollHeight')).toBeGreaterThan treeView.treeViewList.outerHeight() + expect(treeView.treeViewList.outerHeight()).toBeGreaterThan treeView.scroller.outerHeight() expect(treeView.scrollTop()).toBe 0 @@ -452,7 +452,7 @@ describe "TreeView", -> treeView.height(100) treeView.attachToDom() $(element).view().expand() for element in treeView.find('.directory') - expect(treeView.treeViewList.prop('scrollHeight')).toBeGreaterThan treeView.treeViewList.outerHeight() + expect(treeView.treeViewList.outerHeight()).toBeGreaterThan treeView.scroller.outerHeight() expect(treeView.scrollTop()).toBe 0 treeView.trigger 'core:move-to-bottom' @@ -468,7 +468,7 @@ describe "TreeView", -> treeView.height(5) treeView.attachToDom() $(element).view().expand() for element in treeView.find('.directory') - expect(treeView.treeViewList.prop('scrollHeight')).toBeGreaterThan treeView.treeViewList.outerHeight() + expect(treeView.treeViewList.outerHeight()).toBeGreaterThan treeView.scroller.outerHeight() expect(treeView.scrollTop()).toBe 0 treeView.scrollToBottom() @@ -483,7 +483,7 @@ describe "TreeView", -> treeView.height(5) treeView.attachToDom() $(element).view().expand() for element in treeView.find('.directory') - expect(treeView.treeViewList.prop('scrollHeight')).toBeGreaterThan treeView.treeViewList.outerHeight() + expect(treeView.treeViewList.outerHeight()).toBeGreaterThan treeView.scroller.outerHeight() expect(treeView.scrollTop()).toBe 0 treeView.trigger 'core:page-down' @@ -494,14 +494,16 @@ describe "TreeView", -> treeView.height(100) treeView.attachToDom() $(element).view().expand() for element in treeView.find('.directory') - expect(treeView.treeViewList.prop('scrollHeight')).toBeGreaterThan treeView.treeViewList.outerHeight() + expect(treeView.treeViewList.outerHeight()).toBeGreaterThan treeView.scroller.outerHeight() treeView.moveDown() expect(treeView.scrollTop()).toBe 0 entryCount = treeView.find(".entry").length + entryHeight = treeView.find('.file').height() + _.times entryCount, -> treeView.moveDown() - expect(treeView.scrollBottom()).toBe treeView.root.outerHeight() + expect(treeView.scrollBottom()).toBeGreaterThan (entryCount * entryHeight) - 1 _.times entryCount, -> treeView.moveUp() expect(treeView.scrollTop()).toBe 0