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.vfs.VirtualFile;
8 import com.intellij.psi.PsiFile;
9 import org.jetbrains.annotations.NonNls;
10 import org.jetbrains.annotations.NotNull;
12 public final class JavaFxFileTypeFactory implements FileTypeUsageSchemaDescriptor {
14 public boolean describes(@NotNull VirtualFile file) {
18 @NonNls public static final String FXML_EXTENSION = "fxml";
19 @NonNls static final String DOT_FXML_EXTENSION = "." + FXML_EXTENSION;
21 public static boolean isFxml(@NotNull PsiFile file) {
22 final VirtualFile virtualFile = file.getViewProvider().getVirtualFile();
23 return isFxml(virtualFile);
26 public static boolean isFxml(@NotNull VirtualFile virtualFile) {
27 if (FXML_EXTENSION.equals(virtualFile.getExtension())) {
28 final FileType fileType = virtualFile.getFileType();
29 if (fileType == getFileType() && !fileType.isBinary()) {
30 return virtualFile.getName().endsWith(DOT_FXML_EXTENSION);
37 public static FileType getFileType() {
38 return FileTypeManager.getInstance().getFileTypeByExtension(FXML_EXTENSION);