@@ -3,21 +3,30 @@ import { TensorFlowVis } from '../server/types';
3
3
import { registerDisposable } from '../utils' ;
4
4
5
5
const viewType = 'tfjs-vis' ;
6
+ function shouldShowPanel ( request : TensorFlowVis [ 'request' ] ) {
7
+ switch ( request ) {
8
+ case 'registerfitcallback' :
9
+ case 'fitcallback' :
10
+ return false ;
11
+ default :
12
+ return true ;
13
+ }
14
+ }
6
15
export class TensorflowVisClient implements WebviewViewProvider {
7
16
private static view ?: WebviewView ;
8
17
private static cachedMessages : TensorFlowVis [ ] = [ ] ;
18
+ private static viewVisibilitySet ?: boolean ;
9
19
10
20
constructor ( private readonly extensionUri : Uri ) { }
11
21
public static sendMessage ( message : TensorFlowVis ) {
12
22
TensorflowVisClient . sendMessageInternal ( message ) ;
13
23
}
14
24
private static async sendMessageInternal ( message : TensorFlowVis ) {
15
- if ( ! TensorflowVisClient . view && message . request === 'show' ) {
16
- await commands . executeCommand ( `${ viewType } .focus` ) ;
17
- } else if ( ! TensorflowVisClient . view && message . type === 'tensorFlowVis' ) {
25
+ if ( ! TensorflowVisClient . view && shouldShowPanel ( message . request ) ) {
26
+ void commands . executeCommand ( 'setContext' , 'node_notebook.tfjs-vis.used' , true ) ;
18
27
await commands . executeCommand ( `${ viewType } .focus` ) ;
19
28
}
20
- if ( message . request == 'show' && TensorflowVisClient . view ) {
29
+ if ( shouldShowPanel ( message . request ) && TensorflowVisClient . view ) {
21
30
if ( ! TensorflowVisClient . view . visible ) {
22
31
TensorflowVisClient . view . show ( true ) ;
23
32
}
@@ -27,15 +36,15 @@ export class TensorflowVisClient implements WebviewViewProvider {
27
36
TensorflowVisClient . sendMessages ( ) ;
28
37
}
29
38
private static sendMessages ( ) {
30
- if ( ! TensorflowVisClient . view ) {
39
+ if ( ! TensorflowVisClient . view || ! TensorflowVisClient . viewVisibilitySet ) {
31
40
return ;
32
41
}
33
42
while ( TensorflowVisClient . cachedMessages . length ) {
34
43
const message = TensorflowVisClient . cachedMessages . shift ( ) ;
35
44
if ( ! message ) {
36
45
continue ;
37
46
}
38
- if ( message . request == 'show' ) {
47
+ if ( shouldShowPanel ( message . request ) ) {
39
48
if ( ! TensorflowVisClient . view . visible ) {
40
49
TensorflowVisClient . view . show ( true ) ;
41
50
}
@@ -66,17 +75,10 @@ export class TensorflowVisClient implements WebviewViewProvider {
66
75
67
76
webviewView . webview . onDidReceiveMessage ( ( data ) => {
68
77
switch ( data . type ) {
69
- case 'helloBack' : {
70
- window . showInformationMessage ( data . data ) ;
71
- break ;
72
- }
73
- case 'initialized' : {
74
- window . showInformationMessage ( data . data ) ;
78
+ case 'loaded' : {
79
+ TensorflowVisClient . viewVisibilitySet = true ;
75
80
TensorflowVisClient . sendMessages ( ) ;
76
- break ;
77
- }
78
- case 'clicked' : {
79
- window . showInformationMessage ( data . data ) ;
81
+
80
82
break ;
81
83
}
82
84
case 'tensorFlowVis' : {
0 commit comments