From b4ca04572eb40104f4b78f1fed5e35af966b0317 Mon Sep 17 00:00:00 2001 From: Sergey Evdokimov Date: Fri, 18 Jan 2013 17:56:04 +0400 Subject: [PATCH] Make initialization of list cell renderer lazy. --- .../annotator/MavenDomGutterAnnotator.java | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/annotator/MavenDomGutterAnnotator.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/annotator/MavenDomGutterAnnotator.java index 00236e7393f0..60aa37b6ab8b 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/annotator/MavenDomGutterAnnotator.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/annotator/MavenDomGutterAnnotator.java @@ -82,24 +82,23 @@ public class MavenDomGutterAnnotator implements Annotator { } } - private static final NotNullFunction> CONVERTER = - new NotNullFunction>() { + private static class DependencyConverter implements NotNullFunction> { + public static final DependencyConverter INSTANCE = new DependencyConverter(); - @NotNull - public Collection fun(final MavenDomDependency pointer) { - return ContainerUtil.createMaybeSingletonList(pointer.getXmlTag()); - } - }; + @NotNull + public Collection fun(final MavenDomDependency pointer) { + return ContainerUtil.createMaybeSingletonList(pointer.getXmlTag()); + } + } - private static final NotNullFunction> MAVEN_PROJECT_CONVERTER = - new NotNullFunction>() { - - @NotNull - public Collection fun(final MavenDomProjectModel pointer) { - return ContainerUtil.createMaybeSingletonList(pointer.getXmlTag()); - } - }; + private static class MavenProjectConverter implements NotNullFunction> { + public static final MavenProjectConverter INSTANCE = new MavenProjectConverter(); + @NotNull + public Collection fun(final MavenDomProjectModel pointer) { + return ContainerUtil.createMaybeSingletonList(pointer.getXmlTag()); + } + } private static void annotateDependencyUsages(@NotNull MavenDomDependency dependency, AnnotationHolder holder) { final XmlTag tag = dependency.getXmlTag(); @@ -108,7 +107,7 @@ public class MavenDomGutterAnnotator implements Annotator { final Set children = getDependencyUsages(dependency); if (children.size() > 0) { final NavigationGutterIconBuilder iconBuilder = - NavigationGutterIconBuilder.create(AllIcons.General.OverridenMethod, CONVERTER); + NavigationGutterIconBuilder.create(AllIcons.General.OverridenMethod, DependencyConverter.INSTANCE); iconBuilder. setTargets(children). setPopupTitle(MavenDomBundle.message("navigate.parent.dependency.title")). @@ -126,7 +125,7 @@ public class MavenDomGutterAnnotator implements Annotator { if (children.size() > 0) { final NavigationGutterIconBuilder iconBuilder = - NavigationGutterIconBuilder.create(AllIcons.General.OverridingMethod, CONVERTER); + NavigationGutterIconBuilder.create(AllIcons.General.OverridingMethod, DependencyConverter.INSTANCE); iconBuilder. setTargets(children). setTooltipText(MavenDomBundle.message("overriden.dependency.title")). @@ -176,7 +175,7 @@ public class MavenDomGutterAnnotator implements Annotator { MavenDomProjectModel parent = MavenDomProjectProcessorUtils.findParent(mavenDomParent, mavenDomParent.getManager().getProject()); if (parent != null) { - NavigationGutterIconBuilder.create(icons.MavenIcons.ParentProject, MAVEN_PROJECT_CONVERTER). + NavigationGutterIconBuilder.create(icons.MavenIcons.ParentProject, MavenProjectConverter.INSTANCE). setTargets(parent). setTooltipText(MavenDomBundle.message("parent.pom.title")). install(holder, mavenDomParent.getXmlElement()); @@ -189,7 +188,7 @@ public class MavenDomGutterAnnotator implements Annotator { Set children = MavenDomProjectProcessorUtils.getChildrenProjects(model); if (children.size() > 0) { - NavigationGutterIconBuilder.create(icons.MavenIcons.ChildrenProjects, MAVEN_PROJECT_CONVERTER). + NavigationGutterIconBuilder.create(icons.MavenIcons.ChildrenProjects, MavenProjectConverter.INSTANCE). setTargets(children). setCellRenderer(MyListCellRenderer.INSTANCE). setPopupTitle(MavenDomBundle.message("navigate.children.poms.title")).