提交 c8bbaaa5 编写于 作者: P Pine Wu

Remove JSON as ITreeNode is all primitives

上级 61639c0b
......@@ -263,8 +263,8 @@ export abstract class ExtHostEditorsShape {
}
export abstract class ExtHostExplorersShape {
$provideTreeContent(treeContentProviderId: string): TPromise<string> { throw ni(); };
$resolveChildren(treeContentProviderId: string, node: vscode.ITreeNode): TPromise<string> { throw ni(); }
$provideTreeContent(treeContentProviderId: string): TPromise<vscode.ITreeNode> { throw ni(); };
$resolveChildren(treeContentProviderId: string, node: vscode.ITreeNode): TPromise<vscode.ITreeNode[]> { throw ni(); }
}
export abstract class ExtHostExtensionServiceShape {
......
......@@ -13,7 +13,7 @@ import {MainContext, ExtHostExplorersShape, MainThreadExplorersShape} from './ex
export class ExtHostExplorers extends ExtHostExplorersShape {
private _proxy: MainThreadExplorersShape;
private _treeContentProviders: { [treeContentProviderId: string]: vscode.TreeContentProvider; };
private _treeContentProviders: { [treeContentProviderId: string]: vscode.TreeContentProvider };
constructor(
threadService: IThreadService
......@@ -36,25 +36,25 @@ export class ExtHostExplorers extends ExtHostExplorersShape {
});
}
$provideTreeContent(treeContentProviderId: string): TPromise<string> {
$provideTreeContent(treeContentProviderId: string): TPromise<vscode.ITreeNode> {
const provider = this._treeContentProviders[treeContentProviderId];
if (!provider) {
throw new Error(`no TreeContentProvider registered with id '${treeContentProviderId}'`);
}
return TPromise.wrap(provider.provideTreeContent().then(treeContent => {
return JSON.stringify(treeContent);
return treeContent;
}));
}
$resolveChildren(treeContentProviderId: string, node: vscode.ITreeNode): TPromise<string> {
$resolveChildren(treeContentProviderId: string, node: vscode.ITreeNode): TPromise<vscode.ITreeNode[]> {
const provider = this._treeContentProviders[treeContentProviderId];
if (!provider) {
throw new Error(`no TreeContentProvider registered with id '${treeContentProviderId}'`);
}
return TPromise.wrap(provider.resolveChildren(node).then(children => {
return JSON.stringify(children);
return children;
}));
}
}
......@@ -26,14 +26,10 @@ export class MainThreadExplorers extends MainThreadExplorersShape {
$registerTreeContentProvider(providerId: string): void {
this.treeExplorerViewletService.registerTreeContentProvider(providerId, {
provideTreeContent: (): TPromise<ITreeNode> => {
return this._proxy.$provideTreeContent(providerId).then(jsonTree => {
return <ITreeNode>JSON.parse(jsonTree);
})
return this._proxy.$provideTreeContent(providerId);
},
resolveChildren: (node: ITreeNode): TPromise<ITreeNode[]> => {
return this._proxy.$resolveChildren(providerId, node).then(jsonChildren => {
return <ITreeNode[]>JSON.parse(jsonChildren);
})
return this._proxy.$resolveChildren(providerId, node);
}
});
}
......
......@@ -4,7 +4,7 @@ import { $, Builder } from 'vs/base/browser/builder';
import { ITree, IDataSource, IRenderer, IElementCallback } from 'vs/base/parts/tree/browser/tree';
import { Tree } from 'vs/base/parts/tree/browser/treeImpl';
import { TreeViewNode } from 'vs/workbench/parts/explorers/common/treeViewModel';
import { DefaultController } from 'vs/base/parts/tree/browser/treeDefaults';
import { ClickBehavior, DefaultController } from 'vs/base/parts/tree/browser/treeDefaults';
import { IMouseEvent } from 'vs/base/browser/mouseEvent';
import { IActionRunner } from 'vs/base/common/actions';
......@@ -15,7 +15,6 @@ import { IContextViewService, IContextMenuService } from 'vs/platform/contextvie
import { IExtensionService } from 'vs/platform/extensions/common/extensions';
import { IModeService } from 'vs/editor/common/services/modeService';
import { ITreeExplorerViewletService } from 'vs/workbench/parts/explorers/browser/treeExplorerViewletService';
import { ClickBehavior } from 'vs/base/parts/tree/browser/treeDefaults';
const providerId = 'pineTree';
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册