From 562e4c0f61b008937d86071ad18be8b5b70109c8 Mon Sep 17 00:00:00 2001 From: Kristopher Guzman Date: Sun, 7 Feb 2016 21:55:39 -0500 Subject: [PATCH 1/3] Created a FolderViewManager class that controls modifications to the tree view. Controller will handle events, Manager handles data. Added method to set root directory of tree view, and a method to retrieve all files and directories. --- src/main/java/Controller.java | 11 ++--------- src/main/java/Main.java | 21 +++++++++++++++++++-- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/main/java/Controller.java b/src/main/java/Controller.java index a905ef4..c81fe60 100644 --- a/src/main/java/Controller.java +++ b/src/main/java/Controller.java @@ -19,17 +19,10 @@ public class Controller{ @FXML private void initialize() { -// createTree(); - } - // Create the directory Tree - private void createTree() { - TreeItem root = new TreeItem("Root"); - TreeItem itemChild = new TreeItem("Child"); - itemChild.setExpanded(false); - root.getChildren().add(itemChild); - dirTree.setRoot(root); } + + } diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 82c258a..fb58fa5 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -5,9 +5,12 @@ import javafx.geometry.Rectangle2D; import javafx.scene.Parent; import javafx.scene.Scene; +import javafx.scene.control.TreeView; import javafx.stage.Screen; import javafx.stage.Stage; +import java.io.File; + public class Main extends Application { @Override @@ -24,12 +27,26 @@ public void handle(ActionEvent event) { });*/ Parent root = FXMLLoader.load(getClass().getResource("/main/resources/StartPage.fxml")); Rectangle2D screenBounds = Screen.getPrimary().getVisualBounds(); + primaryStage.setTitle("Iron-gate!"); -// primaryStage.setScene(new Scene(root, screenBounds.getWidth(), screenBounds.getHeight())); // a scene is created here primaryStage.setScene(new Scene(root, 990, 785)); + Scene scene = primaryStage.getScene(); // we get the scene from above scene.getStylesheets().clear(); // clear any styles -// scene.getStylesheets().add("/main/resources/mainStyle.css"); // absolute path + scene.getStylesheets().add("/main/resources/mainStyle.css"); // absolute path + + try { //try to set the tree view in the FolderViewManager class + + FolderViewManager.treeView = (TreeView) scene.lookup("#folder-view-pane"); + File homeDir = new File(System.getProperty("user.home")); + + FolderViewManager.setRootDirectory(homeDir); + System.out.println(homeDir.getName() + " set as root directory."); + + } catch (Exception e) { + e.printStackTrace(); + } + primaryStage.show(); } public static void main(String[] args) { From c0643b967915c82104a729d8fa362d0b5ad83b34 Mon Sep 17 00:00:00 2001 From: Kristopher Guzman Date: Sun, 7 Feb 2016 22:08:28 -0500 Subject: [PATCH 2/3] Added missing FolderViewManager --- src/main/java/FolderViewManager.java | 60 ++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/main/java/FolderViewManager.java diff --git a/src/main/java/FolderViewManager.java b/src/main/java/FolderViewManager.java new file mode 100644 index 0000000..3a774d7 --- /dev/null +++ b/src/main/java/FolderViewManager.java @@ -0,0 +1,60 @@ +package main.java; + +import javafx.scene.Scene; +import javafx.scene.control.TreeItem; +import javafx.scene.control.TreeView; + +import java.io.File; + +/** + * Created by kristopherguzman on 2/7/16. + */ + +/** + This class handles manipulation of the Folder View. This includes + directory searches, displaying directories, and all things directly changing + the Folder View. + */ +public class FolderViewManager { + + public static TreeView treeView; + 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) { + + root = new TreeItem(file.getName()); + 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 + + return; + } + + for(File f : rootFile.listFiles()) { + + if(!f.getName().startsWith(".")) { //don't show files that start with dot (ex: .filename .pythonfile) + + TreeItem fileNode = new TreeItem(f.getName()); + rootNode.getChildren().add(fileNode); + + if (f.isDirectory()) { + + createCellsFromRoot(f, fileNode); + + } + } + + } + + } + +} From 731105d430d64da96916eee923ede4bc51259b94 Mon Sep 17 00:00:00 2001 From: Kristopher Guzman Date: Sun, 7 Feb 2016 22:15:08 -0500 Subject: [PATCH 3/3] Added missing fxml file because I'm dumb --- src/main/java/StartPage.fxml | 160 +++++++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 src/main/java/StartPage.fxml diff --git a/src/main/java/StartPage.fxml b/src/main/java/StartPage.fxml new file mode 100644 index 0000000..f9a95e1 --- /dev/null +++ b/src/main/java/StartPage.fxml @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+ + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + + + +
+ + + + +
+ + + +
+
+ +
+ + +
+ + + + + +
+ + + + + +
+ + + + + + + +
+ + + +
+
+