bringing back wrapping text with nodes
authorAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Mon, 24 Jun 2013 15:03:39 +0000 (17:03 +0200)
committerAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Mon, 24 Jun 2013 15:03:39 +0000 (17:03 +0200)
modules/documentCanvas/canvas.js
modules/documentCanvas/canvasManager.js
modules/documentCanvas/documentCanvas.js
modules/rng/rng.js

index 80d3915..a6becf4 100644 (file)
@@ -76,6 +76,7 @@ Canvas.prototype.insertNode = function(options) {
         $(textElement).replaceWith(newNode);\r
         newNode.before(prefix);\r
         newNode.after(suffix);\r
+        return newNode;\r
     }\r
 }\r
 \r
index 3ced49a..5d17ec0 100644 (file)
@@ -96,6 +96,27 @@ Manager.prototype.selectNode = function(wlxmlNode, options) {
     this.sandbox.publish('nodeSelected', wlxmlNode);\r
 };\r
 \r
+Manager.prototype.insertNewNode = function(wlxmlTag, wlxmlClass) {\r
+    var selection = window.getSelection();\r
+\r
+    if(selection.getRangeAt(0).collapsed) {\r
+    \r
+    } else {\r
+        var offsetStart = selection.anchorOffset;\r
+        var offsetEnd = selection.focusOffset;\r
+        if(offsetStart > offsetEnd) {\r
+            var tmp = offsetStart;\r
+            offsetStart = offsetEnd;\r
+            offsetEnd = tmp;\r
+        }\r
+        var node = new wlxmlNode.Node($(selection.anchorNode).parent());\r
+        var newNode = this.canvas.insertNode({place: 'wrapText', context: node, tag: wlxmlTag, klass: wlxmlClass, offsetStart: offsetStart, offsetEnd: offsetEnd});\r
+        this.selectNode(new wlxmlNode.Node(newNode), {movecaret: 'end'});\r
+    }\r
+    \r
+    \r
+}\r
+\r
 Manager.prototype.getNodeElement = function(wlxmlNode) {\r
     return this.canvas.dom.find('#'+wlxmlNode.id);\r
 };\r
index cc4964b..bec74fc 100644 (file)
@@ -50,9 +50,6 @@ return function(sandbox) {
         insertNewNode: function(wlxmlTag, wlxmlClass) {\r
             manager.insertNewNode(wlxmlTag, wlxmlClass);\r
         },\r
-        wrapSelectionWithNewNode: function(wlxmlTag, wlxmlClass) {\r
-            manager.wrapSelectionWithNewNode(wlxmlTag, wlxmlClass);\r
-        },\r
         command: function(command, meta) {\r
             manager.command(command, meta);\r
         }\r
index 7c39d0f..a1fe65e 100644 (file)
@@ -254,11 +254,7 @@ return function(sandbox) {
             sandbox.getModule('documentCanvas').toggleGrid(toggle);\r
         },\r
         newNodeRequested: function(wlxmlTag, wlxmlClass) {\r
-            if(window.getSelection().isCollapsed) {\r
                 sandbox.getModule('documentCanvas').insertNewNode(wlxmlTag, wlxmlClass);\r
-            } else {\r
-                sandbox.getModule('documentCanvas').wrapSelectionWithNewNode(wlxmlTag, wlxmlClass);\r
-            }\r
         },\r
         command: function(cmd, meta) {\r
             sandbox.getModule('documentCanvas').command(cmd, meta);\r