From d0bddf7d46cb6314d3656ba25e2af58236b16ead Mon Sep 17 00:00:00 2001 From: Oystein Date: Mon, 22 Feb 2021 10:11:56 +0100 Subject: [PATCH] filtre --- .../app/controllers/FiletreeController.java | 47 ++++++++++++++- .../app/controllers/MenubarController.java | 55 +++++++++++++++++- .../resources/fxml/components/Menubar.fxml | 5 +- src/main/resources/graphics/folder.png | Bin 0 -> 207 bytes src/main/resources/graphics/java.png | Bin 0 -> 427 bytes src/main/resources/graphics/md.png | Bin 0 -> 201 bytes 6 files changed, 102 insertions(+), 5 deletions(-) create mode 100644 src/main/resources/graphics/folder.png create mode 100644 src/main/resources/graphics/java.png create mode 100644 src/main/resources/graphics/md.png 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 0000000000000000000000000000000000000000..cfb74309ed02fb1c90f99dbfecb8cb33b4bcaa6f GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt^Fo-U3d z7QM*{3j_@ORu}#3*E@0K%#G<6_w1e_!5kq01Tkkt9y0C!_b1t+_HE>^Gg9KmzD%=q zb=k>qlYxzmt?jz}e&d+^-@n~Ie}DhXj-rF_g1-l{R9f7W?D--xGel&G#0&|^!mPL* zY4%4Neh9cbi9KXtnQM`Cpu?b{wUKesA~qfdhU4POH;#!)djQ?T;OXk;vd$@?2>_*x BPB;Jn literal 0 HcmV?d00001 diff --git a/src/main/resources/graphics/java.png b/src/main/resources/graphics/java.png new file mode 100644 index 0000000000000000000000000000000000000000..7b08926097c72cb4a49be598a7b9bb9f57bdaf19 GIT binary patch literal 427 zcmV;c0aX5pP) z+KKZopzCA8XDc$uit=R;;^ot;?MF3)XahJo*cnnIycqd;x%KKMEI1AmXCc;r%AUC} zCL;p_g9S+jw3j5~GK_dH-~wbBAS@(EngM@)eP#Im`6a`Hiz^v!9G}AAVW-cqbGn-t z0|Sv^@chm`hFhm*F>rG6F|e|+Gkm(Si-ComwSs|xp@^UXuOA*~cyM7kgQmVIgOq|2 z0|NsC!@E~67%m(;khXiS&vk-c`1SKM0|yreTr&d$1A~y51cQjAG&AG>e~Pq^1vYkG zh9BR4Fg$y37cTbh)eD9<&!7HfU}Aj02ouDX8(CRd7|e_e7{r-xFnqkZgn@&Lmw}ay zo#D%ew+xI7|N5PiwiYp>Yr+Qh&kqpz@#BX8D?3Xh1H*rXUw{8KvoZYo?UK6pB>?0H Vg<)pPUDyBs002ovPDHLkV1jz=w^{%I literal 0 HcmV?d00001 diff --git a/src/main/resources/graphics/md.png b/src/main/resources/graphics/md.png new file mode 100644 index 0000000000000000000000000000000000000000..53b6be938d416932ce7caea563c9d7135da53f20 GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_2o-U3d z7QM+S4NYC|EdNV>Uo0hnd?;Pp=tS42 zRDnlNFRy;w tje08dA22Ou