import * as vscode from 'vscode'; export class SidebarMenuProvider implements vscode.TreeDataProvider { onDidChangeTreeData?: vscode.Event | undefined; data: TreeItem[]; constructor() { const itemDocumentation = new TreeItem('Documentation'); itemDocumentation.command = { command: 'paypay.devtool.url.documentation', title: 'Open Documentation', }; const itemStartSimulator = new TreeItem('Start'); itemStartSimulator.command = { command: 'paypay.devtool.simulator.start', title: 'Start', }; const itemStopSimulator = new TreeItem('Stop'); itemStopSimulator.command = { command: 'paypay.devtool.simulator.stop', title: 'Stop', }; /*const itemOpenSimulator = new TreeItem('Open Preview'); itemOpenSimulator.command = { command: 'paypay.devtool.simulator.preview', title: 'Open Preview', };*/ var itemGenerateSampleProject = new TreeItem('Generate Sample Project'); itemGenerateSampleProject.command = { command: 'paypay.devtool.workspace.generatesampleproject', title: 'Generate Sample Project', }; this.data = [ new TreeItem('Actions', [itemDocumentation, itemGenerateSampleProject]), new TreeItem('Simulator', [ itemStartSimulator, itemStopSimulator, //itemOpenSimulator, ]), ]; } getTreeItem(element: TreeItem): vscode.TreeItem | Thenable { return element; } getChildren( element?: TreeItem | undefined ): vscode.ProviderResult { if (element === undefined) { return this.data; } return element.children; } } export class TreeItem extends vscode.TreeItem { children: TreeItem[] | undefined; constructor(label: string, children?: TreeItem[]) { super( label, children === undefined ? vscode.TreeItemCollapsibleState.None : vscode.TreeItemCollapsibleState.Expanded ); this.children = children; } }