UNPKG

2.36 kBPlain TextView Raw
1import {Bean, PostConstruct, Autowired} from "../context/context";
2import {Utils as _} from '../utils';
3import {ICellRenderer, ICellRendererFunc} from "./cellRenderers/iCellRenderer";
4import {GridOptionsWrapper} from "../gridOptionsWrapper";
5import {EventService} from "../eventService";
6import {ExpressionService} from "../valueService/expressionService";
7import {AnimateSlideCellRenderer} from "./cellRenderers/animateSlideCellRenderer";
8import {AnimateShowChangeCellRenderer} from "./cellRenderers/animateShowChangeCellRenderer";
9import {GroupCellRenderer} from "./cellRenderers/groupCellRenderer";
10
11@Bean('cellRendererFactory')
12export class CellRendererFactory {
13
14 public static ANIMATE_SLIDE = 'animateSlide';
15 public static ANIMATE_SHOW_CHANGE = 'animateShowChange';
16 public static GROUP = 'group';
17
18 @Autowired('gridOptionsWrapper') private gridOptionsWrapper: GridOptionsWrapper;
19 @Autowired('expressionService') private expressionService: ExpressionService;
20 @Autowired('eventService') private eventService: EventService;
21
22 private cellRendererMap: {[key: string]: {new(): ICellRenderer} | ICellRendererFunc} = {};
23
24 @PostConstruct
25 private init(): void {
26 this.cellRendererMap[CellRendererFactory.ANIMATE_SLIDE] = AnimateSlideCellRenderer;
27 this.cellRendererMap[CellRendererFactory.ANIMATE_SHOW_CHANGE] = AnimateShowChangeCellRenderer;
28 this.cellRendererMap[CellRendererFactory.GROUP] = GroupCellRenderer;
29
30 // this.registerRenderersFromGridOptions();
31 }
32
33 // private registerRenderersFromGridOptions(): void {
34 // let userProvidedCellRenderers = this.gridOptionsWrapper.getCellRenderers();
35 // _.iterateObject(userProvidedCellRenderers, (key: string, cellRenderer: {new(): ICellRenderer} | ICellRendererFunc)=> {
36 // this.addCellRenderer(key, cellRenderer);
37 // });
38 // }
39
40 public addCellRenderer(key: string, cellRenderer: {new(): ICellRenderer} | ICellRendererFunc): void {
41 this.cellRendererMap[key] = cellRenderer;
42 }
43
44 public getCellRenderer(key: string): {new(): ICellRenderer} | ICellRendererFunc {
45
46 let result = this.cellRendererMap[key];
47 if (_.missing(result)) {
48 console.warn('ag-Grid: unable to find cellRenderer for key ' + key);
49 return null;
50 }
51
52 return result;
53 }
54}