lib/browser/GraphBrowser/Vertex.java
changeset 17771 1e07f6ab3118
parent 14981 e73f8140af78
child 33686 8e33ca8832b1
equal deleted inserted replaced
17770:f13472d00645 17771:1e07f6ab3118
   132 	/********************************************************************/
   132 	/********************************************************************/
   133 	/*                   get all predecessor vertices                   */
   133 	/*                   get all predecessor vertices                   */
   134 	/********************************************************************/
   134 	/********************************************************************/
   135 
   135 
   136 	public Vector getPreds() {
   136 	public Vector getPreds() {
   137 		Vector v1=new Vector(10,10);
   137 	    Vector preds=new Vector(10,10);
   138 		Vertex vx1,vx2;
   138 	    Vector todo=(Vector)(parents.clone());
   139 		Enumeration e1,e2;
   139 	    Vertex vx1,vx2;
   140 
   140 	    Enumeration e;
   141 		e1=getParents();
   141 
   142 		while (e1.hasMoreElements()) {
   142 	    while (!todo.isEmpty()) {
   143 			vx1=(Vertex)(e1.nextElement());
   143 		vx1=(Vertex)(todo.lastElement());
   144 			if (v1.indexOf(vx1)<0) v1.addElement(vx1);
   144 		todo.removeElementAt(todo.size()-1);
   145 			e2=vx1.getPreds().elements();
   145 		preds.addElement(vx1);
   146 			while (e2.hasMoreElements()) {
   146 		e=vx1.parents.elements();
   147 				vx2=(Vertex)(e2.nextElement());
   147 		while (e.hasMoreElements()) {
   148 				if (v1.indexOf(vx2)<0) v1.addElement(vx2);			
   148 		    vx2=(Vertex)(e.nextElement());
   149 			}
   149 		    if (preds.indexOf(vx2)<0 && todo.indexOf(vx2)<0)
       
   150 			todo.addElement(vx2);
   150 		}
   151 		}
   151 
   152 	    }
   152 		return v1;
   153 
       
   154 	    return preds;
   153 	}
   155 	}
   154 
   156 
   155 	/********************************************************************/
   157 	/********************************************************************/
   156 	/*                     get all successor vertices                   */
   158 	/*                     get all successor vertices                   */
   157 	/********************************************************************/
   159 	/********************************************************************/
   158 
   160 
   159 	public Vector getSuccs() {
   161 	public Vector getSuccs() {
   160 		Vector v1=new Vector(10,10);
   162 	    Vector succs=new Vector(10,10);
   161 		Vertex vx1,vx2;
   163 	    Vector todo=(Vector)(children.clone());
   162 		Enumeration e1,e2;
   164 	    Vertex vx1,vx2;
   163 
   165 	    Enumeration e;
   164 		e1=getChildren();
   166 
   165 		while (e1.hasMoreElements()) {
   167 	    while (!todo.isEmpty()) {
   166 			vx1=(Vertex)(e1.nextElement());
   168 		vx1=(Vertex)(todo.lastElement());
   167 			if (v1.indexOf(vx1)<0) v1.addElement(vx1);
   169 		todo.removeElementAt(todo.size()-1);
   168 			e2=vx1.getSuccs().elements();
   170 		succs.addElement(vx1);
   169 			while (e2.hasMoreElements()) {
   171 		e=vx1.children.elements();
   170 				vx2=(Vertex)(e2.nextElement());
   172 		while (e.hasMoreElements()) {
   171 				if (v1.indexOf(vx2)<0) v1.addElement(vx2);			
   173 		    vx2=(Vertex)(e.nextElement());
   172 			}
   174 		    if (succs.indexOf(vx2)<0 && todo.indexOf(vx2)<0)
       
   175 			todo.addElement(vx2);
   173 		}
   176 		}
   174 
   177 	    }
   175 		return v1;
   178 
       
   179 	    return succs;
   176 	}
   180 	}
   177 
   181 
   178 	public void setX(int x) {this.x=x;}
   182 	public void setX(int x) {this.x=x;}
   179 
   183 
   180 	public void setY(int y) {this.y=y;}
   184 	public void setY(int y) {this.y=y;}