Update of /cvsroot/bprocessor/facade/src/net/sourceforge/bprocessor/facade/modellor
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv4803/src/net/sourceforge/bprocessor/facade/modellor
Modified Files:
NetFacadeModellor.java
Log Message:
being more specific about when the facade should update (for performance)
Index: NetFacadeModellor.java
===================================================================
RCS file: /cvsroot/bprocessor/facade/src/net/sourceforge/bprocessor/facade/modellor/NetFacadeModellor.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** NetFacadeModellor.java 31 Jan 2007 21:03:34 -0000 1.13
--- NetFacadeModellor.java 6 Feb 2007 16:20:32 -0000 1.14
***************
*** 18,21 ****
--- 18,22 ----
import net.sourceforge.bprocessor.model.Attribute;
import net.sourceforge.bprocessor.model.Edge;
+ import net.sourceforge.bprocessor.model.Geometric;
import net.sourceforge.bprocessor.model.Geometry;
import net.sourceforge.bprocessor.model.Net;
***************
*** 128,139 ****
*/
public void update(Object entity) {
! if (space.getModellor() == this) { //sanity check
regenerate();
- } else {
- Project.getInstance().removeObserver(this);
- space = null;
- frame = null;
- front = null;
- windows = null;
}
}
--- 129,154 ----
*/
public void update(Object entity) {
! boolean update = false;
! if (entity instanceof Geometric) {
! Geometric geo = (Geometric)entity;
! if (geo == net || geo.getOwner() == net) {
! update = true;
! }
! }
! if (!update ||
! entity == this ||
! entity == Project.getInstance()) {
! update = true;
! }
!
! if (!space.getEnvelope().contains(front)) {
! update = false;
! }
! if (space.getModellor() != this) { //sanity check
! update = false;
! delete();
! }
! if (update) {
regenerate();
}
}
***************
*** 144,148 ****
public void delete() {
Project.getInstance().removeObserver(this);
! space.setModellor(null);
}
--- 159,170 ----
public void delete() {
Project.getInstance().removeObserver(this);
! if (space.getModellor() == this) {
! space.setModellor(null);
! }
! space = null;
! net = null;
! frame = null;
! front = null;
! windows = null;
}
|