 |
Gridarta Editor
|
Go to the documentation of this file.
20 package net.sf.gridarta.gui.panel.tools;
22 import java.awt.BorderLayout;
23 import java.awt.CardLayout;
24 import java.awt.Component;
25 import java.awt.Container;
26 import java.awt.FlowLayout;
27 import java.awt.Insets;
28 import java.awt.event.ActionEvent;
29 import java.util.HashMap;
31 import javax.swing.AbstractAction;
32 import javax.swing.AbstractButton;
33 import javax.swing.Action;
34 import javax.swing.ButtonGroup;
35 import javax.swing.JPanel;
36 import javax.swing.JToggleButton;
47 import net.
sf.japi.swing.action.ActionBuilder;
48 import net.
sf.japi.swing.action.ActionBuilderFactory;
49 import org.jetbrains.annotations.NotNull;
50 import org.jetbrains.annotations.Nullable;
68 private static final ActionBuilder
ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder(
"net.sf.gridarta.gui.panel.tools");
104 private final Map<String, Tool<G, A, R>>
tools =
new HashMap<>();
123 public ToolSelector(@NotNull
final String defaultTool, @NotNull
final MapViewSettings mapViewSettings, @NotNull
final SelectedSquareModel<G, A, R> selectedSquareModel, @NotNull
final ObjectChooser<G, A, R> objectChooser, @NotNull
final PickmapSettings pickmapSettings, @Nullable
final GameObjectMatcher floorGameObjectMatcher, @Nullable
final GameObjectMatcher wallGameObjectMatcher, @Nullable
final GameObjectMatcher monsterGameObjectMatcher, @NotNull
final InsertionModeSet<G, A, R> insertionModeSet) {
127 addTool(
new DeletionTool<>(mapViewSettings, objectChooser, pickmapSettings, floorGameObjectMatcher, wallGameObjectMatcher, monsterGameObjectMatcher), defaultTool);
128 addTool(
new InsertionTool<>(selectedSquareModel, objectChooser, pickmapSettings, insertionModeSet, mapViewSettings), defaultTool);
137 add(tool, tool.getId().equals(defaultTool));
144 setLayout(
new BorderLayout());
164 @NotNull
final Action selectionAction =
new SelectionAction(tool);
165 @NotNull
final AbstractButton toggleButton =
new JToggleButton(selectionAction);
170 final Container panel =
new JPanel(
new BorderLayout());
171 panel.add(optionsView, BorderLayout.NORTH);
173 toggleButton.setSelected(selected);
174 tools.put(tool.getId(), tool);
191 @Nullable
final Component optionsView = tool.createOptionsView();
192 return optionsView ==
null ?
new JPanel() : optionsView;
259 public Object
clone() throws CloneNotSupportedException {
260 return super.clone();
Base package of all Gridarta classes.
Interface for Mouse Operations.
Interface for classes that match GameObjects.
Reflects a game object (object on a map).
Container for settings that affect the rendering of maps.
Graphical User Interface of Gridarta.
GameObjects are the objects based on Archetypes found on maps.
Classes related to matching {GameObjects}, so called { net.sf.gridarta.model.match....
Interface for MapArchObjects.
The model component of the selected square control.
Common base interface for ObjectChoosers.
Base classes for rendering maps.
Displays the contents of the currently selected map square.
Container for settings that affect pickmaps.