blob: 65706001342afab22e0b07c22a8a923b452a107d [file] [log] [blame]
/*******************************************************************************
* 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.ext.impl.internal.infobox;
import org.eclipse.skalli.model.Project;
import org.eclipse.skalli.model.ext.commons.PeopleExtension;
import org.eclipse.skalli.view.component.InformationBox;
import org.eclipse.skalli.view.component.MailToTeam;
import org.eclipse.skalli.view.component.PeopleComponent;
import org.eclipse.skalli.view.ext.ExtensionUtil;
import org.eclipse.skalli.view.ext.InfoBox;
import org.eclipse.skalli.view.ext.InfoBoxBase;
import com.vaadin.ui.Component;
import com.vaadin.ui.CssLayout;
import com.vaadin.ui.Label;
import com.vaadin.ui.Layout;
public class ProjectTeamBox extends InfoBoxBase implements InfoBox {
private static final String STYLE_TEAM_INFOBOX = "infobox-team"; //$NON-NLS-1$
private static final String STYLE_TEAMLABEL = "teamlabel"; //$NON-NLS-1$
@Override
public String getIconPath() {
return "res/icons/people.png"; //$NON-NLS-1$
}
@Override
public String getCaption() {
return "Team";
}
@Override
public String getShortName() {
return "team";
}
@Override
public Component getContent(Project project, ExtensionUtil util) {
Layout layout = new CssLayout();
layout.addStyleName(STYLE_TEAM_INFOBOX);
layout.setSizeFull();
PeopleExtension ext = project.getExtension(PeopleExtension.class);
if (ext != null) {
if (ext.getLeads().size() > 0) {
Label projectLeadHeaderLabel = new Label("Project Lead");
projectLeadHeaderLabel.addStyleName(STYLE_TEAMLABEL);
layout.addComponent(projectLeadHeaderLabel);
Component peopleComponent = PeopleComponent.getPeopleListComponentForMember(ext.getLeads());
peopleComponent.addStyleName(InformationBox.STYLE);
layout.addComponent(peopleComponent);
}
if (ext.getMembers().size() > 0) {
Label projectTeamHeaderLabel = new Label("Project Team/Committers");
projectTeamHeaderLabel.addStyleName(STYLE_TEAMLABEL);
layout.addComponent(projectTeamHeaderLabel);
Component peopleComponent = PeopleComponent.getPeopleListComponentForMember(ext.getMembers());
peopleComponent.addStyleName(InformationBox.STYLE);
layout.addComponent(peopleComponent);
}
String mailToTeamHtml = new MailToTeam(ext).composeMailToTeamLabel();
createLabel(layout, mailToTeamHtml);
}
return layout;
}
@Override
public float getPositionWeight() {
return 1.4f;
}
@Override
public int getPreferredColumn() {
return COLUMN_EAST;
}
@Override
public boolean isVisible(Project project, String loggedInUserId) {
PeopleExtension ext = project.getExtension(PeopleExtension.class);
if (ext == null || ext.getMembers().isEmpty() && ext.getLeads().isEmpty()) {
return false;
} else {
return true;
}
}
}