20 package net.sf.gridarta.gui.map;
22 import java.awt.BorderLayout;
23 import java.awt.Dimension;
24 import java.awt.Image;
25 import java.beans.PropertyChangeListener;
27 import java.util.prefs.Preferences;
28 import javax.swing.Action;
29 import javax.swing.Icon;
30 import javax.swing.ImageIcon;
31 import javax.swing.JButton;
32 import javax.swing.JComponent;
33 import javax.swing.JFileChooser;
34 import javax.swing.JLabel;
35 import javax.swing.JScrollPane;
36 import javax.swing.SwingConstants;
37 import javax.swing.filechooser.FileView;
40 import net.
sf.japi.swing.action.ActionBuilder;
41 import net.
sf.japi.swing.action.ActionBuilderFactory;
42 import net.
sf.japi.swing.action.ActionMethod;
43 import net.
sf.japi.swing.action.ToggleAction;
44 import org.jetbrains.annotations.NotNull;
45 import org.jetbrains.annotations.Nullable;
63 private static final ActionBuilder
ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder(
"net.sf.gridarta");
87 private final JLabel
preview =
new JLabel();
129 final PropertyChangeListener propertyChangeListener = evt -> {
130 final String prop = evt.getPropertyName();
131 if (JFileChooser.DIRECTORY_CHANGED_PROPERTY.equals(prop)) {
133 }
else if (JFileChooser.SELECTED_FILE_CHANGED_PROPERTY.equals(prop)) {
134 final File selectedFile = (File) evt.getNewValue();
135 if (selectedFile ==
null) {
139 if (previewImage ==
null) {
145 }
else if (JFileChooser.SELECTED_FILES_CHANGED_PROPERTY.equals(prop)) {
149 fileChooser.addPropertyChangeListener(propertyChangeListener);
158 setPreferredSize(
new Dimension(240, 115));
159 setLayout(
new BorderLayout());
161 add(
new JButton(
genPreview), BorderLayout.SOUTH);
162 preview.setHorizontalAlignment(SwingConstants.CENTER);
163 add(
new JScrollPane(
preview), BorderLayout.CENTER);
171 preview.setIcon(image ==
null ?
null :
new ImageIcon(image));
220 for (
final File file :
files) {
259 final Image image =
fileChooser.getCurrentDirectory().equals(f.getParentFile()) ?
getMapIcon(f) :
null;
260 return image ==
null ? super.getIcon(f) :
new ImageIcon(image);