package org.simantics.browsing.ui.graph.impl; import java.util.Map; import org.simantics.browsing.ui.BuiltinKeys.LabelerKey; import org.simantics.browsing.ui.NodeContext; import org.simantics.browsing.ui.PrimitiveQueryUpdater; import org.simantics.browsing.ui.graph.impl.contribution.LabelerContributionImpl; import org.simantics.browsing.ui.model.browsecontexts.BrowseContext; import org.simantics.db.ReadGraph; import org.simantics.db.UndoContext; import org.simantics.db.exception.DatabaseException; public class EvaluatorLabeler extends LabelerContributionImpl { final BrowseContext browseContext; final boolean useNodeBrowseContexts; public EvaluatorLabeler(PrimitiveQueryUpdater updater, NodeContext context, LabelerKey key, BrowseContext browseContext, boolean useNodeBrowseContexts) { super(updater, context, key); this.browseContext = browseContext; this.useNodeBrowseContexts = useNodeBrowseContexts; } @Override public Map labels( ReadGraph graph, NodeContext context) throws DatabaseException { boolean oldSynchronous = graph.setSynchronous(false); try { return BrowseContext.get(graph,context,browseContext,useNodeBrowseContexts).getLabel(graph, context); } finally { graph.setSynchronous(oldSynchronous); } } @Override public int category(ReadGraph graph, NodeContext context) throws DatabaseException { return 0; } public Modifier getModifier(ReadGraph graph, UndoContext undoContext, NodeContext context, String columnKey) throws DatabaseException { return BrowseContext.get(graph,context,browseContext,useNodeBrowseContexts).getModifier(graph, context, columnKey); } public String toString() { return "EvaluatorLabeler[" + browseContext + "] " + context; } }