dmolony-DiskBrowser/src/com/bytezone/diskbrowser/gui/SaveDiskAction.java

61 lines
2.0 KiB
Java
Raw Permalink Normal View History

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.JFileChooser;
2019-03-05 07:08:34 +00:00
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));
if (fileChooser.showSaveDialog (null) == JFileChooser.APPROVE_OPTION)
saveBuffer (appleDisk.getBuffer ());
2021-05-21 04:36:44 +00:00
}
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
}
}