Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -r19ce8ed8c4540f6ee4da179b3cdec9715cdd860b -rdac4d818380d94154fc66ce00a46ce103d469170 Binary files differ Index: lams_common/src/java/org/lamsfoundation/lams/util/svg/SVGGenerator.java =================================================================== diff -u -r7a29f49a4519146b9e4fe7adb3f78174a26d8f01 -rdac4d818380d94154fc66ce00a46ce103d469170 --- lams_common/src/java/org/lamsfoundation/lams/util/svg/SVGGenerator.java (.../SVGGenerator.java) (revision 7a29f49a4519146b9e4fe7adb3f78174a26d8f01) +++ lams_common/src/java/org/lamsfoundation/lams/util/svg/SVGGenerator.java (.../SVGGenerator.java) (revision dac4d818380d94154fc66ce00a46ce103d469170) @@ -73,7 +73,6 @@ */ private void initializeSvgDocument() { - // Create an SVG document. DOMImplementation impl = SVGDOMImplementation.getDOMImplementation(); doc = (SVGDocument) impl.createDocument(SVG_NAMESPACE, "svg", null); @@ -110,6 +109,18 @@ this.adjustedDocumentWidth = width; } + public Dimension getDocumentWidthHeight() { + + Element svg = doc.getDocumentElement(); + String widthStr = svg.getAttributeNS(null, "width"); + String heightStr = svg.getAttributeNS(null, "height"); + + int width = Integer.parseInt(widthStr); + int height = Integer.parseInt(heightStr); + + return new Dimension(width, height); + } + /** * Generates SVG image based on learning design provided. * @@ -169,8 +180,8 @@ double a = (toIntersection.getX() - fromIntersection.getX()); double b = (toIntersection.getY() - fromIntersection.getY()); - double yArrowShift = 5* b/Math.sqrt(a*a + b*b); - double xArrowShift = 5* a/Math.sqrt(a*a + b*b); + double yArrowShift = (a*a + b*b == 0) ? 0 : 5* b/Math.sqrt(a*a + b*b); + double xArrowShift = (a*a + b*b == 0) ? 0 : 5* a/Math.sqrt(a*a + b*b); // Create the arrowhead Element arrowhead = doc.createElementNS(SVG_NAMESPACE, "line"); arrowhead.setAttributeNS(null, "id", "arrowhead_" + transition.getFromActivityID() + "_to_" + transition.getToActivityID()); @@ -536,11 +547,11 @@ for (ActivityTreeNode node : nodes) { AuthoringActivityDTO activity = node.getActivity(); if (activity.getParentActivityID() == null) { - int leftActivityPoint = activity.getxCoord().intValue(); + int leftActivityPoint = node.getActivityCoordinates().x; if (leftActivityPoint < minX) { minX = leftActivityPoint; } - int topActivityPoint = activity.getyCoord().intValue(); + int topActivityPoint = node.getActivityCoordinates().y; if (topActivityPoint < minY) { minY = topActivityPoint; }