diff --git a/src/main/java/launcher/Controller.java b/src/main/java/launcher/Controller.java index 8153b32..9f57069 100644 --- a/src/main/java/launcher/Controller.java +++ b/src/main/java/launcher/Controller.java @@ -10,10 +10,14 @@ import directory.FolderViewManager; import directory.IronFile; import javafx.fxml.FXML; +import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.image.Image; import javafx.scene.image.ImageView; +import javafx.scene.input.DragEvent; +import javafx.scene.input.Dragboard; import javafx.scene.input.MouseEvent; +import javafx.scene.input.TransferMode; import sun.misc.Resource; import sun.reflect.generics.tree.Tree; import com.dropbox.core.*; @@ -41,10 +45,13 @@ public class Controller{ @FXML private Button btnSearchTag; @FXML private ListView viewTags; private FolderViewManager manager; + @FXML private MenuBar menubar; + @FXML private Label dragHereLabel; @FXML private void initialize() { manager = new FolderViewManager(dirTree); // 2 statements in 1 line is best IronFile[] hardDrives = IronFile.listRoots(); // an array of hard drives + menubar.setUseSystemMenuBar(true); //allows use of native menu bars, luckily an easy 1 liner manager.setRootDirectory(hardDrives); } /** @@ -72,5 +79,35 @@ public class Controller{ ObservableList> selectedItems = dirTree.getSelectionModel().getSelectedItems(); // get list of selected files manager.deleteAllTags(selectedItems); } + public void initializeSceneEvents() { + Scene scene = dirTree.getScene(); + scene.setOnDragOver(new EventHandler() { + @Override + public void handle(DragEvent args) { + Dragboard db = args.getDragboard(); + //System.out.println("dragging over"); + if(db.hasFiles()) { + args.acceptTransferModes(TransferMode.COPY); + } else { args.consume(); } + } + }); + scene.setOnDragDropped(new EventHandler() { + @Override + public void handle(DragEvent args) { + Dragboard db = args.getDragboard(); + args.acceptTransferModes(TransferMode.COPY); + boolean success = false; + if(db.hasFiles()) { + System.out.println("dropped file(s)"); + IronFile[] roots = IronFile.convertFiles(db.getFiles()); + manager.setRootDirectory(roots); + success = true; + dragHereLabel.setText(""); + dragHereLabel.setMaxWidth(0); + } + args.setDropCompleted(success); + } + }); + } } diff --git a/src/main/java/launcher/Main.java b/src/main/java/launcher/Main.java index d64ce98..25c122a 100644 --- a/src/main/java/launcher/Main.java +++ b/src/main/java/launcher/Main.java @@ -17,7 +17,7 @@ public class Main extends Application { @Override public void start(Stage primaryStage) throws Exception{ - setUserAgentStylesheet(STYLESHEET_CASPIAN); +// setUserAgentStylesheet(STYLESHEET_CASPIAN); Parent root = FXMLLoader.load(getClass().getResource("/StartPage.fxml")); primaryStage.setTitle("Iron-gate!"); primaryStage.setScene(new Scene(root, 990, 700)); diff --git a/src/main/resources/StartPage.fxml b/src/main/resources/StartPage.fxml index c154943..37e1698 100644 --- a/src/main/resources/StartPage.fxml +++ b/src/main/resources/StartPage.fxml @@ -23,7 +23,7 @@ - +