mirror of
https://github.com/dmolony/DiskBrowser.git
synced 2024-06-08 04:29:35 +00:00
tidying save actions
This commit is contained in:
parent
45a97d2959
commit
438dd9dd4c
16
src/com/bytezone/diskbrowser/gui/AbstractSaveAction.java
Normal file
16
src/com/bytezone/diskbrowser/gui/AbstractSaveAction.java
Normal 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user