[jbosstools-commits] JBoss Tools SVN: r30822 - trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Mon Apr 25 15:30:53 EDT 2011


Author: dazarov
Date: 2011-04-25 15:30:53 -0400 (Mon, 25 Apr 2011)
New Revision: 30822

Modified:
   trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink/JsfJSPTagNameHyperlinkDetector.java
   trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink/TLDTagHyperlink.java
Log:
https://issues.jboss.org/browse/JBIDE-8781

Modified: trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink/JsfJSPTagNameHyperlinkDetector.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink/JsfJSPTagNameHyperlinkDetector.java	2011-04-25 19:25:38 UTC (rev 30821)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink/JsfJSPTagNameHyperlinkDetector.java	2011-04-25 19:30:53 UTC (rev 30822)
@@ -22,6 +22,7 @@
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
 import org.jboss.tools.common.core.resources.XModelObjectEditorInput;
 import org.jboss.tools.common.el.core.resolver.ELContext;
+import org.jboss.tools.common.model.XModelObject;
 import org.jboss.tools.common.text.ext.util.StructuredModelWrapper;
 import org.jboss.tools.common.text.ext.util.Utils;
 import org.jboss.tools.jst.jsp.jspeditor.JSPTextEditor;
@@ -78,7 +79,7 @@
 				IComponent[] components = PageProcessor.getInstance().getComponents(query, (IPageContext)context);
 				ArrayList<IHyperlink> hyperlinks = new ArrayList<IHyperlink>();
 				for(IComponent component : components){
-					if(component instanceof TLDTag || component instanceof FaceletTag){
+					if(validateComponent(component)){
 						TLDTagHyperlink link = new TLDTagHyperlink((AbstractComponent)component, reg);
 						link.setDocument(textViewer.getDocument());
 						hyperlinks.add(link);
@@ -93,6 +94,21 @@
 		return parse(textViewer.getDocument(), xmlDocument, region);
 	}
 	
+	private boolean validateComponent(IComponent component){
+		if(component instanceof TLDTag || component instanceof FaceletTag){
+			IFile file = TLDTagHyperlink.getFile((AbstractComponent)component);
+			
+			if(file != null && file.getFullPath() != null && file.getFullPath().toString().endsWith(".jar")) {
+				XModelObject xmodelObject = TLDTagHyperlink.getXModelObject((AbstractComponent)component);
+				if(xmodelObject != null)
+					if(TLDTagHyperlink.getFileName(xmodelObject) != null)
+						return true;
+			}else if(file != null)
+				return true;
+		}
+		return false;
+	}
+	
 	private void sortHyperlinks(ArrayList<IHyperlink> hyperlinks){
 		for(IHyperlink link : hyperlinks){
 			if(link instanceof TLDTagHyperlink){

Modified: trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink/TLDTagHyperlink.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink/TLDTagHyperlink.java	2011-04-25 19:25:38 UTC (rev 30821)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink/TLDTagHyperlink.java	2011-04-25 19:30:53 UTC (rev 30822)
@@ -32,27 +32,42 @@
 	
 	public TLDTagHyperlink(AbstractComponent tag, IRegion region){
 		this.tag = tag;
+		this.region = region;
+		
+		IFile file = getFile(tag);
+		
+		if(file != null && file.getFullPath() != null && file.getFullPath().toString().endsWith(".jar")) {
+			xmodelObject = getXModelObject(tag);
+			if(xmodelObject != null)
+				xmodelObjectName = getFileName(xmodelObject);
+		}
+	}
+	
+	public static IFile getFile(AbstractComponent tag){
 		ITagLibrary tagLib = tag.getTagLib();
-		this.region = region;
 		IResource r = tagLib.getResource();
-		if(r instanceof IFile) {
-			IFile file = (IFile)r;
-			if(file.getFullPath() != null && file.getFullPath().toString().endsWith(".jar")) {
-				Object id = tag.getId();
-				if(id instanceof XModelObject) {
-					xmodelObject = (XModelObject)id;
-					FileAnyImpl fai = null;
-					XModelObject f = xmodelObject;
-					while(f != null && f.getFileType() != XModelObject.FILE) f = f.getParent();
-					if(f instanceof FileAnyImpl) fai = (FileAnyImpl)f;
-					xmodelObjectName = FileAnyImpl.toFileName(fai);
-				}
-			}
-		}
+		if(r instanceof IFile)
+			return (IFile)r;
 		
+		return null;
+	}
+	
+	public static XModelObject getXModelObject(AbstractComponent tag){
+		Object id = tag.getId();
+		if(id instanceof XModelObject)
+			return (XModelObject)id;
 		
+		return null;
 	}
 	
+	public static String getFileName(XModelObject xmodelObject){
+		FileAnyImpl fai = null;
+		XModelObject f = xmodelObject;
+		while(f != null && f.getFileType() != XModelObject.FILE) f = f.getParent();
+		if(f instanceof FileAnyImpl) fai = (FileAnyImpl)f;
+		return FileAnyImpl.toFileName(fai);
+	}
+	
 	public AbstractComponent getComponent(){
 		return tag;
 	}
@@ -63,7 +78,7 @@
 
 	@Override
 	protected void doHyperlink(IRegion region) {
-		if(xmodelObject != null){
+		if(xmodelObjectName != null){
 			int q = FindObjectHelper.findModelObject(xmodelObject, FindObjectHelper.IN_EDITOR_ONLY);
 			if(q == 1) {
 				openFileFailed();



More information about the jbosstools-commits mailing list