6
6
import * as vscode from "vscode" ;
7
7
import * as qr from "../sharedInterfaces/queryResult" ;
8
8
import { ReactWebviewViewController } from "../controllers/reactWebviewViewController" ;
9
+ import { SqlOutputContentProvider } from "../models/sqlOutputContentProvider" ;
9
10
10
11
export class QueryResultWebviewController extends ReactWebviewViewController <
11
12
qr . QueryResultWebviewState ,
12
13
qr . QueryResultReducers
13
14
> {
14
15
private _queryResultStateMap : Map < string , qr . QueryResultWebviewState > =
15
16
new Map < string , qr . QueryResultWebviewState > ( ) ;
16
- private _rowRequestHandler :
17
- | ( (
18
- uri : string ,
19
- batchId : number ,
20
- resultId : number ,
21
- rowStart : number ,
22
- numberOfRows : number ,
23
- ) => Promise < qr . ResultSetSubset > )
24
- | undefined ;
17
+ private _sqlOutputContentProvider : SqlOutputContentProvider ;
25
18
26
19
constructor ( context : vscode . ExtensionContext ) {
27
20
super ( context , "queryResult" , {
@@ -40,14 +33,20 @@ export class QueryResultWebviewController extends ReactWebviewViewController<
40
33
41
34
private registerRpcHandlers ( ) {
42
35
this . registerRequestHandler ( "getRows" , async ( message ) => {
43
- return await this . _rowRequestHandler (
36
+ return await this . _sqlOutputContentProvider . rowRequestHandler (
44
37
message . uri ,
45
38
message . batchId ,
46
39
message . resultId ,
47
40
message . rowStart ,
48
41
message . numberOfRows ,
49
42
) ;
50
43
} ) ;
44
+ this . registerRequestHandler ( "setEditorSelection" , async ( message ) => {
45
+ return await this . _sqlOutputContentProvider . editorSelectionRequestHandler (
46
+ message . uri ,
47
+ message . selectionData ,
48
+ ) ;
49
+ } ) ;
51
50
this . registerReducer ( "setResultTab" , async ( state , payload ) => {
52
51
state . tabStates . resultPaneTab = payload . tabId ;
53
52
return state ;
@@ -74,15 +73,9 @@ export class QueryResultWebviewController extends ReactWebviewViewController<
74
73
return res ;
75
74
}
76
75
77
- public setRowRequestHandler (
78
- handler : (
79
- uri : string ,
80
- batchId : number ,
81
- resultId : number ,
82
- rowStart : number ,
83
- numberOfRows : number ,
84
- ) => Promise < qr . ResultSetSubset > ,
76
+ public setSqlOutputContentProvider (
77
+ provider : SqlOutputContentProvider ,
85
78
) : void {
86
- this . _rowRequestHandler = handler ;
79
+ this . _sqlOutputContentProvider = provider ;
87
80
}
88
81
}
0 commit comments