import { commands , Event , TreeDataProvider , TreeItem } from "vscode" ; import { injectable } from "inversify" ; import { DataProviderEnum } from "../../bll/utils/constants" ; @ injectable ( ) export abstract class DataProvider implements TreeDataProvider < TreeItem > { abstract onDidChangeTreeData ? : Event < TreeItem > ; public getTreeItem ( element ) { return element ; } abstract getChildren ( element ? ) ; public show ( ) { commands . executeCommand ( "setContext" , "teamcity-explorer" , this . getType ( ) ) ; } abstract resetTreeContent ( ) ; abstract refreshTreePresentation ( ) ; abstract getType ( ) ; }