///
///
///
///
///
class ViewController {
constructor(private finder:ContentBlockFinder, private converter:DomContentBlockConverter,
private dataService:DataService, private drawer:ContentBlockDrawer,
private editController:EditController) {
}
init(contentBlockPath:String = null):void {
let htmlContentBlocks:HTMLElement[];
if (contentBlockPath == null) {
htmlContentBlocks = this.finder.find();
} else {
htmlContentBlocks = this.finder.find_by(contentBlockPath);
}
const domContentBlocks = htmlContentBlocks.map((el) => this.converter.convert(el));
const editView = new EditableViewController(this.converter, this.dataService, this.drawer, this.editController);
const readonlyView = new ReadonlyViewController(this.converter, this.dataService, this.drawer);
domContentBlocks.forEach((dom:DomContentBlock) => {
if (dom.isEditable()) return editView.loadContent(dom);
readonlyView.loadContent(dom);
});
}
}