/** * Silex, live web creation * http://projects.silexlabs.org/?/silex/ * * Copyright (c) 2012 Silex Labs * http://www.silexlabs.org/ * * Silex is available under the GPL license * http://www.silexlabs.org/silex/silex-licensing/ */ /** * @fileoverview A controller listens to a view element, * and call the main {silex.controller.Controller} controller's methods * */ import {Model} from '../types'; import {View} from '../types'; import {ControllerBase} from './controller-base'; /** * @param view view class which holds the other views */ export class PropertyToolController extends ControllerBase { constructor(model: Model, view: View) { super(model, view); } /** * add the provided elements to a given page */ addToPage(elements: HTMLElement[], opt_name = this.model.page.getCurrentPage()) { // undo checkpoint this.undoCheckPoint(); elements.forEach((element) => { this.model.page.addToPage(element, opt_name); }); } /** * remove the provided elements from a given page */ removeFromPage(elements: HTMLElement[], name: string) { // undo checkpoint this.undoCheckPoint(); elements.forEach((element) => { this.model.page.removeFromPage(element, name); }); } /** * add provided elements to all pages */ visibleOnAllPages(elements: HTMLElement[]) { // undo checkpoint this.undoCheckPoint(); elements.forEach((element) => { this.model.page.removeFromAllPages(element); }); } /** * add link to the provided elements */ addLink(elements: HTMLElement[], name: string) { // undo checkpoint this.undoCheckPoint(); elements.forEach((element) => { this.model.element.setLink(element, name); }); } /** * remove link from the provided elements */ removeLink(elements: HTMLElement[]) { // undo checkpoint this.undoCheckPoint(); elements.forEach((element) => { this.model.element.setLink(element); }); } }