}
@Override
public void actionPerformed(AnActionEvent e)
{
AbstractVcs vcs = getVcs(e);
Project project = e.getData(PlatformDataKeys.PROJECT);
VirtualFile vFile = e.getData(PlatformDataKeys.VIRTUAL_FILE);
final FilePath filePath = VcsContextFactory.SERVICE.getInstance().createFilePathOn(vFile);
if ((filePath == null) || (!vcs.fileIsUnderVcs(filePath)))
{
return;
}
Review review = RevuUtils.getReviewingReview(project);
VcsRevisionNumber revision;
if (review.getFileScope().getVcsAfterRev() != null)
{
try
{
revision = vcs.parseRevisionNumber(review.getFileScope().getVcsAfterRev());
}
catch (VcsException ex)
{
LOGGER.error("Failed to parse VCS revision: " + review.getFileScope().getVcsAfterRev());
return;
}
}
else
{
ItemLatestState itemLatestState = vcs.getDiffProvider().getLastRevision(vFile);
if (itemLatestState == null)
{
return;
}
revision = itemLatestState.getNumber();
}
DiffActionExecutor.showDiff(vcs.getDiffProvider(), revision, vFile, project,
VcsBackgroundableActions.COMPARE_WITH);
}