X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=org.simantics.district.network.ui%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fui%2FOpenDiagramFromNetworkElementAdapter.java;fp=org.simantics.district.network.ui%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fui%2FOpenDiagramFromNetworkElementAdapter.java;h=9130383697b51077b856bcb44d6d55f9df94562b;hb=6a4259eb4fee7e5b8bfbe818f7325d73d99a7803;hp=0000000000000000000000000000000000000000;hpb=65fd04915f975756a22bdc09d2b8068105993631;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/OpenDiagramFromNetworkElementAdapter.java b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/OpenDiagramFromNetworkElementAdapter.java new file mode 100644 index 00000000..91303836 --- /dev/null +++ b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/OpenDiagramFromNetworkElementAdapter.java @@ -0,0 +1,41 @@ +package org.simantics.district.network.ui; + +import org.simantics.Simantics; +import org.simantics.db.ReadGraph; +import org.simantics.db.Resource; +import org.simantics.db.Session; +import org.simantics.db.exception.DatabaseException; +import org.simantics.district.network.ontology.DistrictNetworkResource; +import org.simantics.ui.workbench.editor.AbstractResourceEditorAdapter; +import org.simantics.utils.ui.BundleUtils; + +/** + * @author Tuukka Lehtonen + * @since 1.35.0 + */ +public class OpenDiagramFromNetworkElementAdapter extends AbstractResourceEditorAdapter { + + public OpenDiagramFromNetworkElementAdapter() { + super("District Network Diagram", + BundleUtils.getImageDescriptorFromPlugin("com.famfamfam.silk", "icons/map.png")); + } + + @Override + public boolean canHandle(ReadGraph graph, Object input) throws DatabaseException { + DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph); + Resource r = DistrictNetworkUIUtil.getInputResource(graph, input); + return r != null + && graph.isInstanceOf(r, DN.Element) + && graph.getPossibleURI(r) != null; + } + + @Override + public void openEditor(Object input) throws Exception { + Session s = Simantics.getSession(); + Resource dhElement = s.syncRequest(new DistrictNetworkUIUtil.GetInputResource(input)); + DistrictNetworkUIUtil.Input in = dhElement != null ? s.syncRequest(new DistrictNetworkUIUtil.ElementToInput(dhElement)) : null; + if (in != null) + DistrictNetworkUIUtil.openDNDiagramEditorWithSelection(in, in.element()); + } + +} \ No newline at end of file