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;
49 private final List<ArchetypeChooserPanel<G, A, R>>
panels =
new ArrayList<>();
93 public void selectedArchetypeChanged(@Nullable
final R selectedArchetype) {
104 listeners.
add(listener);
112 listeners.
remove(listener);
120 public Iterable<ArchetypeChooserPanel<G, A, R>>
getPanels() {
121 return Collections.unmodifiableList(panels);
130 public void addArchetype(@NotNull
final String panel, @NotNull
final String folder, @NotNull
final R archetype) {
143 if (panel.getName().equals(panelName)) {
150 if (selectedPanel == null) {
169 @SuppressWarnings(
"NullableProblems")
171 if (!panels.contains(selectedPanel)) {
172 throw new IllegalArgumentException(
"selected panel " + selectedPanel.getName() +
" is not part of the model");
175 if (this.selectedPanel == selectedPanel) {
179 if (this.selectedPanel != null) {
180 this.selectedPanel.removeArchetypeChooserPanelListener(archetypeChooserPanelListener);
186 listener.selectedPanelChanged(selectedPanel);
207 if (this.direction == null) {
208 if (direction == null) {
212 if (this.direction.equals(direction)) {
219 listener.directionChanged(direction);
237 if (this.displayMode == displayMode) {
252 listener.selectedFolderChanged(selectedFolder);
264 listener.selectedArchetypeChanged(selectedArchetype);
ArchetypeChooserPanel< G, A, R > getPanel(@NotNull final String panelName)
Returns an ArchetypeChooserPanel by panel name.
R getSelectedArchetype()
Returns the selected Archetype.
T [] getListeners()
Returns an array of all the listeners.
final EventListenerList2< ArchetypeChooserModelListener< G, A, R > > listeners
The registered listeners.
void fireSelectedFolderChanged(@NotNull final ArchetypeChooserFolder< G, A, R > selectedFolder)
Notifies all registered ArchetypeChooserModelListeners that the selected folder has changed...
void addArchetype(@NotNull final String panel, @NotNull final String folder, @NotNull final R archetype)
Adds an Archetype to this model.
Iterable< ArchetypeChooserPanel< G, A, R > > getPanels()
Returns the ArchetypeChooserPanels.
static final long serialVersionUID
The serial version UID.
Integer direction
The default direction for game objects created from archetypes.
final List< ArchetypeChooserPanel< G, A, R > > panels
The ArchetypeChooserPanels.
void removeArchetypeChooserModelListener(@NotNull final ArchetypeChooserModelListener< G, A, R > listener)
Removes a listener to be notified of changes.
void setDisplayMode(@NotNull final DisplayMode< G, A, R > displayMode)
Updates the display mode.
Base package of all Gridarta classes.
ArchetypeChooserPanel< G, A, R > getSelectedPanel()
Returns the selected ArchetypeChooserPanel.
Reflects a game object (object on a map).
void addArchetypeChooserModelListener(@NotNull final ArchetypeChooserModelListener< G, A, R > listener)
Adds a listener to be notified of changes.
void setDirection(@Nullable final Integer direction)
Sets the default direction for game objects created from archetypes.
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.
ArchetypeChooserPanel< G, A, R > selectedPanel
The selected ArchetypeChooserPanel.
Interface for listeners interested in ArchetypeChooserModel related events.
Type-safe version of EventListenerList.
The view of the archetype chooser.
DisplayMode< G, A, R > getDisplayMode()
Returns the current display mode.
void fireSelectedArchetypeChanged(@Nullable final R selectedArchetype)
Notifies all registered ArchetypeChooserPanelListeners that the selected archetype has changed...
DisplayMode< G, A, R > displayMode
Indicates whether object names are shown.
void fireDisplayObjectNamesChangedEvent()
Notifies all listeners that the display mode has changed.
final transient ArchetypeChooserPanelListener< G, A, R > archetypeChooserPanelListener
The ArchetypeChooserPanelListener attached to selectedPanel.
void setSelectedPanel(@NotNull final ArchetypeChooserPanel< G, A, R > selectedPanel)
Sets the selected ArchetypeChooserPanel.
void addArchetype(@NotNull final String folder, @NotNull final R archetype)
Adds an Archetype to this panel.
Interface for MapArchObjects.
void addArchetypeChooserPanelListener(@NotNull final ArchetypeChooserPanelListener< G, A, R > listener)
Adds a listener to be notified of changes.
Integer getDirection()
Returns the default direction for game objects created from archetypes.