]> gerrit.simantics Code Review - simantics/sysdyn.git/commitdiff
Show results of variables inside modules
authorlempinen <lempinen@ac1ea38d-2e2b-0410-8846-a27921b304fc>
Wed, 30 Jun 2010 09:06:17 +0000 (09:06 +0000)
committerlempinen <lempinen@ac1ea38d-2e2b-0410-8846-a27921b304fc>
Wed, 30 Jun 2010 09:06:17 +0000 (09:06 +0000)
git-svn-id: https://www.simantics.org/svn/simantics/sysdyn/trunk@16438 ac1ea38d-2e2b-0410-8846-a27921b304fc

org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/trend/TrendView.java
org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Module.java
org.simantics.sysdyn/src/org/simantics/sysdyn/representation/Variable.java
sysdyn_ontologies/sysdyn.graph

index fc730f2994755b501a5a70f0aad4e71d74c97628..5e20e19efeebdfa86f3bc5fcac68ea90d9ec374e 100644 (file)
@@ -227,9 +227,12 @@ public class TrendView extends ViewPart {
         if(map != null) resource = map;\r
 \r
         if(g.isInstanceOf(resource, sr.Variable)) {\r
-            Resource configuration = g.getPossibleObject(resource, b.PartOf);\r
-            if(g.isInstanceOf(configuration, sr.Configuration)) {\r
-                SysdynModel model = getModel(g, configuration);\r
+            Resource module = g.getPossibleObject(resource, b.PartOf);\r
+            while(!g.isInstanceOf(module, sr.Configuration)) {\r
+                module = g.getPossibleObject(module, b.PartOf);\r
+            }\r
+            if(g.isInstanceOf(module, sr.Configuration)) {\r
+                SysdynModel model = getModel(g, module);\r
                 if(model == null)\r
                     return null;\r
 \r
@@ -240,7 +243,7 @@ public class TrendView extends ViewPart {
                     Collection<SysdynResult> activeResults =  model.getActiveResults(g);\r
                     ArrayList<SysdynDataSet> datasets = new ArrayList<SysdynDataSet>();\r
                     for(SysdynResult r : activeResults) {\r
-                        datasets.add(r.getDataSet(var.getName()));\r
+                        datasets.add(r.getDataSet(var.getFullName()));\r
                     }\r
                     return datasets;\r
                 }                       \r
index bdb37afd831e91842bd21e9da8645d5e1a01f06d..985483edf32c888e89727d99bd1558e032e952ec 100644 (file)
@@ -3,6 +3,7 @@ package org.simantics.sysdyn.representation;
 import java.util.ArrayList;\r
 \r
 import org.simantics.objmap.annotations.GraphType;\r
+import org.simantics.objmap.annotations.RelatedElement;\r
 import org.simantics.objmap.annotations.RelatedElements;\r
 import org.simantics.objmap.annotations.RelatedValue;\r
 import org.simantics.sysdyn.representation.visitors.ElementVisitorVoidAdapter;\r
@@ -16,6 +17,9 @@ public class Module implements IElement, IModule {
     \r
     @RelatedValue("http://www.simantics.org/Layer0-1.0/HasLabel")\r
     private String label;\r
+    \r
+    @RelatedElement("http://www.simantics.org/Layer0-1.0/PartOf")\r
+    protected IModule module;\r
 \r
     @RelatedElements(\r
             value = "http://www.simantics.org/Layer0-1.0/ConsistsOf",\r
@@ -68,4 +72,8 @@ public class Module implements IElement, IModule {
     public String getLabel() {\r
         return label;\r
     }\r
+    \r
+    public IModule getParentModule() {\r
+        return this.module;\r
+    }\r
 }\r
index 6b9b50f0b23333508e9658fad68771da78624bf0..78f9e585329c0e6268be266232c36318b482575b 100644 (file)
@@ -39,6 +39,16 @@ public abstract class Variable implements IElement {
     public String getName() {\r
         return this.name;\r
     }\r
+    \r
+    public String getFullName() {\r
+        String name = getName();\r
+        IModule m = getParentModule();        \r
+        while(!(m instanceof Configuration) && m instanceof Module) {\r
+            name = m.getLabel() + "." + name;\r
+            m = ((Module)m).getParentModule();\r
+        }\r
+        return name;\r
+    }\r
 \r
     public String getType() {\r
         return this.type;\r
index 6bead35c531f68a9c1d2df857b94adf751e7f95a..79532037b0aaca9ff6ad4219e71d5eaee41f4a8d 100644 (file)
@@ -457,6 +457,8 @@ ModuleConfiguration @ "ModuleConfiguration" : Configuration
   \r
 Module1 @ "FirstModule" : Module\r
   L0.ConsistsOf \r
+    Module2\r
+      L0.HasLabel "TokaModuuli" : L0.String\r
     FirstModuleInput1 @ "Aux1" : Auxiliary\r
       L0.HasType "Real" : L0.String\r
       HasUnit "s" : L0.String\r
@@ -493,4 +495,38 @@ Module1 @ "FirstModule" : Module
   HasInput FirstModuleInput2\r
   HasOutput FirstModuleOutput1\r
   \r
+Module2 @ "SecondModule" : Module\r
+  L0.ConsistsOf \r
+    SecondModuleInput1 @ "Aux1" : Auxiliary\r
+      L0.HasType "Real" : L0.String\r
+      HasUnit "s" : L0.String\r
+      HasExpression _ : NormalExpression\r
+        HasEquation "2+2" : L0.String\r
+      RefersTo FirstModuleOutput1\r
+    SecondModuleInput2 @ "Aux2" : Auxiliary\r
+      L0.HasType "Real" : L0.String\r
+      HasUnit "s" : L0.String\r
+      HasExpression _ : NormalExpression\r
+        HasEquation "2+2" : L0.String\r
+    SecondModuleStock @ "Stock1" : Stock\r
+      HasExpression _ : StockExpression\r
+        HasInitialEquation "0" : L0.String\r
+    SecondModuleCloud : Cloud\r
+    SecondModuleOutput1 @ "Valve" : Valve\r
+      HasUnit "s" : L0.String\r
+      HasExpression _ : NormalExpression\r
+        HasEquation "Aux1 + Aux2" : L0.String      \r
+    _ : Flow\r
+      HasHead SecondModuleOutput1\r
+      HasTail SecondModuleCloud\r
+    _ : Flow\r
+      HasHead SecondModuleStock\r
+      HasTail SecondModuleOutput1\r
+    _ : Dependency\r
+      HasHead SecondModuleOutput1\r
+      HasTail SecondModuleInput1\r
+    _ : Dependency\r
+      HasHead SecondModuleOutput1\r
+      HasTail SecondModuleInput2\r
+  HasInput SecondModuleInput1\r
   \r