blob: ddd507844e6f20ff6c7de44e088a4535f451a51c [file] [log] [blame]
/// *****************************************************************************
// * Copyright (c) 2013 Cedric Dumoulin.
// *
// *
// * 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:
// * Cedric Dumoulin Cedric.dumoulin@lifl.fr - Initial API and implementation
// *
// *****************************************************************************/
//
// package org.eclipse.papyrus.internal.infra.gmfdiag.layers.runtime.notifier;
//
// import java.util.ArrayList;
// import java.util.List;
//
// import org.eclipse.papyrus.internal.infra.gmfdiag.layers.model.layers.RegExpLayer;
//
/// **
// * Common ancestor of DerivedViewLayerNotifier.
// * This class maintains a list of listeners. It allows to add and remove listeners.
// * If there is no more listener, stop listening on external events.
// * Start listening on external events as soon as there is a listener.
// *
// * @author cedric dumoulin
// *
// */
// public abstract class AbstractDerivedViewLayerNotifier {
//
// /**
// * List of listeners that should be notified.
// */
// protected List<RegExpLayer> listeners = new ArrayList<RegExpLayer>();
//
// /**
// * Indicate if this Notifier is listening on externals events
// */
// private boolean isListening = false;
//
// /**
// * Attach the listener to this notifier.
// *
// * @param layer
// */
// public void addListener(RegExpLayer listener) {
// if (!listeners.contains(listener)) {
// listeners.add(listener);
// checkStartListening();
// }
// }
//
// /**
// * Attach the listener to this notifier.
// *
// * @param layer
// */
// public void removeListener(RegExpLayer listener) {
// listeners.remove(listener);
// checkStopListening();
//
// }
//
// /**
// * Attach the listener to this notifier.
// *
// * @param layer
// */
// public void removeAllListeners() {
// isListening = false;
// listeners.clear();
// stopListening();
// }
//
// /**
// * Check if we should start listening.
// * If the class is not listening on externals events, and there is some listeners, then
// * start listening (call {@link #startListening()} and set {@link #isListening()} to true.
// */
// private void checkStartListening() {
// if (!isListening() && listeners.size() > 0) {
// isListening = true;
// startListening();
// }
// }
//
// /**
// * Check if we should stop listening.
// * If the class is listening on externals events, and there is no more listeners, then
// * stop listening (call {@link #stopListening()} and set {@link #isListening()} to false.
// */
// private void checkStopListening() {
// if (isListening() && listeners.size() == 0) {
// isListening = false;
// stopListening();
// }
// }
//
// /**
// * fire the event to all registered listeners.
// */
// public void fireEvent() {
// for (RegExpLayer listener : listeners) {
// // listener.evaluateExpr();
// }
// }
//
// /**
// * Start listening on external events.
// * Should be implemented by subclass
// */
// abstract protected void startListening();
//
// /**
// * Stop listening on external events.
// * Should be implemented by subclass
// */
// abstract protected void stopListening();
//
// /**
// * Return true if this Notifier is listening on externals events.
// *
// * @return
// */
// public boolean isListening() {
// // This notifier is listening if there is some listener in the list
// return isListening;
// }
//
//
//
// }