Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpguilet2016-11-23 14:40:45 +0000
committerSteve Monnier2016-11-25 13:26:17 +0000
commitcb11744b51780fa8ae0b06a76b56a6afe5792d51 (patch)
tree0b69a082c26d9e48a42e0b53b1ace6c1e7335efb
parent5ecd3c3dd5e9844c8ac9bf9bf9e2bcd84f3563e1 (diff)
downloadorg.eclipse.sirius-cb11744b51780fa8ae0b06a76b56a6afe5792d51.tar.gz
org.eclipse.sirius-cb11744b51780fa8ae0b06a76b56a6afe5792d51.tar.xz
org.eclipse.sirius-cb11744b51780fa8ae0b06a76b56a6afe5792d51.zip
[508036] Fix NPE when pasting format on diagram with hidden element
When pasting format on the root element of a diagram, we now take in consideration the possibility that semantic sub elements of root element does not have an edit part because it has been hidden whereas it was not in diagram source of the format. Bug: 508036 Change-Id: If7dd1e03439aca670dde713284ad1bb3225d7b65 Signed-off-by: pguilet <pierre.guilet@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/format/AbstractSiriusFormatDataManager.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/format/AbstractSiriusFormatDataManager.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/format/AbstractSiriusFormatDataManager.java
index f8e93c5273..e540f3e3e7 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/format/AbstractSiriusFormatDataManager.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/format/AbstractSiriusFormatDataManager.java
@@ -390,11 +390,13 @@ public abstract class AbstractSiriusFormatDataManager implements SiriusFormatDat
}
}
}
-
- if (formatData != null && applyFormat) {
-
+ Object editPartAsObject = editPartViewer.getEditPartRegistry().get(toRestoreView);
+ // we can have a null edit part when pasting format on root diagram
+ // element of a diagram with hidden part that are not hidden in source
+ // diagram.
+ if (formatData != null && applyFormat && editPartAsObject != null) {
final Bounds bounds = NotationFactory.eINSTANCE.createBounds();
- final IGraphicalEditPart graphicalEditPart = (IGraphicalEditPart) editPartViewer.getEditPartRegistry().get(toRestoreView);
+ final IGraphicalEditPart graphicalEditPart = (IGraphicalEditPart) editPartAsObject;
Point locationToApply;
boolean isCollapsed = false;
if (graphicalEditPart instanceof AbstractDiagramBorderNodeEditPart) {
@@ -448,7 +450,6 @@ public abstract class AbstractSiriusFormatDataManager implements SiriusFormatDat
// Apply GMF style properties
applyGMFStyle(toRestoreView, formatData);
}
-
if (semanticDecorator instanceof DNode) {
applyFormatToNodeChildren((DNode) semanticDecorator, editPartViewer, formatData, applyFormat, applyStyle);
} else if (semanticDecorator instanceof DNodeContainer) {

Back to the top