1 // Module that implements main WYSIWIG edit area
10 'libs/text!./template.html'], function(_, transformations, Canvas, CanvasManager, canvas3, commands, template) {
14 return function(sandbox) {
16 var canvas = canvas3.fromXML('', sandbox.publish); //canvasCanvas.create();
18 var canvasWrapper = $(template);
19 var shownAlready = false;
20 var scrollbarPosition = 0,
23 canvasWrapper.onShow = function() {
26 canvas.setCurrentElement(canvas.doc().getVerticallyFirstTextElement());
28 canvas.setCursorPosition(cursorPosition);
29 this.find('#rng-module-documentCanvas-contentWrapper').scrollTop(scrollbarPosition);
33 canvasWrapper.onHide = function() {
34 scrollbarPosition = this.find('#rng-module-documentCanvas-contentWrapper').scrollTop();
35 cursorPosition = canvas.getCursor().getPosition();
40 start: function() { sandbox.publish('ready'); },
44 setDocument: function(xml) {
45 canvas.loadWlxml(xml); //canvas.setHTML(transformations.fromXML.getHTMLTree(xml));
46 canvasWrapper.find('#rng-module-documentCanvas-content').empty().append(canvas.view());
47 manager = new CanvasManager(canvas, sandbox);
48 sandbox.publish('documentSet');
50 getDocument: function() {
51 return canvas.toXML();
53 modifyCurrentNodeElement: function(attr, value) {
54 var currentNodeElement = canvas.getCurrentNodeElement();
55 if(attr === 'class' || attr === 'tag') {
56 currentNodeElement['setWlxml'+(attr[0].toUpperCase() + attr.substring(1))](value);
58 currentNodeElement.setWlxmlMetaAttr(attr, value);
60 sandbox.publish('currentNodeElementChanged', currentNodeElement);
62 highlightElement: function(element) {
63 canvas.highlightElement(element);
65 dimElement: function(element) {
66 canvas.dimElement(element);
68 jumpToElement: function(element) {
69 canvas.setCurrentElement(element);
71 command: function(command, params) {
72 commands.run(command, params, canvas);
73 sandbox.publish('contentChanged');