Author: akazakov
Date: 2011-06-08 13:13:02 -0400 (Wed, 08 Jun 2011)
New Revision: 31916
Added:
trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/preferences/JSFSeverityPreferencesMessages.java
trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/preferences/JSFValidationConfigurationBlock.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFSeverityPreferences.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFValidationMessage.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/composition/
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/composition/CompositionComponentValidator.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/messages.properties
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/resolver/ELSegmentImpl.java
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/JavaMemberELSegmentImpl.java
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/MessagePropertyELSegmentImpl.java
trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/preferences/JSFSeverityPreferencesMessages.properties
trunk/jsf/plugins/org.jboss.tools.jsf/plugin.properties
trunk/jsf/plugins/org.jboss.tools.jsf/plugin.xml
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/JSFMessageELCompletionEngine.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFELValidationDelegate.java
trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/refactoring/MessagePropertyRefactoringTest.java
trunk/jst/plugins/org.jboss.tools.jst.jsp.base.test/src/org/jboss/tools/jst/jsp/test/TestUtil.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/KBValidator.java
trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/jst/web/ui/internal/preferences/ELSeverityPreferencesMessages.properties
Log:
https://issues.jboss.org/browse/JBIDE-9088
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 2011-06-08
15:23:54 UTC (rev 31915)
+++
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ca/AbstractELCompletionEngine.java 2011-06-08
17:13:02 UTC (rev 31916)
@@ -445,8 +445,7 @@
resolvedVariables = resolveVariables(file, expr, true, returnEqualedVariablesOnly,
offset);
Set<TextProposal> proposals = new
TreeSet<TextProposal>(TextProposal.KB_PROPOSAL_ORDER);
- JavaMemberELSegmentImpl segment = new JavaMemberELSegmentImpl();
- segment.setToken(expr.getFirstToken());
+ JavaMemberELSegmentImpl segment = new JavaMemberELSegmentImpl(expr.getFirstToken());
segment.setResolved(false);
resolution.addSegment(segment);
for (V var : resolvedVariables) {
@@ -496,8 +495,7 @@
// JBIDE-512, JBIDE-2541 related changes ===>>>
TypeInfoCollector.MemberInfo bijectedAttribute = null;
- JavaMemberELSegmentImpl segment = new JavaMemberELSegmentImpl();
- segment.setToken(operand.getFirstToken());
+ JavaMemberELSegmentImpl segment = new
JavaMemberELSegmentImpl(operand.getFirstToken());
segment.setResolved(true);
resolution.addSegment(segment);
@@ -554,8 +552,7 @@
// First segment is found - proceed with next tokens
List<TypeInfoCollector.MemberInfo> members = new
ArrayList<TypeInfoCollector.MemberInfo>();
- JavaMemberELSegmentImpl segment = new JavaMemberELSegmentImpl();
- segment.setToken(expr.getFirstToken());
+ JavaMemberELSegmentImpl segment = new JavaMemberELSegmentImpl(expr.getFirstToken());
for (V var : resolvedVariables) {
TypeInfoCollector.MemberInfo member = getMemberInfoByVariable(var,
returnEqualedVariablesOnly, offset);
if (member != null && !members.contains(member)) {
@@ -571,7 +568,7 @@
while(left != expr) {
left = (ELInvocationExpression)left.getParent();
if (left != expr) { // inside expression
- segment = new JavaMemberELSegmentImpl();
+ segment = new JavaMemberELSegmentImpl(left.getLastToken());
if(left instanceof ELArgumentInvocation) {
String s = "#{" + left.getLeft().toString() +
collectionAdditionForCollectionDataModel + "}"; //$NON-NLS-1$ //$NON-NLS-2$
if(getParserFactory()!=null) {
@@ -686,13 +683,14 @@
boolean returnEqualedVariablesOnly, boolean varIsUsed) {
Set<TextProposal> kbProposals = new
TreeSet<TextProposal>(TextProposal.KB_PROPOSAL_ORDER);
- JavaMemberELSegmentImpl segment = new JavaMemberELSegmentImpl();
+ JavaMemberELSegmentImpl segment = new JavaMemberELSegmentImpl(null);
if(expr instanceof ELPropertyInvocation) {
segment.setToken(((ELPropertyInvocation)expr).getName());
}
-// segment.setToken(expr.getLastToken());
if(segment.getToken()!=null) {
resolution.addSegment(segment);
+ } else {
+ segment.setToken(expr.getLastToken());
}
resolution.setProposals(kbProposals);
Modified:
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ELSegmentImpl.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ELSegmentImpl.java 2011-06-08
15:23:54 UTC (rev 31915)
+++
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ELSegmentImpl.java 2011-06-08
17:13:02 UTC (rev 31916)
@@ -28,6 +28,10 @@
protected boolean resolved = false;
protected List<IVariable> variables = new ArrayList<IVariable>();
+ public ELSegmentImpl(LexicalToken token) {
+ this.token = token;
+ }
+
/* (non-Javadoc)
* @see org.jboss.tools.common.el.core.resolver.ELSegment#getResource()
*/
Modified:
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/JavaMemberELSegmentImpl.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/JavaMemberELSegmentImpl.java 2011-06-08
15:23:54 UTC (rev 31915)
+++
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/JavaMemberELSegmentImpl.java 2011-06-08
17:13:02 UTC (rev 31916)
@@ -16,6 +16,7 @@
import java.util.Set;
import org.eclipse.jdt.core.IJavaElement;
+import org.jboss.tools.common.el.core.parser.LexicalToken;
import org.jboss.tools.common.el.core.resolver.TypeInfoCollector.MemberInfo;
/**
@@ -30,6 +31,10 @@
protected boolean hasGetter;
protected Map<String, TypeInfoCollector.MethodInfo> unpairedGettersOrSetters;
+ public JavaMemberELSegmentImpl(LexicalToken token) {
+ super(token);
+ }
+
/* (non-Javadoc)
* @see org.jboss.tools.common.el.core.resolver.JavaMemberElSegment#getJavaElement()
*/
Modified:
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/MessagePropertyELSegmentImpl.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/MessagePropertyELSegmentImpl.java 2011-06-08
15:23:54 UTC (rev 31915)
+++
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/MessagePropertyELSegmentImpl.java 2011-06-08
17:13:02 UTC (rev 31916)
@@ -11,6 +11,7 @@
package org.jboss.tools.common.el.core.resolver;
import org.eclipse.core.resources.IResource;
+import org.jboss.tools.common.el.core.parser.LexicalToken;
import org.jboss.tools.common.text.ITextSourceReference;
/**
@@ -25,6 +26,10 @@
private String baseName=null;
private boolean isBundle = false;
+ public MessagePropertyELSegmentImpl(LexicalToken token) {
+ super(token);
+ }
+
public IResource getMessageBundleResource() {
return messageBundleResource;
}
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/plugin.properties
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/plugin.properties 2011-06-08 15:23:54 UTC (rev
31915)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/plugin.properties 2011-06-08 17:13:02 UTC (rev
31916)
@@ -17,4 +17,7 @@
CreateJSF2Composite=Create JSF2 composite...
-JSFELValidationDelegate=JSF EL Validator
\ No newline at end of file
+JSFELValidationDelegate=JSF EL Validator
+
+ComponentCompositionProblemName=JSF Composition Component Problem
+ComponentCompositionValidator=JSF Composition Component Validator
\ No newline at end of file
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/plugin.xml
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/plugin.xml 2011-06-08 15:23:54 UTC (rev 31915)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/plugin.xml 2011-06-08 17:13:02 UTC (rev 31916)
@@ -490,6 +490,23 @@
</delegate>
</extension>
+ <extension id="compositionproblem"
name="%ComponentCompositionProblemName"
point="org.eclipse.core.resources.markers">
+ <super type="org.jboss.tools.jst.web.kb.kbproblemmarker">
+ </super>
+ <persistent value="true">
+ </persistent>
+ </extension>
+
+ <!--extension
+ id="CompositionComponentValidator"
+ point="org.jboss.tools.jst.web.kb.validator">
+ <validator
+
class="org.jboss.tools.jsf.web.validation.composition.CompositionComponentValidator"
+ name="%ComponentCompositionValidator"
+ id="org.jboss.tools.jsf.CompositionComponentValidator">
+ </validator>
+ </extension-->
+
<extension
point="org.jboss.tools.common.model.modelnatures">
<modelnature
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 2011-06-08
15:23:54 UTC (rev 31915)
+++
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSF2CCAttrsELCompletionEngine.java 2011-06-08
17:13:02 UTC (rev 31916)
@@ -192,17 +192,15 @@
resolvedVariables = resolvedVars;
resolution.setLastResolvedToken(left);
- ELSegmentImpl segment = new ELSegmentImpl();
// Combine left's tokens into a single token
LexicalToken token = left.getFirstToken();
String singleText = left.getText();
int start = token.getStart();
int type = token.getType();
int length = singleText.length();
-
+
LexicalToken singleToken = new LexicalToken(start, length, singleText, type);
-
- segment.setToken(singleToken);
+ ELSegmentImpl segment = new ELSegmentImpl(singleToken);
segment.setResolved(true);
resolution.addSegment(segment);
@@ -221,8 +219,7 @@
resolvedVariables = resolveVariablesInternal(file, expr, true,
returnEqualedVariablesOnly);
Set<TextProposal> proposals = new
TreeSet<TextProposal>(TextProposal.KB_PROPOSAL_ORDER);
- ELSegmentImpl segment = new ELSegmentImpl();
- segment.setToken(expr.getFirstToken());
+ ELSegmentImpl segment = new ELSegmentImpl(expr.getFirstToken());
segment.setResolved(false);
resolution.addSegment(segment);
@@ -245,8 +242,7 @@
if (resolution.getLastResolvedToken() == operand) {
// First segment is the last one
Set<TextProposal> proposals = new
TreeSet<TextProposal>(TextProposal.KB_PROPOSAL_ORDER);
- ELSegmentImpl segment = new ELSegmentImpl();
- segment.setToken(operand.getFirstToken());
+ ELSegmentImpl segment = new ELSegmentImpl(operand.getFirstToken());
segment.setResolved(true);
resolution.addSegment(segment);
@@ -281,8 +277,7 @@
while(left != expr) {
left = (ELInvocationExpression)left.getParent();
if (left != expr) { // inside expression
- ELSegmentImpl segment = new ELSegmentImpl();
- segment = new ELSegmentImpl();
+ ELSegmentImpl segment = new ELSegmentImpl(left.getLastToken());
segment.setResolved(true);
resolution.addSegment(segment);
resolution.setLastResolvedToken(left);
@@ -293,8 +288,7 @@
}
}
} else {
- ELSegmentImpl segment = new ELSegmentImpl();
- segment.setToken(expr.getFirstToken());
+ ELSegmentImpl segment = new ELSegmentImpl(expr.getFirstToken());
resolution.addSegment(segment);
}
@@ -307,8 +301,7 @@
boolean varIsUsed = false;
// First segment is found - proceed with next tokens
List<TypeInfoCollector.MemberInfo> members = new
ArrayList<TypeInfoCollector.MemberInfo>();
- JavaMemberELSegmentImpl segment = new JavaMemberELSegmentImpl();
- segment.setToken(expr.getFirstToken());
+ JavaMemberELSegmentImpl segment = new JavaMemberELSegmentImpl(expr.getFirstToken());
for (IVariable var : resolvedVariables) {
TypeInfoCollector.MemberInfo member = getMemberInfoByVariable(var,
returnEqualedVariablesOnly, offset);
if (member != null && !members.contains(member)) {
@@ -324,7 +317,7 @@
while(left != expr) {
left = (ELInvocationExpression)left.getParent();
if (left != expr) { // inside expression
- segment = new JavaMemberELSegmentImpl();
+ segment = new JavaMemberELSegmentImpl(left.getLastToken());
if(left instanceof ELArgumentInvocation) {
String s = "#{" + left.getLeft().toString() +
collectionAdditionForCollectionDataModel + "}"; //$NON-NLS-1$ //$NON-NLS-2$
ELParser p = getParserFactory().createParser();
@@ -433,12 +426,10 @@
boolean returnEqualedVariablesOnly) {
Set<TextProposal> kbProposals = new
TreeSet<TextProposal>(TextProposal.KB_PROPOSAL_ORDER);
- ELSegmentImpl segment = new ELSegmentImpl();
+ ELSegmentImpl segment = new ELSegmentImpl(expr.getFirstToken());
resolution.setProposals(kbProposals);
if(expr instanceof ELPropertyInvocation) {
segment.setToken(((ELPropertyInvocation)expr).getName());
- } else {
- segment.setToken(expr.getFirstToken());
}
if(segment.getToken()!=null) {
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 2011-06-08
15:23:54 UTC (rev 31915)
+++
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSFMessageELCompletionEngine.java 2011-06-08
17:13:02 UTC (rev 31916)
@@ -191,8 +191,7 @@
if (resolvedVariables != null && !resolvedVariables.isEmpty()) {
resolution.setLastResolvedToken(left);
- ELSegmentImpl segment = new MessagePropertyELSegmentImpl();
- segment.setToken(left.getFirstToken());
+ ELSegmentImpl segment = new MessagePropertyELSegmentImpl(left.getFirstToken());
processMessageBundleSegment(expr, (MessagePropertyELSegmentImpl)segment,
resolvedVariables);
segment.setResolved(true);
@@ -214,8 +213,7 @@
resolvedVariables = resolvedVars;
resolution.setLastResolvedToken(left);
- ELSegmentImpl segment = new MessagePropertyELSegmentImpl();
- segment.setToken(left.getFirstToken());
+ ELSegmentImpl segment = new MessagePropertyELSegmentImpl(left.getFirstToken());
processMessageBundleSegment(expr, (MessagePropertyELSegmentImpl)segment,
resolvedVariables);
segment.setResolved(true);
@@ -240,8 +238,7 @@
Set<TextProposal> proposals = new
TreeSet<TextProposal>(TextProposal.KB_PROPOSAL_ORDER);
if (left != null) {
- ELSegmentImpl segment = new MessagePropertyELSegmentImpl();
- segment.setToken(left.getFirstToken());
+ ELSegmentImpl segment = new MessagePropertyELSegmentImpl(left.getFirstToken());
processMessageBundleSegment(expr, (MessagePropertyELSegmentImpl)segment,
resolvedVariables);
segment.setResolved(false);
@@ -267,8 +264,7 @@
if (resolution.getLastResolvedToken() == operand) {
// First segment is the last one
Set<TextProposal> proposals = new
TreeSet<TextProposal>(TextProposal.KB_PROPOSAL_ORDER);
- ELSegmentImpl segment = new ELSegmentImpl();
- segment.setToken(operand.getFirstToken());
+ ELSegmentImpl segment = new ELSegmentImpl(operand.getFirstToken());
segment.setResolved(true);
resolution.addSegment(segment);
@@ -299,8 +295,7 @@
while(left != expr) {
left = (ELInvocationExpression)left.getParent();
if (left != expr) { // inside expression
- ELSegmentImpl segment = new ELSegmentImpl();
- segment = new ELSegmentImpl();
+ ELSegmentImpl segment = new ELSegmentImpl(left.getLastToken());
segment.setResolved(true);
resolution.addSegment(segment);
resolution.setLastResolvedToken(left);
@@ -311,8 +306,7 @@
}
}
} else {
- ELSegmentImpl segment = new ELSegmentImpl();
- segment.setToken(expr.getFirstToken());
+ ELSegmentImpl segment = new ELSegmentImpl(expr.getFirstToken());
resolution.addSegment(segment);
}
@@ -363,18 +357,14 @@
boolean returnEqualedVariablesOnly) {
Set<TextProposal> kbProposals = new
TreeSet<TextProposal>(TextProposal.KB_PROPOSAL_ORDER);
- ELSegmentImpl segment = new ELSegmentImpl();
+ ELSegmentImpl segment = new ELSegmentImpl(expr.getFirstToken());
resolution.setProposals(kbProposals);
if(expr instanceof ELPropertyInvocation) {
- segment = new MessagePropertyELSegmentImpl();
- segment.setToken(((ELPropertyInvocation)expr).getName());
+ segment = new MessagePropertyELSegmentImpl(((ELPropertyInvocation)expr).getName());
processMessagePropertySegment(expr, (MessagePropertyELSegmentImpl)segment, members);
} else if (expr instanceof ELArgumentInvocation) {
- segment = new MessagePropertyELSegmentImpl();
- segment.setToken(((ELArgumentInvocation)expr).getArgument().getOpenArgumentToken().getNextToken());
+ segment = new
MessagePropertyELSegmentImpl(((ELArgumentInvocation)expr).getArgument().getOpenArgumentToken().getNextToken());
processMessagePropertySegment(expr, (MessagePropertyELSegmentImpl)segment, members);
- } else {
- segment.setToken(expr.getFirstToken());
}
if(segment.getToken()!=null) {
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFELValidationDelegate.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFELValidationDelegate.java 2011-06-08
15:23:54 UTC (rev 31915)
+++
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFELValidationDelegate.java 2011-06-08
17:13:02 UTC (rev 31916)
@@ -10,21 +10,13 @@
******************************************************************************/
package org.jboss.tools.jsf.web.validation;
-import java.util.HashSet;
-import java.util.Set;
-
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.jboss.tools.jsf.JSFModelPlugin;
import org.jboss.tools.jsf.project.JSFNature;
-import org.jboss.tools.jst.web.kb.IKbProject;
-import org.jboss.tools.jst.web.kb.KbProjectFactory;
import org.jboss.tools.jst.web.kb.internal.KbProject;
-import org.jboss.tools.jst.web.kb.internal.validation.SimpleValidatingProjectTree;
-import org.jboss.tools.jst.web.kb.internal.validation.ValidatingProjectSet;
+import org.jboss.tools.jst.web.kb.internal.validation.KBValidator;
import org.jboss.tools.jst.web.kb.validation.IELValidationDelegate;
-import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
-import org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet;
import org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree;
/**
@@ -37,15 +29,7 @@
* @see
org.jboss.tools.jst.web.kb.validation.IELValidationDelegate#getValidatingProjects(org.eclipse.core.resources.IProject)
*/
public IValidatingProjectTree getValidatingProjects(IProject project) {
- Set<IProject> projects = new HashSet<IProject>();
- projects.add(project);
- IKbProject kbProject = KbProjectFactory.getKbProject(project, false);
- if(kbProject!=null) {
- IProjectValidationContext rootContext = kbProject.getValidationContext();
- IValidatingProjectSet projectSet = new ValidatingProjectSet(project, projects,
rootContext);
- return new SimpleValidatingProjectTree(projectSet);
- }
- return new SimpleValidatingProjectTree(project);
+ return KBValidator.createSimpleValidatingProjectTree(project);
}
/* (non-Javadoc)
Added:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFSeverityPreferences.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFSeverityPreferences.java
(rev 0)
+++
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFSeverityPreferences.java 2011-06-08
17:13:02 UTC (rev 31916)
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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.jsf.web.validation;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.core.resources.IProject;
+import org.jboss.tools.common.preferences.SeverityPreferences;
+import org.jboss.tools.jsf.JSFModelPlugin;
+
+/**
+ * @author Alexey kazakov
+ */
+public class JSFSeverityPreferences extends SeverityPreferences {
+
+ public static final Set<String> SEVERITY_OPTION_NAMES = new
HashSet<String>();
+
+ private static JSFSeverityPreferences INSTANCE = new JSFSeverityPreferences();
+
+ // Mark tag which can't be found.
+ public static final String UNKNOWN_COMPOSITION_COMPONENT_NAME =
INSTANCE.createSeverityOption("unknownComponent"); //$NON-NLS-1$
+
+ // Mark attribute which can't be found.
+ public static final String UNKNOWN_COMPOSITION_COMPONENT_ATTRIBUTE =
INSTANCE.createSeverityOption("unknownAttribute"); //$NON-NLS-1$
+
+ /**
+ * @return the only instance of JSFSeverityPreferences
+ */
+ public static JSFSeverityPreferences getInstance() {
+ return INSTANCE;
+ }
+
+ private JSFSeverityPreferences() {
+ }
+
+ /* (non-Javadoc)
+ * @see
org.jboss.tools.common.preferences.SeverityPreferences#createSeverityOption(java.lang.String)
+ */
+ @Override
+ protected String createSeverityOption(String shortName) {
+ String name = getPluginId() + ".composition.validator.problem." + shortName;
//$NON-NLS-1$
+ SEVERITY_OPTION_NAMES.add(name);
+ return name;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.tools.common.preferences.SeverityPreferences#getPluginId()
+ */
+ @Override
+ protected String getPluginId() {
+ return JSFModelPlugin.PLUGIN_ID;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.tools.common.preferences.SeverityPreferences#getSeverityOptionNames()
+ */
+ @Override
+ protected Set<String> getSeverityOptionNames() {
+ return SEVERITY_OPTION_NAMES;
+ }
+
+ public static boolean isValidationEnabled(IProject project) {
+ return INSTANCE.isEnabled(project);
+ }
+
+ public static int getMaxNumberOfProblemMarkersPerFile(IProject project) {
+ return INSTANCE.getMaxNumberOfProblemMarkersPerResource(project);
+ }
+
+ public static boolean shouldValidateEL(IProject project) {
+ return !(SeverityPreferences.IGNORE.equals(INSTANCE.getProjectPreference(project,
UNKNOWN_COMPOSITION_COMPONENT_NAME)) &&
+ SeverityPreferences.IGNORE.equals(INSTANCE.getProjectPreference(project,
UNKNOWN_COMPOSITION_COMPONENT_ATTRIBUTE)));
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFSeverityPreferences.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFValidationMessage.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFValidationMessage.java
(rev 0)
+++
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFValidationMessage.java 2011-06-08
17:13:02 UTC (rev 31916)
@@ -0,0 +1,19 @@
+package org.jboss.tools.jsf.web.validation;
+
+import org.eclipse.osgi.util.NLS;
+
+public class JSFValidationMessage {
+
+ private static final String BUNDLE_NAME =
"org.jboss.tools.jsf.web.validation.messages"; //$NON-NLS-1$
+
+ public static String UNKNOWN_COMPOSITION_COMPONENT_NAME;
+ public static String UNKNOWN_COMPOSITION_COMPONENT_ATTRIBUTE;
+
+ public static String SEARCHING_RESOURCES;
+ public static String VALIDATING_RESOURCE;
+ public static String VALIDATING_PROJECT;
+
+ static {
+ NLS.initializeMessages(BUNDLE_NAME, JSFValidationMessage.class);
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFValidationMessage.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/composition/CompositionComponentValidator.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/composition/CompositionComponentValidator.java
(rev 0)
+++
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/composition/CompositionComponentValidator.java 2011-06-08
17:13:02 UTC (rev 31916)
@@ -0,0 +1,221 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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.jsf.web.validation.composition;
+
+import java.util.Set;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetConstants;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
+import org.eclipse.wst.common.project.facet.core.IFacetedProject;
+import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+import org.eclipse.wst.validation.internal.core.ValidationException;
+import org.eclipse.wst.validation.internal.provisional.core.IReporter;
+import org.jboss.tools.common.el.core.resolver.ELContext;
+import org.jboss.tools.jsf.JSFModelPlugin;
+import org.jboss.tools.jsf.project.JSFNature;
+import org.jboss.tools.jsf.web.validation.JSFSeverityPreferences;
+import org.jboss.tools.jsf.web.validation.JSFValidationMessage;
+import org.jboss.tools.jst.web.kb.IPageContext;
+import org.jboss.tools.jst.web.kb.PageContextFactory;
+import org.jboss.tools.jst.web.kb.internal.KbBuilder;
+import org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper;
+import org.jboss.tools.jst.web.kb.internal.validation.KBValidator;
+import org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager;
+import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
+import org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree;
+
+/**
+ * JSF 2 composition component validator.
+ *
+ * @author Alexey Kazakov
+ */
+public class CompositionComponentValidator extends KBValidator {
+
+ public static final String ID =
"org.jboss.tools.jsf.CompositionComponentValidator"; //$NON-NLS-1$
+ public static final String PROBLEM_TYPE =
"org.jboss.tools.jsf.compositionproblem"; //$NON-NLS-1$
+
+ private IProject currentProject;
+ private IContainer webRootFolder;
+
+ /*
+ * (non-Javadoc)
+ * @see
org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager#init(org.eclipse.core.resources.IProject,
org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper,
org.jboss.tools.jst.web.kb.validation.IProjectValidationContext,
org.eclipse.wst.validation.internal.provisional.core.IValidator,
org.eclipse.wst.validation.internal.provisional.core.IReporter)
+ */
+ @Override
+ public void init(IProject project, ContextValidationHelper validationHelper,
IProjectValidationContext context,
org.eclipse.wst.validation.internal.provisional.core.IValidator manager, IReporter
reporter) {
+ super.init(project, validationHelper, context, manager, reporter);
+ currentProject = null;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidator#validate(java.util.Set,
org.eclipse.core.resources.IProject,
org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper,
org.jboss.tools.jst.web.kb.validation.IProjectValidationContext,
org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager,
org.eclipse.wst.validation.internal.provisional.core.IReporter)
+ */
+ public IStatus validate(Set<IFile> changedFiles, IProject project,
ContextValidationHelper validationHelper, IProjectValidationContext validationContext,
ValidatorManager manager, IReporter reporter) throws ValidationException {
+ displaySubtask(JSFValidationMessage.SEARCHING_RESOURCES);
+ init(project, validationHelper, validationContext, manager, reporter);
+ webRootFolder = null;
+
+ return OK_STATUS;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see
org.jboss.tools.jst.web.kb.validation.IValidator#validateAll(org.eclipse.core.resources.IProject,
org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper,
org.jboss.tools.jst.web.kb.validation.IProjectValidationContext,
org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager,
org.eclipse.wst.validation.internal.provisional.core.IReporter)
+ */
+ public IStatus validateAll(IProject project, ContextValidationHelper validationHelper,
IProjectValidationContext validationContext, ValidatorManager manager, IReporter reporter)
throws ValidationException {
+ displaySubtask(JSFValidationMessage.SEARCHING_RESOURCES);
+ init(project, validationHelper, validationContext, manager, reporter);
+ webRootFolder = null;
+
+ return OK_STATUS;
+ }
+
+ private void validateResource(IFile file) {
+ if(shouldFileBeValidated(file)) {
+ coreHelper.getValidationContextManager().addValidatedProject(this,
file.getProject());
+ removeAllMessagesFromResource(file);
+ ELContext context = PageContextFactory.createPageContext(file);
+ if(context!=null && context instanceof IPageContext) {
+ IPageContext pageContext = (IPageContext)context;
+ }
+ }
+ }
+
+ private boolean enabled = true;
+
+ private boolean shouldFileBeValidated(IFile file) {
+ if(!file.isAccessible()) {
+ return false;
+ }
+ IProject project = file.getProject();
+ if(!file.isSynchronized(IResource.DEPTH_ZERO)) {
+ // The resource is out of sync with the file system
+ // Just ignore this resource.
+ return false;
+ }
+ if(!project.equals(currentProject)) {
+ currentProject = project;
+ enabled = isEnabled(project);
+ if(!enabled) {
+ return false;
+ }
+ if(webRootFolder!=null && !project.equals(webRootFolder.getProject())) {
+ webRootFolder = null;
+ }
+ if(webRootFolder==null) {
+ IFacetedProject facetedProject = null;
+ try {
+ facetedProject = ProjectFacetsManager.create(project);
+ } catch (CoreException e) {
+ JSFModelPlugin.getDefault().logError(e);
+ }
+ if(facetedProject!=null &&
facetedProject.getProjectFacetVersion(IJ2EEFacetConstants.DYNAMIC_WEB_FACET)!=null) {
+ IVirtualComponent component = ComponentCore.createComponent(project);
+ if(component!=null) {
+ IVirtualFolder webRootVirtFolder = component.getRootFolder().getFolder(new
Path("/")); //$NON-NLS-1$
+ webRootFolder = webRootVirtFolder.getUnderlyingFolder();
+ }
+ }
+ }
+ currentProject = project;
+ }
+
+ // Validate files from Web-Content only (in case of WTP project)
+ return enabled && webRootFolder!=null &&
webRootFolder.getLocation().isPrefixOf(file.getLocation()) &&
PageContextFactory.isPage(file);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidator#getId()
+ */
+ public String getId() {
+ return ID;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidator#getBuilderId()
+ */
+ public String getBuilderId() {
+ return KbBuilder.BUILDER_ID;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see
org.jboss.tools.jst.web.kb.validation.IValidator#getValidatingProjects(org.eclipse.core.resources.IProject)
+ */
+ public IValidatingProjectTree getValidatingProjects(IProject project) {
+ return createSimpleValidatingProjectTree(project);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see
org.jboss.tools.jst.web.kb.validation.IValidator#shouldValidate(org.eclipse.core.resources.IProject)
+ */
+ public boolean shouldValidate(IProject project) {
+ try {
+ return project != null
+ && project.isAccessible()
+ && project.hasNature(JSFNature.NATURE_ID)
+ && validateBuilderOrder(project)
+ && isEnabled(project);
+ } catch (CoreException e) {
+ JSFModelPlugin.getDefault().logError(e);
+ }
+ return false;
+ }
+
+ private boolean validateBuilderOrder(IProject project) throws CoreException {
+ return ValidatorManager.validateBuilderOrder(project, getBuilderId(), getId(),
JSFSeverityPreferences.getInstance());
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see
org.jboss.tools.jst.web.kb.validation.IValidator#isEnabled(org.eclipse.core.resources.IProject)
+ */
+ public boolean isEnabled(IProject project) {
+ return JSFSeverityPreferences.isValidationEnabled(project);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see
org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager#getPreference(org.eclipse.core.resources.IProject,
java.lang.String)
+ */
+ protected String getPreference(IProject project, String preferenceKey) {
+ return JSFSeverityPreferences.getInstance().getProjectPreference(project,
preferenceKey);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see
org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager#getMaxNumberOfMarkersPerFile(org.eclipse.core.resources.IProject)
+ */
+ public int getMaxNumberOfMarkersPerFile(IProject project) {
+ return JSFSeverityPreferences.getMaxNumberOfProblemMarkersPerFile(project);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see
org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager#getMarkerType()
+ */
+ public String getMarkerType() {
+ return PROBLEM_TYPE;
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/composition/CompositionComponentValidator.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/messages.properties
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/messages.properties
(rev 0)
+++
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/messages.properties 2011-06-08
17:13:02 UTC (rev 31916)
@@ -0,0 +1,8 @@
+#
+UNKNOWN_COMPOSITION_COMPONENT_NAME=Unknown composition component "{0}"
+UNKNOWN_COMPOSITION_COMPONENT_ATTRIBUTE=Unknown attribute "{0}" of composition
component "{1}"
+
+#Messages for Progress Monitor
+SEARCHING_RESOURCES=project "{0}"; searching resources for validation (JSF
Validator)
+VALIDATING_RESOURCE=project "{0}"; resource "{1}" (JSF Validator)
+VALIDATING_PROJECT=project "{0}" (JSF Validator)
\ No newline at end of file
Property changes on:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/messages.properties
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/preferences/JSFSeverityPreferencesMessages.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/preferences/JSFSeverityPreferencesMessages.java
(rev 0)
+++
trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/preferences/JSFSeverityPreferencesMessages.java 2011-06-08
17:13:02 UTC (rev 31916)
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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.jsf.ui.preferences;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * @author Alexey Kazakov
+ */
+public class JSFSeverityPreferencesMessages extends NLS {
+
+ private static final String BUNDLE_NAME =
"org.jboss.tools.jsf.ui.preferences.JSFSeverityPreferencesMessages";
//$NON-NLS-1$
+
+ public static String
JSF_VALIDATION_CONFIGURATION_BLOCK_JSF_VALIDATION_CONFIGURATION_BLOCK;
+ public static String JSF_VALIDATION_PREFERENCE_PAGE_JSF_VALIDATOR;
+
+ //Validation Preference page
+ public static String JSFValidationConfigurationBlock_common_description;
+
+ //Expression Language
+ public static String JSFValidationConfigurationBlock_section_composition_components;
+ public static String JSFValidationConfigurationBlock_pb_unknownComponent_label;
+ public static String JSFValidationConfigurationBlock_pb_unknownAttribute_label;
+
+ static {
+ NLS.initializeMessages(BUNDLE_NAME, JSFSeverityPreferencesMessages.class);
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/preferences/JSFSeverityPreferencesMessages.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/preferences/JSFSeverityPreferencesMessages.properties
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/preferences/JSFSeverityPreferencesMessages.properties 2011-06-08
15:23:54 UTC (rev 31915)
+++
trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/preferences/JSFSeverityPreferencesMessages.properties 2011-06-08
17:13:02 UTC (rev 31916)
@@ -10,16 +10,12 @@
##################################################################################
#Preferences Page
-JSFValidatorConfigurationBlock_common_description=Select the severity level for the
following optional JSF Validator problems:
+JSFValidationConfigurationBlock_common_description=Select the severity level for the
following optional JSF validation problems:
##Expression Language
-JSFValidatorConfigurationBlock_section_el=Expression language
-JSFValidatorConfigurationBlock_pb_elSyntaxError_label=EL Syntax Error
-JSFValidatorConfigurationBlock_pb_unknownElVariableName_label=Variable cannot be
resolved:
-JSFValidatorConfigurationBlock_pb_checkVars_label=Recognize "var" attributes
-JSFValidatorConfigurationBlock_pb_revalidateUnresolvedEl_label=Revalidate unresolved ELs
automatically.
-JSFValidatorConfigurationBlock_pb_unknownElVariablePropertyName_label=Property cannot be
resolved:
-JSFValidatorConfigurationBlock_pb_unpairedGetterOrSetter_label=Unpaired Getter/Setter:
+JSFValidationConfigurationBlock_section_composition_components=Composition Components
+JSFValidationConfigurationBlock_pb_unknownComponent_label=Unknown composition component:
+JSFValidationConfigurationBlock_pb_unknownAttribute_label=Unknown composition component
attribute:
-JSF_VALIDATOR_CONFIGURATION_BLOCK_JSF_VALIDATOR_CONFIGURATION_BLOCK=JSFValidatorConfigurationBlock
-JSF_VALIDATOR_PREFERENCE_PAGE_JSF_VALIDATOR=JSF Validator
\ No newline at end of file
+JSF_VALIDATION_CONFIGURATION_BLOCK_JSF_VALIDATION_CONFIGURATION_BLOCK=JSFValidationConfigurationBlock
+JSF_VALIDATION_PREFERENCE_PAGE_JSF_VALIDATOR=JSF Validator
\ No newline at end of file
Added:
trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/preferences/JSFValidationConfigurationBlock.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/preferences/JSFValidationConfigurationBlock.java
(rev 0)
+++
trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/preferences/JSFValidationConfigurationBlock.java 2011-06-08
17:13:02 UTC (rev 31916)
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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.jsf.ui.preferences;
+
+import java.util.ArrayList;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jdt.internal.ui.wizards.IStatusChangeListener;
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;
+import org.jboss.tools.common.preferences.SeverityPreferences;
+import org.jboss.tools.common.ui.preferences.SeverityConfigurationBlock;
+import org.jboss.tools.jsf.JSFModelPlugin;
+import org.jboss.tools.jsf.web.validation.JSFSeverityPreferences;
+
+/**
+ * @author Alexey Kazakov
+ */
+public class JSFValidationConfigurationBlock extends SeverityConfigurationBlock {
+
+ private static final String SETTINGS_SECTION_NAME =
JSFSeverityPreferencesMessages.JSF_VALIDATION_CONFIGURATION_BLOCK_JSF_VALIDATION_CONFIGURATION_BLOCK;
+
+ private static SectionDescription SECTION_COMPOSITION_COMPONENTS = new
SectionDescription(
+ JSFSeverityPreferencesMessages.JSFValidationConfigurationBlock_section_composition_components,
+ new String[][]{
+ {JSFSeverityPreferences.UNKNOWN_COMPOSITION_COMPONENT_NAME,
JSFSeverityPreferencesMessages.JSFValidationConfigurationBlock_pb_unknownComponent_label},
+ {JSFSeverityPreferences.UNKNOWN_COMPOSITION_COMPONENT_ATTRIBUTE,
JSFSeverityPreferencesMessages.JSFValidationConfigurationBlock_pb_unknownAttribute_label},
+ },
+ JSFModelPlugin.PLUGIN_ID
+ );
+
+ private static SectionDescription[] ALL_SECTIONS = new SectionDescription[] {
+ SECTION_COMPOSITION_COMPONENTS
+ };
+
+ private static Key[] getKeys() {
+ ArrayList<Key> keys = new ArrayList<Key>();
+ for (int i = 0; i < ALL_SECTIONS.length; i++) {
+ for (int j = 0; j < ALL_SECTIONS[i].options.length; j++) {
+ keys.add(ALL_SECTIONS[i].options[j].key);
+ }
+ }
+ keys.add(MAX_NUMBER_OF_PROBLEMS_KEY);
+ keys.add(WRONG_BUILDER_ORDER_KEY);
+ return keys.toArray(new Key[0]);
+ }
+
+ private static final Key MAX_NUMBER_OF_PROBLEMS_KEY = getKey(JSFModelPlugin.PLUGIN_ID,
SeverityPreferences.MAX_NUMBER_OF_MARKERS_PREFERENCE_NAME);
+
+ @Override
+ protected Key getMaxNumberOfProblemsKey() {
+ return MAX_NUMBER_OF_PROBLEMS_KEY;
+ }
+
+ private static final Key WRONG_BUILDER_ORDER_KEY = getKey(JSFModelPlugin.PLUGIN_ID,
SeverityPreferences.WRONG_BUILDER_ORDER_PREFERENCE_NAME);
+
+ protected Key getWrongBuilderOrderKey() {
+ return WRONG_BUILDER_ORDER_KEY;
+ }
+
+ public JSFValidationConfigurationBlock(IStatusChangeListener context,
+ IProject project, IWorkbenchPreferenceContainer container) {
+ super(context, project, getKeys(), container);
+ }
+
+ @Override
+ protected SectionDescription[] getAllSections() {
+ return ALL_SECTIONS;
+ }
+
+ @Override
+ protected String getCommonDescription() {
+ return
JSFSeverityPreferencesMessages.JSFValidationConfigurationBlock_common_description;
+ }
+
+ @Override
+ protected IDialogSettings getDialogSettings() {
+ return
JSFModelPlugin.getDefault().getDialogSettings().getSection(SETTINGS_SECTION_NAME);
+ }
+ }
\ No newline at end of file
Property changes on:
trunk/jsf/plugins/org.jboss.tools.jsf.ui/src/org/jboss/tools/jsf/ui/preferences/JSFValidationConfigurationBlock.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/refactoring/MessagePropertyRefactoringTest.java
===================================================================
---
trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/refactoring/MessagePropertyRefactoringTest.java 2011-06-08
15:23:54 UTC (rev 31915)
+++
trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/refactoring/MessagePropertyRefactoringTest.java 2011-06-08
17:13:02 UTC (rev 31916)
@@ -48,8 +48,7 @@
structure.addTextChange(change);
list.add(structure);
- MessagePropertyELSegmentImpl segment = new MessagePropertyELSegmentImpl();
- segment.setToken(new LexicalToken(position,13,"hello_message",-1000));
+ MessagePropertyELSegmentImpl segment = new MessagePropertyELSegmentImpl(new
LexicalToken(position,13,"hello_message",-1000));
segment.setMessageBundleResource(propertyFile);
segment.setBaseName("demo.Messages");
segment.setMessagePropertySourceReference(0,10);
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp.base.test/src/org/jboss/tools/jst/jsp/test/TestUtil.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp.base.test/src/org/jboss/tools/jst/jsp/test/TestUtil.java 2011-06-08
15:23:54 UTC (rev 31915)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp.base.test/src/org/jboss/tools/jst/jsp/test/TestUtil.java 2011-06-08
17:13:02 UTC (rev 31916)
@@ -7,6 +7,15 @@
public class TestUtil {
+ /**
+ * Wait for validation to be completed.
+ * Usage:
+ * ValidatorManager.setStatus("Any status but
ValidatorManager.SLEEPING");
+ * ... // do some work here which will make Eclipse build the project
+ * TestUtil.waitForValidation(project);
+ * @param project
+ * @throws CoreException
+ */
public static void waitForValidation(IProject project) throws CoreException{
JobUtils.waitForIdle();
for (int i = 0; i < 50; i++) {
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 2011-06-08
15:23:54 UTC (rev 31915)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/PageContextFactory.java 2011-06-08
17:13:02 UTC (rev 31916)
@@ -125,6 +125,18 @@
return (fInstance = new PageContextFactory());
}
+ /**
+ * Returns true if the file is XHTML or JSP page.
+ *
+ * @param file
+ * @return
+ */
+ public static boolean isPage(IFile file) {
+ IContentType type = IDE.getContentType(file);
+ String typeId = (type == null ? null : type.getId());
+ return JSP_PAGE_CONTEXT_TYPE.equals(typeId) ||
FACELETS_PAGE_CONTEXT_TYPE.equals(typeId);
+ }
+
private PageContextFactory() {
// IWorkspace workspace = ResourcesPlugin.getWorkspace();
// if (workspace != null) workspace.addResourceChangeListener(this);
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/KBValidator.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/KBValidator.java 2011-06-08
15:23:54 UTC (rev 31915)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/KBValidator.java 2011-06-08
17:13:02 UTC (rev 31916)
@@ -10,8 +10,16 @@
******************************************************************************/
package org.jboss.tools.jst.web.kb.internal.validation;
+import java.util.HashSet;
+import java.util.Set;
+
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
+import org.jboss.tools.jst.web.kb.IKbProject;
+import org.jboss.tools.jst.web.kb.KbProjectFactory;
+import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
+import org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet;
+import org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree;
import org.jboss.tools.jst.web.kb.validation.IValidator;
/**
@@ -23,4 +31,22 @@
IProject pr = resource.getProject();
return coreHelper==null ||
!coreHelper.getValidationContextManager().projectHasBeenValidated(this, pr);
}
+
+ /**
+ * Creates a simple validating project tree for the project.
+ *
+ * @param project
+ * @return
+ */
+ public static IValidatingProjectTree createSimpleValidatingProjectTree(IProject project)
{
+ Set<IProject> projects = new HashSet<IProject>();
+ projects.add(project);
+ IKbProject kbProject = KbProjectFactory.getKbProject(project, false);
+ if(kbProject!=null) {
+ IProjectValidationContext rootContext = kbProject.getValidationContext();
+ IValidatingProjectSet projectSet = new ValidatingProjectSet(project, projects,
rootContext);
+ return new SimpleValidatingProjectTree(projectSet);
+ }
+ return new SimpleValidatingProjectTree(project);
+ }
}
\ No newline at end of file
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/jst/web/ui/internal/preferences/ELSeverityPreferencesMessages.properties
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/jst/web/ui/internal/preferences/ELSeverityPreferencesMessages.properties 2011-06-08
15:23:54 UTC (rev 31915)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/jst/web/ui/internal/preferences/ELSeverityPreferencesMessages.properties 2011-06-08
17:13:02 UTC (rev 31916)
@@ -14,7 +14,7 @@
##Expression Language
JSFValidatorConfigurationBlock_section_el=Expression language
-JSFValidatorConfigurationBlock_pb_elSyntaxError_label=EL Syntax Error
+JSFValidatorConfigurationBlock_pb_elSyntaxError_label=EL Syntax Error:
JSFValidatorConfigurationBlock_pb_unknownElVariableName_label=Variable cannot be
resolved:
JSFValidatorConfigurationBlock_pb_checkVars_label=Recognize "var" attributes
JSFValidatorConfigurationBlock_pb_revalidateUnresolvedEl_label=Revalidate unresolved ELs
automatically.