docs: javadoc for ViewsService
This commit is contained in:
parent
ba4876bf8c
commit
3c181c2e45
1 changed files with 38 additions and 0 deletions
|
@ -23,6 +23,12 @@ public class ViewsService {
|
||||||
this.expenseService = expenseService;
|
this.expenseService = expenseService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a badge (Vaadin {@link Span}) based on the type of the expense and its payment status.
|
||||||
|
*
|
||||||
|
* @param expense the expense for which the badge is being created.
|
||||||
|
* @return a {@link Span} object representing the expense status badge.
|
||||||
|
*/
|
||||||
public Span createExpenseBadge(final Expense expense) {
|
public Span createExpenseBadge(final Expense expense) {
|
||||||
final var isExpensePaid = Boolean.TRUE.equals(this.expenseService.isExpensePaid(expense));
|
final var isExpensePaid = Boolean.TRUE.equals(this.expenseService.isExpensePaid(expense));
|
||||||
final var badgeMessage = determineBadgeMessage(expense.getExpenseType(), isExpensePaid);
|
final var badgeMessage = determineBadgeMessage(expense.getExpenseType(), isExpensePaid);
|
||||||
|
@ -34,6 +40,13 @@ public class ViewsService {
|
||||||
return badge;
|
return badge;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a badge (Vaadin {@link Span}) that reflects a person's financial balance status
|
||||||
|
* based on the net balance provided.
|
||||||
|
*
|
||||||
|
* @param netBalance the net balance of the person.
|
||||||
|
* @return a {@link Span} object representing the person's financial status badge.
|
||||||
|
*/
|
||||||
public Span createPersonBadge(BigDecimal netBalance) {
|
public Span createPersonBadge(BigDecimal netBalance) {
|
||||||
Span badge = new Span();
|
Span badge = new Span();
|
||||||
if (netBalance.compareTo(BigDecimal.ZERO) < 0) {
|
if (netBalance.compareTo(BigDecimal.ZERO) < 0) {
|
||||||
|
@ -49,6 +62,15 @@ public class ViewsService {
|
||||||
return badge;
|
return badge;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Applies a name-based filter on the expenses displayed in the provided grid.
|
||||||
|
* If the filter value is empty, all expenses are displayed; otherwise, expenses
|
||||||
|
* whose names match the filter are shown.
|
||||||
|
*
|
||||||
|
* @param nameFilter the {@link TextField} containing the name filter value.
|
||||||
|
* @param userId the ID of the user whose expenses are being filtered.
|
||||||
|
* @param grid the {@link PaginatedGrid} that displays the expenses.
|
||||||
|
*/
|
||||||
public void applyNameFilter(TextField nameFilter, Long userId, PaginatedGrid<Expense, Objects> grid) {
|
public void applyNameFilter(TextField nameFilter, Long userId, PaginatedGrid<Expense, Objects> grid) {
|
||||||
final var filterValue = nameFilter.getValue().trim();
|
final var filterValue = nameFilter.getValue().trim();
|
||||||
List<Expense> filteredExpenses;
|
List<Expense> filteredExpenses;
|
||||||
|
@ -62,6 +84,15 @@ public class ViewsService {
|
||||||
grid.setItems(filteredExpenses);
|
grid.setItems(filteredExpenses);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Applies a category-based filter on the expenses displayed in the provided grid.
|
||||||
|
* If no categories are selected, all expenses are shown; otherwise, only expenses
|
||||||
|
* that match the selected categories are displayed.
|
||||||
|
*
|
||||||
|
* @param categoryFilter the {@link MultiSelectComboBox} containing the selected categories.
|
||||||
|
* @param userId the ID of the user whose expenses are being filtered.
|
||||||
|
* @param grid the {@link PaginatedGrid} that displays the expenses.
|
||||||
|
*/
|
||||||
public void applyCategoryFilter(MultiSelectComboBox<Category> categoryFilter, Long userId, PaginatedGrid<Expense, Objects> grid) {
|
public void applyCategoryFilter(MultiSelectComboBox<Category> categoryFilter, Long userId, PaginatedGrid<Expense, Objects> grid) {
|
||||||
final var selectedCategories = categoryFilter.getValue();
|
final var selectedCategories = categoryFilter.getValue();
|
||||||
List<Expense> filteredExpenses;
|
List<Expense> filteredExpenses;
|
||||||
|
@ -76,6 +107,13 @@ public class ViewsService {
|
||||||
grid.setItems(filteredExpenses);
|
grid.setItems(filteredExpenses);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines the message and theme for a badge based on the expense type and its payment status.
|
||||||
|
*
|
||||||
|
* @param type the type of the expense (CREDIT, DEBIT, or NONE).
|
||||||
|
* @param isPaid boolean indicating whether the expense has been paid.
|
||||||
|
* @return a {@link BadgeMessage} object containing the text and theme for the badge.
|
||||||
|
*/
|
||||||
private BadgeMessage determineBadgeMessage(ExpenseType type, boolean isPaid) {
|
private BadgeMessage determineBadgeMessage(ExpenseType type, boolean isPaid) {
|
||||||
return switch (type) {
|
return switch (type) {
|
||||||
case CREDIT -> isPaid ? BadgeMessage.PAID_TO_ME : BadgeMessage.OWED_TO_ME;
|
case CREDIT -> isPaid ? BadgeMessage.PAID_TO_ME : BadgeMessage.OWED_TO_ME;
|
||||||
|
|
Loading…
Reference in a new issue