summaryrefslogtreecommitdiff
path: root/sources/simulator/VSSimulationPanel.java
diff options
context:
space:
mode:
Diffstat (limited to 'sources/simulator/VSSimulationPanel.java')
-rw-r--r--sources/simulator/VSSimulationPanel.java35
1 files changed, 19 insertions, 16 deletions
diff --git a/sources/simulator/VSSimulationPanel.java b/sources/simulator/VSSimulationPanel.java
index 256e72e..8ee8f40 100644
--- a/sources/simulator/VSSimulationPanel.java
+++ b/sources/simulator/VSSimulationPanel.java
@@ -236,9 +236,11 @@ public class VSSimulationPanel extends Canvas implements Runnable, MouseMotionLi
}
if (strategy != null) {
- //setPreferredSize(new Dimension(simulation.getWidth()-simulation.getSplitSize(),(int)paintSize-20));
- g = (Graphics2D) strategy.getDrawGraphics();
- g.setColor(Color.WHITE);
+ synchronized (strategy) {
+ //setPreferredSize(new Dimension(simulation.getWidth()-simulation.getSplitSize(),(int)paintSize-20));
+ g = (Graphics2D) strategy.getDrawGraphics();
+ g.setColor(Color.WHITE);
+ }
}
}
@@ -297,23 +299,24 @@ public class VSSimulationPanel extends Canvas implements Runnable, MouseMotionLi
}
}
- g.fillRect(0, 0, getWidth(), getHeight());
-
- final long globalTime = time;
+ synchronized (strategy) {
+ g.fillRect(0, 0, getWidth(), getHeight());
+ final long globalTime = time;
- globalTimeXPosition = getTimeXPosition(globalTime);
- paintSecondlines(g);
- paintProcesses(g, globalTime);
- paintGlobalTime(g, globalTime);
+ globalTimeXPosition = getTimeXPosition(globalTime);
+ paintSecondlines(g);
+ paintProcesses(g, globalTime);
+ paintGlobalTime(g, globalTime);
- synchronized (messageLines) {
- for (VSMessageLine line : messageLines)
- line.draw(g, globalTime);
- }
+ synchronized (messageLines) {
+ for (VSMessageLine line : messageLines)
+ line.draw(g, globalTime);
+ }
- g.setColor(Color.WHITE);
+ g.setColor(Color.WHITE);
- strategy.show();
+ strategy.show();
+ }
}
private void paintProcesses(Graphics2D g, long globalTime) {