org.jsoar.debugger.selection.SelectionManager Maven / Gradle / Ivy
/*
* Copyright (c) 2008 Dave Ray
*
* Created on Oct 23, 2008
*/
package org.jsoar.debugger.selection;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
/**
* @author ray
*/
public class SelectionManager
{
private static final SelectionProvider NULL_PROVIDER = new NullProvider();
private List listeners = new CopyOnWriteArrayList();
private SelectionProvider provider = NULL_PROVIDER;
public void addListener(SelectionListener listener)
{
listeners.add(listener);
}
public void removeListener(SelectionListener listener)
{
listeners.remove(listener);
}
public void setSelectionProvider(SelectionProvider provider)
{
this.provider.deactivate();
this.provider = provider != null ? provider : NULL_PROVIDER;
this.provider.activate(this);
fireSelectionChanged();
}
/**
*
*/
public void fireSelectionChanged()
{
for(SelectionListener listener : listeners)
{
listener.selectionChanged(this);
}
}
public Object getSelectedObject()
{
return provider.getSelectedObject();
}
public List