use of com.willwinder.ugs.nbp.designer.entities.AbstractEntity in project Universal-G-Code-Sender by winder.
the class SvgReader method walk.
private void walk(Node node, Group group, AffineTransform transform, int level) {
GraphicsNode graphicsNode = svgCanvas.getUpdateManager().getBridgeContext().getGraphicsNode(node);
if (graphicsNode != null) {
LOGGER.finest(StringUtils.leftPad("", level, "\t") + graphicsNode);
AffineTransform groupTransform = new AffineTransform(transform);
if (graphicsNode.getTransform() != null) {
if (!graphicsNode.getTransform().isIdentity()) {
groupTransform.concatenate(graphicsNode.getTransform());
} else {
}
}
if (graphicsNode instanceof CompositeGraphicsNode) {
NodeList childNodes = node.getChildNodes();
Group childGroup = group;
if (((CompositeGraphicsNode) graphicsNode).getChildren().size() > 1) {
childGroup = new Group();
if (node.getAttributes() != null && node.getAttributes().getNamedItem("id") != null) {
Node id = node.getAttributes().getNamedItem("id");
childGroup.setName(childGroup.getName() + " (" + id.getFirstChild().getNodeValue() + ")");
}
group.addChild(childGroup);
}
for (int i = 0; i < childNodes.getLength(); i++) {
walk(childNodes.item(i), childGroup, groupTransform, level + 1);
}
} else if (graphicsNode instanceof ShapeNode) {
ShapeNode shapeNode = (ShapeNode) graphicsNode;
Shape shape = shapeNode.getShape();
AbstractEntity createdShape = null;
if (shape instanceof ExtendedGeneralPath) {
createdShape = parsePath((ExtendedGeneralPath) shape);
} else if (shape instanceof Rectangle2D) {
createdShape = parseRectangle((Rectangle2D) shape);
} else if (shape instanceof Ellipse2D) {
createdShape = parseEllipse((Ellipse2D) shape);
} else {
LOGGER.finest(shape.toString());
}
if (createdShape != null) {
Node id = node.getAttributes().getNamedItem("id");
if (id != null) {
createdShape.setName(createdShape.getName() + " (" + id.getFirstChild().getNodeValue() + ")");
}
Node desc = node.getAttributes().getNamedItem("desc");
if (desc != null) {
createdShape.setDescription(desc.getFirstChild().getNodeValue());
}
createdShape.setTransform(groupTransform);
group.addChild(createdShape);
}
}
}
}
Aggregations