[Bprocessor-commit] model/src/net/sourceforge/bprocessor/model Project.java, 1.113, 1.114
Status: Pre-Alpha
Brought to you by:
henryml
|
From: Nordholt <nor...@us...> - 2007-01-31 20:53:30
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv22441/src/net/sourceforge/bprocessor/model Modified Files: Project.java Log Message: added a list of static observers: those observers that should not be cleared on load/save Index: Project.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Project.java,v retrieving revision 1.113 retrieving revision 1.114 diff -C2 -d -r1.113 -r1.114 *** Project.java 30 Jan 2007 19:50:39 -0000 1.113 --- Project.java 31 Jan 2007 20:53:28 -0000 1.114 *************** *** 44,47 **** --- 44,50 ---- private List observers; + /** Static observers */ + private List staticObservers; + /** The scheduled observers */ private List scheduledObservers; *************** *** 136,139 **** --- 139,143 ---- new double[]{0, 0, 1}, Camera.PERSPECTIVE); observers = new LinkedList(); + staticObservers = new LinkedList(); scheduledObservers = new LinkedList(); world = new Space("World", Space.FUNCTIONAL, Space.PROJECT_LEVEL, true); *************** *** 207,210 **** --- 211,222 ---- /** + * Add static observer + * @param observer The observer + */ + public void addStaticObserver(Observer observer) { + staticObservers.add(observer); + } + + /** * Schedule adding an observer. Will be added at a safe time. * @param observer The observer *************** *** 234,237 **** --- 246,257 ---- observers.remove(observer); } + + /** + * Remove static observer + * @param observer The observer + */ + public void removeStaticObserver(Observer observer) { + staticObservers.remove(observer); + } /** *************** *** 240,244 **** */ public void changed(Object entity) { ! Iterator iter = observers.iterator(); updating = true; while (iter.hasNext()) { --- 260,267 ---- */ public void changed(Object entity) { ! // FIXME: temporary hack. There should be better handling of the observers ! List allObservers = new LinkedList(observers); ! allObservers.addAll(staticObservers); ! Iterator iter = allObservers.iterator(); updating = true; while (iter.hasNext()) { *************** *** 264,267 **** --- 287,291 ---- this.cameraId = 0; cs.setActive(true); + observers.clear(); } |