1 package org.woehlke.computer.kurzweil.tabs.kochsnowflake;
2
3
4
5
6
7
8
9
10
11
12
13 public class KochSnowflakeController extends Thread implements Runnable {
14
15 private final int THREAD_SLEEP_TIME = 1;
16 private volatile KochSnowflakeModel mandelbrotModel;
17 private volatile KochSnowflakeTab frame;
18 private volatile Boolean goOn;
19
20 public KochSnowflakeController(KochSnowflakeModel model, KochSnowflakeTab frame) {
21 this.frame = frame;
22 this.mandelbrotModel = model;
23 goOn = Boolean.TRUE;
24 }
25
26 public void run() {
27 boolean doIt;
28 do {
29 synchronized (goOn) {
30 doIt = goOn.booleanValue();
31 }
32 if(this.mandelbrotModel.step()){
33 frame.getCanvas().repaint();
34 }
35 try { sleep(THREAD_SLEEP_TIME); }
36 catch (InterruptedException e) { }
37 }
38 while (doIt);
39 }
40
41 public void exit() {
42 synchronized (goOn) {
43 goOn = Boolean.FALSE;
44 }
45 }
46
47 }