2019-03-05 07:08:34 +00:00
|
|
|
package com.bytezone.diskbrowser.gui;
|
|
|
|
|
|
|
|
import java.awt.event.ActionEvent;
|
|
|
|
import java.io.File;
|
|
|
|
|
|
|
|
import javax.swing.JOptionPane;
|
|
|
|
|
2021-05-21 04:36:44 +00:00
|
|
|
import com.bytezone.diskbrowser.disk.AppleDisk;
|
2021-05-20 10:13:06 +00:00
|
|
|
import com.bytezone.diskbrowser.disk.Disk;
|
2019-03-05 07:08:34 +00:00
|
|
|
import com.bytezone.diskbrowser.disk.FormattedDisk;
|
|
|
|
|
2020-02-08 22:20:08 +00:00
|
|
|
// -----------------------------------------------------------------------------------//
|
2021-05-19 09:28:04 +00:00
|
|
|
class SaveDiskAction extends AbstractSaveAction implements DiskSelectionListener
|
2020-02-08 22:20:08 +00:00
|
|
|
// -----------------------------------------------------------------------------------//
|
2019-03-05 07:08:34 +00:00
|
|
|
{
|
2021-05-20 10:13:06 +00:00
|
|
|
FormattedDisk formattedDisk;
|
2019-03-05 07:08:34 +00:00
|
|
|
|
2020-02-08 22:20:08 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2021-05-19 08:19:25 +00:00
|
|
|
SaveDiskAction ()
|
2020-02-08 22:20:08 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2019-03-05 07:08:34 +00:00
|
|
|
{
|
2021-05-20 10:13:06 +00:00
|
|
|
super ("Save converted disk...", "Save converted disk", "Save converted disk");
|
2019-03-05 07:08:34 +00:00
|
|
|
}
|
|
|
|
|
2020-02-08 22:20:08 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2019-03-05 07:08:34 +00:00
|
|
|
@Override
|
|
|
|
public void actionPerformed (ActionEvent evt)
|
2020-02-08 22:20:08 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2019-03-05 07:08:34 +00:00
|
|
|
{
|
2021-05-20 10:13:06 +00:00
|
|
|
if (formattedDisk == null)
|
2020-01-13 00:05:32 +00:00
|
|
|
{
|
2021-05-19 09:28:04 +00:00
|
|
|
JOptionPane.showMessageDialog (null, "No disk selected");
|
2020-01-13 00:05:32 +00:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2021-05-20 10:13:06 +00:00
|
|
|
Disk disk = formattedDisk.getDisk ();
|
2021-05-21 04:36:44 +00:00
|
|
|
if (disk instanceof AppleDisk appleDisk)
|
|
|
|
{
|
|
|
|
int blocks = disk.getTotalBlocks ();
|
|
|
|
String suffix = blocks <= 560 ? ".dsk" : ".hdv";
|
2021-05-19 09:28:04 +00:00
|
|
|
|
2021-05-21 04:36:44 +00:00
|
|
|
setSelectedFile (new File (formattedDisk.getName () + suffix));
|
|
|
|
saveBuffer (appleDisk.getBuffer ());
|
|
|
|
}
|
|
|
|
else
|
2021-05-21 23:59:06 +00:00
|
|
|
System.out.println ("Not an AppleDisk"); // impossible
|
2019-03-05 07:08:34 +00:00
|
|
|
}
|
|
|
|
|
2020-02-08 22:20:08 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2021-05-19 09:07:45 +00:00
|
|
|
@Override
|
|
|
|
public void diskSelected (DiskSelectedEvent event)
|
2020-02-08 22:20:08 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2019-03-05 07:08:34 +00:00
|
|
|
{
|
2021-05-20 10:13:06 +00:00
|
|
|
formattedDisk = event.getFormattedDisk ();
|
|
|
|
setEnabled (formattedDisk != null && formattedDisk.isTempDisk ());
|
2019-03-05 07:08:34 +00:00
|
|
|
}
|
|
|
|
}
|