myAnotherManager = anotherManager;
}
- /**
- * @param handler
- * @deprecated use extension point instead
- */
public void registerFindUsagesHandler(FindUsagesHandlerFactory handler) {
myHandlers.add(0, handler);
}
}
}
-}
\ No newline at end of file
+}
throw new UnsupportedOperationException("Method getTypeName is not yet implemented for " + myTarget.getClass().getName() + "; see PomDescriptionProvider");
}
+ @NotNull
+ @Override
+ public PsiElement getNavigationElement() {
+ if (myTarget instanceof PsiTarget) {
+ return ((PsiTarget)myTarget).getNavigationElement();
+ }
+ return super.getNavigationElement();
+ }
+
public Icon getIcon() {
for (IconProvider iconProvider : IconProvider.EXTENSION_POINT_NAME.getExtensions()) {
if (iconProvider instanceof PomIconProvider) {
package com.intellij.util.xml.impl;
import com.intellij.codeInsight.daemon.EmptyResolveMessageProvider;
-import com.intellij.codeInsight.lookup.LookupValueFactory;
import com.intellij.codeInsight.lookup.LookupElement;
+import com.intellij.codeInsight.lookup.LookupValueFactory;
import com.intellij.openapi.util.TextRange;
+import com.intellij.pom.references.PomService;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiManager;
import com.intellij.psi.PsiReferenceBase;
return (PsiElement)o;
}
if (o instanceof DomElement) {
- return ((DomElement)o).getXmlElement();
+ DomTarget target = DomTarget.getTarget((DomElement)o);
+ return target == null ? null : PomService.convertToPsi(target);
}
if (o instanceof MergedObject) {
final List<T> list = ((MergedObject<T>)o).getImplementations();
import com.intellij.util.ProcessingContext;
import com.intellij.util.ReflectionCache;
import com.intellij.util.xml.*;
+import com.intellij.pom.references.PomService;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
if (nameValue != null && nameValue.referencable()) {
DomElement parent = domElement.getParent();
assert parent != null;
- references = ArrayUtil.append(references, PsiReferenceBase.createSelfReference(psiElement, parent.getXmlElement()), PsiReference.class);
+ final DomTarget target = DomTarget.getTarget(parent);
+ if (target != null) {
+ references = ArrayUtil.append(references, PsiReferenceBase.createSelfReference(psiElement, PomService.convertToPsi(target)), PsiReference.class);
+ }
}
}
return references;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.codeInspection.LocalQuickFix;
import com.intellij.openapi.project.Project;
-import com.intellij.psi.PsiManager;
+import com.intellij.pom.references.PomService;
+import com.intellij.psi.PsiElement;
import com.intellij.psi.util.CachedValue;
import com.intellij.psi.util.CachedValueProvider;
import com.intellij.psi.util.CachedValuesManager;
import com.intellij.util.xml.highlighting.ResolvingElementQuickFix;
import gnu.trove.THashMap;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
import java.util.Collection;
import java.util.Map;
return (T) myResolveCache.get(getResolvingScope(context)).getValue().get(s);
}
+ @Override
+ public PsiElement getPsiElement(@Nullable T resolvedValue) {
+ if (resolvedValue == null) return null;
+ DomTarget target = DomTarget.getTarget(resolvedValue);
+ return target == null ? super.getPsiElement(resolvedValue) : PomService.convertToPsi(target);
+ }
+
private static DomElement getResolvingScope(final ConvertContext context) {
final DomElement invocationElement = context.getInvocationElement();
return invocationElement.getManager().getResolvingScope((GenericDomValue)invocationElement);
@Override
public boolean isEquivalentTo(final PsiElement another) {
+
+ if (super.isEquivalentTo(another)) return true;
PsiElement element1 = this;
PsiElement element2 = another;