X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=bundles%2Forg.simantics.modeling.ui%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2Fui%2Fdiagram%2Fmonitor%2FResolveMonitorVariable.java;h=7cc42e3ad4426babf6738ed6b5362e8ecb724567;hb=47269fe0acb894f346810417d950a1ab59cdc0ea;hp=a976dcc8d5b55644a94bf8e782863f0b290b0f87;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagram/monitor/ResolveMonitorVariable.java b/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagram/monitor/ResolveMonitorVariable.java index a976dcc8d..7cc42e3ad 100644 --- a/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagram/monitor/ResolveMonitorVariable.java +++ b/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagram/monitor/ResolveMonitorVariable.java @@ -1,106 +1,106 @@ -/******************************************************************************* - * Copyright (c) 2012 Association for Decentralized Information Management in - * Industry THTH ry. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * VTT Technical Research Centre of Finland - initial API and implementation - *******************************************************************************/ -package org.simantics.modeling.ui.diagram.monitor; - -import org.simantics.common.format.Formatter; -import org.simantics.databoard.Bindings; -import org.simantics.datatypes.literal.DecimalFormatFormatter; -import org.simantics.db.ReadGraph; -import org.simantics.db.Resource; -import org.simantics.db.common.request.BinaryRead; -import org.simantics.db.exception.DatabaseException; -import org.simantics.db.layer0.exception.VariableException; -import org.simantics.db.layer0.variable.RVI; -import org.simantics.db.layer0.variable.Variable; -import org.simantics.db.layer0.variable.Variables; -import org.simantics.diagram.stubs.DiagramResource; -import org.simantics.operation.Layer0X; - -/** - * @author Tuukka Lehtonen - */ -public class ResolveMonitorVariable extends BinaryRead { - - public ResolveMonitorVariable(Resource runtimeDiagram, Resource monitorElement) { - super(runtimeDiagram, monitorElement); - } - - @Override - public MonitorVariable perform(ReadGraph graph) throws DatabaseException { - Boolean external = null; - DiagramResource DIA = DiagramResource.getInstance(graph); - - Resource monitorComponent = graph.getPossibleObject(parameter2, DIA.HasMonitorComponent); - if (monitorComponent == null) - return null; - - String suffix = graph.getPossibleRelatedValue(parameter2, DIA.HasMonitorSuffix, Bindings.STRING); - if (suffix == null) - return null; - - String diagramVariable = graph.getPossibleRelatedValue(parameter, DIA.RuntimeDiagram_HasVariable); - if (diagramVariable == null) - return null; - - Variable var = Variables.getPossibleVariable(graph, diagramVariable); - if (var == null) - return null; - - Variable component = var.browsePossible(graph, monitorComponent); - if (component == null) { - // The monitored component is not in this diagram. - component = Variables.getPossibleVariable(graph, monitorComponent); - if (component == null) - return null; - - String componentRVI = Variables.getPossibleRVI(graph, component); - if (componentRVI == null) - return null; - - Resource realization = Variables.getRealization(graph, var); - String diagramRealizationURI = graph.getPossibleURI(realization); - if (diagramRealizationURI == null) - return null; - - String componentURI = diagramRealizationURI + componentRVI; - var = Variables.getPossibleVariable(graph, componentURI); - if (var == null) - return null; - - external = Boolean.TRUE; - } else { - var = component; - } - - var = var.browsePossible(graph, suffix); - if (var == null) - return null; - - Formatter formatter = graph.getPossibleRelatedAdapter(parameter2, DIA.HasFormatter, Formatter.class); - if (formatter == null) - formatter = new DecimalFormatFormatter(); - - Layer0X L0X = Layer0X.getInstance(graph); - String _expression = graph.getPossibleRelatedAdapter(parameter2, L0X.HasExpression, String.class); - if(_expression == null) _expression = "value"; - - RVI rvi = null; - try { - rvi = Variables.getRVI2(graph, var); - } catch (VariableException e) { - // No RVI, which is fine for contents that do not originate from the model configuration. - } - - return new MonitorVariable(monitorComponent, formatter, _expression, var, rvi, external); - } - +/******************************************************************************* + * Copyright (c) 2012 Association for Decentralized Information Management in + * Industry THTH ry. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * VTT Technical Research Centre of Finland - initial API and implementation + *******************************************************************************/ +package org.simantics.modeling.ui.diagram.monitor; + +import org.simantics.common.format.Formatter; +import org.simantics.databoard.Bindings; +import org.simantics.datatypes.literal.DecimalFormatFormatter; +import org.simantics.db.ReadGraph; +import org.simantics.db.Resource; +import org.simantics.db.common.request.BinaryRead; +import org.simantics.db.exception.DatabaseException; +import org.simantics.db.exception.VariableException; +import org.simantics.db.layer0.variable.RVI; +import org.simantics.db.layer0.variable.Variable; +import org.simantics.db.layer0.variable.Variables; +import org.simantics.diagram.stubs.DiagramResource; +import org.simantics.operation.Layer0X; + +/** + * @author Tuukka Lehtonen + */ +public class ResolveMonitorVariable extends BinaryRead { + + public ResolveMonitorVariable(Resource runtimeDiagram, Resource monitorElement) { + super(runtimeDiagram, monitorElement); + } + + @Override + public MonitorVariable perform(ReadGraph graph) throws DatabaseException { + Boolean external = null; + DiagramResource DIA = DiagramResource.getInstance(graph); + + Resource monitorComponent = graph.getPossibleObject(parameter2, DIA.HasMonitorComponent); + if (monitorComponent == null) + return null; + + String suffix = graph.getPossibleRelatedValue(parameter2, DIA.HasMonitorSuffix, Bindings.STRING); + if (suffix == null) + return null; + + String diagramVariable = graph.getPossibleRelatedValue(parameter, DIA.RuntimeDiagram_HasVariable); + if (diagramVariable == null) + return null; + + Variable var = Variables.getPossibleVariable(graph, diagramVariable); + if (var == null) + return null; + + Variable component = var.browsePossible(graph, monitorComponent); + if (component == null) { + // The monitored component is not in this diagram. + component = Variables.getPossibleVariable(graph, monitorComponent); + if (component == null) + return null; + + String componentRVI = Variables.getPossibleRVI(graph, component); + if (componentRVI == null) + return null; + + Resource realization = Variables.getRealization(graph, var); + String diagramRealizationURI = graph.getPossibleURI(realization); + if (diagramRealizationURI == null) + return null; + + String componentURI = diagramRealizationURI + componentRVI; + var = Variables.getPossibleVariable(graph, componentURI); + if (var == null) + return null; + + external = Boolean.TRUE; + } else { + var = component; + } + + var = var.browsePossible(graph, suffix); + if (var == null) + return null; + + Formatter formatter = graph.getPossibleRelatedAdapter(parameter2, DIA.HasFormatter, Formatter.class); + if (formatter == null) + formatter = new DecimalFormatFormatter(); + + Layer0X L0X = Layer0X.getInstance(graph); + String _expression = graph.getPossibleRelatedAdapter(parameter2, L0X.HasExpression, String.class); + if(_expression == null) _expression = "value"; //$NON-NLS-1$ + + RVI rvi = null; + try { + rvi = Variables.getRVI2(graph, var); + } catch (VariableException e) { + // No RVI, which is fine for contents that do not originate from the model configuration. + } + + return new MonitorVariable(monitorComponent, formatter, _expression, var, rvi, external); + } + } \ No newline at end of file