package hudson.plugins.tasks;
import hudson.model.AbstractBuild;
import hudson.plugins.analysis.util.model.DefaultAnnotationContainer;
import hudson.plugins.analysis.util.model.FileAnnotation;
import hudson.plugins.analysis.util.model.Priority;
import hudson.plugins.analysis.views.DetailFactory;
import hudson.plugins.analysis.views.TabDetail;
import java.util.Collection;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;
/**
* Result object representing a dynamic tab of the tasks plug-in.
*
* @author Ulli Hafner
*/
public class TasksTabDetail extends TabDetail {
/** Unique ID of this class. */
private static final long serialVersionUID = 8964198520312051468L;
/** Handles the task tags. */
private final TaskTagsHandler taskTagsHandler;
/**
* Creates a new instance of <code>ModuleDetail</code>.
*
* @param owner
* current build as owner of this action.
* @param annotations
* the container to show the details for
* @param url
* URL to render the content of this tab
* @param defaultEncoding
* the default encoding to be used when reading and parsing files
* @param high
* tag identifiers indicating high priority
* @param normal
* tag identifiers indicating normal priority
* @param low
* tag identifiers indicating low priority
*/
public TasksTabDetail(final AbstractBuild<?, ?> owner, final Collection<FileAnnotation> annotations, final String url, final String defaultEncoding,
final String high, final String normal, final String low) {
super(owner, new DetailFactory(), annotations, url, defaultEncoding);
taskTagsHandler = new TaskTagsHandler(high, normal, low, new DefaultAnnotationContainer(annotations));
}
/** {@inheritDoc} */
@Override
public Object getDynamic(final String link, final StaplerRequest request, final StaplerResponse response) {
return new TasksDetailBuilder().getDynamic(link, getOwner(), getContainer(), getDefaultEncoding(), getDisplayName(),
getTags(Priority.HIGH), getTags(Priority.NORMAL), getTags(Priority.LOW));
}
// CHECKSTYLE:OFF - generated delegate -
/**
* Returns all priorities that have a user defined tag.
*
* @return all priorities that have a user defined tag
*/
public Collection<String> getAvailablePriorities() {
return taskTagsHandler.getAvailablePriorities();
}
/** {@inheritDoc} */
@Override
public Priority[] getPriorities() {
return taskTagsHandler.getPriorities();
}
/**
* Returns the defined tags for the given priority.
*
* @param priority the priority
* @return the defined tags for the given priority
*/
public final String getTags(final Priority priority) {
return taskTagsHandler.getTags(priority);
}
/**
* Returns the defined tags for the given priority.
*
* @param priority the priority
* @return the defined tags for the given priority
*/
public final String getTags(final String priority) {
return taskTagsHandler.getTags(priority);
}
}