JBoss Tools SVN: r42455 - trunk/documentation/guides/JBDS_Release_Notes/en-US.
by jbosstools-commits@lists.jboss.org
Author: irooskov(a)redhat.com
Date: 2012-07-08 20:44:45 -0400 (Sun, 08 Jul 2012)
New Revision: 42455
Modified:
trunk/documentation/guides/JBDS_Release_Notes/en-US/Article_Info.xml
trunk/documentation/guides/JBDS_Release_Notes/en-US/Fixed_Issues.xml
Log:
updated with new issue
Modified: trunk/documentation/guides/JBDS_Release_Notes/en-US/Article_Info.xml
===================================================================
--- trunk/documentation/guides/JBDS_Release_Notes/en-US/Article_Info.xml 2012-07-06 23:59:41 UTC (rev 42454)
+++ trunk/documentation/guides/JBDS_Release_Notes/en-US/Article_Info.xml 2012-07-09 00:44:45 UTC (rev 42455)
@@ -8,7 +8,7 @@
<productname>JBoss Developer Studio</productname>
<productnumber>5.0</productnumber>
<edition>5.0.1</edition>
- <pubsnumber>2</pubsnumber>
+ <pubsnumber>3</pubsnumber>
<abstract>
<para>
These release notes contain important information related to the JBoss Developer Studio. New features, known issues, resources, and other current issues are addressed here.
Modified: trunk/documentation/guides/JBDS_Release_Notes/en-US/Fixed_Issues.xml
===================================================================
--- trunk/documentation/guides/JBDS_Release_Notes/en-US/Fixed_Issues.xml 2012-07-06 23:59:41 UTC (rev 42454)
+++ trunk/documentation/guides/JBDS_Release_Notes/en-US/Fixed_Issues.xml 2012-07-09 00:44:45 UTC (rev 42455)
@@ -3,43 +3,48 @@
<title>
Enhancements and fixed issues in version 5.0.1
</title>
- <variablelist>
- <!-- JBIDE-12177 -->
- <varlistentry>
- <term>
- <ulink url="https://issues.jboss.org/jira/browse/JBIDE-12177">JBIDE-12177</ulink>
- </term>
- <listitem>
- <para>
- The feature to auto-complete code tags was broken in the Visual Editor. When attempting to auto-complete a code tag, invalid code would be generated. This has been corrected by modifying the content assist file XmlTagCompletionProposalComputer.java to ensure partner code tags are generated correctly when using auto-completion.
- </para>
- </listitem>
- </varlistentry>
-
- <!-- JBIDE-12158 -->
- <varlistentry>
- <term>
- <ulink url="https://issues.jboss.org/jira/browse/JBIDE-12158">JBIDE-12158</ulink>
- </term>
- <listitem>
- <para>
- An issue existed when creating a Dynamic Web Project and modifying the project to include the JBoss Core Portlet facet to the project. The portlet-api library was not detected in the target runtime, forcing the user to manually specify it via the user library. This has been corrected by adding the option, Portlet Target Runtime Provider, to the combo-box on the JBoss Portlet Capabilities wizard page.
- </para>
- </listitem>
-</varlistentry>
+<variablelist>
+ <!-- JBIDE-12177 -->
+ <varlistentry>
+ <term><ulink url="https://issues.jboss.org/jira/browse/JBIDE-12177">JBIDE-12177</ulink></term>
+ <listitem>
+ <para>
+ The feature to auto-complete code tags was broken in the Visual Editor. When attempting to auto-complete a code tag, invalid code would be generated. This has been corrected by modifying the content assist file XmlTagCompletionProposalComputer.java to ensure partner code tags are generated correctly when using auto-completion.
+ </para>
+ </listitem>
+ </varlistentry>
+ <!-- JBIDE-12158 -->
+ <varlistentry>
+ <term><ulink url="https://issues.jboss.org/jira/browse/JBIDE-12158">JBIDE-12158</ulink></term>
+ <listitem>
+ <para>
+ An issue existed when creating a Dynamic Web Project and modifying the project to include the JBoss Core Portlet facet to the project. The portlet-api library was not detected in the target runtime, forcing the user to manually specify it via the user library. This has been corrected by adding the option, Portlet Target Runtime Provider, to the combo-box on the JBoss Portlet Capabilities wizard page.
+ </para>
+ </listitem>
+ </varlistentry>
+
<!-- JBIDE-12071 -->
<varlistentry>
- <term>
- <ulink url="https://issues.jboss.org/jira/browse/JBIDE-12071">JBIDE-12071</ulink>
- </term>
- <listitem>
- <para>
+ <term><ulink url="https://issues.jboss.org/jira/browse/JBIDE-12071">JBIDE-12071</ulink></term>
+ <listitem>
+ <para>
Previously, when a user performed a drag-and-drop action to publish a project it was ignored. This occurred because the code to publish a project only accepted direct user-initiated actions and not those considered to be a shell action. The ExpressPublishMethod.java and ExpressBehaviour.java files have been updated to handle shell actions correctly. As a result, incremental publishes initiated by the user are now also handled correctly.
</para>
</listitem>
</varlistentry>
+ <!-- JBIDE-12046 -->
+ <varlistentry>
+ <term><ulink url="https://issues.jboss.org/jira/browse/JBIDE-12046">JBIDE-12046</ulink></term>
+ <listitem>
+ <para>
+ When a user tried to start or deploy to a remote server that was no longer reachable, various errors would be returned, however no adequate description of the issue was communicated. This issue has been resolved by returning a descriptive error when the remote server is unreachable and checking for file system responsiveness before attempting to publish.
+ </para>
+ </listitem>
+ </varlistentry>
+
</variablelist>
+
</section>
13 years, 9 months
JBoss Tools SVN: r42454 - trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2012-07-06 19:59:41 -0400 (Fri, 06 Jul 2012)
New Revision: 42454
Modified:
trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/TempJavaProblem.java
trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/TempJavaProblemAnnotation.java
Log:
https://issues.jboss.org/browse/JBIDE-10611 As-you-type CDI validation
Modified: trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/TempJavaProblem.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/TempJavaProblem.java 2012-07-06 23:57:26 UTC (rev 42453)
+++ trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/TempJavaProblem.java 2012-07-06 23:59:41 UTC (rev 42454)
@@ -17,7 +17,7 @@
import org.jboss.tools.common.validation.ValidationMessage;
/**
- * @author Alexey Kazakov
+ * @author Victor V. Rubezhny
*/
public class TempJavaProblem extends CategorizedProblem {
// TODO for dazarov. Why are you using EL marker type for all the java problems?
Modified: trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/TempJavaProblemAnnotation.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/TempJavaProblemAnnotation.java 2012-07-06 23:57:26 UTC (rev 42453)
+++ trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/TempJavaProblemAnnotation.java 2012-07-06 23:59:41 UTC (rev 42454)
@@ -16,7 +16,7 @@
import org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.ProblemAnnotation;
/**
- * @author Alexey Kazakov
+ * @author Victor V. Rubezhny
*/
public class TempJavaProblemAnnotation extends ProblemAnnotation {
private TempJavaProblem problem;
13 years, 9 months
JBoss Tools SVN: r42453 - trunk/common/tests/org.jboss.tools.common.base.test/src/org/jboss/tools/common/base/test.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2012-07-06 19:57:26 -0400 (Fri, 06 Jul 2012)
New Revision: 42453
Modified:
trunk/common/tests/org.jboss.tools.common.base.test/src/org/jboss/tools/common/base/test/QuickFixTestUtil.java
Log:
https://issues.jboss.org/browse/JBIDE-10611 As-you-type CDI validation
Modified: trunk/common/tests/org.jboss.tools.common.base.test/src/org/jboss/tools/common/base/test/QuickFixTestUtil.java
===================================================================
--- trunk/common/tests/org.jboss.tools.common.base.test/src/org/jboss/tools/common/base/test/QuickFixTestUtil.java 2012-07-06 23:56:29 UTC (rev 42452)
+++ trunk/common/tests/org.jboss.tools.common.base.test/src/org/jboss/tools/common/base/test/QuickFixTestUtil.java 2012-07-06 23:57:26 UTC (rev 42453)
@@ -31,7 +31,7 @@
import org.jboss.tools.common.ui.marker.AddSuppressWarningsMarkerResolution;
import org.jboss.tools.common.ui.marker.ConfigureProblemSeverityMarkerResolution;
import org.jboss.tools.common.util.FileUtil;
-import org.jboss.tools.common.validation.java.JavaDirtyRegionProcessor.JavaProblemAnnotation;
+import org.jboss.tools.common.validation.java.TempJavaProblemAnnotation;
import org.jboss.tools.test.util.JobUtils;
public class QuickFixTestUtil{
@@ -56,7 +56,7 @@
Assert.fail("Configure Problem Severity quick fix not found");
}
- private void checkForAddSuppressWarnings(IFile file, JavaProblemAnnotation annotation, IJavaCompletionProposal[] proposals){
+ private void checkForAddSuppressWarnings(IFile file, TempJavaProblemAnnotation annotation, IJavaCompletionProposal[] proposals){
String severity = annotation.getMarkerType();
if(file.getFileExtension().equals("java") && severity.equals(JavaMarkerAnnotation.WARNING_ANNOTATION_TYPE)){
for(IJavaCompletionProposal proposal : proposals){
@@ -87,9 +87,9 @@
document.set(text);
// Find annotation
- JavaProblemAnnotation[] annotations = waitForProblemAnnotationAppearance(viewer);
+ TempJavaProblemAnnotation[] annotations = waitForProblemAnnotationAppearance(viewer);
- for(JavaProblemAnnotation annotation : annotations){
+ for(TempJavaProblemAnnotation annotation : annotations){
IJavaCompletionProposal[] proposals = getCompletionProposals(annotation);
checkForConfigureProblemSeverity(proposals);
checkForAddSuppressWarnings(file, annotation, proposals);
@@ -118,7 +118,7 @@
TestUtil.validate(file);
- JavaProblemAnnotation[] newAnnotations = waitForProblemAnnotationAppearance(viewer);
+ TempJavaProblemAnnotation[] newAnnotations = waitForProblemAnnotationAppearance(viewer);
Assert.assertTrue("Quick fix did not decrease number of problems. was: "+annotations.length+" now: "+newAnnotations.length, newAnnotations.length < annotations.length);
@@ -132,7 +132,7 @@
Assert.fail("Quick fix: "+proposalClass+" not found");
}
- public static IJavaCompletionProposal[] getCompletionProposals(JavaProblemAnnotation annotation){
+ public static IJavaCompletionProposal[] getCompletionProposals(TempJavaProblemAnnotation annotation){
ArrayList<IJavaCompletionProposal> proposals = new ArrayList<IJavaCompletionProposal>();
if(QuickFixManager.getInstance().hasProposals(annotation)){
@@ -155,8 +155,8 @@
}
}
- protected JavaProblemAnnotation[] waitForProblemAnnotationAppearance(final ISourceViewer viewer) {
- final ArrayList<JavaProblemAnnotation> annotations = new ArrayList<JavaProblemAnnotation>();
+ protected TempJavaProblemAnnotation[] waitForProblemAnnotationAppearance(final ISourceViewer viewer) {
+ final ArrayList<TempJavaProblemAnnotation> annotations = new ArrayList<TempJavaProblemAnnotation>();
Display.getDefault().syncExec(new Runnable() {
public void run() {
@@ -179,8 +179,8 @@
while (it.hasNext()) {
Object o = it.next();
- if (o instanceof JavaProblemAnnotation){
- annotations.add((JavaProblemAnnotation) o);
+ if (o instanceof TempJavaProblemAnnotation){
+ annotations.add((TempJavaProblemAnnotation) o);
}
}
@@ -189,6 +189,6 @@
}
});
- return annotations.toArray(new JavaProblemAnnotation[]{});
+ return annotations.toArray(new TempJavaProblemAnnotation[]{});
}
}
13 years, 9 months
JBoss Tools SVN: r42452 - in trunk/common/plugins: org.jboss.tools.common.validation/src/org/jboss/tools/common/validation and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2012-07-06 19:56:29 -0400 (Fri, 06 Jul 2012)
New Revision: 42452
Added:
trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/TempJavaProblem.java
trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/TempJavaProblemAnnotation.java
Modified:
trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/marker/ConfigureProblemSeverityResolutionGenerator.java
trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/AsYouTypeValidatorManager.java
trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/JavaDirtyRegionProcessor.java
Log:
https://issues.jboss.org/browse/JBIDE-10611 As-you-type CDI validation
Modified: trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/marker/ConfigureProblemSeverityResolutionGenerator.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/marker/ConfigureProblemSeverityResolutionGenerator.java 2012-07-06 23:48:20 UTC (rev 42451)
+++ trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/marker/ConfigureProblemSeverityResolutionGenerator.java 2012-07-06 23:56:29 UTC (rev 42452)
@@ -30,7 +30,7 @@
import org.jboss.tools.common.quickfix.IQuickFixGenerator;
import org.jboss.tools.common.ui.CommonUIPlugin;
import org.jboss.tools.common.validation.ValidationErrorManager;
-import org.jboss.tools.common.validation.java.JavaDirtyRegionProcessor.JavaProblemAnnotation;
+import org.jboss.tools.common.validation.java.TempJavaProblemAnnotation;
/**
* @author Daniel Azarov
@@ -121,9 +121,9 @@
String attribute = (String)((TemporaryAnnotation)annotation).getAttributes().get(ValidationErrorManager.PREFERENCE_KEY_ATTRIBUTE_NAME);
return attribute;
}
- }else if(annotation instanceof JavaProblemAnnotation){
- if(((JavaProblemAnnotation)annotation).getAttributes() != null){
- String attribute = (String)((JavaProblemAnnotation)annotation).getAttributes().get(ValidationErrorManager.PREFERENCE_KEY_ATTRIBUTE_NAME);
+ }else if(annotation instanceof TempJavaProblemAnnotation){
+ if(((TempJavaProblemAnnotation)annotation).getAttributes() != null){
+ String attribute = (String)((TempJavaProblemAnnotation)annotation).getAttributes().get(ValidationErrorManager.PREFERENCE_KEY_ATTRIBUTE_NAME);
return attribute;
}
}
@@ -136,9 +136,9 @@
String attribute = (String)((TemporaryAnnotation)annotation).getAttributes().get(ValidationErrorManager.PREFERENCE_PAGE_ID_NAME);
return attribute;
}
- }else if(annotation instanceof JavaProblemAnnotation){
- if(((JavaProblemAnnotation)annotation).getAttributes() != null){
- String attribute = (String)((JavaProblemAnnotation)annotation).getAttributes().get(ValidationErrorManager.PREFERENCE_PAGE_ID_NAME);
+ }else if(annotation instanceof TempJavaProblemAnnotation){
+ if(((TempJavaProblemAnnotation)annotation).getAttributes() != null){
+ String attribute = (String)((TempJavaProblemAnnotation)annotation).getAttributes().get(ValidationErrorManager.PREFERENCE_PAGE_ID_NAME);
return attribute;
}
}
Modified: trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/AsYouTypeValidatorManager.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/AsYouTypeValidatorManager.java 2012-07-06 23:48:20 UTC (rev 42451)
+++ trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/AsYouTypeValidatorManager.java 2012-07-06 23:56:29 UTC (rev 42452)
@@ -38,6 +38,7 @@
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
import org.eclipse.wst.validation.internal.provisional.core.IValidationContext;
import org.jboss.tools.common.util.EclipseUIUtil;
+import org.jboss.tools.common.validation.java.TempJavaProblemAnnotation;
/**
* This Manager is responsible for as-you-type validation.
@@ -108,6 +109,9 @@
} else if(o instanceof DisabledAnnotation) {
DisabledAnnotation annotation = (DisabledAnnotation)o;
anModel.removeAnnotation(annotation);
+ } else if(o instanceof TempJavaProblemAnnotation) {
+ TempJavaProblemAnnotation annotation = (TempJavaProblemAnnotation)o;
+ anModel.removeAnnotation(annotation);
}
}
}
Modified: trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/JavaDirtyRegionProcessor.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/JavaDirtyRegionProcessor.java 2012-07-06 23:48:20 UTC (rev 42451)
+++ trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/JavaDirtyRegionProcessor.java 2012-07-06 23:56:29 UTC (rev 42452)
@@ -20,8 +20,6 @@
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.compiler.CategorizedProblem;
-import org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.ProblemAnnotation;
import org.eclipse.jdt.ui.text.IJavaPartitions;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.BadPartitioningException;
@@ -84,10 +82,6 @@
private int fStartRegionToProcess = -1;
private int fEndRegionToProcess = -1;
- // AsYouType EL Validation 'marker type' name.
- // marker type is used in the quickFixProcessor extension point
- public static final String MARKER_TYPE= "org.jboss.tools.common.validation.el"; //$NON-NLS-1$
-
public final class JavaELProblemReporter implements IReporter {
private IFile fFile;
private ICompilationUnit fCompilationUnit;
@@ -218,10 +212,10 @@
if (editorInput != null) {
boolean cleanAllAnnotations = Boolean.TRUE.equals(message.getAttribute(TempMarkerManager.CLEAN_ALL_ANNOTATIONS_ATTRIBUTE));
Position position = new Position(valMessage.getOffset(), valMessage.getLength());
- CoreELProblem problem= new CoreELProblem(valMessage,
+ TempJavaProblem problem = new TempJavaProblem(valMessage,
editorInput.getName());
if (fCompilationUnit != null) {
- JavaProblemAnnotation problemAnnotation = new JavaProblemAnnotation(problem, fCompilationUnit);
+ TempJavaProblemAnnotation problemAnnotation = new TempJavaProblemAnnotation(problem, fCompilationUnit);
addAnnotation(problemAnnotation, position, cleanAllAnnotations);
}
}
@@ -235,166 +229,6 @@
}
}
- public class JavaProblemAnnotation extends ProblemAnnotation{
- CoreELProblem problem;
-
- public JavaProblemAnnotation(CoreELProblem problem, ICompilationUnit cu) {
- super(problem, cu);
- this.problem = problem;
- }
-
- @SuppressWarnings("rawtypes")
- public Map getAttributes() {
- return problem.getAttributes();
- }
- }
-
- class CoreELProblem extends CategorizedProblem {
- /** The end offset of the problem */
- private int fSourceEnd= 0;
-
- /** The line number of the problem */
- private int fLineNumber= 1;
-
- /** The start offset of the problem */
- private int fSourceStart= 0;
-
- /** The description of the problem */
- private String fMessage;
-
- private boolean fIsError;
-
- /** The originating file name */
- private String fOrigin;
-
- private ValidationMessage vMessage;
-
- public static final int EL_PROBLEM_ID= 0x88000000;
-
- /**
- * Initialize with the given parameters.
- *
- * @param message ValidationMessage
- * @param document the document
- * @param origin the originating file name
- */
- public CoreELProblem(ValidationMessage message, String origin) {
- super();
- fSourceStart= message.getOffset();
- fSourceEnd= message.getOffset() + message.getLength() - 1;
- fLineNumber= message.getLineNumber();
- fMessage= message.getText();
- fOrigin= origin;
- fIsError = (IMessage.NORMAL_SEVERITY != message.getSeverity());
- vMessage = message;
- }
-
- /*
- * @see org.eclipse.jdt.core.compiler.IProblem#getArguments()
- */
- public String[] getArguments() {
- return new String[0];
- }
-
- /*
- * @see org.eclipse.jdt.core.compiler.IProblem#getID()
- */
- public int getID() {
- return EL_PROBLEM_ID;
- }
-
- /*
- * @see org.eclipse.jdt.core.compiler.IProblem#getMessage()
- */
- public String getMessage() {
- return fMessage;
- }
-
- /*
- * @see org.eclipse.jdt.core.compiler.IProblem#getOriginatingFileName()
- */
- public char[] getOriginatingFileName() {
- return fOrigin.toCharArray();
- }
-
- /*
- * @see org.eclipse.jdt.core.compiler.IProblem#getSourceEnd()
- */
- public int getSourceEnd() {
- return fSourceEnd;
- }
-
- /*
- * @see org.eclipse.jdt.core.compiler.IProblem#getSourceLineNumber()
- */
- public int getSourceLineNumber() {
- return fLineNumber;
- }
-
- /*
- * @see org.eclipse.jdt.core.compiler.IProblem#getSourceStart()
- */
- public int getSourceStart() {
- return fSourceStart;
- }
-
- /*
- * @see org.eclipse.jdt.core.compiler.IProblem#isError()
- */
- public boolean isError() {
- return fIsError;
- }
-
- /*
- * @see org.eclipse.jdt.core.compiler.IProblem#isWarning()
- */
- public boolean isWarning() {
- return !fIsError;
- }
-
- /*
- * @see org.eclipse.jdt.core.compiler.IProblem#setSourceStart(int)
- */
- public void setSourceStart(int sourceStart) {
- fSourceStart= sourceStart;
- }
-
- /*
- * @see org.eclipse.jdt.core.compiler.IProblem#setSourceEnd(int)
- */
- public void setSourceEnd(int sourceEnd) {
- fSourceEnd= sourceEnd;
- }
-
- /*
- * @see org.eclipse.jdt.core.compiler.IProblem#setSourceLineNumber(int)
- */
- public void setSourceLineNumber(int lineNumber) {
- fLineNumber= lineNumber;
- }
-
- /*
- * @see org.eclipse.jdt.core.compiler.CategorizedProblem#getCategoryID()
- */
- @Override
- public int getCategoryID() {
- return CAT_SYNTAX;
- }
-
- /*
- * @see org.eclipse.jdt.core.compiler.CategorizedProblem#getMarkerType()
- */
- @Override
- public String getMarkerType() {
- return MARKER_TYPE;
- }
-
- @SuppressWarnings("rawtypes")
- public Map getAttributes(){
- return vMessage.getAttributes();
- }
- }
-
public JavaDirtyRegionProcessor(ITextEditor editor) {
this.fEditor = editor;
fHelper = createValidationContext();
Added: trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/TempJavaProblem.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/TempJavaProblem.java (rev 0)
+++ trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/TempJavaProblem.java 2012-07-06 23:56:29 UTC (rev 42452)
@@ -0,0 +1,172 @@
+/*******************************************************************************
+ * Copyright (c) 2012 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.common.validation.java;
+
+import java.util.Map;
+
+import org.eclipse.jdt.core.compiler.CategorizedProblem;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
+import org.jboss.tools.common.validation.ValidationMessage;
+
+/**
+ * @author Alexey Kazakov
+ */
+public class TempJavaProblem extends CategorizedProblem {
+ // TODO for dazarov. Why are you using EL marker type for all the java problems?
+ // AsYouType EL Validation 'marker type' name.
+ // marker type is used in the quickFixProcessor extension point
+// public static final String MARKER_TYPE = "org.jboss.tools.common.validation.el"; //$NON-NLS-1$
+ public static final String MARKER_TYPE = "TODO";
+
+ /** The end offset of the problem */
+ private int fSourceEnd= 0;
+
+ /** The line number of the problem */
+ private int fLineNumber= 1;
+
+ /** The start offset of the problem */
+ private int fSourceStart= 0;
+
+ /** The description of the problem */
+ private String fMessage;
+
+ private boolean fIsError;
+
+ /** The originating file name */
+ private String fOrigin;
+
+ private ValidationMessage vMessage;
+
+ public static final int EL_PROBLEM_ID= 0x88000000;
+
+ /**
+ * Initialize with the given parameters.
+ *
+ * @param message ValidationMessage
+ * @param document the document
+ * @param origin the originating file name
+ */
+ public TempJavaProblem(ValidationMessage message, String origin) {
+ super();
+ fSourceStart= message.getOffset();
+ fSourceEnd= message.getOffset() + message.getLength() - 1;
+ fLineNumber= message.getLineNumber();
+ fMessage= message.getText();
+ fOrigin= origin;
+ fIsError = (IMessage.NORMAL_SEVERITY != message.getSeverity());
+ vMessage = message;
+ }
+
+ /*
+ * @see org.eclipse.jdt.core.compiler.IProblem#getArguments()
+ */
+ public String[] getArguments() {
+ return new String[0];
+ }
+
+ /*
+ * @see org.eclipse.jdt.core.compiler.IProblem#getID()
+ */
+ public int getID() {
+ return EL_PROBLEM_ID;
+ }
+
+ /*
+ * @see org.eclipse.jdt.core.compiler.IProblem#getMessage()
+ */
+ public String getMessage() {
+ return fMessage;
+ }
+
+ /*
+ * @see org.eclipse.jdt.core.compiler.IProblem#getOriginatingFileName()
+ */
+ public char[] getOriginatingFileName() {
+ return fOrigin.toCharArray();
+ }
+
+ /*
+ * @see org.eclipse.jdt.core.compiler.IProblem#getSourceEnd()
+ */
+ public int getSourceEnd() {
+ return fSourceEnd;
+ }
+
+ /*
+ * @see org.eclipse.jdt.core.compiler.IProblem#getSourceLineNumber()
+ */
+ public int getSourceLineNumber() {
+ return fLineNumber;
+ }
+
+ /*
+ * @see org.eclipse.jdt.core.compiler.IProblem#getSourceStart()
+ */
+ public int getSourceStart() {
+ return fSourceStart;
+ }
+
+ /*
+ * @see org.eclipse.jdt.core.compiler.IProblem#isError()
+ */
+ public boolean isError() {
+ return fIsError;
+ }
+
+ /*
+ * @see org.eclipse.jdt.core.compiler.IProblem#isWarning()
+ */
+ public boolean isWarning() {
+ return !fIsError;
+ }
+
+ /*
+ * @see org.eclipse.jdt.core.compiler.IProblem#setSourceStart(int)
+ */
+ public void setSourceStart(int sourceStart) {
+ fSourceStart= sourceStart;
+ }
+
+ /*
+ * @see org.eclipse.jdt.core.compiler.IProblem#setSourceEnd(int)
+ */
+ public void setSourceEnd(int sourceEnd) {
+ fSourceEnd= sourceEnd;
+ }
+
+ /*
+ * @see org.eclipse.jdt.core.compiler.IProblem#setSourceLineNumber(int)
+ */
+ public void setSourceLineNumber(int lineNumber) {
+ fLineNumber= lineNumber;
+ }
+
+ /*
+ * @see org.eclipse.jdt.core.compiler.CategorizedProblem#getCategoryID()
+ */
+ @Override
+ public int getCategoryID() {
+ return CAT_SYNTAX;
+ }
+
+ /*
+ * @see org.eclipse.jdt.core.compiler.CategorizedProblem#getMarkerType()
+ */
+ @Override
+ public String getMarkerType() {
+ return MARKER_TYPE;
+ }
+
+ @SuppressWarnings("rawtypes")
+ public Map getAttributes(){
+ return vMessage.getAttributes();
+ }
+}
\ No newline at end of file
Property changes on: trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/TempJavaProblem.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/TempJavaProblemAnnotation.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/TempJavaProblemAnnotation.java (rev 0)
+++ trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/TempJavaProblemAnnotation.java 2012-07-06 23:56:29 UTC (rev 42452)
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2012 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.common.validation.java;
+
+import java.util.Map;
+
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.ProblemAnnotation;
+
+/**
+ * @author Alexey Kazakov
+ */
+public class TempJavaProblemAnnotation extends ProblemAnnotation {
+ private TempJavaProblem problem;
+
+ public TempJavaProblemAnnotation(TempJavaProblem problem, ICompilationUnit cu) {
+ super(problem, cu);
+ this.problem = problem;
+ }
+
+ @SuppressWarnings("rawtypes")
+ public Map getAttributes() {
+ return problem.getAttributes();
+ }
+}
\ No newline at end of file
Property changes on: trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/java/TempJavaProblemAnnotation.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
13 years, 9 months
JBoss Tools SVN: r42451 - trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/util.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2012-07-06 19:48:20 -0400 (Fri, 06 Jul 2012)
New Revision: 42451
Modified:
trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/util/FileUtil.java
Log:
JBIDE-10611
https://issues.jboss.org/browse/JBIDE-10611
Fixed getting actual text from non-ui thread.
Modified: trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/util/FileUtil.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/util/FileUtil.java 2012-07-06 23:43:17 UTC (rev 42450)
+++ trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/util/FileUtil.java 2012-07-06 23:48:20 UTC (rev 42451)
@@ -39,6 +39,10 @@
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
+import org.eclipse.core.filebuffers.FileBuffers;
+import org.eclipse.core.filebuffers.IFileBuffer;
+import org.eclipse.core.filebuffers.ITextFileBuffer;
+import org.eclipse.core.filebuffers.LocationKind;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -737,6 +741,13 @@
* @return
*/
public static String getContentFromEditorOrFile(IFile file) {
+ IFileBuffer b = FileBuffers.getTextFileBufferManager().getFileBuffer(file.getFullPath(), LocationKind.IFILE);
+ if (b instanceof ITextFileBuffer) {
+ IDocument doc = ((ITextFileBuffer)b).getDocument();
+ if(doc != null) {
+ return doc.get();
+ }
+ }
ITextEditor editor = EclipseUIUtil.getActiveEditor();
if (editor != null) {
IEditorInput editorInput = editor.getEditorInput();
13 years, 9 months
JBoss Tools SVN: r42450 - trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/src/org/jboss/tools/cdi/seam/core/international/el.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2012-07-06 19:43:17 -0400 (Fri, 06 Jul 2012)
New Revision: 42450
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/src/org/jboss/tools/cdi/seam/core/international/el/CDIInternationalMessagesELResolver.java
Log:
https://issues.jboss.org/browse/JBIDE-10611 As-you-type CDI validation
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/src/org/jboss/tools/cdi/seam/core/international/el/CDIInternationalMessagesELResolver.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/src/org/jboss/tools/cdi/seam/core/international/el/CDIInternationalMessagesELResolver.java 2012-07-06 23:29:53 UTC (rev 42449)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/src/org/jboss/tools/cdi/seam/core/international/el/CDIInternationalMessagesELResolver.java 2012-07-06 23:43:17 UTC (rev 42450)
@@ -671,7 +671,7 @@
* @see org.jboss.tools.common.el.core.ca.AbstractELCompletionEngine#getMemberInfoByVariable(org.jboss.tools.common.el.core.resolver.IVariable, boolean)
*/
@Override
- protected MemberInfo getMemberInfoByVariable(IVariable var,
+ protected MemberInfo getMemberInfoByVariable(IVariable var, ELContext context,
boolean onlyEqualNames, int offset) {
return null;
}
@@ -681,7 +681,7 @@
* @see org.jboss.tools.common.el.core.ca.AbstractELCompletionEngine#resolveVariables(org.eclipse.core.resources.IFile, org.jboss.tools.common.el.core.model.ELInvocationExpression, boolean, boolean)
*/
@Override
- public List<IVariable> resolveVariables(IFile file,
+ public List<IVariable> resolveVariables(IFile file, ELContext context,
ELInvocationExpression expr, boolean isFinal, boolean onlyEqualNames, int offset) {
return null;
}
13 years, 9 months
JBoss Tools SVN: r42449 - in trunk: cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl and 14 other directories.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2012-07-06 19:29:53 -0400 (Fri, 06 Jul 2012)
New Revision: 42449
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/el/CdiElResolver.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProjectAsYouType.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.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/resolver/ELCompletionEngine.java
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ELContext.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/SimpleELContext.java
trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/AsYouTypeValidatorManager.java
trunk/common/tests/org.jboss.tools.common.el.core.test/src/org/jboss/tools/common/el/core/test/resolver/ElVarSearcherTest.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/bean/el/JSF2ElResolver.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSF2CCAttrsELCompletionEngine.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSFELCompletionEngine.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSFFuncsELCompletionEngine.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSFImplicitObjectELResolver.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSFMessageELCompletionEngine.java
trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/JSF2ModelTest.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/JspELCompletionProposalComputer.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/JspTagCompletionProposalComputer.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/PageContextFactory.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ELValidator.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamExpressionResolver.java
trunk/seam/plugins/org.jboss.tools.seam.text.ext/src/org/jboss/tools/seam/text/ext/hyperlink/SeamBeanHyperlinkPartitioner.java
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamSearchEngine.java
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamSearchVisitor.java
Log:
https://issues.jboss.org/browse/JBIDE-10611 As-you-type CDI validation
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/el/CdiElResolver.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/el/CdiElResolver.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/el/CdiElResolver.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -29,11 +29,13 @@
import org.jboss.tools.cdi.core.IBeanMember;
import org.jboss.tools.cdi.core.ICDIProject;
import org.jboss.tools.cdi.core.IClassBean;
+import org.jboss.tools.cdi.internal.core.impl.CDIProjectAsYouType;
import org.jboss.tools.common.el.core.ca.AbstractELCompletionEngine;
import org.jboss.tools.common.el.core.ca.DefaultJavaRelevanceCheck;
import org.jboss.tools.common.el.core.model.ELInvocationExpression;
import org.jboss.tools.common.el.core.parser.ELParserFactory;
import org.jboss.tools.common.el.core.parser.ELParserUtil;
+import org.jboss.tools.common.el.core.resolver.ELContext;
import org.jboss.tools.common.el.core.resolver.IRelevanceCheck;
import org.jboss.tools.common.el.core.resolver.TypeInfoCollector;
import org.jboss.tools.common.el.core.resolver.TypeInfoCollector.MemberInfo;
@@ -87,7 +89,7 @@
* @see org.jboss.tools.jst.web.kb.el.AbstractELCompletionEngine#getMemberInfoByVariable(org.jboss.tools.common.el.core.resolver.IVariable, boolean)
*/
@Override
- protected MemberInfo getMemberInfoByVariable(IBean bean, boolean onlyEqualNames, int offset) {
+ protected MemberInfo getMemberInfoByVariable(IBean bean, ELContext context, boolean onlyEqualNames, int offset) {
IMember member = null;
if(bean instanceof IClassBean) {
member = bean.getBeanClass();
@@ -105,7 +107,7 @@
* @see org.jboss.tools.jst.web.kb.el.AbstractELCompletionEngine#resolveVariables(org.eclipse.core.resources.IFile, org.jboss.tools.common.el.core.model.ELInvocationExpression, boolean, boolean)
*/
@Override
- public List<IBean> resolveVariables(IFile file, ELInvocationExpression expr, boolean isFinal, boolean onlyEqualNames, int offset) {
+ public List<IBean> resolveVariables(IFile file, ELContext context, ELInvocationExpression expr, boolean isFinal, boolean onlyEqualNames, int offset) {
ArrayList<IBean> beans = new ArrayList<IBean>();
IProject project = file.getProject();
@@ -119,18 +121,21 @@
if (varName != null) {
CDICoreNature nature = CDIUtil.getCDINatureWithProgress(project);
if(nature!=null) {
- IBeanManager manager = nature.getDelegate();
- if (manager != null) {
+ ICDIProject cdiProject = nature.getDelegate();
+ if (cdiProject != null) {
+ if(context!=null && context.isDirty() && ("java".equalsIgnoreCase(file.getFileExtension()) || "beans.xml".equalsIgnoreCase(file.getName()))) {
+ cdiProject = new CDIProjectAsYouType(cdiProject, file);
+ }
if(onlyEqualNames) {
- resolvedBeans = manager.getBeans(varName, true);
+ resolvedBeans = cdiProject.getBeans(varName, true);
if(resolvedBeans.isEmpty()) {
- resolvedBeans = manager.getBeans(varName, false);
+ resolvedBeans = cdiProject.getBeans(varName, false);
}
beans.addAll(resolvedBeans);
} else {
- resolvedBeans = manager.getNamedBeans(true);
+ resolvedBeans = cdiProject.getNamedBeans(true);
if(resolvedBeans.isEmpty()) {
- resolvedBeans = manager.getBeans(varName, false);
+ resolvedBeans = cdiProject.getBeans(varName, false);
}
for (IBean bean : resolvedBeans) {
if(bean.getName().startsWith(varName)) {
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProjectAsYouType.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProjectAsYouType.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProjectAsYouType.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -176,7 +176,7 @@
if(d.getResource() == null || !d.getResource().getFullPath().equals(file.getFullPath())) {
continue;
}
- System.out.println("Annotation " + d.getQualifiedName());
+// System.out.println("Annotation " + d.getQualifiedName());
if((d.getKind() & AnnotationDefinition.STEREOTYPE) > 0) {
StereotypeElement s = new StereotypeElement();
initAnnotationElement(s, d);
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -103,7 +103,7 @@
import org.jboss.tools.common.text.ITextSourceReference;
import org.jboss.tools.common.validation.ContextValidationHelper;
import org.jboss.tools.common.validation.EditorValidationContext;
-import org.jboss.tools.common.validation.IAsYouTypeValidator;
+import org.jboss.tools.common.validation.IJavaElementValidator;
import org.jboss.tools.common.validation.IProjectValidationContext;
import org.jboss.tools.common.validation.IValidatingProjectSet;
import org.jboss.tools.common.validation.IValidatingProjectTree;
@@ -114,7 +114,7 @@
/**
* @author Alexey Kazakov
*/
-public class CDICoreValidator extends CDIValidationErrorManager implements IAsYouTypeValidator {
+public class CDICoreValidator extends CDIValidationErrorManager implements IJavaElementValidator {
public static final String ID = "org.jboss.tools.cdi.core.CoreValidator"; //$NON-NLS-1$
public static final String PROBLEM_TYPE = "org.jboss.tools.cdi.core.cdiproblem"; //$NON-NLS-1$
public static final String PREFERENCE_PAGE_ID = "org.jboss.tools.cdi.ui.preferences.CDIValidatorPreferencePage"; //$NON-NLS-1$
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 22:13:38 UTC (rev 42448)
+++ trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ca/AbstractELCompletionEngine.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -139,7 +139,7 @@
ELResolutionImpl resolution;
try {
- resolution = resolveELOperand(context.getResource(), parseOperand(el), false, vars, new ElVarSearcher(context.getResource(), this), offset);
+ resolution = resolveELOperand(context.getResource(), context, parseOperand(el), false, vars, new ElVarSearcher(context.getResource(), this), offset);
if(resolution!=null) {
completions.addAll(resolution.getProposals());
}
@@ -168,7 +168,7 @@
}
ELResolutionImpl resolution = null;
try {
- resolution = resolveELOperand(context.getResource(), operand, true, vars, new ElVarSearcher(context.getResource(), this), offset);
+ resolution = resolveELOperand(context.getResource(), context, operand, true, vars, new ElVarSearcher(context.getResource(), this), offset);
if(resolution != null)
resolution.setContext(context);
} catch (StringIndexOutOfBoundsException e) {
@@ -194,7 +194,7 @@
vars.add(array[i]);
}
try {
- return resolveELOperand(context.getResource(), operand, returnEqualedVariablesOnly, vars, new ElVarSearcher(context.getResource(), this), offset);
+ return resolveELOperand(context.getResource(), context, operand, returnEqualedVariablesOnly, vars, new ElVarSearcher(context.getResource(), this), offset);
} catch (StringIndexOutOfBoundsException e) {
log(e);
} catch (BadLocationException e) {
@@ -235,7 +235,7 @@
* (non-Javadoc)
* @see org.jboss.tools.common.el.core.resolver.ELCompletionEngine#resolveELOperand(org.eclipse.core.resources.IFile, org.jboss.tools.common.el.core.model.ELExpression, boolean, java.util.List, org.jboss.tools.common.el.core.resolver.ElVarSearcher)
*/
- public ELResolutionImpl resolveELOperand(IFile file,
+ public ELResolutionImpl resolveELOperand(IFile file, ELContext context,
ELExpression operand, boolean returnEqualedVariablesOnly,
List<Var> vars, ElVarSearcher varSearcher, int offset)
throws BadLocationException, StringIndexOutOfBoundsException {
@@ -244,14 +244,14 @@
return null;
}
String oldEl = operand.getText();
- Var var = varSearcher.findVarForEl(oldEl, vars, true);
+ Var var = varSearcher.findVarForEl(oldEl, context, vars, true);
String suffix = ""; //$NON-NLS-1$
String newEl = oldEl;
TypeInfoCollector.MemberInfo member = null;
boolean isArray = false;
ELResolution varELResolution = null;
if(var!=null) {
- varELResolution = resolveEL(file, var.getElToken(), true, offset);
+ varELResolution = resolveEL(file, context, var.getElToken(), true, offset);
if(varELResolution!=null && varELResolution.isResolved()) {
ELSegment segment = varELResolution.getLastSegment();
if(segment instanceof JavaMemberELSegment) {
@@ -290,7 +290,7 @@
: parseOperand(newEl))
: operand;
- ELResolutionImpl resolution = resolveELOperand(file, newOperand, returnEqualedVariablesOnly, prefixWasChanged, offset);
+ ELResolutionImpl resolution = resolveELOperand(file, context, newOperand, returnEqualedVariablesOnly, prefixWasChanged, offset);
if(resolution==null) {
return null;
}
@@ -348,12 +348,12 @@
}
}
- ELResolutionImpl oldElResolution = resolveELOperand(file, operand, returnEqualedVariablesOnly, false, offset);
+ ELResolutionImpl oldElResolution = resolveELOperand(file, context, operand, returnEqualedVariablesOnly, false, offset);
if(oldElResolution!=null) {
resolution.getProposals().addAll(oldElResolution.getProposals());
}
} else {
- resolution = resolveELOperand(file, operand, returnEqualedVariablesOnly, false, offset);
+ resolution = resolveELOperand(file, context, operand, returnEqualedVariablesOnly, false, offset);
}
}
@@ -367,7 +367,7 @@
for (Var v : vars) {
String prefix = operand.toString();
if(v.getName().startsWith(prefix)) {
- ELResolution r = resolveEL(file, v.getElToken(), true, vars, varSearcher, offset);
+ ELResolution r = resolveEL(file, context, v.getElToken(), true, vars, varSearcher, offset);
if(r==null) {
continue;
}
@@ -421,9 +421,9 @@
* @throws BadLocationException
* @throws StringIndexOutOfBoundsException
*/
- public ELResolution resolveEL(IFile file, ELExpression operand, boolean varIsUsed, int offset) throws BadLocationException, StringIndexOutOfBoundsException {
+ public ELResolution resolveEL(IFile file, ELContext context, ELExpression operand, boolean varIsUsed, int offset) throws BadLocationException, StringIndexOutOfBoundsException {
if(!(operand instanceof ELInvocationExpression)) return null;
- return resolveELOperand(file, operand, true, varIsUsed, offset);
+ return resolveELOperand(file, context, operand, true, varIsUsed, offset);
}
/**
@@ -436,12 +436,12 @@
* @throws BadLocationException
* @throws StringIndexOutOfBoundsException
*/
- public ELResolution resolveEL(IFile file, ELExpression operand, boolean returnEqualedVariablesOnly, List<Var> vars, ElVarSearcher varSearcher, int offset) throws BadLocationException, StringIndexOutOfBoundsException {
+ public ELResolution resolveEL(IFile file, ELContext context, ELExpression operand, boolean returnEqualedVariablesOnly, List<Var> vars, ElVarSearcher varSearcher, int offset) throws BadLocationException, StringIndexOutOfBoundsException {
if(!(operand instanceof ELInvocationExpression)) return null;
- return resolveELOperand(file, operand, returnEqualedVariablesOnly, vars, varSearcher, offset);
+ return resolveELOperand(file, context, operand, returnEqualedVariablesOnly, vars, varSearcher, offset);
}
- public ELResolutionImpl resolveELOperand(IFile file, ELExpression operand,
+ public ELResolutionImpl resolveELOperand(IFile file, ELContext context, ELExpression operand,
boolean returnEqualedVariablesOnly, boolean varIsUsed, int offset) throws BadLocationException, StringIndexOutOfBoundsException {
if(!(operand instanceof ELInvocationExpression) || file == null) {
return null;
@@ -467,12 +467,12 @@
// // but we have to resolve arguments of probably a message component
} //else
if (expr.getLeft() == null && isIncomplete) {
- resolvedVariables = resolveVariables(file, expr, true,
+ resolvedVariables = resolveVariables(file, context, expr, true,
returnEqualedVariablesOnly, offset);
} else {
while(left != null) {
List<V>resolvedVars = new ArrayList<V>();
- resolvedVars = resolveVariables(file,
+ resolvedVars = resolveVariables(file, context,
left, left == expr,
returnEqualedVariablesOnly, offset);
if (resolvedVars != null && !resolvedVars.isEmpty()) {
@@ -490,7 +490,7 @@
isIncomplete) {
// no vars are resolved
// the tokens are the part of var name ended with a separator (.)
- resolvedVariables = resolveVariables(file, expr, true, returnEqualedVariablesOnly, offset);
+ resolvedVariables = resolveVariables(file, context, expr, true, returnEqualedVariablesOnly, offset);
Set<TextProposal> proposals = new TreeSet<TextProposal>(TextProposal.KB_PROPOSAL_ORDER);
JavaMemberELSegmentImpl segment = new JavaMemberELSegmentImpl(expr.getFirstToken());
@@ -501,7 +501,7 @@
if(varName.startsWith(operand.getText())) {
// JBIDE-512, JBIDE-2541 related changes ===>>>
- MemberInfo member = getMemberInfoByVariable(var, true, offset);
+ MemberInfo member = getMemberInfoByVariable(var, context, true, offset);
String sourceTypeName = member == null ? null : member.getDeclaringTypeQualifiedName();
if (sourceTypeName != null && sourceTypeName.indexOf('.') != -1)
@@ -553,10 +553,10 @@
for (V var : resolvedVariables) {
if(isSingularAttribute(var)) {
- bijectedAttribute = getMemberInfoByVariable(var, true, offset);
+ bijectedAttribute = getMemberInfoByVariable(var, context, true, offset);
}
- MemberInfo member = getMemberInfoByVariable(var, true, offset);
+ MemberInfo member = getMemberInfoByVariable(var, context, true, offset);
String sourceTypeName = member == null ? null : member.getDeclaringTypeQualifiedName();
if (sourceTypeName != null && sourceTypeName.indexOf('.') != -1)
sourceTypeName = Signature.getSimpleName(sourceTypeName);
@@ -608,7 +608,7 @@
List<TypeInfoCollector.MemberInfo> members = new ArrayList<TypeInfoCollector.MemberInfo>();
JavaMemberELSegmentImpl segment = new JavaMemberELSegmentImpl(expr.getFirstToken());
for (V var : resolvedVariables) {
- TypeInfoCollector.MemberInfo member = getMemberInfoByVariable(var, returnEqualedVariablesOnly, offset);
+ TypeInfoCollector.MemberInfo member = getMemberInfoByVariable(var, context, returnEqualedVariablesOnly, offset);
if (member != null && !members.contains(member)) {
String name = var.getName();
if(name.indexOf('.') >= 0) {
@@ -678,9 +678,9 @@
return resolution;
}
- abstract public List<V> resolveVariables(IFile file, ELInvocationExpression expr, boolean isFinal, boolean onlyEqualNames, int offset);
+ abstract public List<V> resolveVariables(IFile file, ELContext context, ELInvocationExpression expr, boolean isFinal, boolean onlyEqualNames, int offset);
- abstract protected TypeInfoCollector.MemberInfo getMemberInfoByVariable(V var, boolean onlyEqualNames, int offset);
+ abstract protected TypeInfoCollector.MemberInfo getMemberInfoByVariable(V var, ELContext context, boolean onlyEqualNames, int offset);
abstract protected boolean isStaticMethodsCollectingEnabled();
Modified: trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ELCompletionEngine.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ELCompletionEngine.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ELCompletionEngine.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -18,6 +18,6 @@
public interface ELCompletionEngine extends ELResolver {
- public ELResolution resolveELOperand(IFile file, ELExpression operand,
+ public ELResolution resolveELOperand(IFile file, ELContext context, ELExpression operand,
boolean returnEqualedVariablesOnly, List<Var> vars, ElVarSearcher varSearcher, int offset) throws BadLocationException, StringIndexOutOfBoundsException;
}
\ No newline at end of file
Modified: trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ELContext.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ELContext.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ELContext.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -80,4 +80,16 @@
* @return
*/
Set<ELReference> getELReferences(IRegion region);
+
+ /**
+ * Returns true if the file was modified in some editor and has not been saved yet.
+ * @return
+ */
+ boolean isDirty();
+
+ /**
+ * Set to true if the file was modified
+ * @param dirty
+ */
+ void setDirty(boolean dirty);
}
\ 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 22:13:38 UTC (rev 42448)
+++ trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ElVarSearcher.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -302,7 +302,7 @@
* @param initializeNestedVars
* @return
*/
- public Var findVarForEl(String el, List<Var> vars, boolean initializeNestedVars) {
+ public Var findVarForEl(String el, ELContext context, List<Var> vars, boolean initializeNestedVars) {
if(vars!=null) {
ArrayList<Var> parentVars = new ArrayList<Var>();
for (Var var : vars) {
@@ -311,13 +311,13 @@
String varName = var.getName();
if(el.equals(varName) || el.startsWith(varName.trim()+".")) { //$NON-NLS-1$
if(var.getElToken()!=null && initializeNestedVars) {
- Var parentVar = findVarForEl(var.getElToken().getText(), parentVars, true);
+ Var parentVar = findVarForEl(var.getElToken().getText(), context, parentVars, true);
if(parentVar!=null) {
ELExpression resolvedToken = parentVar.getResolvedElToken();
if(resolvedToken==null && parentVar.getElToken()!=null) {
try {
// Initialize parent vars.
- engine.resolveELOperand(file, var.getElToken(), true, parentVars, this, (var.getRegion() == null ? 0 : var.getRegion().getOffset()));
+ engine.resolveELOperand(file, context, var.getElToken(), true, parentVars, this, (var.getRegion() == null ? 0 : var.getRegion().getOffset()));
resolvedToken = parentVar.getResolvedElToken();
} catch (StringIndexOutOfBoundsException e) {
ELCorePlugin.getPluginLog().logError(e);
Modified: trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/SimpleELContext.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/SimpleELContext.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/SimpleELContext.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -26,6 +26,7 @@
static final ELReference[] EMPTY_ARRAY = new ELReference[0];
protected IFile resource;
+ protected boolean dirty;
protected ELResolver[] elResolvers;
protected List<Var> vars = new ArrayList<Var>();
@@ -113,4 +114,17 @@
public Set<ELReference> getELReferences(IRegion region) {
return Collections.emptySet();
}
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.common.el.core.resolver.ELContext#isDirty()
+ */
+ @Override
+ public boolean isDirty() {
+ return dirty;
+ }
+
+ public void setDirty(boolean dirty) {
+ this.dirty = dirty;
+ }
}
\ No newline at end of file
Modified: trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/AsYouTypeValidatorManager.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/AsYouTypeValidatorManager.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/AsYouTypeValidatorManager.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -50,6 +50,7 @@
private IFile file;
private EditorValidationContext context;
private Map<IValidator, IProject> rootProjects;
+ private int count;
private static Set<IDocument> reporters = new HashSet<IDocument>();
@@ -59,6 +60,7 @@
*/
@Override
public void connect(IDocument document) {
+ count = 0;
this.document = document;
}
@@ -149,6 +151,7 @@
}
private void validate(Set<? extends IAsYouTypeValidator> validators, IRegion dirtyRegion, IValidationContext helper, IReporter reporter) {
+ count++;
for (IAsYouTypeValidator validator : validators) {
IProject rootProject = rootProjects.get(validator);
IValidatingProjectSet projectBrunch = context.getValidatingProjectTree(validator).getBrunches().get(rootProject);
@@ -192,7 +195,13 @@
*/
@Override
public void validate(IRegion dirtyRegion, IValidationContext helper, IReporter reporter) {
- validateString(dirtyRegion, helper, reporter);
+ if(count==0) {
+ // Don't validate the file first time since WTP invokes the validator right after connection.
+ init(helper, reporter);
+ count++;
+ } else {
+ validateString(dirtyRegion, helper, reporter);
+ }
}
@Override
@@ -200,6 +209,6 @@
}
@Override
- public void validate(IValidationContext helper, IReporter reporter) throws ValidationException {
+ public void validate(IValidationContext helper, IReporter reporter) throws ValidationException {
}
}
\ No newline at end of file
Modified: trunk/common/tests/org.jboss.tools.common.el.core.test/src/org/jboss/tools/common/el/core/test/resolver/ElVarSearcherTest.java
===================================================================
--- trunk/common/tests/org.jboss.tools.common.el.core.test/src/org/jboss/tools/common/el/core/test/resolver/ElVarSearcherTest.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/common/tests/org.jboss.tools.common.el.core.test/src/org/jboss/tools/common/el/core/test/resolver/ElVarSearcherTest.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -52,31 +52,37 @@
}
private static class FakeELCompletionEngine implements ELCompletionEngine {
- public ELResolution resolveELOperand(IFile file,
+ @Override
+ public ELResolution resolveELOperand(IFile file, ELContext context,
ELExpression operand, boolean returnEqualedVariablesOnly,
List<Var> vars, ElVarSearcher varSearcher, int offset)
throws BadLocationException, StringIndexOutOfBoundsException {
return new ELResolutionImpl(operand);
}
+ @Override
public ELParserFactory getParserFactory() {
return ELParserUtil.getJbossFactory();
}
+ @Override
public List<TextProposal> getProposals(ELContext context, String el, int offset) {
return Collections.emptyList();
}
+ @Override
public ELResolution resolve(ELContext context, ELExpression operand, int offset) {
return new ELResolutionImpl(operand);
}
+ @Override
public List<TextProposal> getProposals(ELContext context, int offset) {
return Collections.emptyList();
}
+ @Override
public IRelevanceCheck createRelevanceCheck(IJavaElement element) {
return null;
}
}
-}
+}
\ No newline at end of file
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/bean/el/JSF2ElResolver.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/bean/el/JSF2ElResolver.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/bean/el/JSF2ElResolver.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -21,6 +21,7 @@
import org.jboss.tools.common.el.core.model.ELInvocationExpression;
import org.jboss.tools.common.el.core.parser.ELParserFactory;
import org.jboss.tools.common.el.core.parser.ELParserUtil;
+import org.jboss.tools.common.el.core.resolver.ELContext;
import org.jboss.tools.common.el.core.resolver.TypeInfoCollector;
import org.jboss.tools.common.el.core.resolver.TypeInfoCollector.MemberInfo;
import org.jboss.tools.jsf.JSFModelPlugin;
@@ -60,7 +61,7 @@
* @see org.jboss.tools.jst.web.kb.el.AbstractELCompletionEngine#getMemberInfoByVariable(org.jboss.tools.common.el.core.resolver.IVariable, boolean)
*/
@Override
- protected MemberInfo getMemberInfoByVariable(IJSF2ManagedBean bean, boolean onlyEqualNames, int offset) {
+ protected MemberInfo getMemberInfoByVariable(IJSF2ManagedBean bean, ELContext context, boolean onlyEqualNames, int offset) {
return TypeInfoCollector.createMemberInfo(bean.getBeanClass());
}
@@ -69,7 +70,7 @@
* @see org.jboss.tools.jst.web.kb.el.AbstractELCompletionEngine#resolveVariables(org.eclipse.core.resources.IFile, org.jboss.tools.common.el.core.model.ELInvocationExpression, boolean, boolean)
*/
@Override
- public List<IJSF2ManagedBean> resolveVariables(IFile file, ELInvocationExpression expr, boolean isFinal, boolean onlyEqualNames, int offset) {
+ public List<IJSF2ManagedBean> resolveVariables(IFile file, ELContext context,ELInvocationExpression expr, boolean isFinal, boolean onlyEqualNames, int offset) {
ArrayList<IJSF2ManagedBean> beans = new ArrayList<IJSF2ManagedBean>();
IProject project = file.getProject();
@@ -120,6 +121,7 @@
* (non-Javadoc)
* @see org.jboss.tools.common.el.core.resolver.ELResolver#getParserFactory()
*/
+ @Override
public ELParserFactory getParserFactory() {
return factory;
}
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSF2CCAttrsELCompletionEngine.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSF2CCAttrsELCompletionEngine.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSF2CCAttrsELCompletionEngine.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -109,7 +109,7 @@
List<TextProposal> proposals = null;
try {
- proposals = getCompletions(context.getResource(), document, elString.subSequence(0, elString.length()), position, returnEqualedVariablesOnly);
+ proposals = getCompletions(context.getResource(), context, document, elString.subSequence(0, elString.length()), position, returnEqualedVariablesOnly);
} catch (StringIndexOutOfBoundsException e) {
log(e);
} catch (BadLocationException e) {
@@ -139,7 +139,7 @@
public ELResolutionImpl resolveELOperand(ELExpression operand,
ELContext context, boolean returnEqualedVariablesOnly, int offset) {
try {
- return resolveELOperand(context.getResource(), operand, returnEqualedVariablesOnly, offset);
+ return resolveELOperand(context.getResource(), context, operand, returnEqualedVariablesOnly, offset);
} catch (StringIndexOutOfBoundsException e) {
log(e);
} catch (BadLocationException e) {
@@ -148,11 +148,11 @@
return null;
}
- public List<TextProposal> getCompletions(IFile file, IDocument document, CharSequence prefix,
+ public List<TextProposal> getCompletions(IFile file, ELContext context, IDocument document, CharSequence prefix,
int position, boolean returnEqualedVariablesOnly) throws BadLocationException, StringIndexOutOfBoundsException {
List<TextProposal> completions = new ArrayList<TextProposal>();
- ELResolutionImpl status = resolveELOperand(file, parseOperand("" + prefix), returnEqualedVariablesOnly, position); //$NON-NLS-1$
+ ELResolutionImpl status = resolveELOperand(file, context, parseOperand("" + prefix), returnEqualedVariablesOnly, position); //$NON-NLS-1$
if(status!=null) {
completions.addAll(status.getProposals());
}
@@ -160,7 +160,7 @@
return completions;
}
- public ELResolutionImpl resolveELOperand(IFile file,
+ public ELResolutionImpl resolveELOperand(IFile file, ELContext context,
ELExpression operand, boolean returnEqualedVariablesOnly, int offset)
throws BadLocationException, StringIndexOutOfBoundsException {
if(!(operand instanceof ELInvocationExpression) || file == null) {
@@ -267,7 +267,7 @@
}
if(!resolvedVariables.isEmpty() && resolvedVariables.iterator().next() instanceof IJSFVariable) {
- return buildJavaResolution(resolution, left, expr, operand, resolvedVariables, returnEqualedVariablesOnly, offset);
+ return buildJavaResolution(resolution, context, left, expr, operand, resolvedVariables, returnEqualedVariablesOnly, offset);
}
//process segments one by one
@@ -294,14 +294,14 @@
}
//Method content copies code from the end AbstractELCompletionEngine.resolveELOperand
- ELResolutionImpl buildJavaResolution(ELResolutionImpl resolution, ELInvocationExpression left, ELInvocationExpression expr,
+ ELResolutionImpl buildJavaResolution(ELResolutionImpl resolution, ELContext context, ELInvocationExpression left, ELInvocationExpression expr,
ELExpression operand, List<IVariable> resolvedVariables, boolean returnEqualedVariablesOnly, int offset) {
boolean varIsUsed = false;
// First segment is found - proceed with next tokens
List<TypeInfoCollector.MemberInfo> members = new ArrayList<TypeInfoCollector.MemberInfo>();
JavaMemberELSegmentImpl segment = new JavaMemberELSegmentImpl(expr.getFirstToken());
for (IVariable var : resolvedVariables) {
- TypeInfoCollector.MemberInfo member = getMemberInfoByVariable(var, returnEqualedVariablesOnly, offset);
+ TypeInfoCollector.MemberInfo member = getMemberInfoByVariable(var, context, returnEqualedVariablesOnly, offset);
if (member != null && !members.contains(member)) {
members.add(member);
segment.setMemberInfo(member);
@@ -611,7 +611,7 @@
* @see org.jboss.tools.common.el.core.ca.AbstractELCompletionEngine#getMemberInfoByVariable(org.jboss.tools.common.el.core.resolver.IVariable, boolean)
*/
@Override
- protected MemberInfo getMemberInfoByVariable(IVariable var,
+ protected MemberInfo getMemberInfoByVariable(IVariable var, ELContext context,
boolean onlyEqualNames, int offset) {
if(var instanceof IJSFVariable) {
return TypeInfoCollector.createMemberInfo(((IJSFVariable)var).getSourceMember());
@@ -624,7 +624,7 @@
* @see org.jboss.tools.common.el.core.ca.AbstractELCompletionEngine#resolveVariables(org.eclipse.core.resources.IFile, org.jboss.tools.common.el.core.model.ELInvocationExpression, boolean, boolean)
*/
@Override
- public List<IVariable> resolveVariables(IFile file,
+ public List<IVariable> resolveVariables(IFile file, ELContext context,
ELInvocationExpression expr, boolean isFinal, boolean onlyEqualNames, int offset) {
return resolveVariablesInternal(file, expr, isFinal, onlyEqualNames);
}
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSFELCompletionEngine.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSFELCompletionEngine.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSFELCompletionEngine.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -24,6 +24,7 @@
import org.jboss.tools.common.el.core.model.ELInvocationExpression;
import org.jboss.tools.common.el.core.parser.ELParserFactory;
import org.jboss.tools.common.el.core.parser.ELParserUtil;
+import org.jboss.tools.common.el.core.resolver.ELContext;
import org.jboss.tools.common.el.core.resolver.IVariable;
import org.jboss.tools.common.el.core.resolver.TypeInfoCollector;
import org.jboss.tools.common.el.core.resolver.TypeInfoCollector.MemberInfo;
@@ -57,6 +58,7 @@
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.el.AbstractELCompletionEngine#log(java.lang.Exception)
*/
+ @Override
protected void log(Exception e) {
JSFModelPlugin.getPluginLog().logError(e);
}
@@ -65,6 +67,7 @@
* (non-Javadoc)
* @see org.jboss.tools.common.el.core.resolver.ELCompletionEngine#getParserFactory()
*/
+ @Override
public ELParserFactory getParserFactory() {
return factory;
}
@@ -73,10 +76,11 @@
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.el.AbstractELCompletionEngine#resolveVariables(org.eclipse.core.resources.IFile, org.jboss.tools.common.el.core.model.ELInvocationExpression, boolean, boolean)
*/
- public List<IJSFVariable> resolveVariables(IFile file, ELInvocationExpression expr, boolean isFinal, boolean onlyEqualNames, int offset) {
+ @Override
+ public List<IJSFVariable> resolveVariables(IFile file, ELContext context, ELInvocationExpression expr, boolean isFinal, boolean onlyEqualNames, int offset) {
IModelNature project = EclipseResourceUtil.getModelNature(file.getProject());
- return resolveVariables(file, project, expr, isFinal, onlyEqualNames, offset);
+ return resolveVariables(file, context, project, expr, isFinal, onlyEqualNames, offset);
}
/**
@@ -87,7 +91,7 @@
* @param onlyEqualNames
* @return
*/
- public List<IJSFVariable> resolveVariables(IFile file, IModelNature project, ELInvocationExpression expr, boolean isFinal, boolean onlyEqualNames, int offset) {
+ public List<IJSFVariable> resolveVariables(IFile file, ELContext context, IModelNature project, ELInvocationExpression expr, boolean isFinal, boolean onlyEqualNames, int offset) {
List<IJSFVariable>resolvedVars = new ArrayList<IJSFVariable>();
if (project == null)
@@ -96,7 +100,7 @@
String varName = expr.toString();
if (varName != null) {
- resolvedVars = resolveVariables(project, varName, onlyEqualNames, offset);
+ resolvedVars = resolveVariables(project, context, varName, onlyEqualNames, offset);
}
if (resolvedVars != null && !resolvedVars.isEmpty()) {
List<IJSFVariable> newResolvedVars = new ArrayList<IJSFVariable>();
@@ -134,7 +138,7 @@
return new ArrayList<IJSFVariable>();
}
- protected List<IJSFVariable> resolveVariables(IModelNature project, String varName, boolean onlyEqualNames, int offset) {
+ protected List<IJSFVariable> resolveVariables(IModelNature project, ELContext context, String varName, boolean onlyEqualNames, int offset) {
if(project == null) return null;
List<IJSFVariable> beans = new JSFPromptingProvider().getVariables(project.getModel());
List<IJSFVariable> resolvedVariables = new ArrayList<IJSFVariable>();
@@ -157,7 +161,8 @@
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.el.AbstractELCompletionEngine#getMemberInfoByVariable(org.jboss.tools.jst.web.kb.el.AbstractELCompletionEngine.IVariable, boolean)
*/
- protected TypeInfoCollector.MemberInfo getMemberInfoByVariable(IJSFVariable var, boolean onlyEqualNames, int offset) {
+ @Override
+ protected TypeInfoCollector.MemberInfo getMemberInfoByVariable(IJSFVariable var, ELContext context, boolean onlyEqualNames, int offset) {
return TypeInfoCollector.createMemberInfo(((IJSFVariable)var).getSourceMember());
}
@@ -179,6 +184,7 @@
* (non-Javadoc)
* @see org.jboss.tools.jsf.model.JSFELCompletionEngine.IJSFVariable#getSourceMember()
*/
+ @Override
public IMember getSourceMember() {
return source;
}
@@ -187,6 +193,7 @@
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.el.AbstractELCompletionEngine.IVariable#getName()
*/
+ @Override
public String getName() {
return name;
}
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSFFuncsELCompletionEngine.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSFFuncsELCompletionEngine.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSFFuncsELCompletionEngine.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -87,7 +87,7 @@
* @see org.jboss.tools.common.el.core.ca.AbstractELCompletionEngine#resolveVariables(org.eclipse.core.resources.IFile, org.jboss.tools.common.el.core.model.ELInvocationExpression, boolean, boolean)
*/
@Override
- public List<IJSFVariable> resolveVariables(IFile file,
+ public List<IJSFVariable> resolveVariables(IFile file, ELContext context,
ELInvocationExpression expr, boolean isFinal, boolean onlyEqualNames, int offset) {
return resolveVariablesInternal(file, expr, isFinal, onlyEqualNames, offset);
}
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSFImplicitObjectELResolver.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSFImplicitObjectELResolver.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSFImplicitObjectELResolver.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -27,6 +27,7 @@
import org.jboss.tools.common.el.core.model.ELModel;
import org.jboss.tools.common.el.core.parser.ELParser;
import org.jboss.tools.common.el.core.parser.ELParserUtil;
+import org.jboss.tools.common.el.core.resolver.ELContext;
import org.jboss.tools.common.el.core.resolver.ELResolution;
import org.jboss.tools.common.el.core.resolver.ELSegment;
import org.jboss.tools.common.el.core.resolver.JavaMemberELSegment;
@@ -65,9 +66,10 @@
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.el.AbstractELCompletionEngine#resolveVariables(org.eclipse.core.resources.IFile, org.jboss.tools.common.el.core.model.ELInvocationExpression, boolean, boolean)
*/
- public List<IJSFVariable> resolveVariables(IFile file, ELInvocationExpression expr, boolean isFinal, boolean onlyEqualNames, int offset) {
+ @Override
+ public List<IJSFVariable> resolveVariables(IFile file, ELContext context, ELInvocationExpression expr, boolean isFinal, boolean onlyEqualNames, int offset) {
this.file = file;
- return super.resolveVariables(file, expr, isFinal, onlyEqualNames, offset);
+ return super.resolveVariables(file, context, expr, isFinal, onlyEqualNames, offset);
}
/*
@@ -75,7 +77,7 @@
* @see org.jboss.tools.jsf.model.JSFELCompletionEngine#resolveVariables(org.jboss.tools.common.model.project.IModelNature, java.lang.String, boolean, int)
*/
@Override
- protected List<IJSFVariable> resolveVariables(IModelNature project, String varName, boolean onlyEqualNames, int offset) {
+ protected List<IJSFVariable> resolveVariables(IModelNature project, ELContext context, String varName, boolean onlyEqualNames, int offset) {
if(file.getProject() == null) {
return null;
}
@@ -103,7 +105,7 @@
for (String var : elVars) {
try {
- ELResolution resolution = resolveEL(file, IMPLICT_OBJECTS_ELS.get(var), false, offset);
+ ELResolution resolution = resolveEL(file, context, IMPLICT_OBJECTS_ELS.get(var), false, offset);
if(resolution!=null && resolution.isResolved()) {
ELSegment segment = resolution.getLastSegment();
if(segment instanceof JavaMemberELSegment) {
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSFMessageELCompletionEngine.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSFMessageELCompletionEngine.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSFMessageELCompletionEngine.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -722,7 +722,7 @@
* @see org.jboss.tools.common.el.core.ca.AbstractELCompletionEngine#getMemberInfoByVariable(org.jboss.tools.common.el.core.resolver.IVariable, boolean)
*/
@Override
- protected MemberInfo getMemberInfoByVariable(IVariable var,
+ protected MemberInfo getMemberInfoByVariable(IVariable var, ELContext context,
boolean onlyEqualNames, int offset) {
return null;
}
@@ -732,7 +732,7 @@
* @see org.jboss.tools.common.el.core.ca.AbstractELCompletionEngine#resolveVariables(org.eclipse.core.resources.IFile, org.jboss.tools.common.el.core.model.ELInvocationExpression, boolean, boolean)
*/
@Override
- public List<IVariable> resolveVariables(IFile file,
+ public List<IVariable> resolveVariables(IFile file, ELContext context,
ELInvocationExpression expr, boolean isFinal, boolean onlyEqualNames, int offset) {
return null;
}
Modified: trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/JSF2ModelTest.java
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/JSF2ModelTest.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/JSF2ModelTest.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -24,13 +24,14 @@
import org.eclipse.core.runtime.Path;
import org.jboss.tools.common.el.core.model.ELInvocationExpression;
import org.jboss.tools.common.el.core.parser.ELParser;
-import org.jboss.tools.common.el.core.parser.ELParserFactory;
import org.jboss.tools.common.el.core.parser.ELParserUtil;
+import org.jboss.tools.common.el.core.resolver.ELContext;
import org.jboss.tools.common.validation.ValidatorManager;
import org.jboss.tools.jsf.jsf2.bean.el.JSF2ElResolver;
import org.jboss.tools.jsf.jsf2.bean.model.IJSF2ManagedBean;
import org.jboss.tools.jsf.jsf2.bean.model.IJSF2Project;
import org.jboss.tools.jsf.jsf2.bean.model.JSF2ProjectFactory;
+import org.jboss.tools.jst.web.kb.PageContextFactory;
import org.jboss.tools.test.util.JobUtils;
import org.jboss.tools.test.util.ResourcesUtils;
@@ -84,19 +85,20 @@
ELInvocationExpression exp = (ELInvocationExpression)p.parse("#{myb}").getInstances().get(0).getExpression();
assertFalse(jsf2.isMetadataComplete());
- List<IJSF2ManagedBean> bs = resolver.resolveVariables(f, exp, true, false, 5);
+ ELContext context = PageContextFactory.getInstance().createPageContext(f);
+ List<IJSF2ManagedBean> bs = resolver.resolveVariables(f, context, exp, true, false, 5);
assertFalse(bs.isEmpty());
replaceFile(webproject, "WebContent/WEB-INF/faces-config.complete", "WebContent/WEB-INF/faces-config.xml");
assertTrue(jsf2.isMetadataComplete());
- bs = resolver.resolveVariables(f, exp, true, false, 5);
+ bs = resolver.resolveVariables(f, context, exp, true, false, 5);
assertTrue(bs.isEmpty());
beans = jsf2.getManagedBeans("mybean1");
assertTrue(beans.isEmpty());
replaceFile(webproject, "WebContent/WEB-INF/faces-config.original", "WebContent/WEB-INF/faces-config.xml");
assertFalse(jsf2.isMetadataComplete());
- bs = resolver.resolveVariables(f, exp, true, false, 5);
+ bs = resolver.resolveVariables(f, context, exp, true, false, 5);
assertFalse(bs.isEmpty());
beans = jsf2.getManagedBeans("mybean1");
assertEquals(1, beans.size());
@@ -120,4 +122,4 @@
JobUtils.waitForIdle();
}
}
-}
+}
\ No newline at end of file
Modified: trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/JspELCompletionProposalComputer.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/JspELCompletionProposalComputer.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/JspELCompletionProposalComputer.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -90,29 +90,35 @@
protected void setVars(ELContextImpl context, IFile file) {
ELCompletionEngine fakeEngine = new ELCompletionEngine() {
- public ELResolution resolveELOperand(IFile file,
+ @Override
+ public ELResolution resolveELOperand(IFile file, ELContext context,
ELExpression operand, boolean returnEqualedVariablesOnly,
List<Var> vars, ElVarSearcher varSearcher, int offset)
throws BadLocationException, StringIndexOutOfBoundsException {
return new ELResolutionImpl(operand);
}
+ @Override
public ELParserFactory getParserFactory() {
return ELParserUtil.getJbossFactory();
}
+ @Override
public List<TextProposal> getProposals(ELContext context, String el, int offset) {
return Collections.emptyList();
}
+ @Override
public ELResolution resolve(ELContext context, ELExpression operand, int offset) {
return new ELResolutionImpl(operand);
}
+ @Override
public List<TextProposal> getProposals(ELContext context, int offset) {
return Collections.emptyList();
}
+ @Override
public IRelevanceCheck createRelevanceCheck(IJavaElement element) {
return null;
}
@@ -131,6 +137,4 @@
protected int getTagInsertionBaseRelevance() {
return TextProposal.R_TAG_INSERTION;
}
-
-
-}
+}
\ No newline at end of file
Modified: trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/JspTagCompletionProposalComputer.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/JspTagCompletionProposalComputer.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/JspTagCompletionProposalComputer.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -124,29 +124,35 @@
protected void setVars(ELContextImpl context, IFile file) {
ELCompletionEngine fakeEngine = new ELCompletionEngine() {
- public ELResolution resolveELOperand(IFile file,
+ @Override
+ public ELResolution resolveELOperand(IFile file, ELContext context,
ELExpression operand, boolean returnEqualedVariablesOnly,
List<Var> vars, ElVarSearcher varSearcher, int offset)
throws BadLocationException, StringIndexOutOfBoundsException {
return new ELResolutionImpl(operand);
}
+ @Override
public ELParserFactory getParserFactory() {
return ELParserUtil.getJbossFactory();
}
+ @Override
public List<TextProposal> getProposals(ELContext context, String el, int offset) {
return Collections.emptyList();
}
+ @Override
public ELResolution resolve(ELContext context, ELExpression operand, int offset) {
return new ELResolutionImpl(operand);
}
+ @Override
public List<TextProposal> getProposals(ELContext context, int offset) {
return Collections.emptyList();
}
+ @Override
public IRelevanceCheck createRelevanceCheck(IJavaElement element) {
return null;
}
@@ -160,5 +166,4 @@
}
}
}
-
-}
+}
\ No newline at end of file
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/PageContextFactory.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/PageContextFactory.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/PageContextFactory.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -153,15 +153,15 @@
* The cache to store the created contexts
* The key is IFile.getFullPath().toString() of the resource of the context
*/
- private Map<IFile, ELContext> cache = new HashMap<IFile, ELContext>();
+ private Map<IFile, SimpleELContext> cache = new HashMap<IFile, SimpleELContext>();
- private ELContext getSavedContext(IFile resource) {
+ private SimpleELContext getSavedContext(IFile resource) {
synchronized (cache) {
return cache.get(resource);
}
}
- private void saveConvext(ELContext context) {
+ private void saveConvext(SimpleELContext context) {
if (context.getResource() != null) {
synchronized (cache) {
cache.put(context.getResource(), context);
@@ -289,7 +289,7 @@
}
}
- private ELContext createPropertiesContext(IFile file, IDocument document, boolean useLastSavedStateOfFile) {
+ private SimpleELContext createPropertiesContext(IFile file, IDocument document, boolean useLastSavedStateOfFile) {
ELContextImpl context = new ELContextImpl();
context.setResource(file);
context.setElResolvers(ELResolverFactoryManager.getInstance().getResolvers(file));
@@ -310,7 +310,7 @@
return context;
}
- private static ELContext createJavaContext(IFile file, IDocument document, boolean useLastSavedStateOfFile) {
+ private static SimpleELContext createJavaContext(IFile file, IDocument document, boolean useLastSavedStateOfFile) {
ELContextImpl context = new ELContextImpl();
context.setResource(file);
context.setElResolvers(ELResolverFactoryManager.getInstance().getResolvers(file));
@@ -375,8 +375,9 @@
file = getResource(document);
}
- boolean isContextCachingAllowed = !dontUseCache && !EclipseUIUtil.isOpenInActiveEditor(file);
- ELContext context = isContextCachingAllowed ? getSavedContext(file) : null;
+ boolean modified = EclipseUIUtil.isOpenInActiveEditor(file);
+ boolean isContextCachingAllowed = !dontUseCache && !modified;
+ SimpleELContext context = isContextCachingAllowed ? getSavedContext(file) : null;
if (context == null) {
String typeId = getContentTypeIdentifier(file == null ? document : file);
@@ -444,6 +445,7 @@
}
if (context != null) { // && isContextCachingAllowed) { <- Save context even for modified files to prevent multiple initialization when invoked from NON-UI thread.
+ context.setDirty(modified);
saveConvext(context);
}
}
@@ -537,7 +539,7 @@
return null;
}
- private static ELContext createPageContextInstance(String contentType) {
+ private static SimpleELContext createPageContextInstance(String contentType) {
String contextType = IncludeContextBuilder.getContextType(contentType);
if (contextType == null && contentType != null) {
IContentType baseContentType = Platform.getContentTypeManager().getContentType(contentType);
@@ -552,7 +554,7 @@
return createContextInstanceOfType(contextType);
}
- private static ELContext createContextInstanceOfType(String contextType) {
+ private static SimpleELContext createContextInstanceOfType(String contextType) {
if (JSP_PAGE_CONTEXT_TYPE.equals(contextType)) {
return new JspContextImpl();
} else if (FACELETS_PAGE_CONTEXT_TYPE.equals(contextType)) {
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ELValidator.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ELValidator.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ELValidator.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -61,9 +61,9 @@
import org.jboss.tools.common.java.IJavaSourceReference;
import org.jboss.tools.common.validation.ContextValidationHelper;
import org.jboss.tools.common.validation.EditorValidationContext;
-import org.jboss.tools.common.validation.IAsYouTypeValidator;
import org.jboss.tools.common.validation.IELValidationDelegate;
import org.jboss.tools.common.validation.IProjectValidationContext;
+import org.jboss.tools.common.validation.IStringValidator;
import org.jboss.tools.common.validation.IValidatingProjectTree;
import org.jboss.tools.common.validation.ValidatorManager;
import org.jboss.tools.jst.web.kb.PageContextFactory;
@@ -75,7 +75,7 @@
* EL Validator
* @author Alexey Kazakov
*/
-public class ELValidator extends WebValidator implements IAsYouTypeValidator {
+public class ELValidator extends WebValidator implements IStringValidator {
public static final String ID = "org.jboss.tools.jst.web.kb.ELValidator"; //$NON-NLS-1$
public static final String PROBLEM_TYPE = "org.jboss.tools.jst.web.kb.elproblem"; //$NON-NLS-1$
@@ -255,6 +255,7 @@
setAsYouTypeValidation(true);
this.document = validationContext.getDocument();
ELContext elContext = PageContextFactory.createPageContext(validationContext.getDocument(), true);
+ elContext.setDirty(true);
Set<ELReference> references = elContext.getELReferences(dirtyRegion);
for (ELReference elReference : references) {
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -37,6 +37,7 @@
import org.jboss.tools.common.el.core.parser.ELParser;
import org.jboss.tools.common.el.core.parser.ELParserFactory;
import org.jboss.tools.common.el.core.parser.ELParserUtil;
+import org.jboss.tools.common.el.core.resolver.ELContext;
import org.jboss.tools.common.el.core.resolver.ELResolution;
import org.jboss.tools.common.el.core.resolver.ELResolutionImpl;
import org.jboss.tools.common.el.core.resolver.ELSegment;
@@ -96,10 +97,12 @@
* (non-Javadoc)
* @see org.jboss.tools.common.el.core.resolver.ELCompletionEngine#getParserFactory()
*/
+ @Override
public ELParserFactory getParserFactory() {
return factory;
}
+ @Override
protected void log(Exception e) {
SeamCorePlugin.getPluginLog().logError(e);
}
@@ -159,16 +162,18 @@
}
@Override
- public List<ISeamContextVariable> resolveVariables(IFile file, ELInvocationExpression expr, boolean isFinal, boolean onlyEqualNames, int offset) {
+ public List<ISeamContextVariable> resolveVariables(IFile file, ELContext context, ELInvocationExpression expr, boolean isFinal, boolean onlyEqualNames, int offset) {
ISeamProject project = SeamCorePlugin.getSeamProject(file.getProject(), true);
// ScopeType scope = getScope(project, file);
return resolveVariables(project, file, expr, isFinal, onlyEqualNames);
}
- protected TypeInfoCollector.MemberInfo getMemberInfoByVariable(ISeamContextVariable var, boolean onlyEqualNames, int offset) {
+ @Override
+ protected TypeInfoCollector.MemberInfo getMemberInfoByVariable(ISeamContextVariable var, ELContext context, boolean onlyEqualNames, int offset) {
return SeamExpressionResolver.getMemberInfoByVariable(var, true, this, offset);
}
+ @Override
protected void setImage(TextProposal proposal, ISeamContextVariable var) {
if (isSeamMessagesComponentVariable((ISeamContextVariable)var)) {
proposal.setImage(SEAM_MESSAGES_PROPOSAL_IMAGE);
@@ -177,10 +182,12 @@
}
}
+ @Override
protected boolean isSingularAttribute(ISeamContextVariable var) {
return var instanceof IBijectedAttribute;
}
+ @Override
protected void setImage(TextProposal kbProposal, TypeInfoCollector.MemberPresentation proposal) {
if (proposal.getMember() instanceof MessagesInfo) {
kbProposal.setImage(SEAM_MESSAGES_PROPOSAL_IMAGE);
@@ -189,10 +196,12 @@
}
}
+ @Override
protected boolean isSingularMember(TypeInfoCollector.MemberInfo mbr) {
return (mbr instanceof MessagesInfo);
}
+ @Override
protected void resolveLastSegment(ELInvocationExpression expr,
List<TypeInfoCollector.MemberInfo> members,
ELResolutionImpl resolution,
@@ -509,7 +518,7 @@
ElVarSearcher varSearcher = new ElVarSearcher(file, this);
List<Var> vars = varSearcher.findAllVars(file, expr.getStartPosition());
- ELResolution resolution = resolveELOperand(file, expr, true, vars, varSearcher, 0);
+ ELResolution resolution = resolveELOperand(file, null, expr, true, vars, varSearcher, 0);
if (resolution!=null && resolution.isResolved()) {
ELSegment segment = resolution.getLastSegment();
if(segment instanceof JavaMemberELSegment) {
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamExpressionResolver.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamExpressionResolver.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamExpressionResolver.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -367,7 +367,7 @@
if(ex instanceof ELInvocationExpression) {
ELInvocationExpression expr = (ELInvocationExpression)ex;
try {
- ELResolution resolution = engine.resolveEL(null, expr, false, offset);
+ ELResolution resolution = engine.resolveEL(null, null, expr, false, offset);
if(resolution != null && resolution.isResolved()) {
ELSegment segment = resolution.getLastSegment();
if(segment instanceof JavaMemberELSegmentImpl) {
Modified: trunk/seam/plugins/org.jboss.tools.seam.text.ext/src/org/jboss/tools/seam/text/ext/hyperlink/SeamBeanHyperlinkPartitioner.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.text.ext/src/org/jboss/tools/seam/text/ext/hyperlink/SeamBeanHyperlinkPartitioner.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/seam/plugins/org.jboss.tools.seam.text.ext/src/org/jboss/tools/seam/text/ext/hyperlink/SeamBeanHyperlinkPartitioner.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -300,7 +300,7 @@
return null;
List<Var> allVars= varSearcher.findAllVars(file, start);
- Var var = varSearcher.findVarForEl(expr.getText(), allVars, true);
+ Var var = varSearcher.findVarForEl(expr.getText(), null, allVars, true);
if (var == null) {
// Find a Var in the current offset assuming that it's a node with var/value attribute pair
var = varSearcher.findVar(file, start);
Modified: trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamSearchEngine.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamSearchEngine.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamSearchEngine.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -12,14 +12,12 @@
package org.jboss.tools.seam.ui.search;
import java.io.File;
-import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.zip.CRC32;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
@@ -29,7 +27,6 @@
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.search.IJavaSearchConstants;
import org.eclipse.jdt.core.search.IJavaSearchScope;
-import org.eclipse.jdt.core.search.SearchEngine;
import org.eclipse.jdt.core.search.SearchParticipant;
import org.eclipse.jdt.core.search.SearchPattern;
import org.eclipse.jdt.core.search.SearchRequestor;
@@ -41,8 +38,8 @@
import org.jboss.tools.common.el.core.resolver.Var;
import org.jboss.tools.seam.core.ISeamContextVariable;
import org.jboss.tools.seam.core.ISeamProject;
-import org.jboss.tools.seam.core.SeamCorePlugin;
import org.jboss.tools.seam.core.SeamCoreMessages;
+import org.jboss.tools.seam.core.SeamCorePlugin;
import org.jboss.tools.seam.internal.core.el.SeamELCompletionEngine;
import org.jboss.tools.seam.ui.SeamGuiPlugin;
@@ -137,7 +134,7 @@
return Status.OK_STATUS;
List<Var> allVars= varSearcher.findAllVars(sourceFile, tokens.getStartPosition());
- Var var = varSearcher.findVarForEl(elText.toString(), allVars, true);
+ Var var = varSearcher.findVarForEl(elText.toString(), null, allVars, true);
if (var == null) {
// Find a Var in the current offset assuming that it's a node with var/value attribute pair
var = varSearcher.findVar(sourceFile, tokens.getStartPosition());
Modified: trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamSearchVisitor.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamSearchVisitor.java 2012-07-06 22:13:38 UTC (rev 42448)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamSearchVisitor.java 2012-07-06 23:29:53 UTC (rev 42449)
@@ -767,7 +767,7 @@
expr = expr.getLeft();
}
} else if (fVarMatchers != null) {
- Var var = fELVarSearcher.findVarForEl(operand, fVarListForCurentValidatedNode, false);
+ Var var = fELVarSearcher.findVarForEl(operand, null, fVarListForCurentValidatedNode, false);
if (var != null){
if (matches(var)) {
ELInvocationExpression expr = token;
13 years, 9 months
JBoss Tools SVN: r42448 - in trunk: cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test and 2 other directories.
by jbosstools-commits@lists.jboss.org
Author: dazarov
Date: 2012-07-06 18:13:38 -0400 (Fri, 06 Jul 2012)
New Revision: 42448
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/NonStaticProducerBroken.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/NonStaticProducerBroken.new
trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/marker/CDIQuickFixTest.java
trunk/common/tests/org.jboss.tools.common.base.test/src/org/jboss/tools/common/base/test/QuickFixTestUtil.java
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/CDIUIAllTests.java
Log:
Make Quick Fix "Configure Problem Severity" work on Temporary annotations https://issues.jboss.org/browse/JBIDE-12232
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/NonStaticProducerBroken.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/NonStaticProducerBroken.java (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/NonStaticProducerBroken.java 2012-07-06 22:13:38 UTC (rev 42448)
@@ -0,0 +1,10 @@
+package org.jboss.jsr299.tck.tests.jbt.quickfixes;
+
+import javax.ejb.Stateless;
+import javax.enterprise.inject.Produces;
+
+@Stateless
+public class NonStaticProducerBroken {
+
+ public FunnelWeaver<String> anotherFunnelWeaver;
+}
\ No newline at end of file
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/NonStaticProducerBroken.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/NonStaticProducerBroken.new
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/NonStaticProducerBroken.new (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/NonStaticProducerBroken.new 2012-07-06 22:13:38 UTC (rev 42448)
@@ -0,0 +1,10 @@
+package org.jboss.jsr299.tck.tests.jbt.quickfixes;
+
+import javax.ejb.Stateless;
+import javax.enterprise.inject.Produces;
+
+@Stateless
+public class NonStaticProducerBroken {
+
+ @Produces public FunnelWeaver<String> anotherFunnelWeaver;
+}
\ No newline at end of file
Modified: trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/CDIUIAllTests.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/CDIUIAllTests.java 2012-07-06 22:09:27 UTC (rev 42447)
+++ trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/CDIUIAllTests.java 2012-07-06 22:13:38 UTC (rev 42448)
@@ -18,6 +18,7 @@
import org.eclipse.wst.validation.ValidationFramework;
import org.jboss.tools.cdi.core.test.CDICoreTestSetup;
import org.jboss.tools.cdi.ui.test.marker.CDIMarkerResolutionTest;
+import org.jboss.tools.cdi.ui.test.marker.CDIQuickFixTest;
import org.jboss.tools.cdi.ui.test.perspective.CDIPerspectiveTest;
import org.jboss.tools.cdi.ui.test.preferences.CDIPreferencePageTest;
import org.jboss.tools.cdi.ui.test.search.CDISearchParticipantTest;
@@ -50,6 +51,8 @@
TestSuite suite = new TestSuite("TCK Tests");
suiteAll.addTestSuite(CDIMarkerResolutionTest.class);
+
+ suiteAll.addTestSuite(CDIQuickFixTest.class);
suiteAll.addTestSuite(CDIPerspectiveTest.class);
suiteAll.addTestSuite(NewCDIClassWizardFactoryTest.class);
Added: trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/marker/CDIQuickFixTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/marker/CDIQuickFixTest.java (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/marker/CDIQuickFixTest.java 2012-07-06 22:13:38 UTC (rev 42448)
@@ -0,0 +1,20 @@
+package org.jboss.tools.cdi.ui.test.marker;
+
+import org.eclipse.core.runtime.CoreException;
+import org.jboss.tools.cdi.core.test.tck.TCKTest;
+import org.jboss.tools.cdi.internal.core.validation.CDIValidationErrorManager;
+import org.jboss.tools.common.base.test.QuickFixTestUtil;
+import org.jboss.tools.common.ui.marker.ConfigureProblemSeverityMarkerResolution;
+
+public class CDIQuickFixTest extends TCKTest {
+ QuickFixTestUtil util = new QuickFixTestUtil();
+
+ public void testConfigureProblemSeverity() throws CoreException {
+ util.checkPrpposal(tckProject,
+ "JavaSource/org/jboss/jsr299/tck/tests/jbt/quickfixes/NonStaticProducerBroken.java",
+ "JavaSource/org/jboss/jsr299/tck/tests/jbt/quickfixes/NonStaticProducerBroken.new",
+ CDIValidationErrorManager.MESSAGE_ID_ATTRIBUTE_NAME,
+ CDIValidationErrorManager.ILLEGAL_PRODUCER_FIELD_IN_SESSION_BEAN_ID,
+ ConfigureProblemSeverityMarkerResolution.class);
+ }
+}
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/marker/CDIQuickFixTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/common/tests/org.jboss.tools.common.base.test/src/org/jboss/tools/common/base/test/QuickFixTestUtil.java
===================================================================
--- trunk/common/tests/org.jboss.tools.common.base.test/src/org/jboss/tools/common/base/test/QuickFixTestUtil.java (rev 0)
+++ trunk/common/tests/org.jboss.tools.common.base.test/src/org/jboss/tools/common/base/test/QuickFixTestUtil.java 2012-07-06 22:13:38 UTC (rev 42448)
@@ -0,0 +1,194 @@
+package org.jboss.tools.common.base.test;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import junit.framework.Assert;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor;
+import org.eclipse.jdt.internal.ui.javaeditor.JavaMarkerAnnotation;
+import org.eclipse.jdt.ui.text.java.IJavaCompletionProposal;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.source.IAnnotationModel;
+import org.eclipse.jface.text.source.ISourceViewer;
+import org.eclipse.ltk.core.refactoring.CompositeChange;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.FileEditorInput;
+import org.jboss.tools.common.base.test.validation.TestUtil;
+import org.jboss.tools.common.quickfix.QuickFixManager;
+import org.jboss.tools.common.refactoring.TestableResolutionWithDialog;
+import org.jboss.tools.common.refactoring.TestableResolutionWithRefactoringProcessor;
+import org.jboss.tools.common.ui.marker.AddSuppressWarningsMarkerResolution;
+import org.jboss.tools.common.ui.marker.ConfigureProblemSeverityMarkerResolution;
+import org.jboss.tools.common.util.FileUtil;
+import org.jboss.tools.common.validation.java.JavaDirtyRegionProcessor.JavaProblemAnnotation;
+import org.jboss.tools.test.util.JobUtils;
+
+public class QuickFixTestUtil{
+ private static final int MAX_SECONDS_TO_WAIT = 10;
+
+ protected ISourceViewer getViewer(IEditorPart editor){
+ if(editor instanceof JavaEditor){
+ return ((JavaEditor)editor).getViewer();
+ }
+ return null;
+ }
+
+ protected String getEditorID(){
+ return "org.eclipse.jdt.ui.CompilationUnitEditor";
+ }
+
+ private void checkForConfigureProblemSeverity(IJavaCompletionProposal[] proposals){
+ for(IJavaCompletionProposal proposal : proposals){
+ if(proposal.getClass().equals(ConfigureProblemSeverityMarkerResolution.class))
+ return;
+ }
+ Assert.fail("Configure Problem Severity quick fix not found");
+ }
+
+ private void checkForAddSuppressWarnings(IFile file, JavaProblemAnnotation annotation, IJavaCompletionProposal[] proposals){
+ String severity = annotation.getMarkerType();
+ if(file.getFileExtension().equals("java") && severity.equals(JavaMarkerAnnotation.WARNING_ANNOTATION_TYPE)){
+ for(IJavaCompletionProposal proposal : proposals){
+ if(proposal.getClass().equals(AddSuppressWarningsMarkerResolution.class))
+ return;
+ }
+ Assert.fail("Add @SuppressWarnings marker resolution not found");
+ }
+ }
+
+ public void checkPrpposal(IProject project, String fileName, String newFile, String idName, int id, Class<? extends IJavaCompletionProposal> proposalClass) throws CoreException {
+ IFile file = project.getFile(fileName);
+ IFile nFile = project.getFile(newFile);
+
+ Assert.assertTrue("File - "+file.getFullPath()+" must be exist",file.exists());
+ Assert.assertTrue("File - "+nFile.getFullPath()+" must be exist",nFile.exists());
+
+ IEditorInput input = new FileEditorInput(file);
+
+ IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().openEditor(input, getEditorID(), true);
+ ISourceViewer viewer = getViewer(editor);
+
+ // change file
+ IDocument document = viewer.getDocument();
+
+ String text = FileUtil.getContentFromEditorOrFile(nFile);
+
+ document.set(text);
+
+ // Find annotation
+ JavaProblemAnnotation[] annotations = waitForProblemAnnotationAppearance(viewer);
+
+ for(JavaProblemAnnotation annotation : annotations){
+ IJavaCompletionProposal[] proposals = getCompletionProposals(annotation);
+ checkForConfigureProblemSeverity(proposals);
+ checkForAddSuppressWarnings(file, annotation, proposals);
+ for(IJavaCompletionProposal proposal : proposals){
+ if (proposal.getClass().equals(proposalClass)) {
+
+ if(proposal instanceof TestableResolutionWithRefactoringProcessor){
+ RefactoringProcessor processor = ((TestableResolutionWithRefactoringProcessor)proposal).getRefactoringProcessor();
+
+ RefactoringStatus status = processor.checkInitialConditions(new NullProgressMonitor());
+
+ Assert.assertNull("Rename processor returns fatal error", status.getEntryMatchingSeverity(RefactoringStatus.FATAL));
+
+ status = processor.checkFinalConditions(new NullProgressMonitor(), null);
+
+ Assert.assertNull("Rename processor returns fatal error", status.getEntryMatchingSeverity(RefactoringStatus.FATAL));
+
+ CompositeChange rootChange = (CompositeChange)processor.createChange(new NullProgressMonitor());
+
+ rootChange.perform(new NullProgressMonitor());
+ } else if(proposal instanceof TestableResolutionWithDialog){
+ ((TestableResolutionWithDialog) proposal).runForTest(null);
+ } else {
+ proposal.apply(document);
+ }
+
+ TestUtil.validate(file);
+
+ JavaProblemAnnotation[] newAnnotations = waitForProblemAnnotationAppearance(viewer);
+
+ Assert.assertTrue("Quick fix did not decrease number of problems. was: "+annotations.length+" now: "+newAnnotations.length, newAnnotations.length < annotations.length);
+
+ //checkResults(project, fileNames, results);
+
+ return;
+ }
+ }
+ }
+
+ Assert.fail("Quick fix: "+proposalClass+" not found");
+ }
+
+ public static IJavaCompletionProposal[] getCompletionProposals(JavaProblemAnnotation annotation){
+ ArrayList<IJavaCompletionProposal> proposals = new ArrayList<IJavaCompletionProposal>();
+
+ if(QuickFixManager.getInstance().hasProposals(annotation)){
+ List<IJavaCompletionProposal> list = QuickFixManager.getInstance().getProposals(annotation);
+ proposals.addAll(list);
+ }
+
+ return proposals.toArray(new IJavaCompletionProposal[]{});
+ }
+
+ private static void checkResults(IProject project, String[] fileNames, String[] results) throws CoreException{
+ for(int i = 0; i < results.length; i++){
+ IFile file = project.getFile(fileNames[i]);
+ IFile resultFile = project.getFile(results[i]);
+
+ String fileContent = FileUtil.readStream(file);
+ String resultContent = FileUtil.readStream(resultFile);
+
+ Assert.assertEquals("Wrong result of resolution", resultContent, fileContent);
+ }
+ }
+
+ protected JavaProblemAnnotation[] waitForProblemAnnotationAppearance(final ISourceViewer viewer) {
+ final ArrayList<JavaProblemAnnotation> annotations = new ArrayList<JavaProblemAnnotation>();
+
+ Display.getDefault().syncExec(new Runnable() {
+ public void run() {
+ int secondsLeft = MAX_SECONDS_TO_WAIT;
+ boolean isFirstPass = true;
+ while (secondsLeft-- > 0) {
+ if (!isFirstPass) {
+ JobUtils.delay(1000);
+
+ // clean differed events
+ while (Display.getCurrent().readAndDispatch())
+ ;
+ } else {
+ secondsLeft++; // because the wait step was skipped
+ }
+
+ //boolean found = false;
+ IAnnotationModel annotationModel = viewer.getAnnotationModel();
+ Iterator it = annotationModel.getAnnotationIterator();
+ while (it.hasNext()) {
+ Object o = it.next();
+
+ if (o instanceof JavaProblemAnnotation){
+ annotations.add((JavaProblemAnnotation) o);
+ }
+
+ }
+ isFirstPass = false;
+ }
+ }
+ });
+
+ return annotations.toArray(new JavaProblemAnnotation[]{});
+ }
+}
Property changes on: trunk/common/tests/org.jboss.tools.common.base.test/src/org/jboss/tools/common/base/test/QuickFixTestUtil.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
13 years, 9 months
JBoss Tools SVN: r42447 - trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2012-07-06 18:09:27 -0400 (Fri, 06 Jul 2012)
New Revision: 42447
Modified:
trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlink.java
trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlinkDetector.java
Log:
JBIDE-12295
https://issues.jboss.org/browse/JBIDE-12295
Open-on for variable declared by ui:param.
Modified: trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlink.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlink.java 2012-07-06 22:08:39 UTC (rev 42446)
+++ trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlink.java 2012-07-06 22:09:27 UTC (rev 42447)
@@ -34,10 +34,12 @@
public class ELHyperlink extends AbstractHyperlink{
private ELReference reference;
private ELSegment segment;
+ IOpenableReference openable;
- public ELHyperlink(IDocument document, ELReference reference, ELSegment segment) {
+ public ELHyperlink(IDocument document, ELReference reference, ELSegment segment, IOpenableReference openable) {
this.reference = reference;
this.segment = segment;
+ this.openable = openable;
setDocument(document);
}
@@ -55,10 +57,9 @@
@Override
protected void doHyperlink(IRegion region) {
- IOpenableReference[] openables = segment.getOpenable();
- if(openables.length > 0) {
- if(!openables[0].open()) {
+ if(openable != null) {
+ if(!openable.open()) {
openFileFailed();
}
//If openables.length > 1 - show menu.
@@ -83,9 +84,8 @@
@Override
public String getHyperlinkText() {
- IOpenableReference[] openables = segment.getOpenable();
- if(openables.length > 0) {
- return openables[0].getLabel();
+ if(openable != null) {
+ return openable.getLabel();
}
if(segment instanceof JavaMemberELSegment){
return "Should not get here."; //$NON-NLS-1$
Modified: trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlinkDetector.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlinkDetector.java 2012-07-06 22:08:39 UTC (rev 42446)
+++ trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlinkDetector.java 2012-07-06 22:09:27 UTC (rev 42447)
@@ -10,6 +10,7 @@
******************************************************************************/
package org.jboss.tools.jst.text.ext.hyperlink;
+import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -30,6 +31,7 @@
import org.jboss.tools.common.el.core.resolver.ELResolution;
import org.jboss.tools.common.el.core.resolver.ELResolver;
import org.jboss.tools.common.el.core.resolver.ELSegment;
+import org.jboss.tools.common.el.core.resolver.IOpenableReference;
import org.jboss.tools.jst.web.kb.PageContextFactory;
public class ELHyperlinkDetector extends AbstractHyperlinkDetector{
@@ -44,7 +46,7 @@
ELContext context = PageContextFactory.createPageContext(file);
if(context == null)
return null;
- Set<IHyperlink> links = new HashSet<IHyperlink>();
+ List<IHyperlink> links = new ArrayList<IHyperlink>();
ELReference reference = context.getELReference(region.getOffset());
if(reference != null){
ELInvocationExpression expression = findInvocationExpressionByOffset(reference, region.getOffset());
@@ -56,8 +58,15 @@
ELSegment segment = resolution.findSegmentByOffset(region.getOffset()-reference.getStartPosition());
if(segment != null && segment.isResolved()){
+ IOpenableReference[] openables = segment.getOpenable();
// return new IHyperlink[]{new ELHyperlink(textViewer.getDocument(), reference, segment)};
- links.add(new ELHyperlink(textViewer.getDocument(), reference, segment));
+ if(openables.length == 0) {
+ links.add(new ELHyperlink(textViewer.getDocument(), reference, segment, null));
+ } else {
+ for (IOpenableReference openable: openables) {
+ links.add(new ELHyperlink(textViewer.getDocument(), reference, segment, openable));
+ }
+ }
}
}
@@ -78,8 +87,7 @@
* @return
*/
public static ELInvocationExpression findInvocationExpressionByOffset(ELReference reference, int offset){
- ELExpression[] expressions = reference.getEl();
- for(ELExpression expression : expressions){
+ for(ELExpression expression : reference.getEl()){
if(reference.getStartPosition()+expression.getStartPosition() <= offset && reference.getStartPosition()+expression.getEndPosition() > offset){
ELInvocationExpression invocation = findInvocationExpressionByOffset(reference, expression, offset);
if(invocation != null)
13 years, 9 months
JBoss Tools SVN: r42446 - in trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb: include and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2012-07-06 18:08:39 -0400 (Fri, 06 Jul 2012)
New Revision: 42446
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/PageContextFactory.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/include/IncludeModel.java
Log:
JBIDE-12295
https://issues.jboss.org/browse/JBIDE-12295
Open-on for variable declared by ui:param.
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/PageContextFactory.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/PageContextFactory.java 2012-07-06 22:05:56 UTC (rev 42445)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/PageContextFactory.java 2012-07-06 22:08:39 UTC (rev 42446)
@@ -643,6 +643,7 @@
start = node.getStartOffset();
length = node.getEndOffset() - start;
+ var.setFile(context.getResource());
context.addVar(new Region(start, length), var);
}
}
@@ -685,21 +686,21 @@
if(element.hasAttribute(ATTR_NAME)) {
String var = element.getAttribute(ATTR_NAME);
int declOffset = 0;
- int declLength = 0;
+ int length = 0;
Node varAttr = element.getAttributeNode(ATTR_NAME);
if (varAttr instanceof IDOMAttr) {
- int varNameStart = ((IDOMAttr)varAttr).getNameRegionStartOffset();
- int varNameEnd = ((IDOMAttr)varAttr).getNameRegionEndOffset();
- declOffset = varNameStart;
- declLength = varNameEnd - varNameStart;
+ int varStart = ((IDOMAttr)varAttr).getValueRegionStartOffset() + 1;
+ declOffset = varStart;
+ length = var.length();
}
var = var.trim();
if(!"".equals(var)) { //$NON-NLS-1$
if(element.hasAttribute(ATTR_VALUE)) {
String value = element.getAttribute(ATTR_VALUE);
value = value.trim();
- Var newVar = new Var(ELParserUtil.getJbossFactory(), var, value, declOffset, declLength);
+ Var newVar = new Var(ELParserUtil.getJbossFactory(), var, value, declOffset, length);
if(newVar.getElToken()!=null) {
+ newVar.setFile(context.getResource());
if(vars == null) {
vars = new ArrayList<Var>();
}
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/include/IncludeModel.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/include/IncludeModel.java 2012-07-06 22:05:56 UTC (rev 42445)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/include/IncludeModel.java 2012-07-06 22:08:39 UTC (rev 42446)
@@ -16,6 +16,7 @@
import java.util.List;
import java.util.Map;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.jboss.tools.common.el.core.ELReference;
@@ -149,6 +150,9 @@
String name = v.getAttribute(STORE_ATTR_NAME);
String value = v.getAttribute(STORE_ATTR_VALUE);
Var var = new Var(ELParserUtil.getJbossFactory(), name, value, 0, 0); //TODO
+ if(path.segmentCount() > 1) {
+ var.setFile(ResourcesPlugin.getWorkspace().getRoot().getFile(path));
+ }
vars.add(var);
}
path1 = ELReference.getPath(pathAliases, path1);
13 years, 9 months