@@ -216,7 +216,7 @@ export class FeatherGrid extends Widget {
216216 font : '12px sans-serif' ,
217217 textColor : Theme . getFontColor ( ) ,
218218 backgroundColor : Theme . getBackgroundColor ( ) ,
219- horizontalAlignment : 'left ' ,
219+ horizontalAlignment : 'center ' ,
220220 verticalAlignment : 'center' ,
221221 } ) ;
222222
@@ -270,7 +270,6 @@ export class FeatherGrid extends Widget {
270270 }
271271
272272 this . grid . dataModel = this . _dataModel ;
273- this . _updateHeaderRenderer ( ) ;
274273 this . _filterDialog . model = this . _dataModel ;
275274 this . _updateColumnWidths ( ) ;
276275 }
@@ -387,6 +386,20 @@ export class FeatherGrid extends Widget {
387386 return this . _defaultRenderer ;
388387 }
389388
389+ set columnHeaderRenderer ( renderer : CellRenderer ) {
390+ this . _columnHeaderRenderer = renderer ;
391+
392+ if ( ! this . grid ) {
393+ return ;
394+ }
395+
396+ this . _updateGridRenderers ( ) ;
397+ }
398+
399+ get columnHeaderRenderer ( ) : CellRenderer {
400+ return this . _columnHeaderRenderer ;
401+ }
402+
390403 set renderers ( renderers : Dict < CellRenderer > ) {
391404 this . _renderers = renderers ;
392405
@@ -490,8 +503,6 @@ export class FeatherGrid extends Widget {
490503 }
491504
492505 public updateGridStyle ( ) {
493- this . _updateHeaderRenderer ( ) ;
494-
495506 if ( ! this . _defaultRendererSet ) {
496507 this . _defaultRenderer = new TextRenderer ( {
497508 font : '12px sans-serif' ,
@@ -509,6 +520,13 @@ export class FeatherGrid extends Widget {
509520 verticalAlignment : 'center' ,
510521 } ) ;
511522
523+ this . _columnHeaderRenderer = new TextRenderer ( {
524+ textColor : Theme . getFontColor ( 1 ) ,
525+ backgroundColor : Theme . getBackgroundColor ( 2 ) ,
526+ horizontalAlignment : 'left' ,
527+ verticalAlignment : 'center' ,
528+ } ) ;
529+
512530 const scrollShadow = {
513531 size : 4 ,
514532 color1 : Theme . getBorderColor ( 1 , 1.0 ) ,
@@ -769,6 +787,13 @@ export class FeatherGrid extends Widget {
769787
770788 private _updateGridRenderers ( ) {
771789 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+ } ) ;
772797 this . grid . cellRenderers . update ( {
773798 'row-header' : this . _rendererResolver . bind ( this ) ,
774799 } ) ;
@@ -811,21 +836,6 @@ export class FeatherGrid extends Widget {
811836 }
812837 }
813838
814- private _updateHeaderRenderer ( ) {
815- const headerRenderer = new HeaderRenderer ( {
816- textOptions : {
817- textColor : Theme . getFontColor ( 1 ) ,
818- backgroundColor : Theme . getBackgroundColor ( 2 ) ,
819- horizontalAlignment : 'center' ,
820- } ,
821- isLightTheme : this . _isLightTheme ,
822- grid : this . grid ,
823- } ) ;
824-
825- this . grid . cellRenderers . update ( { 'column-header' : headerRenderer } ) ;
826- this . grid . cellRenderers . update ( { 'corner-header' : headerRenderer } ) ;
827- }
828-
829839 private _createCommandRegistry ( ) : CommandRegistry {
830840 const commands = new CommandRegistry ( ) ;
831841 commands . addCommand ( FeatherGridContextMenu . CommandID . SortAscending , {
@@ -950,6 +960,7 @@ export class FeatherGrid extends Widget {
950960 private _editable : boolean ;
951961 private _renderers : Dict < CellRenderer > = { } ;
952962 private _defaultRenderer : CellRenderer ;
963+ private _columnHeaderRenderer : CellRenderer ;
953964 private _rowHeaderRenderer : CellRenderer ;
954965 private _defaultRendererSet = false ;
955966 private _cellClicked = new Signal < this, FeatherGrid . ICellClickedEvent > ( this ) ;
0 commit comments