[Bprocessor-commit] model/src/net/sourceforge/bprocessor/model Observer.java,NONE,1.1 Project.java,1
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2006-01-03 13:03:40
|
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 |