Support for multiple logical disks added. Also contains testing code for

creating a disk image. The Disk Image Wizard needs to be created yet.
This commit is contained in:
Robert Greene 2002-12-14 05:50:30 +00:00
parent 75350b2617
commit ecd6a262b2
1 changed files with 42 additions and 13 deletions

View File

@ -19,9 +19,17 @@
*/
package com.webcodepro.applecommander.ui.swt;
import java.io.File;
import com.webcodepro.applecommander.storage.Disk;
import com.webcodepro.applecommander.storage.DosFormatDisk;
import com.webcodepro.applecommander.storage.FormattedDisk;
import com.webcodepro.applecommander.storage.PascalFormatDisk;
import com.webcodepro.applecommander.storage.ProdosFormatDisk;
import com.webcodepro.applecommander.storage.RdosFormatDisk;
import com.webcodepro.applecommander.storage.Disk.FilenameFilter;
import com.webcodepro.applecommander.ui.AppleCommander;
import com.webcodepro.applecommander.ui.UserPreferences;
import java.io.IOException;
import java.io.InputStream;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.DisposeEvent;
@ -38,12 +46,6 @@ import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
import com.webcodepro.applecommander.storage.Disk;
import com.webcodepro.applecommander.storage.FormattedDisk;
import com.webcodepro.applecommander.storage.Disk.FilenameFilter;
import com.webcodepro.applecommander.ui.AppleCommander;
import com.webcodepro.applecommander.ui.UserPreferences;
/**
* Main class for the SwtAppleCommander interface.
* <p>
@ -151,9 +153,9 @@ public class SwtAppleCommander {
userPreferences.setDiskImageDirectory(fileDialog.getFilterPath());
try {
Disk disk = new Disk(fullpath);
FormattedDisk formattedDisk = disk.getFormattedDisk();
if (formattedDisk != null) {
DiskWindow window = new DiskWindow(shell, formattedDisk, imageManager);
FormattedDisk[] formattedDisks = disk.getFormattedDisks();
if (formattedDisks != null) {
DiskWindow window = new DiskWindow(shell, formattedDisks, imageManager);
window.open();
} else {
Shell finalShell = shell;
@ -172,6 +174,34 @@ public class SwtAppleCommander {
}
}
/**
* Create a disk image.
*/
private void createDiskImage() {
FileDialog fileDialog = new FileDialog(shell, SWT.SAVE);
FilenameFilter[] fileFilters = Disk.getFilenameFilters();
String[] names = new String[fileFilters.length];
String[] extensions = new String[fileFilters.length];
for (int i=0; i<fileFilters.length; i++) {
names[i] = fileFilters[i].getNames();
extensions[i] = fileFilters[i].getExtensions();
}
fileDialog.setFilterNames(names);
fileDialog.setFilterExtensions(extensions);
fileDialog.setFilterPath(userPreferences.getDiskImageDirectory());
String fullpath = fileDialog.open();
if (fullpath != null) {
//userPreferences.setDiskImageDirectory(fileDialog.getFilterPath());
FormattedDisk disk = new ProdosFormatDisk(fullpath,
"ASDF", Disk.APPLE_140KB_DISK);
disk.format();
DiskWindow window = new DiskWindow(shell,
new FormattedDisk[] { disk }, imageManager);
window.open();
}
}
/**
* Creates the toolbar.
*/
@ -194,10 +224,9 @@ public class SwtAppleCommander {
item.setImage(imageManager.getNewDiskIcon());
item.setText("Create...");
item.setToolTipText("Create a disk image");
item.setEnabled(false);
item.addSelectionListener(new SelectionAdapter () {
public void widgetSelected(SelectionEvent e) {
// not available yet
createDiskImage();
}
});
item = new ToolItem(toolBar, SWT.SEPARATOR);