define(function(require,exports,module){var AppInit=require("utils/AppInit"),DocumentManager=require("document/DocumentManager"),MainViewManager=require("view/MainViewManager"),ProjectManager=require("project/ProjectManager"),CommandManager=require("command/CommandManager"),Commands=require("command/Commands"),Menus=require("command/Menus"),FileViewController=require("project/FileViewController"),ViewUtils=require("utils/ViewUtils"),KeyEvent=require("utils/KeyEvent"),paneListTemplate=require("text!htmlContent/working-set.html"),Strings=require("strings"),_=require("thirdparty/lodash"),Mustache=require("thirdparty/mustache/mustache"),_views={},_iconProviders=[],_contextEntry,_classProviders=[],$workingFilesContainer,LEFT_BUTTON=1,MIDDLE_BUTTON=2,_FILE_KEY="file",NOMANSLAND="nomansland",NOMOVEITEM="nomoveitem",ABOVEITEM="aboveitem",BELOWITEM="belowitem",TOPSCROLL="topscroll",BOTSCROLL="bottomscroll",BELOWVIEW="belowview",ABOVEVIEW="aboveview",_DRAG_MOVE_DETECTION_START=3;function refreshSelection(){_.forEach(_views,function(view){view._updateListSelection()})}function refresh(rebuild){_.forEach(_views,function(view){var top=view.$openFilesContainer.scrollTop();rebuild?view._rebuildViewList(!0):view._redraw(),view.$openFilesContainer.scrollTop(top)})}function syncSelectionIndicator(){_.forEach(_views,function(view){view.$openFilesContainer.triggerHandler("scroll")})}function _updateListItemSelection(listItem,selectedFile){var shouldBeSelected=selectedFile&&$(listItem).data(_FILE_KEY).fullPath===selectedFile.fullPath;ViewUtils.toggleClass($(listItem),"selected",shouldBeSelected)}function _isOpenAndDirty(file){var docIfOpen=DocumentManager.getOpenDocumentForPath(file.fullPath);return docIfOpen&&docIfOpen.isDirty}function _hasSelectionFocus(){return FileViewController.getFileSelectionFocus()===FileViewController.WORKING_SET_VIEW}function _suppressSortRedrawForAllViews(suppress){_.forEach(_views,function(view){view.suppressSortRedraw=suppress})}function _suppressScrollShadowsOnAllViews(disable){_.forEach(_views,function(view){disable?ViewUtils.removeScrollerShadow(view.$openFilesContainer[0],null):view.$openFilesContainer[0].scrollHeight>view.$openFilesContainer[0].clientHeight&&ViewUtils.addScrollerShadow(view.$openFilesContainer[0],null,!0)})}function _deactivateAllViews(deactivate){_.forEach(_views,function(view){deactivate?view.$el.hasClass("active")&&(view.$el.removeClass("active").addClass("reactivate"),view.$openFilesList.trigger("selectionHide")):(view.$el.hasClass("reactivate")&&view.$el.removeClass("reactivate").addClass("active"),view._fireSelectionChanged(!1))})}function _viewFromEl($el){$el.hasClass("working-set-view")||($el=$el.parents(".working-set-view"));var id=$el.attr("id").match(/working\-set\-list\-([\w]+[\w\d\-\.\:\_]*)/).pop();return _views[id]}function _makeDraggable($el){var interval,sourceFile=$el.data(_FILE_KEY);function endScroll($el){interval&&(window.clearInterval(interval),interval=void 0)}function scroll($container,$el,dir,callback){var container=$container[0],maxScroll=container.scrollHeight-container.clientHeight;maxScroll&&dir&&!interval&&(interval=window.setInterval(function(){var scrollTop=$container.scrollTop();-1===dir&&scrollTop<=0||1===dir&&scrollTop>=maxScroll?endScroll($el):($container.scrollTop(scrollTop+7*dir),callback($el))},50))}$el.mousedown(function(e){var scrollDir=0,dragged=!1,startPageY=e.pageY,lastPageY=startPageY,lastHit={where:NOMANSLAND},tryClosing=$(e.target).hasClass("can-close"),currentFile=MainViewManager.getCurrentlyViewedFile(),activePaneId=MainViewManager.getActivePaneId(),activeView=_views[activePaneId],sourceView=_viewFromEl($el),currentView=sourceView,startingIndex=$el.index(),itemHeight,offset,$copy,$ghost,draggingCurrentFile,openedOnMouseDown=!1;function initDragging(){itemHeight=$el.height(),offset=$el.offset(),$copy=$el.clone(),$ghost=$("
").append($("