From b9ed5212ee23b46a129040c7ed58c4a1f6ee85f8 Mon Sep 17 00:00:00 2001 From: Robert Greene Date: Mon, 29 Dec 2003 17:48:13 +0000 Subject: [PATCH] Fixed file viewing so directories navigate into the directory and deleted files just give a warning. --- .../ui/swt/DiskExplorerTab.java | 35 +++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/src/com/webcodepro/applecommander/ui/swt/DiskExplorerTab.java b/src/com/webcodepro/applecommander/ui/swt/DiskExplorerTab.java index 47231ad..ce68c2e 100644 --- a/src/com/webcodepro/applecommander/ui/swt/DiskExplorerTab.java +++ b/src/com/webcodepro/applecommander/ui/swt/DiskExplorerTab.java @@ -1316,8 +1316,39 @@ public class DiskExplorerTab { */ protected void viewFile() { FileEntry fileEntry = getSelectedFileEntry(); - FileViewerWindow window = new FileViewerWindow(shell, fileEntry, imageManager); - window.open(); + if (fileEntry.isDeleted()) { + MessageBox box = new MessageBox(shell, SWT.ICON_ERROR | SWT.OK); + box.setText("Unable to view a deleted file!"); + box.setMessage("Sorry, you cannot view a deleted file."); + box.open(); + } else if (fileEntry.isDirectory()) { + TreeItem item = findDirectoryItem(directoryTree.getSelection()[0].getItems(), fileEntry.getFilename(), 1, 0); + if (item != null) { + directoryTree.showItem(item); + directoryTree.setSelection(new TreeItem[] { item }); + changeCurrentFormat(currentFormat); // minor hack + } + } else { // Assuming a normal file! + FileViewerWindow window = new FileViewerWindow(shell, fileEntry, imageManager); + window.open(); + } + } + /** + * Locate a named item in the directory tree. + */ + protected TreeItem findDirectoryItem(TreeItem[] treeItems, String name, int maxDepth, int currentDepth) { + if (maxDepth == currentDepth) return null; + for (int i=0; i