From 67c1fbe21abb10d837f1faf2c753e21baa090978 Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Fri, 4 Nov 2011 10:01:53 -0700 Subject: [PATCH] I'm an idiot --- extensions/tabs/tabs-pane.coffee | 57 ++++++++++++++++++++++++++++++++ extensions/tree/tree-pane.coffee | 10 +++--- extensions/tree/tree.coffee | 28 ++++++++-------- 3 files changed, 76 insertions(+), 19 deletions(-) create mode 100644 extensions/tabs/tabs-pane.coffee diff --git a/extensions/tabs/tabs-pane.coffee b/extensions/tabs/tabs-pane.coffee new file mode 100644 index 000000000..2e51b0487 --- /dev/null +++ b/extensions/tabs/tabs-pane.coffee @@ -0,0 +1,57 @@ +$ = require 'jquery' +_ = require 'underscore' + +Pane = require 'pane' + +module.exports = +class TabsPane extends Pane + position: 'top' + + html: $ require 'tabs/tabs.html' + + constructor: -> + # Style html + @html.parents('.pane').css height: 'inherit' + css = $('').html require 'tabs/tabs.css' + $('head').append css + + # click tab + tabPane = this + $('#tabs ul li').live 'mousedown', -> + tabPane.switchToTab this + false + + nextTab: -> + @switchToTab $('#tabs ul .active').next() + + prevTab: -> + @switchToTab $('#tabs ul .active').prev() + + switchToTab: (tab) -> + tab = $("#tabs ul li").get(tab - 1) if _.isNumber tab + return if tab.length is 0 + + $("#tabs ul .active").removeClass("active") + $(tab).addClass 'active' + window.editor.focusBuffer $(tab).data 'path' + + addTab: (path) -> + existing = $("#tabs [data-path='#{path}']") + if existing.length + return @switchToTab existing + + name = if path then _.last path.split '/' else "untitled" + $("#tabs ul .active").removeClass() + $("#tabs ul").append """ +
  • #{name}
  • + """ + $("#tabs ul li:last").addClass 'active' + + removeTab: (path) -> + tab = $("#tabs li[data-path='#{path}']") + if tab.hasClass("active") + nextTab = tab.next() + nextTab = tab.prev() if nextTab.length == 0 + @switchToTab nextTab if nextTab.length != 0 + + tab.remove() diff --git a/extensions/tree/tree-pane.coffee b/extensions/tree/tree-pane.coffee index 0212fe7ae..08705b389 100644 --- a/extensions/tree/tree-pane.coffee +++ b/extensions/tree/tree-pane.coffee @@ -26,17 +26,15 @@ class TreePane extends Pane if fs.isDirectory path window.x = @tree - openedDirs = @tree.getOpenedDirs() if el.hasClass 'open' - openedDirs = _.without openedDirs, path + @tree.hideDir path el.removeClass 'open' el.children("ul").remove() else - openedDirs.push path unless path in openedDirs + @tree.showDir path el.addClass 'open' list = @createList path el.append list - @tree.setOpenedDirs openedDirs else el.addClass 'active' window.open path @@ -58,14 +56,14 @@ class TreePane extends Pane paths = fs.list root list = $('