diff --git a/src/main/java/app/controllers/FiletreeController.java b/src/main/java/app/controllers/FiletreeController.java index 70303f3..74b4536 100644 --- a/src/main/java/app/controllers/FiletreeController.java +++ b/src/main/java/app/controllers/FiletreeController.java @@ -1,8 +1,14 @@ package app.controllers; import javafx.fxml.FXML; +import javafx.scene.control.CheckBoxTreeItem; import javafx.scene.control.TreeView; +import javafx.scene.control.cell.CheckBoxTreeCell; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import jdk.jshell.execution.Util; +import java.io.File; import java.net.URL; import java.util.ResourceBundle; @@ -12,13 +18,51 @@ import app.model.Model; import javafx.fxml.Initializable; public class FiletreeController implements Initializable, Controller { - + private EventBus eventBus; private Model model; + @FXML + private TreeView filetree; + + Image folder = new Image(getClass().getResourceAsStream("/graphics/folder.png")); + Image md = new Image(getClass().getResourceAsStream("/graphics/md.png")); + Image java = new Image(getClass().getResourceAsStream("/graphics/java.png")); + + public void generateTree(File file, CheckBoxTreeItem parent) { + + if (file.isDirectory()) { + CheckBoxTreeItem element = new CheckBoxTreeItem(file.getName(), new ImageView(folder)); + parent.getChildren().add(element); + + for (File f : file.listFiles()) { + generateTree(f, element); + } + } else if ("java".equals(file.getName().substring(file.getName().lastIndexOf(".") + 1, file.getName().length()))) { + parent.getChildren().add(new CheckBoxTreeItem<>(file.getName(), new ImageView(java))); + } else if ("md".equals(file.getName().substring(file.getName().lastIndexOf(".") + 1, file.getName().length()))) { + parent.getChildren().add(new CheckBoxTreeItem<>(file.getName(), new ImageView(md))); + } + } + + public void showTree(String inputChosen) { + CheckBoxTreeItem root = new CheckBoxTreeItem(inputChosen); + filetree.setShowRoot(false); + File fileInputChosen = new File(inputChosen); + File fileList[] = fileInputChosen.listFiles(); + + for (File f : fileList) { + generateTree(f, root); + } + + filetree.setRoot(root); + } + @Override public void initialize(URL url, ResourceBundle resourceBundle) { // TODO: implement + showTree("C:\\Users\\Oyste\\OneDrive\\Skrivebord\\test"); + } @Override @@ -29,6 +73,7 @@ public class FiletreeController implements Initializable, Controller { /** * Links the controller to the global model + * * @param model The model to be linked */ public void setModel(Model model) { diff --git a/src/main/java/app/controllers/MenubarController.java b/src/main/java/app/controllers/MenubarController.java index d849f0f..8785ba6 100644 --- a/src/main/java/app/controllers/MenubarController.java +++ b/src/main/java/app/controllers/MenubarController.java @@ -1,18 +1,69 @@ package app.controllers; +import java.io.File; import java.net.URL; import java.util.ResourceBundle; import com.google.common.eventbus.EventBus; import app.model.Model; +import javafx.fxml.FXML; import javafx.fxml.Initializable; +import javafx.scene.control.MenuBar; +import javafx.stage.DirectoryChooser; +import javafx.stage.FileChooser; +import javafx.stage.Stage; public class MenubarController implements Initializable, Controller { - + private EventBus eventBus; private Model model; + @FXML + private MenuBar menubar; + + @FXML + public String handleOpenFile() { + FileChooser fc = new FileChooser(); + fc.setTitle("Open File"); + Stage stage = (Stage) menubar.getScene().getWindow(); + + File chosenFile = fc.showOpenDialog(stage); + String corFormat = chosenFile.getAbsolutePath().replace("\\", "\\\\"); + System.out.println(chosenFile.getAbsolutePath()); + System.out.println(corFormat); + + return corFormat; + } + + @FXML + public String handleOpenProject() { + DirectoryChooser dc = new DirectoryChooser(); + dc.setTitle("Open Project"); + Stage stage = (Stage) menubar.getScene().getWindow(); + + File chosenDir = dc.showDialog(stage); + String corFormat = chosenDir.getAbsolutePath().replace("\\", "\\\\"); + System.out.println(chosenDir.getAbsolutePath()); + System.out.println(corFormat); + + return corFormat; + } + + // @FXML + // public void handleSaveFile() { + // FileChooser fc = new FileChooser(); + // fc.setTitle("Save File"); + // Stage stage = (Stage) menubar.getScene().getWindow(); + + // FileChooser.ExtensionFilter extentionjava = new + // FileChooser.ExtensionFilter(".java"); + // FileChooser.ExtensionFilter extentionmd = new + // FileChooser.ExtensionFilter(".md"); + // fc.getExtensionFilters().addAll(extentionjava, extentionmd); + // fc.showOpenDialog(stage); + // } + @Override public void initialize(URL url, ResourceBundle resourceBundle) { // TODO: implement @@ -26,11 +77,11 @@ public class MenubarController implements Initializable, Controller { /** * Links the controller to the global model + * * @param model The model to be linked */ public void setModel(Model model) { this.model = model; } - } diff --git a/src/main/resources/fxml/components/Menubar.fxml b/src/main/resources/fxml/components/Menubar.fxml index 1cec746..bef8f9c 100644 --- a/src/main/resources/fxml/components/Menubar.fxml +++ b/src/main/resources/fxml/components/Menubar.fxml @@ -7,6 +7,7 @@ - - + + diff --git a/src/main/resources/graphics/folder.png b/src/main/resources/graphics/folder.png new file mode 100644 index 0000000..cfb7430 Binary files /dev/null and b/src/main/resources/graphics/folder.png differ diff --git a/src/main/resources/graphics/java.png b/src/main/resources/graphics/java.png new file mode 100644 index 0000000..7b08926 Binary files /dev/null and b/src/main/resources/graphics/java.png differ diff --git a/src/main/resources/graphics/md.png b/src/main/resources/graphics/md.png new file mode 100644 index 0000000..53b6be9 Binary files /dev/null and b/src/main/resources/graphics/md.png differ