/** * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) */ @Override public int compare(final TeamEventAttendeeDO g1, final TeamEventAttendeeDO g2) { if (g1 != null && g2 != null && g1.getAddress() != null && g2.getAddress() != null) { return g1.getAddress().getFullName().compareTo(g2.getAddress().getFullName()); } final String n1 = g1 != null && g1.getUrl() != null ? g1.getUrl().toLowerCase() : ""; final String n2 = g2 != null && g2.getUrl() != null ? g2.getUrl().toLowerCase() : ""; return n1.compareTo(n2); } }
/** * @see org.apache.wicket.extensions.ajax.markup.html.AjaxEditableLabel#onSubmit(org.apache.wicket.ajax.AjaxRequestTarget) */ @Override protected void onSubmit(final AjaxRequestTarget target) { final TeamEventAttendeeDO attendee = attendeeModel.getObject(); if (lastEntry == true) { final TeamEventAttendeeDO clone = new TeamEventAttendeeDO(); clone.setUrl(attendee.getUrl()).setAddress(attendee.getAddress()); addAttendee(clone); rebuildAttendees(); target.add(mainContainer); } else if (attendee.getAddressId() == null && StringUtils.isBlank(attendee.getUrl()) == true) { final Iterator<TeamEventAttendeeDO> it = attendees.iterator(); while (it.hasNext() == true) { if (it.next() == attendeeModel.getObject()) { it.remove(); } } rebuildAttendees(); target.add(mainContainer); } super.onSubmit(target); }
@Override public void validate(IValidatable<Collection<TeamEventAttendeeDO>> validatable) { Collection<TeamEventAttendeeDO> attendeeList = validatable.getValue(); for (TeamEventAttendeeDO attendee : attendeeList) { if (attendee.getUser() == null && attendee.getAddress() == null && attendee.getUrl() != null) { EmailValidator validator = EmailValidator.getInstance(); boolean isValid = validator.isValid(attendee.getUrl()); if (isValid == false) { error(validatable, I18nHelper.getLocalizedMessage("plugins.teamcal.attendee.email.invalid")); } } } }
/** * @see org.apache.wicket.model.Model#getObject() */ @Override public String getObject() { if (lastEntry == true) { return TeamAttendeesPanel.this.getString("plugins.teamcal.event.addNewAttendee"); } final TeamEventAttendeeDO attendee = attendeeModel.getObject(); if (attendee.getAddressId() != null) { final UserGroupCache userGroupCache = TenantRegistryMap.getInstance().getTenantRegistry() .getUserGroupCache(); final PFUserDO user = userGroupCache.getUser(attendee.getAddressId()); return user != null ? user.getFullname() : attendee.getUrl(); } return attendee.getUrl(); }
/** * Equals / HashCode contract is broken because of technical requirements * * @return */ @Override public boolean equals(final Object o) { if (o instanceof TeamEventAttendeeDO == false) { return false; } final TeamEventAttendeeDO other = (TeamEventAttendeeDO) o; if (this.getUrl() != null && other.getUrl() != null && StringUtils.equals(this.getUrl(), other.getUrl())) { return true; } if (this.getAddressId() != null && other.getAddressId() != null && ObjectUtils.equals(this.getAddressId(), other.getAddressId())) { return true; } if (this.getUserId() != null && other.getUserId() != null && ObjectUtils.equals(this.getUserId(), other.getUserId())) { return true; } if (this.getPk() != null && other.getPk() != null && ObjectUtils.equals(this.getPk(), other.getPk())) { return true; } if (this.getUrl() == null && other.getUrl() == null && this.getAddressId() == null && other.getAddressId() == null && this.getUserId() == null && other.getUserId() == null && this.getPk() == null && other.getPk() == null) { return true; } return false; }
attendeeList.add(attendees.getAddress() != null ? attendees.getAddress().getEmail() : attendees.getUrl());
@Override public String toString() { if (this.getUser() != null) { return this.getUser().getFullname() + " (" + this.getUser().getEmail() + ")"; } if (this.getAddress() != null) { return this.getAddress().getFullName() + " (" + this.getAddress().getEmail() + ")"; } if (this.getUrl() != null) { return this.getUrl(); } return super.toString(); }
@Override public void fixAttendees(final TeamEventDO event) { List<TeamEventAttendeeDO> attendeesFromDbList = this.getAddressesAndUserAsAttendee(); Integer internalNewAttendeeSequence = -10000; boolean found; for (TeamEventAttendeeDO attendeeDO : event.getAttendees()) { found = false; // search for eMail in DB as possible attendee for (TeamEventAttendeeDO dBAttendee : attendeesFromDbList) { if (dBAttendee.getEMailAddress() != null && dBAttendee.getEMailAddress().equals(attendeeDO.getUrl())) { attendeeDO = dBAttendee; attendeeDO.setId(internalNewAttendeeSequence--); found = true; break; } } if (found == false) { attendeeDO.setId(internalNewAttendeeSequence--); } } } }
if (attendee.getUrl().equals("organizer@example.com")) { validateAttendee(attendee, CuType.INDIVIDUAL, TeamEventAttendeeStatus.ACCEPTED, Role.CHAIR, null, "Organizer", null); } else if (attendee.getUrl().equals("a1@example.com")) { validateAttendee(attendee, CuType.INDIVIDUAL, TeamEventAttendeeStatus.NEEDS_ACTION, null, Boolean.TRUE, "Attendee1", null); } else if (attendee.getUrl().equals("a2@example.com")) { validateAttendee(attendee, CuType.INDIVIDUAL, TeamEventAttendeeStatus.NEEDS_ACTION, null, Boolean.TRUE, "Attendee2", null); } else { Assert.fail("Unknown attendee " + attendee.getUrl());
String eMail = attendee.getAddress() != null ? attendee.getAddress().getEmail() : attendee.getUrl(); String eMailOld = attendeeOld.getAddress() != null ? attendeeOld.getAddress().getEmail() : attendeeOld.getUrl(); String eMail = attendee.getAddress() != null ? attendee.getAddress().getEmail() : attendee.getUrl(); String eMailNew = attendeeNew.getAddress() != null ? attendeeNew.getAddress().getEmail() : attendeeNew.getUrl();
if (attendee.getUrl().equals("organizer@example.com")) { validateAttendee(attendee, CuType.INDIVIDUAL, TeamEventAttendeeStatus.ACCEPTED, Role.CHAIR, null, "Organizer", null); } else if (attendee.getUrl().equals("a1@example.com")) { validateAttendee(attendee, CuType.INDIVIDUAL, TeamEventAttendeeStatus.NEEDS_ACTION, null, Boolean.TRUE, "Attendee1", null); } else if (attendee.getUrl().equals("a2@example.com")) { validateAttendee(attendee, CuType.INDIVIDUAL, TeamEventAttendeeStatus.NEEDS_ACTION, null, Boolean.TRUE, "Attendee2", null); } else { Assert.fail("Unknown attendee " + attendee.getUrl());
if (attendee.getUrl().equals("owner@example.com")) { validateAttendee(attendee, CuType.INDIVIDUAL, TeamEventAttendeeStatus.ACCEPTED, Role.CHAIR, null, "Owner", null); } else if (attendee.getUrl().equals("a1@example.com")) { validateAttendee(attendee, CuType.INDIVIDUAL, TeamEventAttendeeStatus.NEEDS_ACTION, null, null, "Attendee", null); } else { Assert.fail("Unknown attendee " + attendee.getUrl()); if (attendee.getUrl().equals("owner@example.com")) { validateAttendee(attendee, CuType.INDIVIDUAL, TeamEventAttendeeStatus.ACCEPTED, Role.CHAIR, null, "Owner", null); } else if (attendee.getUrl().equals("a1@example.com")) { validateAttendee(attendee, CuType.INDIVIDUAL, TeamEventAttendeeStatus.NEEDS_ACTION, null, null, "Attendee", null); } else { Assert.fail("Unknown attendee " + attendee.getUrl());
@Override public String getDisplayValue(final TeamEventAttendeeDO choice) { String name = ""; if (choice.getAddress() != null) { if (choice.getUser() != null) { name = "[" + I18nHelper.getLocalizedMessage("user") + "] " + choice.getUser().getFullname(); } else { name = "[" + I18nHelper.getLocalizedMessage("address.addressText") + "] " + choice.getAddress().getFullName(); } } else if (choice.getUser() != null) { name = "[" + I18nHelper.getLocalizedMessage("user") + "] " + choice.getUser().getFullname(); } String mail = choice.getEMailAddress() != null ? choice.getEMailAddress() : choice.getUrl(); if (mail == null) { mail = ""; } String status = choice.getStatus() != null ? " [" + choice.getStatus().getI18nValue() + "]" : ""; return name + " (" + mail + ")" + status; }
@Override public boolean toVEvent(TeamEventDO event, VEvent vEvent) { if (event.getAttendees() == null) { return false; } // TODO add organizer user, most likely as chair for (TeamEventAttendeeDO a : event.getAttendees()) { String email = "mailto:" + (a.getAddress() != null ? a.getAddress().getEmail() : a.getUrl()); Attendee attendee = new Attendee(URI.create(email)); // set common name if (a.getAddress() != null) { attendee.getParameters().add(new Cn(a.getAddress().getFullName())); } else if (a.getCommonName() != null) { attendee.getParameters().add(new Cn(a.getCommonName())); } else { attendee.getParameters().add(new Cn(a.getUrl())); } attendee.getParameters().add(a.getCuType() != null ? new CuType(a.getCuType()) : CuType.INDIVIDUAL); attendee.getParameters().add(a.getRole() != null ? new Role(a.getRole()) : Role.REQ_PARTICIPANT); if (a.getRsvp() != null) { attendee.getParameters().add(new Rsvp(a.getRsvp())); } attendee.getParameters().add(a.getStatus() != null ? a.getStatus().getPartStat() : PartStat.NEEDS_ACTION); this.parseAdditionalParameters(attendee.getParameters(), a.getAdditionalParams()); vEvent.getProperties().add(attendee); } return true; }
cloneAttendee.setNumber(attendee.getNumber()); cloneAttendee.setStatus(attendee.getStatus()); cloneAttendee.setUrl(attendee.getUrl()); cloneAttendee.setUser(attendee.getUser()); clone.addAttendee(cloneAttendee);
/** * @see java.lang.Object#clone() */ @Override public TeamEventAttendeeDO clone() { TeamEventAttendeeDO cloneAttendee = new TeamEventAttendeeDO(); cloneAttendee.setAddress(this.getAddress()); cloneAttendee.setComment(this.getComment()); cloneAttendee.setCommentOfAttendee(this.getCommentOfAttendee()); cloneAttendee.setLoginToken(this.getLoginToken()); cloneAttendee.setNumber(this.getNumber()); cloneAttendee.setStatus(this.getStatus()); cloneAttendee.setUrl(this.getUrl()); cloneAttendee.setUser(this.getUser()); cloneAttendee.setCommonName(this.getCommonName()); cloneAttendee.setCuType(this.getCuType()); cloneAttendee.setRsvp(this.getRsvp()); cloneAttendee.setAdditionalParams(this.getAdditionalParams()); cloneAttendee.setRole(this.getRole()); return cloneAttendee; } }