/***************************************************************************** * Copyright (c) 2008 CEA LIST. * * * 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.infra.core.sasheditor.editor.gef; import java.util.ArrayList; import java.util.List; import org.eclipse.gef.ui.actions.ActionRegistry; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; /** * Provide methods and services needed for Gef Editors. * This class is intended to be used as a delegate inside classes providing MultiDiagramEditor. * * @author dumoulin * */ public class MultiDiagramEditorGefDelegate { /** The registry holding actions associated to the main editor */ protected ActionRegistry actionRegistry; /** Synchronizer object */ // private MultiPageSelectionSynchronizer synchronizer; /** List of listeners on SelectionChanged event */ private List<ISelectionChangedListener> selectionListeners = new ArrayList<ISelectionChangedListener>(1); /** * This method should be called by the containing class. */ public void dispose() { selectionListeners.clear(); if(actionRegistry != null) { actionRegistry.dispose(); } } /** * Adds a listener for selection changes in this selection provider. Has no effect if an identical listener is already registered. * * @param listener * a selection changed listener */ public void addSelectionChangedListener(ISelectionChangedListener listener) { selectionListeners.add(listener); } /** * Lazily creates and returns the action registry. * * @return the action registry */ public ActionRegistry getActionRegistry() { if(actionRegistry == null) actionRegistry = new ActionRegistry(); return actionRegistry; } // /** // * Returns the selection synchronizer object. The synchronizer can be used to sync the selection of 2 or more EditPartViewers. // * // * @return the syncrhonizer // */ // public MultiPageSelectionSynchronizer getSelectionSynchronizer() { // if (synchronizer == null) { // synchronizer = new MultiPageSelectionSynchronizer(); // // Hook this editor. //// synchronizer.addViewer(this); // } // return synchronizer; // } /** * Removes the given selection change listener from this selection provider. Has no affect if an identical listener is not registered. * * @param listener * the selection changed listener to be removed */ public void removeSelectionChangedListener(ISelectionChangedListener listener) { selectionListeners.remove(listener); } /** * Sets the current selection for this selection provider. * * @param selection * the new selection */ public void setSelection(ISelection selection) { } }