mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5282 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
119 lines
4.2 KiB
JavaScript
119 lines
4.2 KiB
JavaScript
/*
|
|
Copyright (c) 2004-2006, The Dojo Foundation
|
|
All Rights Reserved.
|
|
|
|
Licensed under the Academic Free License version 2.1 or above OR the
|
|
modified BSD license. For more information on Dojo licensing, see:
|
|
|
|
http://dojotoolkit.org/community/licensing.shtml
|
|
*/
|
|
|
|
dojo.provide("dojo.gfx.common");
|
|
|
|
dojo.require("dojo.gfx.color");
|
|
dojo.require("dojo.lang.declare");
|
|
dojo.require("dojo.lang.extras");
|
|
dojo.require("dojo.dom");
|
|
|
|
dojo.lang.mixin(dojo.gfx, {
|
|
// summary: defines constants, prototypes, and utility functions
|
|
|
|
// default shapes, which is used to fill in missing parameters
|
|
defaultPath: {type: "path", path: ""},
|
|
defaultPolyline: {type: "polyline", points: []},
|
|
defaultRect: {type: "rect", x: 0, y: 0, width: 100, height: 100, r: 0},
|
|
defaultEllipse: {type: "ellipse", cx: 0, cy: 0, rx: 200, ry: 100},
|
|
defaultCircle: {type: "circle", cx: 0, cy: 0, r: 100},
|
|
defaultLine: {type: "line", x1: 0, y1: 0, x2: 100, y2: 100},
|
|
defaultImage: {type: "image", width: 0, height: 0, src: ""},
|
|
|
|
// default geometric attributes (a stroke, and fills)
|
|
defaultStroke: {color: "black", width: 1, cap: "butt", join: 4},
|
|
defaultLinearGradient: {type: "linear", x1: 0, y1: 0, x2: 100, y2: 100,
|
|
colors: [{offset: 0, color: "black"}, {offset: 1, color: "white"}]},
|
|
defaultRadialGradient: {type: "radial", cx: 0, cy: 0, r: 100,
|
|
colors: [{offset: 0, color: "black"}, {offset: 1, color: "white"}]},
|
|
defaultPattern: {type: "pattern", x: 0, y: 0, width: 0, height: 0, src: ""},
|
|
|
|
normalizeColor: function(/*Color*/ color){
|
|
// summary: converts any legal color representation to normalized dojo.gfx.color.Color object
|
|
return (color instanceof dojo.gfx.color.Color) ? color : new dojo.gfx.color.Color(color); // dojo.gfx.color.Color
|
|
},
|
|
normalizeParameters: function(existed, update){
|
|
// summary: updates an existing object with properties from an "update" object
|
|
// existed: Object: the "target" object to be updated
|
|
// update: Object: the "update" object, whose properties will be used to update the existed object
|
|
if(update){
|
|
var empty = {};
|
|
for(var x in existed){
|
|
if(x in update && !(x in empty)){
|
|
existed[x] = update[x];
|
|
}
|
|
}
|
|
}
|
|
return existed; // Object
|
|
},
|
|
makeParameters: function(defaults, update){
|
|
// summary: copies the original object, and all copied properties from the "update" object
|
|
// defaults: Object: the object to be cloned before updating
|
|
// update: Object: the object, which properties are to be cloned during updating
|
|
if(!update) return dojo.lang.shallowCopy(defaults, true);
|
|
var result = {};
|
|
for(var i in defaults){
|
|
if(!(i in result)){
|
|
result[i] = dojo.lang.shallowCopy((i in update) ? update[i] : defaults[i], true);
|
|
}
|
|
}
|
|
return result; // Object
|
|
},
|
|
formatNumber: function(x, addSpace){
|
|
// summary: converts a number to a string using a fixed notation
|
|
// x: Number: number to be converted
|
|
// addSpace: Boolean?: if it is true, add a space before a positive number
|
|
var val = x.toString();
|
|
if(val.indexOf("e") >= 0){
|
|
val = x.toFixed(4);
|
|
}else{
|
|
var point = val.indexOf(".");
|
|
if(point >= 0 && val.length - point > 5){
|
|
val = x.toFixed(4);
|
|
}
|
|
}
|
|
if(x < 0){
|
|
return val; // String
|
|
}
|
|
return addSpace ? " " + val : val; // String
|
|
},
|
|
|
|
// a constant used to split a SVG/VML path into primitive components
|
|
pathRegExp: /([A-Za-z]+)|(\d+(\.\d+)?)|(\.\d+)|(-\d+(\.\d+)?)|(-\.\d+)/g
|
|
});
|
|
|
|
dojo.declare("dojo.gfx.Surface", null, {
|
|
// summary: a surface object to be used for drawings
|
|
|
|
initializer: function(){
|
|
// summary: a constructor
|
|
|
|
// underlying node
|
|
this.rawNode = null;
|
|
},
|
|
getEventSource: function(){
|
|
// summary: returns a node, which can be used to attach event listeners
|
|
|
|
return this.rawNode; // Node
|
|
}
|
|
});
|
|
|
|
dojo.declare("dojo.gfx.Point", null, {
|
|
// summary: a hypothetical 2D point to be used for drawings - {x, y}
|
|
// description: This object is defined for documentation purposes.
|
|
// You should use a naked object instead: {x: 1, y: 2}.
|
|
});
|
|
|
|
dojo.declare("dojo.gfx.Rectangle", null, {
|
|
// summary: a hypothetical rectangle - {x, y, width, height}
|
|
// description: This object is defined for documentation purposes.
|
|
// You should use a naked object instead: {x: 1, y: 2, width: 100, height: 200}.
|
|
});
|