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();
}
|