-package org.simantics.charts.ui;\r
-\r
-import java.util.Collections;\r
-import java.util.List;\r
-\r
-import org.simantics.databoard.Bindings;\r
-import org.simantics.databoard.Databoard;\r
-import org.simantics.databoard.binding.Binding;\r
-import org.simantics.databoard.binding.error.BindingException;\r
-import org.simantics.databoard.util.Bean;\r
-import org.simantics.databoard.util.URIStringUtils;\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.common.request.PossibleTypedParent;\r
-import org.simantics.db.common.request.ReadRequest;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.layer0.variable.RVI;\r
-import org.simantics.db.layer0.variable.Variable;\r
-import org.simantics.db.layer0.variable.Variables;\r
-import org.simantics.history.HistoryException;\r
-import org.simantics.history.HistoryManager;\r
-import org.simantics.history.ItemManager;\r
-import org.simantics.history.csv.CSVFormatter;\r
-import org.simantics.history.util.subscription.SamplingFormat;\r
-import org.simantics.layer0.Layer0;\r
-import org.simantics.modeling.ModelingResources;\r
-import org.simantics.modeling.subscription.SubscriptionItemLabel;\r
-import org.simantics.simulation.ontology.SimulationResource;\r
-\r
-/**\r
- * This query adds items to the given CSVFormatter.\r
- */\r
-class CSVParamsQuery extends ReadRequest {\r
- CSVFormatter csv;\r
- List<Resource> subscriptionItems;\r
- ItemManager im;\r
- HistoryManager history;\r
- \r
- public CSVParamsQuery(HistoryManager history, CSVFormatter csv, List<Resource> subscriptionItems) throws HistoryException {\r
- super();\r
- this.csv = csv;\r
- this.subscriptionItems = subscriptionItems; \r
- this.history = history;\r
- im = new ItemManager( history.getItems() );\r
- }\r
-\r
- @Override\r
- public void run(ReadGraph graph) throws DatabaseException {\r
- Layer0 L0 = Layer0.getInstance(graph);\r
- ModelingResources MOD = ModelingResources.getInstance(graph);\r
- SimulationResource SIM = SimulationResource.getInstance(graph);\r
-\r
- for (Resource si : subscriptionItems) {\r
- //Resource subscription = graph.syncRequest( new PossibleTypedParent(si, MOD.Subscription) );\r
- String unit = graph.getPossibleRelatedValue(si, MOD.Subscription_Item_Unit, Bindings.STRING);\r
- //String name = graph.getRelatedValue(subject, relation)\r
- String subscriptionItemLabel = graph.getPossibleRelatedValue(si, L0.HasLabel, Bindings.STRING);\r
- String label2 = null;\r
- String groupItemId = graph.getPossibleRelatedValue(si, L0.HasName, Bindings.STRING);\r
- if (groupItemId == null)\r
- continue;\r
- //String groupId = graph.getPossibleRelatedValue(subscription, L0.HasName, Bindings.STRING);\r
-\r
- Binding rviBinding = graph.getService(Databoard.class).getBindingUnchecked( RVI.class );\r
- RVI rvi = graph.getPossibleRelatedValue(si, MOD.Subscription_Item_VariableId, rviBinding);\r
- if (rvi != null) {\r
- Resource model = graph.syncRequest( new PossibleTypedParent(si, SIM.Model) );\r
- Variable configuration = null;\r
- if (model!=null) configuration = Variables.getConfigurationContext(graph, model);\r
-\r
- // Label\r
- if ((subscriptionItemLabel == null || subscriptionItemLabel.isEmpty()) && configuration!=null) {\r
- subscriptionItemLabel = rvi.asPossibleString(graph, configuration);\r
- if (subscriptionItemLabel == null)\r
- subscriptionItemLabel = rvi.toPossibleString(graph, configuration);\r
- if (subscriptionItemLabel != null) {\r
- subscriptionItemLabel = SubscriptionItemLabel.removeVariablePrefixPath(subscriptionItemLabel);\r
- subscriptionItemLabel = URIStringUtils.unescape(subscriptionItemLabel);\r
- }\r
- }\r
-\r
- // Variable name\r
- if (configuration != null) {\r
- label2 = rvi.toPossibleString(graph, configuration);\r
- if (label2 == null)\r
- continue;\r
- label2 = URIStringUtils.unescape( label2 );\r
- } else {\r
- label2 = rvi.toString();\r
- }\r
- }\r
-\r
- List<Bean> streams;\r
- try {\r
- streams = im.search("groupItemId", groupItemId);\r
- Collections.sort(streams, SamplingFormat.INTERVAL_COMPARATOR);\r
- if (!streams.isEmpty()) { \r
- Bean config = streams.get(0);\r
- String id = (String) config.getFieldUnchecked("id");\r
- csv.addItem( history, id, subscriptionItemLabel, label2, unit);\r
- }\r
- } catch (BindingException e) {\r
- // There is no id\r
- }\r
- }\r
- }\r
-\r
+package org.simantics.charts.ui;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.simantics.databoard.Bindings;
+import org.simantics.databoard.Databoard;
+import org.simantics.databoard.binding.Binding;
+import org.simantics.databoard.binding.error.BindingException;
+import org.simantics.databoard.util.Bean;
+import org.simantics.databoard.util.URIStringUtils;
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.common.request.PossibleTypedParent;
+import org.simantics.db.common.request.ReadRequest;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.variable.RVI;
+import org.simantics.db.layer0.variable.Variable;
+import org.simantics.db.layer0.variable.Variables;
+import org.simantics.history.HistoryException;
+import org.simantics.history.HistoryManager;
+import org.simantics.history.ItemManager;
+import org.simantics.history.csv.CSVFormatter;
+import org.simantics.history.util.subscription.SamplingFormat;
+import org.simantics.layer0.Layer0;
+import org.simantics.modeling.ModelingResources;
+import org.simantics.modeling.subscription.SubscriptionItemLabel;
+import org.simantics.simulation.ontology.SimulationResource;
+
+/**
+ * This query adds items to the given CSVFormatter.
+ */
+class CSVParamsQuery extends ReadRequest {
+ CSVFormatter csv;
+ List<Resource> subscriptionItems;
+ ItemManager im;
+ HistoryManager history;
+
+ public CSVParamsQuery(HistoryManager history, CSVFormatter csv, List<Resource> subscriptionItems) throws HistoryException {
+ super();
+ this.csv = csv;
+ this.subscriptionItems = subscriptionItems;
+ this.history = history;
+ im = new ItemManager( history.getItems() );
+ }
+
+ @Override
+ public void run(ReadGraph graph) throws DatabaseException {
+ Layer0 L0 = Layer0.getInstance(graph);
+ ModelingResources MOD = ModelingResources.getInstance(graph);
+ SimulationResource SIM = SimulationResource.getInstance(graph);
+
+ for (Resource si : subscriptionItems) {
+ //Resource subscription = graph.syncRequest( new PossibleTypedParent(si, MOD.Subscription) );
+ String unit = graph.getPossibleRelatedValue(si, MOD.Subscription_Item_Unit, Bindings.STRING);
+ //String name = graph.getRelatedValue(subject, relation)
+ String subscriptionItemLabel = graph.getPossibleRelatedValue(si, L0.HasLabel, Bindings.STRING);
+ String label2 = null;
+ String groupItemId = graph.getPossibleRelatedValue(si, L0.HasName, Bindings.STRING);
+ if (groupItemId == null)
+ continue;
+ //String groupId = graph.getPossibleRelatedValue(subscription, L0.HasName, Bindings.STRING);
+
+ Binding rviBinding = graph.getService(Databoard.class).getBindingUnchecked( RVI.class );
+ RVI rvi = graph.getPossibleRelatedValue(si, MOD.Subscription_Item_VariableId, rviBinding);
+ if (rvi != null) {
+ Resource model = graph.syncRequest( new PossibleTypedParent(si, SIM.Model) );
+ Variable configuration = null;
+ if (model!=null) configuration = Variables.getConfigurationContext(graph, model);
+
+ // Label
+ if ((subscriptionItemLabel == null || subscriptionItemLabel.isEmpty()) && configuration!=null) {
+ subscriptionItemLabel = rvi.asPossibleString(graph, configuration);
+ if (subscriptionItemLabel == null)
+ subscriptionItemLabel = rvi.toPossibleString(graph, configuration);
+ if (subscriptionItemLabel != null) {
+ subscriptionItemLabel = SubscriptionItemLabel.removeVariablePrefixPath(subscriptionItemLabel);
+ subscriptionItemLabel = URIStringUtils.unescape(subscriptionItemLabel);
+ }
+ }
+
+ // Variable name
+ if (configuration != null) {
+ label2 = rvi.toPossibleString(graph, configuration);
+ if (label2 == null)
+ continue;
+ label2 = URIStringUtils.unescape( label2 );
+ } else {
+ label2 = rvi.toString();
+ }
+ }
+
+ List<Bean> streams;
+ try {
+ streams = im.search("groupItemId", groupItemId);
+ Collections.sort(streams, SamplingFormat.INTERVAL_COMPARATOR);
+ if (!streams.isEmpty()) {
+ Bean config = streams.get(0);
+ String id = (String) config.getFieldUnchecked("id");
+ csv.addItem( history, id, subscriptionItemLabel, label2, unit);
+ }
+ } catch (BindingException e) {
+ // There is no id
+ }
+ }
+ }
+
}
\ No newline at end of file