package org.jetbrains.plugins.ruby.motion.facet; import com.intellij.facet.Facet; import com.intellij.facet.FacetType; import com.intellij.facet.FacetTypeId; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleType; import icons.RubyIcons; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.ruby.ruby.RModuleUtil; import javax.swing.*; /** * @author Dennis.Ushakov */ public class RubyMotionFacetType extends FacetType<RubyMotionFacet, RubyMotionFacetConfiguration> { public static final FacetTypeId<RubyMotionFacet> ID = new FacetTypeId<>("ruby_motion"); public static RubyMotionFacetType getInstance() { return findInstance(RubyMotionFacetType.class); } private RubyMotionFacetType() { super(ID, "ruby_motion", "RubyMotion", null); } @Override public RubyMotionFacetConfiguration createDefaultConfiguration() { return new RubyMotionFacetConfiguration(); } @Override public RubyMotionFacet createFacet(@NotNull final Module module, final String name, @NotNull final RubyMotionFacetConfiguration configuration, @Nullable final Facet underlyingFacet) { return new RubyMotionFacet(this, module, name, configuration, underlyingFacet); } @Override public boolean isSuitableModuleType(ModuleType moduleType) { return RModuleUtil.getInstance().isRubyModuleType(moduleType); } @Override public Icon getIcon() { // fix me return RubyIcons.Ruby.Rubygems; } }