Hello,
I tried using elementFinished in makeSVG to change all the white stroke to black stroke in a graphobject. But I´m obtaining this:
At the Diagram i have this:
This is my makeSVG method:
makeSvg() {
console.log('svg');
var svg = this.myDiagram.makeSvg({
scale: 1,
elementFinished: function(graphObject, SVGElement) {
SVGElement.setAttribute("background", "white");
SVGElement.setAttribute("stroke", "black");
SVGElement.setAttribute("fill", "black");
}
});
var svgstr = new XMLSerializer().serializeToString(svg);
var blob = new Blob([svgstr], {
type: "image/svg+xml"
});
this.util.myCallback(blob);
}
And this is the figure:
go.Shape.defineFigureGenerator("Switch", function (shape, w, h) {
// this figure takes one parameter, the size of the corner
h = w / 2;
if (shape !== null) {
var param1 = shape.parameter1;
if (!isNaN(param1) && param1 >= 0) p1 = param1; // can't be negative or NaN
}
var centerX = w / 2;
var centerY = h;
var inputX = 0;
var inputY = h;
var tdX = w;
var tdY = h;
var tiX = w;
var tiY = 0;
if (shape != null && shape.part !== null) {
var pts = shape.part.data.point[0];
if (pts.startX !== "" && pts.id === "input") {
centerX = pts.startX;
centerY = pts.startY;
inputX = pts.endX;
inputY = pts.endY;
}
pts = shape.part.data.point[1];
if (pts.startX !== "" && pts.id === "td") {
tdX = pts.endX;
tdY = pts.endY;
}
pts = shape.part.data.point[2];
if (pts.startX !== "" && pts.id === "ti") {
tiX = pts.endX;
tiY = pts.endY;
}
}
var geo = new go.Geometry();
// a single figure consisting of straight lines and quarter-circle arcs
var input = new go.PathSegment(go.PathSegment.Line, inputX, inputY).close();
input.name = "input";
var td = new go.PathSegment(go.PathSegment.Line, tdX, tdY).close();
td.name = "td";
var ti = new go.PathSegment(go.PathSegment.Line, tiX, tiY).close();
ti.name = "ti";
geo.add(new go.PathFigure(centerX, centerY)
.add(input));
geo.add(new go.PathFigure(centerX, centerY)
.add(ti));
geo.add(new go.PathFigure(centerX, centerY)
.add(td));
// don't intersect with two top corners when used in an "Auto" Panel
return geo;
});
Any idea what is the problem?
Greetings