/** * Created by mm28969 on 10/31/16. */ import {convertSelectorToAttribute} from "../mmviz-common/index"; import {TemplateComponent} from "./template"; export class LegendComponent { legendTemplate: TemplateComponent; isTogglable: boolean; variable: string; title: string; // legend title constructor(public selector, template: string) { this.legendTemplate = new TemplateComponent(template); this.isTogglable = false; } set config(c: any){ if (c.title !== undefined){ this.title = c.title; } if (c.isTogglable !== undefined){ this.isTogglable = c.isTogglable; } if (c.variable !== undefined){ this.variable = c.variable; } } updateView(parent, viewModel): LegendComponent { viewModel.title = this.title; this.legendTemplate.updateView(parent, viewModel); return this; } appendView(parent, viewModel): LegendComponent { let element = parent.select(this.selector), selectorAttribute = convertSelectorToAttribute(this.selector) ; viewModel.title = this.title; viewModel.isTogglable = this.isTogglable; viewModel.variable = this.variable; if (element.empty()){ element = parent.append("div").attr("class", selectorAttribute); } this.legendTemplate.updateView(element, viewModel); return this; } }