xl-project/app/src/main/java/xl/gui/menu/OpenMenuItem.java
2024-06-03 19:31:27 +02:00

46 lines
1.4 KiB
Java

package xl.gui.menu;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import javax.swing.JFileChooser;
import javax.swing.JMenuItem;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
import xl.gui.StatusLabel;
import xl.gui.XL;
public abstract class OpenMenuItem extends JMenuItem implements ActionListener {
protected StatusLabel statusLabel;
protected XL xl;
protected OpenMenuItem(XL xl, StatusLabel statusLabel, String title) {
super(title);
this.xl = xl;
this.statusLabel = statusLabel;
addActionListener(this);
}
protected abstract void action(String path) throws FileNotFoundException;
public void actionPerformed(ActionEvent event) {
JFileChooser fileChooser = new JFileChooser(".");
FileFilter filter = new FileNameExtensionFilter("XL files", "xl");
fileChooser.setFileFilter(filter);
int option = openDialog(fileChooser);
if (option == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
try {
action(file.toString());
xl.rename(file.getName());
} catch (FileNotFoundException e) {
statusLabel.setText(e.getMessage());
}
}
}
protected abstract int openDialog(JFileChooser fileChooser);
}