/**
* Created by z on 27.11.2015.
*/
'use strict';
/**
*
* @param angularApi
* @param domAttributes
* @constructor
*/
SUXESS.MockupEditor = function ( angularApi, domAttributes ) {
SUXESS.Renderable.call( this, domAttributes );
this._angApi = angularApi;
this._tools = [];
this._canvas = null;
this._toolbar = null;
this._layerManager = new SUXESS.LayerManager();
this._elementProperties = new SUXESS.ElementProperties();
this._layerManager.setElProperties( this._elementProperties );
this.initializeEditor();
};
SUXESS.MockupEditor.prototype = Object.create( SUXESS.Renderable.prototype );
SUXESS.MockupEditor.constructor = SUXESS.MockupEditor;
/**
*
* @param tool
*/
SUXESS.MockupEditor.prototype.addTool = function ( tool ) {
this._tools.push(tool);
this._toolbar.addChild(tool);
};
/**
*
* @param e
*/
SUXESS.MockupEditor.prototype.addElement = function (e) {
this._layerManager.addElement(e);
this._canvas.addChild(e);
};
/**
*
*/
SUXESS.MockupEditor.prototype.initializeEditor = function () {
this._toolbar = new SUXESS.Renderable({ class: ['toolbar'] });
this.addChild(this._toolbar);
var canvasContainer = new SUXESS.Renderable({ class: ['canvas-container'] });
this._canvas = new SUXESS.Canvas();
canvasContainer.addChild(this._canvas);
this.addChild(canvasContainer);
//this.addTool(new SUXESS.ImageTool(this));
//this.addTool(new SUXESS.RectangleTool(this));
this._toolbar.addChild(this._elementProperties);
this._toolbar.addChild(this._layerManager);
};
/**
*
*/
SUXESS.MockupEditor.prototype.getElements = function () {
return this._layerManager.getElements();
};
/**
*
* @returns {SUXESS.Canvas|*}
*/
SUXESS.MockupEditor.prototype.getCanvas = function () {
return this._canvas;
};
/**
*
* @returns {Array}
*/
SUXESS.MockupEditor.prototype.getState = function () {
var elements = this._layerManager.getElements();
var a = [];
for(var i = 0; i < elements.length; i++){
a.push(elements[i].getState());
}
return a;
};
/**
*
* @param elems
*/
SUXESS.MockupEditor.prototype.loadState = function (elems) {
for(var i = 0; i < elems.length; i++) {
var e = new SUXESS.Element();
e.setState(elems[i]);
this.addElement(e);
}
};
/**
*
* @returns {SUXESS.ElementProperties|*}
*/
SUXESS.MockupEditor.prototype.getElementProperties = function () {
return this._elementProperties;
};