Author: dazarov
Date: 2011-06-24 16:48:45 -0400 (Fri, 24 Jun 2011)
New Revision: 32357
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/GenericInjectedPointHyperlinkDetector.java
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/EventAndObserverMethodHyperlinkDetector.java
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/InjectedPointHyperlinkDetector.java
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/ProducerDisposerHyperlinkDetector.java
Log:
https://issues.jboss.org/browse/JBIDE-9251
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/GenericInjectedPointHyperlinkDetector.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/GenericInjectedPointHyperlinkDetector.java 2011-06-24
19:00:59 UTC (rev 32356)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/GenericInjectedPointHyperlinkDetector.java 2011-06-24
20:48:45 UTC (rev 32357)
@@ -23,9 +23,8 @@
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.ILocalVariable;
import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.core.ResolvedBinaryType;
-import org.eclipse.jdt.internal.core.ResolvedSourceType;
import org.eclipse.jdt.internal.ui.javaeditor.EditorUtility;
import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor;
import org.eclipse.jdt.internal.ui.text.JavaWordFinder;
@@ -99,23 +98,23 @@
elements = ((ICodeAssist)input).codeSelect(wordRegion.getOffset(),
wordRegion.getLength());
if (elements == null)
return null;
+ if(elements.length != 1)
+ return null;
ArrayList<IHyperlink> hyperlinks = new ArrayList<IHyperlink>();
- for (IJavaElement element : elements) {
- int position = 0;
- if(element instanceof ResolvedSourceType || element instanceof ResolvedBinaryType){
- ICompilationUnit cUnit = (ICompilationUnit)input;
- element = cUnit.getElementAt(wordRegion.getOffset());
- if(element == null)
- continue;
-
- if(element instanceof IMethod){
- position = offset;
- }
+ int position = 0;
+ if(elements[0] instanceof IType){
+ ICompilationUnit cUnit = (ICompilationUnit)input;
+ elements[0] = cUnit.getElementAt(wordRegion.getOffset());
+ if(elements[0] == null)
+ return null;
+
+ if(elements[0] instanceof IMethod){
+ position = offset;
}
-
- findInjectedBeans(cdiNature, element, position, file, hyperlinks);
}
+
+ findInjectedBeans(cdiNature, elements[0], position, file, hyperlinks);
if (hyperlinks != null && !hyperlinks.isEmpty()) {
return (IHyperlink[])hyperlinks.toArray(new IHyperlink[hyperlinks.size()]);
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/EventAndObserverMethodHyperlinkDetector.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/EventAndObserverMethodHyperlinkDetector.java 2011-06-24
19:00:59 UTC (rev 32356)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/EventAndObserverMethodHyperlinkDetector.java 2011-06-24
20:48:45 UTC (rev 32357)
@@ -11,7 +11,6 @@
package org.jboss.tools.cdi.text.ext.hyperlink;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
@@ -22,9 +21,8 @@
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IMethod;
import org.eclipse.jdt.core.ISourceRange;
+import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.core.ResolvedBinaryType;
-import org.eclipse.jdt.internal.core.ResolvedSourceType;
import org.eclipse.jdt.internal.ui.javaeditor.EditorUtility;
import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor;
import org.eclipse.jdt.internal.ui.text.JavaWordFinder;
@@ -37,11 +35,9 @@
import org.jboss.tools.cdi.core.CDICoreNature;
import org.jboss.tools.cdi.core.CDIUtil;
import org.jboss.tools.cdi.core.IBean;
-import org.jboss.tools.cdi.core.IBeanMethod;
import org.jboss.tools.cdi.core.ICDIProject;
import org.jboss.tools.cdi.core.IClassBean;
import org.jboss.tools.cdi.core.IInjectionPoint;
-import org.jboss.tools.cdi.core.IInjectionPointParameter;
import org.jboss.tools.cdi.core.IObserverMethod;
import org.jboss.tools.cdi.core.IParameter;
import org.jboss.tools.cdi.text.ext.CDIExtensionsPlugin;
@@ -91,38 +87,38 @@
elements = ((ICodeAssist)input).codeSelect(wordRegion.getOffset(),
wordRegion.getLength());
if (elements == null)
return null;
+ if(elements.length != 1)
+ return null;
ArrayList<IHyperlink> hyperlinks = new ArrayList<IHyperlink>();
- for (IJavaElement element : elements) {
- int position = 0;
- if(element instanceof ResolvedSourceType || element instanceof ResolvedBinaryType){
- ICompilationUnit cUnit = (ICompilationUnit)input;
- element = cUnit.getElementAt(wordRegion.getOffset());
- if(element == null)
- continue;
-
- if(element instanceof IMethod){
- position = offset;
- }
+ int position = 0;
+ if(elements[0] instanceof IType){
+ ICompilationUnit cUnit = (ICompilationUnit)input;
+ elements[0] = cUnit.getElementAt(wordRegion.getOffset());
+ if(elements[0] == null)
+ return null;
+
+ if(elements[0] instanceof IMethod){
+ position = offset;
}
- ICDIProject cdiProject = cdiNature.getDelegate();
- if(cdiProject != null){
- IInjectionPoint injectionPoint = findInjectedPoint(cdiProject, element, position,
file);
- Set<IParameter> param = findObserverParameter(cdiProject, element, offset,
file);
- if(injectionPoint != null){
- Set<IObserverMethod> observerMethods =
cdiProject.resolveObserverMethods(injectionPoint);
+ }
+ ICDIProject cdiProject = cdiNature.getDelegate();
+ if(cdiProject != null){
+ IInjectionPoint injectionPoint = findInjectedPoint(cdiProject, elements[0], position,
file);
+ Set<IParameter> param = findObserverParameter(cdiProject, elements[0], offset,
file);
+ if(injectionPoint != null){
+ Set<IObserverMethod> observerMethods =
cdiProject.resolveObserverMethods(injectionPoint);
- if(observerMethods.size() > 0)
- hyperlinks.add(new ObserverMethodListHyperlink(textViewer, region,
observerMethods, document));
-
- } else if(param != null) {
- Set<IInjectionPoint> events = new HashSet<IInjectionPoint>();
- for (IParameter p: param)
- events.addAll(cdiProject.findObservedEvents(p));
-
- if(events.size() > 0)
- hyperlinks.add(new EventListHyperlink(textViewer, region, events, document));
- }
+ if(observerMethods.size() > 0)
+ hyperlinks.add(new ObserverMethodListHyperlink(textViewer, region, observerMethods,
document));
+
+ } else if(param != null) {
+ Set<IInjectionPoint> events = new HashSet<IInjectionPoint>();
+ for (IParameter p: param)
+ events.addAll(cdiProject.findObservedEvents(p));
+
+ if(events.size() > 0)
+ hyperlinks.add(new EventListHyperlink(textViewer, region, events, document));
}
}
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/InjectedPointHyperlinkDetector.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/InjectedPointHyperlinkDetector.java 2011-06-24
19:00:59 UTC (rev 32356)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/InjectedPointHyperlinkDetector.java 2011-06-24
20:48:45 UTC (rev 32357)
@@ -88,23 +88,23 @@
elements = ((ICodeAssist)input).codeSelect(wordRegion.getOffset(),
wordRegion.getLength());
if (elements == null)
return null;
+ if(elements.length != 1)
+ return null;
ArrayList<IHyperlink> hyperlinks = new ArrayList<IHyperlink>();
- for (IJavaElement element : elements) {
- int position = 0;
- if(element instanceof IType){
- ICompilationUnit cUnit = (ICompilationUnit)input;
- element = cUnit.getElementAt(wordRegion.getOffset());
- if(element == null)
- continue;
-
- if(element instanceof IMethod){
- position = offset;
- }
+ int position = 0;
+ if(elements[0] instanceof IType){
+ ICompilationUnit cUnit = (ICompilationUnit)input;
+ elements[0] = cUnit.getElementAt(wordRegion.getOffset());
+ if(elements[0] == null)
+ return null;
+
+ if(elements[0] instanceof IMethod){
+ position = offset;
}
+ }
- findInjectedBeans(cdiNature, element, position, file, hyperlinks);
- }
+ findInjectedBeans(cdiNature, elements[0], position, file, hyperlinks);
if (hyperlinks != null && !hyperlinks.isEmpty()) {
return (IHyperlink[])hyperlinks.toArray(new IHyperlink[hyperlinks.size()]);
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/ProducerDisposerHyperlinkDetector.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/ProducerDisposerHyperlinkDetector.java 2011-06-24
19:00:59 UTC (rev 32356)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/ProducerDisposerHyperlinkDetector.java 2011-06-24
20:48:45 UTC (rev 32357)
@@ -89,36 +89,35 @@
elements = ((ICodeAssist)input).codeSelect(wordRegion.getOffset(),
wordRegion.getLength());
if (elements == null)
return null;
+ if(elements.length != 1)
+ return null;
ArrayList<IHyperlink> hyperlinks = new ArrayList<IHyperlink>();
- for (IJavaElement element : elements) {
-
- if(element instanceof IType){
- if(CDIConstants.PRODUCES_ANNOTATION_TYPE_NAME.equals(((IType)
element).getFullyQualifiedName())){
- ICompilationUnit cUnit = (ICompilationUnit)input;
- element = cUnit.getElementAt(wordRegion.getOffset());
- if(element == null)
- continue;
- }
+ if(elements[0] instanceof IType){
+ if(CDIConstants.PRODUCES_ANNOTATION_TYPE_NAME.equals(((IType)
elements[0]).getFullyQualifiedName())){
+ ICompilationUnit cUnit = (ICompilationUnit)input;
+ elements[0] = cUnit.getElementAt(wordRegion.getOffset());
+ if(elements[0] == null)
+ return null;
}
-
- if (element instanceof IMethod) {
- for(IBean bean : beans){
- if(bean instanceof IClassBean){
- IProducerMethod producer = getProducer((IClassBean)bean, (IMethod)element);
- if(producer != null){
- List<IMethod> disposers = findDisposerMethods(producer);
- for(IMethod method : disposers){
- hyperlinks.add(new DisposerHyperlink(region, method, document));
+ }
+
+ if (elements[0] instanceof IMethod) {
+ for(IBean bean : beans){
+ if(bean instanceof IClassBean){
+ IProducerMethod producer = getProducer((IClassBean)bean, (IMethod)elements[0]);
+ if(producer != null){
+ List<IMethod> disposers = findDisposerMethods(producer);
+ for(IMethod method : disposers){
+ hyperlinks.add(new DisposerHyperlink(region, method, document));
+ }
+ }else{
+ IBeanMethod disposer = getDisposer((IClassBean)bean, (IMethod)elements[0]);
+ if(disposer != null){
+ List<IMethod> producers = findProducerMethods((IClassBean)bean, disposer);
+ for(IMethod method : producers){
+ hyperlinks.add(new ProducerHyperlink(region, method, document));
}
- }else{
- IBeanMethod disposer = getDisposer((IClassBean)bean, (IMethod)element);
- if(disposer != null){
- List<IMethod> producers = findProducerMethods((IClassBean)bean,
disposer);
- for(IMethod method : producers){
- hyperlinks.add(new ProducerHyperlink(region, method, document));
- }
- }
}
}
}