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;
|
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.IOException;
|
||||||
import java.io.InputStream;
|
|
||||||
|
|
||||||
import org.eclipse.swt.SWT;
|
import org.eclipse.swt.SWT;
|
||||||
import org.eclipse.swt.events.DisposeEvent;
|
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.ToolBar;
|
||||||
import org.eclipse.swt.widgets.ToolItem;
|
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.
|
* Main class for the SwtAppleCommander interface.
|
||||||
* <p>
|
* <p>
|
||||||
|
@ -151,9 +153,9 @@ public class SwtAppleCommander {
|
||||||
userPreferences.setDiskImageDirectory(fileDialog.getFilterPath());
|
userPreferences.setDiskImageDirectory(fileDialog.getFilterPath());
|
||||||
try {
|
try {
|
||||||
Disk disk = new Disk(fullpath);
|
Disk disk = new Disk(fullpath);
|
||||||
FormattedDisk formattedDisk = disk.getFormattedDisk();
|
FormattedDisk[] formattedDisks = disk.getFormattedDisks();
|
||||||
if (formattedDisk != null) {
|
if (formattedDisks != null) {
|
||||||
DiskWindow window = new DiskWindow(shell, formattedDisk, imageManager);
|
DiskWindow window = new DiskWindow(shell, formattedDisks, imageManager);
|
||||||
window.open();
|
window.open();
|
||||||
} else {
|
} else {
|
||||||
Shell finalShell = shell;
|
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.
|
* Creates the toolbar.
|
||||||
*/
|
*/
|
||||||
|
@ -194,10 +224,9 @@ public class SwtAppleCommander {
|
||||||
item.setImage(imageManager.getNewDiskIcon());
|
item.setImage(imageManager.getNewDiskIcon());
|
||||||
item.setText("Create...");
|
item.setText("Create...");
|
||||||
item.setToolTipText("Create a disk image");
|
item.setToolTipText("Create a disk image");
|
||||||
item.setEnabled(false);
|
|
||||||
item.addSelectionListener(new SelectionAdapter () {
|
item.addSelectionListener(new SelectionAdapter () {
|
||||||
public void widgetSelected(SelectionEvent e) {
|
public void widgetSelected(SelectionEvent e) {
|
||||||
// not available yet
|
createDiskImage();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
item = new ToolItem(toolBar, SWT.SEPARATOR);
|
item = new ToolItem(toolBar, SWT.SEPARATOR);
|
||||||
|
|
Loading…
Reference in New Issue