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:
parent
75350b2617
commit
ecd6a262b2
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue