Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnsgar Radermacher2014-03-03 14:47:27 +0000
committerAnsgar Radermacher2014-03-03 14:51:10 +0000
commit1c33f80f4c00d6c657b913743eecb42959141b3e (patch)
tree40728f437d737294def00b040d9c09da15a3dad1
parenta179dc12d1daa0f046fcefd37f63d38ba83bad21 (diff)
downloadorg.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
-rw-r--r--plugins/infra/services/org.eclipse.papyrus.infra.services.decoration/src/org/eclipse/papyrus/infra/services/decoration/util/Decoration.java2
-rw-r--r--plugins/uml/textedit/org.eclipse.papyrus.uml.textedit.constraintwithessentialocl.xtext/src/org/eclipse/papyrus/uml/textedit/constraintwithessentialocl/xtext/EssentialOCLEditorConfiguration.java10
-rw-r--r--plugins/uml/xtext/org.eclipse.papyrus.uml.xtext.integration.ui/src/org/eclipse/papyrus/uml/xtext/integration/DefaultXtextDirectEditorConfiguration.java3
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) {

Back to the top