diff options
| author | pguilet | 2016-11-23 14:40:45 +0000 |
|---|---|---|
| committer | Steve Monnier | 2016-11-25 13:26:17 +0000 |
| commit | cb11744b51780fa8ae0b06a76b56a6afe5792d51 (patch) | |
| tree | 0b69a082c26d9e48a42e0b53b1ace6c1e7335efb | |
| parent | 5ecd3c3dd5e9844c8ac9bf9bf9e2bcd84f3563e1 (diff) | |
| download | org.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.java | 11 |
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) { |
