IDEA-251030 Icons are not shown in Database toolwindow popup menu
[idea/community.git] / java / compiler / impl / src / com / intellij / packaging / impl / elements / FacetBasedPackagingElementType.java
index c647a68ad3041330830de5d7ff2ae1c4dffbea9d..aac42f1bb8688a7deaa0f2009d07351286265b4b 100644 (file)
@@ -8,11 +8,13 @@ import com.intellij.ide.util.ChooseElementsDialog;
 import com.intellij.openapi.module.Module;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.util.NlsContexts;
+import com.intellij.openapi.util.NlsSafe;
 import com.intellij.packaging.artifacts.Artifact;
 import com.intellij.packaging.elements.CompositePackagingElement;
 import com.intellij.packaging.elements.PackagingElement;
 import com.intellij.packaging.elements.PackagingElementType;
 import com.intellij.packaging.ui.ArtifactEditorContext;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NonNls;
 import org.jetbrains.annotations.NotNull;
 
@@ -20,11 +22,25 @@ import javax.swing.*;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.function.Supplier;
 
 public abstract class FacetBasedPackagingElementType<E extends PackagingElement<?>, F extends Facet> extends PackagingElementType<E> {
   private final FacetTypeId<F> myFacetType;
 
-  protected FacetBasedPackagingElementType(@NotNull @NonNls String id, @NotNull String presentableName, FacetTypeId<F> facetType) {
+  /**
+   * @deprecated This constructor is meant to provide the binary compatibility with the external plugins.
+   * Please use the constructor that accepts a messagePointer for {@link PackagingElementType#myPresentableName}
+   */
+  @Deprecated
+  protected FacetBasedPackagingElementType(@NotNull @NonNls String id,
+                                           @NotNull @Nls(capitalization = Nls.Capitalization.Title) String presentableName,
+                                           FacetTypeId<F> facetType) {
+    this(id, () -> presentableName, facetType);
+  }
+
+  protected FacetBasedPackagingElementType(@NotNull @NonNls String id,
+                                           @NotNull Supplier<@Nls(capitalization = Nls.Capitalization.Title) String> presentableName,
+                                           FacetTypeId<F> facetType) {
     super(id, presentableName);
     myFacetType = facetType;
   }
@@ -69,7 +85,7 @@ public abstract class FacetBasedPackagingElementType<E extends PackagingElement<
 
   protected abstract @NlsContexts.Label String getDialogDescription();
 
-  protected abstract String getItemText(F item);
+  protected abstract @NlsSafe String getItemText(F item);
 
   private final class ChooseFacetsDialog extends ChooseElementsDialog<F> {
     private ChooseFacetsDialog(Project project, List<? extends F> items, @NlsContexts.DialogTitle String title, @NlsContexts.Label String description) {