1 // Module that implements main WYSIWIG edit area
7 'libs/text!./template.html'], function(_, canvas3, commands, template) {
11 return function(sandbox) {
13 var canvas = canvas3.fromXMLDocument(null, sandbox.publish);
14 var canvasWrapper = $(template);
15 var shownAlready = false;
16 var scrollbarPosition = 0,
19 canvasWrapper.onShow = function() {
22 canvas.setCurrentElement(canvas.doc().getVerticallyFirstTextElement());
24 canvas.setCursorPosition(cursorPosition);
25 this.find('#rng-module-documentCanvas-contentWrapper').scrollTop(scrollbarPosition);
29 canvasWrapper.onHide = function() {
30 scrollbarPosition = this.find('#rng-module-documentCanvas-contentWrapper').scrollTop();
31 cursorPosition = canvas.getCursor().getPosition();
36 start: function() { sandbox.publish('ready'); },
40 setDocument: function(wlxmlDocument) {
41 canvas.loadWlxmlDocument(wlxmlDocument);
42 canvasWrapper.find('#rng-module-documentCanvas-content').empty().append(canvas.view());
44 getDocument: function() {
45 return canvas.toXML();
47 modifyCurrentNodeElement: function(attr, value) {
48 var currentNodeElement = canvas.getCurrentNodeElement();
49 if(attr === 'class' || attr === 'tag') {
50 currentNodeElement['setWlxml'+(attr[0].toUpperCase() + attr.substring(1))](value);
52 currentNodeElement.setWlxmlMetaAttr(attr, value);
54 sandbox.publish('currentNodeElementChanged', currentNodeElement);
56 highlightElement: function(node) {
57 canvas.toggleElementHighlight(node, true);
59 dimElement: function(node) {
60 canvas.toggleElementHighlight(node, false);
62 jumpToElement: function(node) {
63 canvas.setCurrentElement(node);
65 command: function(command, params) {
66 commands.run(command, params, canvas);
67 sandbox.publish('contentChanged');