1- import { CancellationToken , Event , ProviderResult , TreeDataProvider , TreeItem , window } from 'vscode' ;
1+ import { join } from 'path' ;
2+ import { ProviderResult , TreeDataProvider , TreeItem , TreeItemCollapsibleState , window } from 'vscode' ;
23
34
45
56export function setupSidebar ( ) {
67 const treeDataProvider = new ProcessingWindowDataProvider ( ) ;
78 window . createTreeView ( 'processingSidebarView' , { treeDataProvider } ) ;
89
10+ {
11+ const treeDataProvider = new ProcessingWindowDataProvider ( ) ;
12+ window . createTreeView ( 'processingSidebarView2' , { treeDataProvider } ) ;
13+ }
14+
915}
1016
1117class ProcessingTreeItem extends TreeItem {
12- constructor ( ) {
13- super ( 'Processing Item' ) ;
18+ constructor (
19+ public readonly label : string ,
20+ private version : string ,
21+ public readonly collapsibleState : TreeItemCollapsibleState ,
22+ public readonly path = "" ,
23+ ) {
24+ super ( label , collapsibleState ) ;
25+ this . tooltip = `${ this . label } -${ this . version } ` ;
26+ // this.iconPath = join(__dirname, "..", "..", "media/processing.svg");
1427 }
1528
16- getTreeItem ( ) {
17- return this ;
18- }
1929
20- getChildren ( ) {
21- return [ ] ;
22- }
2330}
2431
2532// TODO: Top level items: [examples, sketchbook]
2633// TODO: Add examples from libraries
2734// TODO: Connect to Processing and request where the sketchbook is located
2835
2936class ProcessingWindowDataProvider implements TreeDataProvider < ProcessingTreeItem > {
30- onDidChangeTreeData ?: Event < void | ProcessingTreeItem | ProcessingTreeItem [ ] > ;
3137 getTreeItem ( element : ProcessingTreeItem ) : TreeItem | Thenable < TreeItem > {
32- throw new Error ( 'getTreeItem not implemented.' ) ;
38+ return element ;
3339 }
3440 getChildren ( element ?: ProcessingTreeItem ) : ProviderResult < ProcessingTreeItem [ ] > {
35- throw new Error ( 'getChildren not implemented.' ) ;
41+ if ( element === undefined ) {
42+ // return the examples and sketchbook items
43+ return [
44+ new ProcessingTreeItem ( 'Sketchbook' , '3.5.4' , TreeItemCollapsibleState . Collapsed ) ,
45+ new ProcessingTreeItem ( 'Examples' , '3.5.4' , TreeItemCollapsibleState . Expanded ) ,
46+ ] ;
47+ } else {
48+ // Return the
49+ return [
50+ new ProcessingTreeItem ( 'Example 1' , '3.5.4' , TreeItemCollapsibleState . None ) ,
51+ ] ;
52+ }
3653 }
37- getParent ?( element : ProcessingTreeItem ) : ProviderResult < ProcessingTreeItem > {
38- throw new Error ( 'getParent not implemented.' ) ;
39- }
40- resolveTreeItem ?( item : TreeItem , element : ProcessingTreeItem , token : CancellationToken ) : ProviderResult < TreeItem > {
41- throw new Error ( 'resolveTreeItem not implemented.' ) ;
42- }
43-
4454}
0 commit comments