protected boolean isJavaFile(VirtualFile file) { String fileExtension = fileTypeRegistry.getFileTypeByFile(file).getExtension(); return fileExtension != null && (fileExtension.equals("java") || fileExtension.equals("class")); }
protected boolean isJavaFile(VirtualFile file) { final String ext = fileTypeRegistry.getFileTypeByFile(file).getExtension(); return "java".equals(ext) || "class".equals(ext); } }
protected boolean isJavaFile(VirtualFile file) { final String ext = fileTypeRegistry.getFileTypeByFile(file).getExtension(); return "java".equals(ext) || "class".equals(ext); } }
@Override public void registerFileType(FileType candidate) { if (candidate == null) { throw new IllegalArgumentException("Can not register Illegal File Type"); } String extension = candidate.getExtension(); FileType duplicate = getFileTypeByExtension(extension); if (duplicate != unknownFileType && duplicate != candidate) { throw new IllegalStateException( "File Type with extension " + extension + " is already registered"); } fileTypes.add(candidate); }
@Inject public PreviewImageAction( AgentURLModifier agentURLModifier, AppContext appContext, CoreLocalizationConstant constant, @Named("PNGFileType") FileType pngFile, @Named("BMPFileType") FileType bmpFile, @Named("GIFFileType") FileType gifFile, @Named("ICOFileType") FileType iconFile, @Named("SVGFileType") FileType svgFile, @Named("JPEFileType") FileType jpeFile, @Named("JPEGFileType") FileType jpegFile, @Named("JPGFileType") FileType jpgFile) { super( singletonList(PROJECT_PERSPECTIVE_ID), constant.actionPreviewImageTitle(), constant.actionPreviewImageDescription()); this.agentURLModifier = agentURLModifier; this.appContext = appContext; extensions.add(pngFile.getExtension()); extensions.add(bmpFile.getExtension()); extensions.add(gifFile.getExtension()); extensions.add(iconFile.getExtension()); extensions.add(svgFile.getExtension()); extensions.add(jpeFile.getExtension()); extensions.add(jpegFile.getExtension()); extensions.add(jpgFile.getExtension()); }
@Override public FileType getFileTypeByExtension(String extension) { if (isNullOrEmpty(extension)) { return unknownFileType; } Set<FileType> typesByExtension = fileTypes.stream().filter(type -> extension.equals(type.getExtension())).collect(toSet()); if (typesByExtension.isEmpty()) { return unknownFileType; } String nameToTest = '.' + extension; Optional<FileType> fileType = typesByExtension .stream() .filter(type -> doesFileNameMatchType(nameToTest, type)) .findFirst(); if (fileType.isPresent()) { return fileType.get(); } fileType = typesByExtension.stream().filter(type -> type.getNamePatterns().isEmpty()).findFirst(); return fileType.orElseGet(() -> typesByExtension.iterator().next()); }
@Override public FileType getFileTypeByFileName(String name) { if (isNullOrEmpty(name)) { return unknownFileType; } Set<FileType> typesByNamePattern = fileTypes.stream().filter(type -> doesFileNameMatchType(name, type)).collect(toSet()); if (typesByNamePattern.isEmpty()) { return unknownFileType; } if (typesByNamePattern.size() == 1) { return typesByNamePattern.iterator().next(); } String fileExtension = getFileExtension(name); if (isNullOrEmpty(fileExtension)) { return typesByNamePattern.iterator().next(); } Optional<FileType> fileType = typesByNamePattern .stream() .filter(type -> fileExtension.equals(type.getExtension())) .findFirst(); return fileType.orElseGet(() -> typesByNamePattern.iterator().next()); }
private boolean canBeMergedByNamePattern(String namePattern, FileType fileTypeCandidate) { String extensionCandidate = fileTypeCandidate.getExtension(); if (!isNullOrEmpty(extensionCandidate) && RegExp.compile(namePattern).test('.' + extensionCandidate)) { return true; } return fileTypeCandidate .getNamePatterns() .stream() .anyMatch( patternCandidate -> namePattern.equals(patternCandidate) || RegExp.quote(namePattern).equals(patternCandidate)); } }
private Set<FileType> getFileTypesByFile(VirtualFile file) { String name = file.getName(); if (isNullOrEmpty(name)) { return emptySet(); } Set<FileType> typesByNamePattern = fileTypeRegistry .getFileTypes() .stream() .filter( type -> type.getNamePatterns() .stream() .anyMatch(namePattern -> compile(namePattern).test(name))) .collect(toSet()); String fileExtension = getFileExtension(name); if (isNullOrEmpty(fileExtension)) { return typesByNamePattern; } Set<FileType> fileTypes = typesByNamePattern .stream() .filter(type -> fileExtension.equals(type.getExtension())) .collect(toSet()); fileTypes = fileTypes.isEmpty() ? typesByNamePattern : fileTypes; return fileTypes.isEmpty() ? singleton(fileTypeRegistry.getFileTypeByExtension(fileExtension)) : fileTypes; }
public FileType get( @Nullable SVGResource image, @NotNull String extension, @Nullable String namePattern) { if (isNullOrEmpty(namePattern)) { return getByExtension(image, extension); } checkArgument(!isNullOrEmpty(extension), "Can not register File Type without extension"); Optional<FileType> fileTypeOptional = fileTypeRegistry .getFileTypes() .stream() .filter(candidate -> extension.equals(candidate.getExtension())) .filter(candidate -> canBeMergedByNamePattern(namePattern, candidate)) .findAny(); FileType fileType = fileTypeOptional.orElseGet(() -> registerNewFileType(image, extension, null)); fileType.addNamePattern(namePattern); return fileType; }
@Override protected void updateProjectAction(ActionEvent e) { if (editorAgent.getActiveEditor() != null) { EditorInput input = editorAgent.getActiveEditor().getEditorInput(); VirtualFile file = input.getFile(); final String fileExtension = fileTypeRegistry.getFileTypeByFile(file).getExtension(); if ("java".equals(fileExtension) || "class".equals(fileExtension)) { e.getPresentation().setEnabledAndVisible(true); return; } } e.getPresentation().setEnabledAndVisible(false); } }