Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2428/src/net/sourceforge/bprocessor/model
Modified Files:
Project.java Entity.java
Added Files:
Observer.java
Log Message:
An observer mechanism has been implmented. Very simple change-propagation.
--- NEW FILE: Observer.java ---
//---------------------------------------------------------------------------------
// $Id: Observer.java,v 1.1 2006/01/03 13:03:32 henryml Exp $
//
// Copyright (c) 2005 The BProcessor Team (http://bprocessor.sourceforge.net)
// Released under the Lesser GNU Public License v2.1
//---------------------------------------------------------------------------------
package net.sourceforge.bprocessor.model;
/**
* The Observer interface is for observing changes to entities
* in the project. When an entity is changed, the update message
* is send to all observers with the entity supplied as
* argument.
*/
public interface Observer {
/**
* Update
* @param entity Changed entity
*/
public void update(Entity entity);
}
Index: Entity.java
===================================================================
RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Entity.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Entity.java 19 Dec 2005 19:37:54 -0000 1.1
--- Entity.java 3 Jan 2006 13:03:32 -0000 1.2
***************
*** 43,46 ****
--- 43,53 ----
return "Entity";
}
+
+ /**
+ * Tell observers that this entity has changed
+ */
+ public void changed() {
+ Project.getInstance().changed(this);
+ }
}
Index: Project.java
===================================================================
RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Project.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** Project.java 22 Dec 2005 10:35:01 -0000 1.12
--- Project.java 3 Jan 2006 13:03:32 -0000 1.13
***************
*** 10,13 ****
--- 10,15 ----
import java.util.HashSet;
import java.util.Iterator;
+ import java.util.LinkedList;
+ import java.util.List;
import java.util.Set;
***************
*** 30,33 ****
--- 32,38 ----
private static Project instance;
+ /** The observers */
+ private List observers;
+
/**
* Get the instance
***************
*** 40,43 ****
--- 45,85 ----
return instance;
}
+
+ /**
+ * Constructor for Project
+ */
+ public Project() {
+ super();
+ observers = new LinkedList();
+ }
+
+ /**
+ * Add observer
+ * @param observer The observer
+ */
+ public void addObserver(Observer observer) {
+ observers.add(observer);
+ }
+
+ /**
+ * Remove observer
+ * @param observer The observer
+ */
+ public void removeObserver(Observer observer) {
+ observers.remove(observer);
+ }
+
+ /**
+ * Tell observers to update because an entity has changed
+ * @param entity The changed entity
+ */
+ public void changed(Entity entity) {
+ Iterator iter = observers.iterator();
+ while (iter.hasNext()) {
+ Observer current = (Observer) iter.next();
+ current.update(entity);
+ }
+ }
+
/**
* Clear all objects
|