[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.
|