use of com.intellij.openapi.roots.ProjectRootManager in project liferay-ide by liferay.
the class DeployGradleModuleAction method getWorkingDirectory.
@Override
protected String getWorkingDirectory(AnActionEvent event) {
VirtualFile virtualFile = getVirtualFile(event);
ProjectRootManager projectRootManager = ProjectRootManager.getInstance(event.getProject());
ProjectFileIndex projectFileIndex = projectRootManager.getFileIndex();
Module module = projectFileIndex.getModuleForFile(virtualFile);
ModuleRootManager moduleRootManager = ModuleRootManager.getInstance(module);
ModifiableRootModel modifiableRootModel = moduleRootManager.getModifiableModel();
VirtualFile[] roots = modifiableRootModel.getContentRoots();
assert roots != null && roots[0] != null;
return roots[0].getCanonicalPath();
}
use of com.intellij.openapi.roots.ProjectRootManager in project checkstyle-idea by jshiell.
the class ScanProject method update.
@Override
public void update(final AnActionEvent event) {
super.update(event);
try {
final Presentation presentation = event.getPresentation();
final Project project = DataKeys.PROJECT.getData(event.getDataContext());
if (project == null) {
// check if we're loading...
presentation.setEnabled(false);
return;
}
final CheckStylePlugin checkStylePlugin = project.getComponent(CheckStylePlugin.class);
if (checkStylePlugin == null) {
throw new IllegalStateException("Couldn't get checkstyle plugin");
}
final ScanScope scope = checkStylePlugin.configurationManager().getCurrent().getScanScope();
VirtualFile[] sourceRoots = null;
if (scope == ScanScope.Everything) {
sourceRoots = new VirtualFile[] { project.getBaseDir() };
} else {
final ProjectRootManager projectRootManager = ProjectRootManager.getInstance(project);
sourceRoots = projectRootManager.getContentSourceRoots();
}
// disable if no files are selected or scan in progress
if (containsAtLeastOneFile(sourceRoots)) {
presentation.setEnabled(!checkStylePlugin.isScanInProgress());
} else {
presentation.setEnabled(false);
}
} catch (Throwable e) {
CheckStylePlugin.processErrorAndLog("Project button update", e);
}
}
use of com.intellij.openapi.roots.ProjectRootManager in project moe-ide-integration by multi-os-engine.
the class MOEModuleBuilder method setupRootModel.
@Override
public void setupRootModel(final ModifiableRootModel rootModel) throws ConfigurationException {
Project project = rootModel.getProject();
Module module = rootModel.getModule();
myJdk = MOESdkType.getJDK();
ProjectRootManager.getInstance(project).setProjectSdk(myJdk);
rootModel.getModuleExtension(LanguageLevelModuleExtension.class).setLanguageLevel(MOESdkType.REQUIRED_JAVA_LANGUAGE_LEVEL);
super.setupRootModel(rootModel);
ProjectRootManager projectRootManager = ProjectRootManager.getInstance(project);
String projectPath = rootModel.getProject().getBasePath();
String contentEntryPath = getContentEntryPath();
if (contentEntryPath == null || contentEntryPath.isEmpty()) {
throw new RuntimeException("Can't get content entry path.");
}
VirtualFile contentRoot = LocalFileSystem.getInstance().findFileByIoFile(new File(contentEntryPath));
try {
createModule(contentRoot, project);
} catch (MOEProjectComposer.MOEProjectComposerException e) {
throw new ConfigurationException(e.getMessage());
}
VirtualFile[] contentFiles = new VirtualFile[] { contentRoot };
VfsUtil.markDirtyAndRefresh(false, true, true, contentFiles);
new ReformatCodeProcessor(project, module, false).run();
String resourcePath = "src/main/" + MOESdkPlugin.getResourcesFolderName();
String sourcePath = "src/main/java";
for (ContentEntry entry : rootModel.getContentEntries()) {
for (SourceFolder srcFolder : entry.getSourceFolders()) {
entry.removeSourceFolder(srcFolder);
}
VirtualFile sourceFile = null;
if (contentRoot != null) {
sourceFile = contentRoot.findFileByRelativePath(sourcePath);
}
if (sourceFile != null) {
entry.addSourceFolder(sourceFile, false);
}
VirtualFile resourceFolder = null;
if (contentRoot != null) {
resourceFolder = contentRoot.findFileByRelativePath(resourcePath);
}
if (resourceFolder != null && resourceFolder.exists()) {
SourceFolder sourceFolder = entry.addSourceFolder(resourceFolder, JavaResourceRootType.RESOURCE);
JavaSourceRootProperties properties = sourceFolder.getJpsElement().getProperties(JavaModuleSourceRootTypes.SOURCES);
if (properties != null) {
properties.setForGeneratedSources(true);
}
}
}
try {
configureGradle(rootModel);
} catch (IOException e) {
MOEToolWindow.getInstance(project).error("Error occurred during gradle configuration: " + e.getMessage());
}
if (!isNewProject) {
File settingsGradle = new File(projectPath, "settings.gradle");
try {
if (!settingsGradle.exists()) {
if (!settingsGradle.createNewFile()) {
MOEToolWindow.getInstance(project).error("Error occurred during gradle settings file.");
}
}
modifyGradleSettings(settingsGradle, new Module[] { rootModel.getModule() });
} catch (IOException e) {
MOEToolWindow.getInstance(project).error("Error occurred during gradle configuration: " + e.getMessage());
}
}
if (contentRoot != null) {
contentRoot.refresh(false, true);
}
Sdk sdk = MOESdkType.getMOESdk(rootModel.getModule());
if (sdk != null) {
rootModel.setSdk(sdk);
} else {
MOEToolWindow.getInstance(project).error("Error, unable set Sdk.");
}
rootModel.getModuleExtension(LanguageLevelModuleExtension.class).setLanguageLevel(MOESdkType.REQUIRED_JAVA_LANGUAGE_LEVEL);
StartupManager.getInstance(project).runWhenProjectIsInitialized(new Runnable() {
@Override
public void run() {
configureRun(rootModel);
}
});
}
use of com.intellij.openapi.roots.ProjectRootManager in project qi4j-sdk by Qi4j.
the class GlobalSearchScopeUtil method determineSearchScope.
/**
* Determine search scope given a psi element.
*
* @param psiElement context.
* @return Search scope given psi class.
* @since 0.1
*/
@Nullable
public static GlobalSearchScope determineSearchScope(@NotNull PsiElement psiElement) {
VirtualFile classVirtualFile = getVirtualFile(psiElement);
if (classVirtualFile == null) {
return null;
}
Module module = findModuleForPsiElement(psiElement);
if (module == null) {
return null;
}
Project project = psiElement.getProject();
ProjectRootManager projectRootManager = ProjectRootManager.getInstance(project);
boolean includeTestClasses = projectRootManager.getFileIndex().isInTestSourceContent(classVirtualFile);
return module.getModuleWithDependenciesAndLibrariesScope(includeTestClasses);
}
Aggregations