123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- exports.prepareElements = function(JSONcontainer) {
-
- for (var elementType in JSONcontainer) {
- if (JSONcontainer.hasOwnProperty(elementType)) {
- JSONcontainer[elementType].redundant = JSONcontainer[elementType].used;
- JSONcontainer[elementType].used = [];
- }
- }
- };
- exports.cleanupElements = function(JSONcontainer) {
-
- for (var elementType in JSONcontainer) {
- if (JSONcontainer.hasOwnProperty(elementType)) {
- if (JSONcontainer[elementType].redundant) {
- for (var i = 0; i < JSONcontainer[elementType].redundant.length; i++) {
- JSONcontainer[elementType].redundant[i].parentNode.removeChild(JSONcontainer[elementType].redundant[i]);
- }
- JSONcontainer[elementType].redundant = [];
- }
- }
- }
- };
- exports.resetElements = function(JSONcontainer) {
- exports.prepareElements(JSONcontainer);
- exports.cleanupElements(JSONcontainer);
- exports.prepareElements(JSONcontainer);
- };
- exports.getSVGElement = function (elementType, JSONcontainer, svgContainer) {
- var element;
-
- if (JSONcontainer.hasOwnProperty(elementType)) {
-
- if (JSONcontainer[elementType].redundant.length > 0) {
- element = JSONcontainer[elementType].redundant[0];
- JSONcontainer[elementType].redundant.shift();
- }
- else {
-
- element = document.createElementNS('http://www.w3.org/2000/svg', elementType);
- svgContainer.appendChild(element);
- }
- }
- else {
-
- element = document.createElementNS('http://www.w3.org/2000/svg', elementType);
- JSONcontainer[elementType] = {used: [], redundant: []};
- svgContainer.appendChild(element);
- }
- JSONcontainer[elementType].used.push(element);
- return element;
- };
- exports.getDOMElement = function (elementType, JSONcontainer, DOMContainer, insertBefore) {
- var element;
-
- if (JSONcontainer.hasOwnProperty(elementType)) {
-
- if (JSONcontainer[elementType].redundant.length > 0) {
- element = JSONcontainer[elementType].redundant[0];
- JSONcontainer[elementType].redundant.shift();
- }
- else {
-
- element = document.createElement(elementType);
- if (insertBefore !== undefined) {
- DOMContainer.insertBefore(element, insertBefore);
- }
- else {
- DOMContainer.appendChild(element);
- }
- }
- }
- else {
-
- element = document.createElement(elementType);
- JSONcontainer[elementType] = {used: [], redundant: []};
- if (insertBefore !== undefined) {
- DOMContainer.insertBefore(element, insertBefore);
- }
- else {
- DOMContainer.appendChild(element);
- }
- }
- JSONcontainer[elementType].used.push(element);
- return element;
- };
- exports.drawPoint = function(x, y, groupTemplate, JSONcontainer, svgContainer, labelObj) {
- var point;
- if (groupTemplate.style == 'circle') {
- point = exports.getSVGElement('circle', JSONcontainer, svgContainer);
- point.setAttributeNS(null, "cx", x);
- point.setAttributeNS(null, "cy", y);
- point.setAttributeNS(null, "r", 0.5 * groupTemplate.size);
- }
- else {
- point = exports.getSVGElement('rect', JSONcontainer, svgContainer);
- point.setAttributeNS(null, "x", x - 0.5 * groupTemplate.size);
- point.setAttributeNS(null, "y", y - 0.5 * groupTemplate.size);
- point.setAttributeNS(null, "width", groupTemplate.size);
- point.setAttributeNS(null, "height", groupTemplate.size);
- }
- if (groupTemplate.styles !== undefined) {
- point.setAttributeNS(null, "style", groupTemplate.styles);
- }
- point.setAttributeNS(null, "class", groupTemplate.className + " vis-point");
-
- if (labelObj) {
- var label = exports.getSVGElement('text', JSONcontainer, svgContainer);
- if (labelObj.xOffset) {
- x = x + labelObj.xOffset;
- }
- if (labelObj.yOffset) {
- y = y + labelObj.yOffset;
- }
- if (labelObj.content) {
- label.textContent = labelObj.content;
- }
- if (labelObj.className) {
- label.setAttributeNS(null, "class", labelObj.className + " vis-label");
- }
- label.setAttributeNS(null, "x", x);
- label.setAttributeNS(null, "y", y);
- }
- return point;
- };
- exports.drawBar = function (x, y, width, height, className, JSONcontainer, svgContainer, style) {
- if (height != 0) {
- if (height < 0) {
- height *= -1;
- y -= height;
- }
- var rect = exports.getSVGElement('rect',JSONcontainer, svgContainer);
- rect.setAttributeNS(null, "x", x - 0.5 * width);
- rect.setAttributeNS(null, "y", y);
- rect.setAttributeNS(null, "width", width);
- rect.setAttributeNS(null, "height", height);
- rect.setAttributeNS(null, "class", className);
- if (style) {
- rect.setAttributeNS(null, "style", style);
- }
- }
- };
|