diff options
author | Ansgar Radermacher | 2014-03-03 14:47:27 +0000 |
---|---|---|
committer | Ansgar Radermacher | 2014-03-03 14:51:10 +0000 |
commit | 1c33f80f4c00d6c657b913743eecb42959141b3e (patch) | |
tree | 40728f437d737294def00b040d9c09da15a3dad1 | |
parent | a179dc12d1daa0f046fcefd37f63d38ba83bad21 (diff) | |
download | org.eclipse.papyrus-1c33f80f4c00d6c657b913743eecb42959141b3e.tar.gz org.eclipse.papyrus-1c33f80f4c00d6c657b913743eecb42959141b3e.tar.xz org.eclipse.papyrus-1c33f80f4c00d6c657b913743eecb42959141b3e.zip |
Bug 427025 - [OCL For Papyrus] Cannot create OCL constraints in Luna
- set context element, in case of OCL editor
- assure that objectToEdit is not null, when selected via the model explorer
- fix NPE in decoration service
3 files changed, 14 insertions, 1 deletions
diff --git a/plugins/infra/services/org.eclipse.papyrus.infra.services.decoration/src/org/eclipse/papyrus/infra/services/decoration/util/Decoration.java b/plugins/infra/services/org.eclipse.papyrus.infra.services.decoration/src/org/eclipse/papyrus/infra/services/decoration/util/Decoration.java index 7ccf3b66884..c9b0c3d4d30 100644 --- a/plugins/infra/services/org.eclipse.papyrus.infra.services.decoration/src/org/eclipse/papyrus/infra/services/decoration/util/Decoration.java +++ b/plugins/infra/services/org.eclipse.papyrus.infra.services.decoration/src/org/eclipse/papyrus/infra/services/decoration/util/Decoration.java @@ -286,7 +286,7 @@ public class Decoration implements IPapyrusDecoration { }
}
}
- if (message.length() > 0) {
+ if ((message != null) && message.length() > 0) {
return message;
}
else {
diff --git a/plugins/uml/textedit/org.eclipse.papyrus.uml.textedit.constraintwithessentialocl.xtext/src/org/eclipse/papyrus/uml/textedit/constraintwithessentialocl/xtext/EssentialOCLEditorConfiguration.java b/plugins/uml/textedit/org.eclipse.papyrus.uml.textedit.constraintwithessentialocl.xtext/src/org/eclipse/papyrus/uml/textedit/constraintwithessentialocl/xtext/EssentialOCLEditorConfiguration.java index 7ddf06b123b..d89e2415436 100644 --- a/plugins/uml/textedit/org.eclipse.papyrus.uml.textedit.constraintwithessentialocl.xtext/src/org/eclipse/papyrus/uml/textedit/constraintwithessentialocl/xtext/EssentialOCLEditorConfiguration.java +++ b/plugins/uml/textedit/org.eclipse.papyrus.uml.textedit.constraintwithessentialocl.xtext/src/org/eclipse/papyrus/uml/textedit/constraintwithessentialocl/xtext/EssentialOCLEditorConfiguration.java @@ -44,6 +44,7 @@ import org.eclipse.swt.SWT; import org.eclipse.uml2.uml.Constraint;
import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.LiteralString;
+import org.eclipse.uml2.uml.Namespace;
import org.eclipse.uml2.uml.UMLFactory;
import org.eclipse.xtext.resource.XtextResource;
@@ -109,6 +110,12 @@ public class EssentialOCLEditorConfiguration extends DefaultXtextDirectEditorCon opaqueExpression.getBodies().add(indexOfOCLBody, newTextualRepresentation);
}
constraint.setSpecification(opaqueExpression);
+
+ // update context object, if null (TODO: clarify, if responsibility of textual editor).
+ EObject context = getContextProvider().getContextObject();
+ if ((constraint.getContext() == null) && (context instanceof Namespace)) {
+ constraint.setContext((Namespace) context);
+ }
return CommandResult.newOKCommandResult(constraint);
}
}
@@ -169,6 +176,9 @@ public class EssentialOCLEditorConfiguration extends DefaultXtextDirectEditorCon @Override
public IParser createParser(final EObject semanticObject) {
+ if (objectToEdit == null) {
+ objectToEdit = semanticObject;
+ }
final IParser defaultParser = super.createParser(semanticObject);
return new IParser() {
diff --git a/plugins/uml/xtext/org.eclipse.papyrus.uml.xtext.integration.ui/src/org/eclipse/papyrus/uml/xtext/integration/DefaultXtextDirectEditorConfiguration.java b/plugins/uml/xtext/org.eclipse.papyrus.uml.xtext.integration.ui/src/org/eclipse/papyrus/uml/xtext/integration/DefaultXtextDirectEditorConfiguration.java index e910af3acce..4fd2766bc9a 100644 --- a/plugins/uml/xtext/org.eclipse.papyrus.uml.xtext.integration.ui/src/org/eclipse/papyrus/uml/xtext/integration/DefaultXtextDirectEditorConfiguration.java +++ b/plugins/uml/xtext/org.eclipse.papyrus.uml.xtext.integration.ui/src/org/eclipse/papyrus/uml/xtext/integration/DefaultXtextDirectEditorConfiguration.java @@ -133,6 +133,9 @@ public abstract class DefaultXtextDirectEditorConfiguration extends DefaultDirec * Adapts {@link IDirectEditorConfiguration} to gmfs {@link IParser} interface for reuse in GMF direct editing infrastructure. */ public IParser createParser(final EObject semanticObject) { + if (objectToEdit == null) { + objectToEdit = semanticObject; + } return new IParser() { public String getEditString(IAdaptable element, int flags) { |