package greenfoot.guifx.classes;
import bluej.utility.javafx.FXPlatformConsumer;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
| A class for handling a single-selection across a set of ClassDisplay items.
|
public class ClassDisplaySelectionManager
{
private final Set<ClassDisplay> classDisplayList = new HashSet<>();
private final List<FXPlatformConsumer<ClassDisplay>> selectionListeners = new ArrayList<>();
private ClassDisplay selected = null;
public ClassDisplaySelectionManager()
{
}
| Add a ClassDisplay to the set of possibly-selected classes
|
public void addClassDisplay(ClassDisplay classDisplay)
{
classDisplayList.add(classDisplay);
}
| Remove a ClassDisplay from the set of possibly-selected classes
|
public void removeClassDisplay(ClassDisplay classDisplay)
{
classDisplayList.remove(classDisplay);
}
| Select the given item. The setSelected method of all classes will
| be called with the relevant true/false state.
|
public void select(ClassDisplay target)
{
target.setSelected(true);
selected = target;
for (ClassDisplay display : classDisplayList)
{
if (!display.equals(target))
{
display.setSelected(false);
}
}
for (FXPlatformConsumer<ClassDisplay> selectionListener : selectionListeners)
{
selectionListener.accept(target);
}
}
| Gets the currently selected ClassDisplay. May be null.
|
public ClassDisplay getSelected()
{
return selected;
}
| Adds a selection listener to be called back when the selection changes.
| Note: it is possible that null may be passed as the current selection.
|
public void addSelectionListener(FXPlatformConsumer<ClassDisplay> listener)
{
selectionListeners.add(listener);
}
}
top,
use,
map,
class ClassDisplaySelectionManager
. ClassDisplaySelectionManager
. addClassDisplay
. removeClassDisplay
. select
. getSelected
. addSelectionListener
77 neLoCode
+ 8 LoComm