1 // Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 package org.jetbrains.plugins.javaFX.fxml;
4 import com.intellij.internal.statistic.collectors.fus.fileTypes.FileTypeUsageSchemaDescriptor;
5 import com.intellij.openapi.fileTypes.FileType;
6 import com.intellij.openapi.fileTypes.FileTypeManager;
7 import com.intellij.openapi.project.Project;
8 import com.intellij.openapi.vfs.VirtualFile;
9 import com.intellij.psi.PsiFile;
10 import org.jetbrains.annotations.NonNls;
11 import org.jetbrains.annotations.NotNull;
13 public final class JavaFxFileTypeFactory implements FileTypeUsageSchemaDescriptor {
15 public boolean describes(@NotNull Project project, @NotNull VirtualFile file) {
19 @NonNls public static final String FXML_EXTENSION = "fxml";
20 @NonNls static final String DOT_FXML_EXTENSION = "." + FXML_EXTENSION;
22 public static boolean isFxml(@NotNull PsiFile file) {
23 final VirtualFile virtualFile = file.getViewProvider().getVirtualFile();
24 return isFxml(virtualFile);
27 public static boolean isFxml(@NotNull VirtualFile virtualFile) {
28 if (FXML_EXTENSION.equals(virtualFile.getExtension())) {
29 final FileType fileType = virtualFile.getFileType();
30 if (fileType == getFileType() && !fileType.isBinary()) {
31 return virtualFile.getName().endsWith(DOT_FXML_EXTENSION);
38 public static FileType getFileType() {
39 return FileTypeManager.getInstance().getFileTypeByExtension(FXML_EXTENSION);