/*******************************************************************************
* Copyright (C) 2003-2007, 2013, Guillaume Brocker
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Guillaume Brocker - Initial API and implementation
*
******************************************************************************/
package eclox.ui.editor.editors;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
/**
* Implements the IEditor for all listener management and notification
* aspects
*
* @author Guillaume Brocker
*/
public abstract class AbstractEditor implements IEditor {
/**
* the registery of listeners
*/
private Collection<IEditorListener> listeners = new HashSet<IEditorListener>();
/**
* @see eclox.ui.editor.editors.IEditor#addListener(eclox.ui.editor.editors.IEditorListener)
*/
public void addListener(IEditorListener listener) {
listeners.add(listener);
}
/**
* @see eclox.ui.editor.editors.IEditor#removeListener(eclox.ui.editor.editors.IEditorListener)
*/
public void removeListener(IEditorListener listener) {
listeners.remove(listener);
}
/**
* Notifies registered listeners that the dirty state of the editor changed.
*/
protected void fireEditorChanged() {
Iterator<IEditorListener> i = listeners.iterator();
while( i.hasNext() ) {
IEditorListener listener = (IEditorListener) i.next();
listener.editorChanged(this);
}
}
}