Author: scabanovich
Date: 2011-05-04 13:18:23 -0400 (Wed, 04 May 2011)
New Revision: 31067
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigTagNameHyperlink.java
Log:
JBIDE-8841
https://issues.jboss.org/browse/JBIDE-8841
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigTagNameHyperlink.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigTagNameHyperlink.java 2011-05-04
16:21:53 UTC (rev 31066)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.seam.text.ext/src/org/jboss/tools/cdi/seam/text/ext/hyperlink/SeamConfigTagNameHyperlink.java 2011-05-04
17:18:23 UTC (rev 31067)
@@ -27,6 +27,7 @@
import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.text.Region;
import org.eclipse.ui.PartInitException;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
import org.jboss.tools.cdi.core.CDICoreNature;
import org.jboss.tools.cdi.core.CDICorePlugin;
@@ -208,11 +209,22 @@
if (n == null || !(n instanceof IDOMElement)) return null;
- IDOMElement elem = (IDOMElement)n;
- String tagName = elem.getTagName();
- int start = elem.getStartOffset();
- final int nameStart = start + (elem.isEndTag() ? "</" :
"<").length(); //$NON-NLS-1$ //$NON-NLS-2$
- final int nameEnd = nameStart + tagName.length();
+ int start, nameStart, nameEnd;
+
+ if(n instanceof IDOMElement) {
+ IDOMElement elem = (IDOMElement)n;
+ String tagName = elem.getTagName();
+ start = elem.getStartOffset();
+ nameStart = start + (elem.isEndTag() ? "</" :
"<").length(); //$NON-NLS-1$ //$NON-NLS-2$
+ nameEnd = nameStart + tagName.length();
+ } else if (n instanceof IDOMAttr) {
+ String attrName = n.getNodeName();
+ start = ((IDOMAttr)n).getStartOffset();
+ nameStart = start;
+ nameEnd = start + attrName.length();
+ } else {
+ return null;
+ }
if (nameStart > offset || nameEnd <= offset) return null;