/*******************************************************************************
* Copyright (c) 2006-2013, Cloudsmith Inc.
* The code, documentation and other materials contained herein have been
* licensed under the Eclipse Public License - v 1.0 by the copyright holder
* listed above, as the Initial Contributor under such license. The text of
* such license is available at www.eclipse.org.
******************************************************************************/
package org.eclipse.buckminster.ui.general.editor.simple;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
/**
* @author Karel Brezina
*
*/
public class Widgetin implements IWidgetin {
private Object data = null;
private final Map<Integer, List<Listener>> listenersMap = new HashMap<Integer, List<Listener>>();
@Override
public void addListener(int eventType, Listener listener) {
List<Listener> eventListeners = listenersMap.get(Integer.valueOf(eventType));
if (eventListeners == null) {
eventListeners = new ArrayList<Listener>();
listenersMap.put(Integer.valueOf(eventType), eventListeners);
}
if (!eventListeners.contains(listener)) {
eventListeners.add(listener);
}
}
@Override
public Object getData() {
return data;
}
@Override
public void notifyListeners(int eventType, Event event) {
List<Listener> eventListeners = listenersMap.get(Integer.valueOf(eventType));
if (eventListeners != null) {
for (Listener listener : eventListeners) {
listener.handleEvent(event);
}
}
}
@Override
public void removeListener(int eventType, Listener listener) {
listenersMap.remove(Integer.valueOf(eventType));
}
@Override
public void setData(Object data) {
this.data = data;
}
}