[jbosstools-commits] JBoss Tools SVN: r42447 - trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink.
jbosstools-commits at lists.jboss.org
jbosstools-commits at lists.jboss.org
Fri Jul 6 18:09:28 EDT 2012
Author: scabanovich
Date: 2012-07-06 18:09:27 -0400 (Fri, 06 Jul 2012)
New Revision: 42447
Modified:
trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlink.java
trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlinkDetector.java
Log:
JBIDE-12295
https://issues.jboss.org/browse/JBIDE-12295
Open-on for variable declared by ui:param.
Modified: trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlink.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlink.java 2012-07-06 22:08:39 UTC (rev 42446)
+++ trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlink.java 2012-07-06 22:09:27 UTC (rev 42447)
@@ -34,10 +34,12 @@
public class ELHyperlink extends AbstractHyperlink{
private ELReference reference;
private ELSegment segment;
+ IOpenableReference openable;
- public ELHyperlink(IDocument document, ELReference reference, ELSegment segment) {
+ public ELHyperlink(IDocument document, ELReference reference, ELSegment segment, IOpenableReference openable) {
this.reference = reference;
this.segment = segment;
+ this.openable = openable;
setDocument(document);
}
@@ -55,10 +57,9 @@
@Override
protected void doHyperlink(IRegion region) {
- IOpenableReference[] openables = segment.getOpenable();
- if(openables.length > 0) {
- if(!openables[0].open()) {
+ if(openable != null) {
+ if(!openable.open()) {
openFileFailed();
}
//If openables.length > 1 - show menu.
@@ -83,9 +84,8 @@
@Override
public String getHyperlinkText() {
- IOpenableReference[] openables = segment.getOpenable();
- if(openables.length > 0) {
- return openables[0].getLabel();
+ if(openable != null) {
+ return openable.getLabel();
}
if(segment instanceof JavaMemberELSegment){
return "Should not get here."; //$NON-NLS-1$
Modified: trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlinkDetector.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlinkDetector.java 2012-07-06 22:08:39 UTC (rev 42446)
+++ trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlinkDetector.java 2012-07-06 22:09:27 UTC (rev 42447)
@@ -10,6 +10,7 @@
******************************************************************************/
package org.jboss.tools.jst.text.ext.hyperlink;
+import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -30,6 +31,7 @@
import org.jboss.tools.common.el.core.resolver.ELResolution;
import org.jboss.tools.common.el.core.resolver.ELResolver;
import org.jboss.tools.common.el.core.resolver.ELSegment;
+import org.jboss.tools.common.el.core.resolver.IOpenableReference;
import org.jboss.tools.jst.web.kb.PageContextFactory;
public class ELHyperlinkDetector extends AbstractHyperlinkDetector{
@@ -44,7 +46,7 @@
ELContext context = PageContextFactory.createPageContext(file);
if(context == null)
return null;
- Set<IHyperlink> links = new HashSet<IHyperlink>();
+ List<IHyperlink> links = new ArrayList<IHyperlink>();
ELReference reference = context.getELReference(region.getOffset());
if(reference != null){
ELInvocationExpression expression = findInvocationExpressionByOffset(reference, region.getOffset());
@@ -56,8 +58,15 @@
ELSegment segment = resolution.findSegmentByOffset(region.getOffset()-reference.getStartPosition());
if(segment != null && segment.isResolved()){
+ IOpenableReference[] openables = segment.getOpenable();
// return new IHyperlink[]{new ELHyperlink(textViewer.getDocument(), reference, segment)};
- links.add(new ELHyperlink(textViewer.getDocument(), reference, segment));
+ if(openables.length == 0) {
+ links.add(new ELHyperlink(textViewer.getDocument(), reference, segment, null));
+ } else {
+ for (IOpenableReference openable: openables) {
+ links.add(new ELHyperlink(textViewer.getDocument(), reference, segment, openable));
+ }
+ }
}
}
@@ -78,8 +87,7 @@
* @return
*/
public static ELInvocationExpression findInvocationExpressionByOffset(ELReference reference, int offset){
- ELExpression[] expressions = reference.getEl();
- for(ELExpression expression : expressions){
+ for(ELExpression expression : reference.getEl()){
if(reference.getStartPosition()+expression.getStartPosition() <= offset && reference.getStartPosition()+expression.getEndPosition() > offset){
ELInvocationExpression invocation = findInvocationExpressionByOffset(reference, expression, offset);
if(invocation != null)
More information about the jbosstools-commits
mailing list