forked from phcode-dev/staging.phcode.dev
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathSidebarView.js
More file actions
1 lines (1 loc) · 6.91 KB
/
SidebarView.js
File metadata and controls
1 lines (1 loc) · 6.91 KB
1
define(function(require,exports,module){var AppInit=require("utils/AppInit"),ProjectManager=require("project/ProjectManager"),PreferencesManager=require("preferences/PreferencesManager"),WorkingSetView=require("project/WorkingSetView"),MainViewManager=require("view/MainViewManager"),CommandManager=require("command/CommandManager"),Commands=require("command/Commands"),Strings=require("strings"),Resizer=require("utils/Resizer"),_=require("thirdparty/lodash"),$sidebar,$splitViewMenu,$projectTitle,$projectFilesContainer,$workingSetViewsContainer,_cmdSplitNone,_cmdSplitVertical,_cmdSplitHorizontal,_cmdToggleWorkingSet,_cmdToggleFileTabs;function _updateProjectTitle(){var displayName=ProjectManager.getProjectRoot().name,fullPath=ProjectManager.getProjectRoot().fullPath;""===displayName&&"/"===fullPath&&(displayName="/"),$projectTitle.html(_.escape(displayName)),$projectTitle.attr("title",Phoenix.app.getDisplayLocation(fullPath)),$projectFilesContainer.trigger("scroll")}function toggle(){Resizer.toggle($sidebar)}function show(){Resizer.show($sidebar)}function hide(){Resizer.hide($sidebar)}function isVisible(){return Resizer.isVisible($sidebar)}function _updateWorkingSetState(){let enabled=!1;1===MainViewManager.getPaneCount()&&0===MainViewManager.getWorkingSetSize(MainViewManager.ACTIVE_PANE)?$workingSetViewsContainer.hide():($workingSetViewsContainer.show(),enabled=!0),CommandManager.get(Commands.CMD_WORKINGSET_SORT_BY_ADDED).setEnabled(enabled),CommandManager.get(Commands.CMD_WORKINGSET_SORT_BY_NAME).setEnabled(enabled),CommandManager.get(Commands.CMD_WORKINGSET_SORT_BY_TYPE).setEnabled(enabled),CommandManager.get(Commands.CMD_WORKING_SORT_TOGGLE_AUTO).setEnabled(enabled)}function _updateUIStates(){var spriteIndex,layoutScheme=MainViewManager.getLayoutScheme();spriteIndex=layoutScheme.columns>1?1:layoutScheme.rows>1?2:0,_cmdSplitNone.setChecked(0===spriteIndex),_cmdSplitVertical.setChecked(1===spriteIndex),_cmdSplitHorizontal.setChecked(2===spriteIndex),_updateWorkingSetState()}function _handleSplitViewNone(){MainViewManager.setLayoutScheme(1,1)}function _handleSplitViewVertical(){MainViewManager.setLayoutScheme(1,2)}function _handleSplitViewHorizontal(){MainViewManager.setLayoutScheme(2,1)}function _handleToggleWorkingSet(){const isCurrentlyShown=PreferencesManager.get("showWorkingSet");PreferencesManager.set("showWorkingSet",!isCurrentlyShown),CommandManager.get(Commands.CMD_TOGGLE_SHOW_WORKING_SET).setChecked(!isCurrentlyShown)}function _handleToggleFileTabs(){const prefs=PreferencesManager.get("tabBar.options"),willBeShown=!prefs.showTabBar;PreferencesManager.set("tabBar.options",{showTabBar:willBeShown,numberOfTabs:prefs.numberOfTabs}),CommandManager.get(Commands.CMD_TOGGLE_SHOW_FILE_TABS).setChecked(willBeShown)}function resize(width){if($sidebar&&$sidebar.length){width=Math.round(width),$sidebar.width(width),$(".content").css("left",width),Resizer.resyncSizer($sidebar);var sidebarPrefs=PreferencesManager.getViewState("sidebar")||{};sidebarPrefs.size=width,PreferencesManager.setViewState("sidebar",sidebarPrefs),$sidebar.trigger("panelResizeEnd",[width])}}function getWidth(){return $sidebar&&$sidebar.length?$sidebar.width():0}AppInit.htmlReady(function(){$sidebar=$("#sidebar"),$splitViewMenu=$sidebar.find(".working-set-splitview-btn"),$projectTitle=$sidebar.find("#project-title"),$projectFilesContainer=$sidebar.find("#project-files-container"),$workingSetViewsContainer=$sidebar.find("#working-set-list-container"),PreferencesManager.get("showWorkingSet")||$workingSetViewsContainer.addClass("working-set-hidden"),$sidebar.on("panelResizeStart",function(evt,width){$sidebar.find(".sidebar-selection-extension").css("display","none"),$sidebar.find(".scroller-shadow").css("display","none")}),$sidebar.on("panelResizeUpdate",function(evt,width){ProjectManager._setFileTreeSelectionWidth(width)}),$sidebar.on("panelResizeEnd",function(evt,width){$sidebar.find(".sidebar-selection-extension").css("display","block").css("left",width),$sidebar.find(".scroller-shadow").css("display","block"),$projectFilesContainer.triggerHandler("scroll"),WorkingSetView.syncSelectionIndicator()}),$sidebar.on("panelCollapsed",function(evt,width){CommandManager.get(Commands.VIEW_HIDE_SIDEBAR).setName(Strings.CMD_SHOW_SIDEBAR)}),$sidebar.on("panelExpanded",function(evt,width){WorkingSetView.refresh(),$sidebar.find(".scroller-shadow").css("display","block"),$sidebar.find(".sidebar-selection-extension").css("left",width),$projectFilesContainer.triggerHandler("scroll"),WorkingSetView.syncSelectionIndicator(),CommandManager.get(Commands.VIEW_HIDE_SIDEBAR).setName(Strings.CMD_HIDE_SIDEBAR)}),$sidebar.is(":visible")||$sidebar.trigger("panelCollapsed"),MainViewManager.on("paneCreate",function(evt,paneId){WorkingSetView.createWorkingSetViewForPane($workingSetViewsContainer,paneId)}),MainViewManager.on("paneLayoutChange",function(){_updateUIStates()}),MainViewManager.on("workingSetAdd workingSetAddList workingSetRemove workingSetRemoveList workingSetUpdate",function(){_updateWorkingSetState()}),_.forEach(MainViewManager.getPaneIdList(),function(paneId){WorkingSetView.createWorkingSetViewForPane($workingSetViewsContainer,paneId)}),_updateUIStates(),$splitViewMenu.attr("title",Strings.GEAR_MENU_TOOLTIP),_cmdToggleWorkingSet.setChecked(PreferencesManager.get("showWorkingSet")),_cmdToggleFileTabs.setChecked(PreferencesManager.get("tabBar.options").showTabBar),PreferencesManager.on("change","tabBar.options",function(){const prefs=PreferencesManager.get("tabBar.options");_cmdToggleFileTabs.setChecked(prefs.showTabBar)}),PreferencesManager.definePreference("showWorkingSet","boolean",!0,{description:Strings.DESCRIPTION_SHOW_WORKING_SET}).on("change",function(){const $workingSet=$(document.getElementById("working-set-list-container")),getPref=PreferencesManager.get("showWorkingSet");getPref?$workingSet.removeClass("working-set-hidden"):$workingSet.addClass("working-set-hidden"),_cmdToggleWorkingSet.setChecked(getPref)})}),ProjectManager.on("projectOpen",_updateProjectTitle),_cmdSplitNone=CommandManager.register(Strings.CMD_SPLITVIEW_NONE,Commands.CMD_SPLITVIEW_NONE,_handleSplitViewNone),_cmdSplitVertical=CommandManager.register(Strings.CMD_SPLITVIEW_VERTICAL,Commands.CMD_SPLITVIEW_VERTICAL,_handleSplitViewVertical),_cmdSplitHorizontal=CommandManager.register(Strings.CMD_SPLITVIEW_HORIZONTAL,Commands.CMD_SPLITVIEW_HORIZONTAL,_handleSplitViewHorizontal),_cmdToggleWorkingSet=CommandManager.register(Strings.CMD_TOGGLE_SHOW_WORKING_SET,Commands.CMD_TOGGLE_SHOW_WORKING_SET,_handleToggleWorkingSet),_cmdToggleFileTabs=CommandManager.register(Strings.CMD_TOGGLE_SHOW_FILE_TABS,Commands.CMD_TOGGLE_SHOW_FILE_TABS,_handleToggleFileTabs),CommandManager.register(Strings.CMD_TOGGLE_SIDEBAR,Commands.VIEW_HIDE_SIDEBAR,toggle),CommandManager.register(Strings.CMD_SHOW_SIDEBAR,Commands.SHOW_SIDEBAR,show),CommandManager.register(Strings.CMD_HIDE_SIDEBAR,Commands.HIDE_SIDEBAR,hide),exports.toggle=toggle,exports.show=show,exports.hide=hide,exports.isVisible=isVisible,exports.resize=resize,exports.getWidth=getWidth});