package eu.doppel_helix.netbeans.mantisintegration.query;
import eu.doppel_helix.netbeans.mantisintegration.issue.MantisIssue;
import java.rmi.RemoteException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.rpc.ServiceException;
import org.netbeans.modules.bugtracking.spi.QueryController;
import org.netbeans.modules.bugtracking.spi.QueryProvider;
public class MantisQueryProvider implements QueryProvider<MantisQuery, MantisIssue> {
private static final Logger LOG = Logger.getLogger(MantisQueryProvider.class.getName());
@Override
public String getDisplayName(MantisQuery q) {
return q.getName();
}
@Override
public String getTooltip(MantisQuery q) {
String tooltip = q.getName();
if(tooltip == null) {
tooltip = "";
}
return tooltip;
}
@Override
public QueryController getController(MantisQuery q) {
return q.getController();
}
@Override
public void remove(MantisQuery q) {
q.remove();
}
@Override
public void refresh(MantisQuery query) {
try {
query.refresh();
} catch (ServiceException | RemoteException | RuntimeException ex) {
LOG.log(Level.WARNING, "Failed to refresh buglist", ex);
}
}
@Override
public boolean canRemove(MantisQuery q) {
return true;
}
@Override
public boolean canRename(MantisQuery q) {
return false;
}
@Override
public void rename(MantisQuery q, String newName) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void setIssueContainer(MantisQuery q, IssueContainer<MantisIssue> ic) {
q.setIssueContainer(ic);
}
}