| diff --git org.eclipse.epsilon.eugenia.examples.executablestatemachine.graphical.diagram/src/esm/diagram/parsers/ActionXtext2GmfParser.java org.eclipse.epsilon.eugenia.examples.executablestatemachine.graphical.diagram/src/esm/diagram/parsers/ActionXtext2GmfParser.java |
| index 950bccd..34869f9 100644 |
| --- org.eclipse.epsilon.eugenia.examples.executablestatemachine.graphical.diagram/src/esm/diagram/parsers/ActionXtext2GmfParser.java |
| +++ org.eclipse.epsilon.eugenia.examples.executablestatemachine.graphical.diagram/src/esm/diagram/parsers/ActionXtext2GmfParser.java |
| @@ -28,6 +28,16 @@ |
| /** |
| * @generated |
| */ |
| + private ActionParser parser = ActionParser.create(); |
| + |
| + /** |
| + * @generated |
| + */ |
| + private ActionGlue glue = new ActionGlue(); |
| + |
| + /** |
| + * @generated |
| + */ |
| public ActionXtext2GmfParser(EAttribute[] features) { |
| super(features); |
| if (features.length != 1) { |
| @@ -66,7 +76,14 @@ |
| */ |
| public IParserEditStatus isValidEditString(IAdaptable adapter, |
| String editString) { |
| - return ParserEditStatus.EDITABLE_STATUS; |
| + final Collection<?> issues = parser.validate(editString); |
| + |
| + if (issues.isEmpty()) { |
| + return ParserEditStatus.EDITABLE_STATUS; |
| + } else { |
| + return new ParserEditStatus(EsmDiagramEditorPlugin.ID, |
| + IParserEditStatus.UNEDITABLE, issues.toString()); |
| + } |
| } |
| |
| /** |
| @@ -76,7 +93,13 @@ |
| int flags) { |
| Object value = EcoreUtil.createFromString( |
| editableFeatures[0].getEAttributeType(), newString); |
| - return getParseCommand(adapter, new Object[] { value }, flags); |
| + ICommand textCommand = getParseCommand(adapter, new Object[] { value }, |
| + flags); |
| + EObject modelElement = (EObject) adapter.getAdapter(EObject.class); |
| + SetRequest request = new SetRequest(modelElement, |
| + glue.targetFor(features), parser.parse(newString)); |
| + SetValueCommand setValueCommand = new SetValueCommand(request); |
| + return textCommand.compose(setValueCommand); |
| } |
| |
| /** |