tidying save actions

This commit is contained in:
Denis Molony 2021-05-19 19:28:04 +10:00
parent 45a97d2959
commit 438dd9dd4c
4 changed files with 48 additions and 20 deletions

View File

@ -0,0 +1,16 @@
package com.bytezone.diskbrowser.gui;
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);
}
}

View File

@ -9,10 +9,9 @@ import javax.swing.JFileChooser;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
import com.bytezone.diskbrowser.disk.FormattedDisk; import com.bytezone.diskbrowser.disk.FormattedDisk;
import com.bytezone.diskbrowser.utilities.DefaultAction;
// -----------------------------------------------------------------------------------// // -----------------------------------------------------------------------------------//
class SaveDiskAction extends DefaultAction implements DiskSelectionListener class SaveDiskAction extends AbstractSaveAction implements DiskSelectionListener
// -----------------------------------------------------------------------------------// // -----------------------------------------------------------------------------------//
{ {
FormattedDisk disk; FormattedDisk disk;
@ -31,14 +30,18 @@ class SaveDiskAction extends DefaultAction implements DiskSelectionListener
{ {
if (disk == null) if (disk == null)
{ {
System.out.println ("No disk"); JOptionPane.showMessageDialog (null, "No disk selected");
return; return;
} }
JFileChooser fileChooser = new JFileChooser (); if (fileChooser == null)
fileChooser.setDialogTitle ("Save converted disk"); {
String name = disk.getName (); fileChooser = new JFileChooser ();
fileChooser.setSelectedFile (new File (name + ".dsk")); fileChooser.setDialogTitle ("Save converted disk");
}
fileChooser.setSelectedFile (new File (disk.getName () + ".dsk"));
if (fileChooser.showSaveDialog (null) == JFileChooser.APPROVE_OPTION) if (fileChooser.showSaveDialog (null) == JFileChooser.APPROVE_OPTION)
{ {
File file = fileChooser.getSelectedFile (); File file = fileChooser.getSelectedFile ();
@ -50,6 +53,7 @@ class SaveDiskAction extends DefaultAction implements DiskSelectionListener
catch (IOException e) catch (IOException e)
{ {
e.printStackTrace (); e.printStackTrace ();
JOptionPane.showMessageDialog (null, "Disk failed to save");
} }
} }
} }

View File

@ -10,10 +10,9 @@ import javax.swing.JFileChooser;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
import com.bytezone.diskbrowser.applefile.AppleFileSource; import com.bytezone.diskbrowser.applefile.AppleFileSource;
import com.bytezone.diskbrowser.utilities.DefaultAction;
// -----------------------------------------------------------------------------------// // -----------------------------------------------------------------------------------//
class SaveFileAction extends DefaultAction implements FileSelectionListener class SaveFileAction extends AbstractSaveAction implements FileSelectionListener
//-----------------------------------------------------------------------------------// //-----------------------------------------------------------------------------------//
{ {
AppleFileSource appleFileSource; AppleFileSource appleFileSource;
@ -32,12 +31,16 @@ class SaveFileAction extends DefaultAction implements FileSelectionListener
{ {
if (appleFileSource == null) if (appleFileSource == null)
{ {
System.out.println ("No data source"); JOptionPane.showMessageDialog (null, "No file selected");
return; return;
} }
JFileChooser fileChooser = new JFileChooser (); if (fileChooser == null)
fileChooser.setDialogTitle ("Save File"); {
fileChooser = new JFileChooser ();
fileChooser.setDialogTitle ("Save File");
}
fileChooser.setSelectedFile (new File (appleFileSource.getUniqueName () + ".bin")); fileChooser.setSelectedFile (new File (appleFileSource.getUniqueName () + ".bin"));
if (fileChooser.showSaveDialog (null) == JFileChooser.APPROVE_OPTION) if (fileChooser.showSaveDialog (null) == JFileChooser.APPROVE_OPTION)
@ -52,6 +55,7 @@ class SaveFileAction extends DefaultAction implements FileSelectionListener
catch (IOException e) catch (IOException e)
{ {
e.printStackTrace (); e.printStackTrace ();
JOptionPane.showMessageDialog (null, "File failed to save");
} }
} }
} }

View File

@ -9,10 +9,8 @@ import java.nio.file.StandardOpenOption;
import javax.swing.JFileChooser; import javax.swing.JFileChooser;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
import com.bytezone.diskbrowser.utilities.DefaultAction;
// -----------------------------------------------------------------------------------// // -----------------------------------------------------------------------------------//
class SaveSectorsAction extends DefaultAction implements SectorSelectionListener class SaveSectorsAction extends AbstractSaveAction implements SectorSelectionListener
// -----------------------------------------------------------------------------------// // -----------------------------------------------------------------------------------//
{ {
SectorSelectedEvent event; SectorSelectedEvent event;
@ -32,26 +30,32 @@ class SaveSectorsAction extends DefaultAction implements SectorSelectionListener
{ {
if (event == null) if (event == null)
{ {
System.out.println ("No sectors"); JOptionPane.showMessageDialog (null, "No sectors selected");
return; return;
} }
byte[] buffer = event.getFormattedDisk ().getDisk ().readBlocks (event.getSectors ());
JFileChooser fileChooser = new JFileChooser (); if (fileChooser == null)
fileChooser.setDialogTitle ("Save sectors"); {
fileChooser.setSelectedFile (new File ("saved-" + buffer.length + ".bin")); fileChooser = new JFileChooser ();
fileChooser.setDialogTitle ("Save sectors");
}
fileChooser.setSelectedFile (new File ("savedSectors.bin"));
if (fileChooser.showSaveDialog (null) == JFileChooser.APPROVE_OPTION) if (fileChooser.showSaveDialog (null) == JFileChooser.APPROVE_OPTION)
{ {
File file = fileChooser.getSelectedFile (); File file = fileChooser.getSelectedFile ();
try try
{ {
byte[] buffer =
event.getFormattedDisk ().getDisk ().readBlocks (event.getSectors ());
Files.write (file.toPath (), buffer, StandardOpenOption.CREATE_NEW); Files.write (file.toPath (), buffer, StandardOpenOption.CREATE_NEW);
JOptionPane.showMessageDialog (null, "File saved"); JOptionPane.showMessageDialog (null, "File saved");
} }
catch (IOException e) catch (IOException e)
{ {
e.printStackTrace (); e.printStackTrace ();
JOptionPane.showMessageDialog (null, "File failed to save");
} }
} }
} }