import { CancellationToken, commands, Event, EventEmitter, ProviderResult, TreeDataProvider, TreeItem, TreeItemCollapsibleState } from "vscode"; import { StructureManager } from "./structure-tree-manager"; import { DocumentNode, ProjectNode, SpringNode } from "./nodes"; import * as Path from "path"; export class ExplorerTreeProvider implements TreeDataProvider { private emitter: EventEmitter; public readonly onDidChangeTreeData: Event; constructor(private manager: StructureManager) { this.emitter = new EventEmitter(); this.onDidChangeTreeData = this.emitter.event; this.manager.onDidChange(e => this.emitter.fire(e)); } getTreeItem(element: SpringNode): TreeItem | Thenable { return element.getTreeItem(); } getChildren(element?: SpringNode): ProviderResult { if (element) { return element.children; } return this.getRootElements(); } getRootElements(): ProviderResult { return this.manager.rootElements; } // getParent?(element: SpringNode): ProviderResult { // throw new Error("Method not implemented."); // } // resolveTreeItem?(item: TreeItem, element: SpringNode, token: CancellationToken): ProviderResult { // throw new Error("Method not implemented."); // } }