@@ -18,7 +18,7 @@ import { PrimaryTypeNode } from "./PrimaryTypeNode";
18
18
import { ProjectNode } from "./projectNode" ;
19
19
import { WorkspaceNode } from "./workspaceNode" ;
20
20
import { addLibraryGlobs } from "../controllers/libraryController" ;
21
- import { sendError } from "vscode-extension-telemetry-wrapper" ;
21
+ import { sendError , sendInfo } from "vscode-extension-telemetry-wrapper" ;
22
22
23
23
export class DragAndDropController implements TreeDragAndDropController < ExplorerNode > {
24
24
@@ -35,6 +35,10 @@ export class DragAndDropController implements TreeDragAndDropController<Explorer
35
35
const dragItem = source [ 0 ] ;
36
36
this . addDragToEditorDataTransfer ( dragItem , treeDataTransfer ) ;
37
37
this . addInternalDragDataTransfer ( dragItem , treeDataTransfer ) ;
38
+ sendInfo ( "" , {
39
+ dndType : "drag" ,
40
+ dragFrom : dragItem . constructor . name ,
41
+ } ) ;
38
42
}
39
43
40
44
public async handleDrop ( target : ExplorerNode | undefined , dataTransfer : DataTransfer ) : Promise < void > {
@@ -68,7 +72,8 @@ export class DragAndDropController implements TreeDragAndDropController<Explorer
68
72
} ) . filter ( Boolean ) as string [ ] ;
69
73
70
74
if ( uriList . length ) {
71
- this . dropFromFileExplorer ( target , uriList ) ;
75
+ await this . dropFromFileExplorer ( target , uriList ) ;
76
+ return ;
72
77
}
73
78
}
74
79
@@ -114,10 +119,23 @@ export class DragAndDropController implements TreeDragAndDropController<Explorer
114
119
private async dropFromJavaProjectExplorer ( target : ExplorerNode | undefined , uri : string ) : Promise < void > {
115
120
const source : DataNode | undefined = explorerNodeCache . getDataNode ( Uri . parse ( uri ) ) ;
116
121
if ( ! this . isDraggableNode ( source ) ) {
122
+ sendInfo ( "" , {
123
+ dndType : "drop" ,
124
+ dragFrom : source ? source . constructor . name : "undefined" ,
125
+ dropTo : target ? target . constructor . name : "undefined" ,
126
+ draggable : "false" ,
127
+ } ) ;
117
128
return ;
118
129
}
119
130
120
131
if ( ! this . isDroppableNode ( target ) ) {
132
+ sendInfo ( "" , {
133
+ dndType : "drop" ,
134
+ dragFrom : source ? source . constructor . name : "undefined" ,
135
+ dropTo : target ? target . constructor . name : "undefined" ,
136
+ draggable : "true" ,
137
+ droppable : "false" ,
138
+ } ) ;
121
139
return ;
122
140
}
123
141
@@ -129,13 +147,34 @@ export class DragAndDropController implements TreeDragAndDropController<Explorer
129
147
if ( target instanceof ContainerNode ) {
130
148
if ( target . getContainerType ( ) !== ContainerType . ReferencedLibrary
131
149
|| ! ( target . getParent ( ) as ProjectNode ) . isUnmanagedFolder ( ) ) {
150
+ sendInfo ( "" , {
151
+ dndType : "drop" ,
152
+ dragFrom : source ? source . constructor . name : "undefined" ,
153
+ dropTo : "Referenced Libraries" ,
154
+ draggable : "true" ,
155
+ droppable : "false" ,
156
+ } ) ;
132
157
return ;
133
158
}
134
159
135
160
this . addReferencedLibraries ( [ source ?. uri ! ] ) ;
161
+ sendInfo ( "" , {
162
+ dndType : "drop" ,
163
+ dragFrom : source ? source . constructor . name : "undefined" ,
164
+ dropTo : "Referenced Libraries" ,
165
+ draggable : "true" ,
166
+ droppable : "true" ,
167
+ } ) ;
136
168
} else if ( target instanceof PackageRootNode || target instanceof PackageNode
137
169
|| target instanceof FolderNode ) {
138
170
await this . move ( Uri . parse ( source ! . uri ! ) , Uri . parse ( target . uri ! ) ) ;
171
+ sendInfo ( "" , {
172
+ dndType : "drop" ,
173
+ dragFrom : source ? source . constructor . name : "undefined" ,
174
+ dropTo : target ? target . constructor . name : "undefined" ,
175
+ draggable : "true" ,
176
+ droppable : "true" ,
177
+ } ) ;
139
178
}
140
179
}
141
180
@@ -146,21 +185,49 @@ export class DragAndDropController implements TreeDragAndDropController<Explorer
146
185
*/
147
186
private async dropFromFileExplorer ( target : ExplorerNode | undefined , uris : string [ ] ) : Promise < void > {
148
187
if ( ! this . isDroppableNode ( target ) ) {
188
+ sendInfo ( "" , {
189
+ dndType : "drop" ,
190
+ dragFrom : "File Explorer" ,
191
+ dropTo : target ? target . constructor . name : "undefined" ,
192
+ draggable : "true" ,
193
+ droppable : "false" ,
194
+ } ) ;
149
195
return ;
150
196
}
151
197
152
198
if ( target instanceof ContainerNode ) {
153
199
if ( target . getContainerType ( ) !== ContainerType . ReferencedLibrary
154
200
|| ! ( target . getParent ( ) as ProjectNode ) . isUnmanagedFolder ( ) ) {
201
+ sendInfo ( "" , {
202
+ dndType : "drop" ,
203
+ dragFrom : "File Explorer" ,
204
+ dropTo : "Referenced Libraries" ,
205
+ draggable : "true" ,
206
+ droppable : "false" ,
207
+ } ) ;
155
208
return ;
156
209
}
157
210
158
211
this . addReferencedLibraries ( uris ) ;
212
+ sendInfo ( "" , {
213
+ dndType : "drop" ,
214
+ dragFrom : "File Explorer" ,
215
+ dropTo : "Referenced Libraries" ,
216
+ draggable : "true" ,
217
+ droppable : "true" ,
218
+ } ) ;
159
219
} else if ( target instanceof PackageRootNode || target instanceof PackageNode
160
220
|| target instanceof FolderNode ) {
161
221
for ( const uri of uris ) {
162
222
await this . copy ( Uri . parse ( uri ) , Uri . parse ( target . uri ! ) ) ;
163
223
}
224
+ sendInfo ( "" , {
225
+ dndType : "drop" ,
226
+ dragFrom : "File Explorer" ,
227
+ dropTo : target ? target . constructor . name : "undefined" ,
228
+ draggable : "true" ,
229
+ droppable : "true" ,
230
+ } ) ;
164
231
}
165
232
}
166
233
0 commit comments