package application;

import java.awt.Desktop;
import java.awt.GridLayout;
import java.io.File;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import javax.swing.filechooser.FileNameExtensionFilter;

public class FileActions extends JFrame {
	private JLabel file1Label, file2Label;
	private JButton selectFile1, selectFile2;
	private File file1, file2;
	private JMenuBar menuBar;
	private JMenu actionsMenu;
	private JMenuItem openInExcelItem;

	public FileActions() {
		setTitle("Datei-Auswahl und Aktionen");
		setSize(400, 200);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLayout(new GridLayout(3, 2));

		file1Label = new JLabel("Datei 1: Keine ausgew�hlt");
		file2Label = new JLabel("Datei 2: Keine ausgew�hlt");
		selectFile1 = new JButton("Datei 1 ausw�hlen");
		selectFile2 = new JButton("Datei 2 ausw�hlen");

		// File Chooser f�r Datei 1 (nur Excel-Dateien)
		selectFile1.addActionListener(e -> {
			JFileChooser fileChooser = new JFileChooser();
			FileNameExtensionFilter filter = new FileNameExtensionFilter("Excel-Dateien", "xls", "xlsx");
			fileChooser.setFileFilter(filter);
			if (fileChooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
				file1 = fileChooser.getSelectedFile();
				file1Label.setText("Datei 1: " + file1.getName());
				selectFile2.setEnabled(true);
			}
		});

		// File Chooser f�r Datei 2 (im selben Verzeichnis wie Datei 1, nur
		// Excel-Dateien)
		selectFile2.setEnabled(false);
		selectFile2.addActionListener(e -> {
			if (file1 != null) {
				JFileChooser fileChooser = new JFileChooser(file1.getParentFile());
				FileNameExtensionFilter filter = new FileNameExtensionFilter("Excel-Dateien", "xls", "xlsx");
				fileChooser.setFileFilter(filter);
				if (fileChooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
					file2 = fileChooser.getSelectedFile();
					file2Label.setText("Datei 2: " + file2.getName());
				}
			}
		});

		add(selectFile1);
		add(file1Label);
		add(selectFile2);
		add(file2Label);

		// Men� erstellen
		menuBar = new JMenuBar();
		actionsMenu = new JMenu("Aktionen");
		openInExcelItem = new JMenuItem("Erste Datei in Excel �ffnen");

		actionsMenu.add(openInExcelItem);
		menuBar.add(actionsMenu);
		setJMenuBar(menuBar);

		// Aktion: Erste Datei in Excel �ffnen
		openInExcelItem.addActionListener(e -> {
			if (file1 != null) {
				try {
					Desktop.getDesktop().open(file1);
				} catch (IOException ex) {
					JOptionPane.showMessageDialog(this, "Fehler beim �ffnen der Datei in Excel.", "Fehler",
							JOptionPane.ERROR_MESSAGE);
				}
			} else {
				JOptionPane.showMessageDialog(this, "Bitte w�hle zuerst eine Datei aus!", "Fehler",
						JOptionPane.ERROR_MESSAGE);
			}
		});
	}

	public static void main(String[] args) {
		SwingUtilities.invokeLater(() -> {
			FileActions gui = new FileActions();
			gui.setVisible(true);
		});
	}
}
