package structure; import java.util.*; import java.awt.*; import javax.swing.*; public class Graph { Vector nodes; Vector edges; public String title; public Graph(String s) { title = s; nodes = new Vector(); edges = new Vector(); } public Node findNode(String lbl) { for (int i = 0 ; i < nodes.size() ; i++) { if (((Node)nodes.elementAt(i)).lbl.equals(lbl)) { return (Node)nodes.elementAt(i); } } return null; } public Node addNode(String lbl, String[] text, Color nclr, Color bclr, Color tclr, double y, double x,String[] s,int shape) { Node n = new Node(); n.x = x*100; n.y = y*100; n.lbl = lbl; n.text=text; n.shape=shape; n.nclr=nclr; n.bclr=bclr; n.tclr=tclr; if(s!=null) n.addBubbleAttr(s,Color.yellow); nodes.addElement(n); return n; } public Edge addEdge(String from, String to, String lbl, String text, Color c, int type){ Node from1 = findNode(from); Node to1 = findNode(to); if((from1==null)||(to1==null)) { System.out.println("error"); return null; } Edge e = new Edge(); e.from = from1; e.to = to1; e.text = text; e.clr = c; e.type = type; e.lbl = lbl; if(text!=null) e.addBubbleAttr(text,Color.cyan); edges.addElement(e); return e; } public Node getNode(int i){ return((Node)nodes.elementAt(i)); } public Edge getEdge(int i){ return((Edge)edges.elementAt(i)); } public int getEdgeSize(){ return(edges.size()); } public int getNodeSize(){ return(nodes.size()); } public void paintComponent(Graphics g,int npos,Vector epos){ int i, j; for (i = 0 ; i < nodes.size() ; i++){ ((Node)nodes.elementAt(i)).paintComponent(g); } for (i = 0 ; i < edges.size() ; i++){ ((Edge)edges.elementAt(i)).paintComponent(g); } if(npos!=-1) ((Node)nodes.elementAt(npos)).drawBubble(g); for (i=0;i