@@ -11,8 +11,9 @@ import { Disposable } from '@theia/core/lib/common/disposable';
11
11
import { BaseWidget } from '@theia/core/lib/browser/widgets/widget' ;
12
12
import { SketchbookTreeWidget } from './sketchbook-tree-widget' ;
13
13
import { nls } from '@theia/core/lib/common' ;
14
- import { SelectableTreeNode , TreeWidget } from '@theia/core/lib/browser' ;
14
+ import { SelectableTreeNode } from '@theia/core/lib/browser' ;
15
15
import { CloudSketchbookCompositeWidget } from '../cloud-sketchbook/cloud-sketchbook-composite-widget' ;
16
+ import { URI } from '../../contributions/contribution' ;
16
17
17
18
@injectable ( )
18
19
export class SketchbookWidget extends BaseWidget {
@@ -65,7 +66,7 @@ export class SketchbookWidget extends BaseWidget {
65
66
return selectedTreeWidgets . shift ( ) ;
66
67
}
67
68
68
- async revealSketchNode ( treeWidgetId : string , nodeId : string ) : Promise < void > {
69
+ async revealSketchNode ( treeWidgetId : string , nodeUri : string ) : Promise < void > {
69
70
const widget = toArray ( this . sketchbookTreesContainer . widgets ( ) )
70
71
. filter ( ( { id } ) => id === treeWidgetId )
71
72
. shift ( ) ;
@@ -76,8 +77,8 @@ export class SketchbookWidget extends BaseWidget {
76
77
// TODO: remove this when the remote/local sketchbooks and their widgets are cleaned up.
77
78
const findTreeWidget = (
78
79
widget : Widget | undefined
79
- ) : TreeWidget | undefined => {
80
- if ( widget instanceof TreeWidget ) {
80
+ ) : SketchbookTreeWidget | undefined => {
81
+ if ( widget instanceof SketchbookTreeWidget ) {
81
82
return widget ;
82
83
}
83
84
if ( widget instanceof CloudSketchbookCompositeWidget ) {
@@ -95,15 +96,17 @@ export class SketchbookWidget extends BaseWidget {
95
96
return ;
96
97
}
97
98
this . sketchbookTreesContainer . activateWidget ( widget ) ;
98
- const treeNode = treeWidget . model . getNode ( nodeId ) ;
99
+
100
+ const treeNode = await treeWidget . model . revealFile ( new URI ( nodeUri ) ) ;
99
101
if ( ! treeNode ) {
100
- console . warn ( `Could not find tree node with ID : ${ nodeId } ` ) ;
102
+ console . warn ( `Could not find tree node with URI : ${ nodeUri } ` ) ;
101
103
return ;
102
104
}
103
105
if ( ! SelectableTreeNode . is ( treeNode ) ) {
104
106
console . warn ( `Tree node ${ treeNode . id } is not selectable.` ) ;
105
107
return ;
106
108
}
109
+
107
110
treeWidget . model . selectNode ( treeNode ) ;
108
111
}
109
112
0 commit comments