mirror of
https://bitbucket.org/wisemapping/wisemapping-open-source.git
synced 2024-11-22 22:27:55 +01:00
Refactor Web2D to use mootool classes.
This commit is contained in:
parent
7f02ed5cf4
commit
e437e0e329
@ -32,27 +32,23 @@ mindplot.ShirinkConnector = new Class({
|
|||||||
var actionDispatcher = mindplot.ActionDispatcher.getInstance();
|
var actionDispatcher = mindplot.ActionDispatcher.getInstance();
|
||||||
actionDispatcher.shrinkBranch([topicId], collapse);
|
actionDispatcher.shrinkBranch([topicId], collapse);
|
||||||
|
|
||||||
var e = new Event(event).stop();
|
event.stopPropagation();
|
||||||
e.preventDefault();
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
elipse.addEvent('mousedown', function(event) {
|
elipse.addEvent('mousedown', function(event) {
|
||||||
// Avoid node creation ...
|
// Avoid node creation ...
|
||||||
var e = new Event(event).stop();
|
event.stopPropagation();
|
||||||
e.preventDefault();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
elipse.addEvent('dblclick', function(event) {
|
elipse.addEvent('dblclick', function(event) {
|
||||||
// Avoid node creation ...
|
// Avoid node creation ...
|
||||||
event = new Event(event).stop();
|
event.stopPropagation();
|
||||||
event.preventDefault();
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
elipse.addEvent('mouseover', function(event) {
|
elipse.addEvent('mouseover', function(event) {
|
||||||
|
|
||||||
this.setFill('rgb(153, 0, 255)');
|
elipse.setFill('rgb(153, 0, 255)');
|
||||||
});
|
});
|
||||||
|
|
||||||
elipse.addEvent('mouseout', function(event) {
|
elipse.addEvent('mouseout', function(event) {
|
||||||
|
@ -17,48 +17,38 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.Arrow = function(attributes)
|
web2d.Arrow = new Class({
|
||||||
{
|
Extends: web2d.Element,
|
||||||
|
initialize : function(attributes) {
|
||||||
var peer = web2d.peer.Toolkit.createArrow();
|
var peer = web2d.peer.Toolkit.createArrow();
|
||||||
var defaultAttributes = {strokeColor:'black',strokeWidth:1,strokeStyle:'solid',strokeOpacity:1};
|
var defaultAttributes = {strokeColor:'black',strokeWidth:1,strokeStyle:'solid',strokeOpacity:1};
|
||||||
for (var key in attributes)
|
for (var key in attributes) {
|
||||||
{
|
|
||||||
defaultAttributes[key] = attributes[key];
|
defaultAttributes[key] = attributes[key];
|
||||||
}
|
}
|
||||||
web2d.Element.call(this, peer, defaultAttributes);
|
this.parent(peer, defaultAttributes);
|
||||||
};
|
},
|
||||||
objects.extend(web2d.Arrow, web2d.Element);
|
|
||||||
|
|
||||||
web2d.Arrow.prototype.getType = function()
|
getType : function() {
|
||||||
{
|
|
||||||
return "Arrow";
|
return "Arrow";
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Arrow.prototype.setFrom = function(x,y)
|
setFrom : function(x, y) {
|
||||||
{
|
|
||||||
this._peer.setFrom(x, y);
|
this._peer.setFrom(x, y);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Arrow.prototype.setControlPoint = function (point)
|
setControlPoint : function (point) {
|
||||||
{
|
|
||||||
this._peer.setControlPoint(point);
|
this._peer.setControlPoint(point);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Arrow.prototype.setStrokeColor = function (color)
|
setStrokeColor : function (color) {
|
||||||
{
|
|
||||||
this._peer.setStrokeColor(color);
|
this._peer.setStrokeColor(color);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Arrow.prototype.setStrokeWidth = function(width)
|
setStrokeWidth : function(width) {
|
||||||
{
|
|
||||||
this._peer.setStrokeWidth(width);
|
this._peer.setStrokeWidth(width);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Arrow.prototype.setDashed = function(isDashed, length, spacing){
|
setDashed : function(isDashed, length, spacing) {
|
||||||
this._peer.setDashed(isDashed, length, spacing);
|
this._peer.setDashed(isDashed, length, spacing);
|
||||||
};
|
}
|
||||||
|
});
|
||||||
web2d.Arrow.prototype.reDraw = function()
|
|
||||||
{
|
|
||||||
this._peer._redraw();
|
|
||||||
};
|
|
||||||
|
@ -16,103 +16,98 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.CurvedLine = function(attributes)
|
web2d.CurvedLine = new Class({
|
||||||
{
|
Extends: web2d.Element,
|
||||||
|
initialize: function(attributes) {
|
||||||
var peer = web2d.peer.Toolkit.createCurvedLine();
|
var peer = web2d.peer.Toolkit.createCurvedLine();
|
||||||
var defaultAttributes = {strokeColor:'blue',strokeWidth:1,strokeStyle:'solid',strokeOpacity:1};
|
var defaultAttributes = {strokeColor:'blue',strokeWidth:1,strokeStyle:'solid',strokeOpacity:1};
|
||||||
for (var key in attributes)
|
for (var key in attributes) {
|
||||||
{
|
|
||||||
defaultAttributes[key] = attributes[key];
|
defaultAttributes[key] = attributes[key];
|
||||||
}
|
}
|
||||||
web2d.Element.call(this, peer, defaultAttributes);
|
this.parent(peer, defaultAttributes);
|
||||||
};
|
},
|
||||||
objects.extend(web2d.CurvedLine, web2d.Element);
|
|
||||||
|
|
||||||
web2d.CurvedLine.prototype.getType = function()
|
getType : function() {
|
||||||
{
|
|
||||||
return "CurvedLine";
|
return "CurvedLine";
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.CurvedLine.prototype.setFrom = function(x, y)
|
setFrom : function(x, y) {
|
||||||
{
|
|
||||||
this._peer.setFrom(x, y);
|
this._peer.setFrom(x, y);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.CurvedLine.prototype.setTo = function(x, y)
|
setTo : function(x, y) {
|
||||||
{
|
|
||||||
this._peer.setTo(x, y);
|
this._peer.setTo(x, y);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.CurvedLine.prototype.getFrom = function()
|
getFrom : function() {
|
||||||
{
|
|
||||||
return this._peer.getFrom();
|
return this._peer.getFrom();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.CurvedLine.prototype.getTo = function()
|
getTo : function() {
|
||||||
{
|
|
||||||
return this._peer.getTo();
|
return this._peer.getTo();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.CurvedLine.prototype.setShowEndArrow = function(visible){
|
setShowEndArrow : function(visible) {
|
||||||
this._peer.setShowEndArrow(visible);
|
this._peer.setShowEndArrow(visible);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.CurvedLine.prototype.isShowEndArrow = function(){
|
isShowEndArrow : function() {
|
||||||
return this._peer.isShowEndArrow();
|
return this._peer.isShowEndArrow();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.CurvedLine.prototype.setShowStartArrow = function(visible){
|
setShowStartArrow : function(visible) {
|
||||||
this._peer.setShowStartArrow(visible);
|
this._peer.setShowStartArrow(visible);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.CurvedLine.prototype.isShowStartArrow = function(){
|
isShowStartArrow : function() {
|
||||||
return this._peer.isShowStartArrow();
|
return this._peer.isShowStartArrow();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.CurvedLine.prototype.setSrcControlPoint = function(control){
|
setSrcControlPoint : function(control) {
|
||||||
this._peer.setSrcControlPoint(control);
|
this._peer.setSrcControlPoint(control);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.CurvedLine.prototype.setDestControlPoint = function(control){
|
setDestControlPoint : function(control) {
|
||||||
this._peer.setDestControlPoint(control);
|
this._peer.setDestControlPoint(control);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.CurvedLine.prototype.getControlPoints = function(){
|
getControlPoints : function() {
|
||||||
return this._peer.getControlPoints();
|
return this._peer.getControlPoints();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.CurvedLine.prototype.isSrcControlPointCustom = function(){
|
isSrcControlPointCustom : function() {
|
||||||
return this._peer.isSrcControlPointCustom();
|
return this._peer.isSrcControlPointCustom();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.CurvedLine.prototype.isDestControlPointCustom = function(){
|
isDestControlPointCustom : function() {
|
||||||
return this._peer.isDestControlPointCustom();
|
return this._peer.isDestControlPointCustom();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.CurvedLine.prototype.setIsSrcControlPointCustom = function(isCustom){
|
setIsSrcControlPointCustom : function(isCustom) {
|
||||||
this._peer.setIsSrcControlPointCustom(isCustom);
|
this._peer.setIsSrcControlPointCustom(isCustom);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.CurvedLine.prototype.setIsDestControlPointCustom = function(isCustom){
|
setIsDestControlPointCustom : function(isCustom) {
|
||||||
this._peer.setIsDestControlPointCustom(isCustom);
|
this._peer.setIsDestControlPointCustom(isCustom);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.CurvedLine.prototype.updateLine= function(avoidControlPointFix){
|
updateLine : function(avoidControlPointFix) {
|
||||||
return this._peer.updateLine(avoidControlPointFix);
|
return this._peer.updateLine(avoidControlPointFix);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.CurvedLine.prototype.setStyle = function(style){
|
setStyle : function(style) {
|
||||||
this._peer.setLineStyle(style);
|
this._peer.setLineStyle(style);
|
||||||
|
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.CurvedLine.prototype.getStyle = function(){
|
getStyle : function() {
|
||||||
return this._peer.getLineStyle();
|
return this._peer.getLineStyle();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.CurvedLine.prototype.setDashed = function(length,spacing){
|
setDashed : function(length, spacing) {
|
||||||
this._peer.setDashed(length, spacing);
|
this._peer.setDashed(length, spacing);
|
||||||
};
|
}
|
||||||
|
});
|
||||||
|
|
||||||
web2d.CurvedLine.SIMPLE_LINE = false;
|
web2d.CurvedLine.SIMPLE_LINE = false;
|
||||||
web2d.CurvedLine.NICE_LINE = true;
|
web2d.CurvedLine.NICE_LINE = true;
|
||||||
|
@ -16,7 +16,8 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.Element = function(peer, attributes) {
|
web2d.Element = new Class({
|
||||||
|
initialize : function(peer, attributes) {
|
||||||
this._peer = peer;
|
this._peer = peer;
|
||||||
if (peer == null) {
|
if (peer == null) {
|
||||||
throw "Element peer can not be null";
|
throw "Element peer can not be null";
|
||||||
@ -26,11 +27,9 @@ web2d.Element = function(peer, attributes) {
|
|||||||
if ($defined(attributes)) {
|
if ($defined(attributes)) {
|
||||||
this._initialize(attributes);
|
this._initialize(attributes);
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Element.prototype._SIGNATURE_MULTIPLE_ARGUMENTS = -1;
|
_initialize : function(attributes) {
|
||||||
|
|
||||||
web2d.Element.prototype._initialize = function(attributes) {
|
|
||||||
var batchExecute = {};
|
var batchExecute = {};
|
||||||
|
|
||||||
// Collect arguments ...
|
// Collect arguments ...
|
||||||
@ -41,9 +40,9 @@ web2d.Element.prototype._initialize = function(attributes) {
|
|||||||
funcArgs = [];
|
funcArgs = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
var signature = this._propertyNameToSignature[key];
|
var signature = web2d.Element._propertyNameToSignature[key];
|
||||||
var argPositions = signature[1];
|
var argPositions = signature[1];
|
||||||
if (argPositions != this._SIGNATURE_MULTIPLE_ARGUMENTS) {
|
if (argPositions != web2d.Element._SIGNATURE_MULTIPLE_ARGUMENTS) {
|
||||||
funcArgs[argPositions] = attributes[key];
|
funcArgs[argPositions] = attributes[key];
|
||||||
} else {
|
} else {
|
||||||
funcArgs = attributes[key].split(' ');
|
funcArgs = attributes[key].split(' ');
|
||||||
@ -59,22 +58,21 @@ web2d.Element.prototype._initialize = function(attributes) {
|
|||||||
}
|
}
|
||||||
func.apply(this, batchExecute[key]);
|
func.apply(this, batchExecute[key]);
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Element.prototype.setSize = function(width, height) {
|
setSize : function(width, height) {
|
||||||
this._peer.setSize(width, height);
|
this._peer.setSize(width, height);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Element.prototype.setPosition = function(cx, cy) {
|
setPosition : function(cx, cy) {
|
||||||
this._peer.setPosition(cx, cy);
|
this._peer.setPosition(cx, cy);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Element.prototype._supportedEvents = ["click","dblclick","mousemove","mouseout","mouseover","mousedown","mouseup"];
|
|
||||||
|
|
||||||
web2d.Element.prototype.positionRelativeTo = function(elem, options) {
|
positionRelativeTo : function(elem, options) {
|
||||||
this._peer.positionRelativeTo(elem, options);
|
this._peer.positionRelativeTo(elem, options);
|
||||||
|
|
||||||
};
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allows the registration of event listeners on the event target.
|
* Allows the registration of event listeners on the event target.
|
||||||
@ -86,9 +84,9 @@ web2d.Element.prototype.positionRelativeTo = function(elem, options) {
|
|||||||
* The following events types are supported:
|
* The following events types are supported:
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
web2d.Element.prototype.addEvent = function(type, listener) {
|
addEvent : function(type, listener) {
|
||||||
this._peer.addEvent(type, listener);
|
this._peer.addEvent(type, listener);
|
||||||
};
|
},
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Allows the removal of event listeners from the event target.
|
* Allows the removal of event listeners from the event target.
|
||||||
@ -100,37 +98,37 @@ web2d.Element.prototype.addEvent = function(type, listener) {
|
|||||||
* The listener parameter takes an interface implemented by the user which contains the methods to be called when the event occurs.
|
* The listener parameter takes an interface implemented by the user which contains the methods to be called when the event occurs.
|
||||||
* This interace will be invoked passing an event as argument and the 'this' referece in the function will be the element.
|
* This interace will be invoked passing an event as argument and the 'this' referece in the function will be the element.
|
||||||
*/
|
*/
|
||||||
web2d.Element.prototype.removeEvent = function(type, listener) {
|
removeEvent : function(type, listener) {
|
||||||
this._peer.removeEvent(type, listener);
|
this._peer.removeEvent(type, listener);
|
||||||
};
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* /*
|
* /*
|
||||||
* Returns element type name.
|
* Returns element type name.
|
||||||
*/
|
*/
|
||||||
web2d.Element.prototype.getType = function() {
|
getType : function() {
|
||||||
throw "Not implemeneted yet. This method must be implemented by all the inherited objects.";
|
throw "Not implemeneted yet. This method must be implemented by all the inherited objects.";
|
||||||
};
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Todo: Doc
|
* Todo: Doc
|
||||||
*/
|
*/
|
||||||
web2d.Element.prototype.getFill = function() {
|
getFill : function() {
|
||||||
return this._peer.getFill();
|
return this._peer.getFill();
|
||||||
};
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used to define the fill element color and element opacity.
|
* Used to define the fill element color and element opacity.
|
||||||
* color: Fill color
|
* color: Fill color
|
||||||
* opacity: Opacity of the fill. It must be less than 1.
|
* opacity: Opacity of the fill. It must be less than 1.
|
||||||
*/
|
*/
|
||||||
web2d.Element.prototype.setFill = function(color, opacity) {
|
setFill : function(color, opacity) {
|
||||||
this._peer.setFill(color, opacity);
|
this._peer.setFill(color, opacity);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Element.prototype.getPosition = function() {
|
getPosition : function() {
|
||||||
return this._peer.getPosition();
|
return this._peer.getPosition();
|
||||||
};
|
},
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Defines the element stroke properties.
|
* Defines the element stroke properties.
|
||||||
@ -139,14 +137,138 @@ web2d.Element.prototype.getPosition = function() {
|
|||||||
* color: stroke color
|
* color: stroke color
|
||||||
* opacity: stroke visibility
|
* opacity: stroke visibility
|
||||||
*/
|
*/
|
||||||
web2d.Element.prototype.setStroke = function(width, style, color, opacity) {
|
setStroke : function(width, style, color, opacity) {
|
||||||
if (style != null && style != undefined && style != 'dash' && style != 'dot' && style != 'solid' && style != 'longdash' && style != "dashdot") {
|
if (style != null && style != undefined && style != 'dash' && style != 'dot' && style != 'solid' && style != 'longdash' && style != "dashdot") {
|
||||||
throw "Unsupported stroke style: '" + style + "'";
|
throw "Unsupported stroke style: '" + style + "'";
|
||||||
}
|
}
|
||||||
this._peer.setStroke(width, style, color, opacity);
|
this._peer.setStroke(width, style, color, opacity);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Element.prototype._propertyNameToSignature =
|
|
||||||
|
_attributeNameToFuncName : function(attributeKey, prefix) {
|
||||||
|
var signature = web2d.Element._propertyNameToSignature[attributeKey];
|
||||||
|
if (!$defined(signature)) {
|
||||||
|
throw "Unsupported attribute: " + attributeKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
var firstLetter = signature[0].charAt(0);
|
||||||
|
return prefix + firstLetter.toUpperCase() + signature[0].substring(1);
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* All element properties can be setted using either a method invocation or attribute invocation.
|
||||||
|
* key: size, width, height, position, x, y, stroke, strokeWidth, strokeStyle, strokeColor, strokeOpacity,
|
||||||
|
* fill, fillColor, fillOpacity, coordSize, coordSizeWidth, coordSizeHeight, coordOrigin, coordOriginX, coordOrigiY
|
||||||
|
*/
|
||||||
|
setAttribute : function(key, value) {
|
||||||
|
var funcName = this._attributeNameToFuncName(key, 'set');
|
||||||
|
|
||||||
|
var signature = web2d.Element._propertyNameToSignature[key];
|
||||||
|
if (signature == null) {
|
||||||
|
throw "Could not find the signature for:" + key;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse arguments ..
|
||||||
|
var argPositions = signature[1];
|
||||||
|
var args = [];
|
||||||
|
if (argPositions !== this._SIGNATURE_MULTIPLE_ARGUMENTS) {
|
||||||
|
args[argPositions] = value;
|
||||||
|
}
|
||||||
|
else if (typeof value == "array") {
|
||||||
|
args = value;
|
||||||
|
} else {
|
||||||
|
var strValue = String(value);
|
||||||
|
args = strValue.split(' ');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Look up method ...
|
||||||
|
var setter = this[funcName];
|
||||||
|
if (setter == null) {
|
||||||
|
throw "Could not find the function name:" + funcName;
|
||||||
|
}
|
||||||
|
setter.apply(this, args);
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
getAttribute : function(key) {
|
||||||
|
var funcName = this._attributeNameToFuncName(key, 'get');
|
||||||
|
|
||||||
|
var signature = web2d.Element._propertyNameToSignature[key];
|
||||||
|
if (signature == null) {
|
||||||
|
throw "Could not find the signature for:" + key;
|
||||||
|
}
|
||||||
|
|
||||||
|
var getter = this[funcName];
|
||||||
|
if (getter == null) {
|
||||||
|
throw "Could not find the function name:" + funcName;
|
||||||
|
}
|
||||||
|
|
||||||
|
var getterResult = getter.apply(this, []);
|
||||||
|
var attibuteName = signature[2];
|
||||||
|
if (!$defined(attibuteName)) {
|
||||||
|
throw "Could not find attribute mapping for:" + key;
|
||||||
|
}
|
||||||
|
|
||||||
|
var result = getterResult[attibuteName];
|
||||||
|
if (!$defined(result)) {
|
||||||
|
throw "Could not find attribute with name:" + attibuteName;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines the element opacity.
|
||||||
|
* Parameters:
|
||||||
|
* opacity: A value between 0 and 1.
|
||||||
|
*/
|
||||||
|
setOpacity : function(opacity) {
|
||||||
|
this._peer.setStroke(null, null, null, opacity);
|
||||||
|
this._peer.setFill(null, opacity);
|
||||||
|
},
|
||||||
|
|
||||||
|
setVisibility : function(isVisible) {
|
||||||
|
this._peer.setVisibility(isVisible);
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
isVisible : function() {
|
||||||
|
return this._peer.isVisible();
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Move the element to the front
|
||||||
|
*/
|
||||||
|
moveToFront : function() {
|
||||||
|
this._peer.moveToFront();
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Move the element to the back
|
||||||
|
*/
|
||||||
|
moveToBack : function() {
|
||||||
|
this._peer.moveToBack();
|
||||||
|
},
|
||||||
|
|
||||||
|
getStroke : function() {
|
||||||
|
return this._peer.getStroke();
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
setCursor : function(type) {
|
||||||
|
this._peer.setCursor(type);
|
||||||
|
},
|
||||||
|
|
||||||
|
getParent : function() {
|
||||||
|
return this._peer.getParent();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
web2d.Element._SIGNATURE_MULTIPLE_ARGUMENTS = -1;
|
||||||
|
web2d.Element._supportedEvents = ["click","dblclick","mousemove","mouseout","mouseover","mousedown","mouseup"];
|
||||||
|
web2d.Element._propertyNameToSignature =
|
||||||
{
|
{
|
||||||
// Format: [attribute name, argument position on setter, attribute name on getter]
|
// Format: [attribute name, argument position on setter, attribute name on getter]
|
||||||
size: ['size',-1],
|
size: ['size',-1],
|
||||||
@ -178,123 +300,3 @@ web2d.Element.prototype._propertyNameToSignature =
|
|||||||
visibility:['visibility',0],
|
visibility:['visibility',0],
|
||||||
opacity:['opacity',0]
|
opacity:['opacity',0]
|
||||||
};
|
};
|
||||||
|
|
||||||
web2d.Element.prototype._attributeNameToFuncName = function(attributeKey, prefix) {
|
|
||||||
var signature = this._propertyNameToSignature[attributeKey];
|
|
||||||
if (!$defined(signature)) {
|
|
||||||
throw "Unsupported attribute: " + attributeKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
var firstLetter = signature[0].charAt(0);
|
|
||||||
return prefix + firstLetter.toUpperCase() + signature[0].substring(1);
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* All element properties can be setted using either a method invocation or attribute invocation.
|
|
||||||
* key: size, width, height, position, x, y, stroke, strokeWidth, strokeStyle, strokeColor, strokeOpacity,
|
|
||||||
* fill, fillColor, fillOpacity, coordSize, coordSizeWidth, coordSizeHeight, coordOrigin, coordOriginX, coordOrigiY
|
|
||||||
*/
|
|
||||||
web2d.Element.prototype.setAttribute = function(key, value) {
|
|
||||||
var funcName = this._attributeNameToFuncName(key, 'set');
|
|
||||||
|
|
||||||
var signature = this._propertyNameToSignature[key];
|
|
||||||
if (signature == null) {
|
|
||||||
throw "Could not find the signature for:" + key;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Parse arguments ..
|
|
||||||
var argPositions = signature[1];
|
|
||||||
var args = [];
|
|
||||||
if (argPositions !== this._SIGNATURE_MULTIPLE_ARGUMENTS) {
|
|
||||||
args[argPositions] = value;
|
|
||||||
}
|
|
||||||
else if (typeof value == "array") {
|
|
||||||
args = value;
|
|
||||||
} else {
|
|
||||||
var strValue = String(value);
|
|
||||||
args = strValue.split(' ');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Look up method ...
|
|
||||||
var setter = this[funcName];
|
|
||||||
if (setter == null) {
|
|
||||||
throw "Could not find the function name:" + funcName;
|
|
||||||
}
|
|
||||||
setter.apply(this, args);
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
web2d.Element.prototype.getAttribute = function(key) {
|
|
||||||
var funcName = this._attributeNameToFuncName(key, 'get');
|
|
||||||
|
|
||||||
var signature = this._propertyNameToSignature[key];
|
|
||||||
if (signature == null) {
|
|
||||||
throw "Could not find the signature for:" + key;
|
|
||||||
}
|
|
||||||
|
|
||||||
var getter = this[funcName];
|
|
||||||
if (getter == null) {
|
|
||||||
throw "Could not find the function name:" + funcName;
|
|
||||||
}
|
|
||||||
|
|
||||||
var getterResult = getter.apply(this, []);
|
|
||||||
var attibuteName = signature[2];
|
|
||||||
if (!$defined(attibuteName)) {
|
|
||||||
throw "Could not find attribute mapping for:" + key;
|
|
||||||
}
|
|
||||||
|
|
||||||
var result = getterResult[attibuteName];
|
|
||||||
if (!$defined(result)) {
|
|
||||||
throw "Could not find attribute with name:" + attibuteName;
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Defines the element opacity.
|
|
||||||
* Parameters:
|
|
||||||
* opacity: A value between 0 and 1.
|
|
||||||
*/
|
|
||||||
web2d.Element.prototype.setOpacity = function(opacity) {
|
|
||||||
this._peer.setStroke(null, null, null, opacity);
|
|
||||||
this._peer.setFill(null, opacity);
|
|
||||||
};
|
|
||||||
|
|
||||||
web2d.Element.prototype.setVisibility = function(isVisible) {
|
|
||||||
this._peer.setVisibility(isVisible);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
web2d.Element.prototype.isVisible = function() {
|
|
||||||
return this._peer.isVisible();
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Move the element to the front
|
|
||||||
*/
|
|
||||||
web2d.Element.prototype.moveToFront = function() {
|
|
||||||
this._peer.moveToFront();
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Move the element to the back
|
|
||||||
*/
|
|
||||||
web2d.Element.prototype.moveToBack = function() {
|
|
||||||
this._peer.moveToBack();
|
|
||||||
};
|
|
||||||
|
|
||||||
web2d.Element.prototype.getStroke = function() {
|
|
||||||
return this._peer.getStroke();
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
web2d.Element.prototype.setCursor = function(type) {
|
|
||||||
this._peer.setCursor(type);
|
|
||||||
};
|
|
||||||
|
|
||||||
web2d.Element.prototype.getParent = function() {
|
|
||||||
return this._peer.getParent();
|
|
||||||
}
|
|
||||||
|
@ -16,27 +16,22 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.Elipse = function(attributes)
|
web2d.Elipse = new Class({
|
||||||
{
|
Extends: web2d.Element,
|
||||||
|
initialize: function(attributes) {
|
||||||
var peer = web2d.peer.Toolkit.createElipse();
|
var peer = web2d.peer.Toolkit.createElipse();
|
||||||
var defaultAttributes = {width:40, height:40, x:5, y:5,stroke:'1 solid black',fillColor:'blue'};
|
var defaultAttributes = {width:40, height:40, x:5, y:5,stroke:'1 solid black',fillColor:'blue'};
|
||||||
for (var key in attributes)
|
for (var key in attributes) {
|
||||||
{
|
|
||||||
defaultAttributes[key] = attributes[key];
|
defaultAttributes[key] = attributes[key];
|
||||||
}
|
}
|
||||||
web2d.Element.call(this, peer, defaultAttributes);
|
this.parent(peer, defaultAttributes);
|
||||||
};
|
},
|
||||||
objects.extend(web2d.Elipse, web2d.Element);
|
|
||||||
|
|
||||||
web2d.Elipse.prototype.getType = function()
|
getType : function() {
|
||||||
{
|
|
||||||
return "Elipse";
|
return "Elipse";
|
||||||
};
|
},
|
||||||
|
|
||||||
/**
|
getSize : function() {
|
||||||
* @Todo: Complete Doc
|
|
||||||
*/
|
|
||||||
web2d.Elipse.prototype.getSize = function()
|
|
||||||
{
|
|
||||||
return this._peer.getSize();
|
return this._peer.getSize();
|
||||||
};
|
}
|
||||||
|
});
|
@ -16,74 +16,63 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.Font = function(fontFamily, textPeer)
|
web2d.Font = new Class({
|
||||||
{
|
initialize :function(fontFamily, textPeer) {
|
||||||
var font = "web2d.peer.Toolkit.create" + fontFamily + "Font();";
|
var font = "web2d.peer.Toolkit.create" + fontFamily + "Font();";
|
||||||
this._peer = eval(font);
|
this._peer = eval(font);
|
||||||
this._textPeer = textPeer;
|
this._textPeer = textPeer;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Font.prototype.getHtmlSize = function ()
|
getHtmlSize : function() {
|
||||||
{
|
|
||||||
var scale = web2d.peer.utils.TransformUtil.workoutScale(this._textPeer);
|
var scale = web2d.peer.utils.TransformUtil.workoutScale(this._textPeer);
|
||||||
return this._peer.getHtmlSize(scale);
|
return this._peer.getHtmlSize(scale);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Font.prototype.getGraphSize = function ()
|
getGraphSize : function() {
|
||||||
{
|
|
||||||
var scale = web2d.peer.utils.TransformUtil.workoutScale(this._textPeer);
|
var scale = web2d.peer.utils.TransformUtil.workoutScale(this._textPeer);
|
||||||
return this._peer.getGraphSize(scale);
|
return this._peer.getGraphSize(scale);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Font.prototype.getFontScale = function ()
|
getFontScale : function() {
|
||||||
{
|
|
||||||
return web2d.peer.utils.TransformUtil.workoutScale(this._textPeer).height;
|
return web2d.peer.utils.TransformUtil.workoutScale(this._textPeer).height;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Font.prototype.getSize = function ()
|
getSize : function() {
|
||||||
{
|
|
||||||
return this._peer.getSize();
|
return this._peer.getSize();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Font.prototype.getStyle = function ()
|
getStyle : function() {
|
||||||
{
|
|
||||||
return this._peer.getStyle();
|
return this._peer.getStyle();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Font.prototype.getWeight = function ()
|
getWeight : function() {
|
||||||
{
|
|
||||||
return this._peer.getWeight();
|
return this._peer.getWeight();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Font.prototype.getFontFamily = function ()
|
getFontFamily : function() {
|
||||||
{
|
|
||||||
return this._peer.getFontFamily();
|
return this._peer.getFontFamily();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Font.prototype.setSize = function (size)
|
setSize : function(size) {
|
||||||
{
|
|
||||||
return this._peer.setSize(size);
|
return this._peer.setSize(size);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Font.prototype.setStyle = function (style)
|
setStyle : function(style) {
|
||||||
{
|
|
||||||
return this._peer.setStyle(style);
|
return this._peer.setStyle(style);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Font.prototype.setWeight = function (weight)
|
setWeight : function(weight) {
|
||||||
{
|
|
||||||
return this._peer.setWeight(weight);
|
return this._peer.setWeight(weight);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Font.prototype.getFont = function ()
|
getFont : function() {
|
||||||
{
|
|
||||||
return this._peer.getFont();
|
return this._peer.getFont();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Font.prototype.getWidthMargin = function ()
|
getWidthMargin : function() {
|
||||||
{
|
|
||||||
return this._peer.getWidthMargin();
|
return this._peer.getWidthMargin();
|
||||||
};
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
web2d.Font.ARIAL = "Arial";
|
web2d.Font.ARIAL = "Arial";
|
||||||
|
@ -19,77 +19,65 @@
|
|||||||
/**
|
/**
|
||||||
* A group object can be used to collect shapes.
|
* A group object can be used to collect shapes.
|
||||||
*/
|
*/
|
||||||
web2d.Group = function(attributes)
|
web2d.Group = new Class({
|
||||||
{
|
Extends: web2d.Element,
|
||||||
|
initialize : function(attributes) {
|
||||||
var peer = web2d.peer.Toolkit.createGroup();
|
var peer = web2d.peer.Toolkit.createGroup();
|
||||||
var defaultAttributes = {width:50, height:50, x:50, y:50,coordOrigin:'0 0',coordSize:'50 50'};
|
var defaultAttributes = {width:50, height:50, x:50, y:50,coordOrigin:'0 0',coordSize:'50 50'};
|
||||||
for (var key in attributes)
|
for (var key in attributes) {
|
||||||
{
|
|
||||||
defaultAttributes[key] = attributes[key];
|
defaultAttributes[key] = attributes[key];
|
||||||
}
|
}
|
||||||
web2d.Element.call(this, peer, defaultAttributes);
|
this.parent(peer, defaultAttributes);
|
||||||
};
|
},
|
||||||
|
|
||||||
objects.extend(web2d.Group, web2d.Element);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove an element as a child to the object.
|
* Remove an element as a child to the object.
|
||||||
*/
|
*/
|
||||||
web2d.Group.prototype.removeChild = function(element)
|
removeChild : function(element) {
|
||||||
{
|
if (!$defined(element)) {
|
||||||
if (!$defined(element))
|
|
||||||
{
|
|
||||||
throw "Child element can not be null";
|
throw "Child element can not be null";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (element == this)
|
if (element == this) {
|
||||||
{
|
|
||||||
throw "It's not posible to add the group as a child of itself";
|
throw "It's not posible to add the group as a child of itself";
|
||||||
}
|
}
|
||||||
|
|
||||||
var elementType = element.getType();
|
var elementType = element.getType();
|
||||||
if (elementType == null)
|
if (elementType == null) {
|
||||||
{
|
|
||||||
throw "It seems not to be an element ->" + element;
|
throw "It seems not to be an element ->" + element;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._peer.removeChild(element._peer);
|
this._peer.removeChild(element._peer);
|
||||||
};
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Appends an element as a child to the object.
|
* Appends an element as a child to the object.
|
||||||
*/
|
*/
|
||||||
web2d.Group.prototype.appendChild = function(element)
|
appendChild : function(element) {
|
||||||
{
|
if (!$defined(element)) {
|
||||||
if (!$defined(element))
|
|
||||||
{
|
|
||||||
throw "Child element can not be null";
|
throw "Child element can not be null";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (element == this)
|
if (element == this) {
|
||||||
{
|
|
||||||
throw "It's not posible to add the group as a child of itself";
|
throw "It's not posible to add the group as a child of itself";
|
||||||
}
|
}
|
||||||
|
|
||||||
var elementType = element.getType();
|
var elementType = element.getType();
|
||||||
if (elementType == null)
|
if (elementType == null) {
|
||||||
{
|
|
||||||
throw "It seems not to be an element ->" + element;
|
throw "It seems not to be an element ->" + element;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (elementType == "Workspace")
|
if (elementType == "Workspace") {
|
||||||
{
|
|
||||||
throw "A group can not have a workspace as a child";
|
throw "A group can not have a workspace as a child";
|
||||||
}
|
}
|
||||||
|
|
||||||
this._peer.appendChild(element._peer);
|
this._peer.appendChild(element._peer);
|
||||||
};
|
},
|
||||||
|
|
||||||
|
|
||||||
web2d.Group.prototype.getType = function()
|
getType : function() {
|
||||||
{
|
|
||||||
return "Group";
|
return "Group";
|
||||||
};
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The group element is a containing blocks for this content - they define a CSS2 "block level box".
|
* The group element is a containing blocks for this content - they define a CSS2 "block level box".
|
||||||
@ -98,61 +86,42 @@ web2d.Group.prototype.getType = function()
|
|||||||
* Consequently CSS2 position attributes (left, top, width, height and so on) have no unit specifier -
|
* Consequently CSS2 position attributes (left, top, width, height and so on) have no unit specifier -
|
||||||
* they are simple numbers, not CSS length quantities.
|
* they are simple numbers, not CSS length quantities.
|
||||||
*/
|
*/
|
||||||
web2d.Group.prototype.setCoordSize = function(width, height)
|
setCoordSize : function(width, height) {
|
||||||
{
|
|
||||||
this._peer.setCoordSize(width, height);
|
this._peer.setCoordSize(width, height);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Group.prototype.getCoordSize = function(){
|
setCoordOrigin : function(x, y) {
|
||||||
return this.peer.getCoordSize();
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Todo: Complete Doc
|
|
||||||
*/
|
|
||||||
web2d.Group.prototype.setCoordOrigin = function(x, y)
|
|
||||||
{
|
|
||||||
this._peer.setCoordOrigin(x, y);
|
this._peer.setCoordOrigin(x, y);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Group.prototype.getCoordOrigin = function(){
|
getCoordOrigin : function() {
|
||||||
return this._peer.getCoordOrigin();
|
return this._peer.getCoordOrigin();
|
||||||
};
|
},
|
||||||
|
getSize : function() {
|
||||||
/**
|
|
||||||
* @Todo: Complete Doc
|
|
||||||
*/
|
|
||||||
web2d.Group.prototype.getSize = function()
|
|
||||||
{
|
|
||||||
return this._peer.getSize();
|
return this._peer.getSize();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Group.prototype.setFill = function(color, opacity)
|
setFill : function(color, opacity) {
|
||||||
{
|
|
||||||
throw "Unsupported operation. Fill can not be set to a group";
|
throw "Unsupported operation. Fill can not be set to a group";
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Group.prototype.setStroke = function(width, style, color, opacity)
|
setStroke : function(width, style, color, opacity) {
|
||||||
{
|
|
||||||
throw "Unsupported operation. Stroke can not be set to a group";
|
throw "Unsupported operation. Stroke can not be set to a group";
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Group.prototype.getCoordSize = function()
|
getCoordSize : function() {
|
||||||
{
|
|
||||||
return this._peer.getCoordSize();
|
return this._peer.getCoordSize();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Group.prototype.appendDomChild = function(DomElement)
|
appendDomChild : function(DomElement) {
|
||||||
{
|
if (!$defined(DomElement)) {
|
||||||
if (!$defined(DomElement))
|
|
||||||
{
|
|
||||||
throw "Child element can not be null";
|
throw "Child element can not be null";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (DomElement == this)
|
if (DomElement == this) {
|
||||||
{
|
throw "It's not possible to add the group as a child of itself";
|
||||||
throw "It's not posible to add the group as a child of itself";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this._peer._native.appendChild(DomElement);
|
this._peer._native.appendChild(DomElement);
|
||||||
};
|
}
|
||||||
|
});
|
@ -16,23 +16,26 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.Image = function(attributes) {
|
web2d.Image = new Class({
|
||||||
|
Extends: web2d.Element,
|
||||||
|
initialize : function(attributes) {
|
||||||
var peer = web2d.peer.Toolkit.createImage();
|
var peer = web2d.peer.Toolkit.createImage();
|
||||||
web2d.Element.call(this, peer, attributes);
|
this.parent(peer, attributes);
|
||||||
};
|
},
|
||||||
objects.extend(web2d.Image, web2d.Element);
|
|
||||||
|
|
||||||
web2d.Image.prototype.getType = function() {
|
getType : function() {
|
||||||
return "Image";
|
return "Image";
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Image.prototype.setHref = function(href) {
|
setHref : function(href) {
|
||||||
this._peer.setHref(href);
|
this._peer.setHref(href);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Image.prototype.getHref = function() {
|
getHref : function() {
|
||||||
return this._peer.getHref();
|
return this._peer.getHref();
|
||||||
};
|
},
|
||||||
web2d.Image.prototype.getSize = function() {
|
|
||||||
|
getSize : function() {
|
||||||
return this._peer.getSize();
|
return this._peer.getSize();
|
||||||
};
|
}
|
||||||
|
});
|
@ -16,63 +16,54 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.Line = function(attributes)
|
web2d.Line = new Class({
|
||||||
{
|
Extends: web2d.Element,
|
||||||
|
initialize: function(attributes) {
|
||||||
var peer = web2d.peer.Toolkit.createLine();
|
var peer = web2d.peer.Toolkit.createLine();
|
||||||
var defaultAttributes = {strokeColor:'#495879',strokeWidth:1, strokeOpacity:1};
|
var defaultAttributes = {strokeColor:'#495879',strokeWidth:1, strokeOpacity:1};
|
||||||
for (var key in attributes)
|
for (var key in attributes) {
|
||||||
{
|
|
||||||
defaultAttributes[key] = attributes[key];
|
defaultAttributes[key] = attributes[key];
|
||||||
}
|
}
|
||||||
web2d.Element.call(this, peer, defaultAttributes);
|
this.parent(peer, defaultAttributes);
|
||||||
};
|
},
|
||||||
objects.extend(web2d.Line, web2d.Element);
|
|
||||||
|
|
||||||
web2d.Line.prototype.getType = function()
|
getType : function() {
|
||||||
{
|
|
||||||
return "Line";
|
return "Line";
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Line.prototype.setFrom = function(x, y)
|
setFrom : function(x, y) {
|
||||||
{
|
|
||||||
this._peer.setFrom(x, y);
|
this._peer.setFrom(x, y);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Line.prototype.setTo = function(x, y)
|
setTo : function(x, y) {
|
||||||
{
|
|
||||||
this._peer.setTo(x, y);
|
this._peer.setTo(x, y);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Line.prototype.getFrom = function()
|
getFrom : function() {
|
||||||
{
|
|
||||||
return this._peer.getFrom();
|
return this._peer.getFrom();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Line.prototype.getTo = function()
|
getTo : function() {
|
||||||
{
|
|
||||||
return this._peer.getTo();
|
return this._peer.getTo();
|
||||||
};
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Defines the start and the end line arrow style.
|
* Defines the start and the end line arrow style.
|
||||||
* Can have values "none | block | classic | diamond | oval | open | chevron | doublechevron"
|
* Can have values "none | block | classic | diamond | oval | open | chevron | doublechevron"
|
||||||
**/
|
**/
|
||||||
web2d.Line.prototype.setArrowStyle = function(startStyle, endStyle)
|
setArrowStyle : function(startStyle, endStyle) {
|
||||||
{
|
|
||||||
this._peer.setArrowStyle(startStyle, endStyle);
|
this._peer.setArrowStyle(startStyle, endStyle);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Line.prototype.setPosition = function(cx, cy)
|
setPosition : function(cx, cy) {
|
||||||
{
|
|
||||||
throw "Unsupported operation";
|
throw "Unsupported operation";
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Line.prototype.setSize = function(width, height)
|
setSize : function(width, height) {
|
||||||
{
|
|
||||||
throw "Unsupported operation";
|
throw "Unsupported operation";
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Line.prototype.setFill = function(color, opacity)
|
setFill : function(color, opacity) {
|
||||||
{
|
|
||||||
throw "Unsupported operation";
|
throw "Unsupported operation";
|
||||||
};
|
}
|
||||||
|
});
|
||||||
|
@ -16,73 +16,62 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.PolyLine = function(attributes)
|
web2d.PolyLine = new Class({
|
||||||
{
|
Extends: web2d.Element,
|
||||||
|
initialize:function(attributes) {
|
||||||
var peer = web2d.peer.Toolkit.createPolyLine();
|
var peer = web2d.peer.Toolkit.createPolyLine();
|
||||||
var defaultAttributes = {strokeColor:'blue',strokeWidth:1,strokeStyle:'solid',strokeOpacity:1};
|
var defaultAttributes = {strokeColor:'blue',strokeWidth:1,strokeStyle:'solid',strokeOpacity:1};
|
||||||
for (var key in attributes)
|
for (var key in attributes) {
|
||||||
{
|
|
||||||
defaultAttributes[key] = attributes[key];
|
defaultAttributes[key] = attributes[key];
|
||||||
}
|
}
|
||||||
web2d.Element.call(this, peer, defaultAttributes);
|
this.parent(peer, defaultAttributes);
|
||||||
};
|
},
|
||||||
objects.extend(web2d.PolyLine, web2d.Element);
|
|
||||||
|
|
||||||
web2d.PolyLine.prototype.getType = function()
|
getType : function() {
|
||||||
{
|
|
||||||
return "PolyLine";
|
return "PolyLine";
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.PolyLine.prototype.setFrom = function(x, y)
|
setFrom : function(x, y) {
|
||||||
{
|
|
||||||
this._peer.setFrom(x, y);
|
this._peer.setFrom(x, y);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.PolyLine.prototype.setTo = function(x, y)
|
setTo : function(x, y) {
|
||||||
{
|
|
||||||
this._peer.setTo(x, y);
|
this._peer.setTo(x, y);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.PolyLine.prototype.setStyle = function(style)
|
setStyle : function(style) {
|
||||||
{
|
|
||||||
this._peer.setStyle(style);
|
this._peer.setStyle(style);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.PolyLine.prototype.getStyle = function()
|
getStyle : function() {
|
||||||
{
|
|
||||||
return this._peer.getStyle();
|
return this._peer.getStyle();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.PolyLine.buildCurvedPath = function(dist, x1, y1, x2, y2)
|
buildCurvedPath : function(dist, x1, y1, x2, y2) {
|
||||||
{
|
|
||||||
var signx = 1;
|
var signx = 1;
|
||||||
var signy = 1;
|
var signy = 1;
|
||||||
if (x2 < x1)
|
if (x2 < x1) {
|
||||||
{
|
|
||||||
signx = -1;
|
signx = -1;
|
||||||
}
|
}
|
||||||
if (y2 < y1)
|
if (y2 < y1) {
|
||||||
{
|
|
||||||
signy = -1;
|
signy = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
var path;
|
var path;
|
||||||
if (Math.abs(y1 - y2) > 2)
|
if (Math.abs(y1 - y2) > 2) {
|
||||||
{
|
|
||||||
var middlex = x1 + ((x2 - x1 > 0) ? dist : -dist);
|
var middlex = x1 + ((x2 - x1 > 0) ? dist : -dist);
|
||||||
path = x1.toFixed(1) + ", " + y1.toFixed(1) + " " + middlex.toFixed(1) + ", " + y1.toFixed(1) + " " + middlex.toFixed(1) + ", " + (y2 - 5 * signy).toFixed(1) + " " + (middlex + 5 * signx).toFixed(1) + ", " + y2.toFixed(1) + " " + x2.toFixed(1) + ", " + y2.toFixed(1);
|
path = x1.toFixed(1) + ", " + y1.toFixed(1) + " " + middlex.toFixed(1) + ", " + y1.toFixed(1) + " " + middlex.toFixed(1) + ", " + (y2 - 5 * signy).toFixed(1) + " " + (middlex + 5 * signx).toFixed(1) + ", " + y2.toFixed(1) + " " + x2.toFixed(1) + ", " + y2.toFixed(1);
|
||||||
} else
|
} else {
|
||||||
{
|
|
||||||
path = x1.toFixed(1) + ", " + y1.toFixed(1) + " " + x2.toFixed(1) + ", " + y2.toFixed(1);
|
path = x1.toFixed(1) + ", " + y1.toFixed(1) + " " + x2.toFixed(1) + ", " + y2.toFixed(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return path;
|
return path;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.PolyLine.buildStraightPath = function(dist, x1, y1, x2, y2)
|
buildStraightPath : function(dist, x1, y1, x2, y2) {
|
||||||
{
|
|
||||||
var middlex = x1 + ((x2 - x1 > 0) ? dist : -dist);
|
var middlex = x1 + ((x2 - x1 > 0) ? dist : -dist);
|
||||||
return x1 + ", " + y1 + " " + middlex + ", " + y1 + " " + middlex + ", " + y2 + " " + x2 + ", " + y2;
|
return x1 + ", " + y1 + " " + middlex + ", " + y1 + " " + middlex + ", " + y2 + " " + x2 + ", " + y2;
|
||||||
};
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,37 +22,30 @@
|
|||||||
* arc = "<length>"
|
* arc = "<length>"
|
||||||
* For rounded rectangles, radius of the ellipse used to round off the corners of the rectangle.
|
* For rounded rectangles, radius of the ellipse used to round off the corners of the rectangle.
|
||||||
*/
|
*/
|
||||||
web2d.Rect = function(arc, attributes)
|
web2d.Rect = new Class({
|
||||||
{
|
Extends: web2d.Element,
|
||||||
if (arc && arc > 1)
|
initialize : function(arc, attributes) {
|
||||||
{
|
if (arc && arc > 1) {
|
||||||
throw "Arc must be 0<=arc<=1";
|
throw "Arc must be 0<=arc<=1";
|
||||||
}
|
}
|
||||||
if (arguments.length <= 0)
|
if (arguments.length <= 0) {
|
||||||
{
|
|
||||||
var rx = 0;
|
var rx = 0;
|
||||||
var ry = 0;
|
var ry = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
var peer = web2d.peer.Toolkit.createRect(arc);
|
var peer = web2d.peer.Toolkit.createRect(arc);
|
||||||
var defaultAttributes = {width:40, height:40, x:5, y:5,stroke:'1 solid black',fillColor:'green'};
|
var defaultAttributes = {width:40, height:40, x:5, y:5,stroke:'1 solid black',fillColor:'green'};
|
||||||
for (var key in attributes)
|
for (var key in attributes) {
|
||||||
{
|
|
||||||
defaultAttributes[key] = attributes[key];
|
defaultAttributes[key] = attributes[key];
|
||||||
}
|
}
|
||||||
web2d.Element.call(this, peer, defaultAttributes);
|
this.parent(peer, defaultAttributes);
|
||||||
};
|
},
|
||||||
objects.extend(web2d.Rect, web2d.Element);
|
|
||||||
|
|
||||||
web2d.Rect.prototype.getType = function()
|
getType : function() {
|
||||||
{
|
|
||||||
return "Rect";
|
return "Rect";
|
||||||
};
|
},
|
||||||
|
|
||||||
/**
|
getSize : function() {
|
||||||
* @Todo: Complete Doc
|
|
||||||
*/
|
|
||||||
web2d.Rect.prototype.getSize = function()
|
|
||||||
{
|
|
||||||
return this._peer.getSize();
|
return this._peer.getSize();
|
||||||
};
|
}
|
||||||
|
});
|
@ -16,84 +16,70 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.Text = function(attributes)
|
web2d.Text = new Class({
|
||||||
{
|
Extends:web2d.Element,
|
||||||
|
initialize:function(attributes) {
|
||||||
var peer = web2d.peer.Toolkit.createText();
|
var peer = web2d.peer.Toolkit.createText();
|
||||||
web2d.Element.call(this, peer, attributes);
|
this.parent(peer, attributes);
|
||||||
};
|
},
|
||||||
objects.extend(web2d.Text, web2d.Element);
|
|
||||||
|
|
||||||
web2d.Text.prototype.getType = function()
|
getType : function() {
|
||||||
{
|
|
||||||
return "Text";
|
return "Text";
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Text.prototype.setText = function(text)
|
setText : function(text) {
|
||||||
{
|
|
||||||
this._peer.setText(text);
|
this._peer.setText(text);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Text.prototype.setTextSize = function(width, height)
|
setTextSize : function(width, height) {
|
||||||
{
|
|
||||||
this._peer.setContentSize(width, height);
|
this._peer.setContentSize(width, height);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Text.prototype.getText = function()
|
getText : function() {
|
||||||
{
|
|
||||||
return this._peer.getText();
|
return this._peer.getText();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Text.prototype.setFont = function(font, size, style, weight)
|
setFont : function(font, size, style, weight) {
|
||||||
{
|
|
||||||
this._peer.setFont(font, size, style, weight);
|
this._peer.setFont(font, size, style, weight);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Text.prototype.setColor = function(color)
|
setColor : function(color) {
|
||||||
{
|
|
||||||
this._peer.setColor(color);
|
this._peer.setColor(color);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Text.prototype.getColor = function()
|
getColor : function() {
|
||||||
{
|
|
||||||
return this._peer.getColor();
|
return this._peer.getColor();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Text.prototype.setStyle = function(style)
|
setStyle : function(style) {
|
||||||
{
|
|
||||||
this._peer.setStyle(style);
|
this._peer.setStyle(style);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Text.prototype.setWeight = function(weight)
|
setWeight : function(weight) {
|
||||||
{
|
|
||||||
this._peer.setWeight(weight);
|
this._peer.setWeight(weight);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Text.prototype.setFontFamily = function(family)
|
setFontFamily : function(family) {
|
||||||
{
|
|
||||||
this._peer.setFontFamily(family);
|
this._peer.setFontFamily(family);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Text.prototype.getFont = function()
|
getFont : function() {
|
||||||
{
|
|
||||||
return this._peer.getFont();
|
return this._peer.getFont();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Text.prototype.setSize = function(size)
|
setSize : function(size) {
|
||||||
{
|
|
||||||
this._peer.setSize(size);
|
this._peer.setSize(size);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Text.prototype.getHtmlFontSize = function()
|
getHtmlFontSize : function() {
|
||||||
{
|
|
||||||
return this._peer.getHtmlFontSize();
|
return this._peer.getHtmlFontSize();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Text.prototype.getWidth = function()
|
getWidth : function() {
|
||||||
{
|
|
||||||
return this._peer.getWidth();
|
return this._peer.getWidth();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Text.prototype.getHeight = function()
|
getHeight : function() {
|
||||||
{
|
|
||||||
return parseInt(this._peer.getHeight());
|
return parseInt(this._peer.getHeight());
|
||||||
};
|
}
|
||||||
|
});
|
@ -16,68 +16,54 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.Workspace = function(attributes)
|
web2d.Workspace = new Class({
|
||||||
{
|
Extends:web2d.Element,
|
||||||
|
initialize:function(attributes) {
|
||||||
this._htmlContainer = this._createDivContainer();
|
this._htmlContainer = this._createDivContainer();
|
||||||
|
|
||||||
var peer = web2d.peer.Toolkit.createWorkspace(this._htmlContainer);
|
var peer = web2d.peer.Toolkit.createWorkspace(this._htmlContainer);
|
||||||
var defaultAttributes = {width:'200px',height:'200px',stroke:'1px solid #edf1be',
|
var defaultAttributes = {width:'200px',height:'200px',stroke:'1px solid #edf1be',
|
||||||
fillColor:"white",coordOrigin:'0 0',coordSize:'200 200' };
|
fillColor:"white",coordOrigin:'0 0',coordSize:'200 200' };
|
||||||
for (var key in attributes)
|
for (var key in attributes) {
|
||||||
{
|
|
||||||
defaultAttributes[key] = attributes[key];
|
defaultAttributes[key] = attributes[key];
|
||||||
}
|
}
|
||||||
web2d.Element.call(this, peer, defaultAttributes);
|
this.parent(peer, defaultAttributes);
|
||||||
this._htmlContainer.appendChild(this._peer._native);
|
this._htmlContainer.appendChild(this._peer._native);
|
||||||
};
|
},
|
||||||
|
|
||||||
objects.extend(web2d.Workspace, web2d.Element);
|
getType : function() {
|
||||||
|
|
||||||
|
|
||||||
web2d.Workspace.prototype.getType = function()
|
|
||||||
{
|
|
||||||
return "Workspace";
|
return "Workspace";
|
||||||
};
|
},
|
||||||
/**
|
/**
|
||||||
* Appends an element as a child to the object.
|
* Appends an element as a child to the object.
|
||||||
*/
|
*/
|
||||||
web2d.Workspace.prototype.appendChild = function(element)
|
appendChild : function(element) {
|
||||||
{
|
if (!$defined(element)) {
|
||||||
if (!$defined(element))
|
|
||||||
{
|
|
||||||
throw "Child element can not be null";
|
throw "Child element can not be null";
|
||||||
}
|
}
|
||||||
var elementType = element.getType();
|
var elementType = element.getType();
|
||||||
if (elementType == null)
|
if (elementType == null) {
|
||||||
{
|
|
||||||
throw "It seems not to be an element ->" + element;
|
throw "It seems not to be an element ->" + element;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (elementType == "Workspace")
|
if (elementType == "Workspace") {
|
||||||
{
|
|
||||||
throw "A workspace can not have a workspace as a child";
|
throw "A workspace can not have a workspace as a child";
|
||||||
}
|
}
|
||||||
|
|
||||||
this._peer.appendChild(element._peer);
|
this._peer.appendChild(element._peer);
|
||||||
};
|
},
|
||||||
|
|
||||||
/**
|
addItAsChildTo : function(element) {
|
||||||
* @todo: Write doc.
|
if (!$defined(element)) {
|
||||||
*/
|
|
||||||
web2d.Workspace.prototype.addItAsChildTo = function(element)
|
|
||||||
{
|
|
||||||
if (!$defined(element))
|
|
||||||
{
|
|
||||||
throw "Workspace div container can not be null";
|
throw "Workspace div container can not be null";
|
||||||
}
|
}
|
||||||
element.appendChild(this._htmlContainer);
|
element.appendChild(this._htmlContainer);
|
||||||
};
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new div element that will be responsible for containing the workspace elements.
|
* Create a new div element that will be responsible for containing the workspace elements.
|
||||||
*/
|
*/
|
||||||
web2d.Workspace.prototype._createDivContainer = function(domElement)
|
_createDivContainer : function(domElement) {
|
||||||
{
|
|
||||||
var container = window.document.createElement("div");
|
var container = window.document.createElement("div");
|
||||||
container.id = "workspaceContainer";
|
container.id = "workspaceContainer";
|
||||||
container.style.overflow = "hidden";
|
container.style.overflow = "hidden";
|
||||||
@ -88,7 +74,7 @@ web2d.Workspace.prototype._createDivContainer = function(domElement)
|
|||||||
container.style.border = '1px solid red';
|
container.style.border = '1px solid red';
|
||||||
|
|
||||||
return container;
|
return container;
|
||||||
};
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the workspace area size. It can be defined using different units:
|
* Set the workspace area size. It can be defined using different units:
|
||||||
@ -98,21 +84,18 @@ web2d.Workspace.prototype._createDivContainer = function(domElement)
|
|||||||
* pt (points; 1pt=1/72in)
|
* pt (points; 1pt=1/72in)
|
||||||
* pc (picas; 1pc=12pt)
|
* pc (picas; 1pc=12pt)
|
||||||
*/
|
*/
|
||||||
web2d.Workspace.prototype.setSize = function(width, height)
|
setSize : function(width, height) {
|
||||||
{
|
|
||||||
// HTML container must have the size of the group element.
|
// HTML container must have the size of the group element.
|
||||||
if ($defined(width))
|
if ($defined(width)) {
|
||||||
{
|
|
||||||
this._htmlContainer.style.width = width;
|
this._htmlContainer.style.width = width;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($defined(height))
|
if ($defined(height)) {
|
||||||
{
|
|
||||||
this._htmlContainer.style.height = height;
|
this._htmlContainer.style.height = height;
|
||||||
}
|
}
|
||||||
this._peer.setSize(width, height);
|
this._peer.setSize(width, height);
|
||||||
};
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The workspace element is a containing blocks for this content - they define a CSS2 "block level box".
|
* The workspace element is a containing blocks for this content - they define a CSS2 "block level box".
|
||||||
@ -121,109 +104,90 @@ web2d.Workspace.prototype.setSize = function(width, height)
|
|||||||
* Consequently CSS2 position attributes (left, top, width, height and so on) have no unit specifier -
|
* Consequently CSS2 position attributes (left, top, width, height and so on) have no unit specifier -
|
||||||
* they are simple numbers, not CSS length quantities.
|
* they are simple numbers, not CSS length quantities.
|
||||||
*/
|
*/
|
||||||
web2d.Workspace.prototype.setCoordSize = function(width, height)
|
setCoordSize : function(width, height) {
|
||||||
{
|
|
||||||
this._peer.setCoordSize(width, height);
|
this._peer.setCoordSize(width, height);
|
||||||
};
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Todo: Complete Doc
|
* @Todo: Complete Doc
|
||||||
*/
|
*/
|
||||||
web2d.Workspace.prototype.setCoordOrigin = function(x, y)
|
setCoordOrigin : function(x, y) {
|
||||||
{
|
|
||||||
this._peer.setCoordOrigin(x, y);
|
this._peer.setCoordOrigin(x, y);
|
||||||
};
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Todo: Complete Doc
|
* @Todo: Complete Doc
|
||||||
*/
|
*/
|
||||||
web2d.Workspace.prototype.getCoordOrigin = function()
|
getCoordOrigin : function() {
|
||||||
{
|
|
||||||
return this._peer.getCoordOrigin();
|
return this._peer.getCoordOrigin();
|
||||||
};
|
},
|
||||||
|
|
||||||
|
|
||||||
// Private method declaration area
|
// Private method declaration area
|
||||||
/**
|
/**
|
||||||
* All the SVG elements will be children of this HTML element.
|
* All the SVG elements will be children of this HTML element.
|
||||||
*/
|
*/
|
||||||
web2d.Workspace.prototype._getHtmlContainer = function()
|
_getHtmlContainer : function() {
|
||||||
{
|
|
||||||
return this._htmlContainer;
|
return this._htmlContainer;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Workspace.prototype.setFill = function(color, opacity)
|
setFill : function(color, opacity) {
|
||||||
{
|
|
||||||
this._htmlContainer.style.backgroundColor = color;
|
this._htmlContainer.style.backgroundColor = color;
|
||||||
if (opacity || opacity === 0)
|
if (opacity || opacity === 0) {
|
||||||
{
|
|
||||||
throw "Unsupported operation. Opacity not supported.";
|
throw "Unsupported operation. Opacity not supported.";
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Workspace.prototype.getFill = function()
|
getFill : function() {
|
||||||
{
|
|
||||||
var color = this._htmlContainer.style.backgroundColor;
|
var color = this._htmlContainer.style.backgroundColor;
|
||||||
return {color:color};
|
return {color:color};
|
||||||
};
|
},
|
||||||
|
|
||||||
/**
|
|
||||||
* @Todo: Complete Doc
|
getSize : function() {
|
||||||
*/
|
|
||||||
web2d.Workspace.prototype.getSize = function()
|
|
||||||
{
|
|
||||||
var width = this._htmlContainer.style.width;
|
var width = this._htmlContainer.style.width;
|
||||||
var height = this._htmlContainer.style.height;
|
var height = this._htmlContainer.style.height;
|
||||||
return {width:width,height:height};
|
return {width:width,height:height};
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.Workspace.prototype.setStroke = function(width, style, color, opacity)
|
setStroke : function(width, style, color, opacity) {
|
||||||
{
|
if (style != 'solid') {
|
||||||
if (style != 'solid')
|
|
||||||
{
|
|
||||||
throw 'Not supported style stroke style:' + style;
|
throw 'Not supported style stroke style:' + style;
|
||||||
}
|
}
|
||||||
this._htmlContainer.style.border = width + ' ' + style + ' ' + color;
|
this._htmlContainer.style.border = width + ' ' + style + ' ' + color;
|
||||||
|
|
||||||
if (opacity || opacity === 0)
|
if (opacity || opacity === 0) {
|
||||||
{
|
|
||||||
throw "Unsupported operation. Opacity not supported.";
|
throw "Unsupported operation. Opacity not supported.";
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
|
|
||||||
|
|
||||||
web2d.Workspace.prototype.getCoordSize = function()
|
getCoordSize : function() {
|
||||||
{
|
|
||||||
return this._peer.getCoordSize();
|
return this._peer.getCoordSize();
|
||||||
};
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove an element as a child to the object.
|
* Remove an element as a child to the object.
|
||||||
*/
|
*/
|
||||||
web2d.Workspace.prototype.removeChild = function(element)
|
removeChild : function(element) {
|
||||||
{
|
if (!$defined(element)) {
|
||||||
if (!$defined(element))
|
|
||||||
{
|
|
||||||
throw "Child element can not be null";
|
throw "Child element can not be null";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (element == this)
|
if (element == this) {
|
||||||
{
|
|
||||||
throw "It's not posible to add the group as a child of itself";
|
throw "It's not posible to add the group as a child of itself";
|
||||||
}
|
}
|
||||||
|
|
||||||
var elementType = element.getType();
|
var elementType = element.getType();
|
||||||
if (elementType == null)
|
if (elementType == null) {
|
||||||
{
|
|
||||||
throw "It seems not to be an element ->" + element;
|
throw "It seems not to be an element ->" + element;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._peer.removeChild(element._peer);
|
this._peer.removeChild(element._peer);
|
||||||
};
|
},
|
||||||
|
|
||||||
|
dumpNativeChart : function() {
|
||||||
web2d.Workspace.prototype.dumpNativeChart = function()
|
|
||||||
{
|
|
||||||
var elem = this._htmlContainer
|
var elem = this._htmlContainer
|
||||||
return elem.innerHTML;
|
return elem.innerHTML;
|
||||||
};
|
}
|
||||||
|
});
|
@ -16,20 +16,18 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.peer.svg.ArialFont = function()
|
web2d.peer.svg.ArialFont = new Class({
|
||||||
{
|
Extends: web2d.peer.svg.Font,
|
||||||
web2d.peer.svg.Font.call(this);
|
initialize :function() {
|
||||||
|
this.parent();
|
||||||
this._fontFamily = "Arial";
|
this._fontFamily = "Arial";
|
||||||
};
|
},
|
||||||
|
|
||||||
objects.extend(web2d.peer.svg.ArialFont, web2d.peer.svg.Font);
|
getFontFamily : function () {
|
||||||
|
|
||||||
web2d.peer.svg.ArialFont.prototype.getFontFamily=function ()
|
|
||||||
{
|
|
||||||
return this._fontFamily;
|
return this._fontFamily;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ArialFont.prototype.getFont=function ()
|
getFont : function () {
|
||||||
{
|
|
||||||
return web2d.Font.ARIAL;
|
return web2d.Font.ARIAL;
|
||||||
};
|
}
|
||||||
|
});
|
@ -16,59 +16,52 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.peer.svg.ArrowPeer = function()
|
web2d.peer.svg.ArrowPeer = new Class({
|
||||||
{
|
Extends: web2d.peer.svg.ElementPeer,
|
||||||
|
initialize : function() {
|
||||||
var svgElement = window.document.createElementNS(this.svgNamespace, 'path');
|
var svgElement = window.document.createElementNS(this.svgNamespace, 'path');
|
||||||
web2d.peer.svg.ElementPeer.call(this, svgElement);
|
this.parent(svgElement);
|
||||||
this._style = {};
|
this._style = {};
|
||||||
this._controlPoint = new core.Point();
|
this._controlPoint = new core.Point();
|
||||||
this._fromPoint = new core.Point();
|
this._fromPoint = new core.Point();
|
||||||
};
|
},
|
||||||
|
|
||||||
objects.extend(web2d.peer.svg.ArrowPeer, web2d.peer.svg.ElementPeer);
|
setFrom : function(x, y) {
|
||||||
|
|
||||||
web2d.peer.svg.ArrowPeer.prototype.setFrom = function(x,y)
|
|
||||||
{
|
|
||||||
this._fromPoint.x = x;
|
this._fromPoint.x = x;
|
||||||
this._fromPoint.y = y;
|
this._fromPoint.y = y;
|
||||||
this._redraw();
|
this._redraw();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ArrowPeer.prototype.setControlPoint = function (point)
|
setControlPoint : function (point) {
|
||||||
{
|
|
||||||
this._controlPoint = point;
|
this._controlPoint = point;
|
||||||
this._redraw();
|
this._redraw();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ArrowPeer.prototype.setStrokeColor = function (color)
|
setStrokeColor : function (color) {
|
||||||
{
|
|
||||||
this.setStroke(null, null, color, null);
|
this.setStroke(null, null, color, null);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ArrowPeer.prototype.setStrokeWidth = function(width)
|
setStrokeWidth : function(width) {
|
||||||
{
|
|
||||||
this.setStroke(width);
|
this.setStroke(width);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ArrowPeer.prototype.setDashed = function(isDashed, length, spacing){
|
setDashed : function(isDashed, length, spacing) {
|
||||||
if ($defined(isDashed) && isDashed && $defined(length) && $defined(spacing)) {
|
if ($defined(isDashed) && isDashed && $defined(length) && $defined(spacing)) {
|
||||||
this._native.setAttribute("stroke-dasharray", length + "," + spacing);
|
this._native.setAttribute("stroke-dasharray", length + "," + spacing);
|
||||||
} else {
|
} else {
|
||||||
this._native.setAttribute("stroke-dasharray", "");
|
this._native.setAttribute("stroke-dasharray", "");
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ArrowPeer.prototype._updateStyle = function()
|
_updateStyle : function() {
|
||||||
{
|
|
||||||
var style = "";
|
var style = "";
|
||||||
for (var key in this._style) {
|
for (var key in this._style) {
|
||||||
style += key + ":" + this._style[key] + " ";
|
style += key + ":" + this._style[key] + " ";
|
||||||
}
|
}
|
||||||
this._native.setAttribute("style", style);
|
this._native.setAttribute("style", style);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ArrowPeer.prototype._redraw = function()
|
_redraw : function() {
|
||||||
{
|
|
||||||
var x,y, xp, yp;
|
var x,y, xp, yp;
|
||||||
if (this._controlPoint.y == 0)
|
if (this._controlPoint.y == 0)
|
||||||
this._controlPoint.y = 1;
|
this._controlPoint.y = 1;
|
||||||
@ -95,5 +88,6 @@ web2d.peer.svg.ArrowPeer.prototype._redraw = function()
|
|||||||
+ "L" + (xp + this._fromPoint.x) + "," + (yp + this._fromPoint.y)
|
+ "L" + (xp + this._fromPoint.x) + "," + (yp + this._fromPoint.y)
|
||||||
;
|
;
|
||||||
this._native.setAttribute("d", path);
|
this._native.setAttribute("d", path);
|
||||||
};
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
@ -16,10 +16,11 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer = function()
|
web2d.peer.svg.CurvedLinePeer = new Class({
|
||||||
{
|
Extends: web2d.peer.svg.ElementPeer,
|
||||||
|
initialize :function() {
|
||||||
var svgElement = window.document.createElementNS(this.svgNamespace, 'path');
|
var svgElement = window.document.createElementNS(this.svgNamespace, 'path');
|
||||||
web2d.peer.svg.ElementPeer.call(this, svgElement);
|
this.parent(svgElement);
|
||||||
this._style = {fill:'#495879'};
|
this._style = {fill:'#495879'};
|
||||||
this._updateStyle();
|
this._updateStyle();
|
||||||
this._customControlPoint_1 = false;
|
this._customControlPoint_1 = false;
|
||||||
@ -27,11 +28,10 @@ web2d.peer.svg.CurvedLinePeer = function()
|
|||||||
this._control1 = new core.Point();
|
this._control1 = new core.Point();
|
||||||
this._control2 = new core.Point();
|
this._control2 = new core.Point();
|
||||||
this._lineStyle = true;
|
this._lineStyle = true;
|
||||||
};
|
},
|
||||||
|
|
||||||
objects.extend(web2d.peer.svg.CurvedLinePeer, web2d.peer.svg.ElementPeer);
|
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype.setSrcControlPoint = function(control){
|
setSrcControlPoint : function(control) {
|
||||||
this._customControlPoint_1 = true;
|
this._customControlPoint_1 = true;
|
||||||
var change = this._control1.x != control.x || this._control1.y != control.y;
|
var change = this._control1.x != control.x || this._control1.y != control.y;
|
||||||
if ($defined(control.x)) {
|
if ($defined(control.x)) {
|
||||||
@ -41,9 +41,9 @@ web2d.peer.svg.CurvedLinePeer.prototype.setSrcControlPoint = function(control){
|
|||||||
}
|
}
|
||||||
if (change)
|
if (change)
|
||||||
this._updatePath();
|
this._updatePath();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype.setDestControlPoint = function(control){
|
setDestControlPoint : function(control) {
|
||||||
this._customControlPoint_2 = true;
|
this._customControlPoint_2 = true;
|
||||||
var change = this._control2.x != control.x || this._control2.y != control.y;
|
var change = this._control2.x != control.x || this._control2.y != control.y;
|
||||||
if ($defined(control.x)) {
|
if ($defined(control.x)) {
|
||||||
@ -53,76 +53,69 @@ web2d.peer.svg.CurvedLinePeer.prototype.setDestControlPoint = function(control){
|
|||||||
}
|
}
|
||||||
if (change)
|
if (change)
|
||||||
this._updatePath();
|
this._updatePath();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype.isSrcControlPointCustom = function() {
|
isSrcControlPointCustom : function() {
|
||||||
return this._customControlPoint_1;
|
return this._customControlPoint_1;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype.isDestControlPointCustom = function() {
|
isDestControlPointCustom : function() {
|
||||||
return this._customControlPoint_2;
|
return this._customControlPoint_2;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype.setIsSrcControlPointCustom = function(isCustom) {
|
setIsSrcControlPointCustom : function(isCustom) {
|
||||||
this._customControlPoint_1 = isCustom;
|
this._customControlPoint_1 = isCustom;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype.setIsDestControlPointCustom = function(isCustom) {
|
setIsDestControlPointCustom : function(isCustom) {
|
||||||
this._customControlPoint_2 = isCustom;
|
this._customControlPoint_2 = isCustom;
|
||||||
};
|
},
|
||||||
|
|
||||||
|
|
||||||
|
getControlPoints : function() {
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype.getControlPoints = function(){
|
|
||||||
return [this._control1, this._control2];
|
return [this._control1, this._control2];
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype.setFrom = function(x1, y1)
|
setFrom : function(x1, y1) {
|
||||||
{
|
|
||||||
var change = this._x1 != parseInt(x1) || this._y1 != parseInt(y1);
|
var change = this._x1 != parseInt(x1) || this._y1 != parseInt(y1);
|
||||||
this._x1 = parseInt(x1);
|
this._x1 = parseInt(x1);
|
||||||
this._y1 = parseInt(y1);
|
this._y1 = parseInt(y1);
|
||||||
if (change)
|
if (change)
|
||||||
this._updatePath();
|
this._updatePath();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype.setTo = function(x2, y2)
|
setTo : function(x2, y2) {
|
||||||
{
|
|
||||||
var change = this._x2 != parseInt(x2) || this._y2 != parseInt(y2);
|
var change = this._x2 != parseInt(x2) || this._y2 != parseInt(y2);
|
||||||
this._x2 = parseInt(x2);
|
this._x2 = parseInt(x2);
|
||||||
this._y2 = parseInt(y2);
|
this._y2 = parseInt(y2);
|
||||||
if (change)
|
if (change)
|
||||||
this._updatePath();
|
this._updatePath();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype.getFrom = function()
|
getFrom : function() {
|
||||||
{
|
|
||||||
return new core.Point(this._x1, this._y1);
|
return new core.Point(this._x1, this._y1);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype.getTo = function()
|
getTo : function() {
|
||||||
{
|
|
||||||
return new core.Point(this._x2, this._y2);
|
return new core.Point(this._x2, this._y2);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype.setStrokeWidth = function(width)
|
setStrokeWidth : function(width) {
|
||||||
{
|
|
||||||
this._style['stroke-width'] = width;
|
this._style['stroke-width'] = width;
|
||||||
this._updateStyle();
|
this._updateStyle();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype.setColor = function(color)
|
setColor : function(color) {
|
||||||
{
|
|
||||||
this._style['stroke'] = color;
|
this._style['stroke'] = color;
|
||||||
this._style['fill'] = color;
|
this._style['fill'] = color;
|
||||||
this._updateStyle();
|
this._updateStyle();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype.updateLine = function(avoidControlPointFix){
|
updateLine : function(avoidControlPointFix) {
|
||||||
this._updatePath(avoidControlPointFix);
|
this._updatePath(avoidControlPointFix);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype.setLineStyle = function (style){
|
setLineStyle : function (style) {
|
||||||
this._lineStyle = style;
|
this._lineStyle = style;
|
||||||
if (this._lineStyle) {
|
if (this._lineStyle) {
|
||||||
this._style['fill'] = this._fill;
|
this._style['fill'] = this._fill;
|
||||||
@ -132,36 +125,34 @@ web2d.peer.svg.CurvedLinePeer.prototype.setLineStyle = function (style){
|
|||||||
}
|
}
|
||||||
this._updateStyle();
|
this._updateStyle();
|
||||||
this.updateLine();
|
this.updateLine();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype.getLineStyle = function (){
|
getLineStyle : function () {
|
||||||
return this._lineStyle;
|
return this._lineStyle;
|
||||||
};
|
},
|
||||||
|
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype.setShowEndArrow = function(visible){
|
setShowEndArrow : function(visible) {
|
||||||
this._showEndArrow = visible;
|
this._showEndArrow = visible;
|
||||||
this.updateLine();
|
this.updateLine();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype.isShowEndArrow = function(){
|
isShowEndArrow : function() {
|
||||||
return this._showEndArrow;
|
return this._showEndArrow;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype.setShowStartArrow = function(visible){
|
setShowStartArrow : function(visible) {
|
||||||
this._showStartArrow = visible;
|
this._showStartArrow = visible;
|
||||||
this.updateLine();
|
this.updateLine();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype.isShowStartArrow = function(){
|
isShowStartArrow : function() {
|
||||||
return this._showStartArrow;
|
return this._showStartArrow;
|
||||||
};
|
},
|
||||||
|
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype._updatePath = function(avoidControlPointFix)
|
_updatePath : function(avoidControlPointFix) {
|
||||||
{
|
if ($defined(this._x1) && $defined(this._y1) && $defined(this._x2) && $defined(this._y2)) {
|
||||||
if($defined(this._x1) && $defined(this._y1) && $defined(this._x2) && $defined(this._y2))
|
|
||||||
{
|
|
||||||
this._calculateAutoControlPoints(avoidControlPointFix);
|
this._calculateAutoControlPoints(avoidControlPointFix);
|
||||||
var path = "M" + this._x1 + "," + this._y1
|
var path = "M" + this._x1 + "," + this._y1
|
||||||
+ " C" + (this._control1.x + this._x1) + "," + (this._control1.y + this._y1) + " "
|
+ " C" + (this._control1.x + this._x1) + "," + (this._control1.y + this._y1) + " "
|
||||||
@ -175,18 +166,17 @@ web2d.peer.svg.CurvedLinePeer.prototype._updatePath = function(avoidControlPoint
|
|||||||
);
|
);
|
||||||
this._native.setAttribute("d", path);
|
this._native.setAttribute("d", path);
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype._updateStyle = function()
|
_updateStyle : function() {
|
||||||
{
|
|
||||||
var style = "";
|
var style = "";
|
||||||
for (var key in this._style) {
|
for (var key in this._style) {
|
||||||
style += key + ":" + this._style[key] + " ";
|
style += key + ":" + this._style[key] + " ";
|
||||||
}
|
}
|
||||||
this._native.setAttribute("style", style);
|
this._native.setAttribute("style", style);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype._calculateAutoControlPoints = function(avoidControlPointFix){
|
_calculateAutoControlPoints : function(avoidControlPointFix) {
|
||||||
//Both points available, calculate real points
|
//Both points available, calculate real points
|
||||||
var defaultpoints = core.Utils.calculateDefaultControlPoints(new core.Point(this._x1, this._y1), new core.Point(this._x2, this._y2));
|
var defaultpoints = core.Utils.calculateDefaultControlPoints(new core.Point(this._x1, this._y1), new core.Point(this._x2, this._y2));
|
||||||
if (!this._customControlPoint_1 && !($defined(avoidControlPointFix) && avoidControlPointFix == 0)) {
|
if (!this._customControlPoint_1 && !($defined(avoidControlPointFix) && avoidControlPointFix == 0)) {
|
||||||
@ -197,13 +187,14 @@ web2d.peer.svg.CurvedLinePeer.prototype._calculateAutoControlPoints = function(a
|
|||||||
this._control2.x = defaultpoints[1].x;
|
this._control2.x = defaultpoints[1].x;
|
||||||
this._control2.y = defaultpoints[1].y;
|
this._control2.y = defaultpoints[1].y;
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.CurvedLinePeer.prototype.setDashed = function(length,spacing){
|
setDashed : function(length, spacing) {
|
||||||
if ($defined(length) && $defined(spacing)) {
|
if ($defined(length) && $defined(spacing)) {
|
||||||
this._native.setAttribute("stroke-dasharray", length + "," + spacing);
|
this._native.setAttribute("stroke-dasharray", length + "," + spacing);
|
||||||
} else {
|
} else {
|
||||||
this._native.setAttribute("stroke-dasharray", "");
|
this._native.setAttribute("stroke-dasharray", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
}
|
||||||
|
});
|
||||||
|
@ -16,38 +16,36 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer = function(svgElement) {
|
web2d.peer.svg.ElementPeer = new Class({
|
||||||
|
initialize :function(svgElement) {
|
||||||
this._native = svgElement;
|
this._native = svgElement;
|
||||||
this._size = {width:1,height:1};
|
this._size = {width:1,height:1};
|
||||||
this._changeListeners = {};
|
this._changeListeners = {};
|
||||||
// http://support.adobe.com/devsup/devsup.nsf/docs/50493.htm
|
// http://support.adobe.com/devsup/devsup.nsf/docs/50493.htm
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer.prototype.svgNamespace = 'http://www.w3.org/2000/svg';
|
setChildren : function(children) {
|
||||||
web2d.peer.svg.ElementPeer.prototype.linkNamespace = 'http://www.w3.org/1999/xlink';
|
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer.prototype.setChildren = function(children) {
|
|
||||||
this._children = children;
|
this._children = children;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer.prototype.getChildren = function() {
|
getChildren : function() {
|
||||||
var result = this._children;
|
var result = this._children;
|
||||||
if (!$defined(result)) {
|
if (!$defined(result)) {
|
||||||
result = [];
|
result = [];
|
||||||
this._children = result;
|
this._children = result;
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer.prototype.getParent = function() {
|
getParent : function() {
|
||||||
return this._parent;
|
return this._parent;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer.prototype.setParent = function(parent) {
|
setParent : function(parent) {
|
||||||
this._parent = parent;
|
this._parent = parent;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer.prototype.appendChild = function(elementPeer) {
|
appendChild : function(elementPeer) {
|
||||||
// Store parent and child relationship.
|
// Store parent and child relationship.
|
||||||
elementPeer.setParent(this);
|
elementPeer.setParent(this);
|
||||||
var children = this.getChildren();
|
var children = this.getChildren();
|
||||||
@ -58,10 +56,10 @@ web2d.peer.svg.ElementPeer.prototype.appendChild = function(elementPeer) {
|
|||||||
|
|
||||||
// Broadcast events ...
|
// Broadcast events ...
|
||||||
web2d.peer.utils.EventUtils.broadcastChangeEvent(this, "strokeStyle");
|
web2d.peer.utils.EventUtils.broadcastChangeEvent(this, "strokeStyle");
|
||||||
};
|
},
|
||||||
|
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer.prototype.removeChild = function(elementPeer) {
|
removeChild : function(elementPeer) {
|
||||||
// Store parent and child relationship.
|
// Store parent and child relationship.
|
||||||
elementPeer.setParent(null);
|
elementPeer.setParent(null);
|
||||||
var children = this.getChildren();
|
var children = this.getChildren();
|
||||||
@ -77,23 +75,23 @@ web2d.peer.svg.ElementPeer.prototype.removeChild = function(elementPeer) {
|
|||||||
}
|
}
|
||||||
// Append element as a child.
|
// Append element as a child.
|
||||||
this._native.removeChild(elementPeer._native);
|
this._native.removeChild(elementPeer._native);
|
||||||
};
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* http://www.w3.org/TR/DOM-Level-3-Events/events.html
|
* http://www.w3.org/TR/DOM-Level-3-Events/events.html
|
||||||
* http://developer.mozilla.org/en/docs/addEvent
|
* http://developer.mozilla.org/en/docs/addEvent
|
||||||
*/
|
*/
|
||||||
web2d.peer.svg.ElementPeer.prototype.addEvent = function(type, listener) {
|
addEvent : function(type, listener) {
|
||||||
|
|
||||||
this._native.addEvent(type, listener);
|
this._native.addEvent(type, listener);
|
||||||
|
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer.prototype.removeEvent = function(type, listener) {
|
removeEvent : function(type, listener) {
|
||||||
this._native.removeEvent(type, listener);
|
this._native.removeEvent(type, listener);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer.prototype.setSize = function(width, height) {
|
setSize : function(width, height) {
|
||||||
if ($defined(width) && this._size.width != parseInt(width)) {
|
if ($defined(width) && this._size.width != parseInt(width)) {
|
||||||
this._size.width = parseInt(width);
|
this._size.width = parseInt(width);
|
||||||
this._native.setAttribute('width', parseInt(width));
|
this._native.setAttribute('width', parseInt(width));
|
||||||
@ -105,38 +103,37 @@ web2d.peer.svg.ElementPeer.prototype.setSize = function(width, height) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
web2d.peer.utils.EventUtils.broadcastChangeEvent(this, "strokeStyle");
|
web2d.peer.utils.EventUtils.broadcastChangeEvent(this, "strokeStyle");
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer.prototype.getSize = function() {
|
getSize : function() {
|
||||||
return {width:this._size.width,height:this._size.height};
|
return {width:this._size.width,height:this._size.height};
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer.prototype.setFill = function(color, opacity) {
|
setFill : function(color, opacity) {
|
||||||
if ($defined(color)) {
|
if ($defined(color)) {
|
||||||
this._native.setAttribute('fill', color);
|
this._native.setAttribute('fill', color);
|
||||||
}
|
}
|
||||||
if ($defined(opacity)) {
|
if ($defined(opacity)) {
|
||||||
this._native.setAttribute('fill-opacity', opacity);
|
this._native.setAttribute('fill-opacity', opacity);
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer.prototype.getFill = function() {
|
getFill : function() {
|
||||||
var color = this._native.getAttribute('fill');
|
var color = this._native.getAttribute('fill');
|
||||||
var opacity = this._native.getAttribute('fill-opacity');
|
var opacity = this._native.getAttribute('fill-opacity');
|
||||||
return {color:color, opacity:Number(opacity)};
|
return {color:color, opacity:Number(opacity)};
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer.prototype.getStroke = function() {
|
getStroke : function() {
|
||||||
var vmlStroke = this._native;
|
var vmlStroke = this._native;
|
||||||
var color = vmlStroke.getAttribute('stroke');
|
var color = vmlStroke.getAttribute('stroke');
|
||||||
var dashstyle = this._stokeStyle;
|
var dashstyle = this._stokeStyle;
|
||||||
var opacity = vmlStroke.getAttribute('stroke-opacity');
|
var opacity = vmlStroke.getAttribute('stroke-opacity');
|
||||||
var width = vmlStroke.getAttribute('stroke-width');
|
var width = vmlStroke.getAttribute('stroke-width');
|
||||||
return {color: color, style: dashstyle, opacity: opacity, width: width};
|
return {color: color, style: dashstyle, opacity: opacity, width: width};
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer.prototype.__stokeStyleToStrokDasharray = {solid:[],dot:[1,3],dash:[4,3],longdash:[10,2],dashdot:[5,3,1,3]};
|
setStroke : function(width, style, color, opacity) {
|
||||||
web2d.peer.svg.ElementPeer.prototype.setStroke = function(width, style, color, opacity) {
|
|
||||||
if ($defined(width)) {
|
if ($defined(width)) {
|
||||||
this._native.setAttribute('stroke-width', width + "px");
|
this._native.setAttribute('stroke-width', width + "px");
|
||||||
}
|
}
|
||||||
@ -167,67 +164,74 @@ web2d.peer.svg.ElementPeer.prototype.setStroke = function(width, style, color, o
|
|||||||
if ($defined(opacity)) {
|
if ($defined(opacity)) {
|
||||||
this._native.setAttribute('stroke-opacity', opacity);
|
this._native.setAttribute('stroke-opacity', opacity);
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* style='visibility: visible'
|
* style='visibility: visible'
|
||||||
*/
|
*/
|
||||||
web2d.peer.svg.ElementPeer.prototype.setVisibility = function(isVisible) {
|
setVisibility : function(isVisible) {
|
||||||
this._native.setAttribute('visibility', (isVisible) ? 'visible' : 'hidden');
|
this._native.setAttribute('visibility', (isVisible) ? 'visible' : 'hidden');
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer.prototype.isVisible = function() {
|
isVisible : function() {
|
||||||
var visibility = this._native.getAttribute('visibility');
|
var visibility = this._native.getAttribute('visibility');
|
||||||
return !(visibility == 'hidden');
|
return !(visibility == 'hidden');
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer.prototype.updateStrokeStyle = function() {
|
updateStrokeStyle : function() {
|
||||||
var strokeStyle = this._stokeStyle;
|
var strokeStyle = this._stokeStyle;
|
||||||
if (this.getParent()) {
|
if (this.getParent()) {
|
||||||
if (strokeStyle && strokeStyle != 'solid') {
|
if (strokeStyle && strokeStyle != 'solid') {
|
||||||
this.setStroke(null, strokeStyle);
|
this.setStroke(null, strokeStyle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer.prototype.attachChangeEventListener = function(type, listener) {
|
attachChangeEventListener : function(type, listener) {
|
||||||
var listeners = this.getChangeEventListeners(type);
|
var listeners = this.getChangeEventListeners(type);
|
||||||
if (!$defined(listener)) {
|
if (!$defined(listener)) {
|
||||||
throw "Listener can not be null";
|
throw "Listener can not be null";
|
||||||
}
|
}
|
||||||
listeners.push(listener);
|
listeners.push(listener);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer.prototype.getChangeEventListeners = function(type) {
|
getChangeEventListeners : function(type) {
|
||||||
var listeners = this._changeListeners[type];
|
var listeners = this._changeListeners[type];
|
||||||
if (!$defined(listeners)) {
|
if (!$defined(listeners)) {
|
||||||
listeners = [];
|
listeners = [];
|
||||||
this._changeListeners[type] = listeners;
|
this._changeListeners[type] = listeners;
|
||||||
}
|
}
|
||||||
return listeners;
|
return listeners;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer.prototype.positionRelativeTo = function(elem, options) {
|
positionRelativeTo : function(elem, options) {
|
||||||
options = !$defined(options) ? {} : options;
|
options = !$defined(options) ? {} : options;
|
||||||
options['relativeTo'] = $(this._native);
|
options['relativeTo'] = $(this._native);
|
||||||
elem.position(options);
|
elem.position(options);
|
||||||
};
|
},
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Move element to the front
|
* Move element to the front
|
||||||
*/
|
*/
|
||||||
web2d.peer.svg.ElementPeer.prototype.moveToFront = function() {
|
moveToFront : function() {
|
||||||
this._native.parentNode.appendChild(this._native);
|
this._native.parentNode.appendChild(this._native);
|
||||||
};
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Move element to the back
|
* Move element to the back
|
||||||
*/
|
*/
|
||||||
web2d.peer.svg.ElementPeer.prototype.moveToBack = function() {
|
moveToBack : function() {
|
||||||
this._native.parentNode.insertBefore(this._native, this._native.parentNode.firstChild);
|
this._native.parentNode.insertBefore(this._native, this._native.parentNode.firstChild);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer.prototype.setCursor = function(type) {
|
setCursor : function(type) {
|
||||||
this._native.style.cursor = type;
|
this._native.style.cursor = type;
|
||||||
};
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
web2d.peer.svg.ElementPeer.prototype.svgNamespace = 'http://www.w3.org/2000/svg';
|
||||||
|
web2d.peer.svg.ElementPeer.prototype.linkNamespace = 'http://www.w3.org/1999/xlink';
|
||||||
|
web2d.peer.svg.ElementPeer.prototype.__stokeStyleToStrokDasharray = {solid:[],dot:[1,3],dash:[4,3],longdash:[10,2],dashdot:[5,3,1,3]};
|
||||||
|
|
||||||
|
@ -16,51 +16,44 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.peer.svg.ElipsePeer = function()
|
web2d.peer.svg.ElipsePeer = new Class({
|
||||||
{
|
Extends: web2d.peer.svg.ElementPeer,
|
||||||
|
initialize : function() {
|
||||||
var svgElement = window.document.createElementNS(this.svgNamespace, 'ellipse');
|
var svgElement = window.document.createElementNS(this.svgNamespace, 'ellipse');
|
||||||
web2d.peer.svg.ElementPeer.call(this, svgElement);
|
this.parent(svgElement);
|
||||||
this.attachChangeEventListener("strokeStyle", web2d.peer.svg.ElementPeer.prototype.updateStrokeStyle);
|
this.attachChangeEventListener("strokeStyle", web2d.peer.svg.ElementPeer.prototype.updateStrokeStyle);
|
||||||
this._position = {x:0, y:0};
|
this._position = {x:0, y:0};
|
||||||
};
|
},
|
||||||
|
|
||||||
objects.extend(web2d.peer.svg.ElipsePeer, web2d.peer.svg.ElementPeer);
|
setSize : function(width, height) {
|
||||||
|
this.parent(width, height);
|
||||||
web2d.peer.svg.ElipsePeer.prototype.setSize = function(width, height)
|
if ($defined(width)) {
|
||||||
{
|
|
||||||
web2d.peer.svg.ElipsePeer.superClass.setSize.call(this, width, height);
|
|
||||||
if ($defined(width))
|
|
||||||
{
|
|
||||||
this._native.setAttribute('rx', width / 2);
|
this._native.setAttribute('rx', width / 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($defined(height))
|
if ($defined(height)) {
|
||||||
{
|
|
||||||
this._native.setAttribute('ry', height / 2);
|
this._native.setAttribute('ry', height / 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
var pos = this.getPosition();
|
var pos = this.getPosition();
|
||||||
this.setPosition(pos.x, pos.y);
|
this.setPosition(pos.x, pos.y);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ElipsePeer.prototype.setPosition = function(cx, cy)
|
setPosition : function(cx, cy) {
|
||||||
{
|
|
||||||
var size = this.getSize();
|
var size = this.getSize();
|
||||||
cx = cx + size.width / 2;
|
cx = cx + size.width / 2;
|
||||||
cy = cy + size.height / 2;
|
cy = cy + size.height / 2;
|
||||||
if ($defined(cx))
|
if ($defined(cx)) {
|
||||||
{
|
|
||||||
this._native.setAttribute('cx', cx);
|
this._native.setAttribute('cx', cx);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($defined(cy))
|
if ($defined(cy)) {
|
||||||
{
|
|
||||||
this._native.setAttribute('cy', cy);
|
this._native.setAttribute('cy', cy);
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ElipsePeer.prototype.getPosition = function()
|
getPosition : function() {
|
||||||
{
|
|
||||||
return this._position;
|
return this._position;
|
||||||
};
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
@ -16,93 +16,77 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.peer.svg.Font = function()
|
web2d.peer.svg.Font = new Class({
|
||||||
{
|
initialize : function() {
|
||||||
this._size = 10;
|
this._size = 10;
|
||||||
this._style = "normal";
|
this._style = "normal";
|
||||||
this._weight = "normal";
|
this._weight = "normal";
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.Font.prototype.init = function(args)
|
init : function(args) {
|
||||||
{
|
if ($defined(args.size)) {
|
||||||
if ($defined(args.size))
|
|
||||||
{
|
|
||||||
this._size = parseInt(args.size);
|
this._size = parseInt(args.size);
|
||||||
}
|
}
|
||||||
if ($defined(args.style))
|
if ($defined(args.style)) {
|
||||||
{
|
|
||||||
this._style = args.style;
|
this._style = args.style;
|
||||||
}
|
}
|
||||||
if ($defined(args.weight))
|
if ($defined(args.weight)) {
|
||||||
{
|
|
||||||
this._weight = args.weight;
|
this._weight = args.weight;
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.Font.prototype.getHtmlSize = function (scale)
|
getHtmlSize : function (scale) {
|
||||||
{
|
|
||||||
var result = 0;
|
var result = 0;
|
||||||
if (this._size == 6)
|
if (this._size == 6) {
|
||||||
{
|
|
||||||
result = this._size * scale.height * 43 / 32;
|
result = this._size * scale.height * 43 / 32;
|
||||||
}
|
}
|
||||||
if (this._size == 8)
|
if (this._size == 8) {
|
||||||
{
|
|
||||||
result = this._size * scale.height * 42 / 32;
|
result = this._size * scale.height * 42 / 32;
|
||||||
}
|
}
|
||||||
else if (this._size == 10)
|
else if (this._size == 10) {
|
||||||
{
|
|
||||||
result = this._size * scale.height * 42 / 32;
|
result = this._size * scale.height * 42 / 32;
|
||||||
}
|
}
|
||||||
else if (this._size == 15)
|
else if (this._size == 15) {
|
||||||
{
|
|
||||||
result = this._size * scale.height * 42 / 32;
|
result = this._size * scale.height * 42 / 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.Font.prototype.getGraphSize = function (scale)
|
getGraphSize : function () {
|
||||||
{
|
|
||||||
return this._size * 43 / 32;
|
return this._size * 43 / 32;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.Font.prototype.getSize = function ()
|
getSize : function () {
|
||||||
{
|
|
||||||
return parseInt(this._size);
|
return parseInt(this._size);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.Font.prototype.getStyle = function ()
|
getStyle : function () {
|
||||||
{
|
|
||||||
return this._style;
|
return this._style;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.Font.prototype.getWeight = function ()
|
getWeight : function () {
|
||||||
{
|
|
||||||
return this._weight;
|
return this._weight;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.Font.prototype.setSize = function (size)
|
setSize : function (size) {
|
||||||
{
|
|
||||||
this._size = size;
|
this._size = size;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.Font.prototype.setStyle = function (style)
|
setStyle : function (style) {
|
||||||
{
|
|
||||||
this._style = style;
|
this._style = style;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.Font.prototype.setWeight = function (weight)
|
setWeight : function (weight) {
|
||||||
{
|
|
||||||
this._weight = weight;
|
this._weight = weight;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.Font.prototype.getWidthMargin = function ()
|
getWidthMargin : function () {
|
||||||
{
|
|
||||||
var result = 0;
|
var result = 0;
|
||||||
if (this._size == 10 || this._size == 6)
|
if (this._size == 10 || this._size == 6) {
|
||||||
{
|
|
||||||
result = 4;
|
result = 4;
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
};
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
@ -16,38 +16,30 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.peer.svg.GroupPeer = function()
|
web2d.peer.svg.GroupPeer = new Class({
|
||||||
{
|
Extends: web2d.peer.svg.ElementPeer,
|
||||||
|
initialize : function() {
|
||||||
var svgElement = window.document.createElementNS(this.svgNamespace, 'g');
|
var svgElement = window.document.createElementNS(this.svgNamespace, 'g');
|
||||||
web2d.peer.svg.ElementPeer.call(this, svgElement);
|
this.parent(svgElement);
|
||||||
this._native.setAttribute("preserveAspectRatio", "none");
|
this._native.setAttribute("preserveAspectRatio", "none");
|
||||||
this._coordSize = {width:1,height:1};
|
this._coordSize = {width:1,height:1};
|
||||||
this._native.setAttribute("focusable", "true");
|
this._native.setAttribute("focusable", "true");
|
||||||
this._position = {x:0,y:0};
|
this._position = {x:0,y:0};
|
||||||
this._coordOrigin = {x:0,y:0};
|
this._coordOrigin = {x:0,y:0};
|
||||||
};
|
},
|
||||||
|
|
||||||
objects.extend(web2d.peer.svg.GroupPeer, web2d.peer.svg.ElementPeer);
|
setCoordSize : function(width, height) {
|
||||||
|
|
||||||
/*web2d.peer.svg.GroupPeer.prototype.setPosition = function(cx, cy)
|
|
||||||
{
|
|
||||||
this._native.setAttribute("transform", "translate(" + parseInt(cx) + " " + parseInt(cy) + ")");
|
|
||||||
};*/
|
|
||||||
|
|
||||||
web2d.peer.svg.GroupPeer.prototype.setCoordSize = function(width, height)
|
|
||||||
{
|
|
||||||
var change = this._coordSize.width != width || this._coordSize.height != height;
|
var change = this._coordSize.width != width || this._coordSize.height != height;
|
||||||
this._coordSize.width = width;
|
this._coordSize.width = width;
|
||||||
this._coordSize.height = height;
|
this._coordSize.height = height;
|
||||||
if (change)
|
if (change)
|
||||||
this.updateTransform();
|
this.updateTransform();
|
||||||
web2d.peer.utils.EventUtils.broadcastChangeEvent(this, "strokeStyle");
|
web2d.peer.utils.EventUtils.broadcastChangeEvent(this, "strokeStyle");
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.GroupPeer.prototype.getCoordSize = function()
|
getCoordSize : function() {
|
||||||
{
|
|
||||||
return {width:this._coordSize.width,height:this._coordSize.height};
|
return {width:this._coordSize.width,height:this._coordSize.height};
|
||||||
};
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* http://www.w3.org/TR/SVG/coords.html#TransformAttribute
|
* http://www.w3.org/TR/SVG/coords.html#TransformAttribute
|
||||||
@ -70,8 +62,7 @@ web2d.peer.svg.GroupPeer.prototype.getCoordSize = function()
|
|||||||
* * skewY(<skew-angle>), which specifies a skew transformation along the y-axis.
|
* * skewY(<skew-angle>), which specifies a skew transformation along the y-axis.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
web2d.peer.svg.GroupPeer.prototype.updateTransform = function()
|
updateTransform : function() {
|
||||||
{
|
|
||||||
var sx = this._size.width / this._coordSize.width;
|
var sx = this._size.width / this._coordSize.width;
|
||||||
var sy = this._size.height / this._coordSize.height;
|
var sy = this._size.height / this._coordSize.height;
|
||||||
|
|
||||||
@ -79,60 +70,51 @@ web2d.peer.svg.GroupPeer.prototype.updateTransform = function()
|
|||||||
var cy = this._position.y - this._coordOrigin.y * sy;
|
var cy = this._position.y - this._coordOrigin.y * sy;
|
||||||
|
|
||||||
this._native.setAttribute("transform", "translate(" + cx + "," + cy + ") scale(" + sx + "," + sy + ")");
|
this._native.setAttribute("transform", "translate(" + cx + "," + cy + ") scale(" + sx + "," + sy + ")");
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.GroupPeer.prototype.setCoordOrigin = function(x, y)
|
setCoordOrigin : function(x, y) {
|
||||||
{
|
|
||||||
var change = x != this._coordOrigin.x || y != this._coordOrigin.y;
|
var change = x != this._coordOrigin.x || y != this._coordOrigin.y;
|
||||||
if ($defined(x))
|
if ($defined(x)) {
|
||||||
{
|
|
||||||
this._coordOrigin.x = x;
|
this._coordOrigin.x = x;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($defined(y))
|
if ($defined(y)) {
|
||||||
{
|
|
||||||
this._coordOrigin.y = y;
|
this._coordOrigin.y = y;
|
||||||
}
|
}
|
||||||
if (change)
|
if (change)
|
||||||
this.updateTransform();
|
this.updateTransform();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.GroupPeer.prototype.setSize = function(width, height)
|
setSize : function(width, height) {
|
||||||
{
|
|
||||||
var change = width != this._size.width || height != this._size.height;
|
var change = width != this._size.width || height != this._size.height;
|
||||||
web2d.peer.svg.GroupPeer.superClass.setSize.call(this, width, height);
|
this.parent(width, height);
|
||||||
if (change)
|
if (change)
|
||||||
this.updateTransform();
|
this.updateTransform();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.GroupPeer.prototype.setPosition = function(x, y)
|
setPosition : function(x, y) {
|
||||||
{
|
|
||||||
var change = x != this._position.x || y != this._position.y;
|
var change = x != this._position.x || y != this._position.y;
|
||||||
if ($defined(x))
|
if ($defined(x)) {
|
||||||
{
|
|
||||||
this._position.x = parseInt(x);
|
this._position.x = parseInt(x);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($defined(y))
|
if ($defined(y)) {
|
||||||
{
|
|
||||||
this._position.y = parseInt(y);
|
this._position.y = parseInt(y);
|
||||||
}
|
}
|
||||||
if (change)
|
if (change)
|
||||||
this.updateTransform();
|
this.updateTransform();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.GroupPeer.prototype.getPosition = function()
|
getPosition : function() {
|
||||||
{
|
|
||||||
return {x:this._position.x,y:this._position.y};
|
return {x:this._position.x,y:this._position.y};
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.GroupPeer.prototype.appendChild = function(child)
|
appendChild : function(child) {
|
||||||
{
|
this.parent(child);
|
||||||
web2d.peer.svg.GroupPeer.superClass.appendChild.call(this, child);
|
|
||||||
web2d.peer.utils.EventUtils.broadcastChangeEvent(child, "onChangeCoordSize");
|
web2d.peer.utils.EventUtils.broadcastChangeEvent(child, "onChangeCoordSize");
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.GroupPeer.prototype.getCoordOrigin = function ()
|
getCoordOrigin : function () {
|
||||||
{
|
|
||||||
return {x:this._coordOrigin.x, y:this._coordOrigin.y};
|
return {x:this._coordOrigin.x, y:this._coordOrigin.y};
|
||||||
};
|
}
|
||||||
|
});
|
@ -16,36 +16,31 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.peer.svg.ImagePeer = function()
|
web2d.peer.svg.ImagePeer = new Class({
|
||||||
{
|
Extends: web2d.peer.svg.ElementPeer,
|
||||||
|
initialize : function() {
|
||||||
var svgElement = window.document.createElementNS(this.svgNamespace, 'image');
|
var svgElement = window.document.createElementNS(this.svgNamespace, 'image');
|
||||||
web2d.peer.svg.ElementPeer.call(this, svgElement);
|
this.parent(svgElement);
|
||||||
this._position = {x:0,y:0};
|
this._position = {x:0,y:0};
|
||||||
this._href = "";
|
this._href = "";
|
||||||
};
|
},
|
||||||
|
|
||||||
objects.extend(web2d.peer.svg.ImagePeer, web2d.peer.svg.ElementPeer);
|
setPosition : function(x, y) {
|
||||||
|
|
||||||
web2d.peer.svg.ImagePeer.prototype.setPosition = function(x, y)
|
|
||||||
{
|
|
||||||
this._position = {x:x, y:y};
|
this._position = {x:x, y:y};
|
||||||
this._native.setAttribute('y', y);
|
this._native.setAttribute('y', y);
|
||||||
this._native.setAttribute('x', x);
|
this._native.setAttribute('x', x);
|
||||||
};
|
},
|
||||||
|
|
||||||
|
getPosition : function() {
|
||||||
web2d.peer.svg.ImagePeer.prototype.getPosition = function()
|
|
||||||
{
|
|
||||||
return this._position;
|
return this._position;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ImagePeer.prototype.setHref = function(url)
|
setHref : function(url) {
|
||||||
{
|
|
||||||
this._native.setAttributeNS(this.linkNamespace, "href", url);
|
this._native.setAttributeNS(this.linkNamespace, "href", url);
|
||||||
this._href = url;
|
this._href = url;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.ImagePeer.prototype.getHref = function()
|
getHref : function() {
|
||||||
{
|
|
||||||
return this._href;
|
return this._href;
|
||||||
};
|
}
|
||||||
|
});
|
@ -16,52 +16,46 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.peer.svg.LinePeer = function()
|
web2d.peer.svg.LinePeer = new Class({
|
||||||
{
|
Extends: web2d.peer.svg.ElementPeer,
|
||||||
|
initialize : function() {
|
||||||
var svgElement = window.document.createElementNS(this.svgNamespace, 'line');
|
var svgElement = window.document.createElementNS(this.svgNamespace, 'line');
|
||||||
web2d.peer.svg.ElementPeer.call(this, svgElement);
|
this.parent(svgElement);
|
||||||
this.attachChangeEventListener("strokeStyle", web2d.peer.svg.ElementPeer.prototype.updateStrokeStyle);
|
this.attachChangeEventListener("strokeStyle", web2d.peer.svg.ElementPeer.prototype.updateStrokeStyle);
|
||||||
};
|
},
|
||||||
|
|
||||||
objects.extend(web2d.peer.svg.LinePeer, web2d.peer.svg.ElementPeer);
|
setFrom : function(x1, y1) {
|
||||||
|
|
||||||
web2d.peer.svg.LinePeer.prototype.setFrom = function(x1, y1)
|
|
||||||
{
|
|
||||||
this._x1 = x1;
|
this._x1 = x1;
|
||||||
this._y1 = y1;
|
this._y1 = y1;
|
||||||
this._native.setAttribute('x1', x1);
|
this._native.setAttribute('x1', x1);
|
||||||
this._native.setAttribute('y1', y1);
|
this._native.setAttribute('y1', y1);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.LinePeer.prototype.setTo = function(x2, y2)
|
setTo : function(x2, y2) {
|
||||||
{
|
|
||||||
this._x2 = x2;
|
this._x2 = x2;
|
||||||
this._y2 = y2;
|
this._y2 = y2;
|
||||||
this._native.setAttribute('x2', x2);
|
this._native.setAttribute('x2', x2);
|
||||||
this._native.setAttribute('y2', y2);
|
this._native.setAttribute('y2', y2);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.LinePeer.prototype.getFrom = function(){
|
getFrom : function() {
|
||||||
return new core.Point(this._x1, this._y1);
|
return new core.Point(this._x1, this._y1);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.LinePeer.prototype.getTo = function(){
|
getTo : function() {
|
||||||
return new core.Point(this._x2, this._y2);
|
return new core.Point(this._x2, this._y2);
|
||||||
};
|
},
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* http://www.zvon.org/HowTo/Output/howto_jj_svg_27.html?at=marker-end
|
* http://www.zvon.org/HowTo/Output/howto_jj_svg_27.html?at=marker-end
|
||||||
*/
|
*/
|
||||||
web2d.peer.svg.LinePeer.prototype.setArrowStyle = function(startStyle, endStyle)
|
setArrowStyle : function(startStyle, endStyle) {
|
||||||
{
|
if ($defined(startStyle)) {
|
||||||
if ($defined(startStyle))
|
|
||||||
{
|
|
||||||
// Todo: This must be implemented ...
|
// Todo: This must be implemented ...
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($defined(endStyle))
|
if ($defined(endStyle)) {
|
||||||
{
|
|
||||||
// Todo: This must be implemented ...
|
// Todo: This must be implemented ...
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
});
|
@ -16,106 +16,89 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.peer.svg.PolyLinePeer = function()
|
web2d.peer.svg.PolyLinePeer = new Class({
|
||||||
{
|
Extends: web2d.peer.svg.ElementPeer,
|
||||||
|
initialize : function() {
|
||||||
|
|
||||||
var svgElement = window.document.createElementNS(this.svgNamespace, 'polyline');
|
var svgElement = window.document.createElementNS(this.svgNamespace, 'polyline');
|
||||||
web2d.peer.svg.ElementPeer.call(this, svgElement);
|
this.parent(svgElement);
|
||||||
this.setFill("none");
|
this.setFill("none");
|
||||||
this.breakDistance = 10;
|
this.breakDistance = 10;
|
||||||
};
|
},
|
||||||
|
|
||||||
objects.extend(web2d.peer.svg.PolyLinePeer, web2d.peer.svg.ElementPeer);
|
setFrom : function(x1, y1) {
|
||||||
|
|
||||||
web2d.peer.svg.PolyLinePeer.prototype.setFrom = function(x1, y1)
|
|
||||||
{
|
|
||||||
this._x1 = x1;
|
this._x1 = x1;
|
||||||
this._y1 = y1;
|
this._y1 = y1;
|
||||||
this._updatePath();
|
this._updatePath();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.PolyLinePeer.prototype.setTo = function(x2, y2)
|
setTo : function(x2, y2) {
|
||||||
{
|
|
||||||
this._x2 = x2;
|
this._x2 = x2;
|
||||||
this._y2 = y2;
|
this._y2 = y2;
|
||||||
this._updatePath();
|
this._updatePath();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.PolyLinePeer.prototype.setStrokeWidth = function(width)
|
setStrokeWidth : function(width) {
|
||||||
{
|
|
||||||
this._native.setAttribute('stroke-width', width);
|
this._native.setAttribute('stroke-width', width);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.PolyLinePeer.prototype.setColor = function(color)
|
setColor : function(color) {
|
||||||
{
|
|
||||||
this._native.setAttribute('stroke', color);
|
this._native.setAttribute('stroke', color);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.PolyLinePeer.prototype.setStyle = function(style)
|
setStyle : function(style) {
|
||||||
{
|
|
||||||
this._style = style;
|
this._style = style;
|
||||||
this._updatePath();
|
this._updatePath();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.PolyLinePeer.prototype.getStyle = function()
|
getStyle : function() {
|
||||||
{
|
|
||||||
return this._style;
|
return this._style;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.PolyLinePeer.prototype._updatePath = function()
|
_updatePath : function() {
|
||||||
{
|
if (this._style == "Curved") {
|
||||||
if (this._style == "Curved")
|
|
||||||
{
|
|
||||||
this._updateMiddleCurvePath();
|
this._updateMiddleCurvePath();
|
||||||
}
|
}
|
||||||
else if (this._style == "Straight")
|
else if (this._style == "Straight") {
|
||||||
{
|
|
||||||
this._updateStraightPath();
|
this._updateStraightPath();
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
this._updateCurvePath();
|
this._updateCurvePath();
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.PolyLinePeer.prototype._updateStraightPath = function()
|
_updateStraightPath : function() {
|
||||||
{
|
if ($defined(this._x1) && $defined(this._x2) && $defined(this._y1) && $defined(this._y2)) {
|
||||||
if ($defined(this._x1) && $defined(this._x2) && $defined(this._y1) && $defined(this._y2))
|
|
||||||
{
|
|
||||||
var path = web2d.PolyLine.buildStraightPath(this.breakDistance, this._x1, this._y1, this._x2, this._y2);
|
var path = web2d.PolyLine.buildStraightPath(this.breakDistance, this._x1, this._y1, this._x2, this._y2);
|
||||||
this._native.setAttribute('points', path);
|
this._native.setAttribute('points', path);
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.PolyLinePeer.prototype._updateMiddleCurvePath = function()
|
_updateMiddleCurvePath : function() {
|
||||||
{
|
|
||||||
var x1 = this._x1;
|
var x1 = this._x1;
|
||||||
var y1 = this._y1;
|
var y1 = this._y1;
|
||||||
var x2 = this._x2;
|
var x2 = this._x2;
|
||||||
var y2 = this._y2;
|
var y2 = this._y2;
|
||||||
if ($defined(x1) && $defined(x2) && $defined(y1) && $defined(y2))
|
if ($defined(x1) && $defined(x2) && $defined(y1) && $defined(y2)) {
|
||||||
{
|
|
||||||
var diff = x2 - x1;
|
var diff = x2 - x1;
|
||||||
var middlex = (diff / 2) + x1;
|
var middlex = (diff / 2) + x1;
|
||||||
var signx = 1;
|
var signx = 1;
|
||||||
var signy = 1;
|
var signy = 1;
|
||||||
if (diff < 0)
|
if (diff < 0) {
|
||||||
{
|
|
||||||
signx = -1;
|
signx = -1;
|
||||||
}
|
}
|
||||||
if (y2 < y1)
|
if (y2 < y1) {
|
||||||
{
|
|
||||||
signy = -1;
|
signy = -1;
|
||||||
}
|
}
|
||||||
var path = x1 + ", " + y1 + " " + (middlex - 10 * signx) + ", " + y1 + " " + middlex + ", " + (y1 + 10 * signy) + " " + middlex + ", " + (y2 - 10 * signy) + " " + (middlex + 10 * signx) + ", " + y2 + " " + x2 + ", " + y2;
|
var path = x1 + ", " + y1 + " " + (middlex - 10 * signx) + ", " + y1 + " " + middlex + ", " + (y1 + 10 * signy) + " " + middlex + ", " + (y2 - 10 * signy) + " " + (middlex + 10 * signx) + ", " + y2 + " " + x2 + ", " + y2;
|
||||||
this._native.setAttribute('points', path);
|
this._native.setAttribute('points', path);
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.PolyLinePeer.prototype._updateCurvePath = function()
|
_updateCurvePath : function() {
|
||||||
{
|
if ($defined(this._x1) && $defined(this._x2) && $defined(this._y1) && $defined(this._y2)) {
|
||||||
if ($defined(this._x1) && $defined(this._x2) && $defined(this._y1) && $defined(this._y2))
|
|
||||||
{
|
|
||||||
var path = web2d.PolyLine.buildCurvedPath(this.breakDistance, this._x1, this._y1, this._x2, this._y2);
|
var path = web2d.PolyLine.buildCurvedPath(this.breakDistance, this._x1, this._y1, this._x2, this._y2);
|
||||||
this._native.setAttribute('points', path);
|
this._native.setAttribute('points', path);
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
});
|
@ -19,45 +19,39 @@
|
|||||||
/**
|
/**
|
||||||
* http://www.w3.org/TR/SVG/shapes.html#RectElement
|
* http://www.w3.org/TR/SVG/shapes.html#RectElement
|
||||||
*/
|
*/
|
||||||
web2d.peer.svg.RectPeer = function(arc)
|
web2d.peer.svg.RectPeer = new Class({
|
||||||
{
|
Extends: web2d.peer.svg.ElementPeer,
|
||||||
|
initialize : function(arc) {
|
||||||
var svgElement = window.document.createElementNS(this.svgNamespace, 'rect');
|
var svgElement = window.document.createElementNS(this.svgNamespace, 'rect');
|
||||||
web2d.peer.svg.ElementPeer.call(this, svgElement);
|
this.parent(svgElement);
|
||||||
this._arc = arc;
|
this._arc = arc;
|
||||||
this.attachChangeEventListener("strokeStyle", web2d.peer.svg.ElementPeer.prototype.updateStrokeStyle);
|
this.attachChangeEventListener("strokeStyle", web2d.peer.svg.ElementPeer.prototype.updateStrokeStyle);
|
||||||
};
|
},
|
||||||
|
|
||||||
objects.extend(web2d.peer.svg.RectPeer, web2d.peer.svg.ElementPeer);
|
setPosition :function(x, y) {
|
||||||
|
if ($defined(x)) {
|
||||||
web2d.peer.svg.RectPeer.prototype.setPosition = function(x, y)
|
|
||||||
{
|
|
||||||
if ($defined(x))
|
|
||||||
{
|
|
||||||
this._native.setAttribute('x', parseInt(x));
|
this._native.setAttribute('x', parseInt(x));
|
||||||
}
|
}
|
||||||
if ($defined(y))
|
if ($defined(y)) {
|
||||||
{
|
|
||||||
this._native.setAttribute('y', parseInt(y));
|
this._native.setAttribute('y', parseInt(y));
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.RectPeer.prototype.getPosition = function()
|
getPosition :function() {
|
||||||
{
|
|
||||||
var x = this._native.getAttribute('x');
|
var x = this._native.getAttribute('x');
|
||||||
var y = this._native.getAttribute('y');
|
var y = this._native.getAttribute('y');
|
||||||
return {x:parseInt(x),y:parseInt(y)};
|
return {x:parseInt(x),y:parseInt(y)};
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.RectPeer.prototype.setSize = function(width, height)
|
setSize :function(width, height) {
|
||||||
{
|
this.parent(width, height);
|
||||||
web2d.peer.svg.RectPeer.superClass.setSize.call(this, width, height);
|
|
||||||
|
|
||||||
var min = width < height ? width : height;
|
var min = width < height ? width : height;
|
||||||
if ($defined(this._arc))
|
if ($defined(this._arc)) {
|
||||||
{
|
|
||||||
// Transform percentages to SVG format.
|
// Transform percentages to SVG format.
|
||||||
var arc = (min / 2) * this._arc;
|
var arc = (min / 2) * this._arc;
|
||||||
this._native.setAttribute('rx', arc);
|
this._native.setAttribute('rx', arc);
|
||||||
this._native.setAttribute('ry', arc);
|
this._native.setAttribute('ry', arc);
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
});
|
@ -16,20 +16,18 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.peer.svg.TahomaFont = function()
|
web2d.peer.svg.TahomaFont = new Class({
|
||||||
{
|
Extends: web2d.peer.svg.Font,
|
||||||
web2d.peer.svg.Font.call(this);
|
initialize : function() {
|
||||||
|
this.parent();
|
||||||
this._fontFamily = "tahoma";
|
this._fontFamily = "tahoma";
|
||||||
};
|
},
|
||||||
|
|
||||||
objects.extend(web2d.peer.svg.TahomaFont, web2d.peer.svg.Font);
|
getFontFamily : function () {
|
||||||
|
|
||||||
web2d.peer.svg.TahomaFont.prototype.getFontFamily=function ()
|
|
||||||
{
|
|
||||||
return this._fontFamily;
|
return this._fontFamily;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.TahomaFont.prototype.getFont=function ()
|
getFont : function () {
|
||||||
{
|
|
||||||
return web2d.Font.TAHOMA;
|
return web2d.Font.TAHOMA;
|
||||||
};
|
}
|
||||||
|
});
|
@ -16,29 +16,20 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.peer.svg.TextPeer = function() {
|
web2d.peer.svg.TextPeer = new Class({
|
||||||
|
Extends: web2d.peer.svg.ElementPeer,
|
||||||
|
initialize : function() {
|
||||||
var svgElement = window.document.createElementNS(this.svgNamespace, 'text');
|
var svgElement = window.document.createElementNS(this.svgNamespace, 'text');
|
||||||
web2d.peer.svg.ElementPeer.call(this, svgElement);
|
this.parent(svgElement);
|
||||||
this._position = {x:0,y:0};
|
this._position = {x:0,y:0};
|
||||||
this._font = new web2d.Font("Arial", this);
|
this._font = new web2d.Font("Arial", this);
|
||||||
};
|
},
|
||||||
|
|
||||||
objects.extend(web2d.peer.svg.TextPeer, web2d.peer.svg.ElementPeer);
|
appendChild : function(element) {
|
||||||
|
|
||||||
//todo: use ths method to specify the maximum size of the text box
|
|
||||||
/*web2d.web2d.peer.svg.TextPeer.prototype.setSize = function(width, height)
|
|
||||||
{
|
|
||||||
web2d.web2d.peer.svg.TextPeer.superClass.setSize.call(this,width,height);
|
|
||||||
this._native.setAttribute('rx', width / 2);
|
|
||||||
this._native.setAttribute('ry', height /ose 2);
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
|
|
||||||
web2d.peer.svg.TextPeer.prototype.appendChild = function(element) {
|
|
||||||
this._native.appendChild(element._native);
|
this._native.appendChild(element._native);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.TextPeer.prototype.setText = function(text) {
|
setText : function(text) {
|
||||||
text = core.Utils.escapeInvalidTags(text);
|
text = core.Utils.escapeInvalidTags(text);
|
||||||
var child = this._native.firstChild;
|
var child = this._native.firstChild;
|
||||||
if ($defined(child)) {
|
if ($defined(child)) {
|
||||||
@ -47,13 +38,13 @@ web2d.peer.svg.TextPeer.prototype.setText = function(text) {
|
|||||||
this._text = text;
|
this._text = text;
|
||||||
var textNode = window.document.createTextNode(text);
|
var textNode = window.document.createTextNode(text);
|
||||||
this._native.appendChild(textNode);
|
this._native.appendChild(textNode);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.TextPeer.prototype.getText = function() {
|
getText : function() {
|
||||||
return this._text;
|
return this._text;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.TextPeer.prototype.setPosition = function(x, y) {
|
setPosition : function(x, y) {
|
||||||
this._position = {x:x, y:y};
|
this._position = {x:x, y:y};
|
||||||
var height = this._font.getSize();
|
var height = this._font.getSize();
|
||||||
if ($defined(this._parent) && $defined(this._native.getBBox))
|
if ($defined(this._parent) && $defined(this._native.getBBox))
|
||||||
@ -62,13 +53,13 @@ web2d.peer.svg.TextPeer.prototype.setPosition = function(x, y) {
|
|||||||
this._native.setAttribute('y', y + size * 3 / 4);
|
this._native.setAttribute('y', y + size * 3 / 4);
|
||||||
//y+size/2
|
//y+size/2
|
||||||
this._native.setAttribute('x', x);
|
this._native.setAttribute('x', x);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.TextPeer.prototype.getPosition = function() {
|
getPosition : function() {
|
||||||
return this._position;
|
return this._position;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.TextPeer.prototype.setFont = function(font, size, style, weight) {
|
setFont : function(font, size, style, weight) {
|
||||||
if ($defined(font)) {
|
if ($defined(font)) {
|
||||||
this._font = new web2d.Font(font, this);
|
this._font = new web2d.Font(font, this);
|
||||||
}
|
}
|
||||||
@ -82,9 +73,9 @@ web2d.peer.svg.TextPeer.prototype.setFont = function(font, size, style, weight)
|
|||||||
this._font.setSize(size);
|
this._font.setSize(size);
|
||||||
}
|
}
|
||||||
this._updateFontStyle();
|
this._updateFontStyle();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.TextPeer.prototype._updateFontStyle = function() {
|
_updateFontStyle : function() {
|
||||||
this._native.setAttribute('font-family', this._font.getFontFamily());
|
this._native.setAttribute('font-family', this._font.getFontFamily());
|
||||||
this._native.setAttribute('font-size', this._font.getGraphSize());
|
this._native.setAttribute('font-size', this._font.getGraphSize());
|
||||||
this._native.setAttribute('font-style', this._font.getStyle());
|
this._native.setAttribute('font-style', this._font.getStyle());
|
||||||
@ -93,70 +84,71 @@ web2d.peer.svg.TextPeer.prototype._updateFontStyle = function() {
|
|||||||
var scale = this._font.getFontScale();
|
var scale = this._font.getFontScale();
|
||||||
this._native.xFontScale = scale.toFixed(1);
|
this._native.xFontScale = scale.toFixed(1);
|
||||||
|
|
||||||
};
|
},
|
||||||
web2d.peer.svg.TextPeer.prototype.setColor = function(color) {
|
setColor : function(color) {
|
||||||
this._native.setAttribute('fill', color);
|
this._native.setAttribute('fill', color);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.TextPeer.prototype.getColor = function() {
|
getColor : function() {
|
||||||
return this._native.getAttribute('fill');
|
return this._native.getAttribute('fill');
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.TextPeer.prototype.setTextSize = function (size) {
|
setTextSize : function (size) {
|
||||||
this._font.setSize(size);
|
this._font.setSize(size);
|
||||||
this._updateFontStyle();
|
this._updateFontStyle();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.TextPeer.prototype.setContentSize = function(width, height) {
|
setContentSize : function(width, height) {
|
||||||
this._native.xTextSize = width.toFixed(1) + "," + height.toFixed(1);
|
this._native.xTextSize = width.toFixed(1) + "," + height.toFixed(1);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.TextPeer.prototype.setStyle = function (style) {
|
setStyle : function (style) {
|
||||||
this._font.setStyle(style);
|
this._font.setStyle(style);
|
||||||
this._updateFontStyle();
|
this._updateFontStyle();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.TextPeer.prototype.setWeight = function (weight) {
|
setWeight : function (weight) {
|
||||||
this._font.setWeight(weight);
|
this._font.setWeight(weight);
|
||||||
this._updateFontStyle();
|
this._updateFontStyle();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.TextPeer.prototype.setFontFamily = function (family) {
|
setFontFamily : function (family) {
|
||||||
var oldFont = this._font;
|
var oldFont = this._font;
|
||||||
this._font = new web2d.Font(family, this);
|
this._font = new web2d.Font(family, this);
|
||||||
this._font.setSize(oldFont.getSize());
|
this._font.setSize(oldFont.getSize());
|
||||||
this._font.setStyle(oldFont.getStyle());
|
this._font.setStyle(oldFont.getStyle());
|
||||||
this._font.setWeight(oldFont.getWeight());
|
this._font.setWeight(oldFont.getWeight());
|
||||||
this._updateFontStyle();
|
this._updateFontStyle();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.TextPeer.prototype.getFont = function () {
|
getFont : function () {
|
||||||
return {
|
return {
|
||||||
font:this._font.getFont(),
|
font:this._font.getFont(),
|
||||||
size:parseInt(this._font.getSize()),
|
size:parseInt(this._font.getSize()),
|
||||||
style:this._font.getStyle(),
|
style:this._font.getStyle(),
|
||||||
weight:this._font.getWeight()
|
weight:this._font.getWeight()
|
||||||
};
|
};
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.TextPeer.prototype.setSize = function (size) {
|
setSize : function (size) {
|
||||||
this._font.setSize(size);
|
this._font.setSize(size);
|
||||||
this._updateFontStyle();
|
this._updateFontStyle();
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.TextPeer.prototype.getWidth = function () {
|
getWidth : function () {
|
||||||
var computedWidth = this._native.getBBox().width;
|
var computedWidth = this._native.getBBox().width;
|
||||||
var width = parseInt(computedWidth);
|
var width = parseInt(computedWidth);
|
||||||
width = width + this._font.getWidthMargin();
|
width = width + this._font.getWidthMargin();
|
||||||
return width;
|
return width;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.TextPeer.prototype.getHeight = function () {
|
getHeight : function () {
|
||||||
var computedHeight = this._native.getBBox().height;
|
var computedHeight = this._native.getBBox().height;
|
||||||
return parseInt(computedHeight);
|
return parseInt(computedHeight);
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.TextPeer.prototype.getHtmlFontSize = function () {
|
getHtmlFontSize : function () {
|
||||||
return this._font.getHtmlSize();
|
return this._font.getHtmlSize();
|
||||||
};
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
@ -16,20 +16,18 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.peer.svg.TimesFont = function()
|
web2d.peer.svg.TimesFont = new Class({
|
||||||
{
|
Extends: web2d.peer.svg.Font,
|
||||||
web2d.peer.svg.Font.call(this);
|
initialize : function() {
|
||||||
|
this.parent();
|
||||||
this._fontFamily = "times";
|
this._fontFamily = "times";
|
||||||
};
|
},
|
||||||
|
|
||||||
objects.extend(web2d.peer.svg.TimesFont, web2d.peer.svg.Font);
|
getFontFamily :function () {
|
||||||
|
|
||||||
web2d.peer.svg.TimesFont.prototype.getFontFamily=function ()
|
|
||||||
{
|
|
||||||
return this._fontFamily;
|
return this._fontFamily;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.TimesFont.prototype.getFont=function ()
|
getFont : function () {
|
||||||
{
|
|
||||||
return web2d.Font.TIMES;
|
return web2d.Font.TIMES;
|
||||||
};
|
}
|
||||||
|
});
|
@ -16,20 +16,18 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.peer.svg.VerdanaFont = function()
|
web2d.peer.svg.VerdanaFont = new Class({
|
||||||
{
|
Extends: web2d.peer.svg.Font,
|
||||||
web2d.peer.svg.Font.call(this);
|
initialize : function() {
|
||||||
|
this.parent();
|
||||||
this._fontFamily = "verdana";
|
this._fontFamily = "verdana";
|
||||||
};
|
},
|
||||||
|
|
||||||
objects.extend(web2d.peer.svg.VerdanaFont, web2d.peer.svg.Font);
|
getFontFamily : function () {
|
||||||
|
|
||||||
web2d.peer.svg.VerdanaFont.prototype.getFontFamily=function ()
|
|
||||||
{
|
|
||||||
return this._fontFamily;
|
return this._fontFamily;
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.VerdanaFont.prototype.getFont=function ()
|
getFont : function () {
|
||||||
{
|
|
||||||
return web2d.Font.VERDANA;
|
return web2d.Font.VERDANA;
|
||||||
};
|
}
|
||||||
|
});
|
@ -16,19 +16,17 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.peer.svg.WorkspacePeer = function(element)
|
web2d.peer.svg.WorkspacePeer = new Class({
|
||||||
{
|
Extends: web2d.peer.svg.ElementPeer,
|
||||||
|
initialize : function(element) {
|
||||||
this._element = element;
|
this._element = element;
|
||||||
var svgElement = window.document.createElementNS(this.svgNamespace, 'svg');
|
var svgElement = window.document.createElementNS(this.svgNamespace, 'svg');
|
||||||
web2d.peer.svg.ElementPeer.call(this, svgElement);
|
this.parent(svgElement);
|
||||||
this._native.setAttribute("focusable", "true");
|
this._native.setAttribute("focusable", "true");
|
||||||
this._native.setAttribute("id", "workspace");
|
this._native.setAttribute("id", "workspace");
|
||||||
this._native.setAttribute("preserveAspectRatio", "true");
|
this._native.setAttribute("preserveAspectRatio", "true");
|
||||||
|
|
||||||
};
|
},
|
||||||
|
|
||||||
objects.extend(web2d.peer.svg.WorkspacePeer, web2d.peer.svg.ElementPeer);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* http://www.w3.org/TR/SVG/coords.html 7.7 The viewBox attribute
|
* http://www.w3.org/TR/SVG/coords.html 7.7 The viewBox attribute
|
||||||
@ -40,84 +38,71 @@ objects.extend(web2d.peer.svg.WorkspacePeer, web2d.peer.svg.ElementPeer);
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.peer.svg.WorkspacePeer.prototype.setCoordSize = function(width, height)
|
setCoordSize : function (width, height) {
|
||||||
{
|
|
||||||
var viewBox = this._native.getAttribute('viewBox');
|
var viewBox = this._native.getAttribute('viewBox');
|
||||||
var coords = [0,0,0,0];
|
var coords = [0,0,0,0];
|
||||||
if (viewBox != null)
|
if (viewBox != null) {
|
||||||
{
|
|
||||||
coords = viewBox.split(/ /);
|
coords = viewBox.split(/ /);
|
||||||
}
|
}
|
||||||
if ($defined(width))
|
if ($defined(width)) {
|
||||||
{
|
|
||||||
coords[2] = width;
|
coords[2] = width;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($defined(height))
|
if ($defined(height)) {
|
||||||
{
|
|
||||||
coords[3] = height;
|
coords[3] = height;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._native.setAttribute('viewBox', coords.join(" "));
|
this._native.setAttribute('viewBox', coords.join(" "));
|
||||||
this._native.setAttribute("preserveAspectRatio", "none");
|
this._native.setAttribute("preserveAspectRatio", "none");
|
||||||
web2d.peer.utils.EventUtils.broadcastChangeEvent(this, "strokeStyle");
|
web2d.peer.utils.EventUtils.broadcastChangeEvent(this, "strokeStyle");
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.WorkspacePeer.prototype.getCoordSize = function()
|
getCoordSize : function () {
|
||||||
{
|
|
||||||
var viewBox = this._native.getAttribute('viewBox');
|
var viewBox = this._native.getAttribute('viewBox');
|
||||||
var coords = [1,1,1,1];
|
var coords = [1,1,1,1];
|
||||||
if (viewBox != null)
|
if (viewBox != null) {
|
||||||
{
|
|
||||||
coords = viewBox.split(/ /);
|
coords = viewBox.split(/ /);
|
||||||
}
|
}
|
||||||
return {width:coords[2],height:coords[3]};
|
return {width:coords[2],height:coords[3]};
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.WorkspacePeer.prototype.setCoordOrigin = function(x, y)
|
setCoordOrigin : function (x, y) {
|
||||||
{
|
|
||||||
var viewBox = this._native.getAttribute('viewBox');
|
var viewBox = this._native.getAttribute('viewBox');
|
||||||
|
|
||||||
// ViewBox min-x ,min-y by default initializated with 0 and 0.
|
// ViewBox min-x ,min-y by default initializated with 0 and 0.
|
||||||
var coords = [0,0,0,0];
|
var coords = [0,0,0,0];
|
||||||
if (viewBox != null)
|
if (viewBox != null) {
|
||||||
{
|
|
||||||
coords = viewBox.split(/ /);
|
coords = viewBox.split(/ /);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($defined(x))
|
if ($defined(x)) {
|
||||||
{
|
|
||||||
coords[0] = x;
|
coords[0] = x;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($defined(y))
|
if ($defined(y)) {
|
||||||
{
|
|
||||||
coords[1] = y;
|
coords[1] = y;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._native.setAttribute('viewBox', coords.join(" "));
|
this._native.setAttribute('viewBox', coords.join(" "));
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.WorkspacePeer.prototype.appendChild = function(child)
|
appendChild : function (child) {
|
||||||
{
|
this.parent(child);
|
||||||
web2d.peer.svg.WorkspacePeer.superClass.appendChild.call(this, child);
|
|
||||||
web2d.peer.utils.EventUtils.broadcastChangeEvent(child, "onChangeCoordSize");
|
web2d.peer.utils.EventUtils.broadcastChangeEvent(child, "onChangeCoordSize");
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.WorkspacePeer.prototype.getCoordOrigin = function(child)
|
getCoordOrigin : function (child) {
|
||||||
{
|
|
||||||
var viewBox = this._native.getAttribute('viewBox');
|
var viewBox = this._native.getAttribute('viewBox');
|
||||||
var coords = [1,1,1,1];
|
var coords = [1,1,1,1];
|
||||||
if (viewBox != null)
|
if (viewBox != null) {
|
||||||
{
|
|
||||||
coords = viewBox.split(/ /);
|
coords = viewBox.split(/ /);
|
||||||
}
|
}
|
||||||
var x = parseFloat(coords[0]);
|
var x = parseFloat(coords[0]);
|
||||||
var y = parseFloat(coords[1]);
|
var y = parseFloat(coords[1]);
|
||||||
return {x:x,y:y};
|
return {x:x,y:y};
|
||||||
};
|
},
|
||||||
|
|
||||||
web2d.peer.svg.WorkspacePeer.prototype.getPosition = function()
|
getPosition : function () {
|
||||||
{
|
|
||||||
return {x:0,y:0};
|
return {x:0,y:0};
|
||||||
};
|
}
|
||||||
|
});
|
@ -31,9 +31,9 @@ web2d.peer.utils.EventUtils =
|
|||||||
}
|
}
|
||||||
|
|
||||||
var children = elementPeer.getChildren();
|
var children = elementPeer.getChildren();
|
||||||
for (var i = 0; i < children.length; i++)
|
for (var j = 0; j < children.length; j++)
|
||||||
{
|
{
|
||||||
var child = children[i];
|
var child = children[j];
|
||||||
web2d.peer.utils.EventUtils.broadcastChangeEvent(child, type);
|
web2d.peer.utils.EventUtils.broadcastChangeEvent(child, type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user