diff --git a/src/main/java/seedu/address/logic/LogicManager.java b/src/main/java/seedu/address/logic/LogicManager.java index bc554496e3b..a6a9fd51efb 100644 --- a/src/main/java/seedu/address/logic/LogicManager.java +++ b/src/main/java/seedu/address/logic/LogicManager.java @@ -10,6 +10,8 @@ import seedu.address.commons.core.LogsCenter; import seedu.address.logic.commands.Command; import seedu.address.logic.commands.CommandResult; +import seedu.address.logic.commands.RedoCommand; +import seedu.address.logic.commands.UndoCommand; import seedu.address.logic.commands.UndoableCommand; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.logic.parser.AddressBookParser; @@ -132,8 +134,8 @@ public void setGuiSettings(GuiSettings guiSettings) { @Override public CommandResult undoCommand() { try { - return this.execute("undo"); - } catch (CommandException | ParseException e) { + return executeCommand(new UndoCommand()); + } catch (CommandException e) { return new CommandResult(e.getMessage()); } } @@ -141,8 +143,8 @@ public CommandResult undoCommand() { @Override public CommandResult redoCommand() { try { - return this.execute("redo"); - } catch (CommandException | ParseException e) { + return executeCommand(new RedoCommand()); + } catch (CommandException e) { return new CommandResult(e.getMessage()); } } diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/seedu/address/model/ModelManager.java index 4dd0208343b..ce7dfa64e92 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/seedu/address/model/ModelManager.java @@ -24,6 +24,7 @@ import seedu.address.model.tag.Tag; import seedu.address.model.task.Contact; import seedu.address.model.task.Task; +import seedu.address.model.task.filters.TagTaskFilter; import seedu.address.model.task.filters.TaskFilter; import seedu.address.model.task.filters.TaskFilters; import seedu.address.storage.CommandHistory; @@ -116,6 +117,7 @@ public Path getAddressBookFilePath() { public void setAddressBookFilePath(Path addressBookFilePath) { requireNonNull(addressBookFilePath); userPrefs.setAddressBookFilePath(addressBookFilePath); + userPrefs.setAddressBookFilePath(addressBookFilePath); } //=========== AddressBook ================================================================================ @@ -334,7 +336,8 @@ private void updateTaskFilters() { recomputeAvailableTaskFilters(); // If removing or editing the task removed a tag, remove all filters associated with that tag - if (selectedTaskFilters.removeIf(filter -> !availableTaskFilters.contains(filter))) { + if (selectedTaskFilters.removeIf(filter -> filter instanceof TagTaskFilter + && !availableTaskFilters.contains(filter))) { recalculateFilteredTaskList(); } } diff --git a/src/main/java/seedu/address/ui/TaskListPanel.java b/src/main/java/seedu/address/ui/TaskListPanel.java index 8c118b63ec8..3f8ca28addd 100644 --- a/src/main/java/seedu/address/ui/TaskListPanel.java +++ b/src/main/java/seedu/address/ui/TaskListPanel.java @@ -60,14 +60,14 @@ public TaskListPanel( placeholder.getStyleClass().add("italics"); filterComboBox.setPlaceholder(placeholder); filterComboBox.setItems(selectableTaskFilters); - // Workaround: Close menu when mouse down to prevent mouse up from selecting another item - filterComboBox.setOnAction(e -> filterComboBox.hide()); filterComboBox.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> { if (newValue != null) { - addTaskFilter.accept(newValue); - // When a filter is selected, reset the combo box's current selection - Platform.runLater(filterComboBox.getSelectionModel()::clearSelection); + Platform.runLater(() -> { + filterComboBox.getSelectionModel().clearSelection(); + filterComboBox.hide(); + addTaskFilter.accept(newValue); + }); } });