diff options
| author | Laurent Redor | 2017-10-20 13:52:22 +0000 |
|---|---|---|
| committer | Laurent Redor | 2017-11-24 17:11:12 +0000 |
| commit | 3834eb6fc3514f4b5c23353c18c10f1bc29f4923 (patch) | |
| tree | f49e13821a17feef302fefb3196b62936a5c94f0 | |
| parent | c444f2045b73b27ef67ef79f3f637bc8e983edbe (diff) | |
| download | org.eclipse.sirius-3834eb6fc3514f4b5c23353c18c10f1bc29f4923.tar.gz org.eclipse.sirius-3834eb6fc3514f4b5c23353c18c10f1bc29f4923.tar.xz org.eclipse.sirius-3834eb6fc3514f4b5c23353c18c10f1bc29f4923.zip | |
[526313] Allow export as image for representations of closed session
The sequence diagram automatically launches a RefreshLayoutCommand
during the SequenceDiagramEditPart.activate().
Before this fix, the representation exported was not in an opened
session, this explains the message "Impossible to find an interpreter -
Could not find a session for model element ...".
Bug: 526313
Change-Id: Iececfb61ad95473696911671e4be264d8afdadd5
Signed-off-by: Laurent Redor <laurent.redor@obeo.fr>
| -rw-r--r-- | plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/actions/export/ExportRepresentationsFromFileAction.java | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/actions/export/ExportRepresentationsFromFileAction.java b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/actions/export/ExportRepresentationsFromFileAction.java index a04d3c32f6..cccb53ec32 100644 --- a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/actions/export/ExportRepresentationsFromFileAction.java +++ b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/actions/export/ExportRepresentationsFromFileAction.java @@ -37,6 +37,7 @@ import org.eclipse.sirius.common.tools.api.resource.ImageFileFormat; import org.eclipse.sirius.ui.tools.api.actions.export.ExportAction; import org.eclipse.sirius.ui.tools.api.dialogs.ExportSeveralRepresentationsAsImagesDialog; import org.eclipse.sirius.viewpoint.DRepresentation; +import org.eclipse.sirius.viewpoint.DRepresentationDescriptor; import org.eclipse.sirius.viewpoint.provider.Messages; import org.eclipse.sirius.viewpoint.provider.SiriusEditPlugin; import org.eclipse.swt.widgets.Display; @@ -67,8 +68,9 @@ public class ExportRepresentationsFromFileAction implements IObjectActionDelegat final URI sessionResourceURI = URI.createPlatformResourceURI(sessionResourceFile.getFullPath().toOSString(), true); Session session = SessionManager.INSTANCE.getSession(sessionResourceURI, new SubProgressMonitor(new NullProgressMonitor(), 1)); if (session != null) { - final Collection<DRepresentation> dRepresentationsToExportAsImage = DialectManager.INSTANCE.getAllRepresentations(session); - if (!dRepresentationsToExportAsImage.isEmpty()) { + // Get only rep desc to avoid loading representation here if we are in lazy. + final Collection<DRepresentationDescriptor> dRepresentationsDescToExportAsImage = DialectManager.INSTANCE.getAllRepresentationDescriptors(session); + if (!dRepresentationsDescToExportAsImage.isEmpty()) { final ExportSeveralRepresentationsAsImagesDialog dialog = new ExportSeveralRepresentationsAsImagesDialog(shell, targetPath); if (dialog.open() == Window.CANCEL) { dialog.close(); @@ -92,6 +94,8 @@ public class ExportRepresentationsFromFileAction implements IObjectActionDelegat session = SessionManager.INSTANCE.openSession(sessionResourceURI, new SubProgressMonitor(monitor, 2), SiriusEditPlugin.getPlugin().getUiCallback()); if (session != null) { + // Get explicitly all representations (with loading them) + final Collection<DRepresentation> dRepresentationsToExportAsImage = DialectManager.INSTANCE.getAllRepresentations(session); ExportAction exportAction = new ExportAction(session, dRepresentationsToExportAsImage, outputPath, imageFormat, exportToHtml, exportDecorations); exportAction.setAutoScaleDiagram(autoScale); exportAction.run(new SubProgressMonitor(monitor, 7)); @@ -136,5 +140,4 @@ public class ExportRepresentationsFromFileAction implements IObjectActionDelegat } } } - } |
