Process manager without undo/redo.
- By Andreas Bäcker
- November 15, 2000
JAVA PRIMER
JCommands: A Flexible Undo Framework for Java
Andreas Bäcker
Listing 1. Process manager without undo/redo.
class ProcessManager extends java.util.Observable {
// The notification message identifiers
public static final int ADDED = 0;
public static final int REMOVED = 1;
// The collection of process descriptors
private Vector processes;
// Adds a descriptor and notifies observers
public void add(ProcessDesc p) {
processes.addElement(p);
setChanged(); // raises the changed flag
notifyObservers(new CmdArg1(ADDED, p));
}
// Removes a descriptor and notifies
// the process manager's observers
public void remove(ProcessDesc p) {
if( processes.removeObject(p) ) {
setChanged();
notifyObservers(new CmdArg1(REMOVED, p));
}
}
// Removes a number of descriptors
public void removeMany(Collection c) {
Iterator it = c.iterator();
while( it.hasNext() )
remove((ProcessDesc)it.next());
}
}