@@ -270,6 +270,7 @@ export class FeatherGrid extends Widget {
270270 }
271271
272272 this . grid . dataModel = this . _dataModel ;
273+ this . _updateHeaderRenderer ( ) ;
273274 this . _filterDialog . model = this . _dataModel ;
274275 this . _updateColumnWidths ( ) ;
275276 }
@@ -387,13 +388,28 @@ export class FeatherGrid extends Widget {
387388 }
388389
389390 set columnHeaderRenderer ( renderer : CellRenderer ) {
390- this . _columnHeaderRenderer = renderer ;
391+ const textRenderer = renderer as TextRenderer ;
392+
393+ // Need to create a HeadeRenderer object as TextRenderer
394+ // objects do not support merged cell rendering.
395+ this . _columnHeaderRenderer = new HeaderRenderer ( {
396+ textOptions : {
397+ font : textRenderer . font ,
398+ textColor : textRenderer . textColor ,
399+ backgroundColor : textRenderer . backgroundColor ,
400+ verticalAlignment : textRenderer . verticalAlignment ,
401+ horizontalAlignment : textRenderer . horizontalAlignment ,
402+ format : textRenderer . format ,
403+ } ,
404+ isLightTheme : this . _isLightTheme ,
405+ grid : this . grid ,
406+ } ) ;
391407
392408 if ( ! this . grid ) {
393409 return ;
394410 }
395411
396- this . _updateGridRenderers ( ) ;
412+ this . _updateHeaderRenderer ( ) ;
397413 }
398414
399415 get columnHeaderRenderer ( ) : CellRenderer {
@@ -503,6 +519,8 @@ export class FeatherGrid extends Widget {
503519 }
504520
505521 public updateGridStyle ( ) {
522+ this . _updateHeaderRenderer ( ) ;
523+
506524 if ( ! this . _defaultRendererSet ) {
507525 this . _defaultRenderer = new TextRenderer ( {
508526 font : '12px sans-serif' ,
@@ -520,11 +538,15 @@ export class FeatherGrid extends Widget {
520538 verticalAlignment : 'center' ,
521539 } ) ;
522540
523- this . _columnHeaderRenderer = new TextRenderer ( {
524- textColor : Theme . getFontColor ( 1 ) ,
525- backgroundColor : Theme . getBackgroundColor ( 2 ) ,
526- horizontalAlignment : 'left' ,
527- verticalAlignment : 'center' ,
541+ this . _columnHeaderRenderer = new HeaderRenderer ( {
542+ textOptions : {
543+ textColor : Theme . getFontColor ( 1 ) ,
544+ backgroundColor : Theme . getBackgroundColor ( 2 ) ,
545+ horizontalAlignment : 'left' ,
546+ verticalAlignment : 'center' ,
547+ } ,
548+ isLightTheme : this . _isLightTheme ,
549+ grid : this . grid ,
528550 } ) ;
529551
530552 const scrollShadow = {
@@ -787,13 +809,6 @@ export class FeatherGrid extends Widget {
787809
788810 private _updateGridRenderers ( ) {
789811 this . grid . cellRenderers . update ( { body : this . _rendererResolver . bind ( this ) } ) ;
790- this . grid . cellRenderers . update ( {
791- 'column-header' : this . _columnHeaderRenderer ,
792- } ) ;
793- // Treating corner header as column header for rendering purposes
794- this . grid . cellRenderers . update ( {
795- 'corner-header' : this . _columnHeaderRenderer ,
796- } ) ;
797812 this . grid . cellRenderers . update ( {
798813 'row-header' : this . _rendererResolver . bind ( this ) ,
799814 } ) ;
@@ -836,6 +851,16 @@ export class FeatherGrid extends Widget {
836851 }
837852 }
838853
854+ private _updateHeaderRenderer ( ) {
855+ this . grid . cellRenderers . update ( {
856+ 'column-header' : this . _columnHeaderRenderer ,
857+ } ) ;
858+ // Treating corner header as column header for rendering purposes
859+ this . grid . cellRenderers . update ( {
860+ 'corner-header' : this . _columnHeaderRenderer ,
861+ } ) ;
862+ }
863+
839864 private _createCommandRegistry ( ) : CommandRegistry {
840865 const commands = new CommandRegistry ( ) ;
841866 commands . addCommand ( FeatherGridContextMenu . CommandID . SortAscending , {
0 commit comments