Search in sources :

Example 6 with Facet

use of com.intellij.facet.Facet in project intellij-community by JetBrains.

the class AddFrameworkSupportInProjectStructureAction method getSelectedModule.

@Nullable
private Module getSelectedModule() {
    final Object selected = myModuleStructureConfigurable.getSelectedObject();
    if (selected instanceof Module) {
        return (Module) selected;
    }
    final Facet facet = getSelectedFacet();
    return facet != null ? facet.getModule() : null;
}
Also used : Module(com.intellij.openapi.module.Module) Facet(com.intellij.facet.Facet) Nullable(org.jetbrains.annotations.Nullable)

Example 7 with Facet

use of com.intellij.facet.Facet in project intellij-community by JetBrains.

the class AddFacetOfTypeAction method addFacetToModule.

private void addFacetToModule(@NotNull FacetType type) {
    final ProjectFacetsConfigurator facetsConfigurator = myContext.getModulesConfigurator().getFacetsConfigurator();
    List<Module> suitableModules = new ArrayList<>(Arrays.asList(myContext.getModules()));
    final Iterator<Module> iterator = suitableModules.iterator();
    while (iterator.hasNext()) {
        Module module = iterator.next();
        if (!type.isSuitableModuleType(ModuleType.get(module)) || (type.isOnlyOneFacetAllowed() && facetsConfigurator.hasFacetOfType(module, null, type.getId()))) {
            iterator.remove();
        }
    }
    final Project project = myContext.getProject();
    if (suitableModules.isEmpty()) {
        Messages.showErrorDialog(project, "No suitable modules for " + type.getPresentableName() + " facet found.", "Cannot Create Facet");
        return;
    }
    final ChooseModulesDialog dialog = new ChooseModulesDialog(project, suitableModules, "Choose Module", type.getPresentableName() + " facet will be added to selected module");
    dialog.setSingleSelectionMode();
    dialog.show();
    final List<Module> elements = dialog.getChosenElements();
    if (!dialog.isOK() || elements.size() != 1)
        return;
    final Module module = elements.get(0);
    final Facet facet = ModuleStructureConfigurable.getInstance(project).getFacetEditorFacade().createAndAddFacet(type, module, null);
    ProjectStructureConfigurable.getInstance(project).select(facet, true);
}
Also used : Project(com.intellij.openapi.project.Project) ChooseModulesDialog(com.intellij.openapi.roots.ui.configuration.ChooseModulesDialog) ArrayList(java.util.ArrayList) ProjectFacetsConfigurator(com.intellij.facet.impl.ProjectFacetsConfigurator) Module(com.intellij.openapi.module.Module) Facet(com.intellij.facet.Facet)

Example 8 with Facet

use of com.intellij.facet.Facet in project intellij-community by JetBrains.

the class CodeInsightTestFixtureImpl method configureInner.

private PsiFile configureInner(@NotNull final VirtualFile copy, @NotNull final SelectionAndCaretMarkupLoader loader) {
    assertInitialized();
    EdtTestUtil.runInEdtAndWait(() -> {
        if (!copy.getFileType().isBinary()) {
            try {
                WriteAction.run(() -> copy.setBinaryContent(loader.newFileText.getBytes(copy.getCharset())));
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
        myFile = copy;
        myEditor = createEditor(copy);
        if (myEditor == null) {
            fail("editor couldn't be created for: " + copy.getPath() + ", use copyFileToProject() instead of configureByFile()");
        }
        EditorTestUtil.setCaretsAndSelection(myEditor, loader.caretState);
        Module module = getModule();
        if (module != null) {
            for (Facet facet : FacetManager.getInstance(module).getAllFacets()) {
                module.getMessageBus().syncPublisher(FacetManager.FACETS_TOPIC).facetConfigurationChanged(facet);
            }
        }
        PsiDocumentManager.getInstance(getProject()).commitAllDocuments();
        if (myCaresAboutInjection) {
            setupEditorForInjectedLanguage();
        }
    });
    return getFile();
}
Also used : UncheckedIOException(java.io.UncheckedIOException) IOException(java.io.IOException) Module(com.intellij.openapi.module.Module) Facet(com.intellij.facet.Facet)

Example 9 with Facet

use of com.intellij.facet.Facet in project android by JetBrains.

the class ModuleFactory method createModule.

@NotNull
Module createModule(@NotNull IdeaModule ideaModule, @NotNull SyncAction.ModuleModels moduleModels) {
    File imlFilePath = getModuleImlFilePath(ideaModule, moduleModels);
    Module newModule = myModelsProvider.newModule(imlFilePath.getPath(), StdModuleTypes.JAVA.getId());
    ModifiableRootModel rootModel = myModelsProvider.getModifiableRootModel(newModule);
    rootModel.inheritSdk();
    // Remove all dependencies.
    DependencyRemover dependencyRemover = new DependencyRemover(rootModel);
    for (OrderEntry orderEntry : rootModel.getOrderEntries()) {
        orderEntry.accept(dependencyRemover, null);
    }
    // Remove all facets.
    ModifiableFacetModel facetModel = myModelsProvider.getModifiableFacetModel(newModule);
    for (Facet facet : facetModel.getAllFacets()) {
        facetModel.removeFacet(facet);
    }
    return newModule;
}
Also used : ModifiableFacetModel(com.intellij.facet.ModifiableFacetModel) IdeaModule(org.gradle.tooling.model.idea.IdeaModule) Module(com.intellij.openapi.module.Module) File(java.io.File) Facet(com.intellij.facet.Facet) NotNull(org.jetbrains.annotations.NotNull)

Example 10 with Facet

use of com.intellij.facet.Facet in project android by JetBrains.

the class AndroidProjectComponent method projectOpened.

@Override
public void projectOpened() {
    final CompilerManager manager = CompilerManager.getInstance(myProject);
    manager.addBeforeTask(new AndroidPrecompileTask());
    myDisposable = Disposer.newDisposable(getClass().getName());
    if (!ApplicationManager.getApplication().isUnitTestMode() && !ApplicationManager.getApplication().isHeadlessEnvironment()) {
        if (ProjectFacetManager.getInstance(myProject).hasFacets(AndroidFacet.ID)) {
            createAndroidSpecificComponents();
        } else {
            final MessageBusConnection connection = myProject.getMessageBus().connect(myDisposable);
            connection.subscribe(FacetManager.FACETS_TOPIC, new FacetManagerAdapter() {

                @Override
                public void facetAdded(@NotNull Facet facet) {
                    if (facet instanceof AndroidFacet) {
                        createAndroidSpecificComponents();
                        connection.disconnect();
                    }
                }
            });
        }
    }
}
Also used : AndroidPrecompileTask(org.jetbrains.android.compiler.AndroidPrecompileTask) MessageBusConnection(com.intellij.util.messages.MessageBusConnection) CompilerManager(com.intellij.openapi.compiler.CompilerManager) AndroidFacet(org.jetbrains.android.facet.AndroidFacet) FacetManagerAdapter(com.intellij.facet.FacetManagerAdapter) Facet(com.intellij.facet.Facet) AndroidFacet(org.jetbrains.android.facet.AndroidFacet)

Aggregations

Facet (com.intellij.facet.Facet)17 Module (com.intellij.openapi.module.Module)8 Project (com.intellij.openapi.project.Project)4 ArrayList (java.util.ArrayList)4 NotNull (org.jetbrains.annotations.NotNull)4 FacetManagerAdapter (com.intellij.facet.FacetManagerAdapter)3 ProjectFacetsConfigurator (com.intellij.facet.impl.ProjectFacetsConfigurator)3 MessageBusConnection (com.intellij.util.messages.MessageBusConnection)3 Nullable (org.jetbrains.annotations.Nullable)3 FacetTypeId (com.intellij.facet.FacetTypeId)2 MultiValuesMap (com.intellij.openapi.util.MultiValuesMap)2 Pair (com.intellij.openapi.util.Pair)2 PythonFacetSettings (com.jetbrains.python.facet.PythonFacetSettings)2 FacetConfiguration (com.intellij.facet.FacetConfiguration)1 ModifiableFacetModel (com.intellij.facet.ModifiableFacetModel)1 FacetPointerListener (com.intellij.facet.pointers.FacetPointerListener)1 FacetEditor (com.intellij.facet.ui.FacetEditor)1 CompilerManager (com.intellij.openapi.compiler.CompilerManager)1 ModuleType (com.intellij.openapi.module.ModuleType)1 ModuleListener (com.intellij.openapi.project.ModuleListener)1