aboutsummaryrefslogtreecommitdiff
path: root/js/tools/ShapeTool.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/tools/ShapeTool.js')
-rwxr-xr-xjs/tools/ShapeTool.js45
1 files changed, 10 insertions, 35 deletions
diff --git a/js/tools/ShapeTool.js b/js/tools/ShapeTool.js
index c0681200..0562dbc2 100755
--- a/js/tools/ShapeTool.js
+++ b/js/tools/ShapeTool.js
@@ -53,26 +53,18 @@ exports.ShapeTool = Montage.create(DrawingTool, {
53 } 53 }
54 }, 54 },
55 55
56 HandleLeftButtonUp: 56 HandleLeftButtonUp: {
57 { 57 value: function (event) {
58 value: function (event) 58 var canvas, drawData = this.getDrawingData();
59 {
60 var drawData;
61
62 drawData = this.getDrawingData();
63 59
64 if(drawData) { 60 if(drawData) {
65 var canvas;
66 if(!this._useExistingCanvas()) { 61 if(!this._useExistingCanvas()) {
67 console.log( "creating a new canvas" ); 62 canvas = document.application.njUtils.make("canvas", {"data-RDGE-id": NJUtils.generateRandom()}, this.application.ninja.currentDocument);
68 canvas = NJUtils.makeNJElement("canvas", "Canvas", "shape", {"data-RDGE-id": NJUtils.generateRandom()}, true); 63 document.application.njUtils.createModelWithShape(canvas);
69 var elementModel = TagTool.makeElement(~~drawData.width, ~~drawData.height,
70 drawData.planeMat, drawData.midPt, canvas, true);
71 64
72 canvas.elementModel.isShape = true; 65 var styles = document.application.njUtils.stylesFromDraw(canvas, ~~drawData.width, ~~drawData.height, drawData);
73 this.application.ninja.elementMediator.addElements(canvas, elementModel.data); 66 this.application.ninja.elementMediator.addElements(canvas, styles);
74 } else { 67 } else {
75 console.log( "inserting shape into container" );
76 canvas = this._targetedElement; 68 canvas = this._targetedElement;
77 if (!canvas.getAttribute( "data-RDGE-id" )) 69 if (!canvas.getAttribute( "data-RDGE-id" ))
78 canvas.setAttribute( "data-RDGE-id", NJUtils.generateRandom() ); 70 canvas.setAttribute( "data-RDGE-id", NJUtils.generateRandom() );
@@ -108,6 +100,9 @@ exports.ShapeTool = Montage.create(DrawingTool, {
108 if(wasSelected) { 100 if(wasSelected) {
109 this.AddCustomFeedback(); 101 this.AddCustomFeedback();
110 this.application.ninja.elementMediator.addDelegate = this; 102 this.application.ninja.elementMediator.addDelegate = this;
103 if(this.application.ninja.currentSelectedContainer.nodeName === "CANVAS") {
104 this._targetedElement = this.application.ninja.currentSelectedContainer;
105 }
111 } else { 106 } else {
112 this.RemoveCustomFeedback(); 107 this.RemoveCustomFeedback();
113 this.application.ninja.elementMediator.addDelegate = null; 108 this.application.ninja.elementMediator.addDelegate = null;
@@ -192,26 +187,6 @@ exports.ShapeTool = Montage.create(DrawingTool, {
192 } 187 }
193 }, 188 },
194 189
195 createCanvas: {
196 value: function (left, top, w, h)
197 {
198 //var tmpDiv = document.createElement("canvas");
199 var tmpDiv = NJUtils.makeNJElement("canvas", "Canvas", "block");
200 var rules = {
201 'position': 'absolute',
202 'top' : top + 'px',
203 'left' : left + 'px',
204 '-webkit-transform-style' : 'preserve-3d',
205 '-webkit-transform' : 'matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)'
206 };
207
208 tmpDiv.width = w;
209 tmpDiv.height = h;
210
211 return {el: tmpDiv, rules: rules};
212 }
213 },
214
215 // We can draw on an existing canvas unless it has only a single shape object 190 // We can draw on an existing canvas unless it has only a single shape object
216 _useExistingCanvas: { 191 _useExistingCanvas: {
217 value: function() 192 value: function()