Skip to content

Commit 365a087

Browse files
authored
bi: Add telemetry for dnd support (#644)
Signed-off-by: Sheng Chen <[email protected]>
1 parent 4e6e6d3 commit 365a087

File tree

1 file changed

+69
-2
lines changed

1 file changed

+69
-2
lines changed

src/views/DragAndDropController.ts

Lines changed: 69 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { PrimaryTypeNode } from "./PrimaryTypeNode";
1818
import { ProjectNode } from "./projectNode";
1919
import { WorkspaceNode } from "./workspaceNode";
2020
import { addLibraryGlobs } from "../controllers/libraryController";
21-
import { sendError } from "vscode-extension-telemetry-wrapper";
21+
import { sendError, sendInfo } from "vscode-extension-telemetry-wrapper";
2222

2323
export class DragAndDropController implements TreeDragAndDropController<ExplorerNode> {
2424

@@ -35,6 +35,10 @@ export class DragAndDropController implements TreeDragAndDropController<Explorer
3535
const dragItem = source[0];
3636
this.addDragToEditorDataTransfer(dragItem, treeDataTransfer);
3737
this.addInternalDragDataTransfer(dragItem, treeDataTransfer);
38+
sendInfo("", {
39+
dndType: "drag",
40+
dragFrom: dragItem.constructor.name,
41+
});
3842
}
3943

4044
public async handleDrop(target: ExplorerNode | undefined, dataTransfer: DataTransfer): Promise<void> {
@@ -68,7 +72,8 @@ export class DragAndDropController implements TreeDragAndDropController<Explorer
6872
}).filter(Boolean) as string[];
6973

7074
if (uriList.length) {
71-
this.dropFromFileExplorer(target, uriList);
75+
await this.dropFromFileExplorer(target, uriList);
76+
return;
7277
}
7378
}
7479

@@ -114,10 +119,23 @@ export class DragAndDropController implements TreeDragAndDropController<Explorer
114119
private async dropFromJavaProjectExplorer(target: ExplorerNode | undefined, uri: string): Promise<void> {
115120
const source: DataNode | undefined = explorerNodeCache.getDataNode(Uri.parse(uri));
116121
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+
});
117128
return;
118129
}
119130

120131
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+
});
121139
return;
122140
}
123141

@@ -129,13 +147,34 @@ export class DragAndDropController implements TreeDragAndDropController<Explorer
129147
if (target instanceof ContainerNode) {
130148
if (target.getContainerType() !== ContainerType.ReferencedLibrary
131149
|| !(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+
});
132157
return;
133158
}
134159

135160
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+
});
136168
} else if (target instanceof PackageRootNode || target instanceof PackageNode
137169
|| target instanceof FolderNode) {
138170
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+
});
139178
}
140179
}
141180

@@ -146,21 +185,49 @@ export class DragAndDropController implements TreeDragAndDropController<Explorer
146185
*/
147186
private async dropFromFileExplorer(target: ExplorerNode | undefined, uris: string[]): Promise<void> {
148187
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+
});
149195
return;
150196
}
151197

152198
if (target instanceof ContainerNode) {
153199
if (target.getContainerType() !== ContainerType.ReferencedLibrary
154200
|| !(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+
});
155208
return;
156209
}
157210

158211
this.addReferencedLibraries(uris);
212+
sendInfo("", {
213+
dndType: "drop",
214+
dragFrom: "File Explorer",
215+
dropTo: "Referenced Libraries",
216+
draggable: "true",
217+
droppable: "true",
218+
});
159219
} else if (target instanceof PackageRootNode || target instanceof PackageNode
160220
|| target instanceof FolderNode) {
161221
for (const uri of uris) {
162222
await this.copy(Uri.parse(uri), Uri.parse(target.uri!));
163223
}
224+
sendInfo("", {
225+
dndType: "drop",
226+
dragFrom: "File Explorer",
227+
dropTo: target ? target.constructor.name : "undefined",
228+
draggable: "true",
229+
droppable: "true",
230+
});
164231
}
165232
}
166233

0 commit comments

Comments
 (0)