@@ -807,6 +807,11 @@ export class WorkbenchDataTree<TInput, T, TFilterData = void> extends DataTree<T
807807 this . internals = new WorkbenchTreeInternals ( this , treeOptions , getAutomaticKeyboardNavigation , options . overrideStyles , contextKeyService , listService , themeService , configurationService , accessibilityService ) ;
808808 this . disposables . add ( this . internals ) ;
809809 }
810+
811+ updateOptions ( options : IWorkbenchAsyncDataTreeOptions < T , TFilterData > = { } ) : void {
812+ super . updateOptions ( options ) ;
813+ this . internals . updateStyleOverrides ( options . overrideStyles ) ;
814+ }
810815}
811816
812817export interface IWorkbenchAsyncDataTreeOptions < T , TFilterData > extends IAsyncDataTreeOptions < T , TFilterData > {
@@ -839,6 +844,11 @@ export class WorkbenchAsyncDataTree<TInput, T, TFilterData = void> extends Async
839844 this . internals = new WorkbenchTreeInternals ( this , treeOptions , getAutomaticKeyboardNavigation , options . overrideStyles , contextKeyService , listService , themeService , configurationService , accessibilityService ) ;
840845 this . disposables . add ( this . internals ) ;
841846 }
847+
848+ updateOptions ( options : IWorkbenchAsyncDataTreeOptions < T , TFilterData > = { } ) : void {
849+ super . updateOptions ( options ) ;
850+ this . internals . updateStyleOverrides ( options . overrideStyles ) ;
851+ }
842852}
843853
844854export interface IWorkbenchCompressibleAsyncDataTreeOptions < T , TFilterData > extends ICompressibleAsyncDataTreeOptions < T , TFilterData > {
@@ -936,15 +946,16 @@ class WorkbenchTreeInternals<TInput, T, TFilterData> {
936946 private hasMultiSelection : IContextKey < boolean > ;
937947 private _useAltAsMultipleSelectionModifier : boolean ;
938948 private disposables : IDisposable [ ] = [ ] ;
949+ private styler ! : IDisposable ;
939950
940951 constructor (
941- tree : WorkbenchObjectTree < T , TFilterData > | CompressibleObjectTree < T , TFilterData > | WorkbenchDataTree < TInput , T , TFilterData > | WorkbenchAsyncDataTree < TInput , T , TFilterData > | WorkbenchCompressibleAsyncDataTree < TInput , T , TFilterData > ,
952+ private tree : WorkbenchObjectTree < T , TFilterData > | CompressibleObjectTree < T , TFilterData > | WorkbenchDataTree < TInput , T , TFilterData > | WorkbenchAsyncDataTree < TInput , T , TFilterData > | WorkbenchCompressibleAsyncDataTree < TInput , T , TFilterData > ,
942953 options : IAbstractTreeOptions < T , TFilterData > | IAsyncDataTreeOptions < T , TFilterData > ,
943954 getAutomaticKeyboardNavigation : ( ) => boolean | undefined ,
944955 overrideStyles : IColorMapping | undefined ,
945956 @IContextKeyService contextKeyService : IContextKeyService ,
946957 @IListService listService : IListService ,
947- @IThemeService themeService : IThemeService ,
958+ @IThemeService private themeService : IThemeService ,
948959 @IConfigurationService configurationService : IConfigurationService ,
949960 @IAccessibilityService accessibilityService : IAccessibilityService ,
950961 ) {
@@ -970,10 +981,11 @@ class WorkbenchTreeInternals<TInput, T, TFilterData> {
970981 } ) ;
971982 } ;
972983
984+ this . updateStyleOverrides ( overrideStyles ) ;
985+
973986 this . disposables . push (
974987 this . contextKeyService ,
975988 ( listService as ListService ) . register ( tree ) ,
976- overrideStyles ? attachListStyler ( tree , themeService , overrideStyles ) : Disposable . None ,
977989 tree . onDidChangeSelection ( ( ) => {
978990 const selection = tree . getSelection ( ) ;
979991 const focus = tree . getFocus ( ) ;
@@ -1023,8 +1035,14 @@ class WorkbenchTreeInternals<TInput, T, TFilterData> {
10231035 return this . _useAltAsMultipleSelectionModifier ;
10241036 }
10251037
1038+ updateStyleOverrides ( overrideStyles ?: IColorMapping ) : void {
1039+ dispose ( this . styler ) ;
1040+ this . styler = overrideStyles ? attachListStyler ( this . tree , this . themeService , overrideStyles ) : Disposable . None ;
1041+ }
1042+
10261043 dispose ( ) : void {
10271044 this . disposables = dispose ( this . disposables ) ;
1045+ this . styler = dispose ( this . styler ) ;
10281046 }
10291047}
10301048
0 commit comments