ag-grid
Version:
Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
55 lines (43 loc) • 2.36 kB
text/typescript
import {Bean, PostConstruct, Autowired} from "../context/context";
import {Utils as _} from '../utils';
import {ICellRenderer, ICellRendererFunc} from "./cellRenderers/iCellRenderer";
import {GridOptionsWrapper} from "../gridOptionsWrapper";
import {EventService} from "../eventService";
import {ExpressionService} from "../valueService/expressionService";
import {AnimateSlideCellRenderer} from "./cellRenderers/animateSlideCellRenderer";
import {AnimateShowChangeCellRenderer} from "./cellRenderers/animateShowChangeCellRenderer";
import {GroupCellRenderer} from "./cellRenderers/groupCellRenderer";
('cellRendererFactory')
export class CellRendererFactory {
public static ANIMATE_SLIDE = 'animateSlide';
public static ANIMATE_SHOW_CHANGE = 'animateShowChange';
public static GROUP = 'group';
('gridOptionsWrapper') private gridOptionsWrapper: GridOptionsWrapper;
('expressionService') private expressionService: ExpressionService;
('eventService') private eventService: EventService;
private cellRendererMap: {[key: string]: {new(): ICellRenderer} | ICellRendererFunc} = {};
private init(): void {
this.cellRendererMap[CellRendererFactory.ANIMATE_SLIDE] = AnimateSlideCellRenderer;
this.cellRendererMap[CellRendererFactory.ANIMATE_SHOW_CHANGE] = AnimateShowChangeCellRenderer;
this.cellRendererMap[CellRendererFactory.GROUP] = GroupCellRenderer;
// this.registerRenderersFromGridOptions();
}
// private registerRenderersFromGridOptions(): void {
// let userProvidedCellRenderers = this.gridOptionsWrapper.getCellRenderers();
// _.iterateObject(userProvidedCellRenderers, (key: string, cellRenderer: {new(): ICellRenderer} | ICellRendererFunc)=> {
// this.addCellRenderer(key, cellRenderer);
// });
// }
public addCellRenderer(key: string, cellRenderer: {new(): ICellRenderer} | ICellRendererFunc): void {
this.cellRendererMap[key] = cellRenderer;
}
public getCellRenderer(key: string): {new(): ICellRenderer} | ICellRendererFunc {
let result = this.cellRendererMap[key];
if (_.missing(result)) {
console.warn('ag-Grid: unable to find cellRenderer for key ' + key);
return null;
}
return result;
}
}