diff --git a/src/main/java/seedu/address/logic/commands/AddCommand.java b/src/main/java/seedu/address/logic/commands/AddCommand.java index 8ae64143225c..73a233b485d9 100644 --- a/src/main/java/seedu/address/logic/commands/AddCommand.java +++ b/src/main/java/seedu/address/logic/commands/AddCommand.java @@ -6,6 +6,7 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; +import static seedu.address.logic.parser.CliSyntax.PREFIX_PROFILEPAGE; import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; import seedu.address.logic.commands.exceptions.CommandException; @@ -27,6 +28,7 @@ public class AddCommand extends UndoableCommand { + PREFIX_EMAIL + "EMAIL " + PREFIX_BIRTHDAY + "BIRTHDAY " + PREFIX_ADDRESS + "ADDRESS " + + PREFIX_PROFILEPAGE + "PROFILE PAGE " + "[" + PREFIX_TAG + "TAG]...\n" + "Example: " + COMMAND_WORD + " " + PREFIX_NAME + "John Doe " @@ -34,6 +36,7 @@ public class AddCommand extends UndoableCommand { + PREFIX_EMAIL + "johnd@example.com " + PREFIX_BIRTHDAY + "1995/11/03 " + PREFIX_ADDRESS + "311, Clementi Ave 2, #02-25 " + + PREFIX_PROFILEPAGE + "www.facebook.com " + PREFIX_TAG + "friends " + PREFIX_TAG + "owesMoney"; diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/seedu/address/logic/commands/EditCommand.java index 96f1a67596f6..58ccb1a656be 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/seedu/address/logic/commands/EditCommand.java @@ -1,12 +1,7 @@ package seedu.address.logic.commands; import static java.util.Objects.requireNonNull; -import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_BIRTHDAY; -import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; -import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; -import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; -import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; +import static seedu.address.logic.parser.CliSyntax.*; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; import java.util.List; @@ -18,6 +13,7 @@ import seedu.address.commons.util.CollectionUtil; import seedu.address.logic.commands.exceptions.CommandException; import seedu.address.model.person.Address; +import seedu.address.model.person.ProfilePage; import seedu.address.model.person.Birthday; import seedu.address.model.person.Email; import seedu.address.model.person.Name; @@ -44,6 +40,7 @@ public class EditCommand extends UndoableCommand { + "[" + PREFIX_EMAIL + "EMAIL] " + "[" + PREFIX_BIRTHDAY + "BIRTHDAY]" + "[" + PREFIX_ADDRESS + "ADDRESS] " + + "[" + PREFIX_PROFILEPAGE + "PROFILE PAGE] " + "[" + PREFIX_TAG + "TAG]...\n" + "Example: " + COMMAND_WORD + " 1 " + PREFIX_PHONE + "91234567 " @@ -103,9 +100,10 @@ private static Person createEditedPerson(ReadOnlyPerson personToEdit, Email updatedEmail = editPersonDescriptor.getEmail().orElse(personToEdit.getEmail()); Birthday updateBirthday = editPersonDescriptor.getBirthday().orElse(personToEdit.getBirthday()); Address updatedAddress = editPersonDescriptor.getAddress().orElse(personToEdit.getAddress()); + ProfilePage updatedProfile= editPersonDescriptor.getProfilePage().orElse(personToEdit.getProfilePage()); Set updatedTags = editPersonDescriptor.getTags().orElse(personToEdit.getTags()); - return new Person(updatedName, updatedPhone, updatedEmail, updateBirthday, updatedAddress, updatedTags); + return new Person(updatedName, updatedPhone, updatedEmail, updateBirthday, updatedAddress, updatedProfile, updatedTags); } @Override @@ -136,6 +134,7 @@ public static class EditPersonDescriptor { private Email email; private Birthday birthday; private Address address; + private ProfilePage profile; private Set tags; public EditPersonDescriptor() {} @@ -146,6 +145,7 @@ public EditPersonDescriptor(EditPersonDescriptor toCopy) { this.email = toCopy.email; this.birthday = toCopy.birthday; this.address = toCopy.address; + this.profile= toCopy.profile; this.tags = toCopy.tags; } @@ -154,7 +154,7 @@ public EditPersonDescriptor(EditPersonDescriptor toCopy) { */ public boolean isAnyFieldEdited() { return CollectionUtil.isAnyNonNull(this.name, this.phone, this.email, - this.birthday, this.address, this.tags); + this.birthday, this.address, this.profile, this.tags); } public void setName(Name name) { @@ -197,6 +197,14 @@ public Optional
getAddress() { return Optional.ofNullable(address); } + public void setProfilePage(ProfilePage profile) { + this.profile = profile; + } + + public Optional getProfilePage() { + return Optional.ofNullable(profile); + } + public void setTags(Set tags) { this.tags = tags; } @@ -225,6 +233,7 @@ && getPhone().equals(e.getPhone()) && getEmail().equals(e.getEmail()) && getBirthday().equals(e.getBirthday()) && getAddress().equals(e.getAddress()) + && getProfilePage().equals(e.getProfilePage()) && getTags().equals(e.getTags()); } } diff --git a/src/main/java/seedu/address/logic/parser/AddCommandParser.java b/src/main/java/seedu/address/logic/parser/AddCommandParser.java index 9f2b01a3f22e..833a4ff54a6f 100644 --- a/src/main/java/seedu/address/logic/parser/AddCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/AddCommandParser.java @@ -7,6 +7,7 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; +import static seedu.address.logic.parser.CliSyntax.PREFIX_PROFILEPAGE; import java.util.Set; import java.util.stream.Stream; @@ -15,6 +16,7 @@ import seedu.address.logic.commands.AddCommand; import seedu.address.logic.parser.exceptions.ParseException; import seedu.address.model.person.Address; +import seedu.address.model.person.ProfilePage; import seedu.address.model.person.Birthday; import seedu.address.model.person.Email; import seedu.address.model.person.Name; @@ -36,10 +38,10 @@ public class AddCommandParser implements Parser { public AddCommand parse(String args) throws ParseException { ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_BIRTHDAY, - PREFIX_ADDRESS, PREFIX_TAG); + PREFIX_ADDRESS, PREFIX_PROFILEPAGE, PREFIX_TAG); if (!arePrefixesPresent(argMultimap, PREFIX_NAME, - PREFIX_ADDRESS, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_BIRTHDAY)) { + PREFIX_ADDRESS, PREFIX_PROFILEPAGE, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_BIRTHDAY)) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE)); } @@ -49,9 +51,10 @@ public AddCommand parse(String args) throws ParseException { Email email = ParserUtil.parseEmail(argMultimap.getValue(PREFIX_EMAIL)).get(); Birthday birthday = ParserUtil.parseBirthday(argMultimap.getValue(PREFIX_BIRTHDAY)).get(); Address address = ParserUtil.parseAddress(argMultimap.getValue(PREFIX_ADDRESS)).get(); + ProfilePage profile = ParserUtil.parseProfilePage(argMultimap.getValue(PREFIX_PROFILEPAGE)).get(); Set tagList = ParserUtil.parseTags(argMultimap.getAllValues(PREFIX_TAG)); - ReadOnlyPerson person = new Person(name, phone, email, birthday, address, tagList); + ReadOnlyPerson person = new Person(name, phone, email, birthday, address, profile, tagList); return new AddCommand(person); } catch (IllegalValueException ive) { diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/seedu/address/logic/parser/AddressBookParser.java index d92aef2e1e40..94990678f5e7 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/seedu/address/logic/parser/AddressBookParser.java @@ -17,6 +17,7 @@ import seedu.address.logic.commands.FindCommand; import seedu.address.logic.commands.FindTagCommand; import seedu.address.logic.commands.FindPhoneCommand; +import seedu.address.logic.commands.DeleteListCommand; import seedu.address.logic.commands.HelpCommand; import seedu.address.logic.commands.HistoryCommand; import seedu.address.logic.commands.ListCommand; diff --git a/src/main/java/seedu/address/logic/parser/CliSyntax.java b/src/main/java/seedu/address/logic/parser/CliSyntax.java index acb237858d20..93b369ef69b9 100644 --- a/src/main/java/seedu/address/logic/parser/CliSyntax.java +++ b/src/main/java/seedu/address/logic/parser/CliSyntax.java @@ -11,6 +11,7 @@ public class CliSyntax { public static final Prefix PREFIX_EMAIL = new Prefix("e/"); public static final Prefix PREFIX_BIRTHDAY = new Prefix("b/"); public static final Prefix PREFIX_ADDRESS = new Prefix("a/"); + public static final Prefix PREFIX_PROFILEPAGE = new Prefix("pr/"); public static final Prefix PREFIX_TAG = new Prefix("t/"); public static final Prefix PREFIX_DATE = new Prefix("d/"); public static final Prefix PREFIX_DESCRIPTION = new Prefix("de/"); diff --git a/src/main/java/seedu/address/logic/parser/EditCommandParser.java b/src/main/java/seedu/address/logic/parser/EditCommandParser.java index 035e0c70d03e..4682a7e37c83 100644 --- a/src/main/java/seedu/address/logic/parser/EditCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/EditCommandParser.java @@ -2,12 +2,7 @@ import static java.util.Objects.requireNonNull; import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_BIRTHDAY; -import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; -import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; -import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; -import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; +import static seedu.address.logic.parser.CliSyntax.*; import java.util.Collection; import java.util.Collections; @@ -35,7 +30,7 @@ public EditCommand parse(String args) throws ParseException { requireNonNull(args); ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, - PREFIX_BIRTHDAY, PREFIX_ADDRESS, PREFIX_TAG); + PREFIX_BIRTHDAY, PREFIX_ADDRESS, PREFIX_PROFILEPAGE, PREFIX_TAG); Index index; @@ -53,6 +48,7 @@ public EditCommand parse(String args) throws ParseException { ParserUtil.parseBirthday( argMultimap.getValue(PREFIX_BIRTHDAY)).ifPresent(editPersonDescriptor::setBirthday); ParserUtil.parseAddress(argMultimap.getValue(PREFIX_ADDRESS)).ifPresent(editPersonDescriptor::setAddress); + ParserUtil.parseProfilePage(argMultimap.getValue(PREFIX_PROFILEPAGE)).ifPresent(editPersonDescriptor::setProfilePage); parseTagsForEdit(argMultimap.getAllValues(PREFIX_TAG)).ifPresent(editPersonDescriptor::setTags); } catch (IllegalValueException ive) { throw new ParseException(ive.getMessage(), ive); diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index c7c5277507b3..d2ca56a6a89c 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -11,11 +11,7 @@ import seedu.address.commons.exceptions.IllegalValueException; import seedu.address.commons.util.StringUtil; import seedu.address.model.event.Dates; -import seedu.address.model.person.Address; -import seedu.address.model.person.Birthday; -import seedu.address.model.person.Email; -import seedu.address.model.person.Name; -import seedu.address.model.person.Phone; +import seedu.address.model.person.*; import seedu.address.model.tag.Tag; /** @@ -72,6 +68,15 @@ public static Optional
parseAddress(Optional address) throws Il return address.isPresent() ? Optional.of(new Address(address.get())) : Optional.empty(); } + /** + * Parses a {@code Optional profile} into an {@code Optional} if {@code profile} is present. + * See header comment of this class regarding the use of {@code Optional} parameters. + */ + public static Optional parseProfilePage(Optional profile) throws IllegalValueException { + requireNonNull(profile); + return profile.isPresent() ? Optional.of(new ProfilePage(profile.get())) : Optional.empty(); + } + /** * Parses a {@code Optional email} into an {@code Optional} if {@code email} is present. * See header comment of this class regarding the use of {@code Optional} parameters. diff --git a/src/main/java/seedu/address/model/person/Person.java b/src/main/java/seedu/address/model/person/Person.java index 939272bb8def..0dc82f372dab 100644 --- a/src/main/java/seedu/address/model/person/Person.java +++ b/src/main/java/seedu/address/model/person/Person.java @@ -23,19 +23,21 @@ public class Person implements ReadOnlyPerson { private ObjectProperty email; private ObjectProperty birthday; private ObjectProperty
address; + private ObjectProperty profile; private ObjectProperty tags; /** * Every field must be present and not null. */ - public Person(Name name, Phone phone, Email email, Birthday birthday, Address address, Set tags) { + public Person(Name name, Phone phone, Email email, Birthday birthday, Address address, ProfilePage profile, Set tags) { requireAllNonNull(name, phone, email, birthday, address, tags); this.name = new SimpleObjectProperty<>(name); this.phone = new SimpleObjectProperty<>(phone); this.email = new SimpleObjectProperty<>(email); this.birthday = new SimpleObjectProperty<>(birthday); this.address = new SimpleObjectProperty<>(address); + this.profile = new SimpleObjectProperty<>(profile); // protect internal tags from changes in the arg list this.tags = new SimpleObjectProperty<>(new UniqueTagList(tags)); } @@ -45,7 +47,7 @@ public Person(Name name, Phone phone, Email email, Birthday birthday, Address ad */ public Person(ReadOnlyPerson source) { this(source.getName(), source.getPhone(), source.getEmail(), source.getBirthday(), source.getAddress(), - source.getTags()); + source.getProfilePage(), source.getTags()); } public void setName(Name name) { @@ -118,10 +120,20 @@ public Address getAddress() { return address.get(); } + + public void setProfilePage(ProfilePage profile) { this.profile.set(requireNonNull(profile));} + + @Override + public ObjectProperty profilepageProperty() { return profile; } + + @Override + public ProfilePage getProfilePage() {return profile.get(); } + /** * Returns an immutable tag set, which throws {@code UnsupportedOperationException} * if modification is attempted. */ + @Override public Set getTags() { return Collections.unmodifiableSet(tags.get().toSet()); @@ -148,7 +160,7 @@ public boolean equals(Object other) { @Override public int hashCode() { // use this method for custom fields hashing instead of implementing your own - return Objects.hash(name, phone, email, birthday, address, tags); + return Objects.hash(name, phone, email, birthday, address, profile, tags); } @Override diff --git a/src/main/java/seedu/address/model/person/ProfilePage.java b/src/main/java/seedu/address/model/person/ProfilePage.java new file mode 100644 index 000000000000..b9ff6152718a --- /dev/null +++ b/src/main/java/seedu/address/model/person/ProfilePage.java @@ -0,0 +1,56 @@ +package seedu.address.model.person; + +import static java.util.Objects.requireNonNull; + +import seedu.address.commons.exceptions.IllegalValueException; + +/** + * Represents a Person's birthday in the address book. + * Guarantees: immutable; is valid as declared in {@link #isValidProfilePage(String)} + */ +public class ProfilePage { + + public static final String MESSAGE_PROFILEPAGE_CONSTRAINTS = + "Person Profile page should be a valid URL pointing to that person's profile"; + public static final String PROFILEPAGE_VALIDATION_REGEX = "^(https?:\\/\\/)?(www\\.)?([\\w]+\\.)+[‌​\\w]{2,63}\\/?$"; + + public final String value; + + /** + * Validates given birthday. + * + * @throws IllegalValueException if given birthday address string is invalid. + */ + public ProfilePage(String profile) throws IllegalValueException { + requireNonNull(profile); + if (!isValidProfilePage(profile)) { + throw new IllegalValueException(MESSAGE_PROFILEPAGE_CONSTRAINTS); + } + this.value = profile; + } + + /** + * Returns if a given string is a valid person birthday. + */ + public static boolean isValidProfilePage(String test) { + return test.matches(PROFILEPAGE_VALIDATION_REGEX); + } + + @Override + public String toString() { + return value; + } + + @Override + public boolean equals(Object other) { + return other == this // short circuit if same object + || (other instanceof ProfilePage // instanceof handles nulls + && this.value.equals(((ProfilePage) other).value)); // state check + } + + @Override + public int hashCode() { + return value.hashCode(); + } + +} diff --git a/src/main/java/seedu/address/model/person/ReadOnlyPerson.java b/src/main/java/seedu/address/model/person/ReadOnlyPerson.java index 36af59b218d5..79a31e42034f 100644 --- a/src/main/java/seedu/address/model/person/ReadOnlyPerson.java +++ b/src/main/java/seedu/address/model/person/ReadOnlyPerson.java @@ -22,6 +22,8 @@ public interface ReadOnlyPerson { Birthday getBirthday(); ObjectProperty
addressProperty(); Address getAddress(); + ObjectProperty profilepageProperty(); + ProfilePage getProfilePage(); ObjectProperty tagProperty(); Set getTags(); @@ -35,7 +37,8 @@ default boolean isSameStateAs(ReadOnlyPerson other) { && other.getName().equals(this.getName()) // state checks here onwards && other.getEmail().equals(this.getEmail()) && other.getBirthday().equals(this.getBirthday()) - && other.getAddress().equals(this.getAddress())); + && other.getAddress().equals(this.getAddress())) + && other.getProfilePage().equals(this.getProfilePage()); } /** @@ -52,6 +55,8 @@ default String getAsText() { .append(getBirthday()) .append(" Address: ") .append(getAddress()) + .append(" Profile Page: ") + .append(getProfilePage()) .append(" Tags: "); getTags().forEach(builder::append); return builder.toString(); diff --git a/src/main/java/seedu/address/model/util/SampleDataUtil.java b/src/main/java/seedu/address/model/util/SampleDataUtil.java index 7249dec00a3d..8374d8eb669b 100644 --- a/src/main/java/seedu/address/model/util/SampleDataUtil.java +++ b/src/main/java/seedu/address/model/util/SampleDataUtil.java @@ -6,12 +6,7 @@ import seedu.address.commons.exceptions.IllegalValueException; import seedu.address.model.AddressBook; import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.person.Address; -import seedu.address.model.person.Birthday; -import seedu.address.model.person.Email; -import seedu.address.model.person.Name; -import seedu.address.model.person.Person; -import seedu.address.model.person.Phone; +import seedu.address.model.person.*; import seedu.address.model.person.exceptions.DuplicatePersonException; import seedu.address.model.tag.Tag; @@ -23,22 +18,22 @@ public static Person[] getSamplePersons() { try { return new Person[] { new Person(new Name("Alex Yeoh"), new Phone("87438807"), new Email("alexyeoh@example.com"), - new Birthday("1993/11/12"), new Address("Blk 30 Geylang Street 29, #06-40"), + new Birthday("1993/11/12"), new Address("Blk 30 Geylang Street 29, #06-40"), new ProfilePage("www.facebook.com"), getTagSet("friends")), new Person(new Name("Bernice Yu"), new Phone("99272758"), new Email("berniceyu@example.com"), - new Birthday("1988/12/22"), new Address("Blk 30 Lorong 3 Serangoon Gardens, #07-18"), + new Birthday("1988/12/22"), new Address("Blk 30 Lorong 3 Serangoon Gardens, #07-18"), new ProfilePage("www.facebook.com"), getTagSet("colleagues", "friends")), new Person(new Name("Charlotte Oliveiro"), new Phone("93210283"), new Email("charlotte@example.com"), - new Birthday("1987/12/12"), new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), + new Birthday("1987/12/12"), new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), new ProfilePage("www.facebook.com"), getTagSet("neighbours")), new Person(new Name("David Li"), new Phone("91031282"), new Email("lidavid@example.com"), - new Birthday("1999/01/01"), new Address("Blk 436 Serangoon Gardens Street 26, #16-43"), + new Birthday("1999/01/01"), new Address("Blk 436 Serangoon Gardens Street 26, #16-43"), new ProfilePage("www.facebook.com"), getTagSet("family")), new Person(new Name("Irfan Ibrahim"), new Phone("92492021"), new Email("irfan@example.com"), - new Birthday("1985/03/04"), new Address("Blk 47 Tampines Street 20, #17-35"), + new Birthday("1985/03/04"), new Address("Blk 47 Tampines Street 20, #17-35"), new ProfilePage("www.facebook.com"), getTagSet("classmates")), new Person(new Name("Roy Balakrishnan"), new Phone("92624417"), new Email("royb@example.com"), - new Birthday("1983/05/08"), new Address("Blk 45 Aljunied Street 85, #11-31"), + new Birthday("1983/05/08"), new Address("Blk 45 Aljunied Street 85, #11-31"),new ProfilePage("www.facebook.com"), getTagSet("colleagues")) }; } catch (IllegalValueException e) { diff --git a/src/main/java/seedu/address/storage/XmlAdaptedPerson.java b/src/main/java/seedu/address/storage/XmlAdaptedPerson.java index 3d203e354966..734411cd5b1f 100644 --- a/src/main/java/seedu/address/storage/XmlAdaptedPerson.java +++ b/src/main/java/seedu/address/storage/XmlAdaptedPerson.java @@ -8,13 +8,7 @@ import javax.xml.bind.annotation.XmlElement; import seedu.address.commons.exceptions.IllegalValueException; -import seedu.address.model.person.Address; -import seedu.address.model.person.Birthday; -import seedu.address.model.person.Email; -import seedu.address.model.person.Name; -import seedu.address.model.person.Person; -import seedu.address.model.person.Phone; -import seedu.address.model.person.ReadOnlyPerson; +import seedu.address.model.person.*; import seedu.address.model.tag.Tag; /** @@ -32,6 +26,8 @@ public class XmlAdaptedPerson { private String birthday; @XmlElement(required = true) private String address; + @XmlElement(required = true) + private String profile; @XmlElement private List tagged = new ArrayList<>(); @@ -54,6 +50,7 @@ public XmlAdaptedPerson(ReadOnlyPerson source) { email = source.getEmail().value; birthday = source.getBirthday().value; address = source.getAddress().value; + profile= source.getProfilePage().value; tagged = new ArrayList<>(); for (Tag tag : source.getTags()) { tagged.add(new XmlAdaptedTag(tag)); @@ -75,7 +72,8 @@ public Person toModelType() throws IllegalValueException { final Email email = new Email(this.email); final Birthday birthday = new Birthday(this.birthday); final Address address = new Address(this.address); + final ProfilePage profile = new ProfilePage(this.profile); final Set tags = new HashSet<>(personTags); - return new Person(name, phone, email, birthday, address, tags); + return new Person(name, phone, email, birthday, address, profile, tags); } } diff --git a/src/main/java/seedu/address/ui/PersonCard.java b/src/main/java/seedu/address/ui/PersonCard.java index 2f7af5cc7682..fc0065eec9b8 100644 --- a/src/main/java/seedu/address/ui/PersonCard.java +++ b/src/main/java/seedu/address/ui/PersonCard.java @@ -50,6 +50,8 @@ public class PersonCard extends UiPart { @FXML private Label birthday; @FXML + private Label profile; + @FXML private FlowPane tags; public PersonCard(ReadOnlyPerson person, int displayedIndex) { @@ -98,6 +100,7 @@ private void bindListeners(ReadOnlyPerson person) { phone.textProperty().bind(Bindings.convert(person.phoneProperty())); birthday.textProperty().bind(Bindings.convert(person.birthdayProperty())); address.textProperty().bind(Bindings.convert(person.addressProperty())); + profile.textProperty().bind(Bindings.convert(person.profilepageProperty())); email.textProperty().bind(Bindings.convert(person.emailProperty())); person.tagProperty().addListener((observable, oldValue, newValue) -> { tags.getChildren().clear(); diff --git a/src/main/resources/view/PersonListCard.fxml b/src/main/resources/view/PersonListCard.fxml index f2c98e82f0d8..9c4b6eb64a80 100644 --- a/src/main/resources/view/PersonListCard.fxml +++ b/src/main/resources/view/PersonListCard.fxml @@ -31,6 +31,7 @@