/******************************************************************************* * Copyright (c) 2004, 2008 John Krasnay and others. * 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: * John Krasnay - initial API and implementation *******************************************************************************/ package net.sf.vex.editor; import net.sf.vex.core.ListenerList; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.jface.viewers.SelectionChangedEvent; /** * Implementation of ISelectionProvider. This class is also an * ISelectionChangedListener; any events received by selectionChanged are * relayed to registered listeners. */ public class SelectionProvider implements ISelectionProvider, ISelectionChangedListener { public void addSelectionChangedListener(ISelectionChangedListener listener) { this.listeners.add(listener); } /** * Fire a SelectionChangedEvent to all registered listeners. * @param e Event to be passed to the listeners' selectionChanged method. */ public void fireSelectionChanged(SelectionChangedEvent e) { this.selection = e.getSelection(); this.listeners.fireEvent("selectionChanged", e); //$NON-NLS-1$ } public ISelection getSelection() { return this.selection; } public void removeSelectionChangedListener( ISelectionChangedListener listener) { this.listeners.remove(listener); } public void setSelection(ISelection selection) { this.selection = selection; } public void selectionChanged(SelectionChangedEvent event) { this.fireSelectionChanged(event); } //===================================================== PRIVATE ISelection selection; private ListenerList listeners = new ListenerList(ISelectionChangedListener.class, SelectionChangedEvent.class); }