Go to the documentation of this file.
20 package net.sf.gridarta.gui.panel.pickmapchooser;
22 import java.awt.Component;
24 import java.io.IOException;
25 import java.util.Collection;
26 import java.util.Collections;
27 import java.util.HashSet;
28 import java.util.List;
30 import javax.swing.Action;
31 import javax.swing.JOptionPane;
32 import javax.swing.JPopupMenu;
33 import javax.swing.event.ChangeEvent;
34 import javax.swing.event.ChangeListener;
59 import net.
sf.japi.swing.action.ActionBuilder;
60 import net.
sf.japi.swing.action.ActionBuilderFactory;
61 import net.
sf.japi.swing.action.ActionMethod;
62 import org.apache.log4j.Category;
63 import org.apache.log4j.Logger;
64 import org.jetbrains.annotations.NotNull;
65 import org.jetbrains.annotations.Nullable;
85 private static final ActionBuilder
ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder(
"net.sf.gridarta");
191 reloadPickmap(mapControl.getMapModel().getMapFile().getFile());
202 public void mapSizeChanged(@NotNull
final Size2D newSize) {
212 public void mapObjectsChanged(@NotNull
final Set<G> gameObjects, @NotNull
final Set<G> transientGameObjects) {
222 public void mapFileChanged(@Nullable
final MapFile oldMapFile) {
227 public void modifiedChanged() {
250 public void pickmapModifiedChanged(
final int index, @NotNull
final PickmapState<G, A, R> pickmapState) {
263 public void stateChanged(
final ChangeEvent e) {
266 if (mapControl !=
null) {
286 public void mapCreated(@NotNull
final MapControl<G, A, R> mapControl,
final boolean interactive) {
287 if (!mapControl.isPickmap()) {
299 if (!mapControl.isPickmap()) {
325 public PickmapChooserControl(@NotNull
final PickmapChooserModel<G, A, R> pickmapChooserModel, @NotNull
final PickmapSettings pickmapSettings, @NotNull
final NewMapDialogFactory<G, A, R> newMapDialogFactory, @NotNull
final MapFolderTree<G, A, R> mapFolderTree, @NotNull
final MapManager<G, A, R> mapManager, @NotNull
final Component
parent, @NotNull
final MapViewsManager<G, A, R> mapViewsManager, @NotNull
final FileControl<G, A, R> fileControl, @NotNull
final PickmapChooserView<G, A, R> pickmapChooserView) {
335 view = pickmapChooserView;
355 if (pickmapState !=
null) {
358 }
catch (
final IOException ex) {
359 LOG.warn(
"cannot reload pickmap " + pickmapState.
getFile() +
": " + ex.getMessage());
377 if (pickmap ==
null) {
390 final Collection<MapControl<G, A, R>> unsavedPickmaps =
new HashSet<>();
393 final int result =
ACTION_BUILDER.showConfirmDialog(
parent, JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE,
"pickmapConfirmSaveChanges", pickmap.getMapModel().getMapArchObject().getMapName());
394 if (result == JOptionPane.YES_OPTION) {
397 }
catch (
final IOException e) {
398 ACTION_BUILDER.showMessageDialog(
parent,
"encodeMapFile", pickmap.getMapModel().getMapFile(), e.getMessage());
401 if (pickmap.getMapModel().isModified()) {
404 }
else if (result == JOptionPane.CANCEL_OPTION || result == JOptionPane.CLOSED_OPTION) {
418 if (selectedIndex == -1) {
423 }
catch (
final IndexOutOfBoundsException ignored) {
436 if (this.active ==
active) {
447 if (gameObject.isEqual(selection)) {
458 if (pickmap ==
null) {
459 return Collections.emptyList();
603 if (pickmapState ==
null) {
608 final File file = pickmapState.
getFile();
611 }
catch (
final IOException ex) {
631 if (pickmapState ==
null) {
640 pickmapState.
remove(
true);
661 if (pickmapState ==
null) {
668 }
catch (
final IOException e) {
688 if (pickmapState ==
null) {
692 final File mapFileFile = pickmapState.
getFile();
698 if (mapControl ==
null) {
704 if (mapControlMapFile ==
null) {
709 if (!mapControlMapFile.
getFile().exists()) {
720 }
catch (
final IOException ex) {
721 ACTION_BUILDER.showMessageDialog(
null,
"pickmapIOError", mapFileFile.getName(), ex.getMessage());
730 public void setAction(@NotNull
final Action action, @NotNull
final String
name) {
732 case "addNewPickmap":
736 case "openPickmapMap":
740 case "deletePickmap":
748 case "revertPickmap":
753 throw new IllegalArgumentException(
"unsupported action name: " +
name);
void remove(final boolean deleteFile)
MapView< G, A, R > openMapFileWithView(@NotNull final MapFile mapFile, @Nullable final Point viewPosition)
final MapViewsManager< G, A, R > mapViewsManager
void setPopupMenu(@NotNull final JPopupMenu popupMenu)
List< G > getSelections()
boolean isMatching(@NotNull final G gameObject)
boolean doRevertPickmap(final boolean performAction)
final NewMapDialogFactory< G, A, R > newMapDialogFactory
final PickmapChooserView< G, A, R > view
static final ActionBuilder ACTION_BUILDER
void removeMapControlListener(@NotNull MapControlListener< G, A, R > listener)
static final Category LOG
final MapControlListener< G, A, R > mapControlListener
void setLocked(boolean locked)
boolean isLockAllPickmaps()
MapView< G, A, R > getMapViewFrame(@NotNull final MapControl< G, A, R > mapControl)
PickmapState< G, A, R > getOpenPickmapMap()
G getSelectedGameObject()
MapControl< G, A, R > currentPickmapControl
void addChangeListener(@NotNull final ChangeListener changeListener)
boolean doSavePickmap(final boolean performAction)
final ChangeListener changeListener
void setLockAllPickmaps(final boolean lockAllPickmaps)
final PickmapChooserModel< G, A, R > pickmapChooserModel
boolean doOpenPickmapMap(final boolean performAction)
void setPopupMenu(@NotNull final JPopupMenu popupMenu)
Component getPickmapPanel()
PickmapState< G, A, R > getPickmap(@NotNull final File file)
void setActive(final boolean active)
PickmapChooserControl(@NotNull final PickmapChooserModel< G, A, R > pickmapChooserModel, @NotNull final PickmapSettings pickmapSettings, @NotNull final NewMapDialogFactory< G, A, R > newMapDialogFactory, @NotNull final MapFolderTree< G, A, R > mapFolderTree, @NotNull final MapManager< G, A, R > mapManager, @NotNull final Component parent, @NotNull final MapViewsManager< G, A, R > mapViewsManager, @NotNull final FileControl< G, A, R > fileControl, @NotNull final PickmapChooserView< G, A, R > pickmapChooserView)
PickmapState< G, A, R > currentPickmapState
void addPickmapChooserListener(@NotNull final PickmapChooserModelListener< G, A, R > pickmapChooserModelListener)
final MapModelListener< G, A, R > mapModelListener
void fireActivePickmapChanged(@Nullable final PickmapState< G, A, R > pickmapState)
void setAction(@NotNull final Action action, @NotNull final String name)
void removeMapModelListener(@NotNull MapModelListener< G, A, R > listener)
MapControl< G, A, R > getPickmap()
static String getString(@NotNull final ActionBuilder actionBuilder, @NotNull final String key, @NotNull final String defaultValue)
final PickmapSettings pickmapSettings
void reloadPickmap(@NotNull final File file)
boolean doDeletePickmap(final boolean performAction)
void setCurrentPickmap(@Nullable final PickmapState< G, A, R > currentPickmapState)
PickmapState< G, A, R > get(final int index)
PickmapState< G, A, R > getSelectedPickmap()
final FileControl< G, A, R > fileControl
List< G > getSelectedGameObjects()
void getUnsavedPickmaps(@NotNull final Collection< MapControl< G, A, R >> unsavedMaps)
void addMapModelListener(@NotNull MapModelListener< G, A, R > listener)
void addMapControlListener(@NotNull MapControlListener< G, A, R > listener)
void showNewPickmapDialog()
MapModel< G, A, R > getMapModel()
boolean doAddNewPickmap(final boolean performAction)
MapCursor< G, A, R > getMapCursor()
final MapFolderTree< G, A, R > mapFolderTree
final MapManagerListener< G, A, R > mapManagerListener
void reportLoadError(@Nullable File file, @NotNull String message)
void addPickmapSettingsListener(@NotNull PickmapSettingsListener listener)
final PickmapSettingsListener pickmapSettingsListener
final PickmapChooserModelListener< G, A, R > pickmapChooserModelListener