blob: 5c94ad2edf0a7e0c10c98419225078e525bfaf3c [file] [log] [blame]
package com.intellij.tasks.bugzilla;
import com.intellij.tasks.Comment;
import com.intellij.tasks.Task;
import com.intellij.tasks.TaskRepository;
import com.intellij.tasks.TaskType;
import icons.TasksIcons;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.util.Date;
import java.util.Hashtable;
/**
* @author Mikhail Golubev
*/
@SuppressWarnings("UseOfObsoleteCollectionType")
public class BugzillaTask extends Task {
private final Hashtable<String, Object> myResponse;
private final BugzillaRepository myRepository;
public BugzillaTask(@NotNull Hashtable<String, Object> xmlRpcResponse, @NotNull BugzillaRepository repository) {
myResponse = xmlRpcResponse;
myRepository = repository;
}
@NotNull
@Override
public String getId() {
return String.valueOf(myResponse.get("id"));
}
@NotNull
@Override
public String getSummary() {
return (String)myResponse.get("summary");
}
@Nullable
@Override
public String getDescription() {
return null;
}
@NotNull
@Override
public Comment[] getComments() {
return Comment.EMPTY_ARRAY;
}
@NotNull
@Override
public Icon getIcon() {
return TasksIcons.Bugzilla;
}
@NotNull
@Override
public TaskType getType() {
String severity = (String)myResponse.get("severity");
return severity.equalsIgnoreCase("enhancement")? TaskType.FEATURE : TaskType.BUG;
}
@Nullable
@Override
public Date getUpdated() {
return (Date)myResponse.get("last_change_time");
}
@Nullable
@Override
public Date getCreated() {
return (Date)myResponse.get("creation_time");
}
@Override
public boolean isClosed() {
return !(Boolean)myResponse.get("is_open");
}
@Override
public boolean isIssue() {
return true;
}
@Nullable
@Override
public String getIssueUrl() {
String repositoryUrl = myRepository.getUrl();
if (repositoryUrl.endsWith("xmlrpc.cgi")) {
repositoryUrl = repositoryUrl.substring(0, repositoryUrl.length() - "xmlrpc.cgi".length());
}
return repositoryUrl + "/show_bug.cgi?id=" + getId();
}
@Nullable
@Override
public TaskRepository getRepository() {
return myRepository;
}
}