提交 3696d067 编写于 作者: B Benjamin Pasero

move fileicon into iconlabel

上级 95e30cfa
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import {IconLabel} from 'vs/base/browser/ui/iconLabel/iconLabel';
import uri from 'vs/base/common/uri';
import paths = require('vs/base/common/paths');
import types = require('vs/base/common/types');
import {IWorkspaceProvider, getPathLabel} from 'vs/base/common/labels';
export class FileLabel extends IconLabel {
constructor(container: HTMLElement, file: uri, provider: IWorkspaceProvider) {
super(container);
this.setFile(file, provider);
}
public setFile(file: uri, provider: IWorkspaceProvider): void {
const path = getPath(file);
const parent = paths.dirname(path);
this.setValue(paths.basename(path), parent && parent !== '.' ? getPathLabel(parent, provider) : '', { title: path });
}
}
function getPath(arg1: uri | IWorkspaceProvider): string {
if (!arg1) {
return null;
}
if (types.isFunction((<IWorkspaceProvider>arg1).getWorkspace)) {
const ws = (<IWorkspaceProvider>arg1).getWorkspace();
return ws ? ws.resource.fsPath : void 0;
}
return (<uri>arg1).fsPath;
}
\ No newline at end of file
......@@ -9,6 +9,10 @@ import 'vs/css!./iconlabel';
import dom = require('vs/base/browser/dom');
import {HighlightedLabel} from 'vs/base/browser/ui/highlightedlabel/highlightedLabel';
import {IMatch} from 'vs/base/common/filters';
import uri from 'vs/base/common/uri';
import paths = require('vs/base/common/paths');
import types = require('vs/base/common/types');
import {IWorkspaceProvider, getPathLabel} from 'vs/base/common/labels';
export interface IIconLabelCreationOptions {
supportHighlights?: boolean;
......@@ -23,7 +27,7 @@ export interface IIconLabelOptions {
export class IconLabel {
private domNode: HTMLElement;
private labelNode: HTMLElement|HighlightedLabel;
private labelNode: HTMLElement | HighlightedLabel;
private descriptionNode: HTMLElement;
constructor(container: HTMLElement, options?: IIconLabelCreationOptions) {
......@@ -91,4 +95,34 @@ export class IconLabel {
labelNode.dispose();
}
}
}
export class FileLabel extends IconLabel {
constructor(container: HTMLElement, file: uri, provider: IWorkspaceProvider) {
super(container);
this.setFile(file, provider);
}
public setFile(file: uri, provider: IWorkspaceProvider): void {
const path = getPath(file);
const parent = paths.dirname(path);
this.setValue(paths.basename(path), parent && parent !== '.' ? getPathLabel(parent, provider) : '', { title: path });
}
}
function getPath(arg1: uri | IWorkspaceProvider): string {
if (!arg1) {
return null;
}
if (types.isFunction((<IWorkspaceProvider>arg1).getWorkspace)) {
const ws = (<IWorkspaceProvider>arg1).getWorkspace();
return ws ? ws.resource.fsPath : void 0;
}
return (<uri>arg1).fsPath;
}
\ No newline at end of file
......@@ -21,7 +21,7 @@ import {IKeyboardEvent} from 'vs/base/browser/keyboardEvent';
import {IMouseEvent} from 'vs/base/browser/mouseEvent';
import {GestureEvent} from 'vs/base/browser/touch';
import {CountBadge} from 'vs/base/browser/ui/countBadge/countBadge';
import {FileLabel} from 'vs/base/browser/ui/fileLabel/fileLabel';
import {FileLabel} from 'vs/base/browser/ui/iconLabel/iconLabel';
import {LeftRightWidget} from 'vs/base/browser/ui/leftRightWidget/leftRightWidget';
import * as tree from 'vs/base/parts/tree/browser/tree';
import {DefaultController, LegacyRenderer} from 'vs/base/parts/tree/browser/treeDefaults';
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册