package qubexplorer.ui.summary;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import org.netbeans.api.project.Project;
import org.openide.awt.ActionID;
import org.openide.awt.ActionRegistration;
import org.openide.util.NbBundle.Messages;
import qubexplorer.ConfigurationFactory;
import qubexplorer.SonarQubeProjectConfiguration;
import qubexplorer.Summary;
import qubexplorer.filter.IssueFilter;
import qubexplorer.server.SonarQube;
import qubexplorer.ui.ActionPlansTask;
import qubexplorer.ui.ProjectContext;
import qubexplorer.ui.SonarQubeFactory;
import qubexplorer.ui.task.TaskExecutor;
@ActionID(
category = "SonarQube",
id = "qubexplorer.ui.SonarDialogAction")
@ActionRegistration(
displayName = "#CTL_SonarDialogAction")
@Messages("CTL_SonarDialogAction=Get Issues from Server")
public final class ServerIssuesAction implements ActionListener {
private final Project context;
public ServerIssuesAction(Project context) {
this.context = context;
}
@Override
public void actionPerformed(ActionEvent ev) {
SonarQubeProjectConfiguration configuration = ConfigurationFactory.createDefaultConfiguration(context);
if (configuration != null) {
final ProjectContext projectContext = new ProjectContext(context, configuration);
final SonarQube sonarQube = SonarQubeFactory.createForDefaultServerUrl();
TaskExecutor.execute(new SummaryTask(sonarQube, projectContext, new IssueFilter[0]) {
@Override
protected void success(Summary summary) {
super.success(summary);
TaskExecutor.execute(new ActionPlansTask(sonarQube, projectContext));
}
});
}
}
}