From 41341641a8a2e4c60999eb15e445b69000e49ecc Mon Sep 17 00:00:00 2001 From: lempinen Date: Tue, 7 Sep 2010 10:48:55 +0000 Subject: [PATCH] Value view and simulation step value parameter git-svn-id: https://www.simantics.org/svn/simantics/sysdyn/trunk@17803 ac1ea38d-2e2b-0410-8846-a27921b304fc --- .../simantics/modelica/ModelicaManager.java | 1 + org.simantics.sysdyn.ontology/graph.tg | Bin 46544 -> 46732 bytes .../graph/Sysdyn.pgraph | 4 + .../org/simantics/sysdyn/SysdynResource.java | 6 + org.simantics.sysdyn.ui/plugin.xml | 13 + .../OpenDiagramFromConfigurationAdapter.java | 4 +- .../ui/properties/ConfigurationTab.java | 9 +- .../factories/DoublePropertyModifier.java | 7 +- .../simantics/sysdyn/ui/trend/TrendView.java | 149 +---------- .../simantics/sysdyn/ui/values/ValueView.java | 233 ++++++++++++++++++ .../SysdynDatasetSelectionListener.java | 147 +++++++++++ .../sysdyn/manager/SysdynExperiment.java | 2 +- .../simantics/sysdyn/manager/SysdynModel.java | 18 +- .../sysdyn/representation/Model.java | 8 +- .../simulation/SimulationScheduler.java | 2 +- 15 files changed, 449 insertions(+), 154 deletions(-) create mode 100644 org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/values/ValueView.java create mode 100644 org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/viewUtils/SysdynDatasetSelectionListener.java diff --git a/org.simantics.modelica/src/org/simantics/modelica/ModelicaManager.java b/org.simantics.modelica/src/org/simantics/modelica/ModelicaManager.java index 3723a30e..11966b32 100644 --- a/org.simantics.modelica/src/org/simantics/modelica/ModelicaManager.java +++ b/org.simantics.modelica/src/org/simantics/modelica/ModelicaManager.java @@ -109,6 +109,7 @@ public class ModelicaManager { s.print("buildModel("+modelName+ ",startTime="+inits.get("start value")+ ",stopTime="+inits.get("stop value")+ +// ",numberOfIntervals="+inits.get("step value")+ ",method=\"euler\"" ); if(inits.containsKey("tolerance")) { diff --git a/org.simantics.sysdyn.ontology/graph.tg b/org.simantics.sysdyn.ontology/graph.tg index e227a9608bdeda9c79451e76d53f8294542adced..d2b294f8619fe68ca1b4c26d101a3d727d31b05a 100644 GIT binary patch literal 46732 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 z