X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=bundles%2Forg.simantics.document.swt.core%2Fsrc%2Forg%2Fsimantics%2Fdocument%2Fswt%2Fcore%2Fscl%2FSCL.java;h=0c3529bfafdc963dacf5ca7df8ebc231d86d6955;hb=bdcccc1cfe2d9bf4822ca5638c61e94b079184ab;hp=e62d544911ab54b74b2b65398e6eeabae9948df4;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.document.swt.core/src/org/simantics/document/swt/core/scl/SCL.java b/bundles/org.simantics.document.swt.core/src/org/simantics/document/swt/core/scl/SCL.java index e62d54491..0c3529bfa 100644 --- a/bundles/org.simantics.document.swt.core/src/org/simantics/document/swt/core/scl/SCL.java +++ b/bundles/org.simantics.document.swt.core/src/org/simantics/document/swt/core/scl/SCL.java @@ -1,5 +1,6 @@ package org.simantics.document.swt.core.scl; +import java.util.ArrayList; import java.util.List; import org.simantics.databoard.Bindings; @@ -17,6 +18,8 @@ import org.simantics.document.server.io.CommandContext; import org.simantics.document.server.io.CommandResult; import org.simantics.document.server.serverResponse.ServerResponse; import org.simantics.document.swt.core.SWTViews; +import org.simantics.document.swt.core.bean.ColumnBean; +import org.simantics.document.swt.core.bean.ColumnsBean; import org.simantics.scl.runtime.SCLContext; import org.simantics.scl.runtime.function.Function1; import org.simantics.scl.runtime.reporting.SCLReportingHandler; @@ -42,9 +45,12 @@ public class SCL { SCLContext sclContext = SCLContext.getCurrent(); Object oldPrinter = sclContext.put(SCLReportingHandler.REPORTING_HANDLER, printer); Object oldGraph = sclContext.put("graph", graph); - fn.apply(Tuple0.INSTANCE); - sclContext.put(SCLReportingHandler.REPORTING_HANDLER, oldPrinter); - sclContext.put("graph", oldGraph); + try { + fn.apply(Tuple0.INSTANCE); + } finally { + sclContext.put(SCLReportingHandler.REPORTING_HANDLER, oldPrinter); + sclContext.put("graph", oldGraph); + } } }); @@ -105,4 +111,22 @@ public class SCL { return WorkbenchSelectionUtils.getPossibleResource(wse); } + public static ColumnsBean columnsBean(ReadGraph graph, Resource value) throws DatabaseException { + return graph.getValue(value, ColumnsBean.BINDING); + } + + public static List columnBeans(ColumnsBean bean) { + ArrayList result = new ArrayList<>(); + for(ColumnBean b : bean.columns) result.add(b); + return result; + } + + public static String columnBeanKey(ColumnBean bean) { + return bean.key; + } + + public static String columnBeanLabel(ColumnBean bean) { + return bean.label; + } + }