diff --git a/src/main/java/Controller.java b/src/main/java/Controller.java index 7797482..c87e978 100644 --- a/src/main/java/Controller.java +++ b/src/main/java/Controller.java @@ -27,16 +27,20 @@ public class Controller{ @FXML private MenuItem fileTag; @FXML private MenuItem fileExit; @FXML private MenuItem editPreferences; - @FXML private TreeView dirTree; + @FXML private TreeView dirTree; @FXML private ResourceBundle resources; @FXML private void initialize() { - createTree(); + //createTree(); // FolderViewManager.java calls are done here + + FolderViewManager.view = dirTree; + File homeDir = new File(System.getProperty("user.home")); + FolderViewManager.setRootDirectory(homeDir); } // Create the directory Tree - private void createTree() { + /* private void createTree() { // Get the hard disk drives and 2 levels down IronFile[] roots = IronFile.listRoots(); for (IronFile hdd : roots) { @@ -54,8 +58,8 @@ private void createTree() { public TreeCell call(TreeView param) { return new TreeFieldImpl(); } - });*/ - } + }); + }*/ /** * Set the child of a given parent TreeItem * diff --git a/src/main/java/FolderViewManager.java b/src/main/java/FolderViewManager.java index 0cfbd51..8099ca2 100644 --- a/src/main/java/FolderViewManager.java +++ b/src/main/java/FolderViewManager.java @@ -6,10 +6,9 @@ import java.io.File; import java.io.IOException; -import java.nio.file.FileVisitResult; -import java.nio.file.Path; -import java.nio.file.SimpleFileVisitor; +import java.nio.file.*; import java.nio.file.attribute.BasicFileAttributes; +import java.util.concurrent.ExecutionException; /** This class handles manipulation of the Folder View. This includes @@ -21,45 +20,32 @@ @author kristopherguzman @author Brian Patino */ -public class FolderViewManager extends SimpleFileVisitor{ -// public static TreeView treeView; -// private static TreeItem root; -// private static int NEST_COUNT = 0; //tracks number of nested calls when searching through files, TEMPORARY +public class FolderViewManager { - @Override - public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { -// System.out.printf("Visiting file %s\n", file); - return FileVisitResult.CONTINUE; - } - /** - * {@inheritDoc} - * This method must be overridden so that walking the tree can continue. - * */ - @Override - public FileVisitResult visitFileFailed(Path file, IOException e) throws IOException { - System.err.printf("Visiting failed for %s\n", file); - return FileVisitResult.SKIP_SUBTREE; - } - @Override - public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { -// System.out.printf("About to visit directory %s\n", dir); - return FileVisitResult.CONTINUE; - } + public static TreeView view; + private static TreeItem root; + private static int NEST_COUNT = 0; //tracks number of nested calls when searching through files, TEMPORARY + + private FolderViewManager() { } + + public static void setRootDirectory(File file) { - /*public static void setRootDirectory(File file) { root = new TreeItem(file.getName()); + view.setRoot(root); + createCellsFromRoot(file, root); - treeView.setRoot(root); } + private static void createCellsFromRoot(File rootFile, TreeItem rootNode) { + NEST_COUNT++; - if(NEST_COUNT > 6000) { //fixed value, TEMPORARY, must come up with better way to optimize load time of files + if(NEST_COUNT > 6000) { //fixed value, TEMPORARY optimization return; } for(File f : rootFile.listFiles()) { - if(!f.getName().startsWith(".")) { //don't show files that start with dot (ex: .filename .pythonfile) + if(!f.getName().startsWith(".")) { //don't show system files that start with dot (ex: .filename .pythonfile) TreeItem fileNode = new TreeItem(f.getName()); rootNode.getChildren().add(fileNode); if (f.isDirectory()) { @@ -68,4 +54,4 @@ private static void createCellsFromRoot(File rootFile, TreeItem rootNode } } } -*/} +} diff --git a/src/main/java/IronFileVisitor.java b/src/main/java/IronFileVisitor.java new file mode 100644 index 0000000..065da7d --- /dev/null +++ b/src/main/java/IronFileVisitor.java @@ -0,0 +1,49 @@ +package main.java; + +import javafx.scene.control.TreeItem; + +import java.io.IOException; +import java.nio.file.FileVisitResult; +import java.nio.file.Path; +import java.nio.file.SimpleFileVisitor; +import java.nio.file.attribute.BasicFileAttributes; +import java.io.File; + +/** + * Created by kristopherguzman on 2/11/16. + */ +public class IronFileVisitor extends SimpleFileVisitor { + + private TreeItem currentDirectory; + + @Override + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { + + return FileVisitResult.CONTINUE; + } + /** + * {@inheritDoc} + * This method must be overridden so that walking the tree can continue. + * */ + @Override + public FileVisitResult visitFileFailed(Path file, IOException e) throws IOException { + System.err.printf("Visiting failed for %s\n", file); + return FileVisitResult.SKIP_SUBTREE; + } + @Override + public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { + System.out.printf("About to visit directory %s\n", dir); + + currentDirectory = new TreeItem(dir.getFileName().toString()); + return FileVisitResult.CONTINUE; + } + + @Override + public FileVisitResult postVisitDirectory(Path dir, IOException e) throws IOException { + System.out.printf("About to visit directory %s\n", dir); + + + return FileVisitResult.CONTINUE; + } + +}