paint method
Implementation
@override
String paint() {
StringPathProxy pathProxy = StringPathProxy('path$_elementId');
writeSvgPathDataToPath(_element.getAttribute('d'), pathProxy);
var color = ColorParser(_element.getAttribute('fill'));
var colorStr = color.parse();
String fillType;
switch (_element.getAttribute('fill-rule')) {
case 'evenodd':
fillType = 'PathFillType.evenOdd';
break;
case 'nonzero':
fillType = 'PathFillType.nonZero';
break;
default:
fillType = '';
}
StringBuffer result = StringBuffer();
result.writeln('Paint paint$_elementId = Paint();');
if (colorStr != null) {
result.writeln('paint$_elementId.color = ${color.parse()};');
}
var stroke = StrokeParser(
_element.getAttribute('stroke'),
_element.getAttribute('stroke-width'),
_element.getAttribute('stroke-linecap'));
if (stroke.isStroke) {
result.writeln('paint$_elementId.style = PaintingStyle.stroke;');
result.writeln('paint$_elementId.color = ${stroke.strokeColor};');
if (stroke.strokeWidth != null) {
result.writeln('paint$_elementId.strokeWidth = ${stroke.strokeWidth};');
}
if (stroke.strokeCap != null) {
result.writeln('paint$_elementId.strokeCap = ${stroke.strokeCap};');
}
}
result.writeln('var path$_elementId = Path();');
if (fillType.isNotEmpty) {
result.writeln('path$_elementId.fillType = $fillType;');
}
result.writeln(pathProxy.pathBuffer.toString());
result.writeln('canvas.drawPath(path$_elementId, paint$_elementId);');
return result.toString();
}