[Patchanim-commit] SF.net SVN: patchanim: [43] trunk/patchanim/src/com/mebigfatguy/patchanim
Brought to you by:
dbrosius
From: <dbr...@us...> - 2008-01-28 01:45:24
|
Revision: 43 http://patchanim.svn.sourceforge.net/patchanim/?rev=43&view=rev Author: dbrosius Date: 2008-01-27 17:45:28 -0800 (Sun, 27 Jan 2008) Log Message: ----------- add asking for save before doing destroy actions. Modified Paths: -------------- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchAnimFrame.java trunk/patchanim/src/com/mebigfatguy/patchanim/main/PatchAnimBundle.java trunk/patchanim/src/com/mebigfatguy/patchanim/resources.properties Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchAnimFrame.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchAnimFrame.java 2008-01-28 01:22:32 UTC (rev 42) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchAnimFrame.java 2008-01-28 01:45:28 UTC (rev 43) @@ -84,10 +84,9 @@ fileMenu.add(newItem); openItem = new JMenuItem(rb.getString(PatchAnimBundle.OPEN)); fileMenu.add(openItem); - closeItem = new JMenuItem(rb.getString(PatchAnimBundle.CLOSE)); - fileMenu.add(closeItem); fileMenu.addSeparator(); saveItem = new JMenuItem(rb.getString(PatchAnimBundle.SAVE)); + saveItem.setEnabled(false); fileMenu.add(saveItem); saveAsItem = new JMenuItem(rb.getString(PatchAnimBundle.SAVEAS)); fileMenu.add(saveAsItem); @@ -104,8 +103,20 @@ addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent we) { - dispose(); - System.exit(0); + try { + if (document.isDirty()) { + int choice = askSave(); + if (choice == JOptionPane.CANCEL_OPTION) + return; + if (choice == JOptionPane.YES_OPTION) { + save(); + } + } + dispose(); + System.exit(0); + } catch (IOException ioe) { + JOptionPane.showMessageDialog(JPatchAnimFrame.this, PatchAnimBundle.SAVEFAILED); + } } }); @@ -114,15 +125,16 @@ try { if (document.isDirty()) { int choice = askSave(); - if (choice == JFileChooser.CANCEL_OPTION) + if (choice == JOptionPane.CANCEL_OPTION) return; - if (choice == JFileChooser.APPROVE_OPTION) { + if (choice == JOptionPane.YES_OPTION) { save(); } } document = new PatchAnimDocument(); documentLocation = null; + saveItem.setEnabled(false); } catch (IOException ioe) { JOptionPane.showMessageDialog(JPatchAnimFrame.this, PatchAnimBundle.SAVEFAILED); } @@ -134,9 +146,9 @@ try { if (document.isDirty()) { int choice = askSave(); - if (choice == JFileChooser.CANCEL_OPTION) + if (choice == JOptionPane.CANCEL_OPTION) return; - if (choice == JFileChooser.APPROVE_OPTION) { + if (choice == JOptionPane.YES_OPTION) { save(); } } @@ -176,9 +188,9 @@ try { if (document.isDirty()) { int choice = askSave(); - if (choice == JFileChooser.CANCEL_OPTION) + if (choice == JOptionPane.CANCEL_OPTION) return; - if (choice == JFileChooser.APPROVE_OPTION) { + if (choice == JOptionPane.YES_OPTION) { save(); } } @@ -189,6 +201,21 @@ } } }); + + PatchPanelMediator mediator = PatchPanelMediator.getMediator(); + mediator.addActivePatchChangedListener(new ActivePatchChangedListener () { + public void activePatchChanged(ActivePatchChangedEvent apce) { + document.setDirty(true); + saveItem.setEnabled(true); + } + }); + + mediator.addSettingsChangedListener(new SettingsChangedListener() { + public void settingsChanged(SettingsChangedEvent sce) { + document.setDirty(true); + saveItem.setEnabled(true); + } + }); } private void load() { @@ -222,6 +249,7 @@ } finally { PatchPanelMediator mediator = PatchPanelMediator.getMediator(); mediator.setDocument(document); + saveItem.setEnabled(false); } } @@ -243,14 +271,19 @@ documentLocation = new File(path); PatchAnimIO.saveFile(documentLocation, document); documentLocation = chooser.getSelectedFile(); + document.setDirty(false); + saveItem.setEnabled(false); } } private void save() throws IOException { PatchAnimIO.saveFile(documentLocation, document); + document.setDirty(false); + saveItem.setEnabled(false); } private int askSave() { - return JFileChooser.APPROVE_OPTION; + ResourceBundle rb = PatchAnimBundle.getBundle(); + return JOptionPane.showConfirmDialog(JPatchAnimFrame.this, rb.getString(PatchAnimBundle.ASKSAVE), rb.getString(PatchAnimBundle.TITLE), JOptionPane.YES_NO_CANCEL_OPTION); } } Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/main/PatchAnimBundle.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/main/PatchAnimBundle.java 2008-01-28 01:22:32 UTC (rev 42) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/main/PatchAnimBundle.java 2008-01-28 01:45:28 UTC (rev 43) @@ -27,7 +27,6 @@ public static final String FILE = "patchanim.file"; public static final String NEW = "patchanim.new"; public static final String OPEN = "patchanim.open"; - public static final String CLOSE = "patchanim.close"; public static final String SAVE = "patchanim.save"; public static final String SAVEAS = "patchanim.saveas"; public static final String QUIT = "patchanim.quit"; @@ -47,6 +46,7 @@ public static final String ADD = "patchanim.add"; public static final String REMOVE = "patchanim.remove"; public static final String COLOR = "patchanim.color"; + public static final String ASKSAVE = "patchanim.asksave"; public static final String LOADFAILED = "patchanim.err.loadfailed"; public static final String SAVEFAILED = "patchanim.err.savefailed"; Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/resources.properties =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/resources.properties 2008-01-28 01:22:32 UTC (rev 42) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/resources.properties 2008-01-28 01:45:28 UTC (rev 43) @@ -20,7 +20,6 @@ patchanim.file = File patchanim.new = New patchanim.open = Open... -patchanim.close = Close patchanim.save = Save patchanim.saveas = Save As... patchanim.quit = Quit @@ -40,5 +39,6 @@ patchanim.add = Add patchanim.remove = Remove patchanim.color = Color +patchanim.asksave = Do you want to save your changes? patchanim.err.savefailed = Failed saving Patch Animation File patchanim.err.loadfailed = Failed loading Patch Animation File This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |