Bug 565295 - Improve GenericEditor createMarker performance

Add a debounce of 500ms before executing the job to set markers.

Change-Id: Ibd59563f8ad836a46cc3bb7d905a6772eb38b8fb
Signed-off-by: Eugen Neufeld <eneufeld@eclipsesource.com>
diff --git a/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/GenericEditor.java b/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/GenericEditor.java
index 27fa122..bb1fe67 100644
--- a/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/GenericEditor.java
+++ b/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/GenericEditor.java
@@ -351,9 +351,13 @@
 	}
 
 	private synchronized void initMarkers() {
-		if (getDiagnosticCache() == null || reloading || markerJob.get() != null) {
+		if (getDiagnosticCache() == null || reloading) {
 			return;
 		}
+		if (markerJob.get() != null) {
+			markerJob.get().cancel();
+			markerJob.compareAndSet(markerJob.get(), null);
+		}
 
 		final Job job = Job.create(Messages.GenericEditor_ValidationMarkersJobName, monitor -> {
 			try {
@@ -365,10 +369,10 @@
 				markerJob.compareAndSet(Job.getJobManager().currentJob(), null);
 			}
 		});
-		job.setPriority(Job.SHORT);
+		job.setPriority(Job.LONG);
 
 		if (markerJob.compareAndSet(null, job)) {
-			job.schedule();
+			job.schedule(500);
 		}
 	}
 
@@ -405,8 +409,7 @@
 		if (!file.isPresent()) {
 			return;
 		}
-		file.get().deleteMarkers("org.eclipse.core.resources.problemmarker", false, //$NON-NLS-1$
-			IResource.DEPTH_ZERO);
+		markerHelper.deleteMarkers(file.get());
 	}
 
 	/**