Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Redor2017-10-20 13:52:22 +0000
committerLaurent Redor2017-11-24 17:11:12 +0000
commit3834eb6fc3514f4b5c23353c18c10f1bc29f4923 (patch)
treef49e13821a17feef302fefb3196b62936a5c94f0
parentc444f2045b73b27ef67ef79f3f637bc8e983edbe (diff)
downloadorg.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.java9
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
}
}
}
-
}

Back to the top