private boolean hasSuitableType()

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;
  }