/*****************************************************************************
* Copyright (c) 2006, 2008 g-Eclipse Consortium
* 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
*
* Initial development of the original code was made for the
* g-Eclipse project founded by European Union
* project number: FP6-IST-034327 http://www.geclipse.eu/
*
* Contributors:
* Christof Klausecker GUP, JKU - initial API and implementation
*****************************************************************************/
package eu.geclipse.traceview.views.internal;
import java.util.ArrayList;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
/**
* Selection provider
*/
public class SelectionProvider implements ISelectionProvider {
ArrayList<ISelectionChangedListener> selectionChangedListeners;
ISelection selection;
/**
*
*
*/
public SelectionProvider() {
this.selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.viewers.ISelectionProvider#addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
*/
public void addSelectionChangedListener( final ISelectionChangedListener listener )
{
this.selectionChangedListeners.add( listener );
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.viewers.ISelectionProvider#removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
*/
public void removeSelectionChangedListener( final ISelectionChangedListener listener )
{
this.selectionChangedListeners.remove( listener );
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.viewers.ISelectionProvider#setSelection(org.eclipse.jface.viewers.ISelection)
*/
public void setSelection( final ISelection selection ) {
this.selection = selection;
SelectionChangedEvent selectionChangedEvent = new SelectionChangedEvent( this,
selection );
for( ISelectionChangedListener selectionChangedListener : this.selectionChangedListeners )
{
selectionChangedListener.selectionChanged( selectionChangedEvent );
}
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.viewers.ISelectionProvider#getSelection()
*/
public ISelection getSelection() {
return this.selection;
}
}