public void removeSelectionChangedListener( ISelectionChangedListener listener ) {
selectionChangeListeners.remove(listener);
}
protected void fireSelectionChanged(){
final SelectionChangedEvent event = new SelectionChangedEvent(this, getSelection());
for( ISelectionChangedListener listener : selectionChangeListeners ){
final ISelectionChangedListener l = listener;
SafeRunnable.run(new SafeRunnable() {
public void run() {
l.selectionChanged(event);