From d5009ebeb7b961d0cfdc0439ef035e6fe709375c Mon Sep 17 00:00:00 2001 From: wn96 Date: Sun, 28 Oct 2018 16:00:33 +0800 Subject: [PATCH] Add status to tag --- src/main/java/loanbook/model/loan/Loan.java | 4 ++++ src/main/java/loanbook/ui/LoanCard.java | 15 +++++++++++++-- .../java/loanbook/ui/testutil/GuiTestAssert.java | 15 +++++++++------ 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/src/main/java/loanbook/model/loan/Loan.java b/src/main/java/loanbook/model/loan/Loan.java index c676ddb18779..0e4b920ae6eb 100644 --- a/src/main/java/loanbook/model/loan/Loan.java +++ b/src/main/java/loanbook/model/loan/Loan.java @@ -51,6 +51,9 @@ public Loan(Name name, LoanStatus loanStatus, Set tags) { + HashSet dataTags = new HashSet<>(); + dataTags.add(new Tag(loanStatus.toString())); + requireAllNonNull(name, nric, phone, email, address, bike, rate, startTime, loanStatus, tags); this.name = name; this.nric = nric; @@ -63,6 +66,7 @@ public Loan(Name name, this.endTime = endTime; this.loanStatus = loanStatus; this.tags.addAll(tags); + this.tags.addAll(dataTags); } /** diff --git a/src/main/java/loanbook/ui/LoanCard.java b/src/main/java/loanbook/ui/LoanCard.java index 7964c3b3c3d0..809fbb187ce9 100644 --- a/src/main/java/loanbook/ui/LoanCard.java +++ b/src/main/java/loanbook/ui/LoanCard.java @@ -13,8 +13,9 @@ public class LoanCard extends UiPart { private static final String FXML = "LoanListCard.fxml"; + private static final String[] LOANSTATUS_TAG_COLOR_STYLES = {"red", "green", "orange"}; private static final String[] TAG_COLOR_STYLES = - {"teal", "red", "yellow", "blue", "orange", "brown", "green", "pink", "black", "grey"}; + {"teal", "yellow", "blue", "brown", "pink", "black", "grey"}; /** * Note: Certain keywords such as "location" and "resources" are reserved keywords in JavaFX. @@ -71,7 +72,17 @@ public LoanCard(Loan loan, int displayedIndex) { private String getTagColorStyleFor(String tagName) { // we use the hash code of the tag name to generate a random color, so that the color remain consistent // between different runs of the program while still making it random enough between tags. - return TAG_COLOR_STYLES[Math.abs(tagName.hashCode()) % TAG_COLOR_STYLES.length]; + switch (tagName) { + case "Ongoing": + return LOANSTATUS_TAG_COLOR_STYLES[2]; + case "Returned": + return LOANSTATUS_TAG_COLOR_STYLES[1]; + case "Deleted": + return LOANSTATUS_TAG_COLOR_STYLES[0]; + default: + // All user defined tags are set to brown colour. + return TAG_COLOR_STYLES[3]; + } } /** diff --git a/src/test/java/loanbook/ui/testutil/GuiTestAssert.java b/src/test/java/loanbook/ui/testutil/GuiTestAssert.java index 7dff9c173dc3..0bc4247fe8cf 100644 --- a/src/test/java/loanbook/ui/testutil/GuiTestAssert.java +++ b/src/test/java/loanbook/ui/testutil/GuiTestAssert.java @@ -58,19 +58,22 @@ public static void assertCardDisplaysLoan(Loan expectedLoan, LoanCardHandle actu */ private static String getTagColorStyleFor(String tagName) { switch (tagName) { - case "classmates": + case "tag1": case "owesMoney": - return "teal"; case "colleagues": + case "classmates": case "neighbours": - return "yellow"; case "family": case "friend": - return "orange"; case "friends": - return "brown"; case "husband": - return "grey"; + return "brown"; + case "Ongoing": + return "orange"; + case "Returned": + return "green"; + case "Deleted": + return "red"; default: throw new AssertionError(tagName + " does not have a color assigned."); }