|
|
@ -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; |
|
|
|