20 package net.sf.gridarta.model.archetypechooser;
22 import java.io.Serializable;
23 import java.util.ArrayList;
24 import java.util.Collections;
25 import java.util.List;
30 import org.jetbrains.annotations.NotNull;
31 import org.jetbrains.annotations.Nullable;
60 private final List<ArchetypeChooserFolder<G, A, R>>
folders =
new ArrayList<>();
89 folders.add(selectedFolder);
98 listeners.
add(listener);
106 listeners.
remove(listener);
125 return Collections.unmodifiableList(folders);
133 public void addArchetype(@NotNull
final String folder, @NotNull
final R archetype) {
145 return folders.get(0);
157 if (existingFolder != null) {
158 return existingFolder;
173 for (
int i = 1; i < folders.size(); i++) {
175 if (folder.
getName().equals(folderName)) {
197 if (!folders.contains(selectedFolder)) {
198 throw new IllegalArgumentException(
"selected folder " + selectedFolder.getName() +
" is not part of the panel");
201 if (this.selectedFolder == selectedFolder) {
205 this.selectedFolder.removeArchetypeChooserFolderListener(archetypeChooserFolderListener);
210 listener.selectedFolderChanged(selectedFolder);
223 listener.selectedArchetypeChanged(selectedArchetype);
ArchetypeChooserFolder< G, A, R > selectedFolder
The selected ArchetypeChooserFolder.
final String name
The panel name.
void removeArchetypeChooserPanelListener(@NotNull final ArchetypeChooserPanelListener< G, A, R > listener)
Removes a listener to be notified of changes.
String getName()
Returns the folder name.
final List< ArchetypeChooserFolder< G, A, R > > folders
The ArchetypeChooserFolders in this panel.
T [] getListeners()
Returns an array of all the listeners.
void fireSelectedArchetypeChanged(@Nullable final R selectedArchetype)
Notifies all registered ArchetypeChooserPanelListeners that the selected archetype has changed...
ArchetypeChooserFolder< G, A, R > getFolder(@NotNull final String folderName)
Returns an ArchetypeChooserFolder by folder name.
A named panel within the ArchetypeChooserModel.
ArchetypeChooserPanel(@NotNull final String name)
Creates a new instance.
String getName()
Returns the panel name.
void setSelectedFolder(@NotNull final ArchetypeChooserFolder< G, A, R > selectedFolder)
Sets the selected ArchetypeChooserFolder.
Base package of all Gridarta classes.
Reflects a game object (object on a map).
void remove(@NotNull final T listener)
Removes a listener.
GameObjects are the objects based on Archetypes found on maps.
void add(@NotNull final T listener)
Adds a listener.
Interface for listeners interested in ArchetypeChooserPanel related events.
ArchetypeChooserFolder< G, A, R > getOrCreateFolder(@NotNull final String folderName)
Returns an ArchetypeChooserFolder by folder name.
final EventListenerList2< ArchetypeChooserPanelListener< G, A, R > > listeners
The registered listeners.
static final long serialVersionUID
The serial version UID.
List< ArchetypeChooserFolder< G, A, R > > getFolders()
Returns the ArchetypeChooserFolders.
Type-safe version of EventListenerList.
void addArchetype(@NotNull final R archetype)
Adds an Archetype to this folder.
ArchetypeChooserFolder< G, A, R > getSelectedFolder()
Returns the selected ArchetypeChooserFolder.
void addArchetypeChooserFolderListener(@NotNull final ArchetypeChooserFolderListener< G, A, R > listener)
Adds a listener to be notified of changes.
void addArchetype(@NotNull final String folder, @NotNull final R archetype)
Adds an Archetype to this panel.
ArchetypeChooserFolder< G, A, R > getDefaultFolder()
Returns the default ArchetypeChooserFolder that contains all Archetypes of all folders.
Interface for MapArchObjects.
void addArchetypeChooserPanelListener(@NotNull final ArchetypeChooserPanelListener< G, A, R > listener)
Adds a listener to be notified of changes.
final transient ArchetypeChooserFolderListener< G, A, R > archetypeChooserFolderListener
The ArchetypeChooserFolderListener attached to selectedFolder.