Skip to content

Commit

Permalink
Add Tag Functionality
Browse files Browse the repository at this point in the history
* user feature: add tags to file
* user feature: remove all tags to file
  • Loading branch information
brp14005 committed Mar 2, 2016
1 parent 3f08e25 commit ef9b05c
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 16 deletions.
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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'
}
1 change: 0 additions & 1 deletion src/main/java/directory/FileTreeItem.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ public boolean isLeaf() {
}
private ObservableList<FileTreeItem> buildChildren(TreeItem<IronFile> ironTreeItem) {
IronFile f = ironTreeItem.getValue();
System.out.println(f.getTag());
if (f != null && f.isDirectory()) {
IronFile[] files = f.listFiles();
if (files != null) {
Expand Down
29 changes: 29 additions & 0 deletions src/main/java/directory/FolderViewManager.java
Original file line number Diff line number Diff line change
@@ -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;

Expand Down Expand Up @@ -35,6 +38,7 @@ public class FolderViewManager {
private TreeView<IronFile> view;
private CmdExecutor command;
private List<TreeItem<IronFile>> selectedFiles;
private ObservableList<TreeItem<IronFile>> taggedItems = FXCollections.observableArrayList();

public FolderViewManager(TreeView<IronFile> dirTree) {
/*ironVisitor = new directory.IronFileVisitor(); // save this for later
Expand Down Expand Up @@ -151,4 +155,29 @@ public void deleteFileAttr(IronFile file, String key) {
} catch(IOException e) { e.printStackTrace(); }
}
}

public void setTags(ObservableList<TreeItem<IronFile>> selectedItems, String tag) {
for (TreeItem<IronFile> selectedItem : selectedItems) {
selectedItem.getValue().setTag(tag);
taggedItems.add(selectedItem); // add tagged item to list
// System.out.println(selectedItem.getValue().getTag());
}
}

public void deleteAllTags(ObservableList<TreeItem<IronFile>> selectedItems) {
for (TreeItem<IronFile> selectedItem : selectedItems) {
selectedItem.getValue().setTag(null); // removes all tags for all selected files
}
}

public ObservableList<TreeItem<IronFile>> getTagedItems(String searchTag) {
ObservableList<TreeItem<IronFile>> listTagFiles = FXCollections.observableArrayList();
for (TreeItem<IronFile> taggedItem : taggedItems) {
IronFile currentFile = taggedItem.getValue();
if (currentFile.getTag().equals(searchTag)) {
listTagFiles.add(taggedItem);
}
}
return listTagFiles;
}
}
29 changes: 18 additions & 11 deletions src/main/java/launcher/Controller.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import com.dropbox.core.v2.*;
import webapp.DropboxController;

import java.util.List;
import java.util.ResourceBundle;

public class Controller{
Expand All @@ -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<TreeItem<IronFile>> viewTags;

@FXML private void initialize() {
final FolderViewManager manager = new FolderViewManager(dirTree); // 2 statements in 1 line is best
Expand All @@ -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<TreeItem<IronFile>> selectedItems = dirTree.getSelectionModel().getSelectedItems(); // get list of selected files
manager.setSelectedFiles(selectedItems);

// manager.setSelectedFiles(selectedItems);
manager.setTags(selectedItems, txtAddTag.getText());
});
btnSearchTag.setOnAction(event -> {
ObservableList<TreeItem<IronFile>> taggedItems = manager.getTagedItems(txtTagSearch.getText());
viewTags.setItems(taggedItems);
// manager.displayTagedFiles(txtTagSearch.getText());
});
toolsDeleteTags.setOnAction(event -> {
ObservableList<TreeItem<IronFile>> selectedItems = dirTree.getSelectionModel().getSelectedItems(); // get list of selected files
manager.deleteAllTags(selectedItems);
// manager.deleteFileAttrForSelected();
});

/*toolsDeleteTags.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
manager.deleteFileAttrForSelected();
}
});*/
}
}

8 changes: 4 additions & 4 deletions src/main/resources/StartPage.fxml
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@
<top>
<HBox alignment="CENTER" maxHeight="-Infinity" minHeight="-Infinity" prefHeight="50.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<children>
<TextField promptText="Include Tag..." />
<Button mnemonicParsing="false" text="Add">
<TextField fx:id="txtTagSearch" promptText="Include Tag..." />
<Button fx:id="btnSearchTag" mnemonicParsing="false" text="Search">
<HBox.margin>
<Insets left="15.0" />
</HBox.margin>
Expand All @@ -96,7 +96,7 @@
</HBox>
</top>
<center>
<ListView maxWidth="-Infinity" prefHeight="200.0" prefWidth="250.0" BorderPane.alignment="CENTER" />
<ListView fx:id="viewTags" maxWidth="-Infinity" prefHeight="200.0" prefWidth="250.0" BorderPane.alignment="CENTER" />
</center>
</BorderPane>
</center>
Expand Down Expand Up @@ -127,7 +127,7 @@
<top>
<HBox prefHeight="25.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<children>
<TextField fx:id="txtTag" promptText="Add Tag..." />
<TextField fx:id="txtAddTag" promptText="Add Tag..." />
<Button fx:id="btnAddTag" mnemonicParsing="false" prefWidth="75.0" text="Add" />
</children>
</HBox>
Expand Down

0 comments on commit ef9b05c

Please sign in to comment.