use of com.intellij.ide.util.frameworkSupport.FrameworkSupportConfigurable in project intellij-community by JetBrains.
the class AddSupportForFrameworksPanel method addSupport.
public void addSupport(@NotNull final Module module, @NotNull final ModifiableRootModel rootModel) {
List<Library> addedLibraries = new ArrayList<>();
List<FrameworkSupportNode> selectedFrameworks = getSelectedNodes();
sortFrameworks(selectedFrameworks);
List<FrameworkSupportConfigurable> selectedConfigurables = new ArrayList<>();
final IdeaModifiableModelsProvider modifiableModelsProvider = new IdeaModifiableModelsProvider();
for (FrameworkSupportNode node : selectedFrameworks) {
FrameworkSupportInModuleConfigurable configurable = node.getConfigurable();
if (configurable instanceof OldFrameworkSupportProviderWrapper.FrameworkSupportConfigurableWrapper) {
selectedConfigurables.add(((OldFrameworkSupportProviderWrapper.FrameworkSupportConfigurableWrapper) configurable).getConfigurable());
}
final LibraryCompositionSettings settings = getLibraryCompositionSettings(node);
Library library = settings != null ? settings.addLibraries(rootModel, addedLibraries, myLibrariesContainer) : null;
if (configurable instanceof OldFrameworkSupportProviderWrapper.FrameworkSupportConfigurableWrapper) {
((OldFrameworkSupportProviderWrapper.FrameworkSupportConfigurableWrapper) configurable).getConfigurable().addSupport(module, rootModel, library);
} else {
configurable.addSupport(module, rootModel, modifiableModelsProvider);
}
}
for (FrameworkSupportNode node : selectedFrameworks) {
FrameworkSupportInModuleProvider provider = node.getUserObject();
if (provider instanceof OldFrameworkSupportProviderWrapper) {
final FrameworkSupportProvider oldProvider = ((OldFrameworkSupportProviderWrapper) provider).getProvider();
if (oldProvider instanceof FacetBasedFrameworkSupportProvider && !addedLibraries.isEmpty()) {
((FacetBasedFrameworkSupportProvider) oldProvider).processAddedLibraries(module, addedLibraries);
}
}
}
for (FrameworkSupportCommunicator communicator : FrameworkSupportCommunicator.EP_NAME.getExtensions()) {
communicator.onFrameworkSupportAdded(module, rootModel, selectedConfigurables, myModel);
}
}
use of com.intellij.ide.util.frameworkSupport.FrameworkSupportConfigurable in project intellij-community by JetBrains.
the class MavenFrameworkSupportProvider method createConfigurable.
@NotNull
@Override
public FrameworkSupportConfigurable createConfigurable(@NotNull FrameworkSupportModel model) {
return new FrameworkSupportConfigurable() {
@Override
public JComponent getComponent() {
return new JPanel();
}
@Override
public void addSupport(@NotNull Module module, @NotNull ModifiableRootModel model, @Nullable Library library) {
VirtualFile[] roots = model.getContentRoots();
VirtualFile root;
if (roots.length == 0) {
VirtualFile moduleFile = module.getModuleFile();
if (moduleFile != null) {
root = moduleFile.getParent();
model.addContentEntry(root);
} else {
return;
}
} else {
root = roots[0];
}
VirtualFile existingPom = null;
for (VirtualFile child : root.getChildren()) {
if (child.getName().startsWith("pom.")) {
existingPom = child;
}
}
if (existingPom != null) {
MavenProjectsManager.getInstance(module.getProject()).addManagedFilesOrUnignore(Collections.singletonList(existingPom));
} else {
prepareProjectStructure(model, root);
new MavenModuleBuilderHelper(new MavenId("groupId", module.getName(), "1.0-SNAPSHOT"), null, null, false, false, null, null, "Add Maven Support").configure(model.getProject(), root, true);
}
}
};
}
Aggregations