20 package net.sf.gridarta.gui.mapfiles;
22 import javax.swing.Action;
23 import javax.swing.JCheckBoxMenuItem;
24 import javax.swing.JMenu;
33 import net.
sf.japi.swing.action.ActionBuilder;
34 import net.
sf.japi.swing.action.ActionBuilderFactory;
35 import net.
sf.japi.swing.action.ActionMethod;
36 import org.jetbrains.annotations.NotNull;
37 import org.jetbrains.annotations.Nullable;
49 private static final ActionBuilder
ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder(
"net.sf.gridarta");
126 activeMapFolder = mapFolder;
150 public void lockedChanged(
final boolean locked) {
168 public MapFolderTreeActions(@NotNull
final MapFolderTree<G, A, R> mapFolderTree, @NotNull
final PickmapSettings pickmapSettings, @NotNull
final NewMapDialogFactory<G, A, R> newMapDialogFactory, @NotNull
final String createFolderKey, @NotNull
final String deleteFolderKey, @NotNull
final String confirmDeleteFolderKey, @NotNull
final String deleteFolderNotEmptyKey) {
176 mapFolderTree.addModelListener(mapFolderTreeListener);
177 activeMapFolder = mapFolderTree.getActiveMapFolder();
178 pickmapSettings.addPickmapSettingsListener(pickmapSettingsListener);
197 if (aCreateFolderAction != null) {
201 if (aDeletePickmapFolder != null) {
206 if (folderMenu == null) {
212 final JCheckBoxMenuItem menuItem =
new JCheckBoxMenuItem();
214 menuItem.setAction(action);
215 menuItem.setSelected(mapFolder == activeMapFolder);
216 assert folderMenu != null;
217 folderMenu.add(menuItem);
265 if (mapFolder == null || mapFolder.
getParent() == null) {
270 if (mapFolder.
getPickmaps() > 0 && !ACTION_BUILDER.showQuestionDialog(null, confirmDeleteFolderKey, mapFolder.
getName(), mapFolder.
getPickmaps())) {
277 ACTION_BUILDER.showMessageDialog(null, deleteFolderNotEmptyKey, mapFolder.
getName());
285 public void setAction(@NotNull
final Action action, @NotNull
final String name) {
286 if (name.equals(createFolderKey)) {
287 aCreateFolderAction = action;
288 }
else if (name.equals(deleteFolderKey)) {
289 aDeletePickmapFolder = action;
291 throw new IllegalArgumentException();
Action aDeletePickmapFolder
Action called for "delete active folder".
Interface for event listeners that are interested in changes on PickmapSettings.
void refresh()
Updates the actions' states.
static final ActionBuilder ACTION_BUILDER
Action Builder.
final MapFolderTree< G, A, R > mapFolderTree
The model to operate on.
Graphical User Interface of Gridarta.
void createPickmapFolder()
Action callback function to create a new pickmap folder.
boolean doCreateFolder(final boolean performAction)
Executes the "create folder" action.
synchronized void removeMapFolder(@NotNull final MapFolder< G, A, R > mapFolder, final boolean deleteFile)
Removes a map folder from this model.
void deletePickmapFolder()
Action callback function to delete the current pickmap folder.
final NewMapDialogFactory< G, A, R > newMapDialogFactory
The factory for creating new pickmap folders.
final String confirmDeleteFolderKey
The dialog key for "confirm delete folder?".
MapFolderTreeActions(@NotNull final MapFolderTree< G, A, R > mapFolderTree, @NotNull final PickmapSettings pickmapSettings, @NotNull final NewMapDialogFactory< G, A, R > newMapDialogFactory, @NotNull final String createFolderKey, @NotNull final String deleteFolderKey, @NotNull final String confirmDeleteFolderKey, @NotNull final String deleteFolderNotEmptyKey)
Creates a new instance.
MapFolder< G, A, R > activeMapFolder
The last known active folder.
Encapsulates functionality related to actions for pickmap folder selection.
Base package of all Gridarta classes.
void setPickmapFoldersMenu(@Nullable final JMenu folderMenu)
Sets the pickmap folders menu to manage.
final MapFolderTreeListener< G, A, R > mapFolderTreeListener
The MapFolderTreeListener which is registered to the selected pickmap.
void showNewPickmapFolderDialog(@NotNull final MapFolderTree< G, A, R > mapFolderTree, @Nullable final MapFolder< G, A, R > parent)
Shows a dialog for creating a new pickmap folder.
Action aCreateFolderAction
Action for "create folder".
Reflects a game object (object on a map).
int getPickmaps()
Returns the number of pickmaps in this folder.
final PickmapSettingsListener pickmapSettingsListener
The PickmapSettingsListener attached to pickmapSettings.
final String deleteFolderKey
The action key for "delete folder".
GameObjects are the objects based on Archetypes found on maps.
void setAction(@NotNull final Action action, @NotNull final String name)
Sets the Action instance for this editor action.
Utility class to create NewMapDialog instances.
String getName()
Returns the name.
final PickmapSettings pickmapSettings
The PickmapSettings to use.
Indicates that a folder contains sub-folders.
JMenu folderMenu
The pickmap folders menu to update.
boolean isLocked()
Returns whether pickmaps are immutable.
boolean doDeletePickmapFolder(final boolean performAction)
Executes the "delete pickmap" action.
MapFolder< G, A, R > getParent()
Returns the parent folder.
final String createFolderKey
The action key for "create folder".
final String deleteFolderNotEmptyKey
The dialog key for "folder is not empty".
Interface for MapArchObjects.
An action for the entry in the pickmaps folder menu.
Container for settings that affect pickmaps.