merged from HEAD
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/DLTKValidatorsActionGroup.java b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/DLTKValidatorsActionGroup.java
index 15b6430..2a9ac60 100644
--- a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/DLTKValidatorsActionGroup.java
+++ b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/DLTKValidatorsActionGroup.java
@@ -22,6 +22,7 @@
import org.eclipse.dltk.validators.core.ValidatorRuntime;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.actions.ActionGroup;
@@ -53,22 +54,49 @@
if (validatorTypes == null || validatorTypes.length == 0) {
return;
}
+ int validatorCount = 0;
final IMenuManager subMenu = new MenuManager(
Messages.DLTKValidatorsEditorContextMenu_text);
+ if (DEBUG) {
+ System.out.println("validators BEGIN"); //$NON-NLS-1$
+ }
for (int i = 0; i < validatorTypes.length; ++i) {
final IValidatorType type = validatorTypes[i];
+ if (DEBUG) {
+ System.out.println("validatorType " + type.getName()); //$NON-NLS-1$
+ }
final IValidator[] validators = type.getValidators();
if (validators != null && validators.length != 0) {
for (int j = 0; j < validators.length; ++j) {
final IValidator validator = validators[j];
- if (validator.isValidatorValid(environment)) {
- subMenu.add(new ValidateAction(validator, element));
- subMenu.add(new RemoveMarkersAction(validator, element));
+ if (DEBUG) {
+ System.out.println("validator " + validator.getName()); //$NON-NLS-1$
+ }
+ ++validatorCount;
+ final ValidateAction action = new ValidateAction(validator,
+ element);
+ action.setEnabled(validator.isValidatorValid(environment));
+ subMenu.add(action);
+ if (false) {
+ subMenu
+ .add(new RemoveMarkersAction(validator, element));
}
}
}
}
+ if (DEBUG) {
+ System.out.println("validators END"); //$NON-NLS-1$
+ }
+ if (validatorCount != 0) {
+ subMenu.add(new Separator());
+ }
+ subMenu.add(new RemoveAllMarkersAction(element));
+ if (validatorCount != 0) {
+ subMenu.add(new ValidateAllAction(element));
+ }
menu.appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS, subMenu);
}
+ private static final boolean DEBUG = false;
+
}
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/Messages.java b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/Messages.java
index e190735..4fdc186 100644
--- a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/Messages.java
+++ b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/Messages.java
@@ -7,6 +7,8 @@
public static String DLTKValidatorsEditorContextMenu_text;
public static String DLTKValidatorsEditorContextMenu_validateWith;
public static String DLTKValidatorsEditorContextMenu_validatorCleanup;
+ public static String DLTKValidatorsEditorContextMenu_cleanupAll;
+ public static String DLTKValidatorsEditorContextMenu_validateAll;
public static String RemoveValidatorAllMarkersAction_validatorCleanup;
public static String ValidateSelectionWithConsoleAction_validation;
static {
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/RemoveAllMarkersAction.java b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/RemoveAllMarkersAction.java
new file mode 100644
index 0000000..3433b32
--- /dev/null
+++ b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/RemoveAllMarkersAction.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2008 xored software, Inc.
+ *
+ * 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
+ *
+ * Contributors:
+ * xored software, Inc. - initial API and Implementation (Alex Panchenko)
+ *******************************************************************************/
+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.core.IModelElement;
+import org.eclipse.dltk.validators.core.ValidatorRuntime;
+import org.eclipse.dltk.validators.internal.ui.ValidatorsUI;
+import org.eclipse.dltk.validators.ui.AbstractValidateSelectionWithConsole;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.viewers.StructuredSelection;
+
+public class RemoveAllMarkersAction extends Action {
+
+ private final IModelElement element;
+
+ /**
+ * @param element
+ */
+ public RemoveAllMarkersAction(IModelElement element) {
+ this.element = element;
+ setText(Messages.DLTKValidatorsEditorContextMenu_cleanupAll);
+ setImageDescriptor(ValidatorsUI.getDefault().getImageDescriptor(
+ RemoveMarkersAction.CLEANUP_IMAGE));
+ }
+
+ public void run() {
+ final AbstractValidateSelectionWithConsole delegate = new AbstractValidateSelectionWithConsole() {
+
+ protected boolean isConsoleRequired() {
+ return false;
+ }
+
+ protected String getJobName() {
+ return Messages.RemoveValidatorAllMarkersAction_validatorCleanup;
+ }
+
+ protected void invoceValidationFor(OutputStream out, List elements,
+ List resources, IProgressMonitor monitor) {
+ ValidatorRuntime.executeCleanAllValidatorsWithConsole(elements,
+ resources, monitor);
+ }
+ };
+ delegate.selectionChanged(this, new StructuredSelection(element));
+ delegate.run(this);
+ }
+
+}
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/RemoveMarkersAction.java b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/RemoveMarkersAction.java
index b678085..1abe187 100644
--- a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/RemoveMarkersAction.java
+++ b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/RemoveMarkersAction.java
@@ -26,7 +26,7 @@
public class RemoveMarkersAction extends Action {
- private static final String CLEANUP_IMAGE = "icons/clear_co.gif"; //$NON-NLS-1$
+ static final String CLEANUP_IMAGE = "icons/clear_co.gif"; //$NON-NLS-1$
private final IValidator validator;
private final IModelElement element;
@@ -55,8 +55,8 @@
protected void invoceValidationFor(OutputStream out, List elements,
List resources, IProgressMonitor monitor) {
- ValidatorRuntime.cleanValidator(validator, elements,
- resources, monitor);
+ ValidatorRuntime.cleanValidator(validator, elements, resources,
+ monitor);
}
};
delegate.selectionChanged(this, new StructuredSelection(element));
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/ValidateAction.java b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/ValidateAction.java
index 145c26c..3511e33 100644
--- a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/ValidateAction.java
+++ b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/ValidateAction.java
@@ -26,7 +26,7 @@
public class ValidateAction extends Action {
- private static final String VALIDATE_IMAGE = "icons/goto_input.gif"; //$NON-NLS-1$
+ static final String VALIDATE_IMAGE = "icons/goto_input.gif"; //$NON-NLS-1$
private final IValidator validator;
private final IModelElement element;
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/ValidateAllAction.java b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/ValidateAllAction.java
new file mode 100644
index 0000000..81098c8
--- /dev/null
+++ b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/ValidateAllAction.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2008 xored software, Inc.
+ *
+ * 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
+ *
+ * Contributors:
+ * xored software, Inc. - initial API and Implementation (Alex Panchenko)
+ *******************************************************************************/
+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.core.IModelElement;
+import org.eclipse.dltk.validators.core.ValidatorRuntime;
+import org.eclipse.dltk.validators.internal.ui.ValidatorsUI;
+import org.eclipse.dltk.validators.ui.AbstractValidateSelectionWithConsole;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.viewers.StructuredSelection;
+
+public class ValidateAllAction extends Action {
+
+ private final IModelElement element;
+
+ /**
+ * @param element
+ */
+ public ValidateAllAction(IModelElement element) {
+ this.element = element;
+ setText(Messages.DLTKValidatorsEditorContextMenu_validateAll);
+ setImageDescriptor(ValidatorsUI.getDefault().getImageDescriptor(
+ ValidateAction.VALIDATE_IMAGE));
+ }
+
+ public void run() {
+ final AbstractValidateSelectionWithConsole delegate = new AbstractValidateSelectionWithConsole() {
+
+ protected boolean isConsoleRequired() {
+ return false;
+ }
+
+ protected String getJobName() {
+ return Messages.ValidateSelectionWithConsoleAction_validation;
+ }
+
+ protected void invoceValidationFor(OutputStream out, List elements,
+ List resources, IProgressMonitor monitor) {
+ ValidatorRuntime.executeAllValidators(out, elements, resources,
+ monitor);
+ }
+ };
+ delegate.selectionChanged(this, new StructuredSelection(element));
+ delegate.run(this);
+ }
+
+}
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/messages.properties b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/messages.properties
index c925aff..ae23ba3 100644
--- a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/messages.properties
+++ b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/popup/actions/messages.properties
@@ -1,5 +1,7 @@
DLTKValidatorsEditorContextMenu_text=DLTK Validators
DLTKValidatorsEditorContextMenu_validateWith=Validate with {0}
DLTKValidatorsEditorContextMenu_validatorCleanup={0} cleanup
+DLTKValidatorsEditorContextMenu_cleanupAll=Remove all validator markers
+DLTKValidatorsEditorContextMenu_validateAll=Execute all active validators with console
RemoveValidatorAllMarkersAction_validatorCleanup=Validator cleanup
ValidateSelectionWithConsoleAction_validation=Validation