/* * Graph.java * * Created on December 3, 2003, 1:11 AM */ /** * * @author linyuan */ public class Graph { private java.util.List vertices; private java.util.List edges; private java.util.List labels; private java.awt.Color edgeColor=null; private java.awt.Color vertexColor=null; /** Creates a new instance of Graph */ public Graph() { vertices=new java.util.LinkedList(); edges=new java.util.LinkedList(); labels=new java.util.LinkedList(); } void add(Label l){ labels.add(l); } void add(Vertex u) { vertices.add(u); } void add(Edge e) { if(edgeColor!=null) e.color=edgeColor; edges.add(e); e.u.outedges.add(e); e.v.inedges.add(e); } public void draw(java.awt.Graphics g) { int n = edges.size(); int j; for (j=0;j0){ delete((Edge) u.inedges.get(0)); } while(u.outedges.size()>0){ delete((Edge) u.outedges.get(0)); } vertices.remove(u); } void delete(Edge e) { e.u.outedges.remove(e); e.v.inedges.remove(e); edges.remove(e); } public Edge hitEdge(int x, int y){ int limit=8; Edge e; int n = edges.size(); java.util.List hits=new java.util.LinkedList(); for (int j=0;j1) { hits.clear(); limit--; for (int j=0;j=l.x && x<=l.x+l.getWidth() && y>=l.y-l.getHeight() && y<=l.y) return l; } return null; } public int getN(){ return vertices.size(); } public int getE(){ return edges.size(); } public Vertex getVertex(int i){ return (Vertex) vertices.get(i); } public void clear(){ edges.clear(); vertices.clear(); } public void setDefaultEdgeColor(java.awt.Color color){ edgeColor=color; } }