55
66import { GestureEvent } from 'vs/base/browser/touch' ;
77import { IKeyboardEvent } from 'vs/base/browser/keyboardEvent' ;
8- import { Event } from 'vs/base/common/event' ;
9- import { IDisposable } from 'vs/base/common/lifecycle' ;
108import { IDragAndDropData } from 'vs/base/browser/dnd' ;
119
1210export interface IListVirtualDelegate < T > {
@@ -92,53 +90,3 @@ export interface IListDragAndDrop<T> {
9290 onDragOver ( data : IDragAndDropData , targetElement : T | undefined , targetIndex : number | undefined , originalEvent : DragEvent ) : boolean | IListDragOverReaction ;
9391 drop ( data : IDragAndDropData , targetElement : T | undefined , targetIndex : number | undefined , originalEvent : DragEvent ) : void ;
9492}
95-
96- /**
97- * Use this renderer when you want to re-render elements on account of
98- * an event firing.
99- */
100- export abstract class AbstractListRenderer < T , TTemplateData > implements IListRenderer < T , TTemplateData > {
101-
102- private renderedElements = new Map < T , TTemplateData > ( ) ;
103- private listener : IDisposable ;
104-
105- constructor ( onDidChange : Event < T | T [ ] | undefined > ) {
106- this . listener = onDidChange ( this . onDidChange , this ) ;
107- }
108-
109- renderElement ( element : T , index : number , templateData : TTemplateData ) : void {
110- this . renderedElements . set ( element , templateData ) ;
111- }
112-
113- disposeElement ( element : T , index : number , templateData : TTemplateData ) : void {
114- this . renderedElements . delete ( element ) ;
115- }
116-
117- private onDidChange ( e : T | T [ ] | undefined ) {
118- if ( typeof e === 'undefined' ) {
119- this . renderedElements . forEach ( ( templateData , element ) => this . renderElement ( element , - 1 /* TODO@joao */ , templateData ) ) ;
120- } else if ( Array . isArray ( e ) ) {
121- for ( const element of e ) {
122- this . rerender ( element ) ;
123- }
124- } else {
125- this . rerender ( e ) ;
126- }
127- }
128-
129- private rerender ( element : T ) : void {
130- const templateData = this . renderedElements . get ( element ) ;
131-
132- if ( templateData ) {
133- this . renderElement ( element , - 1 /* TODO@Joao */ , templateData ) ;
134- }
135- }
136-
137- dispose ( ) : void {
138- this . listener . dispose ( ) ;
139- }
140-
141- abstract readonly templateId : string ;
142- abstract renderTemplate ( container : HTMLElement ) : TTemplateData ;
143- abstract disposeTemplate ( templateData : TTemplateData ) : void ;
144- }
0 commit comments