Index: lams_build/lib/lams/lams.jar =================================================================== RCS file: /usr/local/cvsroot/lams_build/lib/lams/lams.jar,v diff -u -r1.331 -r1.332 Binary files differ Index: lams_common/src/java/org/lamsfoundation/lams/util/svg/SVGGenerator.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/util/svg/SVGGenerator.java,v diff -u -r1.8 -r1.9 --- lams_common/src/java/org/lamsfoundation/lams/util/svg/SVGGenerator.java 13 Sep 2010 18:05:39 -0000 1.8 +++ lams_common/src/java/org/lamsfoundation/lams/util/svg/SVGGenerator.java 14 Sep 2010 11:27:00 -0000 1.9 @@ -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; }