diff --git a/src/de/deadlocker8/budgetmaster/logic/search/SearchPreferences.java b/src/de/deadlocker8/budgetmaster/logic/search/SearchPreferences.java new file mode 100644 index 0000000000000000000000000000000000000000..42a89272834fa7f52e14a7da227490747d651d47 --- /dev/null +++ b/src/de/deadlocker8/budgetmaster/logic/search/SearchPreferences.java @@ -0,0 +1,80 @@ +package de.deadlocker8.budgetmaster.logic.search; + +public class SearchPreferences +{ + private String lastQuery; + private boolean searchName; + private boolean searchDescription; + private boolean searchCategorNames; + private boolean searchTags; + + public SearchPreferences() + { + + } + + public SearchPreferences(String lastQuery, boolean searchName, boolean searchDescription, boolean searchCategorNames, boolean searchTags) + { + this.lastQuery = lastQuery; + this.searchName = searchName; + this.searchDescription = searchDescription; + this.searchCategorNames = searchCategorNames; + this.searchTags = searchTags; + } + + public String getLastQuery() + { + return lastQuery; + } + + public void setLastQuery(String lastQuery) + { + this.lastQuery = lastQuery; + } + + public boolean isSearchName() + { + return searchName; + } + + public void setSearchName(boolean searchName) + { + this.searchName = searchName; + } + + public boolean isSearchDescription() + { + return searchDescription; + } + + public void setSearchDescription(boolean searchDescription) + { + this.searchDescription = searchDescription; + } + + public boolean isSearchCategorNames() + { + return searchCategorNames; + } + + public void setSearchCategorNames(boolean searchCategorNames) + { + this.searchCategorNames = searchCategorNames; + } + + public boolean isSearchTags() + { + return searchTags; + } + + public void setSearchTags(boolean searchTags) + { + this.searchTags = searchTags; + } + + @Override + public String toString() + { + return "SearchPreferences [lastQuery=" + lastQuery + ", searchName=" + searchName + ", searchDescription=" + searchDescription + ", searchCategorNames=" + searchCategorNames + ", searchTags=" + searchTags + "]"; + } +} \ No newline at end of file diff --git a/src/de/deadlocker8/budgetmaster/ui/controller/Controller.java b/src/de/deadlocker8/budgetmaster/ui/controller/Controller.java index d365de4af1e68fbf0d839e726dad84c5c6305175..9ef42021033c039738d9114b2326f809a8d3595e 100644 --- a/src/de/deadlocker8/budgetmaster/ui/controller/Controller.java +++ b/src/de/deadlocker8/budgetmaster/ui/controller/Controller.java @@ -13,6 +13,7 @@ import de.deadlocker8.budgetmaster.logic.category.CategoryHandler; import de.deadlocker8.budgetmaster.logic.payment.NormalPayment; import de.deadlocker8.budgetmaster.logic.payment.Payment; import de.deadlocker8.budgetmaster.logic.payment.PaymentHandler; +import de.deadlocker8.budgetmaster.logic.search.SearchPreferences; import de.deadlocker8.budgetmaster.logic.serverconnection.ExceptionHandler; import de.deadlocker8.budgetmaster.logic.serverconnection.ServerConnection; import de.deadlocker8.budgetmaster.logic.tag.TagHandler; @@ -81,7 +82,7 @@ public class Controller extends BaseController private FilterSettings filterSettings; private Updater updater; private Payment selectedPayment; - private String lastSearchQuery; + private SearchPreferences searchPreferences; private boolean alertIsShowing = false; private static final String DATE_FORMAT = "MMMM yyyy"; @@ -383,16 +384,16 @@ public class Controller extends BaseController public Payment getSelectedPayment() { return selectedPayment; - } - - public String getLastSearchQuery() + } + + public SearchPreferences getSearchPreferences() { - return lastSearchQuery; + return searchPreferences; } - public void setLastSearchQuery(String lastSearchQuery) + public void setSearchPreferences(SearchPreferences searchPreferences) { - this.lastSearchQuery = lastSearchQuery; + this.searchPreferences = searchPreferences; } public PaymentController getPaymentController() diff --git a/src/de/deadlocker8/budgetmaster/ui/controller/SearchController.java b/src/de/deadlocker8/budgetmaster/ui/controller/SearchController.java index fb45e4248282c72bcdbb43145393ddd27a4ecf8c..e0d12ca5c7ea8ee749457bb79a5aceecd0256326 100644 --- a/src/de/deadlocker8/budgetmaster/ui/controller/SearchController.java +++ b/src/de/deadlocker8/budgetmaster/ui/controller/SearchController.java @@ -3,6 +3,7 @@ package de.deadlocker8.budgetmaster.ui.controller; import java.util.ArrayList; import de.deadlocker8.budgetmaster.logic.payment.Payment; +import de.deadlocker8.budgetmaster.logic.search.SearchPreferences; import de.deadlocker8.budgetmaster.logic.serverconnection.ExceptionHandler; import de.deadlocker8.budgetmaster.logic.serverconnection.ServerConnection; import de.deadlocker8.budgetmaster.logic.utils.Colors; @@ -106,9 +107,14 @@ public class SearchController extends BaseController implements Styleable } }); - if(controller.getLastSearchQuery() != null) + //prefill + if(controller.getSearchPreferences() != null) { - textFieldSearch.setText(controller.getLastSearchQuery()); + textFieldSearch.setText(controller.getSearchPreferences().getLastQuery()); + checkBoxName.setSelected(controller.getSearchPreferences().isSearchName()); + checkBoxDescription.setSelected(controller.getSearchPreferences().isSearchDescription()); + checkBoxCategoryName.setSelected(controller.getSearchPreferences().isSearchCategorNames()); + checkBoxTags.setSelected(controller.getSearchPreferences().isSearchTags()); } applyStyle(); @@ -116,8 +122,16 @@ public class SearchController extends BaseController implements Styleable public void search() { - String query = textFieldSearch.getText().trim(); - controller.setLastSearchQuery(query); + String query = textFieldSearch.getText().trim(); + if(controller.getSearchPreferences() == null) + { + controller.setSearchPreferences(new SearchPreferences()); + } + controller.getSearchPreferences().setLastQuery(query); + controller.getSearchPreferences().setSearchName(checkBoxName.isSelected()); + controller.getSearchPreferences().setSearchDescription(checkBoxDescription.isSelected()); + controller.getSearchPreferences().setSearchCategorNames(checkBoxCategoryName.isSelected()); + controller.getSearchPreferences().setSearchTags(checkBoxTags.isSelected()); Stage modalStage = Helpers.showModal(Localization.getString(Strings.TITLE_MODAL), Localization.getString(Strings.LOAD_SEARCH), getStage(), controller.getIcon());