Allowing grid toggle event if no node selected
[fnpeditor.git] / modules / documentCanvas / documentCanvas.js
index deebfca..39b2610 100644 (file)
@@ -5,23 +5,27 @@ define([
 './transformations', 
 './canvas',
 './canvasManager',
 './transformations', 
 './canvas',
 './canvasManager',
-'libs/text!./template.html'], function(_, transformations, Canvas, CanvasManager, template) {
+'./canvas/canvas',
+'libs/text!./template.html'], function(_, transformations, Canvas, CanvasManager, canvas3, template) {
 
 'use strict';
 
 return function(sandbox) {
 
 
 'use strict';
 
 return function(sandbox) {
 
-    var canvas = Canvas.create();
-    var manager = new CanvasManager(canvas, sandbox);
+    var canvas = canvas3.fromXML(''); //canvasCanvas.create();
+    var manager;
+    var canvasWrapper = $(template);
 
     /* public api */
     return {
         start: function() { sandbox.publish('ready'); },
         getView: function() { 
 
     /* public api */
     return {
         start: function() { sandbox.publish('ready'); },
         getView: function() { 
-            return canvas.dom;
+            return canvasWrapper;
         },
         setDocument: function(xml) {
         },
         setDocument: function(xml) {
-            canvas.setHTML(transformations.fromXML.getHTMLTree(xml));
+            canvas.loadWlxml(xml); //canvas.setHTML(transformations.fromXML.getHTMLTree(xml));
+            canvasWrapper.find('#rng-module-documentCanvas-content').empty().append(canvas.doc().dom());
+            manager = new CanvasManager(canvas, sandbox);
             sandbox.publish('documentSet');
         },
         getDocument: function() {
             sandbox.publish('documentSet');
         },
         getDocument: function() {
@@ -29,8 +33,17 @@ return function(sandbox) {
         },
         modifyCurrentNode: function(attr, value) {
             if(manager.currentNode) {
         },
         modifyCurrentNode: function(attr, value) {
             if(manager.currentNode) {
-                manager.getNodeElement(manager.currentNode).attr('wlxml-'+attr, value);
+                if(attr === 'tag') {
+                    manager.getNodeElement(manager.currentNode).attr('wlxml-'+attr, value);
+                }
+                else if(attr === 'class') {
+                    manager.currentNode.setClass(value);
+                } else {
+                    // changing node meta attr
+                    manager.currentNode.setMetaAttr(attr, value);
+                }
                 sandbox.publish('contentChanged');
                 sandbox.publish('contentChanged');
+                sandbox.publish('currentNodeChanged', manager.currentNode);
             }
         },
         highlightNode: function(canvasNode) {
             }
         },
         highlightNode: function(canvasNode) {
@@ -43,14 +56,8 @@ return function(sandbox) {
             if(!canvasNode.isSame(manager.currentNode))
                 manager.selectNode(canvasNode, {movecaret: true});
         },
             if(!canvasNode.isSame(manager.currentNode))
                 manager.selectNode(canvasNode, {movecaret: true});
         },
-        toggleGrid: function(toggle) {
-            manager.toggleGrid(toggle);
-        },
-        insertNewNode: function(wlxmlTag, wlxmlClass) {
-            manager.insertNewNode(wlxmlTag, wlxmlClass);
-        },
-        command: function(command, meta) {
-            manager.command(command, meta);
+        command: function(command, params) {
+            manager.command(command, params);
         }
     };
     
         }
     };