/*
* Copyright (c) 2015 the original author or authors.
* 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:
* Simon Scholz (vogella GmbH) - initial API and implementation and initial documentation
*/
package org.eclipse.buildship.ui.view.task;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.swt.graphics.Color;
import org.eclipse.buildship.ui.util.color.ColorUtils;
/**
* Styled label provider for the task description column in the TaskView.
*/
public final class TaskDescriptionLabelProvider extends ColumnLabelProvider {
private final Color descriptionColor;
public TaskDescriptionLabelProvider() {
this.descriptionColor = ColorUtils.getDecorationsColorFromCurrentTheme();
}
@Override
public String getText(Object element) {
if (element instanceof ProjectNode) {
return getProjectTaskText((ProjectNode) element);
} else if (element instanceof FaultyProjectNode) {
return getFaultyProjectTaskText((FaultyProjectNode) element);
} else if (element instanceof ProjectTaskNode) {
return getProjectTaskText((ProjectTaskNode) element);
} else if (element instanceof TaskSelectorNode) {
return getTaskSelectorText((TaskSelectorNode) element);
} else if (element instanceof TaskGroupNode) {
return getTaskGroupText((TaskGroupNode) element);
} else {
throw new IllegalStateException(String.format("Unknown element type of element %s.", element));
}
}
private String getProjectTaskText(ProjectNode projectNode) {
return projectNode.getEclipseProject().getDescription();
}
private String getFaultyProjectTaskText(FaultyProjectNode projectNode) {
return "";
}
private String getTaskGroupText(TaskGroupNode taskGroup) {
return "";
}
private String getProjectTaskText(ProjectTaskNode projectTask) {
return projectTask.getProjectTask().getDescription();
}
private String getTaskSelectorText(TaskSelectorNode taskSelector) {
return taskSelector.getTaskSelector().getDescription();
}
@Override
public Color getForeground(Object element) {
return this.descriptionColor;
}
}