diff options
author | Malgorzata Janczarska <malgorzata.tomczyk@pl.ibm.com> | 2013-12-11 17:04:26 +0100 |
---|---|---|
committer | Malgorzata Janczarska <malgorzata.tomczyk@pl.ibm.com> | 2013-12-12 10:56:26 +0100 |
commit | 600b0592be956a4eb888d18fdd5becdc0bba1988 (patch) | |
tree | 85e15aac41026c7c556139e61d090785e89127fb | |
parent | b0810f2398281e76935b4e67c5054088e3a462b3 (diff) | |
download | org.eclipse.orion.client-origin/R5.0M1_maintenance.zip org.eclipse.orion.client-origin/R5.0M1_maintenance.tar.gz org.eclipse.orion.client-origin/R5.0M1_maintenance.tar.bz2 |
Bug 423822 - Control directory viewer layout order with a preferenceorigin/R5.0M1_maintenance
3 files changed, 86 insertions, 41 deletions
diff --git a/bundles/org.eclipse.orion.client.ui/web/edit/setup.js b/bundles/org.eclipse.orion.client.ui/web/edit/setup.js index 701605b..c4160b3 100644 --- a/bundles/org.eclipse.orion.client.ui/web/edit/setup.js +++ b/bundles/org.eclipse.orion.client.ui/web/edit/setup.js @@ -184,7 +184,8 @@ exports.setUpEditor = function(serviceRegistry, preferences, isReadOnly) { contentTypeRegistry: contentTypeRegistry, selection: selection, fileService: fileClient, - progressService: progressService + progressService: progressService, + preferences: preferences }; if (metadata.Directory) { view = new mFolderView.FolderView(options); diff --git a/bundles/org.eclipse.orion.client.ui/web/orion/folderView.js b/bundles/org.eclipse.orion.client.ui/web/orion/folderView.js index 89b1979..7041e0b 100644 --- a/bundles/org.eclipse.orion.client.ui/web/orion/folderView.js +++ b/bundles/org.eclipse.orion.client.ui/web/orion/folderView.js @@ -162,6 +162,7 @@ define([ this.serviceRegistry = options.serviceRegistry; this.commandRegistry = options.commandRegistry; this.contentTypeRegistry = options.contentTypeRegistry; + this.preferences = options.preferences, this.showProjectView = true; this.showFolderNav = true; this._init(); @@ -180,7 +181,8 @@ define([ fileClient : this.fileClient, progress : this.progress, serviceRegistry: this.serviceRegistry, - commandRegistry: this.commandRegistry + commandRegistry: this.commandRegistry, + preferences: this.preferences }); this.projectView = new mProjectView.ProjectView({ fileClient : this.fileClient, @@ -231,34 +233,49 @@ define([ } this._parent.appendChild(this._node); - if (readmeMd) { - div = document.createElement("div"); //$NON-NLS-0$ - this.markdownView.displayInFrame(div, readmeMd); - this._node.appendChild(div); - } - - if(projectJson && this.showProjectView){ - div = document.createElement("div"); //$NON-NLS-0$ - this.projectEditor.displayContents(div, this._metadata); - this._node.appendChild(div); + function renderSections(sectionsOrder){ + sectionsOrder.forEach(function(sectionName){ + if(sectionName === "project"){ + if(projectJson && this.showProjectView){ + div = document.createElement("div"); //$NON-NLS-0$ + this.projectEditor.displayContents(div, this._metadata); + this._node.appendChild(div); + } + } else if(sectionName === "folderNav") { + if (this.showFolderNav) { + var navNode = document.createElement("div"); //$NON-NLS-0$ + navNode.id = "folderNavNode"; //$NON-NLS-0$ + var foldersSection = new mSection.Section(this._node, {id: "folderNavSection", title: "Files"}); + + this.folderNavExplorer = new FolderNavExplorer({ + parentId: navNode, + serviceRegistry: this.serviceRegistry, + fileClient: this.fileClient, + commandRegistry: this.commandRegistry, + contentTypeRegistry: this.contentTypeRegistry + }); + foldersSection.embedExplorer(this.folderNavExplorer); + this.folderNavExplorer.setCommandsVisible(mGlobalCommands.getMainSplitter().splitter.isClosed()); + this.folderNavExplorer.loadRoot(this._metadata); + } + } else if(sectionName === "readme"){ + if (readmeMd) { + div = document.createElement("div"); //$NON-NLS-0$ + this.markdownView.displayInFrame(div, readmeMd); + this._node.appendChild(div); + } + } + }.bind(this)); } - if (this.showFolderNav) { - var navNode = document.createElement("div"); //$NON-NLS-0$ - navNode.id = "folderNavNode"; //$NON-NLS-0$ - var foldersSection = new mSection.Section(this._node, {id: "folderNavSection", title: "Files"}); - - this.folderNavExplorer = new FolderNavExplorer({ - parentId: navNode, - serviceRegistry: this.serviceRegistry, - fileClient: this.fileClient, - commandRegistry: this.commandRegistry, - contentTypeRegistry: this.contentTypeRegistry - }); - foldersSection.embedExplorer(this.folderNavExplorer); - this.folderNavExplorer.setCommandsVisible(mGlobalCommands.getMainSplitter().splitter.isClosed()); - this.folderNavExplorer.loadRoot(this._metadata); - } + var sectionsOrder = ["project", "folderNav", "readme"]; + this.preferences.getPreferences("/sectionsOrder").then(function(sectionsOrderPrefs){ + sectionsOrder = sectionsOrderPrefs.get("folderView") || sectionsOrder; + renderSections.apply(this, [sectionsOrder]); + }.bind(this), function(error){ + renderSections.apply(this, [sectionsOrder]); + window.console.error(error); + }.bind(this)); }, create: function() { if(this._metadata.Projects){ //this is a workspace root diff --git a/bundles/org.eclipse.orion.client.ui/web/orion/projects/projectEditor.js b/bundles/org.eclipse.orion.client.ui/web/orion/projects/projectEditor.js index 6270aa4..0c61fec 100644 --- a/bundles/org.eclipse.orion.client.ui/web/orion/projects/projectEditor.js +++ b/bundles/org.eclipse.orion.client.ui/web/orion/projects/projectEditor.js @@ -8,7 +8,7 @@ * Contributors: IBM Corporation - initial API and implementation ******************************************************************************/ -/*global define document setTimeout*/ +/*global define document setTimeout window*/ define(['orion/URITemplate', 'orion/webui/littlelib', 'orion/Deferred', 'orion/objects', 'orion/projectCommands', 'orion/commandRegistry', 'orion/PageLinks', 'orion/explorers/explorer', 'orion/section'], function(URITemplate, lib, Deferred, objects, mProjectCommands, mCommandRegistry, PageLinks, mExplorer, mSection) { @@ -417,6 +417,7 @@ define(['orion/URITemplate', 'orion/webui/littlelib', 'orion/Deferred', 'orion/o this.serviceRegistry = options.serviceRegistry; this.fileClient = options.fileClient; this.progress = options.progress; + this.preferences = options.preferences; this.projectClient = this.serviceRegistry.getService("orion.project.client"); this.commandRegistry = options.commandRegistry; this._node = null; @@ -452,18 +453,44 @@ define(['orion/URITemplate', 'orion/webui/littlelib', 'orion/Deferred', 'orion/o this.node = node; this.node.className = "orionProject"; this.projectData = projectData; - var span = document.createElement("span"); - this.node.appendChild(span); - this.renderProjectInfo(span); - span = document.createElement("span"); - this.node.appendChild(span); - this.renderAdditionalProjectProperties(span); - span = document.createElement("span"); - this.node.appendChild(span); - this.renderLaunchConfigurations(span); - span = document.createElement("span"); - this.node.appendChild(span); - this.renderDependencies(span); + + function renderSections(sectionsOrder){ + sectionsOrder.forEach(function(sectionName){ + var span; + switch (sectionName) { + case "projectInfo": + span = document.createElement("span"); + this.node.appendChild(span); + this.renderProjectInfo(span); + break; + case "additionalInfo": + span = document.createElement("span"); + this.node.appendChild(span); + this.renderAdditionalProjectProperties(span); + break; + case "deployment": + span = document.createElement("span"); + this.node.appendChild(span); + this.renderLaunchConfigurations(span); + break; + case "dependencies": + span = document.createElement("span"); + this.node.appendChild(span); + this.renderDependencies(span); + break; + } + }.bind(this)); + } + + var sectionsOrder = ["projectInfo", "additionalInfo", "deployment", "dependencies"]; + this.preferences.getPreferences("/sectionsOrder").then(function(sectionsOrderPrefs){ + sectionsOrder = sectionsOrderPrefs.get("projectView") || sectionsOrder; + renderSections.apply(this, [sectionsOrder]); + }.bind(this), function(error){ + renderSections.apply(this, [sectionsOrder]); + window.console.error(error); + }.bind(this)); + }, displayContents: function(node, parentFolder){ this.parentFolder = parentFolder; |