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

Remove JSON as ITreeNode is all primitives

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