diff options
Diffstat (limited to 'java/java-psi-impl/src/com/intellij/codeInsight/highlighting/JavaHighlightUsagesDescriptionProvider.java')
-rw-r--r-- | java/java-psi-impl/src/com/intellij/codeInsight/highlighting/JavaHighlightUsagesDescriptionProvider.java | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/java/java-psi-impl/src/com/intellij/codeInsight/highlighting/JavaHighlightUsagesDescriptionProvider.java b/java/java-psi-impl/src/com/intellij/codeInsight/highlighting/JavaHighlightUsagesDescriptionProvider.java new file mode 100644 index 000000000000..b09181c1a5da --- /dev/null +++ b/java/java-psi-impl/src/com/intellij/codeInsight/highlighting/JavaHighlightUsagesDescriptionProvider.java @@ -0,0 +1,69 @@ +/* + * Copyright 2000-2009 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.codeInsight.highlighting; + +import com.intellij.psi.*; +import com.intellij.psi.util.PsiFormatUtil; +import com.intellij.lang.LangBundle; +import com.intellij.psi.util.PsiFormatUtilBase; +import org.jetbrains.annotations.NotNull; + +/** + * @author yole + */ +public class JavaHighlightUsagesDescriptionProvider implements ElementDescriptionProvider { + @Override + public String getElementDescription(@NotNull final PsiElement element, @NotNull final ElementDescriptionLocation location) { + if (!(location instanceof HighlightUsagesDescriptionLocation)) return null; + + String elementName = null; + if (element instanceof PsiClass) { + elementName = ((PsiClass)element).getQualifiedName(); + if (elementName == null) { + elementName = ((PsiClass)element).getName(); + } + elementName = (((PsiClass)element).isInterface() ? + LangBundle.message("java.terms.interface") : + LangBundle.message("java.terms.class")) + " " + elementName; + } + else if (element instanceof PsiMethod) { + elementName = PsiFormatUtil.formatMethod((PsiMethod)element, + PsiSubstitutor.EMPTY, PsiFormatUtilBase.SHOW_NAME | PsiFormatUtilBase.SHOW_PARAMETERS | + PsiFormatUtilBase.SHOW_CONTAINING_CLASS, + PsiFormatUtilBase.SHOW_TYPE); + elementName = LangBundle.message("java.terms.method") + " " + elementName; + } + else if (element instanceof PsiVariable) { + elementName = PsiFormatUtil.formatVariable((PsiVariable)element, + PsiFormatUtilBase.SHOW_NAME | PsiFormatUtilBase.SHOW_CONTAINING_CLASS, + PsiSubstitutor.EMPTY); + if (element instanceof PsiField) { + elementName = LangBundle.message("java.terms.field") + " " + elementName; + } + else if (element instanceof PsiParameter) { + elementName = LangBundle.message("java.terms.parameter") + " " + elementName; + } + else { + elementName = LangBundle.message("java.terms.variable") + " " + elementName; + } + } + else if (element instanceof PsiPackage) { + elementName = ((PsiPackage)element).getQualifiedName(); + elementName = LangBundle.message("java.terms.package") + " " + elementName; + } + return elementName; + } +} |