15 public class Graph { |
15 public class Graph { |
16 /**** parameters for layout ****/ |
16 /**** parameters for layout ****/ |
17 |
17 |
18 public int box_height=0; |
18 public int box_height=0; |
19 public int box_height2; |
19 public int box_height2; |
20 public int box_width; |
20 public Graphics gfx; |
21 public int box_width2; |
|
22 public int box_hspace; |
|
23 |
21 |
24 Vector vertices=new Vector(10,10); |
22 Vector vertices=new Vector(10,10); |
25 Vector splines=new Vector(10,10); |
23 Vector splines=new Vector(10,10); |
26 Vector numEdges=new Vector(10,10); |
24 Vector numEdges=new Vector(10,10); |
27 Vertex []vertices2; |
25 Vertex []vertices2; |
183 /* set layout parameters */ |
181 /* set layout parameters */ |
184 /********************************************************************/ |
182 /********************************************************************/ |
185 |
183 |
186 public void setParameters(Graphics g) { |
184 public void setParameters(Graphics g) { |
187 Enumeration e1=vertices.elements(); |
185 Enumeration e1=vertices.elements(); |
188 int h,w; |
186 int h; |
189 h=w=Integer.MIN_VALUE; |
187 h=Integer.MIN_VALUE; |
190 |
188 |
191 while (e1.hasMoreElements()) { |
189 while (e1.hasMoreElements()) { |
192 Box dim=((Vertex)(e1.nextElement())).getLabelSize(g); |
190 Box dim=((Vertex)(e1.nextElement())).getLabelSize(g); |
193 h=Math.max(h,dim.height); |
191 h=Math.max(h,dim.height); |
194 w=Math.max(w,dim.width); |
|
195 } |
192 } |
196 box_height=h+4; |
193 box_height=h+4; |
197 box_height2=box_height/2; |
194 box_height2=box_height/2; |
198 box_width=w+8; |
195 gfx=g; |
199 box_width2=box_width/2; |
|
200 box_hspace=box_width+20; |
|
201 } |
196 } |
202 |
197 |
203 /********************************************************************/ |
198 /********************************************************************/ |
204 /* topological sorting */ |
199 /* topological sorting */ |
205 /********************************************************************/ |
200 /********************************************************************/ |
536 Enumeration e1=layers.elements(); |
531 Enumeration e1=layers.elements(); |
537 Enumeration e3=numEdges.elements(); |
532 Enumeration e3=numEdges.elements(); |
538 while (e1.hasMoreElements()) { |
533 while (e1.hasMoreElements()) { |
539 Vector v1=(Vector)(e1.nextElement()); |
534 Vector v1=(Vector)(e1.nextElement()); |
540 Enumeration e2=v1.elements(); |
535 Enumeration e2=v1.elements(); |
541 int x=box_width2; |
536 int x=0; |
542 while (e2.hasMoreElements()) { |
537 while (e2.hasMoreElements()) { |
543 Vertex ve=(Vertex)(e2.nextElement()); |
538 Vertex ve=(Vertex)(e2.nextElement()); |
544 ve.setX(x); |
539 ve.setX(x+ve.box_width2()); |
545 ve.setY(y); |
540 ve.setY(y); |
546 x+=box_hspace; |
541 x+=ve.box_width()+20; |
547 } |
542 } |
548 y+=box_height+Math.max(35,7*(((Integer)(e3.nextElement())).intValue())); |
543 y+=box_height+Math.max(35,7*(((Integer)(e3.nextElement())).intValue())); |
549 } |
544 } |
550 } |
545 } |
551 |
546 |
741 layer=(Vector)(layers.elementAt(vx2.getDegree())); |
736 layer=(Vector)(layers.elementAt(vx2.getDegree())); |
742 k=layer.indexOf(vx2); |
737 k=layer.indexOf(vx2); |
743 vx2=(Vertex)((vx2.getChildren()).nextElement()); |
738 vx2=(Vertex)((vx2.getChildren()).nextElement()); |
744 x3=vx2.getX(); |
739 x3=vx2.getX(); |
745 y3=vx2.getY(); |
740 y3=vx2.getY(); |
746 // spc=(box_hspace-box_width)/3; |
|
747 // spc=box_height*3/4; |
|
748 spc=0; |
741 spc=0; |
749 leftx = k==0 /* || ((Vertex)(layer.elementAt(k-1))).isDummy() */ ? |
742 leftx = k==0 /* || ((Vertex)(layer.elementAt(k-1))).isDummy() */ ? |
750 Integer.MIN_VALUE: |
743 Integer.MIN_VALUE: |
751 ((Vertex)(layer.elementAt(k-1))).rightX()+spc; |
744 ((Vertex)(layer.elementAt(k-1))).rightX()+spc; |
752 rightx = k==layer.size()-1 /* || ((Vertex)(layer.elementAt(k+1))).isDummy() */ ? |
745 rightx = k==layer.size()-1 /* || ((Vertex)(layer.elementAt(k+1))).isDummy() */ ? |