[jbosstools-commits] JBoss Tools SVN: r6729 - trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Thu Mar 6 15:28:21 EST 2008


Author: vrubezhny
Date: 2008-03-06 15:28:21 -0500 (Thu, 06 Mar 2008)
New Revision: 6729

Modified:
   trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/ElVarSearcher.java
Log:
http://jira.jboss.org/jira/browse/JBIDE-509 intelligent navigation support for seam variable names

Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/ElVarSearcher.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/ElVarSearcher.java	2008-03-06 20:25:42 UTC (rev 6728)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/ElVarSearcher.java	2008-03-06 20:28:21 UTC (rev 6729)
@@ -18,6 +18,7 @@
 import org.eclipse.jface.text.ITextViewer;
 import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
 import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
 import org.jboss.tools.seam.core.ISeamProject;
 import org.jboss.tools.seam.core.SeamCorePlugin;
 import org.w3c.dom.Element;
@@ -120,12 +121,21 @@
 			Element element = (Element)node;
 			String var = element.getAttribute(VAR_ATTRIBUTE_NAME);
 			if(var!=null) {
+				int declOffset = 0;
+				int declLength = 0;
+				Node varAttr = element.getAttributeNode(VAR_ATTRIBUTE_NAME); 
+				if (varAttr instanceof IDOMAttr) {
+					int varNameStart = ((IDOMAttr)varAttr).getNameRegionStartOffset();
+					int varNameEnd = ((IDOMAttr)varAttr).getNameRegionEndOffset();
+					declOffset = varNameStart;
+					declLength = varNameEnd - varNameStart;
+				}
 				var = var.trim();
 				if(!"".equals(var)) {
 					String value = element.getAttribute(VALUE_ATTRIBUTE_NAME);
 					if(value!=null) {
 						value = value.trim();
-						Var newVar = new Var(var, value);
+						Var newVar = new Var(var, value, declOffset, declLength);
 						if(newVar.getElToken()!=null) {
 							return newVar;
 						}
@@ -194,19 +204,32 @@
 		ELToken elToken;
 		String resolvedValue;
 		ELToken resolvedElToken;
-
+		int declOffset;
+		int declLength;
+		
 		/**
 		 * Constructor
 		 * @param name - value of "var" attribute. 
 		 * @param value - value of "value" attribute.
 		 */
-		public Var(String name, String value) {
+		public Var(String name, String value, int declOffset, int declLength) {
 			super();
 			this.name = name;
 			this.value = value;
 			elToken = parseEl(value);
+			this.declOffset = declOffset;
+			this.declLength = declLength;
 		}
 
+		/**
+		 * Constructor
+		 * @param name - value of "var" attribute. 
+		 * @param value - value of "value" attribute.
+		 */
+		public Var(String name, String value) {
+			this(name, value, 0, 0);
+		}		
+		
 		private ELToken parseEl(String el) {
 			if(el.length()>3 && el.startsWith("#{") && el.endsWith("}")) {
 				String elBody = el.substring(0, el.length()-1).substring(2);
@@ -273,5 +296,20 @@
 		public String getResolvedValue() {
 			return resolvedValue;
 		}
+		
+		/**
+		 * @return offset of the var declaration
+		 */
+		public int getDeclarationOffset() {
+			return declOffset;
+		}
+		
+		/**
+		 * @return length of the var declaration
+		 */
+		public int getDeclarationLength() {
+			return declLength;
+		}
+		
 	}
 }
\ No newline at end of file




More information about the jbosstools-commits mailing list