/******************************************************************************* * Copyright (c) 2010-2014 SAP AG and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * SAP AG - initial API and implementation *******************************************************************************/ package org.eclipse.skalli.view.component; import java.text.MessageFormat; import java.util.Set; import java.util.SortedSet; import org.eclipse.skalli.model.Member; import org.eclipse.skalli.model.User; import org.eclipse.skalli.model.ext.commons.PeopleExtension; import org.eclipse.skalli.view.internal.container.UserContainer; public class MailToTeam { private PeopleExtension ext; public MailToTeam(PeopleExtension ext) { this.ext = ext; } public String composeMailToTeamLabel() { SortedSet<Member> leads = ext.getLeads(); StringBuilder sendTo = new StringBuilder(); Set<User> teamLeads = UserContainer.getUsers(leads); for (User user : teamLeads) { appendEmail(sendTo, user); } SortedSet<Member> members = ext.getMembers(); Set<User> teamMembers = UserContainer.getUsers(members); StringBuilder sendCc = new StringBuilder(); for (User user : teamMembers) { if (teamLeads.contains(user)) { continue; } appendEmail(sendCc, user); } StringBuilder sb = new StringBuilder(); String mailTo = sendTo.toString(); if (mailTo.length() == 0 && sendCc.length() > 0) { mailTo = sendCc.toString(); } else if (sendCc.length() > 0) { mailTo = MessageFormat.format("{0}?cc={1}", mailTo, sendCc.toString());//$NON-NLS-1$ } sb.append("<span class=\"v-img-mailImage\">"); //$NON-NLS-1$ sb.append("<img src=\"/VAADIN/themes/simple/icons/mail/email.png\" /> "); //$NON-NLS-1$ sb.append("</span>"); //$NON-NLS-1$ sb.append("<span class=\"v-link\">"); //$NON-NLS-1$ sb.append("<a href=\"mailto:"); //$NON-NLS-1$ sb.append(mailTo); sb.append("\">"); //$NON-NLS-1$ sb.append("Contact Team"); sb.append("</a> "); //$NON-NLS-1$ sb.append("</span>"); //$NON-NLS-1$ return sb.toString(); } private void appendEmail(StringBuilder sendTo, User user) { if (sendTo.length() > 0) { sendTo.append(";");//$NON-NLS-1$ } if (user.hasEmail()) { sendTo.append(user.getEmail()); } } }