blob: b4b7ba15dc3ac0076238818fbad4cba6ee9d3be8 [file] [log] [blame]
/*
* User: anna
* Date: 20-Nov-2007
*/
package com.intellij.coverage.actions;
import com.intellij.codeInspection.export.ExportToHTMLDialog;
import com.intellij.coverage.CoverageDataManager;
import com.intellij.coverage.CoverageEngine;
import com.intellij.coverage.CoverageSuitesBundle;
import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.project.Project;
public class GenerateCoverageReportAction extends AnAction {
public void actionPerformed(final AnActionEvent e) {
final DataContext dataContext = e.getDataContext();
final Project project = CommonDataKeys.PROJECT.getData(dataContext);
assert project != null;
final CoverageDataManager coverageDataManager = CoverageDataManager.getInstance(project);
final CoverageSuitesBundle currentSuite = coverageDataManager.getCurrentSuitesBundle();
final CoverageEngine coverageEngine = currentSuite.getCoverageEngine();
final ExportToHTMLDialog dialog = coverageEngine.createGenerateReportDialog(project, dataContext, currentSuite);
dialog.reset();
dialog.show();
if (!dialog.isOK()) return;
dialog.apply();
coverageEngine.generateReport(project, dataContext, currentSuite);
}
public void update(final AnActionEvent e) {
final DataContext dataContext = e.getDataContext();
final Presentation presentation = e.getPresentation();
presentation.setEnabled(false);
presentation.setVisible(false);
final Project project = CommonDataKeys.PROJECT.getData(dataContext);
if (project != null) {
final CoverageSuitesBundle currentSuite = CoverageDataManager.getInstance(project).getCurrentSuitesBundle();
if (currentSuite != null) {
final CoverageEngine coverageEngine = currentSuite.getCoverageEngine();
if (coverageEngine.isReportGenerationAvailable(project, dataContext, currentSuite)) {
presentation.setEnabled(true);
presentation.setVisible(true);
}
}
}
}
}