Go to the documentation of this file.
20 package net.sf.gridarta.gui.panel.objectchooser;
22 import java.awt.BorderLayout;
23 import java.awt.Point;
24 import java.util.ArrayList;
25 import java.util.Collection;
26 import java.util.Collections;
27 import java.util.List;
28 import javax.swing.JPanel;
29 import javax.swing.JTabbedPane;
30 import javax.swing.SwingConstants;
31 import javax.swing.event.ChangeEvent;
32 import javax.swing.event.ChangeListener;
53 import org.jetbrains.annotations.NotNull;
54 import org.jetbrains.annotations.Nullable;
90 private final JTabbedPane
tabbedPane =
new JTabbedPane(SwingConstants.TOP);
96 private final List<ObjectChooserTab<G, A, R>>
tabs =
new ArrayList<>();
102 private final Collection<ObjectChooserListener<G, A, R>>
listeners =
new ArrayList<>();
140 public void mapCursorChangedPos(@NotNull
final Point location) {
145 public void mapCursorChangedMode() {
150 public void mapCursorChangedGameObject(@Nullable
final MapSquare<G, A, R> mapSquare, @Nullable
final G gameObject) {
155 public void mapCursorChangedSize() {
169 public DefaultObjectChooser(@NotNull
final ObjectChooserTab<G, A, R> archetypeChooserControl, @NotNull
final ObjectChooserTab<G, A, R> pickmapChooserControl, @NotNull
final ArchetypeChooserModel<G, A, R> archetypeChooserModel, @NotNull
final PickmapChooserModel<G, A, R> pickmapChooserModel, @NotNull
final ArchetypeTypeSet archetypeTypeSet) {
170 super(
new BorderLayout());
177 addTab(archetypeChooserControl);
180 final ChangeListener changeListener =
new ChangeListener() {
183 public void stateChanged(
final ChangeEvent e) {
207 public void selectedArchetypeChanged(@Nullable
final R selectedArchetype) {
214 public void directionChanged(@Nullable
final Integer direction) {
243 public void pickmapModifiedChanged(
final int index, @NotNull
final PickmapState<G, A, R> pickmapState) {
248 pickmapChooserModel.addPickmapChooserListener(pickmapChooserModelListener);
259 tabbedPane.addTab(tab.getTitle(), tab.getComponent());
269 tab =
tabs.get(index);
270 }
catch (
final IndexOutOfBoundsException ignored) {
352 final int index =
tabbedPane.getSelectedIndex();
389 if (mapCursor ==
null) {
392 final Point location = mapCursor.getLocation();
397 if (pickmap ==
null) {
420 listener.selectionChanged(gameObject);
List<? extends BaseObject< G, A, R, ?> > getSelections()
boolean isMatching(@NotNull final G gameObject)
void addTab(@NotNull final ObjectChooserTab< G, A, R > tab)
void setActive(boolean active)
void addObjectChooserListener(@NotNull final ObjectChooserListener< G, A, R > listener)
MapView< G, A, R > activePickmapView
MapView< G, A, R > getMapView()
G getFirst(@NotNull final GameObjectMatcher gameObjectMatcher)
final List< ObjectChooserTab< G, A, R > > tabs
ObjectChooserTab< G, A, R > activeTab
final ObjectChoiceDisplay objectChoiceDisplay
final ObjectChooserTab< G, A, R > pickmapChooserControl
void removeObjectChooserListener(@NotNull final ObjectChooserListener< G, A, R > listener)
final ArchetypeChooserModel< G, A, R > archetypeChooserModel
void movePickmapChooserToFront()
MapCursor< G, A, R > getMapCursor()
void moveArchetypeChooserToFront()
ArchetypeChooserPanel< G, A, R > getSelectedPanel()
final boolean isPickmapActive()
void updateSelectedIndex()
void removeMapCursorListener(@NotNull final MapCursorListener< G, A, R > listener)
DefaultObjectChooser(@NotNull final ObjectChooserTab< G, A, R > archetypeChooserControl, @NotNull final ObjectChooserTab< G, A, R > pickmapChooserControl, @NotNull final ArchetypeChooserModel< G, A, R > archetypeChooserModel, @NotNull final PickmapChooserModel< G, A, R > pickmapChooserModel, @NotNull final ArchetypeTypeSet archetypeTypeSet)
List<? extends BaseObject< G, A, R, ?> > getSelections()
void addArchetypeChooserModelListener(@NotNull final ArchetypeChooserModelListener< G, A, R > listener)
void addMapCursorListener(@NotNull final MapCursorListener< G, A, R > listener)
void updatePickmapInfo(@Nullable final MapCursor< G, A, R > mapCursor)
MapSquare< G, A, R > getMapSquare(@NotNull Point pos)
final Collection< ObjectChooserListener< G, A, R > > listeners
void showObjectChooserQuickObject(@Nullable final BaseObject<?, ?, ?, ?> gameObject, final boolean isPickmapActive)
final JTabbedPane tabbedPane
final MapCursorListener< G, A, R > mapCursorListener
void fireSelectionChanged(@Nullable final BaseObject< G, A, R, ?> gameObject)
boolean isMatching(@NotNull G gameObject)
void updateActivePickmap()
MapModel< G, A, R > getMapModel()
final BaseObject< G, A, R, ?> getSelection()
void setActiveTab(final int index)
BaseObject< G, A, R, ?> cursorSelection
PickmapState< G, A, R > activePickmapState
BaseObject< G, A, R, ?> getSelection()
ArchetypeChooserFolder< G, A, R > getSelectedFolder()
BaseObject< G, A, R, ?> getCursorSelection()
static final long serialVersionUID
MapControl< G, A, R > getPickmap()
void updateActivePickmap(@Nullable final PickmapState< G, A, R > pickmapState)