Skip to content
Snippets Groups Projects
Select Git revision
  • 91a440f63397f94d10886b1261fe284a4ba9de12
  • master default protected
2 results

OpenMenuItem.java

Blame
  • OpenMenuItem.java 1.40 KiB
    package gui.menu;
    
    import gui.ScheduLearn;
    import model.Status;
    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;
    
    public abstract class OpenMenuItem extends JMenuItem implements ActionListener {
        protected ScheduLearn gui;
        protected Status status;
    
        public OpenMenuItem(ScheduLearn gui, Status status, String title) {
            super(title);
            this.gui = gui;
            this.status = status;
            addActionListener(this);
        }
    
        protected abstract void openAction(String path) throws FileNotFoundException;
        
        protected abstract int openDialog(JFileChooser fileChooser);
    
        public void actionPerformed(ActionEvent e) {
            JFileChooser fileChooser = new JFileChooser(".");
            FileFilter filter = new FileNameExtensionFilter("ScheduLearn files", "sl");
            fileChooser.setFileFilter(filter);
            int option = openDialog(fileChooser);
            if (option == fileChooser.APPROVE_OPTION) {
                File file = fileChooser.getSelectedFile();
                try {
                    openAction(file.toString());
                } catch (FileNotFoundException error) {
                    status.setStatus(error.getMessage());
                }
            }
        }
    }