Gridarta Editor
WindowMenuManager.java
Go to the documentation of this file.
1
/*
2
* Gridarta MMORPG map editor for Crossfire, Daimonin and similar games.
3
* Copyright (C) 2000-2023 The Gridarta Developers.
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; either version 2 of the License, or
8
* (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License along
16
* with this program; if not, write to the Free Software Foundation, Inc.,
17
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
*/
19
20
package
net.sf.gridarta.gui.mapdesktop;
21
22
import
javax.swing.Action;
23
import
javax.swing.JMenu;
24
import
net
.
sf
.
gridarta
.
gui
.
map
.
mapview
.
MapView
;
25
import
net
.
sf
.
gridarta
.
gui
.
map
.
mapview
.
MapViewManager
;
26
import
net
.
sf
.
gridarta
.
gui
.
map
.
mapview
.
MapViewManagerListener
;
27
import
net
.
sf
.
gridarta
.
gui
.
utils
.
MenuUtils
;
28
import
net
.
sf
.
gridarta
.
model
.
archetype
.
Archetype
;
29
import
net
.
sf
.
gridarta
.
model
.
gameobject
.
GameObject
;
30
import
net
.
sf
.
gridarta
.
model
.
maparchobject
.
MapArchObject
;
31
import
org.jetbrains.annotations.NotNull;
32
import
org.jetbrains.annotations.Nullable;
33
38
public
class
WindowMenuManager
<G
extends
GameObject
<G, A, R>, A extends
MapArchObject
<A>, R extends
Archetype
<G, A, R>> {
39
43
@NotNull
44
private
final
JMenu
menuWindow
;
45
49
@NotNull
50
private
final
Iterable<MapView<G, A, R>>
mapViewManager
;
51
55
@NotNull
56
private
final
Action
aCloseAll
;
57
61
@NotNull
62
private
final
MapDesktop<G, A, R>
mapDesktop
;
63
67
@NotNull
68
private
final
MapViewManagerListener<G, A, R>
mapViewManagerListener
=
new
MapViewManagerListener<G, A, R>
() {
69
70
@Override
71
public
void
mapViewCreated(@NotNull
final
MapView<G, A, R>
mapView) {
72
rebuildWindowMenu
();
73
}
74
75
@Override
76
public
void
mapViewClosing(@NotNull
final
MapView<G, A, R>
mapView) {
77
rebuildWindowMenu
();
78
}
79
80
@Override
81
public
void
activeMapViewChanged(@Nullable
final
MapView<G, A, R>
mapView) {
82
rebuildWindowMenu
();
83
}
84
85
};
86
94
public
WindowMenuManager
(@NotNull
final
JMenu
menuWindow
, @NotNull
final
MapViewManager<G, A, R>
mapViewManager
, @NotNull
final
Action
aCloseAll
, @NotNull
final
MapDesktop<G, A, R>
mapDesktop
) {
95
this.menuWindow =
menuWindow
;
96
this.mapViewManager =
mapViewManager
;
97
this.aCloseAll =
aCloseAll
;
98
this.mapDesktop =
mapDesktop
;
99
mapViewManager
.addMapViewManagerListener(
mapViewManagerListener
);
100
}
101
105
private
void
rebuildWindowMenu
() {
106
MenuUtils
.
removeAll
(
menuWindow
);
107
menuWindow
.add(
aCloseAll
);
108
109
int
index = 0;
110
for
(
final
MapView<G, A, R>
frame :
mapViewManager
) {
111
if
(index == 0) {
112
menuWindow
.addSeparator();
113
}
114
mapDesktop
.
addWindowAction
(
menuWindow
, frame, index++);
115
}
116
}
117
118
}
net.sf.gridarta.gui.mapdesktop.WindowMenuManager.menuWindow
final JMenu menuWindow
The "window" menu.
Definition:
WindowMenuManager.java:44
net.sf.gridarta
Base package of all Gridarta classes.
net.sf.gridarta.gui.mapdesktop.WindowMenuManager.mapViewManagerListener
final MapViewManagerListener< G, A, R > mapViewManagerListener
The listener used to detect map view changes.
Definition:
WindowMenuManager.java:68
net.sf.gridarta.gui.mapdesktop.WindowMenuManager.rebuildWindowMenu
void rebuildWindowMenu()
Rebuild the window menu.
Definition:
WindowMenuManager.java:105
net.sf.gridarta.gui.utils.MenuUtils.removeAll
static void removeAll(@NotNull final JMenu menu)
Remove all menu entries.
Definition:
MenuUtils.java:72
net.sf.gridarta.gui.map.mapview.MapViewManager
Maintains all map views.
Definition:
MapViewManager.java:38
net.sf
net.sf.gridarta.gui.mapdesktop.WindowMenuManager
Maintains the window menu.
Definition:
WindowMenuManager.java:38
net.sf.gridarta.gui.map.mapview.MapViewManagerListener
Interface for listeners interested in events related to {} instances.
Definition:
MapViewManagerListener.java:33
net.sf.gridarta.model.archetype
Definition:
AbstractArchetype.java:20
net.sf.gridarta.model.gameobject.GameObject
Reflects a game object (object on a map).
Definition:
GameObject.java:36
net.sf.gridarta.gui
Graphical User Interface of Gridarta.
net.sf.gridarta.model.gameobject
GameObjects are the objects based on Archetypes found on maps.
Definition:
AbstractGameObject.java:20
net
net.sf.gridarta.gui.mapdesktop.WindowMenuManager.WindowMenuManager
WindowMenuManager(@NotNull final JMenu menuWindow, @NotNull final MapViewManager< G, A, R > mapViewManager, @NotNull final Action aCloseAll, @NotNull final MapDesktop< G, A, R > mapDesktop)
Creates a new instance.
Definition:
WindowMenuManager.java:94
net.sf.gridarta.model.maparchobject.MapArchObject
Interface for MapArchObjects.
Definition:
MapArchObject.java:40
net.sf.gridarta.gui.map.mapview
Definition:
AbstractMapView.java:20
net.sf.gridarta.gui.mapdesktop.WindowMenuManager.aCloseAll
final Action aCloseAll
The action for "close all map windows".
Definition:
WindowMenuManager.java:56
net.sf.gridarta.gui.mapdesktop.WindowMenuManager.mapViewManager
final Iterable< MapView< G, A, R > > mapViewManager
The MapViewManager to use.
Definition:
WindowMenuManager.java:50
net.sf.gridarta.gui.map.mapview.MapView
A map view consists of a map grid and a map cursor, and is attached to a map control.
Definition:
MapView.java:43
net.sf.gridarta.gui.mapdesktop.MapDesktop.addWindowAction
void addWindowAction(@NotNull final JMenu menu, @NotNull final MapView< G, A, R > mapView, final int index)
Adds an action for selecting this window to a menu.
Definition:
MapDesktop.java:325
net.sf.gridarta.gui.mapdesktop.WindowMenuManager.mapDesktop
final MapDesktop< G, A, R > mapDesktop
The MapDesktop to use.
Definition:
WindowMenuManager.java:62
net.sf.gridarta.model
net.sf.gridarta.model.archetype.Archetype
Reflects an Archetype.
Definition:
Archetype.java:41
net.sf.gridarta.gui.mapdesktop.MapDesktop< G, A, R >
net.sf.gridarta.gui.map
Base classes for rendering maps.
Definition:
AbstractPerMapDialogManager.java:20
net.sf.gridarta.model.maparchobject
Definition:
AbstractMapArchObject.java:20
net.sf.gridarta.gui.utils
Definition:
AnimationComponent.java:20
net.sf.gridarta.gui.utils.MenuUtils
Utility class implementing menu related functions.
Definition:
MenuUtils.java:39
src
gridarta
src
main
java
net
sf
gridarta
gui
mapdesktop
WindowMenuManager.java
Generated on Mon Sep 1 2025 00:35:55 for Gridarta Editor by
1.8.17