package org.objectstyle.wolips.wodclipse.core.validation; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IMarker; import org.eclipse.core.runtime.CoreException; import org.eclipse.jface.text.Position; import org.objectstyle.wolips.bindings.preferences.PreferenceConstants; import org.objectstyle.wolips.wodclipse.core.Activator; public class HtmlProblem { //WodModelUtils.addMarker(getFile(), IMarker.SEVERITY_ERROR, getLineAtOffset(offset), offset, length, message); private IFile _htmlFile; private String _message; private Position _position; private int _lineNumber; private boolean _warning; public HtmlProblem(IFile htmlFile, String message, Position position, int lineNumber, boolean warning) { _htmlFile = htmlFile; _message = message; _position = position; _lineNumber = lineNumber; _warning = warning; } public IFile getHtmlFile() { return _htmlFile; } public String getMessage() { return _message; } public Position getPosition() { return _position; } public boolean isWarning() { return _warning; } @Override public String toString() { return "[HtmlProblem: message = " + _message + "]"; } public IMarker createMarker(IFile file, String severityPreference) { IMarker marker = null; try { marker = _htmlFile.createMarker(Activator.TEMPLATE_PROBLEM_MARKER); marker.setAttribute(IMarker.MESSAGE, getMessage()); int severity; if (isWarning() || PreferenceConstants.WARNING.equals(severityPreference)) { severity = IMarker.SEVERITY_WARNING; } else { severity = IMarker.SEVERITY_ERROR; } marker.setAttribute(IMarker.SEVERITY, Integer.valueOf(severity)); marker.setAttribute(IMarker.LINE_NUMBER, _lineNumber); marker.setAttribute(IMarker.CHAR_START, _position.getOffset()); marker.setAttribute(IMarker.CHAR_END, _position.getOffset() + _position.getLength()); marker.setAttribute(IMarker.TRANSIENT, false); } catch (CoreException e) { Activator.getDefault().log(e); } return marker; } }