[jbosstools-commits] JBoss Tools SVN: r42445 - in trunk/common/plugins/org.jboss.tools.common.el.core: src/org/jboss/tools/common/el/core and 2 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Fri Jul 6 18:06:00 EDT 2012


Author: scabanovich
Date: 2012-07-06 18:05:56 -0400 (Fri, 06 Jul 2012)
New Revision: 42445

Modified:
   trunk/common/plugins/org.jboss.tools.common.el.core/META-INF/MANIFEST.MF
   trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ElCoreMessages.java
   trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ca/AbstractELCompletionEngine.java
   trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/messages.properties
   trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ELSegmentImpl.java
   trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ElVarSearcher.java
   trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/JavaMemberELSegmentImpl.java
   trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/Var.java
Log:
JBIDE-12295
https://issues.jboss.org/browse/JBIDE-12295
Open-on for variable declared by ui:param.

Modified: trunk/common/plugins/org.jboss.tools.common.el.core/META-INF/MANIFEST.MF
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.el.core/META-INF/MANIFEST.MF	2012-07-06 17:59:16 UTC (rev 42444)
+++ trunk/common/plugins/org.jboss.tools.common.el.core/META-INF/MANIFEST.MF	2012-07-06 22:05:56 UTC (rev 42445)
@@ -26,6 +26,7 @@
  org.eclipse.core.resources;bundle-version="3.7.100",
  org.eclipse.jdt.core;bundle-version="3.7.0",
  org.eclipse.core.runtime;bundle-version="3.7.0",
- org.jboss.tools.common
+ org.jboss.tools.common,
+ org.eclipse.ui.ide
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ClassPath: .

Modified: trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ElCoreMessages.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ElCoreMessages.java	2012-07-06 17:59:16 UTC (rev 42444)
+++ trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ElCoreMessages.java	2012-07-06 22:05:56 UTC (rev 42445)
@@ -37,6 +37,7 @@
 	public static String Open;
 	public static String OpenBundle;
 	public static String OpenBundleProperty;
+	public static String OpenVarDefinition;
 
 	static {
 		// initialize resource bundle

Modified: trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ca/AbstractELCompletionEngine.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ca/AbstractELCompletionEngine.java	2012-07-06 17:59:16 UTC (rev 42444)
+++ trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ca/AbstractELCompletionEngine.java	2012-07-06 22:05:56 UTC (rev 42445)
@@ -318,6 +318,7 @@
 						sufixIsNotResolved = !segment.isResolved();
 					}
 					firstSegment = segment;
+					((ELSegmentImpl)firstSegment).setVar(var);
 					((ELSegmentImpl)firstSegment).setToken(firstOriginalToken);
 					((ELSegmentImpl)firstSegment).setResolved(!sufixIsNotResolved);
 //					if(firstSegment instanceof JavaMemberELSegmentImpl) {

Modified: trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/messages.properties
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/messages.properties	2012-07-06 17:59:16 UTC (rev 42444)
+++ trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/messages.properties	2012-07-06 22:05:56 UTC (rev 42445)
@@ -31,3 +31,4 @@
 
 OpenBundle=Open bundle ''{0}''
 OpenBundleProperty=Open property ''{0}'' of bundle ''{1}''
+OpenVarDefinition=Open Definition of ''{0}''

Modified: trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ELSegmentImpl.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ELSegmentImpl.java	2012-07-06 17:59:16 UTC (rev 42444)
+++ trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ELSegmentImpl.java	2012-07-06 22:05:56 UTC (rev 42445)
@@ -10,10 +10,21 @@
  ******************************************************************************/ 
 package org.jboss.tools.common.el.core.resolver;
 
+import java.text.MessageFormat;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IResource;
+import org.eclipse.jface.text.TextSelection;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.ide.IDE;
+import org.jboss.tools.common.el.core.ELCorePlugin;
+import org.jboss.tools.common.el.core.ElCoreMessages;
 import org.jboss.tools.common.el.core.parser.LexicalToken;
 import org.jboss.tools.common.text.ITextSourceReference;
 
@@ -28,6 +39,7 @@
 	protected boolean resolved = false;
 	protected boolean validatable = true;
 	protected List<IVariable> variables = new ArrayList<IVariable>();
+	protected Var var = null;
 
 	public ELSegmentImpl(LexicalToken token) {
 		this.token = token;
@@ -59,13 +71,44 @@
 		}
 		return sourceReference;
 	}
-
+	
 	/**
 	 * Default empty implementation. Subclasses should override this method.
 	 * 
 	 * @return
 	 */
 	public IOpenableReference[] getOpenable() {
+		if(var != null) {
+			IOpenableReference result = new IOpenableReference() {
+				@Override
+				public boolean open() {
+					IEditorPart part = null;
+					IWorkbenchWindow window = ELCorePlugin.getDefault().getWorkbench().getActiveWorkbenchWindow();
+					if (window == null)	return false;
+					IWorkbenchPage page = window.getActivePage();
+					try {
+						part = IDE.openEditor(page, var.getFile());
+					} catch (PartInitException e) {
+						ELCorePlugin.getDefault().logError(e);
+					}
+					if(part != null) {
+						part.getEditorSite().getSelectionProvider().setSelection(new TextSelection(var.getDeclarationOffset(), var.getDeclarationLength()));
+					}
+					return false;
+				}
+
+				@Override
+				public String getLabel() {
+					return MessageFormat.format(ElCoreMessages.OpenVarDefinition, var.getName());
+				}
+
+				@Override
+				public Image getImage() {
+					return null;
+				}
+			};
+			return new IOpenableReference[]{result};
+		}
 		return new IOpenableReference[0];
 	}
 
@@ -148,4 +191,12 @@
 	public void setValidatable(boolean validatable) {
 		this.validatable = validatable;
 	}
+
+	public void setVar(Var var) {
+		this.var = var;
+	}
+
+	public Var getVar() {
+		return var;
+	}
 }
\ No newline at end of file

Modified: trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ElVarSearcher.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ElVarSearcher.java	2012-07-06 17:59:16 UTC (rev 42444)
+++ trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ElVarSearcher.java	2012-07-06 22:05:56 UTC (rev 42445)
@@ -171,7 +171,9 @@
 	public static List<Var> findAllVars(ELContext context, int offset, ELResolver resolver) {
 		Node node = getNode(context.getResource(), offset);
 		if(node!=null) {
-			return findAllVars(node, resolver.getParserFactory());
+			List<Var> result = findAllVars(node, resolver.getParserFactory());
+			for (Var v: result) v.setFile(context.getResource());
+			return result;
 		}
 		return Collections.emptyList();
 	}
@@ -184,7 +186,9 @@
 	public static List<Var> findAllVars(IFile file, int offset, ELParserFactory factory) {
 		Node node = getNode(file, offset);
 		if(node!=null) {
-			return findAllVars(node, factory);
+			List<Var> result = findAllVars(node, factory);
+			for (Var v: result) v.setFile(file);
+			return result;
 		}
 		return Collections.emptyList();
 	}
@@ -234,7 +238,9 @@
 	public Var findVar(IFile file, int offset) {
 		Node node = getNode(file, offset);
 		if(node!=null) {
-			return findVar(node);
+			Var result = findVar(node);
+			if(result != null) result.setFile(file);
+			return result;
 		}
 		return null;
 	}

Modified: trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/JavaMemberELSegmentImpl.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/JavaMemberELSegmentImpl.java	2012-07-06 17:59:16 UTC (rev 42444)
+++ trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/JavaMemberELSegmentImpl.java	2012-07-06 22:05:56 UTC (rev 42445)
@@ -171,6 +171,7 @@
 	}
 
 	public IOpenableReference[] getOpenable() {
+		IOpenableReference[] os = super.getOpenable();
 		if(getJavaElement() != null && getJavaElement().exists()) {
 			IOpenableReference openable = new IOpenableReference() {
 				@Override
@@ -211,9 +212,10 @@
 					return null;
 				}
 			};
+			if(os.length == 1) return new IOpenableReference[]{os[0], openable};
 			return new IOpenableReference[]{openable};
 		}
-		return new IOpenableReference[0];
+		return os;
 	}
 
 }
\ No newline at end of file

Modified: trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/Var.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/Var.java	2012-07-06 17:59:16 UTC (rev 42444)
+++ trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/Var.java	2012-07-06 22:05:56 UTC (rev 42445)
@@ -12,6 +12,7 @@
 
 import java.util.List;
 
+import org.eclipse.core.resources.IFile;
 import org.eclipse.jface.text.Region;
 import org.jboss.tools.common.el.core.model.ELExpression;
 import org.jboss.tools.common.el.core.model.ELInstance;
@@ -24,6 +25,7 @@
  * @author Alexey Kazakov
  */
 public class Var {
+	IFile file;
 	String name;
 	String value;
 	ELExpression elToken;
@@ -160,4 +162,12 @@
 	public void setRegion(Region region) {
 		this.region = region;
 	}
+
+	public void setFile(IFile file) {
+		this.file = file;
+	}
+
+	public IFile getFile() {
+		return file;
+	}
 }
\ No newline at end of file



More information about the jbosstools-commits mailing list