Gridarta Editor
DefaultFileControl.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.misc;
21 
22 import java.awt.Component;
23 import java.io.File;
24 import java.io.IOException;
25 import javax.swing.JFileChooser;
26 import javax.swing.JOptionPane;
27 import javax.swing.filechooser.FileFilter;
46 import net.sf.japi.swing.action.ActionBuilder;
47 import net.sf.japi.swing.action.ActionBuilderFactory;
48 import org.jetbrains.annotations.NotNull;
49 import org.jetbrains.annotations.Nullable;
50 
55 public class DefaultFileControl<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements FileControl<G, A, R> {
56 
60  @NotNull
61  private static final ActionBuilder ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder("net.sf.gridarta");
62 
66  @NotNull
68 
72  @NotNull
74 
78  @NotNull
80 
84  @NotNull
86 
90  @NotNull
92 
96  @NotNull
97  private final Component parent;
98 
102  @NotNull
103  private final FileFilter mapFileFilter;
104 
108  @NotNull
109  private final FileFilter scriptFileFilter;
110 
114  @NotNull
116 
120  @NotNull
121  private final String scriptExtension;
122 
126  @NotNull
128 
132  @NotNull
133  private final PathManager pathManager;
134 
139  @Nullable
140  private JFileChooser fileChooser;
141 
157  public DefaultFileControl(@NotNull final ProjectSettings projectSettings, @NotNull final VolatileSettings volatileSettings, @NotNull final MapImageCache<G, A, R> mapImageCache, @NotNull final MapManager<G, A, R> mapManager, @NotNull final MapViewsManager<G, A, R> mapViewsManager, @NotNull final Component parent, @NotNull final FileFilter mapFileFilter, @NotNull final FileFilter scriptFileFilter, @NotNull final NewMapDialogFactory<G, A, R> newMapDialogFactory, @NotNull final String scriptExtension, @NotNull final ScriptEditControl scriptEditControl, @NotNull final PathManager pathManager) {
158  this.projectSettings = projectSettings;
159  this.volatileSettings = volatileSettings;
160  this.mapImageCache = mapImageCache;
161  this.mapManager = mapManager;
162  this.mapViewsManager = mapViewsManager;
163  this.parent = parent;
164  this.mapFileFilter = mapFileFilter;
165  this.scriptFileFilter = scriptFileFilter;
166  this.newMapDialogFactory = newMapDialogFactory;
167  this.scriptExtension = scriptExtension;
168  this.scriptEditControl = scriptEditControl;
169  this.pathManager = pathManager;
170  }
171 
176  @NotNull
177  private JFileChooser createFileChooser() {
178  final JFileChooser tmpFileChooser = new JFileChooser();
179  tmpFileChooser.setDialogTitle(ActionBuilderUtils.getString(ACTION_BUILDER, "fileDialog.title"));
180  tmpFileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
181  tmpFileChooser.setMultiSelectionEnabled(true);
182  tmpFileChooser.addChoosableFileFilter(scriptFileFilter);
183  tmpFileChooser.addChoosableFileFilter(mapFileFilter);
184  if (projectSettings.getMapsDirectory().exists()) {
186  }
187  tmpFileChooser.setAccessory(new MapPreviewAccessory(mapImageCache, tmpFileChooser));
188  return tmpFileChooser;
189  }
190 
191  @Override
192  public void openFile(final boolean mapFile) {
193  if (fileChooser == null) {
195  }
196  final JFileChooser tmpFileChooser = fileChooser;
197  tmpFileChooser.setFileFilter(mapFile ? mapFileFilter : scriptFileFilter);
199  final int returnVal = tmpFileChooser.showOpenDialog(parent);
200  if (returnVal != JFileChooser.APPROVE_OPTION) {
201  return;
202  }
203 
204  final File[] files = tmpFileChooser.getSelectedFiles();
205  for (final File file : files) {
206  final boolean isScriptFile = file.getName().toLowerCase().endsWith(scriptExtension);
207  if (file.isFile()) {
208  if (isScriptFile) {
210  } else {
211  try {
212  mapViewsManager.openMapFileWithView(file, null, null);
213  } catch (final IOException ex) {
214  reportLoadError(file, ex.getMessage());
215  }
216  }
217  } else if (!file.exists()) {
218  if (isScriptFile) {
219  scriptEditControl.newScript(); // TODO: pass filename
220  } else {
221  newMapDialogFactory.showNewMapDialog(); // XXX: pass file
222  }
223  } // If neither branch matches, it's a directory - what to do with directories?
224  }
225  }
226 
227  @Override
228  public boolean save(@NotNull final MapControl<G, A, R> mapControl) {
229  final MapFile mapFile = mapControl.getMapModel().getMapFile();
230  if (mapFile != null) {
231  try {
232  mapControl.save();
233  } catch (final IOException ex) {
234  reportSaveError(mapFile.getFile(), ex.getMessage());
235  return false;
236  }
237  return true;
238  }
239 
240  return saveAs(mapControl);
241  }
242 
243  @Override
244  public void saveAllMaps() {
245  for (final MapControl<G, A, R> mapControl : mapManager.getOpenedMaps()) {
246  if (mapControl.getMapModel().isModified() && !save(mapControl)) {
247  return;
248  }
249  }
250  }
251 
252  @Override
253  public boolean closeAllMaps() {
254  while (true) {
255  final MapControl<G, A, R> mapControl = mapManager.getOpenMap();
256  if (mapControl == null) {
257  break;
258  }
259 
260  if (!confirmSaveChanges(mapControl)) {
261  return false;
262  }
263 
264  mapManager.closeMap(mapControl);
265  }
266 
267  return true;
268  }
269 
270  @Override
271  public boolean saveAs(@NotNull final MapControl<G, A, R> mapControl) {
272  final File file = saveMapAs(mapControl);
273  if (file == null) {
274  return false;
275  }
276 
277  try {
278  mapControl.saveAs(pathManager.getMapFile(file));
279  } catch (final IOException ex) {
280  reportSaveError(file, ex.getMessage());
281  return false;
282  }
283 
284  return true;
285  }
286 
292  @Nullable
293  private File saveMapAs(@NotNull final MapControl<G, A, R> mapControl) {
294  final JFileChooser saveFileChooser = new JFileChooser();
295  saveFileChooser.setDialogType(JFileChooser.SAVE_DIALOG);
296  saveFileChooser.setDialogTitle("Save Map Or Script As");
297  saveFileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
298  saveFileChooser.setMultiSelectionEnabled(false);
299  saveFileChooser.resetChoosableFileFilters();
300  saveFileChooser.addChoosableFileFilter(scriptFileFilter);
301  saveFileChooser.setFileFilter(mapFileFilter);
302 
303  final MapFile mapFile = mapControl.getMapModel().getMapFile();
304  final File defaultDir = mapFile == null ? null : mapFile.getFile().getParentFile();
305  if (defaultDir != null && defaultDir.exists()) {
306  FileChooserUtils.setCurrentDirectory(saveFileChooser, defaultDir);
307  saveFileChooser.setSelectedFile(mapFile.getFile());
308  } else {
309  final File currentSaveMapDirectory = volatileSettings.getCurrentSaveMapDirectory();
310  FileChooserUtils.setCurrentDirectory(saveFileChooser, currentSaveMapDirectory);
311  saveFileChooser.setSelectedFile(new File(currentSaveMapDirectory, mapFile == null ? CommonConstants.DEFAULT_MAP_FILENAME : mapFile.getFile().getName()));
312  }
313 
314  final int returnVal = saveFileChooser.showSaveDialog(parent);
315  if (returnVal != JFileChooser.APPROVE_OPTION) {
316  return null;
317  }
318 
319  volatileSettings.setCurrentSaveMapDirectory(saveFileChooser.getCurrentDirectory());
320  final File file = saveFileChooser.getSelectedFile();
321  if (file.exists() && ACTION_BUILDER.showConfirmDialog(parent, JOptionPane.WARNING_MESSAGE, JOptionPane.OK_CANCEL_OPTION, "overwriteOtherFile", file.getName()) != JOptionPane.OK_OPTION) {
322  return null;
323  }
324 
325  return file;
326  }
327 
328  @Override
329  public boolean confirmSaveChanges(@NotNull final MapControl<G, A, R> mapControl) {
330  if (mapControl.getMapModel().isModified()) {
331  final int result = ACTION_BUILDER.showConfirmDialog(parent, JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE, "confirmSaveChanges", mapControl.getMapModel().getMapArchObject().getMapName());
332  if (result == JOptionPane.YES_OPTION) {
333  if (!save(mapControl)) {
334  return false;
335  }
336  } else if (result == JOptionPane.CANCEL_OPTION || result == JOptionPane.CLOSED_OPTION) {
337  return false;
338  }
339  }
340 
341  return true;
342  }
343 
344  @Override
345  public void reportSaveError(@NotNull final MapControl<G, A, R> mapControl, @NotNull final String message) {
346  final MapFile mapFile = mapControl.getMapModel().getMapFile();
347  assert mapFile != null;
348  reportSaveError(mapFile.getFile(), message);
349  }
350 
351  @Override
352  public void reportSaveError(@NotNull final File mapFile, @NotNull final String message) {
353  ACTION_BUILDER.showMessageDialog(parent, "encodeMapFile", mapFile, message);
354  }
355 
356  @Override
357  public void reportLoadError(@Nullable final File file, @NotNull final String message) {
358  ACTION_BUILDER.showMessageDialog(parent, "openFileLoadMap", file == null ? "<unknown>" : file, message);
359  }
360 
361  @Override
362  public void reportOutOfMapBoundsDeleted(@NotNull final File file, final int outOfMapBoundsDeleted, @NotNull final StringBuilder outOfMapBoundsObjects) {
363  ACTION_BUILDER.showMessageDialog(parent, "openFileOutOfMapBoundsDeleted", file, outOfMapBoundsDeleted, outOfMapBoundsObjects);
364  }
365 
366  @Override
367  public void reportOutOfMemory(@NotNull final File file) {
368  ACTION_BUILDER.showMessageDialog(parent, "mapOutOfMemory", file);
369  }
370 
371  @Override
372  public void reportTeleportCharacterError(@NotNull final String mapPath, @NotNull final String message) {
373  ACTION_BUILDER.showMessageDialog(parent, "teleportCharacterError", mapPath, message);
374  }
375 
376 }
net.sf.gridarta.gui.mapimagecache
Definition: ImageType.java:20
net.sf.gridarta.gui.misc.DefaultFileControl.ACTION_BUILDER
static final ActionBuilder ACTION_BUILDER
The ActionBuilder.
Definition: DefaultFileControl.java:61
net.sf.gridarta.model.mapmanager
Definition: AbstractMapManager.java:20
net.sf.gridarta.textedit.scripteditor
Classes for the script editor used within the editor to create and modify Python and Lua scripts.
Definition: Actions.java:20
net.sf.gridarta.model.mapmanager.MapManager
A MapManager manages all opened maps.
Definition: MapManager.java:37
net.sf.gridarta.gui.misc.DefaultFileControl.closeAllMaps
boolean closeAllMaps()
Invoked when the user wants to close all maps.
Definition: DefaultFileControl.java:253
net.sf.gridarta
Base package of all Gridarta classes.
net.sf.gridarta.utils.FileChooserUtils.setCurrentDirectory
static void setCurrentDirectory(@NotNull final JFileChooser fileChooser, @Nullable final File dir)
Calls JFileChooser#setCurrentDirectory(File).
Definition: FileChooserUtils.java:48
net.sf.gridarta.gui.map.MapPreviewAccessory
Abstract base class for MapPreviewAccessories which are used for previewing maps in JFileChoosers.
Definition: MapPreviewAccessory.java:52
files
Standard Edition Runtime Environment README Import and export control rules on cryptographic software vary from country to country The Java Cryptography Java provides two different sets of cryptographic policy files
Definition: README.txt:26
net.sf.gridarta.gui.misc.DefaultFileControl.openFile
void openFile(final boolean mapFile)
The user wants to edit a file.
Definition: DefaultFileControl.java:192
net.sf.gridarta.gui.misc.DefaultFileControl.volatileSettings
final VolatileSettings volatileSettings
The VolatileSettings.
Definition: DefaultFileControl.java:73
net.sf.gridarta.gui.misc.DefaultFileControl.mapImageCache
final MapImageCache< G, A, R > mapImageCache
The MapImageCache.
Definition: DefaultFileControl.java:79
net.sf
net.sf.gridarta.model.mapmanager.FileControl
Definition: FileControl.java:30
net.sf.gridarta.model.io.PathManager
This class contains methods for converting relative map paths to absolute map paths and vice versa.
Definition: PathManager.java:39
net.sf.gridarta.model.mapmodel
Definition: AboveFloorInsertionMode.java:20
net.sf.gridarta.utils.CommonConstants
Class with constants used in Gridarta and derivates.
Definition: CommonConstants.java:28
net.sf.gridarta.gui.misc.DefaultFileControl.scriptFileFilter
final FileFilter scriptFileFilter
The FileFilter for selecting script files.
Definition: DefaultFileControl.java:109
net.sf.gridarta.utils.FileChooserUtils.sanitizeCurrentDirectory
static void sanitizeCurrentDirectory(@NotNull final JFileChooser fileChooser)
Makes sure the current directory of a JFileChooser is valid.
Definition: FileChooserUtils.java:56
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.model.mapcontrol
Definition: DefaultMapControl.java:20
net.sf.gridarta.textedit
net.sf.gridarta.gui
Graphical User Interface of Gridarta.
net.sf.gridarta.gui.misc.DefaultFileControl.projectSettings
final ProjectSettings projectSettings
The ProjectSettings.
Definition: DefaultFileControl.java:67
net.sf.gridarta.gui.misc.DefaultFileControl.reportTeleportCharacterError
void reportTeleportCharacterError(@NotNull final String mapPath, @NotNull final String message)
Reports an error while teleporting a character to the current map.
Definition: DefaultFileControl.java:372
net.sf.gridarta.model.mapmanager.MapManager.getOpenedMaps
List< MapControl< G, A, R > > getOpenedMaps()
Returns all opened maps.
net.sf.gridarta.gui.misc.DefaultFileControl.pathManager
final PathManager pathManager
The PathManager for creating MapFile instances.
Definition: DefaultFileControl.java:133
net.sf.gridarta.gui.misc.DefaultFileControl.reportSaveError
void reportSaveError(@NotNull final MapControl< G, A, R > mapControl, @NotNull final String message)
Reports an error while saving a map file to the user.
Definition: DefaultFileControl.java:345
net.sf.gridarta.gui.misc.DefaultFileControl.scriptExtension
final String scriptExtension
The file extension for script files.
Definition: DefaultFileControl.java:121
net.sf.gridarta.gui.misc.DefaultFileControl.newMapDialogFactory
final NewMapDialogFactory< G, A, R > newMapDialogFactory
The NewMapDialogFactory.
Definition: DefaultFileControl.java:115
net.sf.gridarta.gui.mapimagecache.MapImageCache
Caches icon and preview images for map files.
Definition: MapImageCache.java:53
net.sf.gridarta.model.gameobject
GameObjects are the objects based on Archetypes found on maps.
Definition: AbstractGameObject.java:20
net.sf.gridarta.gui.dialog.newmap.NewMapDialogFactory.showNewMapDialog
void showNewMapDialog()
Shows a dialog for creating a new map.
Definition: NewMapDialogFactory.java:143
net
net.sf.gridarta.gui.misc.DefaultFileControl.scriptEditControl
final ScriptEditControl scriptEditControl
The ScriptEditControl to forward to.
Definition: DefaultFileControl.java:127
net.sf.gridarta.gui.misc.DefaultFileControl.saveMapAs
File saveMapAs(@NotNull final MapControl< G, A, R > mapControl)
Displays a "save as" dialog.
Definition: DefaultFileControl.java:293
net.sf.gridarta.gui.misc.DefaultFileControl.confirmSaveChanges
boolean confirmSaveChanges(@NotNull final MapControl< G, A, R > mapControl)
Asks the user whether to save changes of a map.
Definition: DefaultFileControl.java:329
net.sf.gridarta.gui.misc.DefaultFileControl.save
boolean save(@NotNull final MapControl< G, A, R > mapControl)
Save one map.
Definition: DefaultFileControl.java:228
net.sf.gridarta.model.maparchobject.MapArchObject
Interface for MapArchObjects.
Definition: MapArchObject.java:40
net.sf.gridarta.model.io.PathManager.getMapFile
MapFile getMapFile(@NotNull final AbsoluteMapPath mapPath)
Returns a MapFile instance from an AbsoluteMapPath.
Definition: PathManager.java:72
net.sf.gridarta.gui.map.mapview
Definition: AbstractMapView.java:20
net.sf.gridarta.model.mapmodel.MapFile.getFile
File getFile()
Returns a File for this map file.
Definition: MapFile.java:102
net.sf.gridarta.gui.misc.DefaultFileControl.mapFileFilter
final FileFilter mapFileFilter
The FileFilter for selecting map files.
Definition: DefaultFileControl.java:103
net.sf.gridarta.gui.misc.DefaultFileControl.saveAs
boolean saveAs(@NotNull final MapControl< G, A, R > mapControl)
Asks the user for a filename, then saves the map.
Definition: DefaultFileControl.java:271
net.sf.gridarta.gui.misc.DefaultFileControl.fileChooser
JFileChooser fileChooser
The JFileChooser for opening a file.
Definition: DefaultFileControl.java:140
net.sf.gridarta.gui.dialog.newmap
Definition: AbstractMapsizeNewMapDialog.java:20
net.sf.gridarta.gui.dialog.newmap.NewMapDialogFactory
Utility class to create NewMapDialog instances.
Definition: NewMapDialogFactory.java:39
net.sf.gridarta.gui.misc.DefaultFileControl.mapViewsManager
final MapViewsManager< G, A, R > mapViewsManager
The MapViewsManager.
Definition: DefaultFileControl.java:91
net.sf.gridarta.gui.misc.DefaultFileControl.createFileChooser
JFileChooser createFileChooser()
Creates the JFileChooser for opening a file.
Definition: DefaultFileControl.java:177
net.sf.gridarta.utils.ActionBuilderUtils.getString
static String getString(@NotNull final ActionBuilder actionBuilder, @NotNull final String key, @NotNull final String defaultValue)
Returns the value of a key.
Definition: ActionBuilderUtils.java:71
net.sf.gridarta.gui.dialog
net.sf.gridarta.model.mapmodel.MapFile
The location of a map file with a map directory.
Definition: MapFile.java:31
net.sf.gridarta.textedit.scripteditor.ScriptEditControl.openScriptFile
void openScriptFile(@NotNull final File file)
Opens a script file.
Definition: ScriptEditControl.java:155
net.sf.gridarta.model.io
Reading and writing of maps, handling of paths.
Definition: AbstractAnimationObjectsReader.java:20
net.sf.gridarta.model.settings.ProjectSettings
Settings that apply to a project.
Definition: ProjectSettings.java:29
net.sf.gridarta.gui.misc.DefaultFileControl.mapManager
final MapManager< G, A, R > mapManager
The MapManager.
Definition: DefaultFileControl.java:85
net.sf.gridarta.textedit.scripteditor.ScriptEditControl
ScriptEditControl - Manages events and data flow for the script editor entity.
Definition: ScriptEditControl.java:59
net.sf.gridarta.model
net.sf.gridarta.model.archetype.Archetype
Reflects an Archetype.
Definition: Archetype.java:41
net.sf.gridarta.gui.misc.DefaultFileControl.reportSaveError
void reportSaveError(@NotNull final File mapFile, @NotNull final String message)
Reports an error while saving a map file to the user.
Definition: DefaultFileControl.java:352
net.sf.gridarta.model.settings.VolatileSettings
Settings that are not retained across editor restarts.
Definition: VolatileSettings.java:29
net.sf.gridarta.gui.map
Base classes for rendering maps.
Definition: AbstractPerMapDialogManager.java:20
net.sf.gridarta.utils.FileChooserUtils
Utility class for JFileChooser related functions.
Definition: FileChooserUtils.java:31
net.sf.gridarta.model.settings.VolatileSettings.setCurrentSaveMapDirectory
void setCurrentSaveMapDirectory(@NotNull File currentSaveMapDirectory)
Sets the default directory for saving maps.
net.sf.gridarta.gui.misc.DefaultFileControl.DefaultFileControl
DefaultFileControl(@NotNull final ProjectSettings projectSettings, @NotNull final VolatileSettings volatileSettings, @NotNull final MapImageCache< G, A, R > mapImageCache, @NotNull final MapManager< G, A, R > mapManager, @NotNull final MapViewsManager< G, A, R > mapViewsManager, @NotNull final Component parent, @NotNull final FileFilter mapFileFilter, @NotNull final FileFilter scriptFileFilter, @NotNull final NewMapDialogFactory< G, A, R > newMapDialogFactory, @NotNull final String scriptExtension, @NotNull final ScriptEditControl scriptEditControl, @NotNull final PathManager pathManager)
Creates a new instance.
Definition: DefaultFileControl.java:157
net.sf.gridarta.gui.misc.DefaultFileControl.reportOutOfMemory
void reportOutOfMemory(@NotNull final File file)
Definition: DefaultFileControl.java:367
net.sf.gridarta.model.mapmanager.MapManager.getOpenMap
MapControl< G, A, R > getOpenMap()
Returns one open map.
net.sf.gridarta.model.mapcontrol.MapControl
Currently nothing more than a marker interface for unification.
Definition: MapControl.java:35
net.sf.gridarta.utils.ActionBuilderUtils
Utility class for ActionBuilder related functions.
Definition: ActionBuilderUtils.java:31
net.sf.gridarta.gui.misc.DefaultFileControl
Default FileControl implementation.
Definition: DefaultFileControl.java:55
net.sf.gridarta.utils.CommonConstants.DEFAULT_MAP_FILENAME
static final String DEFAULT_MAP_FILENAME
Default file name for new maps.
Definition: CommonConstants.java:54
net.sf.gridarta.model.maparchobject
Definition: AbstractMapArchObject.java:20
net.sf.gridarta.gui.misc.DefaultFileControl.saveAllMaps
void saveAllMaps()
Saves all maps.
Definition: DefaultFileControl.java:244
net.sf.gridarta.gui.misc.DefaultFileControl.parent
final Component parent
The parent component for showing dialog boxes.
Definition: DefaultFileControl.java:97
net.sf.gridarta.model.settings.ProjectSettings.getMapsDirectory
File getMapsDirectory()
Returns the default maps directory.
net.sf.gridarta.gui.map.mapview.MapViewsManager.openMapFileWithView
MapView< G, A, R > openMapFileWithView(@NotNull final MapFile mapFile, @Nullable final Point viewPosition)
Loads a map file and creates a map view.
Definition: MapViewsManager.java:333
net.sf.gridarta.gui.misc.DefaultFileControl.reportLoadError
void reportLoadError(@Nullable final File file, @NotNull final String message)
Definition: DefaultFileControl.java:357
net.sf.gridarta.gui.map.mapview.MapViewsManager
Stores all existing MapViews.
Definition: MapViewsManager.java:47
net.sf.gridarta.model.settings.VolatileSettings.getCurrentSaveMapDirectory
File getCurrentSaveMapDirectory()
Returns the default directory for saving maps.
net.sf.gridarta.gui.misc.DefaultFileControl.reportOutOfMapBoundsDeleted
void reportOutOfMapBoundsDeleted(@NotNull final File file, final int outOfMapBoundsDeleted, @NotNull final StringBuilder outOfMapBoundsObjects)
Definition: DefaultFileControl.java:362
net.sf.gridarta.utils
Definition: ActionBuilderUtils.java:20
net.sf.gridarta.textedit.scripteditor.ScriptEditControl.newScript
void newScript()
Open a new empty script document.
Definition: ScriptEditControl.java:146
net.sf.gridarta.model.settings
Definition: AbstractDefaultProjectSettings.java:20
net.sf.gridarta.model.mapmanager.MapManager.closeMap
void closeMap(@NotNull MapControl< G, A, R > mapControl)
Closes the given map, ignoring modified status.