/** * */ package org.eclipse.papyrus.infra.core.sasheditor.internal; import java.util.ArrayList; import java.util.List; import org.eclipse.papyrus.infra.core.sasheditor.editor.IPageLifeCycleEventsListener; /** * A class managing events of the {@link SashWindowsContainer}. * This class dispatch events fired by the {@link SashWindowsContainer} to any listeners * implementing {@link SashContainerEventsProvider}. * * @author cedric dumoulin * */ public class SashContainerEventsProvider { /** List of listeners */ private List<IPageLifeCycleEventsListener> listeners = new ArrayList<IPageLifeCycleEventsListener>(); /** * Add a listener on the activeEditorChange event. * * @param listener */ public void addListener(IPageLifeCycleEventsListener listener) { // no duplicate if(listeners.contains(listener)) return; listeners.add(listener); } /** * Add a listener on the activeEditorChange event. * * @param listener */ public void removeListener(IPageLifeCycleEventsListener listener) { listeners.remove(listener); } /** * Notify all listener with event. * @param newEditor */ public void firePageOpenedEvent(PagePart page) { // Fire events to internal listeners for(IPageLifeCycleEventsListener listener : listeners) { listener.pageOpened(page); } } /** * Notify all listener with event. * @param newEditor */ public void firePageClosedEvent(PagePart page) { // Fire events to internal listeners for(IPageLifeCycleEventsListener listener : listeners) { listener.pageClosed(page); } } /** * Notify all listener with event. * @param newEditor */ public void firePageAboutToBeOpenedEvent(PagePart page) { // Fire events to internal listeners for(IPageLifeCycleEventsListener listener : listeners) { listener.pageAboutToBeOpened(page); } } /** * Notify all listener with event. * @param newEditor */ public void firePageAboutToBeClosedEvent(PagePart page) { // Fire events to internal listeners for(IPageLifeCycleEventsListener listener : listeners) { listener.pageAboutToBeClosed(page); } } /** * Notify all listener with event. * @param newEditor */ public void firePageActivatedEvent(PagePart page) { // Fire events to internal listeners for(IPageLifeCycleEventsListener listener : listeners) { listener.pageActivated(page); } } /** * Notify all listener with event. * @param newEditor */ public void firePageDeactivatedEvent(PagePart page) { // Fire events to internal listeners for(IPageLifeCycleEventsListener listener : listeners) { listener.pageDeactivated(page); } } }