Go to the documentation of this file.
20 package net.sf.gridarta.gui.map.mapactions;
22 import java.awt.Frame;
23 import java.awt.Point;
25 import java.io.IOException;
26 import java.util.ArrayList;
27 import java.util.Collection;
28 import java.util.Iterator;
30 import javax.swing.Action;
31 import javax.swing.filechooser.FileFilter;
62 import net.
sf.japi.swing.action.ActionBuilder;
63 import net.
sf.japi.swing.action.ActionBuilderFactory;
64 import net.
sf.japi.swing.action.ActionMethod;
65 import net.
sf.japi.swing.action.ToggleAction;
66 import org.jetbrains.annotations.NotNull;
67 import org.jetbrains.annotations.Nullable;
73 public class MapActions<G
extends GameObject<G, A, R>, A extends
MapArchObject<A>, R extends
Archetype<G, A, R>> implements
EditorAction,
MapCursorListener<G, A, R>,
MapViewManagerListener<G, A, R> {
79 private static final ActionBuilder
ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder(
"net.sf.gridarta");
85 private final String @NotNull []
directionsMap = {
"North",
"East",
"South",
"West",
"NorthEast",
"SouthEast",
"SouthWest",
"NorthWest",
"Up",
"Down" };
262 public void gridVisibleChanged(
final boolean gridVisible) {
267 public void lightVisibleChanged(
final boolean lightVisible) {
272 public void smoothingChanged(
final boolean smoothing) {
277 public void tileStretchingChanged(
final boolean tileStretchingChanged) {
282 public void doubleFacesChanged(
final boolean doubleFaces) {
287 public void alphaTypeChanged(
final int alphaType) {
292 public void editTypeChanged(
final int editType) {
297 public void autojoinChanged(
final boolean autojoin) {
316 public void mapCreated(@NotNull
final MapControl<G, A, R> mapControl,
final boolean interactive) {
339 public void mapMetaChanged() {
344 public void mapSizeChanged(@NotNull
final Size2D mapSize) {
357 public void mapSizeChanged(@NotNull
final Size2D newSize) {
367 public void mapObjectsChanged(@NotNull
final Set<G> gameObjects, @NotNull
final Set<G> transientGameObjects) {
377 public void mapFileChanged(@Nullable
final MapFile oldMapFile) {
382 public void modifiedChanged() {
404 public MapActions(@NotNull
final Frame
helpParent, @NotNull
final MapManager<G, A, R> mapManager, @NotNull
final MapViewManager<G, A, R> mapViewManager, @NotNull
final ExitMatcher<G, A, R> exitMatcher, @NotNull
final FileFilter
mapFileFilter, @NotNull
final SelectedSquareModel<G, A, R> selectedSquareModel,
final boolean allowRandomMapParameters, @NotNull
final MapPropertiesDialogFactory<G, A, R> mapPropertiesDialogFactory, @NotNull
final MapViewSettings mapViewSettings, @NotNull
final MapViewsManager<G, A, R> mapViewsManager, @NotNull
final EnterMap<G, A, R> enterMap, @NotNull
final ProjectSettings projectSettings) {
597 if (exitIterator.hasNext()) {
598 mapView.setCursorLocation(exitIterator.next().getMapSquare().getMapLocation());
776 public void enterMap(@NotNull
final MapFile mapFile, @Nullable
final Point destinationPoint) {
849 private boolean doGridVisible(
final boolean performAction,
final boolean gridVisible) {
864 private boolean doSmoothing(
final boolean performAction,
final boolean smoothing) {
879 private boolean doTileStretching(
final boolean performAction,
final boolean tileStretching) {
895 private boolean doDoubleFaces(
final boolean performAction,
final boolean doubleFaces) {
911 private boolean doTileShow(
final boolean performAction,
final boolean tileShow) {
922 if (mapView ==
null) {
940 if (mapView ==
null) {
959 private boolean doAutoJoin(
final boolean performAction,
final boolean autoJoin) {
974 if (mapView ==
null) {
980 if (selectedExit ==
null) {
982 if (cursorExit ==
null) {
1007 if (mapView ==
null) {
1011 if (performAction) {
1025 if (mapView ==
null) {
1029 if (performAction) {
1043 if (mapView ==
null) {
1047 if (performAction) {
1050 final Collection<G> gameObjectsToDelete =
new ArrayList<>();
1051 for (
final Iterable<G> mapSquare : mapModel) {
1052 for (
final G gameObject : mapSquare) {
1053 if (gameObject.isHead() && gameObject.hasUndefinedArchetype()) {
1054 gameObjectsToDelete.add(gameObject);
1058 if (!gameObjectsToDelete.isEmpty()) {
1059 mapModel.beginTransaction(
"delete undefined objects");
1061 for (
final G gameObject : gameObjectsToDelete) {
1062 mapModel.removeGameObject(gameObject,
false);
1065 mapModel.endTransaction();
1081 if (mapView ==
null) {
1086 if (path.isEmpty()) {
1090 if (performAction) {
1107 if (mapView ==
null) {
1113 final String path = currentMapArchObj.getTilePath(direction);
1114 if (!path.isEmpty()) {
1122 final String newPath = currentMapArchObj.calculateTilePath(direction, currentMapModel.
getMapFile());
1125 if (mapFile.
getFile().isDirectory()) {
1128 if (mapFile.
getFile().exists()) {
1132 if (performAction) {
1133 final File dir = mapFile.
getFile().getParentFile();
1134 if (!dir.exists()) {
1135 if (!dir.mkdirs()) {
1141 final A mapArchObject = currentMapArchObj.createClone();
1146 mapArchObject.setTilePath(direction2,
"");
1152 }
catch (
final IOException ex) {
1172 if (mapView ==
null) {
1176 if (performAction) {
1184 public void setAction(@NotNull
final Action action, @NotNull
final String
name) {
1186 case "mapCreateView":
1190 case "mapProperties":
1198 case "shrinkMapSize":
1214 case "deleteUnknownObjects":
1234 case "tileStretching":
1252 throw new IllegalArgumentException(
"unsupported action name: " +
name);
Action aDeleteUnknownObjects
void setSmoothing(final boolean smoothing)
void release(@NotNull MapControl< G, A, R > mapControl)
void createTileNorthWest()
final Action[] aCreateTiles
final MapArchObjectListener mapArchObjectListener
void selectExit(@NotNull final MapView< G, A, R > mapView, final int direction)
void createTileSouthEast()
static final ActionBuilder ACTION_BUILDER
void addMapManagerListener(@NotNull MapManagerListener< G, A, R > listener)
boolean doMapCreateView(final boolean performAction)
boolean isTileStretching()
boolean doDeleteUnknownObjects(final boolean performAction)
boolean enterExit(@NotNull final MapView< G, A, R > mapView, @NotNull final GameObject< G, A, R > exit, final boolean allowRandomMapParameters)
MapActions(@NotNull final Frame helpParent, @NotNull final MapManager< G, A, R > mapManager, @NotNull final MapViewManager< G, A, R > mapViewManager, @NotNull final ExitMatcher< G, A, R > exitMatcher, @NotNull final FileFilter mapFileFilter, @NotNull final SelectedSquareModel< G, A, R > selectedSquareModel, final boolean allowRandomMapParameters, @NotNull final MapPropertiesDialogFactory< G, A, R > mapPropertiesDialogFactory, @NotNull final MapViewSettings mapViewSettings, @NotNull final MapViewsManager< G, A, R > mapViewsManager, @NotNull final EnterMap< G, A, R > enterMap, @NotNull final ProjectSettings projectSettings)
boolean doShrinkMapSize(final boolean performAction)
void createTileNorthEast()
void setDoubleFaces(boolean doubleFaces)
void mapCursorChangedPos(@NotNull final Point location)
final FileFilter mapFileFilter
void setTileShow(final boolean tileShow)
final Action[] aDirections
final boolean allowRandomMapParameters
void setGridVisible(boolean gridVisible)
boolean enterMap(@NotNull final MapView< G, A, R > mapView, @NotNull final MapPath mapPath, @NotNull final Direction direction, @Nullable final Point destinationPoint)
boolean doPrevExit(final boolean performAction)
final MapViewSettingsListener mapViewSettingsListener
boolean doDoubleFaces(final boolean performAction, final boolean doubleFaces)
boolean doEnterMap(final boolean performAction, @NotNull final Direction direction)
void mapViewCreated(@NotNull final MapView< G, A, R > mapView)
boolean isTileStretching()
void showDialog(@NotNull final MapView< G, A, R > mapView)
void setAction(@NotNull final Action action, @NotNull final String name)
boolean doNextExit(final boolean performAction)
void mapCursorChangedMode()
final MapViewsManager< G, A, R > mapViewsManager
void showDialog(@NotNull Component parent, @NotNull Frame helpParent, @NotNull MapModel< G, A, R > mapModel, @NotNull FileFilter mapFileFilter)
boolean doEnterExit(final boolean performAction)
void mapCursorChangedGameObject(@Nullable final MapSquare< G, A, R > mapSquare, @Nullable final G gameObject)
boolean doTileStretching(final boolean performAction, final boolean tileStretching)
ToggleAction aGridVisible
void setSmoothing(boolean smoothing)
boolean doSmoothing(final boolean performAction, final boolean smoothing)
MapControl< G, A, R > getMapControl()
G getValidExit(@NotNull final MapModel< G, A, R > mapModel, @NotNull final Point point)
final EnterMap< G, A, R > enterMap
final SelectedSquareModel< G, A, R > selectedSquareModel
void setDoubleFaces(final boolean doubleFaces)
JScrollPane getScrollPane()
G getSelectedGameObject()
final ProjectSettings projectSettings
void enterMap(@NotNull final MapFile mapFile, @Nullable final Point destinationPoint)
boolean doCreateTile(final boolean performAction, @NotNull final Direction direction)
void setTileStretching(final boolean tileStretching)
void addMapViewSettingsListener(@NotNull MapViewSettingsListener listener)
void removeMapModelListener(@NotNull MapModelListener< G, A, R > listener)
void setTileStretching(boolean tileStretching)
ToggleAction aDoubleFaces
void mapViewClosing(@NotNull final MapView< G, A, R > mapView)
void setAutoJoin(final boolean autoJoin)
boolean doTileShow(final boolean performAction, final boolean tileShow)
final ExitMatcher< G, A, R > exitMatcher
final String[] directionsMap
boolean doAutoJoin(final boolean performAction, final boolean autoJoin)
void activeMapViewChanged(@Nullable final MapView< G, A, R > mapView)
final MapViewSettings mapViewSettings
final MapModelListener< G, A, R > mapModelListener
MapControl< G, A, R > newMap(@Nullable List< G > objects, @NotNull A mapArchObject, @Nullable MapFile mapFile, boolean interactive)
final MapManagerListener< G, A, R > mapManagerListener
boolean doMapProperties(final boolean performAction)
void createTileSouthWest()
void addMapModelListener(@NotNull MapModelListener< G, A, R > listener)
MapView< G, A, R > currentMapView
void deleteUnknownObjects()
boolean doGridVisible(final boolean performAction, final boolean gridVisible)
final MapPropertiesDialogFactory< G, A, R > mapPropertiesDialogFactory
MapModel< G, A, R > getMapModel()
void setGridVisible(final boolean gridVisible)
final MapManager< G, A, R > mapManager
MapView< G, A, R > newMapView(@NotNull final MapControl< G, A, R > mapControl, @Nullable final Point viewPosition)
MapCursor< G, A, R > getMapCursor()
void mapCursorChangedSize()
ToggleAction aTileStretching
static MapPath newMapPath(@NotNull final String string)
void setAutojoin(boolean autojoin)
final ShrinkMapSizeDialogManager< G, A, R > shrinkMapSizeDialogManager