From 92a40ad4bd7f771f4865512b5ebb87362ab1de3b Mon Sep 17 00:00:00 2001 From: okseby Date: Sun, 2 Oct 2022 15:58:09 -0400 Subject: [PATCH] Fixed saving & fixed conditional quitting. --- src/com/okseby/Main.java | 2 +- src/com/okseby/win/Window.java | 62 +++++++++++++++++++++++++++------- 2 files changed, 51 insertions(+), 13 deletions(-) diff --git a/src/com/okseby/Main.java b/src/com/okseby/Main.java index e9bbc06..74b2b96 100644 --- a/src/com/okseby/Main.java +++ b/src/com/okseby/Main.java @@ -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) { diff --git a/src/com/okseby/win/Window.java b/src/com/okseby/win/Window.java index ab94172..2f07908 100644 --- a/src/com/okseby/win/Window.java +++ b/src/com/okseby/win/Window.java @@ -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();