113 lines
4.1 KiB
Java
113 lines
4.1 KiB
Java
/*
|
|
* Firestar Mod Manager
|
|
* Copyright (C) 2024 bonkmaykr
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see https://www.gnu.org/licenses/.
|
|
*/
|
|
|
|
import org.json.JSONObject;
|
|
|
|
import javax.imageio.ImageIO;
|
|
import javax.swing.*;
|
|
import java.awt.*;
|
|
import java.awt.event.ActionEvent;
|
|
import java.awt.event.ActionListener;
|
|
import java.awt.event.WindowAdapter;
|
|
import java.awt.event.WindowEvent;
|
|
import java.awt.image.BufferedImage;
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
|
|
import static javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE;
|
|
|
|
public class Waldorf implements ActionListener {
|
|
private JFrame frame = new JFrame();
|
|
private JPanel frameContainer;
|
|
private JButton okbtn;
|
|
private JButton cancelbtn;
|
|
private JTextField fOutpath;
|
|
private JButton resetbtn;
|
|
private JButton bOpenFolder;
|
|
MissPiggy invoker;
|
|
|
|
public void Action(MissPiggy inv) {
|
|
invoker = inv;
|
|
|
|
frame.add(frameContainer);
|
|
try {
|
|
BufferedImage windowIcon = ImageIO.read(new File(System.getProperty("user.dir") + "/resources/titleIcon.png"));
|
|
frame.setIconImage(windowIcon);
|
|
} catch (IOException e) {
|
|
System.out.println("ERROR: Failed to find /resources/titleIcon.png. Window will not have an icon.");
|
|
}
|
|
frame.setSize(600, 200); // 1280 800
|
|
frame.setMinimumSize(new Dimension(200,100));
|
|
frame.setTitle("Options");
|
|
frame.setResizable(false);
|
|
frame.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
|
|
frame.setLayout(new GridLayout());
|
|
frame.setLocationRelativeTo(null);
|
|
frame.setAlwaysOnTop(true);
|
|
|
|
cancelbtn.addActionListener(this);
|
|
okbtn.addActionListener(this);
|
|
resetbtn.addActionListener(this);
|
|
bOpenFolder.addActionListener(this);
|
|
|
|
fOutpath.setText(Main.outpath);
|
|
|
|
frame.setVisible(true);
|
|
frame.addWindowListener(new WindowAdapter() {
|
|
@Override
|
|
public void windowClosing(WindowEvent e)
|
|
{
|
|
invoker.frame.setEnabled(true);
|
|
e.getWindow().dispose();
|
|
}
|
|
});
|
|
}
|
|
|
|
@Override
|
|
public void actionPerformed(ActionEvent actionEvent) {
|
|
if (actionEvent.getSource() == cancelbtn) {
|
|
invoker.frame.setEnabled(true);
|
|
frame.dispose();
|
|
} else
|
|
if (actionEvent.getSource() == okbtn) {
|
|
Main.outpath = fOutpath.getText();
|
|
Main.writeConf();
|
|
|
|
invoker.frame.setEnabled(true);
|
|
frame.dispose();
|
|
} else
|
|
if (actionEvent.getSource() == resetbtn) {
|
|
int result = JOptionPane.showConfirmDialog(frame,"Are you sure you want to redo the initial setup?", "Restore Default Settings", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
|
|
if (result == JOptionPane.YES_OPTION) {
|
|
new File(System.getProperty("user.home") + "/.firestar/firestar.conf").delete();
|
|
int result2 = JOptionPane.showConfirmDialog(frame,"Firestar will now close.", "Restore Default Settings", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE);
|
|
if (result2 == JOptionPane.OK_OPTION) {
|
|
System.exit(0);
|
|
}
|
|
}
|
|
} else
|
|
if (actionEvent.getSource() == bOpenFolder) {
|
|
try {
|
|
Desktop.getDesktop().open(new File(Main.inpath));
|
|
} catch (IOException e) {
|
|
throw new RuntimeException(e);
|
|
}
|
|
}
|
|
}
|
|
}
|