diff --git a/src/com/bytezone/diskbrowser/gui/AbstractSaveAction.java b/src/com/bytezone/diskbrowser/gui/AbstractSaveAction.java index 2af88d7..7a670c6 100644 --- a/src/com/bytezone/diskbrowser/gui/AbstractSaveAction.java +++ b/src/com/bytezone/diskbrowser/gui/AbstractSaveAction.java @@ -4,11 +4,15 @@ import javax.swing.JFileChooser; import com.bytezone.diskbrowser.utilities.DefaultAction; +// -----------------------------------------------------------------------------------// public abstract class AbstractSaveAction extends DefaultAction +// -----------------------------------------------------------------------------------// { JFileChooser fileChooser; + // ---------------------------------------------------------------------------------// public AbstractSaveAction (String text, String tip) + // ---------------------------------------------------------------------------------// { super (text, tip); } diff --git a/src/com/bytezone/diskbrowser/gui/SaveDiskAction.java b/src/com/bytezone/diskbrowser/gui/SaveDiskAction.java index 55c420d..dc5f810 100644 --- a/src/com/bytezone/diskbrowser/gui/SaveDiskAction.java +++ b/src/com/bytezone/diskbrowser/gui/SaveDiskAction.java @@ -48,7 +48,8 @@ class SaveDiskAction extends AbstractSaveAction implements DiskSelectionListener try { Files.copy (disk.getDisk ().getFile ().toPath (), file.toPath ()); - JOptionPane.showMessageDialog (null, "Disk saved"); + JOptionPane.showMessageDialog (null, + String.format ("File %s saved", file.getName ())); } catch (IOException e) { @@ -64,6 +65,6 @@ class SaveDiskAction extends AbstractSaveAction implements DiskSelectionListener // ---------------------------------------------------------------------------------// { this.disk = event.getFormattedDisk (); - setEnabled (disk.isTempDisk ()); + setEnabled (disk != null && disk.isTempDisk ()); } } diff --git a/src/com/bytezone/diskbrowser/gui/SaveFileAction.java b/src/com/bytezone/diskbrowser/gui/SaveFileAction.java index 1609fa1..c41e5cd 100644 --- a/src/com/bytezone/diskbrowser/gui/SaveFileAction.java +++ b/src/com/bytezone/diskbrowser/gui/SaveFileAction.java @@ -50,7 +50,8 @@ class SaveFileAction extends AbstractSaveAction implements FileSelectionListener { Files.write (file.toPath (), appleFileSource.getDataSource ().getBuffer (), StandardOpenOption.CREATE_NEW); - JOptionPane.showMessageDialog (null, "File saved"); + JOptionPane.showMessageDialog (null, + String.format ("File %s saved", file.getName ())); } catch (IOException e) { @@ -66,5 +67,8 @@ class SaveFileAction extends AbstractSaveAction implements FileSelectionListener // ---------------------------------------------------------------------------------// { this.appleFileSource = event.appleFileSource; + setEnabled ( + event.appleFileSource != null && event.appleFileSource.getDataSource () != null + && event.appleFileSource.getDataSource ().getBuffer () != null); } } diff --git a/src/com/bytezone/diskbrowser/gui/SaveSectorsAction.java b/src/com/bytezone/diskbrowser/gui/SaveSectorsAction.java index 0b9288e..12de740 100644 --- a/src/com/bytezone/diskbrowser/gui/SaveSectorsAction.java +++ b/src/com/bytezone/diskbrowser/gui/SaveSectorsAction.java @@ -50,7 +50,8 @@ class SaveSectorsAction extends AbstractSaveAction implements SectorSelectionLis byte[] buffer = event.getFormattedDisk ().getDisk ().readBlocks (event.getSectors ()); Files.write (file.toPath (), buffer, StandardOpenOption.CREATE_NEW); - JOptionPane.showMessageDialog (null, "File saved"); + JOptionPane.showMessageDialog (null, + String.format ("File %s saved", file.getName ())); } catch (IOException e) {