T extends QuickPickItem (#49340)

This commit is contained in:
Christof Marti
2018-06-21 12:08:01 +02:00
parent ede8a0f336
commit aae335792b
5 changed files with 46 additions and 46 deletions

View File

@@ -155,7 +155,7 @@ export class ExtHostQuickOpen implements ExtHostQuickOpenShape {
backButton = backButton;
createQuickPick(extensionId: string): QuickPick {
createQuickPick<T extends QuickPickItem>(extensionId: string): QuickPick<T> {
const session = new ExtHostQuickPick(this._proxy, extensionId, () => this._sessions.delete(session._id));
this._sessions.set(session._id, session);
return session;
@@ -451,18 +451,18 @@ function getIconUri(iconPath: string | URI) {
return URI.file(iconPath);
}
class ExtHostQuickPick extends ExtHostQuickInput implements QuickPick {
class ExtHostQuickPick<T extends QuickPickItem> extends ExtHostQuickInput implements QuickPick<T> {
private _items: QuickPickItem[] = [];
private _handlesToItems = new Map<number, QuickPickItem>();
private _itemsToHandles = new Map<QuickPickItem, number>();
private _items: T[] = [];
private _handlesToItems = new Map<number, T>();
private _itemsToHandles = new Map<T, number>();
private _canSelectMany = false;
private _matchOnDescription = true;
private _matchOnDetail = true;
private _activeItems: QuickPickItem[] = [];
private _onDidChangeActiveEmitter = new Emitter<QuickPickItem[]>();
private _selectedItems: QuickPickItem[] = [];
private _onDidChangeSelectionEmitter = new Emitter<QuickPickItem[]>();
private _activeItems: T[] = [];
private _onDidChangeActiveEmitter = new Emitter<T[]>();
private _selectedItems: T[] = [];
private _onDidChangeSelectionEmitter = new Emitter<T[]>();
constructor(proxy: MainThreadQuickOpenShape, extensionId: string, onDispose: () => void) {
super(proxy, extensionId, onDispose);
@@ -477,7 +477,7 @@ class ExtHostQuickPick extends ExtHostQuickInput implements QuickPick {
return this._items;
}
set items(items: QuickPickItem[]) {
set items(items: T[]) {
this._items = items.slice();
this._handlesToItems.clear();
this._itemsToHandles.clear();
@@ -527,7 +527,7 @@ class ExtHostQuickPick extends ExtHostQuickInput implements QuickPick {
return this._activeItems;
}
set activeItems(activeItems: QuickPickItem[]) {
set activeItems(activeItems: T[]) {
this._activeItems = activeItems.filter(item => this._itemsToHandles.has(item));
this.update({ activeItems: this._activeItems.map(item => this._itemsToHandles.get(item)) });
}
@@ -538,7 +538,7 @@ class ExtHostQuickPick extends ExtHostQuickInput implements QuickPick {
return this._selectedItems;
}
set selectedItems(selectedItems: QuickPickItem[]) {
set selectedItems(selectedItems: T[]) {
this._selectedItems = selectedItems.filter(item => this._itemsToHandles.has(item));
this.update({ selectedItems: this._selectedItems.map(item => this._itemsToHandles.get(item)) });
}