Author: dazarov
Date: 2009-10-08 08:47:30 -0400 (Thu, 08 Oct 2009)
New Revision: 17974
Modified:
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/refactoring/RefactorSearcher.java
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ELSegmentImpl.java
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamELReferencesQueryParticipant.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-4771
Modified:
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/refactoring/RefactorSearcher.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/refactoring/RefactorSearcher.java 2009-10-08
12:39:31 UTC (rev 17973)
+++
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/refactoring/RefactorSearcher.java 2009-10-08
12:47:30 UTC (rev 17974)
@@ -24,7 +24,6 @@
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IMethod;
-import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.search.IJavaSearchScope;
import org.eclipse.jdt.internal.ui.text.FastJavaPartitionScanner;
import org.eclipse.jdt.ui.text.IJavaPartitions;
@@ -60,7 +59,6 @@
import org.jboss.tools.common.el.core.resolver.JavaMemberELSegment;
import org.jboss.tools.common.el.core.resolver.SimpleELContext;
import org.jboss.tools.common.el.core.resolver.Var;
-import org.jboss.tools.common.model.util.EclipseJavaUtil;
import org.jboss.tools.common.model.util.EclipseResourceUtil;
import org.jboss.tools.common.util.FileUtil;
import org.w3c.dom.Node;
@@ -282,8 +280,8 @@
for(ELInvocationExpression ie : instance.getExpression().getInvocations()){
ELInvocationExpression expression = findComponentReference(ie);
if(expression != null){
- ELInvocationExpression left = expression.getLeft();
- checkMatch(file, left, offset+getOffset(left), offset+getOffset(expression),
getLength(expression));
+ //ELInvocationExpression left = expression.getLeft();
+ checkMatch(file, expression, getOffset(expression), offset+getOffset(expression),
getLength(expression));
}
}
}
@@ -424,7 +422,7 @@
return false;
}
- private void resolve(IFile file, ELExpression operand, int leftOffset,
+ private void resolve(IFile file, ELExpression operand, int localOffset,
int offset, int length) {
ELResolver[] resolvers = ELResolverFactoryManager.getInstance()
.getResolvers(file);
@@ -438,28 +436,23 @@
context.setResource(file);
context.setElResolvers(resolvers);
- List<Var> vars = ElVarSearcher.findAllVars(context, leftOffset,
+ List<Var> vars = ElVarSearcher.findAllVars(context, localOffset,
resolver);
context.setVars(vars);
ELResolution resolution = resolver.resolve(context, operand);
- ELSegment segment = resolution.findSegmentByOffset(leftOffset);
+ ELSegment segment = resolution.findSegmentByOffset(localOffset);
if (segment != null && segment instanceof JavaMemberELSegment
&& segment.isResolved()) {
JavaMemberELSegment javaSegment = (JavaMemberELSegment) segment;
IJavaElement segmentJavaElement = javaSegment.getJavaElement();
- if (javaElement instanceof IType
- && segmentJavaElement instanceof IType) {
- if (EclipseJavaUtil.isDerivedClass(
- ((IType) javaElement).getFullyQualifiedName(),
- ((IType) segmentJavaElement).getFullyQualifiedName(),
- file.getProject()))
- match(file, offset, length, true);
- } else if (javaElement.equals(segmentJavaElement))
+ if (javaElement.equals(segmentJavaElement)){
match(file, offset, length, true);
+ return;
+ }
}
}
match(file, offset, length, false);
Modified:
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ELSegmentImpl.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ELSegmentImpl.java 2009-10-08
12:39:31 UTC (rev 17973)
+++
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ELSegmentImpl.java 2009-10-08
12:47:30 UTC (rev 17974)
@@ -39,6 +39,16 @@
* @see org.jboss.tools.common.el.core.resolver.ELSegment#getSourceReference()
*/
public ITextSourceReference getSourceReference() {
+ if(sourceReference==null) {
+ sourceReference = new ITextSourceReference() {
+ public int getStartPosition() {
+ return token.getStart();
+ }
+ public int getLength() {
+ return token.getLength();
+ }
+ };
+ }
return sourceReference;
}
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamELReferencesQueryParticipant.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamELReferencesQueryParticipant.java 2009-10-08
12:39:31 UTC (rev 17973)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamELReferencesQueryParticipant.java 2009-10-08
12:47:30 UTC (rev 17974)
@@ -187,8 +187,13 @@
@Override
protected void match(IFile file, int offset, int length, boolean resolved) {
- Match match = new Match(new FileWrapper(file, resolved), offset, length);
- requestor.reportMatch(match);
+ if(resolved){
+ Match match = new Match(file, offset, length);
+ requestor.reportMatch(match);
+ }else{
+ Match match = new Match(new FileWrapper(file, resolved), offset, length);
+ requestor.reportMatch(match);
+ }
}
protected ELInvocationExpression findComponentReference(ELInvocationExpression
invocationExpression){