in cvs/cvs-plugin/src/com/intellij/cvsSupport2/actions/actionVisibility/CvsActionVisibility.java [59:83]
private boolean hasSuitableType(CvsContext context) {
File[] selectedIOFiles = context.getSelectedIOFiles();
VirtualFile[] selectedFiles = context.getSelectedFiles();
CvsLightweightFile[] lightweightFiles = context.getSelectedLightweightFiles();
if (selectedFiles == null) selectedFiles = VirtualFile.EMPTY_ARRAY;
if (selectedIOFiles == null) selectedIOFiles = new File[0];
if (lightweightFiles == null) lightweightFiles = new CvsLightweightFile[0];
if ((selectedFiles.length ==0 && lightweightFiles.length == 0) && !myCanBePerformedOnLocallyDeletedFile) return false;
if ((selectedFiles.length ==0 && selectedIOFiles.length == 0) && !myCanBePerformedOnCvsLightweightFile) return false;
int selectedFileCount = selectedFiles.length + selectedIOFiles.length + lightweightFiles.length;
if (selectedFileCount == 0) return false;
if (selectedFileCount > 1 && !myCanBePerformedOnSeveralFiles) return false;
if (containsFileFromUnsupportedFileSystem(selectedFiles)) return false;
if ((containsDirectory(selectedFiles) || containsDirectory(selectedIOFiles)) && !myCanBePerformedOnDirectory) return false;
if ((containsFile(selectedFiles) || containsFile(selectedIOFiles)) && !myCanBePerformedOnFile) return false;
return true;
}