Skip to main content
summaryrefslogtreecommitdiffstats
path: root/jsf
diff options
context:
space:
mode:
authorgkessler2010-05-10 21:46:55 +0000
committergkessler2010-05-10 21:46:55 +0000
commit1f175e95026c9f679ec51ae1d624f36e3a20a9e5 (patch)
treefa50a4511e2dcbeb40f8b506bbbf4dcf27db7b2f /jsf
parent85ca6e111fc233c2442c9de6456726bf9492929b (diff)
downloadwebtools.jsf-1f175e95026c9f679ec51ae1d624f36e3a20a9e5.tar.gz
webtools.jsf-1f175e95026c9f679ec51ae1d624f36e3a20a9e5.tar.xz
webtools.jsf-1f175e95026c9f679ec51ae1d624f36e3a20a9e5.zip
[288144] - No line number showed in Problems view for the errors/warnings from jsf validator
Diffstat (limited to 'jsf')
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/appconfig/AppConfigValidator.java32
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.ui/src/org/eclipse/jst/jsf/facelet/ui/internal/validation/HTMLValidator.java32
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.ui/src/org/eclipse/jst/jsf/facelet/ui/internal/validation/ValidationReporter.java6
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/validation/JSFValidator.java61
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/validation/ValidationMessageFactory.java17
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/validation/ValidationReporter.java5
6 files changed, 134 insertions, 19 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/appconfig/AppConfigValidator.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/appconfig/AppConfigValidator.java
index 29bbe1280..ed025e344 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/appconfig/AppConfigValidator.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/appconfig/AppConfigValidator.java
@@ -11,6 +11,7 @@
********************************************************************************/
package org.eclipse.jst.jsf.validation.internal.appconfig;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@@ -39,6 +40,8 @@ import org.eclipse.jst.jsp.core.internal.Logger;
import org.eclipse.wst.common.project.facet.core.IFacetedProject;
import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+import org.eclipse.wst.sse.core.StructuredModelManager;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
import org.eclipse.wst.validation.AbstractValidator;
import org.eclipse.wst.validation.ValidationResult;
import org.eclipse.wst.validation.ValidationState;
@@ -301,14 +304,41 @@ public class AppConfigValidator extends AbstractValidator implements IValidator
final List messages = new ArrayList();
validator.validate(facesConfigType, messages, file);
+ if (messages.size() > 0) {
+ IStructuredModel model = null;
+ try
+ {
+ model = StructuredModelManager.getModelManager().getModelForRead(
+ file);
+ reportProblems(reporter, messages, model);
+ } catch (IOException e) {
+ JSFCorePlugin.log("Error reporting FacesConfig validation problems", e); //$NON-NLS-1$
+ } catch (CoreException e) {
+ JSFCorePlugin.log("Error reporting FacesConfig validation problems", e); //$NON-NLS-1$
+ } finally {
+ if (model != null) {
+ model.releaseFromRead();
+ }
+ }
+ }
+ }
+
+ //sets line number and reports message
+ private void reportProblems(final IReporter reporter, final List messages, final IStructuredModel model) {
for (final Iterator it = messages.iterator(); it.hasNext();)
{
final IMessage message = (IMessage) it.next();
+ if (model != null) {
+ final int line = model.getStructuredDocument().getLineOfOffset(message.getOffset());
+ if (line >= 0)
+ message.setLineNo(line + 1);
+ }
reporter.addMessage(this, message);
}
}
- /**
+
+ /**
* @param project
* @return the version string for the JSF facet on project
* or null if not found
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.ui/src/org/eclipse/jst/jsf/facelet/ui/internal/validation/HTMLValidator.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.ui/src/org/eclipse/jst/jsf/facelet/ui/internal/validation/HTMLValidator.java
index 17785c1d1..01bf42833 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.ui/src/org/eclipse/jst/jsf/facelet/ui/internal/validation/HTMLValidator.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.ui/src/org/eclipse/jst/jsf/facelet/ui/internal/validation/HTMLValidator.java
@@ -146,11 +146,33 @@ public class HTMLValidator extends AbstractValidator implements IValidator
JSFCorePlugin.getDefault().getPreferenceStore());
prefs.load();
- final ValidationReporter jsfReporter = new ValidationReporter(this,
- reporter, file, prefs);
- validator.validateView(file, jsfReporter);
- // TODO: break off into composite strategies
- validateFaceletHtml(file, jsfReporter);
+ IStructuredModel model = null;
+ try
+ {
+ model = StructuredModelManager.getModelManager().getModelForRead(
+ file);
+
+ final ValidationReporter jsfReporter = new ValidationReporter(this,
+ reporter, file, prefs, model);
+ validator.validateView(file, jsfReporter);
+ // TODO: break off into composite strategies
+ validateFaceletHtml(file, jsfReporter);
+ }
+ catch (final CoreException e)
+ {
+ JSFCorePlugin.log("Error validating JSF", e);
+ }
+ catch (final IOException e)
+ {
+ JSFCorePlugin.log("Error validating JSF", e);
+ }
+ finally
+ {
+ if (null != model)
+ {
+ model.releaseFromRead();
+ }
+ }
}
private void validateFaceletHtml(final IFile file,
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.ui/src/org/eclipse/jst/jsf/facelet/ui/internal/validation/ValidationReporter.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.ui/src/org/eclipse/jst/jsf/facelet/ui/internal/validation/ValidationReporter.java
index cee0fc0e2..ab99923af 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.ui/src/org/eclipse/jst/jsf/facelet/ui/internal/validation/ValidationReporter.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.ui/src/org/eclipse/jst/jsf/facelet/ui/internal/validation/ValidationReporter.java
@@ -6,6 +6,7 @@ import org.eclipse.jst.jsf.ui.internal.validation.ValidationMessageFactory;
import org.eclipse.jst.jsf.validation.internal.IJSFViewValidator;
import org.eclipse.jst.jsf.validation.internal.ValidationPreferences;
import org.eclipse.jst.jsf.validation.internal.strategy.DiagnosticFactory;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
import org.eclipse.wst.validation.internal.provisional.core.IValidator;
@@ -21,12 +22,13 @@ import org.eclipse.wst.validation.internal.provisional.core.IValidator;
public ValidationReporter(final IValidator validator,
final IReporter reporter, final IFile file,
- final ValidationPreferences prefs)
+ final ValidationPreferences prefs,
+ final IStructuredModel model)
{
_validator = validator;
_reporter = reporter;
_file = file;
- _factory = new ValidationMessageFactory(prefs);
+ _factory = new ValidationMessageFactory(prefs, model);
}
public void report(final Diagnostic problem, final int start,
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/validation/JSFValidator.java b/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/validation/JSFValidator.java
index ebd74bbcc..2c5947379 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/validation/JSFValidator.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/validation/JSFValidator.java
@@ -10,9 +10,12 @@
*******************************************************************************/
package org.eclipse.jst.jsf.ui.internal.validation;
+import java.io.IOException;
+
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.text.IDocument;
@@ -24,6 +27,8 @@ import org.eclipse.jst.jsf.validation.internal.IJSFViewValidator;
import org.eclipse.jst.jsf.validation.internal.JSFValidatorFactory;
import org.eclipse.jst.jsf.validation.internal.ValidationPreferences;
import org.eclipse.jst.jsp.core.internal.validation.JSPValidator;
+import org.eclipse.wst.sse.core.StructuredModelManager;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
import org.eclipse.wst.sse.ui.internal.reconcile.validator.ISourceValidator;
@@ -99,9 +104,31 @@ public class JSFValidator extends JSPValidator implements ISourceValidator
JSFCorePlugin.getDefault().getPreferenceStore());
prefs.load();
- final ValidationReporter jsfReporter = new ValidationReporter(
- this, reporter, file, prefs);
- validator.validateView(file, regions, jsfReporter);
+ IStructuredModel model = null;
+ try
+ {
+ model = StructuredModelManager.getModelManager().getModelForRead(
+ file);
+
+ final ValidationReporter jsfReporter = new ValidationReporter(
+ this, reporter, file, prefs, model);
+ validator.validateView(file, regions, jsfReporter);
+ }
+ catch (final CoreException e)
+ {
+ JSFCorePlugin.log("Error validating JSF", e); //$NON-NLS-1$
+ }
+ catch (final IOException e)
+ {
+ JSFCorePlugin.log("Error validating JSF", e); //$NON-NLS-1$
+ }
+ finally
+ {
+ if (null != model)
+ {
+ model.releaseFromRead();
+ }
+ }
}
}
}
@@ -134,9 +161,31 @@ public class JSFValidator extends JSPValidator implements ISourceValidator
JSFCorePlugin.getDefault().getPreferenceStore());
prefs.load();
- final ValidationReporter jsfReporter = new ValidationReporter(this,
- reporter, file, prefs);
- validator.validateView(file, jsfReporter);
+ IStructuredModel model = null;
+ try
+ {
+ model = StructuredModelManager.getModelManager().getModelForRead(
+ file);
+
+ final ValidationReporter jsfReporter = new ValidationReporter(this,
+ reporter, file, prefs, model);
+ validator.validateView(file, jsfReporter);
+ }
+ catch (final CoreException e)
+ {
+ JSFCorePlugin.log("Error validating JSF", e); //$NON-NLS-1$
+ }
+ catch (final IOException e)
+ {
+ JSFCorePlugin.log("Error validating JSF", e); //$NON-NLS-1$
+ }
+ finally
+ {
+ if (null != model)
+ {
+ model.releaseFromRead();
+ }
+ }
}
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/validation/ValidationMessageFactory.java b/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/validation/ValidationMessageFactory.java
index 1d05ae855..08804abc7 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/validation/ValidationMessageFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/validation/ValidationMessageFactory.java
@@ -22,6 +22,8 @@ import org.eclipse.jst.jsf.validation.internal.ELValidationPreferences;
import org.eclipse.jst.jsf.validation.internal.JSFTypeComparatorPreferences;
import org.eclipse.jst.jsf.validation.internal.ValidationPreferences;
import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
import org.eclipse.wst.validation.internal.core.Message;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
@@ -34,13 +36,14 @@ import org.eclipse.wst.validation.internal.provisional.core.IMessage;
public final class ValidationMessageFactory
{
private final Map<String, SeverityOverrideStrategy> _strategies;
-
+ private IStructuredModel _model = null;
/**
* @param prefs
- *
+ * @param model
*/
- public ValidationMessageFactory(final ValidationPreferences prefs)
+ public ValidationMessageFactory(final ValidationPreferences prefs, final IStructuredModel model)
{
+ _model = model;
_strategies = new HashMap<String, SeverityOverrideStrategy>();
_strategies.put(DiagnosticFactory.SOURCE_ID,
new ELSeverityOverrideStrategy(prefs));
@@ -78,6 +81,14 @@ public final class ValidationMessageFactory
message.setOffset(offset);
message.setLength(length);
+ if (this._model != null) {
+ IStructuredDocument flatModel = this._model.getStructuredDocument();
+ if (flatModel != null) {
+ int line = flatModel.getLineOfOffset(message.getOffset());
+ if (line >= 0)
+ message.setLineNo(line + 1);
+ }
+ }
return message;
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/validation/ValidationReporter.java b/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/validation/ValidationReporter.java
index e5f041189..3f4ecd220 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/validation/ValidationReporter.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/validation/ValidationReporter.java
@@ -14,6 +14,7 @@ import org.eclipse.core.resources.IFile;
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.jst.jsf.validation.internal.IJSFViewValidator;
import org.eclipse.jst.jsf.validation.internal.ValidationPreferences;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
import org.eclipse.wst.validation.internal.provisional.core.IValidator;
@@ -28,12 +29,12 @@ import org.eclipse.wst.validation.internal.provisional.core.IValidator;
public ValidationReporter(final IValidator validator,
final IReporter reporter, final IFile file,
- final ValidationPreferences prefs)
+ final ValidationPreferences prefs, final IStructuredModel model)
{
_validator = validator;
_reporter = reporter;
_file = file;
- _factory = new ValidationMessageFactory(prefs);
+ _factory = new ValidationMessageFactory(prefs, model);
}
public void report(final Diagnostic problem, final int start,

Back to the top