@@ -15,7 +15,7 @@ import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/
1515import { IDisposable , Disposable , dispose , toDisposable } from 'vs/base/common/lifecycle' ;
1616import { KeyCode } from 'vs/base/common/keyCodes' ;
1717import { IFileLabelOptions , IResourceLabel , ResourceLabels } from 'vs/workbench/browser/labels' ;
18- import { ITreeNode , ITreeFilter , TreeVisibility , TreeFilterResult , IAsyncDataSource , ITreeSorter , ITreeDragAndDrop , ITreeDragOverReaction , TreeDragOverBubble } from 'vs/base/browser/ui/tree/tree' ;
18+ import { ITreeRenderer , ITreeNode , ITreeFilter , TreeVisibility , TreeFilterResult , IAsyncDataSource , ITreeSorter , ITreeDragAndDrop , ITreeDragOverReaction , TreeDragOverBubble } from 'vs/base/browser/ui/tree/tree' ;
1919import { IContextViewService } from 'vs/platform/contextview/browser/contextView' ;
2020import { IThemeService } from 'vs/platform/theme/common/themeService' ;
2121import { IConfigurationService , ConfigurationTarget } from 'vs/platform/configuration/common/configuration' ;
@@ -47,30 +47,20 @@ import { IWorkspaceFolderCreationData } from 'vs/platform/workspaces/common/work
4747import { findValidPasteFileTarget } from 'vs/workbench/contrib/files/browser/fileActions' ;
4848import { FuzzyScore , createMatches } from 'vs/base/common/filters' ;
4949import { Emitter } from 'vs/base/common/event' ;
50- import { ICompressibleTreeRenderer } from 'vs/base/browser/ui/tree/objectTree' ;
51- import { ICompressedTreeNode } from 'vs/base/browser/ui/tree/compressedObjectTreeModel' ;
52- import { ITreeCompressionDelegate } from 'vs/base/browser/ui/tree/asyncDataTree' ;
5350
54- export class ExplorerListVirtualDelegate implements IListVirtualDelegate < ExplorerItem > {
51+ export class ExplorerDelegate implements IListVirtualDelegate < ExplorerItem > {
5552
5653 static readonly ITEM_HEIGHT = 22 ;
5754
58- getHeight ( ) : number {
59- return ExplorerListVirtualDelegate . ITEM_HEIGHT ;
55+ getHeight ( element : ExplorerItem ) : number {
56+ return ExplorerDelegate . ITEM_HEIGHT ;
6057 }
6158
62- getTemplateId ( ) : string {
59+ getTemplateId ( element : ExplorerItem ) : string {
6360 return FilesRenderer . ID ;
6461 }
6562}
6663
67- export class ExplorerTreeCompressionDelegate implements ITreeCompressionDelegate < ExplorerItem > {
68-
69- isIncompressible ( element : ExplorerItem ) : boolean {
70- return ! element . isDirectory ;
71- }
72- }
73-
7464export const explorerRootErrorEmitter = new Emitter < URI > ( ) ;
7565export class ExplorerDataSource implements IAsyncDataSource < ExplorerItem | ExplorerItem [ ] , ExplorerItem > {
7666
@@ -126,7 +116,7 @@ export interface IFileTemplateData {
126116 container : HTMLElement ;
127117}
128118
129- export class FilesRenderer implements ICompressibleTreeRenderer < ExplorerItem , FuzzyScore , IFileTemplateData > , IDisposable {
119+ export class FilesRenderer implements ITreeRenderer < ExplorerItem , FuzzyScore , IFileTemplateData > , IDisposable {
130120 static readonly ID = 'file' ;
131121
132122 private config : IFilesConfiguration ;
@@ -271,47 +261,7 @@ export class FilesRenderer implements ICompressibleTreeRenderer<ExplorerItem, Fu
271261 } ) ;
272262 }
273263
274- renderCompressedElements ( node : ITreeNode < ICompressedTreeNode < ExplorerItem > , [ number , number , number ] > , index : number , templateData : IFileTemplateData , height : number | undefined ) : void {
275- templateData . elementDisposable . dispose ( ) ;
276- const stat = node . element . elements [ node . element . elements . length - 1 ] ;
277- const editableData = this . explorerService . getEditableData ( stat ) ;
278-
279- // File Label
280- if ( ! editableData ) {
281- templateData . label . element . style . display = 'flex' ;
282- const extraClasses = [ 'explorer-item' ] ;
283- if ( this . explorerService . isCut ( stat ) ) {
284- extraClasses . push ( 'cut' ) ;
285- }
286- templateData . label . setFile ( stat . resource , {
287- hidePath : true ,
288- fileKind : stat . isRoot ? FileKind . ROOT_FOLDER : stat . isDirectory ? FileKind . FOLDER : FileKind . FILE ,
289- extraClasses,
290- fileDecorations : this . config . explorer . decorations ,
291- matches : createMatches ( node . filterData )
292- } ) ;
293-
294- templateData . elementDisposable = templateData . label . onDidRender ( ( ) => {
295- try {
296- this . updateWidth ( stat ) ;
297- } catch ( e ) {
298- // noop since the element might no longer be in the tree, no update of width necessery
299- }
300- } ) ;
301- }
302-
303- // Input Box
304- else {
305- templateData . label . element . style . display = 'none' ;
306- templateData . elementDisposable = this . renderInputBox ( templateData . container , stat , editableData ) ;
307- }
308- }
309-
310- disposeElement ?( _element : ITreeNode < ExplorerItem , FuzzyScore > , _index : number , templateData : IFileTemplateData ) : void {
311- templateData . elementDisposable . dispose ( ) ;
312- }
313-
314- disposeCompressedElements ?( _node : ITreeNode < ICompressedTreeNode < ExplorerItem > , FuzzyScore > , _index : number , templateData : IFileTemplateData ) : void {
264+ disposeElement ?( element : ITreeNode < ExplorerItem , FuzzyScore > , index : number , templateData : IFileTemplateData ) : void {
315265 templateData . elementDisposable . dispose ( ) ;
316266 }
317267
0 commit comments