Author: scabanovich
Date: 2011-07-26 18:51:32 -0400 (Tue, 26 Jul 2011)
New Revision: 33219
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-9087
https://issues.jboss.org/browse/JBIDE-9087
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 2011-07-26
22:40:11 UTC (rev 33218)
+++
trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlink.java 2011-07-26
22:51:32 UTC (rev 33219)
@@ -15,31 +15,20 @@
import java.util.Properties;
import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.core.IField;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IMethod;
-import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.ui.JavaUI;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Region;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PartInitException;
import org.jboss.tools.common.el.core.ELReference;
import org.jboss.tools.common.el.core.resolver.ELSegment;
import org.jboss.tools.common.el.core.resolver.IOpenableReference;
import org.jboss.tools.common.el.core.resolver.JavaMemberELSegment;
import org.jboss.tools.common.el.core.resolver.MessagePropertyELSegment;
import org.jboss.tools.common.model.XModel;
-import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.project.IPromptingProvider;
import org.jboss.tools.common.model.project.PromptingProviderFactory;
-import org.jboss.tools.common.model.util.PositionHolder;
import org.jboss.tools.common.text.ext.hyperlink.AbstractHyperlink;
import org.jboss.tools.common.text.ext.hyperlink.xpl.Messages;
import org.jboss.tools.common.text.ext.util.StructuredModelWrapper;
-import org.jboss.tools.common.text.ext.util.StructuredSelectionHelper;
import org.jboss.tools.common.text.ext.util.Utils;
import org.jboss.tools.jst.text.ext.JSTExtensionsPlugin;
import org.jboss.tools.jst.web.project.list.WebPromptingProvider;
@@ -55,12 +44,10 @@
private ELReference reference;
private ELSegment segment;
- private XModelObject xObject;
- public ELHyperlink(IDocument document, ELReference reference, ELSegment segment,
XModelObject xObject){
+ public ELHyperlink(IDocument document, ELReference reference, ELSegment segment) {
this.reference = reference;
this.segment = segment;
- this.xObject = xObject;
setDocument(document);
}
@@ -123,7 +110,7 @@
p.put(IPromptingProvider.FILE, file);
- List list = provider.getList(xModel, getRequestMethod(p),
p.getProperty("prefix"), p); //$NON-NLS-1$
+ List<?> list = provider.getList(xModel, getRequestMethod(p),
p.getProperty("prefix"), p); //$NON-NLS-1$
if (list != null && list.size() >= 1) {
openFileInEditor((String)list.get(0));
return;
@@ -133,22 +120,6 @@
openFileFailed();
}
return;
- }else if(xObject != null){
- IRegion attrRegion = null;
- PositionHolder h = PositionHolder.getPosition(xObject, null);
- h.update();
- if (h.getStart() == -1 || h.getEnd() == -1) {
- openFileFailed();
- return;
- }
- attrRegion = new Region(h.getStart(), h.getEnd() - h.getStart());
- IFile file = (IFile)xObject.getAdapter(IFile.class);
- if (file != null) {
- if (openFileInEditor(file) != null) {
- StructuredSelectionHelper.setSelectionAndRevealInActiveEditor(attrRegion);
- return;
- }
- }
}
openFileFailed();
@@ -211,24 +182,12 @@
@Override
public String getHyperlinkText() {
+ IOpenableReference[] openables = segment.getOpenable();
+ if(openables.length > 0) {
+ return openables[0].getLabel();
+ }
if(segment instanceof JavaMemberELSegment){
- IJavaElement javaElement = ((JavaMemberELSegment) segment).getJavaElement();
- String name = ""; //$NON-NLS-1$
- IType type = null;
- if(javaElement instanceof IType){
- name = javaElement.getElementName();
- type = (IType)javaElement;
-
- }else if(javaElement instanceof IMethod){
- type = ((IMethod) javaElement).getDeclaringType();
- name =
type.getElementName()+"."+javaElement.getElementName()+"()";
//$NON-NLS-1$ //$NON-NLS-2$
- }else if(javaElement instanceof IField){
- type = ((IField) javaElement).getDeclaringType();
- name = type.getElementName()+"."+javaElement.getElementName();
//$NON-NLS-1$
- }
- if(type != null)
- name += " - "+type.getPackageFragment().getElementName(); //$NON-NLS-1$
- return MessageFormat.format(Messages.Open, name);
+ return "Should not get here."; //$NON-NLS-1$
}else if(segment instanceof MessagePropertyELSegment){
String baseName = ((MessagePropertyELSegment)segment).getBaseName();
String propertyName = ((MessagePropertyELSegment)segment).isBundle() ? null :
trimQuotes(((MessagePropertyELSegment)segment).getToken().getText());
@@ -236,8 +195,6 @@
return MessageFormat.format(Messages.Open, baseName);
return MessageFormat.format(Messages.OpenBundleProperty, propertyName, baseName);
- }else if(xObject != null){
- return Messages.OpenJsf2CCAttribute;
}
return ""; //$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 2011-07-26
22:40:11 UTC (rev 33218)
+++
trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlinkDetector.java 2011-07-26
22:51:32 UTC (rev 33219)
@@ -13,7 +13,6 @@
import java.util.List;
import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.jface.text.hyperlink.AbstractHyperlinkDetector;
@@ -29,10 +28,6 @@
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.JavaMemberELSegment;
-import org.jboss.tools.common.el.core.resolver.MessagePropertyELSegment;
-import org.jboss.tools.common.model.XModelObject;
-import org.jboss.tools.common.model.util.EclipseResourceUtil;
import org.jboss.tools.jst.web.kb.PageContextFactory;
public class ELHyperlinkDetector extends AbstractHyperlinkDetector{
@@ -59,25 +54,7 @@
ELSegment segment =
resolution.findSegmentByOffset(region.getOffset()-reference.getStartPosition());
if(segment != null && segment.isResolved()){
- if(segment instanceof JavaMemberELSegment || segment instanceof
MessagePropertyELSegment){
- return new IHyperlink[]{new ELHyperlink(textViewer.getDocument(), reference,
segment, null)};
- }else{
- StringBuffer sbBuffer = new StringBuffer();
- for (ELSegment s : resolution.getSegments()) {
- sbBuffer.append(s.getToken().getText());
- if (s == segment) {
- break;
- }
- sbBuffer.append('.'); // Use default separator for ELs here
- }
-
- String text = sbBuffer.toString();
- XModelObject xObject = findJSF2CCAttributeXModelObject(text, file);
- if (xObject != null) {
- return new IHyperlink[]{new ELHyperlink(textViewer.getDocument(), reference,
segment, xObject)};
- }
- }
-
+ return new IHyperlink[]{new ELHyperlink(textViewer.getDocument(), reference,
segment)};
}
}
@@ -119,29 +96,4 @@
return null;
}
- static String[] vs = {"cc.attrs", "compositeComponent.attrs"};
//$NON-NLS-1$ //$NON-NLS-2$
-
- public static XModelObject findJSF2CCAttributeXModelObject(String varName, IFile file)
{
- XModelObject xModelObject = EclipseResourceUtil.createObjectForResource(file);
- if(xModelObject == null) return null;
- if(!"FileJSF2Component".equals(xModelObject.getModelEntity().getName()))
return null;
-
- IJavaProject javaProject = EclipseResourceUtil.getJavaProject(file.getProject());
- XModelObject is = xModelObject.getChildByPath("Interface");
- if(is != null && javaProject != null) {
- for (int i = 0; i < vs.length; i++) {
- if (vs[i].equals(varName)) return is;
- }
- XModelObject[] cs = is.getChildren("JSF2ComponentAttribute");
-
- for (int i = 0; i < cs.length; i++) {
- String name = cs[i].getAttributeValue("name");
- String[] names = {vs[0] + "." + name, vs[1] + "." + name};
- for (String n: names) {
- if (n.equals(varName)) return cs[i];
- }
- }
- }
- return null;
- }
}