| /* |
| * generated by Xtext 2.11.0 |
| */ |
| package org.eclipse.osbp.xtext.action.validation |
| |
| import org.eclipse.osbp.runtime.common.keystroke.KeyCodeUtil |
| import org.eclipse.osbp.xtext.action.ActionCommand |
| import org.eclipse.osbp.xtext.action.ActionDSLPackage |
| import org.eclipse.xtext.validation.Check |
| |
| /** |
| * This class contains custom validation rules. |
| * |
| * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation |
| */ |
| class ActionDSLValidator extends AbstractActionDSLValidator { |
| |
| public static val INVALID_KEY = 'invalidKey' |
| |
| @Check |
| def checkKeyBinding(ActionCommand command) { |
| if(command.hasKeyBinding) { |
| var error = false |
| var parts = command.keyBinding.split(" ") |
| for(part:parts) { |
| if(part.equals(parts.last)) { |
| if (KeyCodeUtil.keyLookupInteger(part) == 0) { |
| error = true |
| } |
| } else { |
| if (KeyCodeUtil.modifierLookup(part) == 0) { |
| error = true |
| } |
| } |
| if(error) { |
| warning('Invalid key given for keyBinding. Modifier must be one of CTRL ALT SHIFT, Keys separated by blanks', |
| ActionDSLPackage.Literals.ACTION_COMMAND__KEY_BINDING, |
| INVALID_KEY) |
| } |
| } |
| } |
| } |
| |
| } |