package com.intellij.lang.javascript.flex.library; import com.intellij.lang.javascript.flex.FlexModuleType; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleType; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.libraries.*; import com.intellij.openapi.roots.libraries.ui.LibraryEditorComponent; import com.intellij.openapi.roots.libraries.ui.LibraryPropertiesEditor; import com.intellij.openapi.roots.libraries.ui.LibraryRootsComponentDescriptor; import com.intellij.openapi.roots.ui.configuration.FacetsProvider; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.PlatformIcons; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; /** * @author nik */ public class FlexLibraryType extends LibraryType<FlexLibraryProperties> { public static final PersistentLibraryKind<FlexLibraryProperties> FLEX_LIBRARY = new PersistentLibraryKind<FlexLibraryProperties>("flex") { @NotNull @Override public FlexLibraryProperties createDefaultProperties() { return new FlexLibraryProperties(); } }; public FlexLibraryType() { super(FLEX_LIBRARY); } @NotNull @Override public String getCreateActionName() { return "ActionScript/Flex"; } @Override public NewLibraryConfiguration createNewLibrary(@NotNull JComponent parentComponent, @Nullable VirtualFile contextDirectory, @NotNull final Project project) { return LibraryTypeService.getInstance().createLibraryFromFiles(createLibraryRootsComponentDescriptor(), parentComponent, contextDirectory, this, project); } @Override public boolean isSuitableModule(@NotNull Module module, @NotNull FacetsProvider facetsProvider) { return ModuleType.get(module).equals(FlexModuleType.getInstance()); } public LibraryPropertiesEditor createPropertiesEditor(@NotNull final LibraryEditorComponent<FlexLibraryProperties> properties) { return null; } @Override public Icon getIcon() { return PlatformIcons.LIBRARY_ICON; // TODO: change icon to Flex specific only when automatic library converters are done } @NotNull public LibraryRootsComponentDescriptor createLibraryRootsComponentDescriptor() { return new FlexLibraryRootsComponentDescriptor(); } public static FlexLibraryType getInstance() { return LibraryType.EP_NAME.findExtension(FlexLibraryType.class); } }