[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