blob: 694b11c8dd85f990386ef3c336ca3b4c75d92026 [file] [log] [blame]
/*
* 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)
}
}
}
}
}