mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-25 19:18:59 +01:00
@@ -1301,6 +1301,8 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
|
||||
TestTag: extHostTypes.TestTag,
|
||||
TestRunProfileKind: extHostTypes.TestRunProfileKind,
|
||||
TextSearchCompleteMessageType: TextSearchCompleteMessageType,
|
||||
TreeDataTransfer: extHostTypes.TreeDataTransfer,
|
||||
TreeDataTransferItem: extHostTypes.TreeDataTransferItem,
|
||||
CoveredCount: extHostTypes.CoveredCount,
|
||||
FileCoverage: extHostTypes.FileCoverage,
|
||||
StatementCoverage: extHostTypes.StatementCoverage,
|
||||
|
||||
@@ -295,7 +295,7 @@ export interface MainThreadTextEditorsShape extends IDisposable {
|
||||
}
|
||||
|
||||
export interface MainThreadTreeViewsShape extends IDisposable {
|
||||
$registerTreeViewDataProvider(treeViewId: string, options: { showCollapseAll: boolean, canSelectMany: boolean, canDragAndDrop: boolean; }): Promise<void>;
|
||||
$registerTreeViewDataProvider(treeViewId: string, options: { showCollapseAll: boolean, canSelectMany: boolean, dragAndDropMimeTypes: string[] }): Promise<void>;
|
||||
$refresh(treeViewId: string, itemsToRefresh?: { [treeItemHandle: string]: ITreeItem; }): Promise<void>;
|
||||
$reveal(treeViewId: string, itemInfo: { item: ITreeItem, parentChain: ITreeItem[] } | undefined, options: IRevealOptions): Promise<void>;
|
||||
$setMessage(treeViewId: string, message: string): void;
|
||||
|
||||
@@ -85,8 +85,8 @@ export class ExtHostTreeViews implements ExtHostTreeViewsShape {
|
||||
if (!options || !options.treeDataProvider) {
|
||||
throw new Error('Options with treeDataProvider is mandatory');
|
||||
}
|
||||
const canDragAndDrop = options.dragAndDropController !== undefined;
|
||||
const registerPromise = this._proxy.$registerTreeViewDataProvider(viewId, { showCollapseAll: !!options.showCollapseAll, canSelectMany: !!options.canSelectMany, canDragAndDrop: canDragAndDrop });
|
||||
const dragAndDropMimeTypes = (options.dragAndDropController === undefined) ? [] : options.dragAndDropController.supportedMimeTypes;
|
||||
const registerPromise = this._proxy.$registerTreeViewDataProvider(viewId, { showCollapseAll: !!options.showCollapseAll, canSelectMany: !!options.canSelectMany, dragAndDropMimeTypes });
|
||||
const treeView = this.createExtHostTreeView(viewId, options, extension);
|
||||
return {
|
||||
get onDidCollapseElement() { return treeView.onDidCollapseElement; },
|
||||
@@ -139,9 +139,9 @@ export class ExtHostTreeViews implements ExtHostTreeViewsShape {
|
||||
if ((sourceViewId === destinationViewId) && sourceTreeItemHandles) {
|
||||
const additionalTransferItems = await treeView.onWillDrop(sourceTreeItemHandles);
|
||||
if (additionalTransferItems) {
|
||||
additionalTransferItems.items.forEach((value, key) => {
|
||||
additionalTransferItems.forEach((value, key) => {
|
||||
if (value) {
|
||||
treeDataTransfer.items.set(key, value);
|
||||
treeDataTransfer.set(key, value);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -2296,6 +2296,30 @@ export enum TreeItemCollapsibleState {
|
||||
Expanded = 2
|
||||
}
|
||||
|
||||
@es5ClassCompat
|
||||
export class TreeDataTransferItem {
|
||||
async asString(): Promise<string> {
|
||||
return JSON.stringify(this._value);
|
||||
}
|
||||
|
||||
constructor(private readonly _value: any) { }
|
||||
}
|
||||
|
||||
@es5ClassCompat
|
||||
export class TreeDataTransfer<T extends TreeDataTransferItem = TreeDataTransferItem> {
|
||||
private readonly _items: Map<string, T> = new Map();
|
||||
get(mimeType: string): T | undefined {
|
||||
return this._items.get(mimeType);
|
||||
}
|
||||
set(mimeType: string, value: T): void {
|
||||
this._items.set(mimeType, value);
|
||||
}
|
||||
forEach(callbackfn: (value: T, key: string) => void): void {
|
||||
this._items.forEach(callbackfn);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@es5ClassCompat
|
||||
export class ThemeIcon {
|
||||
|
||||
|
||||
@@ -16,11 +16,9 @@ export interface TreeDataTransferDTO {
|
||||
|
||||
export namespace TreeDataTransferConverter {
|
||||
export function toITreeDataTransfer(value: TreeDataTransferDTO): ITreeDataTransfer {
|
||||
const newDataTransfer: ITreeDataTransfer = {
|
||||
items: new Map<string, ITreeDataTransferItem>()
|
||||
};
|
||||
const newDataTransfer: ITreeDataTransfer = new Map<string, ITreeDataTransferItem>();
|
||||
value.types.forEach((type, index) => {
|
||||
newDataTransfer.items.set(type, {
|
||||
newDataTransfer.set(type, {
|
||||
asString: async () => value.items[index].asString
|
||||
});
|
||||
});
|
||||
@@ -32,7 +30,7 @@ export namespace TreeDataTransferConverter {
|
||||
types: [],
|
||||
items: []
|
||||
};
|
||||
const entries = Array.from(value.items.entries());
|
||||
const entries = Array.from(value.entries());
|
||||
for (const entry of entries) {
|
||||
newDTO.types.push(entry[0]);
|
||||
newDTO.items.push({
|
||||
|
||||
Reference in New Issue
Block a user