Author: akazakov
Date: 2012-01-03 20:35:40 -0500 (Tue, 03 Jan 2012)
New Revision: 37623
Modified:
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.validation/src/org/jboss/tools/common/validation/ValidationErrorManager.java
trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/util/EclipseUIUtil.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/validation/SeamCoreValidator.java
Log:
https://issues.jboss.org/browse/JBIDE-10536 Java Seam and CDI quick fixes: after quick
fix, editor is scrolled to the beginning. If Undo/Redo commands are used, the entire file
content gets selected
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-01-04
00:40:06 UTC (rev 37622)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java 2012-01-04
01:35:40 UTC (rev 37623)
@@ -34,7 +34,6 @@
import org.eclipse.jdt.core.IAnnotation;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IField;
-import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IMember;
import org.eclipse.jdt.core.IMethod;
import org.eclipse.jdt.core.ISourceRange;
@@ -94,7 +93,6 @@
import org.jboss.tools.common.java.IParametedType;
import org.jboss.tools.common.java.ITypeDeclaration;
import org.jboss.tools.common.java.ParametedType;
-import org.jboss.tools.common.java.TypeDeclaration;
import org.jboss.tools.common.model.util.EclipseJavaUtil;
import org.jboss.tools.common.model.util.EclipseResourceUtil;
import org.jboss.tools.common.text.INodeReference;
@@ -360,7 +358,7 @@
Set<IFile> filesToValidate = new HashSet<IFile>();
for (IPath linkedResource : resources) {
IFile file = root.getFile(linkedResource);
- if(file.isAccessible()) {
+ if(shouldBeValidated(file)) {
IProject pr = file.getProject();
if(!validationHelper.getValidationContextManager().projectHasBeenValidated(this, pr))
{
filesToValidate.add(file);
@@ -2361,6 +2359,9 @@
boolean shouldValidateResourceOfElement(IResource resource) {
// validate existing sources only
+ if(resource instanceof IFile && !shouldBeValidated((IFile)resource)) {
+ return false;
+ }
return resource != null && resource.exists() &&
resource.getName().toLowerCase().endsWith(".java");
}
Modified:
trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/util/EclipseUIUtil.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/util/EclipseUIUtil.java 2012-01-04
00:40:06 UTC (rev 37622)
+++
trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/util/EclipseUIUtil.java 2012-01-04
01:35:40 UTC (rev 37623)
@@ -10,6 +10,9 @@
******************************************************************************/
package org.jboss.tools.common.util;
+import java.util.HashSet;
+import java.util.Set;
+
import org.eclipse.core.resources.IFile;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
@@ -69,4 +72,27 @@
}
return false;
}
+
+ /**
+ * Returns all the modified but not saved files which are opened with all the editors.
+ * @return
+ */
+ public static Set<IFile> getDirtyFiles() {
+ Set<IFile> dirtyFiles = new HashSet<IFile>();
+ IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows();
+ for (IWorkbenchWindow window : windows) {
+ IWorkbenchPage page = window.getActivePage();
+ if (page != null) {
+ IEditorPart[] editors = page.getDirtyEditors();
+ for (IEditorPart editor : editors) {
+ IEditorInput input = editor.getEditorInput();
+ if(input instanceof IFileEditorInput) {
+ IFile file = ((IFileEditorInput)input).getFile();
+ dirtyFiles.add(file);
+ }
+ }
+ }
+ }
+ return dirtyFiles;
+ }
}
\ No newline at end of file
Modified:
trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/ValidationErrorManager.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/ValidationErrorManager.java 2012-01-04
00:40:06 UTC (rev 37622)
+++
trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/ValidationErrorManager.java 2012-01-04
01:35:40 UTC (rev 37623)
@@ -14,6 +14,7 @@
import java.util.HashSet;
import java.util.Set;
+import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
@@ -38,6 +39,7 @@
import org.jboss.tools.common.preferences.SeverityPreferences;
import org.jboss.tools.common.text.ITextSourceReference;
import org.jboss.tools.common.util.EclipseJavaUtil;
+import org.jboss.tools.common.util.EclipseUIUtil;
/**
* @author Alexey Kazakov
@@ -61,6 +63,7 @@
protected String markerId;
protected IProjectValidationContext validationContext;
protected TextFileDocumentProvider documentProvider;
+ protected Set<IFile> dirtyFiles;
private String messageIdQuickFixAttributeName;
@@ -90,6 +93,7 @@
setReporter(reporter);
setValidationContext(validationContext);
setMarkerId(org.jboss.tools.common.validation.IValidator.MARKED_RESOURCE_MESSAGE_GROUP);
+ dirtyFiles = EclipseUIUtil.getDirtyFiles();
}
public void init(IProject project, ContextValidationHelper validationHelper,
IProjectValidationContext validationContext, IValidator manager, IReporter reporter,
String messageIdQuickFixAttributeName) {
@@ -97,6 +101,10 @@
setMessageIdQuickFixAttributeName(messageIdQuickFixAttributeName);
}
+ protected boolean shouldBeValidated(IFile file) {
+ return file.isAccessible() && !dirtyFiles.contains(file);
+ }
+
/**
* @param validationManager the validationManager to set
*/
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-01-04
00:40:06 UTC (rev 37622)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ELValidator.java 2012-01-04
01:35:40 UTC (rev 37623)
@@ -160,7 +160,7 @@
Set<IFile> filesToValidate = new HashSet<IFile>();
boolean containsJavaOrComponentsXml = false;
for (IFile file : changedFiles) {
- if(file.isAccessible() && notValidatedYet(file)) {
+ if(shouldBeValidated(file) && notValidatedYet(file)) {
filesToValidate.add(file);
if(!containsJavaOrComponentsXml) {
String fileName = file.getName().toLowerCase();
@@ -174,7 +174,7 @@
Set<IPath> unnamedResources = validationContext.getUnnamedElResources();
for (IPath path : unnamedResources) {
IFile file = wsRoot.getFile(path);
- if(file.isAccessible() && notValidatedYet(file)) {
+ if(shouldBeValidated(file) && notValidatedYet(file)) {
filesToValidate.add(file);
}
}
@@ -224,7 +224,7 @@
Set<IFile> files = validationHelper.getProjectSetRegisteredFiles();
Set<IFile> filesToValidate = new HashSet<IFile>();
for (IFile file : files) {
- if(file.isAccessible()) {
+ if(shouldBeValidated(file)) {
if(notValidatedYet(file)) {
filesToValidate.add(file);
}
@@ -271,7 +271,7 @@
}
private void validateEL(ELReference el) {
- if(!reporter.isCancelled()) {
+ if(!reporter.isCancelled() && shouldBeValidated(el.getResource())) {
displaySubtask(ELValidationMessages.VALIDATING_EL_FILE, new
String[]{el.getResource().getProject().getName(), el.getResource().getName()});
el.deleteMarkers();
for (ELExpression expresion : el.getEl()) {
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamCoreValidator.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamCoreValidator.java 2012-01-04
00:40:06 UTC (rev 37622)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamCoreValidator.java 2012-01-04
01:35:40 UTC (rev 37623)
@@ -298,7 +298,7 @@
// We have to remove markers from all collected source files first
for (IPath linkedResource : resources) {
IFile file = root.getFile(linkedResource);
- if(file!=null && file.isAccessible()) {
+ if(file!=null && shouldBeValidated(file)) {
filesToValidate.add(file);
removeAllMessagesFromResource(file);
}