[Pfc-prolog-cvs] prolix/src/org/asturlinux/frade/prolix/web/servlets SvgGenerator.java,1.5,1.6
Status: Beta
Brought to you by:
ivanfrade
From: <iva...@us...> - 2003-08-22 11:31:43
|
Update of /cvsroot/pfc-prolog/prolix/src/org/asturlinux/frade/prolix/web/servlets In directory sc8-pr-cvs1:/tmp/cvs-serv11651 Modified Files: SvgGenerator.java Log Message: Fixed problem with SVG size. Index: SvgGenerator.java =================================================================== RCS file: /cvsroot/pfc-prolog/prolix/src/org/asturlinux/frade/prolix/web/servlets/SvgGenerator.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** SvgGenerator.java 21 Aug 2003 18:57:17 -0000 1.5 --- SvgGenerator.java 22 Aug 2003 11:31:39 -0000 1.6 *************** *** 23,27 **** import org.asturlinux.frade.prolix.web.servlets.IdFactory; - //FIXME Can be passed xml String in constructor??? public class SvgGenerator { --- 23,26 ---- *************** *** 103,107 **** public static final String solutionNodeColor = "#d8d600"; ! public int currentNodeSizeX = nodeSizeX; private Dimension drawNode(Node raiz, String number, --- 102,127 ---- public static final String solutionNodeColor = "#d8d600"; ! private Dimension mySize(Node node) ! { ! Dimension result = new Dimension(nodeSizeX,nodeSizeY); ! if (node.getAttributes() == null) ! return result; ! ! if (node.getNodeName().equals("solution")) ! { ! //Node[] subst = filterSubstitutionNodes(node.getChildNodes()); ! //int numberOfSubst = subst.length; ! return result; ! } ! ! Node label = node.getAttributes().getNamedItem("label"); ! if (label != null) ! { ! String text = label.getNodeValue(); ! int thisNodeXSize = Math.max(text.length() * 7, nodeSizeX); ! result.width = thisNodeXSize; ! } ! return result; ! } private Dimension drawNode(Node raiz, String number, *************** *** 112,116 **** //System.out.println("Looking for transitions"); ! Node[] result2 = search(raiz,"transition","origin",number); Dimension boundingBox = new Dimension(0,0); --- 132,136 ---- //System.out.println("Looking for transitions"); ! Node[] transitions = search(raiz,"transition","origin",number); Dimension boundingBox = new Dimension(0,0); *************** *** 118,124 **** Vector childBoxes = new Vector(); ! for (int i = 0; i < result2.length ; i++) { ! String destiny = result2[i].getAttributes().getNamedItem("destiny").getNodeValue(); Point childPoint = new Point(leftTopCorner.x + boundingBox.width, childYBaseLine); --- 138,144 ---- Vector childBoxes = new Vector(); ! for (int i = 0; i < transitions.length ; i++) { ! String destiny = transitions[i].getAttributes().getNamedItem("destiny").getNodeValue(); Point childPoint = new Point(leftTopCorner.x + boundingBox.width, childYBaseLine); *************** *** 132,140 **** boundingBox.width = Math.max(boundingBox.width, ! Math.max(nodeSizeX, currentNodeSizeX)); boundingBox.height += nodeSizeY + marginY; // System.out.println("Aqui pinto la cajita"); ! Point nodePoint = new Point(boundingBox.width / 2 + leftTopCorner.x , leftTopCorner.y ); --- 152,160 ---- boundingBox.width = Math.max(boundingBox.width, ! mySize(result).width); boundingBox.height += nodeSizeY + marginY; // System.out.println("Aqui pinto la cajita"); ! Point nodePoint = new Point((boundingBox.width - marginX)/2 + leftTopCorner.x , leftTopCorner.y ); *************** *** 177,189 **** try { ! Node label = node.getAttributes().getNamedItem("label"); ! String text; ! if (label != null) ! { ! text = label.getNodeValue(); ! currentNodeSizeX = Math.max(text.length() * 7, nodeSizeX); ! } ! ! output.write("<rect \n " + " width=\"" + currentNodeSizeX + "\" \n" --- 197,202 ---- try { ! int currentNodeSizeX = mySize(node).width; ! //the poing i receive is really de middle of boundingBox output.write("<rect \n " + " width=\"" + currentNodeSizeX + "\" \n" *************** *** 196,200 **** + " /> \n"); ! if (label != null) output.write("<text \n" --- 209,213 ---- + " /> \n"); ! Node label = node.getAttributes().getNamedItem("label"); if (label != null) output.write("<text \n" *************** *** 234,237 **** --- 247,253 ---- try { + + int currentNodeSizeX = mySize(node).width; + output.write("<rect \n " + " width=\"" + currentNodeSizeX + "\" \n" *************** *** 246,250 **** Node[] subst = filterSubstitutionNodes(node.getChildNodes()); int numberOfSubst = subst.length; - //System.out.println("DEBUG: Tiene " + numberOfSubst + " substitutiones"); float substYPoint = leftTopPoint.y + nodeSizeY/2; --- 262,265 ---- *************** *** 332,336 **** StringWriter svg = new StringWriter(); ! Dimension total = drawNode(document,"1",new Point(30,30),svg); setSize(total); //System.out.println("Dimensiones totales: " + total.width + " " --- 347,351 ---- StringWriter svg = new StringWriter(); ! Dimension total = drawNode(document,"1",new Point(10,10),svg); setSize(total); //System.out.println("Dimensiones totales: " + total.width + " " |