20 package net.sf.gridarta.gui.panel.gameobjectattributes;
22 import java.awt.Component;
23 import java.awt.event.FocusEvent;
24 import java.awt.event.FocusListener;
25 import java.util.ArrayList;
26 import java.util.Collection;
31 import org.jetbrains.annotations.NotNull;
32 import org.jetbrains.annotations.Nullable;
43 private final Collection<GameObjectAttributesTabListener<G, A, R>>
listeners =
new ArrayList<>();
65 public void focusGained(
final FocusEvent e) {
70 public void focusLost(
final FocusEvent e) {
84 public void selectedGameObjectChanged(@Nullable
final G selectedGameObject) {
90 public void refreshSelectedGameObject() {
95 gameObjectAttributesModel.addGameObjectAttributesModelListener(gameObjectAttributesModelListener);
103 if (this.tabSeverity == tabSeverity) {
109 listener.tabSeverityChanged(
this, tabSeverity);
115 listeners.add(listener);
120 listeners.add(listener);
131 if (selectedGameObject != null) {
132 apply(selectedGameObject);
140 protected abstract void refresh(@Nullable G gameObject);
146 protected abstract void apply(@NotNull G gameObject);
162 component.addFocusListener(focusListener);
void addAutoApply(@NotNull final Component component)
Registers a component that auto-applies when the focus is lost.
Severity tabSeverity
The tab severity.
Graphical User Interface of Gridarta.
final Collection< GameObjectAttributesTabListener< G, A, R > > listeners
The registered listeners.
Severity getTabSeverity()
Base package of all Gridarta classes.
final FocusListener focusListener
The focus listener to implement auto-applying.
Reflects a game object (object on a map).
GameObject< G, A, R > getSelectedGameObject()
Returns the currently selected GameObject.
AbstractGameObjectAttributesTab(@NotNull final GameObjectAttributesModel< G, A, R > gameObjectAttributesModel)
Creates a new instance.
void removeGameObjectAttributesTabListener(@NotNull final GameObjectAttributesTabListener< G, A, R > listener)
GameObjects are the objects based on Archetypes found on maps.
void setTabSeverity(@NotNull final Severity tabSeverity)
Sets the tab severity.
Severity levels for colors of tabs.
void addGameObjectAttributesTabListener(@NotNull final GameObjectAttributesTabListener< G, A, R > listener)
DEFAULT
The tab contents are unchanged from defaults.
void fireApply()
Notify all listeners to apply the changes.
G selectedGameObject
The currently selected game object.
A tab in the game object attributes panel.
Interface for MapArchObjects.
Base class for GameObjectAttributesTab implementations.
abstract void refresh(@Nullable G gameObject)
Refreshes the display.