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

61 lines
2.0 KiB
Java

package com.bytezone.diskbrowser.gui;
import java.awt.event.ActionEvent;
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import com.bytezone.diskbrowser.disk.AppleDisk;
import com.bytezone.diskbrowser.disk.Disk;
import com.bytezone.diskbrowser.disk.FormattedDisk;
// -----------------------------------------------------------------------------------//
class SaveDiskAction extends AbstractSaveAction implements DiskSelectionListener
// -----------------------------------------------------------------------------------//
{
FormattedDisk formattedDisk;
// ---------------------------------------------------------------------------------//
SaveDiskAction ()
// ---------------------------------------------------------------------------------//
{
super ("Save converted disk...", "Save converted disk", "Save converted disk");
}
// ---------------------------------------------------------------------------------//
@Override
public void actionPerformed (ActionEvent evt)
// ---------------------------------------------------------------------------------//
{
if (formattedDisk == null)
{
JOptionPane.showMessageDialog (null, "No disk selected");
return;
}
Disk disk = formattedDisk.getDisk ();
if (disk instanceof AppleDisk appleDisk)
{
int blocks = disk.getTotalBlocks ();
String suffix = blocks <= 560 ? ".dsk" : ".hdv";
setSelectedFile (new File (formattedDisk.getName () + suffix));
if (fileChooser.showSaveDialog (null) == JFileChooser.APPROVE_OPTION)
saveBuffer (appleDisk.getBuffer ());
}
else
System.out.println ("Not an AppleDisk"); // impossible
}
// ---------------------------------------------------------------------------------//
@Override
public void diskSelected (DiskSelectedEvent event)
// ---------------------------------------------------------------------------------//
{
formattedDisk = event.getFormattedDisk ();
setEnabled (formattedDisk != null && formattedDisk.isTempDisk ());
}
}