X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.network.ui%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fui%2FDistrictNetworkUIUtil.java;fp=org.simantics.district.network.ui%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fui%2FDistrictNetworkUIUtil.java;h=b9ac68f8b1bd9e10c96e39b98cd77413f466515a;hb=88d09381e6c4e8007e8cb3c560a7c21a3af18370;hp=9ce6937a50b5fbea4866cb222e3ab22da442e17e;hpb=09b78f5c26bb8b521beb6eeeb5c3f44ac1aa4d07;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/DistrictNetworkUIUtil.java b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/DistrictNetworkUIUtil.java index 9ce6937a..b9ac68f8 100644 --- a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/DistrictNetworkUIUtil.java +++ b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/DistrictNetworkUIUtil.java @@ -2,10 +2,13 @@ package org.simantics.district.network.ui; import java.util.Arrays; import java.util.Collection; +import java.util.List; import java.util.function.Consumer; import org.eclipse.jface.viewers.ISelection; +import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IEditorPart; +import org.simantics.Simantics; import org.simantics.db.ReadGraph; import org.simantics.db.Resource; import org.simantics.db.common.request.UnaryRead; @@ -24,6 +27,7 @@ import org.simantics.scl.runtime.tuple.Tuple4; import org.simantics.ui.selection.WorkbenchSelectionUtils; import org.simantics.utils.threads.ThreadUtils; import org.simantics.utils.ui.ISelectionUtils; +import org.simantics.utils.ui.SWTUtils; /** * @author Tuukka Lehtonen @@ -165,4 +169,18 @@ public class DistrictNetworkUIUtil { openEditorWithSelection(DistrictDiagramEditor.ID, input, selection); } + public static boolean openDNDiagramWithSelection(Display display, List dnElements) throws DatabaseException { + if (dnElements.isEmpty()) + return false; + + Input in = Simantics.getSession().syncRequest( + new ElementToInput(dnElements.get(0))); + if (in == null) + return false; + + SWTUtils.asyncExec(display, + () -> openDNDiagramEditorWithSelection(in, dnElements.toArray())); + return true; + } + }