提交 d421d4f5 编写于 作者: I isidor

fileEditorInput: getDescription, getTitle

上级 abf77d90
......@@ -6,6 +6,7 @@
import { localize } from 'vs/nls';
import { TPromise } from 'vs/base/common/winjs.base';
import { memoize } from 'vs/base/common/decorators';
import paths = require('vs/base/common/paths');
import labels = require('vs/base/common/labels');
import URI from 'vs/base/common/uri';
......@@ -33,14 +34,6 @@ export class FileEditorInput extends EditorInput implements IFileEditorInput {
private name: string;
private shortDescription: string;
private mediumDescription: string;
private longDescription: string;
private shortTitle: string;
private mediumTitle: string;
private longTitle: string;
private toUnbind: IDisposable[];
/**
......@@ -130,35 +123,65 @@ export class FileEditorInput extends EditorInput implements IFileEditorInput {
return this.decorateOrphanedFiles(this.name);
}
@memoize
private get shortDescription(): string {
return paths.basename(labels.getPathLabel(paths.dirname(this.resource.path), void 0, this.environmentService));
}
@memoize
private get mediumDescription(): string {
return labels.getPathLabel(paths.dirname(this.resource.path), this.contextService, this.environmentService);
}
@memoize
private get longDescription(): string {
return labels.getPathLabel(paths.dirname(this.resource.path), void 0, this.environmentService);
}
public getDescription(verbosity: Verbosity = Verbosity.MEDIUM): string {
let description: string;
switch (verbosity) {
case Verbosity.SHORT:
description = this.shortDescription ? this.shortDescription : (this.shortDescription = paths.basename(labels.getPathLabel(paths.dirname(this.resource.fsPath), void 0, this.environmentService)));
description = this.shortDescription;
break;
case Verbosity.LONG:
description = this.longDescription ? this.longDescription : (this.longDescription = labels.getPathLabel(paths.dirname(this.resource.fsPath), void 0, this.environmentService));
description = this.longDescription;
break;
case Verbosity.MEDIUM:
default:
description = this.mediumDescription ? this.mediumDescription : (this.mediumDescription = labels.getPathLabel(paths.dirname(this.resource.fsPath), this.contextService, this.environmentService));
description = this.mediumDescription;
break;
}
return description;
}
@memoize
private get shortTitle(): string {
return this.getName();
}
@memoize
private get mediumTitle(): string {
return labels.getPathLabel(this.resource, this.contextService, this.environmentService);
}
@memoize
private get longTitle(): string {
return labels.getPathLabel(this.resource, void 0, this.environmentService);
}
public getTitle(verbosity: Verbosity): string {
let title: string;
switch (verbosity) {
case Verbosity.SHORT:
title = this.shortTitle ? this.shortTitle : (this.shortTitle = this.getName());
title = this.shortTitle;
break;
case Verbosity.MEDIUM:
title = this.mediumTitle ? this.mediumTitle : (this.mediumTitle = labels.getPathLabel(this.resource, this.contextService, this.environmentService));
title = this.mediumTitle;
break;
case Verbosity.LONG:
title = this.longTitle ? this.longTitle : (this.longTitle = labels.getPathLabel(this.resource, void 0, this.environmentService));
title = this.longTitle;
break;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册