X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.modeling.ui%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2Fui%2FdiagramEditor%2FDiagramViewerLoadJob.java;h=decf3356c68b1b72864f738ac1d6ac57b6fb1ea3;hp=dcadd4d9130cb872aca11a096066e46412f9a1fd;hb=b45e9e5c1696a2e729dcecac0f58d16c15391770;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07 diff --git a/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagramEditor/DiagramViewerLoadJob.java b/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagramEditor/DiagramViewerLoadJob.java index dcadd4d91..decf3356c 100644 --- a/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagramEditor/DiagramViewerLoadJob.java +++ b/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagramEditor/DiagramViewerLoadJob.java @@ -11,6 +11,8 @@ *******************************************************************************/ package org.simantics.modeling.ui.diagramEditor; +import java.util.Collections; + import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; @@ -22,24 +24,28 @@ import org.simantics.g2d.diagram.IDiagram; import org.simantics.modeling.ui.Activator; import org.simantics.utils.DataContainer; import org.simantics.utils.threads.ThreadUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class DiagramViewerLoadJob extends DatabaseJob { + private static final Logger LOGGER = LoggerFactory.getLogger(DiagramViewerLoadJob.class); + private static final boolean PROFILE = false; private DiagramViewer viewer; public DiagramViewerLoadJob(DiagramViewer viewer) { - super("Load Diagram"); + super(Messages.DiagramViewerLoadJob_LoadDiagram); setUser(true); this.viewer = viewer; } @Override protected IStatus run(final IProgressMonitor monitor) { - final SubMonitor mon = SubMonitor.convert(monitor, "Loading Diagram", 200); + final SubMonitor mon = SubMonitor.convert(monitor, Messages.DiagramViewerLoadJob_MonitorLoadingDiagram, 200); try { - Object task = BEGIN("DV.loadDiagram"); + Object task = BEGIN("DV.loadDiagram"); //$NON-NLS-1$ final IDiagram diagram = viewer.loadDiagram(mon.newChild(100), viewer.diagramResource); if (diagram == null) return Status.CANCEL_STATUS; @@ -47,7 +53,7 @@ public class DiagramViewerLoadJob extends DatabaseJob { // Start an activation for the input resource. // This will activate mapping if necessary. - task = BEGIN("DV.performActivation"); + task = BEGIN("DV.performActivation"); //$NON-NLS-1$ viewer.performActivation(mon.newChild(50)); END(task); @@ -56,16 +62,16 @@ public class DiagramViewerLoadJob extends DatabaseJob { @Override public void run() { setThread(viewer.canvasContext.getThreadAccess().getThread()); - mon.setTaskName("Finalize Diagram Loading"); + mon.setTaskName(Messages.DiagramViewerLoadJob_MonitorFinalizeDiagramLoading); try { - Object task = BEGIN("DV.beforeSetDiagram"); + Object task = BEGIN("DV.beforeSetDiagram"); //$NON-NLS-1$ viewer.beforeSetDiagram(diagram); mon.worked(10); END(task); - task = BEGIN("DV.setDiagramHint"); - mon.subTask("Set Diagram"); + task = BEGIN("DV.setDiagramHint"); //$NON-NLS-1$ + mon.subTask(Messages.DiagramViewerLoadJob_SetDiagram); DataContainer diagramContainer = viewer.sourceDiagramContainer; if (diagramContainer != null) diagramContainer.set( diagram ); @@ -74,25 +80,27 @@ public class DiagramViewerLoadJob extends DatabaseJob { mon.worked(10); END(task); + viewer.selectionProvider.fireSelection(Collections.emptyList()); + // Zoom to fit if no previous view transform is available - task = BEGIN("DV.scheduleZoomToFit"); + task = BEGIN("DV.scheduleZoomToFit"); //$NON-NLS-1$ viewer.scheduleZoomToFit(diagram); mon.worked(10); END(task); - task = BEGIN("DV.onCreated"); - mon.subTask(""); + task = BEGIN("DV.onCreated"); //$NON-NLS-1$ + mon.subTask(""); //$NON-NLS-1$ viewer.onCreated(); mon.worked(10); END(task); - task = BEGIN("DV.applyEditorState"); - mon.subTask("Apply editor state"); + task = BEGIN("DV.applyEditorState"); //$NON-NLS-1$ + mon.subTask(Messages.DiagramViewerLoadJob_ApplyEditorState); viewer.applyEditorState(viewer.editorState, viewer.canvasContext); mon.worked(10); END(task); - task = BEGIN("DV.activateUiContexts"); + task = BEGIN("DV.activateUiContexts"); //$NON-NLS-1$ viewer.contextUtil.inContextThread(new Runnable() { @Override public void run() { @@ -104,6 +112,7 @@ public class DiagramViewerLoadJob extends DatabaseJob { END(task); } catch (Throwable t) { viewer = null; + LOGGER.error("Failed to complete loading of diagram {} in the canvas thread", viewer.diagramResource, t); } } }); @@ -112,11 +121,11 @@ public class DiagramViewerLoadJob extends DatabaseJob { } catch (CancelTransactionException e) { monitor.done(); viewer = null; - return new Status(IStatus.CANCEL, Activator.PLUGIN_ID, "Diagram loading was cancelled.", e); + return new Status(IStatus.CANCEL, Activator.PLUGIN_ID, Messages.DiagramViewerLoadJob_ActivatorDiagramLoadingCancelled, e); } catch (Throwable t) { monitor.done(); viewer = null; - return new Status(IStatus.ERROR, Activator.PLUGIN_ID, "Diagram loading failed, see exception for details.", t); + return new Status(IStatus.ERROR, Activator.PLUGIN_ID, Messages.DiagramViewerLoadJob_ActivatorDiagramLoadingFailed, t); } }