aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValerio Virgillito2012-02-16 21:49:35 -0800
committerValerio Virgillito2012-02-16 21:49:35 -0800
commit9f0c4efe2ed9a00f2c5d85c9d88a8040fedb5d8f (patch)
tree19aa9599e0cc37a126df9d61f7e6f6d4baaae75d
parent09f3c65dcbb4d21b75b7fe591c52cb9b9750bf3f (diff)
parente0bead5a36ae987c558607b77745c4018caf59f8 (diff)
downloadninja-9f0c4efe2ed9a00f2c5d85c9d88a8040fedb5d8f.tar.gz
Merge pull request #50 from mencio/canvas-data
Adding canvas data attributes
-rwxr-xr-xjs/controllers/elements/shapes-controller.js1
-rwxr-xr-xjs/lib/NJUtils.js22
-rwxr-xr-xjs/tools/BrushTool.js2
-rwxr-xr-xjs/tools/LineTool.js2
-rwxr-xr-xjs/tools/PenTool.js2
-rwxr-xr-xjs/tools/ShapeTool.js2
6 files changed, 26 insertions, 5 deletions
diff --git a/js/controllers/elements/shapes-controller.js b/js/controllers/elements/shapes-controller.js
index 640119c4..15a18a51 100755
--- a/js/controllers/elements/shapes-controller.js
+++ b/js/controllers/elements/shapes-controller.js
@@ -59,6 +59,7 @@ exports.ShapesController = Montage.create(CanvasController, {
59 break; 59 break;
60 case "useWebGl": 60 case "useWebGl":
61 var canvas = njModule.NJUtils.makeNJElement("canvas", "Canvas", "shape", el.className, true); 61 var canvas = njModule.NJUtils.makeNJElement("canvas", "Canvas", "shape", el.className, true);
62 canvas.setAttribute("data-RDGE-id", njModule.NJUtils.generateRandom());
62 canvas.width = el.width; 63 canvas.width = el.width;
63 canvas.height = el.height; 64 canvas.height = el.height;
64 this.application.ninja.elementMediator.replaceElement(el, canvas); 65 this.application.ninja.elementMediator.replaceElement(el, canvas);
diff --git a/js/lib/NJUtils.js b/js/lib/NJUtils.js
index 8daafa42..887743c5 100755
--- a/js/lib/NJUtils.js
+++ b/js/lib/NJUtils.js
@@ -5,6 +5,7 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot
5</copyright> */ 5</copyright> */
6 6
7var Montage = require("montage/core/core").Montage, 7var Montage = require("montage/core/core").Montage,
8 Uuid = require("montage/core/uuid").Uuid,
8 ElementModel = require("js/models/element-model").ElementModel, 9 ElementModel = require("js/models/element-model").ElementModel,
9 Properties3D = require("js/models/properties-3d").Properties3D, 10 Properties3D = require("js/models/properties-3d").Properties3D,
10 ShapeModel = require("js/models/shape-model").ShapeModel, 11 ShapeModel = require("js/models/shape-model").ShapeModel,
@@ -56,13 +57,18 @@ exports.NJUtils = Object.create(Object.prototype, {
56 57
57 ///// Quick "createElement" function "attr" can be classname or object 58 ///// Quick "createElement" function "attr" can be classname or object
58 ///// with attribute key/values 59 ///// with attribute key/values
60 ///// Suppor for data attributes
59 make : { 61 make : {
60 value: function(tag, attr) { 62 value: function(tag, attr) {
61 var el = document.createElement(tag); 63 var el = document.createElement(tag);
62 if (typeof attr === 'object') { 64 if (typeof attr === 'object') {
63 for (var a in attr) { 65 for (var a in attr) {
64 if (attr.hasOwnProperty(a)) { 66 if (attr.hasOwnProperty(a)) {
65 el[a] = attr[a]; 67 if(a.indexOf("data-") > -1) {
68 el.setAttribute(a, attr[a]);
69 } else {
70 el[a] = attr[a];
71 }
66 } 72 }
67 } 73 }
68 } else if (typeof attr === 'string') { 74 } else if (typeof attr === 'string') {
@@ -247,6 +253,20 @@ exports.NJUtils = Object.create(Object.prototype, {
247 } 253 }
248 return status; 254 return status;
249 } 255 }
256 },
257
258 /* ================= misc methods ================= */
259
260 // Generates an alpha-numeric random number
261 // len: number of chars
262 // default length is '8'
263 generateRandom: {
264 value: function(len) {
265 var length;
266 len ? length = len : length = 8;
267
268 return Uuid.generate().substring(0,length);
269 }
250 } 270 }
251 271
252}); 272});
diff --git a/js/tools/BrushTool.js b/js/tools/BrushTool.js
index ce8ffbb9..4d44326f 100755
--- a/js/tools/BrushTool.js
+++ b/js/tools/BrushTool.js
@@ -201,7 +201,7 @@ exports.BrushTool = Montage.create(ShapeTool, {
201 var top = Math.round(midPt[1] - 0.5 * h); 201 var top = Math.round(midPt[1] - 0.5 * h);
202 202
203 if (!canvas) { 203 if (!canvas) {
204 var newCanvas = NJUtils.makeNJElement("canvas", "Brushstroke", "shape", null, true); 204 var newCanvas = NJUtils.makeNJElement("canvas", "Brushstroke", "shape", {"data-RDGE-id": NJUtils.generateRandom()}, true);
205 var elementModel = TagTool.makeElement(w, h, planeMat, midPt, newCanvas); 205 var elementModel = TagTool.makeElement(w, h, planeMat, midPt, newCanvas);
206 ElementMediator.addElement(newCanvas, elementModel.data, true); 206 ElementMediator.addElement(newCanvas, elementModel.data, true);
207 207
diff --git a/js/tools/LineTool.js b/js/tools/LineTool.js
index 99c374a7..233316a5 100755
--- a/js/tools/LineTool.js
+++ b/js/tools/LineTool.js
@@ -82,7 +82,7 @@ exports.LineTool = Montage.create(ShapeTool, {
82 h += ~~(yAdj*2); 82 h += ~~(yAdj*2);
83 } 83 }
84 84
85 canvas = NJUtils.makeNJElement("canvas", "Canvas", "shape", null, true); 85 canvas = NJUtils.makeNJElement("canvas", "Canvas", "shape", {"data-RDGE-id": NJUtils.generateRandom()}, true);
86 var elementModel = TagTool.makeElement(w, h, drawData.planeMat, drawData.midPt, canvas); 86 var elementModel = TagTool.makeElement(w, h, drawData.planeMat, drawData.midPt, canvas);
87 87
88 ElementMediator.addElement(canvas, elementModel.data, true); 88 ElementMediator.addElement(canvas, elementModel.data, true);
diff --git a/js/tools/PenTool.js b/js/tools/PenTool.js
index 9a69b53d..7749d525 100755
--- a/js/tools/PenTool.js
+++ b/js/tools/PenTool.js
@@ -570,7 +570,7 @@ exports.PenTool = Montage.create(ShapeTool, {
570 570
571 if (!canvas) { 571 if (!canvas) {
572 var newCanvas = null; 572 var newCanvas = null;
573 newCanvas = NJUtils.makeNJElement("canvas", "Subpath", "shape", null, true); 573 newCanvas = NJUtils.makeNJElement("canvas", "Subpath", "shape", {"data-RDGE-id": NJUtils.generateRandom()}, true);
574 var elementModel = TagTool.makeElement(parseInt(w), parseInt(h), planeMat, midPt, newCanvas); 574 var elementModel = TagTool.makeElement(parseInt(w), parseInt(h), planeMat, midPt, newCanvas);
575 ElementMediator.addElement(newCanvas, elementModel.data, true); 575 ElementMediator.addElement(newCanvas, elementModel.data, true);
576 576
diff --git a/js/tools/ShapeTool.js b/js/tools/ShapeTool.js
index 4ccb7a8d..29e9b99f 100755
--- a/js/tools/ShapeTool.js
+++ b/js/tools/ShapeTool.js
@@ -66,7 +66,7 @@ exports.ShapeTool = Montage.create(DrawingTool, {
66 var canvas; 66 var canvas;
67 if(!this._useExistingCanvas()) 67 if(!this._useExistingCanvas())
68 { 68 {
69 canvas = NJUtils.makeNJElement("canvas", "Canvas", "shape", null, true); 69 canvas = NJUtils.makeNJElement("canvas", "Canvas", "shape", {"data-RDGE-id": NJUtils.generateRandom()}, true);
70 var elementModel = TagTool.makeElement(~~drawData.width, ~~drawData.height, 70 var elementModel = TagTool.makeElement(~~drawData.width, ~~drawData.height,
71 drawData.planeMat, drawData.midPt, canvas); 71 drawData.planeMat, drawData.midPt, canvas);
72 72