Qodana: add property for suppressed plugin ids list.
[idea/community.git] / java / idea-ui / src / com / intellij / openapi / roots / ui / configuration / GeneralProjectSettingsElement.java
index a8ec86a132ac8770c9b351133b0e2b7c84b3ab08..baa196ae36811e6dad84cc56e37101bafd890781 100644 (file)
@@ -18,6 +18,7 @@ package com.intellij.openapi.roots.ui.configuration;
 import com.intellij.compiler.ModuleCompilerUtil;
 import com.intellij.compiler.ModuleSourceSet;
 import com.intellij.compiler.server.impl.BuildProcessCustomPluginsConfiguration;
+import com.intellij.ide.IdeBundle;
 import com.intellij.ide.JavaUiBundle;
 import com.intellij.openapi.module.Module;
 import com.intellij.openapi.module.ModuleManager;
@@ -29,10 +30,12 @@ import com.intellij.openapi.roots.libraries.Library;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectSdksModel;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.StructureConfigurableContext;
 import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.*;
+import com.intellij.openapi.util.text.HtmlBuilder;
+import com.intellij.openapi.util.text.HtmlChunk;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.util.Chunk;
 import com.intellij.util.containers.MultiMap;
-import org.jetbrains.annotations.NonNls;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NotNull;
 
 import java.util.*;
@@ -44,8 +47,8 @@ public class GeneralProjectSettingsElement extends ProjectStructureElement {
 
   @NotNull
   @Override
-  public String getPresentableText() {
-    return "Project";
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getPresentableText() {
+    return IdeBundle.message("title.project");
   }
 
   @Override
@@ -54,8 +57,8 @@ public class GeneralProjectSettingsElement extends ProjectStructureElement {
   }
 
   @Override
-  public String getTypeName() {
-    return "Project";
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getTypeName() {
+    return IdeBundle.message("title.project");
   }
 
   @Override
@@ -75,11 +78,11 @@ public class GeneralProjectSettingsElement extends ProjectStructureElement {
 
     List<Chunk<ModuleSourceSet>> sourceSetCycles = ModuleCompilerUtil.computeSourceSetCycles(myContext.getModulesConfigurator());
 
-    List<String> cycles = new ArrayList<>();
+    List<@Nls String> cycles = new ArrayList<>();
 
     for (Chunk<ModuleSourceSet> chunk : sourceSetCycles) {
       final Set<ModuleSourceSet> sourceSets = chunk.getNodes();
-      List<String> names = new ArrayList<>();
+      List<@Nls String> names = new ArrayList<>();
       for (ModuleSourceSet sourceSet : sourceSets) {
         String name = sourceSet.getDisplayName();
         names.add(names.isEmpty() ? name : StringUtil.decapitalize(name));
@@ -90,15 +93,24 @@ public class GeneralProjectSettingsElement extends ProjectStructureElement {
       final PlaceInProjectStructureBase place =
         new PlaceInProjectStructureBase(project, ProjectStructureConfigurable.getInstance(project).createModulesPlace(), this);
       final String message;
-      final String description;
+      final HtmlChunk description;
       if (cycles.size() > 1) {
-        message = "Circular dependencies";
-        @NonNls final String br = "<br>&nbsp;&nbsp;&nbsp;&nbsp;";
-        StringBuilder cyclesString = new StringBuilder();
-        for (int i = 0; i < cycles.size(); i++) {
-          cyclesString.append(br).append(i + 1).append(". ").append(cycles.get(i));
-        }
-        description = JavaUiBundle.message("module.circular.dependency.warning.description", cyclesString);
+        message = JavaUiBundle.message("circular.dependencies.message");
+
+        final String header = JavaUiBundle.message("module.circular.dependency.warning.description");
+
+        final HtmlChunk[] liTags = cycles.stream()
+          .map(c -> HtmlChunk.tag("li").addText(c))
+          .toArray(HtmlChunk[]::new);
+
+        final HtmlChunk.Element ol = HtmlChunk.tag("ol").style("padding-left: 30pt;")
+          .children(liTags);
+
+        description = new HtmlBuilder()
+          .append(HtmlChunk.tag("b").addText(header))
+          .append(ol)
+          .toFragment()
+        ;
       }
       else {
         message = JavaUiBundle.message("module.circular.dependency.warning.short", StringUtil.decapitalize(cycles.get(0)));
@@ -151,7 +163,8 @@ public class GeneralProjectSettingsElement extends ProjectStructureElement {
     for (String libraryName : BuildProcessCustomPluginsConfiguration.getInstance(myContext.getProject()).getProjectLibraries()) {
       Library library = myContext.getProjectLibrariesProvider().getModifiableModel().getLibraryByName(libraryName);
       if (library != null) {
-        usages.add(new UsageInProjectSettings(myContext, new LibraryProjectStructureElement(myContext, library), "Build process configuration"));
+        usages.add(new UsageInProjectSettings(myContext, new LibraryProjectStructureElement(myContext, library),
+                                              JavaUiBundle.message("label.build.process.configuration")));
       }
     }