diff --git a/build.gradle b/build.gradle index 08da353..e5454dc 100644 --- a/build.gradle +++ b/build.gradle @@ -12,5 +12,6 @@ repositories { dependencies { compile group: 'com.dropbox.core', name: 'dropbox-core-sdk', version: '2.0-beta-7' compile group: 'org.json', name: 'json', version: '20160212' + compile group: 'commons-io', name: 'commons-io', version: '1.3.2' testCompile group: 'junit', name: 'junit', version: '4.11' } \ No newline at end of file diff --git a/src/main/java/directory/FileTreeItem.java b/src/main/java/directory/FileTreeItem.java index 1fc4fff..e3f5c9a 100644 --- a/src/main/java/directory/FileTreeItem.java +++ b/src/main/java/directory/FileTreeItem.java @@ -39,7 +39,6 @@ public boolean isLeaf() { } private ObservableList buildChildren(TreeItem ironTreeItem) { IronFile f = ironTreeItem.getValue(); - System.out.println(f.getTag()); if (f != null && f.isDirectory()) { IronFile[] files = f.listFiles(); if (files != null) { diff --git a/src/main/java/directory/FolderViewManager.java b/src/main/java/directory/FolderViewManager.java index a92f1da..4cddcb1 100644 --- a/src/main/java/directory/FolderViewManager.java +++ b/src/main/java/directory/FolderViewManager.java @@ -1,11 +1,14 @@ package directory; +import javafx.collections.FXCollections; import javafx.collections.ObservableList; +import javafx.scene.control.ListView; import javafx.scene.control.SelectionMode; import javafx.scene.control.TreeItem; import javafx.scene.control.TreeView; import javafx.scene.image.Image; import javafx.scene.image.ImageView; +import sun.reflect.generics.tree.Tree; import utils.CmdExecutor; import utils.OSDetection; @@ -35,6 +38,7 @@ public class FolderViewManager { private TreeView view; private CmdExecutor command; private List> selectedFiles; + private ObservableList> taggedItems = FXCollections.observableArrayList(); public FolderViewManager(TreeView dirTree) { /*ironVisitor = new directory.IronFileVisitor(); // save this for later @@ -151,4 +155,29 @@ public void deleteFileAttr(IronFile file, String key) { } catch(IOException e) { e.printStackTrace(); } } } + + public void setTags(ObservableList> selectedItems, String tag) { + for (TreeItem selectedItem : selectedItems) { + selectedItem.getValue().setTag(tag); + taggedItems.add(selectedItem); // add tagged item to list +// System.out.println(selectedItem.getValue().getTag()); + } + } + + public void deleteAllTags(ObservableList> selectedItems) { + for (TreeItem selectedItem : selectedItems) { + selectedItem.getValue().setTag(null); // removes all tags for all selected files + } + } + + public ObservableList> getTagedItems(String searchTag) { + ObservableList> listTagFiles = FXCollections.observableArrayList(); + for (TreeItem taggedItem : taggedItems) { + IronFile currentFile = taggedItem.getValue(); + if (currentFile.getTag().equals(searchTag)) { + listTagFiles.add(taggedItem); + } + } + return listTagFiles; + } } diff --git a/src/main/java/launcher/Controller.java b/src/main/java/launcher/Controller.java index f7352ca..1ca7f05 100644 --- a/src/main/java/launcher/Controller.java +++ b/src/main/java/launcher/Controller.java @@ -19,6 +19,7 @@ import com.dropbox.core.v2.*; import webapp.DropboxController; +import java.util.List; import java.util.ResourceBundle; public class Controller{ @@ -33,7 +34,10 @@ public class Controller{ @FXML private MenuItem toolsDeleteTags; @FXML private ResourceBundle resources; @FXML private Button btnAddTag; - @FXML private TextField txtTag; + @FXML private TextField txtAddTag; + @FXML private TextField txtTagSearch; + @FXML private Button btnSearchTag; + @FXML private ListView> viewTags; @FXML private void initialize() { final FolderViewManager manager = new FolderViewManager(dirTree); // 2 statements in 1 line is best @@ -51,18 +55,21 @@ public void handle(MouseEvent args) { } });*/ - toolsTagFiles.setOnAction((event) -> { // new java 8 set mouse event + btnAddTag.setOnAction((event) -> { // new java 8 set mouse event ObservableList> selectedItems = dirTree.getSelectionModel().getSelectedItems(); // get list of selected files - manager.setSelectedFiles(selectedItems); - +// manager.setSelectedFiles(selectedItems); + manager.setTags(selectedItems, txtAddTag.getText()); + }); + btnSearchTag.setOnAction(event -> { + ObservableList> taggedItems = manager.getTagedItems(txtTagSearch.getText()); + viewTags.setItems(taggedItems); +// manager.displayTagedFiles(txtTagSearch.getText()); + }); + toolsDeleteTags.setOnAction(event -> { + ObservableList> selectedItems = dirTree.getSelectionModel().getSelectedItems(); // get list of selected files + manager.deleteAllTags(selectedItems); +// manager.deleteFileAttrForSelected(); }); - - /*toolsDeleteTags.setOnAction(new EventHandler() { - @Override - public void handle(ActionEvent event) { - manager.deleteFileAttrForSelected(); - } - });*/ } } diff --git a/src/main/resources/StartPage.fxml b/src/main/resources/StartPage.fxml index d745471..802d6ff 100644 --- a/src/main/resources/StartPage.fxml +++ b/src/main/resources/StartPage.fxml @@ -86,8 +86,8 @@ - -