package osm.surveyor.matchtime.gui;
import java.awt.event.ActionEvent;
import java.io.File;
import java.io.FileNotFoundException;
import javax.swing.JButton;
import javax.swing.JFileChooser;
@SuppressWarnings("serial")
public class ParameterPanelImageFile extends ParameterPanel {
JFileChooser fc;
public JButton openButton;
public ParameterPanelFolder paramDir;
public ParameterPanelImageFile(
String label, String text,
ParameterPanelFolder paramDir
) {
super(label, text);
// "選択..."
SelectButtonAction buttonAction = new SelectButtonAction();
openButton = new JButton(i18n.getString("button.select"));
openButton.addActionListener(buttonAction);
this.add(openButton);
//Create a file chooser
this.paramDir = paramDir;
}
class SelectButtonAction implements java.awt.event.ActionListener
{
public void actionPerformed(ActionEvent e) {
selectImage_Action(e);
}
}
public void selectImage_Action(ActionEvent ev) {
File sdir = new File(paramDir.getText());
System.out.println(sdir.toPath());
if (sdir.isDirectory()) {
fc = new JFileChooser(sdir);
}
else {
fc = new JFileChooser();
}
fc.addChoosableFileFilter(new ImageFilter());
fc.setAcceptAllFileFilterUsed(false);
fc.setFileView(new ImageFileView());
fc.setAccessory(new ImagePreview(fc));
//Show it. "選択"
int returnVal = fc.showDialog(ParameterPanelImageFile.this, i18n.getString("dialog.select"));
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
this.argField.setText(file.getName());
}
fc.setSelectedFile(null);
}
public File getImageFile() {
if (this.paramDir.isEnable()) {
String text = this.argField.getText();
if (text != null) {
try {
File dir = this.paramDir.getDirectory();
File file = new File(dir, text);
if (file.exists() && file.isFile()) {
return file;
}
}
catch (FileNotFoundException e) {
return null;
}
}
}
return null;
}
/**
*
* @return
*/
@Override
public boolean isEnable() {
if (this.paramDir.isEnable()) {
String text = this.argField.getText();
if (text != null) {
try {
File dir = this.paramDir.getDirectory();
File file = new File(dir, text);
if (file.exists() && file.isFile()) {
String name = file.getName().toUpperCase();
if (name.endsWith(".JPG") || name.endsWith(".JPEG")) {
return true;
}
}
}
catch (FileNotFoundException e) {
return false;
}
}
}
return false;
}
}