20 package net.sf.gridarta.gui.utils;
22 import java.awt.BorderLayout;
23 import java.awt.Component;
24 import java.awt.Insets;
26 import javax.swing.AbstractButton;
27 import javax.swing.JButton;
28 import javax.swing.JComponent;
29 import javax.swing.JFileChooser;
30 import javax.swing.JTextField;
31 import javax.swing.event.DocumentListener;
34 import net.
sf.japi.swing.action.ActionBuilder;
35 import net.
sf.japi.swing.action.ActionBuilderFactory;
36 import net.
sf.japi.swing.action.ActionMethod;
37 import org.jetbrains.annotations.NotNull;
38 import org.jetbrains.annotations.Nullable;
56 private static final ActionBuilder
ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder(
"net.sf.gridarta");
92 public JFileField(@NotNull
final Component
parent, @NotNull
final String key, @Nullable
final File
baseDir, @NotNull
final File file,
final int fileSelectionMode) {
97 fileChooser.setFileSelectionMode(fileSelectionMode);
103 setLayout(
new BorderLayout());
115 if (text.isEmpty()) {
118 return new File(
baseDir, text);
125 public void setFile(@NotNull
final File file) {
134 public boolean isFile(@NotNull
final File file) {
153 textField.getDocument().addDocumentListener(documentListener);
177 super.setEnabled(enabled);