Package net.sf.gridarta.gui.mapfiles
Class MapFolderTree<G extends GameObject<G,A,R>,A extends MapArchObject<A>,R extends Archetype<G,A,R>>
- java.lang.Object
-
- net.sf.gridarta.gui.mapfiles.MapFolderTree<G,A,R>
-
- All Implemented Interfaces:
java.lang.Iterable<MapFolder<G,A,R>>
public class MapFolderTree<G extends GameObject<G,A,R>,A extends MapArchObject<A>,R extends Archetype<G,A,R>> extends java.lang.Object implements java.lang.Iterable<MapFolder<G,A,R>>
Stores all knownMapFiles. The map files are grouped intoMapFolders. One of these folder can be the "active folder"; this is the folder the GUI operates on.
-
-
Constructor Summary
Constructors Constructor Description MapFolderTree(@NotNull java.io.File baseDir)Creates a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddMapFolder(@NotNull MapFolder<G,A,R> mapFolder)Adds a map folder to this model.voidaddModelListener(@NotNull MapFolderTreeListener<G,A,R> listener)Adds aMapFolderTreeListenerto be informed about changes.@Nullable MapFolder<G,A,R>getActiveMapFolder()Returns the active map folder.@NotNull java.io.FilegetBaseDir()Returns the base directory for creating new map folders.voidgetUnsavedPickmaps(@NotNull java.util.Collection<MapControl<G,A,R>> unsavedMaps)Returns all unsaved map controls of this model.java.util.Iterator<MapFolder<G,A,R>>iterator()Returns anIteratorreturning all map folders.voidremoveMapFolder(@NotNull MapFolder<G,A,R> mapFolder, boolean deleteFile)Removes a map folder from this model.voidremoveModelListener(@NotNull MapFolderTreeListener<G,A,R> listener)Removes aMapFolderTreeListenerto be informed about changes.voidsetActiveMapFolder(@NotNull MapFolder<G,A,R> mapFolder)Sets the active map folder.
-
-
-
Method Detail
-
getBaseDir
@NotNull public @NotNull java.io.File getBaseDir()
Returns the base directory for creating new map folders.- Returns:
- the base directory for creating new map folders
-
addMapFolder
public void addMapFolder(@NotNull @NotNull MapFolder<G,A,R> mapFolder) throws DuplicateMapFolderExceptionAdds a map folder to this model. The added map folder's name must be different from all existing map folder names.- Parameters:
mapFolder- the map folder to add- Throws:
DuplicateMapFolderException- if the map folder's name is not unique
-
removeMapFolder
public void removeMapFolder(@NotNull @NotNull MapFolder<G,A,R> mapFolder, boolean deleteFile) throws MapFolderNotEmptyExceptionRemoves a map folder from this model. If the active map folder is removed, the next or previous map folder becomes the active folder.- Parameters:
mapFolder- the map folder to removedeleteFile- if set, also remove the map files- Throws:
MapFolderNotEmptyException- if the map folder contains sub-folders
-
getActiveMapFolder
@Nullable public @Nullable MapFolder<G,A,R> getActiveMapFolder()
Returns the active map folder.- Returns:
- the active map folder or
nullif no folder is active
-
setActiveMapFolder
public void setActiveMapFolder(@NotNull @NotNull MapFolder<G,A,R> mapFolder)Sets the active map folder. The passed map folder must be part of this model.- Parameters:
mapFolder- the active map folder ornullif no folder should be active
-
iterator
public java.util.Iterator<MapFolder<G,A,R>> iterator()
Returns anIteratorreturning all map folders. The folders are sorted by folder name.- Specified by:
iteratorin interfacejava.lang.Iterable<G extends GameObject<G,A,R>>
-
addModelListener
public void addModelListener(@NotNull @NotNull MapFolderTreeListener<G,A,R> listener)Adds aMapFolderTreeListenerto be informed about changes.- Parameters:
listener- the listener to add
-
removeModelListener
public void removeModelListener(@NotNull @NotNull MapFolderTreeListener<G,A,R> listener)Removes aMapFolderTreeListenerto be informed about changes.- Parameters:
listener- the listener to remove
-
getUnsavedPickmaps
public void getUnsavedPickmaps(@NotNull @NotNull java.util.Collection<MapControl<G,A,R>> unsavedMaps)Returns all unsaved map controls of this model.- Parameters:
unsavedMaps- the collection to add the unsaved pickmaps to
-
-