Fixed saving & fixed conditional quitting.

This commit is contained in:
Sebastian Cabrera 2022-10-02 15:58:09 -04:00
parent b00c9c40e7
commit 92a40ad4bd
2 changed files with 51 additions and 13 deletions

View file

@ -8,7 +8,7 @@ public class Main {
static Window w;
static String title = "Scrypt";
static String version = "v0.2";
static String version = "(Alpha 0.3)";
static Dimension winSize = new Dimension(1280, 720);
public static void main(String[] args) {

View file

@ -37,7 +37,9 @@ public class Window implements Runnable {
JMenu editMenu;
JFileChooser browser;
JButton quitButton;
JMenuItem fileMenuItem1, fileMenuItem2, fileMenuItem3;
JButton saveOptionDialogButton;
JButton discardOptionDialogButton;
JMenuItem fileMenuOpen, fileMenuSave, fileMenuClose;
JPanel fileExplorer;
JPanel mainPanel;
RTextScrollPane scrollPane;
@ -50,7 +52,7 @@ public class Window implements Runnable {
double version;
Dimension winSize;
Object[] options = {"Save", "Discard"};
Object[] options = {null, null};
public void setup() {
menuBar.add(fileMenu);
@ -58,9 +60,9 @@ public class Window implements Runnable {
menuBar.add(Box.createHorizontalGlue());
menuBar.add(quitButton);
fileMenu.add(fileMenuItem1);
fileMenu.add(fileMenuItem2);
fileMenu.add(fileMenuItem3);
fileMenu.add(fileMenuOpen);
fileMenu.add(fileMenuSave);
fileMenu.add(fileMenuClose);
browser.addActionListener(new ActionListener() {
@Override
@ -78,25 +80,31 @@ public class Window implements Runnable {
}
});
fileMenuItem1.addActionListener(new ActionListener() {
fileMenuOpen.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
status = browser.showOpenDialog(window);
}
});
fileMenuItem2.addActionListener(new ActionListener() {
fileMenuSave.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (isFileOpened) {
Save.saveFile(p);
} else {
status = browser.showSaveDialog(window);
if (status == JFileChooser.APPROVE_OPTION) {
p = browser.getSelectedFile().getPath();
Save.saveFile(p);
}
}
}
});
fileMenuItem3.addActionListener(new ActionListener() {
fileMenuClose.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
textArea.setText(null);
@ -125,12 +133,38 @@ public class Window implements Runnable {
@Override
public void actionPerformed(ActionEvent e) {
if (isFileOpened || !textArea.getText().isBlank()) {
JOptionPane.showOptionDialog(window, "Do you want to save your work?", "Unsaved changes!", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[1]);
JOptionPane.showOptionDialog(window, "Do you want to save your work?", "Save before quit?", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[1]);
} else {
System.exit(0);
}
}
});
saveOptionDialogButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (isFileOpened) {
Save.saveFile(p);
System.exit(0);
} else {
status = browser.showSaveDialog(window);
if (status == JFileChooser.APPROVE_OPTION) {
p = browser.getSelectedFile().getPath();
Save.saveFile(p);
System.exit(0);
}
}
}
});
discardOptionDialogButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
fileExplorer.setBorder(new EtchedBorder());
fileExplorer.setBackground(new Color(0, 0, 0));
@ -164,9 +198,13 @@ public class Window implements Runnable {
fileMenu = new JMenu("File");
editMenu = new JMenu("Edit");
quitButton = new JButton("Quit");
fileMenuItem1 = new JMenuItem("Open");
fileMenuItem2 = new JMenuItem("Save");
fileMenuItem3 = new JMenuItem("Close File");
saveOptionDialogButton = new JButton("Save");
discardOptionDialogButton = new JButton("Discard");
options[0] = saveOptionDialogButton;
options[1] = discardOptionDialogButton;
fileMenuOpen = new JMenuItem("Open");
fileMenuSave = new JMenuItem("Save");
fileMenuClose = new JMenuItem("Close");
browser = new JFileChooser("");
fileExplorer = new JPanel();
mainPanel = new JPanel();