package com.jetbrains.lang.dart.sdk;
import com.intellij.openapi.roots.libraries.DummyLibraryProperties;
import com.intellij.openapi.roots.libraries.LibraryKind;
import com.intellij.openapi.roots.libraries.LibraryPresentationProvider;
import com.intellij.openapi.vfs.VirtualFile;
import icons.DartIcons;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.util.List;
public class DartSdkLibraryPresentationProvider extends LibraryPresentationProvider<DummyLibraryProperties> {
private static final LibraryKind KIND = LibraryKind.create("dart");
protected DartSdkLibraryPresentationProvider() {
super(KIND);
}
@Nullable
@Override
public Icon getIcon(@Nullable DummyLibraryProperties properties) {
return DartIcons.Dart_16;
}
@Nullable
public DummyLibraryProperties detect(@NotNull final List<VirtualFile> classesRoots) {
return findDartCoreRoot(classesRoots) == null ? null : DummyLibraryProperties.INSTANCE;
}
@Nullable
public static VirtualFile findDartCoreRoot(@NotNull final List<VirtualFile> classesRoots) {
for (VirtualFile root : classesRoots) {
if (root.isInLocalFileSystem() &&
root.isDirectory() &&
root.getPath().endsWith("/lib/core") &&
root.findChild("core.dart") != null) {
return root;
}
}
return null;
}
}