Gridarta Editor
MoveSquareTopAction.java
Go to the documentation of this file.
1 /*
2  * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games.
3  * Copyright (C) 2000-2015 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.action;
21 
29 import net.sf.japi.swing.action.ActionMethod;
30 import org.jetbrains.annotations.NotNull;
31 import org.jetbrains.annotations.Nullable;
32 
38 public class MoveSquareTopAction<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractMoveSquareAction<G, A, R> {
39 
45  public MoveSquareTopAction(@NotNull final SelectedSquareModel<G, A, R> selectedSquareModel, @Nullable final MapManager<G, A, R> mapManager) {
46  super(selectedSquareModel, mapManager);
47  }
48 
52  @ActionMethod
53  public void moveSquareTop() {
54  doAction(true);
55  }
56 
57  @Override
58  protected boolean doAction(final boolean performAction, @Nullable final G gameObject) {
59  if (gameObject == null || !gameObject.isHead() || gameObject.isTop()) {
60  return false;
61  }
62 
63  if (performAction) {
64  final MapSquare<G, A, R> mapSquare = gameObject.getMapSquare();
65  assert mapSquare != null;
66  final MapModel<G, A, R> mapModel = mapSquare.getMapModel();
67  mapModel.beginTransaction("Move Top");
68  try {
69  gameObject.moveTop();
70  } finally {
71  mapModel.endTransaction();
72  }
73  }
74 
75  return true;
76  }
77 
78 }
A MapModel reflects the data of a map.
Definition: MapModel.java:75
A MapManager manages all opened maps.
Definition: MapManager.java:37
Graphical User Interface of Gridarta.
MapModel< G, A, R > getMapModel()
Returns the MapModel this map square is part of.
Definition: MapSquare.java:99
boolean doAction(final boolean performAction, @Nullable final G gameObject)
void endTransaction()
End a transaction.
Base package of all Gridarta classes.
MapModel< G, A, R > mapModel
The currently active MapModel.
Abstract base class for actions that move the selected game object in the SelectedSquareModel.
Reflects a game object (object on a map).
Definition: GameObject.java:36
final SelectedSquareModel< G, A, R > selectedSquareModel
The SelectedSquareModel that is updated.
GameObjects are the objects based on Archetypes found on maps.
void moveSquareTop()
Action method that moves the selected game object to the top.
Displays the contents of the currently selected map square.
MoveSquareTopAction(@NotNull final SelectedSquareModel< G, A, R > selectedSquareModel, @Nullable final MapManager< G, A, R > mapManager)
Creates a new instance.
An net.sf.gridarta.utils.EditorAction that moves the selected game object in the SelectedSquareModel ...
void beginTransaction(@NotNull String name)
Starts a new transaction.
The model component of the selected square control.