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%2Fhandlers%2Fe4%2FSyncCurrentTypicalInstanceWithTemplate.java;h=fb6b31382579bebdd62181170fbaa80092a1d30c;hp=0c9641a27f45275ce221c06b4e58c3d68c071c17;hb=55d1e6f63df516019032ebf0c1e9c8c0495a619d;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07 diff --git a/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/handlers/e4/SyncCurrentTypicalInstanceWithTemplate.java b/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/handlers/e4/SyncCurrentTypicalInstanceWithTemplate.java index 0c9641a27..fb6b31382 100644 --- a/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/handlers/e4/SyncCurrentTypicalInstanceWithTemplate.java +++ b/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/handlers/e4/SyncCurrentTypicalInstanceWithTemplate.java @@ -10,11 +10,13 @@ import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor; +import org.simantics.DatabaseJob; import org.simantics.Simantics; import org.simantics.db.Resource; import org.simantics.db.Session; import org.simantics.db.exception.DatabaseException; import org.simantics.modeling.typicals.SyncTypicalTemplatesToInstances; +import org.simantics.modeling.ui.diagramEditor.DiagramEditor; import org.simantics.modeling.ui.documents.OpenPlainTextDocumentAdapter; import org.simantics.modeling.ui.property.TypicalPropertyTester; import org.simantics.modeling.ui.typicals.RuleChooserDialog; @@ -39,10 +41,15 @@ public class SyncCurrentTypicalInstanceWithTemplate { // TODO: This is not good practice with E4 but an OK fallback for now activeEditor = WorkbenchUtils.getActiveEditor(); } - if (activeEditor == null) + if (activeEditor == null || (!(activeEditor instanceof DiagramEditor))) return false; - IResourceEditorInput input = (IResourceEditorInput) activeEditor.getEditorInput(); - return TypicalPropertyTester.isTypicalInstanceEditor(Simantics.getSession(), input.getResource()); + if (DatabaseJob.inProgress()) + return false; + if (activeEditor.getEditorInput() instanceof IResourceEditorInput) { + return TypicalPropertyTester.isTypicalInstanceEditor(activeEditor); + } else { + return false; + } } @Execute