Browse Source

GUI simulation path plotting handles non-integer variables.

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@5390 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 14 years ago
parent
commit
cadd9da282
  1. 17
      prism/src/simulator/PathToGraph.java

17
prism/src/simulator/PathToGraph.java

@ -30,6 +30,8 @@ import org.jfree.data.xy.XYDataItem;
import parser.State; import parser.State;
import parser.ast.ModulesFile; import parser.ast.ModulesFile;
import parser.type.TypeDouble;
import prism.PrismException;
import userinterface.graph.Graph; import userinterface.graph.Graph;
import userinterface.graph.Graph.SeriesKey; import userinterface.graph.Graph.SeriesKey;
@ -102,9 +104,18 @@ public class PathToGraph extends PathDisplayer
private void displayState(double time, State state, boolean force) private void displayState(double time, State state, boolean force)
{ {
for (int j = 0; j < numVars; j++) { for (int j = 0; j < numVars; j++) {
// TODO: other var types?
if (force || !state.varValues[j].equals(lastState.varValues[j])) {
graphModel.addPointToSeries(seriesKeys[j], new XYDataItem(time, ((Integer) state.varValues[j]).intValue()));
Object val = state.varValues[j];
double d = 0.0;
if (force || !val.equals(lastState.varValues[j])) {
try {
d = TypeDouble.getInstance().castValueTo(val).doubleValue();
graphModel.addPointToSeries(seriesKeys[j], new XYDataItem(time, d));
} catch (PrismException e) {
if (val instanceof Boolean) {
d = ((Boolean) val).booleanValue() ? 1.0 : 0.0;
graphModel.addPointToSeries(seriesKeys[j], new XYDataItem(time, d));
}
}
} }
} }
lastTime = time; lastTime = time;

Loading…
Cancel
Save