*fix
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/META-INF/MANIFEST.MF b/core/plugins/org.eclipse.dltk.validators.ui/META-INF/MANIFEST.MF
index 0cf9aee..9130231 100644
--- a/core/plugins/org.eclipse.dltk.validators.ui/META-INF/MANIFEST.MF
+++ b/core/plugins/org.eclipse.dltk.validators.ui/META-INF/MANIFEST.MF
@@ -15,7 +15,7 @@
  org.eclipse.ui.ide,
  org.eclipse.ui.workbench.texteditor
 Eclipse-LazyStart: true
-Export-Package: org.eclipse.dltk.validators
+Export-Package: org.eclipse.dltk.validators.ui
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/icons/clear_co.gif b/core/plugins/org.eclipse.dltk.validators.ui/icons/clear_co.gif
new file mode 100644
index 0000000..af30a42
--- /dev/null
+++ b/core/plugins/org.eclipse.dltk.validators.ui/icons/clear_co.gif
Binary files differ
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/icons/goto_input.gif b/core/plugins/org.eclipse.dltk.validators.ui/icons/goto_input.gif
new file mode 100644
index 0000000..2a6dea3
--- /dev/null
+++ b/core/plugins/org.eclipse.dltk.validators.ui/icons/goto_input.gif
Binary files differ
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/plugin.xml b/core/plugins/org.eclipse.dltk.validators.ui/plugin.xml
index 075e577..57b3add 100644
--- a/core/plugins/org.eclipse.dltk.validators.ui/plugin.xml
+++ b/core/plugins/org.eclipse.dltk.validators.ui/plugin.xml
@@ -30,19 +30,23 @@
                label="DLTK Validators"
                path="additions">
             <separator
-                  name="top">
+                  name="sep">
             </separator>
+            <groupMarker
+                  name="bottom">
+            </groupMarker>
          </menu>
          <action
-               class="org.eclipse.dltk.validators.internal.ui.popup.actions.ValidatorSelectionWithConsoleAction"
-               id="org.eclipse.dltk.validators.ui.newAction"
-               label="Validate selection with console"
-               menubarPath="org.eclipse.dltk.validators.ui.menu/top"
-               >
+               class="org.eclipse.dltk.validators.internal.ui.popup.actions.ValidateSelectionWithConsoleAction"
+               icon="icons/goto_input.gif"
+               id="org.eclipse.dltk.validators.ui.execActive"
+               label="Execute all active validators with console"
+               menubarPath="org.eclipse.dltk.validators.ui.menu/top">
          </action>
          <action
                class="org.eclipse.dltk.validators.internal.ui.popup.actions.RemoveValidatorAllMarkersAction"
-               id="org.eclipse.dltk.validators.ui.action2"
+               icon="icons/clear_co.gif"
+               id="org.eclipse.dltk.validators.ui.clean"
                label="Remove all validator markers"
                menubarPath="org.eclipse.dltk.validators.ui.menu/top">
          </action>
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/AddValidatorDialog.java b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/AddValidatorDialog.java
index dcfa56d..0f135e1 100644
--- a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/AddValidatorDialog.java
+++ b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/AddValidatorDialog.java
@@ -21,9 +21,9 @@
 import org.eclipse.dltk.internal.ui.wizards.dialogfields.DialogField;
 import org.eclipse.dltk.internal.ui.wizards.dialogfields.IDialogFieldListener;
 import org.eclipse.dltk.internal.ui.wizards.dialogfields.StringDialogField;
-import org.eclipse.dltk.validators.ValidatorConfigurationPage;
 import org.eclipse.dltk.validators.core.IValidator;
 import org.eclipse.dltk.validators.core.IValidatorType;
+import org.eclipse.dltk.validators.ui.ValidatorConfigurationPage;
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.dialogs.StatusDialog;
 import org.eclipse.swt.SWT;
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/ValidatorConfigurationPageManager.java b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/ValidatorConfigurationPageManager.java
index f95d4f9..d79766a 100644
--- a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/ValidatorConfigurationPageManager.java
+++ b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/ValidatorConfigurationPageManager.java
@@ -15,7 +15,7 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.Platform;
-import org.eclipse.dltk.validators.ValidatorConfigurationPage;
+import org.eclipse.dltk.validators.ui.ValidatorConfigurationPage;
 
 public class ValidatorConfigurationPageManager {
 
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/externalchecker/ExternalCheckerConfigurationPage.java b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/externalchecker/ExternalCheckerConfigurationPage.java
index b1dc0a4..4bc244c 100644
--- a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/externalchecker/ExternalCheckerConfigurationPage.java
+++ b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/externalchecker/ExternalCheckerConfigurationPage.java
@@ -4,9 +4,9 @@
 import java.util.List;
 
 import org.eclipse.dltk.internal.ui.wizards.dialogfields.StringDialogField;
-import org.eclipse.dltk.validators.ValidatorConfigurationPage;
 import org.eclipse.dltk.validators.internal.core.externalchecker.ExternalChecker;
 import org.eclipse.dltk.validators.internal.core.externalchecker.Rule;
+import org.eclipse.dltk.validators.ui.ValidatorConfigurationPage;
 import org.eclipse.jface.viewers.CellEditor;
 import org.eclipse.jface.viewers.ComboBoxCellEditor;
 import org.eclipse.jface.viewers.IStructuredContentProvider;
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/externalchecker/ExternalCheckerGenericHyperlink.java b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/externalchecker/ExternalCheckerGenericHyperlink.java
index f9a59ec..bfe0ef2 100644
--- a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/externalchecker/ExternalCheckerGenericHyperlink.java
+++ b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/externalchecker/ExternalCheckerGenericHyperlink.java
@@ -5,7 +5,6 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.dltk.internal.ui.editor.EditorUtility;
-import org.eclipse.dltk.validators.internal.ui.ValidatorsUI;
 import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.IRegion;
@@ -82,34 +81,26 @@
 			}
 			Object sourceElement = getSourceModule(fileName);
 			if (sourceElement != null) {
-				IEditorInput editorInput = getEditorInput(sourceElement);
-				if (editorInput != null) {
-					String editorId = getEditorId(editorInput, sourceElement);
-					if (editorId != null) {
-						IEditorPart editorPart = ValidatorsUI
-								.getActivePage().openEditor(editorInput,
-										editorId);
-						if (editorPart instanceof ITextEditor
-								&& lineNumber >= 0) {
-							ITextEditor textEditor = (ITextEditor) editorPart;
-							IDocumentProvider provider = textEditor
-									.getDocumentProvider();
-							provider.connect(editorInput);
-							IDocument document = provider
-									.getDocument(editorInput);
-							try {
-								IRegion line = document
-										.getLineInformation(lineNumber);
-								textEditor.selectAndReveal(line.getOffset(),
-										line.getLength());
-							} catch (BadLocationException e) {
+				IEditorPart part = EditorUtility.openInEditor(sourceElement);
+				IEditorPart editorPart = EditorUtility
+						.openInEditor(sourceElement);
+				if (editorPart instanceof ITextEditor && lineNumber >= 0) {
+					ITextEditor textEditor = (ITextEditor) editorPart;
+					IDocumentProvider provider = textEditor
+							.getDocumentProvider();
+					IEditorInput input = part.getEditorInput();
+					provider.connect(input);
+					IDocument document = provider.getDocument(input);
+					try {
+						IRegion line = document.getLineInformation(lineNumber);
+						textEditor.selectAndReveal(line.getOffset(), line
+								.getLength());
+					} catch (BadLocationException e) {
 
-							}
-							provider.disconnect(editorInput);
-						}
-						return;
 					}
+					provider.disconnect(input);
 				}
+				return;
 			}
 			// did not find source
 		} catch (CoreException e) {
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/RemoveValidatorAllMarkersAction.java b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/RemoveValidatorAllMarkersAction.java
index 7881a62..94c5f33 100644
--- a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/RemoveValidatorAllMarkersAction.java
+++ b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/RemoveValidatorAllMarkersAction.java
@@ -9,90 +9,19 @@
  *******************************************************************************/
 package org.eclipse.dltk.validators.internal.ui.popup.actions;
 
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Iterator;
+import java.io.OutputStream;
 import java.util.List;
 
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.dltk.core.DLTKCore;
 import org.eclipse.dltk.validators.core.ValidatorRuntime;
-import org.eclipse.dltk.validators.internal.core.ValidatorUtils;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IActionDelegate;
+import org.eclipse.dltk.validators.ui.AbstractValidateSelectionWithConsole;
 import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
 
-public class RemoveValidatorAllMarkersAction implements IObjectActionDelegate {
-	ISelection selection;
-
-	/**
-	 * Constructor for Action1.
-	 */
-	public RemoveValidatorAllMarkersAction() {
-		super();
+public class RemoveValidatorAllMarkersAction extends AbstractValidateSelectionWithConsole implements IObjectActionDelegate {
+	protected void invoceValidationFor(final OutputStream out,
+			final List elements, final List resources,
+			IProgressMonitor monitor) {
+		ValidatorRuntime.executeCleanAllValidatorsWithConsole(
+				elements, resources, monitor);
 	}
-
-	/**
-	 * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
-	 */
-	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-	}
-
-	/**
-	 * @see IActionDelegate#run(IAction)
-	 */
-	public void run(IAction action) {
-		processSelectionToElements(selection);
-	}
-
-	private void processSelectionToElements(ISelection selection) {
-		final List elements = new ArrayList();
-		final List resources = new ArrayList();
-		if (this.selection != null
-				&& this.selection instanceof IStructuredSelection) {
-			IStructuredSelection sel = (IStructuredSelection) this.selection;
-			Iterator iterator = sel.iterator();
-			for (; iterator.hasNext();) {
-				Object o = iterator.next();
-				ValidatorUtils.processResourcesToElements(o, elements,
-						resources);
-			}
-		}
-		ProgressMonitorDialog dialog = new ProgressMonitorDialog(PlatformUI
-				.getWorkbench().getDisplay().getActiveShell());
-		try {
-			dialog.run(true, true, new IRunnableWithProgress() {
-
-				public void run(IProgressMonitor monitor)
-						throws InvocationTargetException, InterruptedException {
-//					monitor.beginTask("Clear validator markes", 1);
-					ValidatorRuntime.executeCleanAllValidatorsWithConsole(
-							elements, resources, monitor);
-//					monitor.done();
-				}
-			});
-		} catch (InvocationTargetException e) {
-			if (DLTKCore.DEBUG) {
-				e.printStackTrace();
-			}
-		} catch (InterruptedException e) {
-			if (DLTKCore.DEBUG) {
-				e.printStackTrace();
-			}
-		}
-	}
-
-	/**
-	 * @see IActionDelegate#selectionChanged(IAction, ISelection)
-	 */
-	public void selectionChanged(IAction action, ISelection selection) {
-		this.selection = selection;
-	}
-
 }
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/ValidateSelectionWithConsoleAction.java b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/ValidateSelectionWithConsoleAction.java
new file mode 100644
index 0000000..2b05027
--- /dev/null
+++ b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/ValidateSelectionWithConsoleAction.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are 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
+ *
+ 
+ *******************************************************************************/
+package org.eclipse.dltk.validators.internal.ui.popup.actions;
+
+import java.io.OutputStream;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.dltk.validators.core.ValidatorRuntime;
+import org.eclipse.dltk.validators.ui.AbstractValidateSelectionWithConsole;
+
+public class ValidateSelectionWithConsoleAction extends AbstractValidateSelectionWithConsole {
+	protected void invoceValidationFor(final OutputStream out,
+			final List elements, final List resources,
+			IProgressMonitor monitor) {
+		ValidatorRuntime.executeAllValidatorsWithConsole(out,
+				elements, resources, monitor);
+	}
+}
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/ValidatorSelectionWithConsoleAction.java b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/ui/AbstractValidateSelectionWithConsole.java
similarity index 74%
rename from core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/ValidatorSelectionWithConsoleAction.java
rename to core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/ui/AbstractValidateSelectionWithConsole.java
index 6f601e8..d58e87a 100644
--- a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/ValidatorSelectionWithConsoleAction.java
+++ b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/ui/AbstractValidateSelectionWithConsole.java
@@ -1,13 +1,4 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are 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
- *
- 
- *******************************************************************************/
-package org.eclipse.dltk.validators.internal.ui.popup.actions;
+package org.eclipse.dltk.validators.ui;
 
 import java.io.IOException;
 import java.io.OutputStream;
@@ -18,9 +9,7 @@
 
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.dltk.core.DLTKCore;
-import org.eclipse.dltk.validators.core.ValidatorRuntime;
 import org.eclipse.dltk.validators.internal.core.ValidatorUtils;
-import org.eclipse.dltk.validators.internal.ui.ValidatorConsoleTrackerManager;
 import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
 import org.eclipse.jface.operation.IRunnableWithProgress;
@@ -37,15 +26,16 @@
 import org.eclipse.ui.console.IOConsoleOutputStream;
 import org.eclipse.ui.console.IPatternMatchListener;
 
-public class ValidatorSelectionWithConsoleAction implements
-		IObjectActionDelegate {
+public abstract class AbstractValidateSelectionWithConsole implements IObjectActionDelegate {
+
 	public static final String DLTK_VALIDATORS_CONSOLE = "DLTK Validators output";
+
+	protected abstract void invoceValidationFor(final OutputStream out, final List elements,
+			final List resources, IProgressMonitor monitor);
+
 	ISelection selection;
 
-	/**
-	 * Constructor for Action1.
-	 */
-	public ValidatorSelectionWithConsoleAction() {
+	public AbstractValidateSelectionWithConsole() {
 		super();
 	}
 
@@ -81,8 +71,7 @@
 		}
 	}
 
-	private void processSelectionToElements(final OutputStream out,
-			ISelection selection) {
+	protected void processSelectionToElements(final OutputStream out, ISelection selection) {
 		final List elements = new ArrayList();
 		final List resources = new ArrayList();
 		if (this.selection != null
@@ -95,21 +84,19 @@
 						resources);
 			}
 		}
-
+	
 		// ValidatorRuntime.executeAllValidatorsWithConsole(out, elements,
 		// resources);
 		ProgressMonitorDialog dialog = new ProgressMonitorDialog(PlatformUI
 				.getWorkbench().getDisplay().getActiveShell());
 		try {
 			dialog.run(true, true, new IRunnableWithProgress() {
-
+	
 				public void run(IProgressMonitor monitor)
 						throws InvocationTargetException, InterruptedException {
-//					monitor.beginTask("DLTK Validation with console", 1);
-					ValidatorRuntime.executeAllValidatorsWithConsole(out,
-							elements, resources, monitor);
-//					monitor.done();
+					invoceValidationFor(out, elements, resources, monitor);
 				}
+	
 			});
 		} catch (InvocationTargetException e) {
 			if (DLTKCore.DEBUG) {
@@ -129,4 +116,4 @@
 		this.selection = selection;
 	}
 
-}
+}
\ No newline at end of file
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/ValidatorConfigurationPage.java b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/ui/ValidatorConfigurationPage.java
similarity index 95%
rename from core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/ValidatorConfigurationPage.java
rename to core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/ui/ValidatorConfigurationPage.java
index eeb6bf8..22bb065 100644
--- a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/ValidatorConfigurationPage.java
+++ b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/ui/ValidatorConfigurationPage.java
@@ -7,7 +7,7 @@
  *
  
  *******************************************************************************/
-package org.eclipse.dltk.validators;
+package org.eclipse.dltk.validators.ui;
 
 import org.eclipse.dltk.validators.core.IValidator;
 import org.eclipse.swt.widgets.Composite;
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/ValidatorConsoleTrackerManager.java b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/ui/ValidatorConsoleTrackerManager.java
similarity index 93%
rename from core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/ValidatorConsoleTrackerManager.java
rename to core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/ui/ValidatorConsoleTrackerManager.java
index 76d525f..54b750a 100644
--- a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/ValidatorConsoleTrackerManager.java
+++ b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/ui/ValidatorConsoleTrackerManager.java
@@ -7,7 +7,7 @@
  *
  
  *******************************************************************************/
-package org.eclipse.dltk.validators.internal.ui;
+package org.eclipse.dltk.validators.ui;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -15,6 +15,7 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.Platform;
+import org.eclipse.dltk.validators.internal.ui.ValidatorsUI;
 import org.eclipse.ui.console.IPatternMatchListener;
 
 public class ValidatorConsoleTrackerManager {