1 package org.woehlke.computer.kurzweil.tabs.turmite.model;
2
3
4 import org.woehlke.computer.kurzweil.tabs.turmite.model.TurmiteTabState;
5
6 import java.io.Serializable;
7
8 import static org.woehlke.computer.kurzweil.tabs.turmite.model.TurmiteTabState.*;
9
10
11
12
13
14
15
16
17
18
19 public class TurmiteTabStateMachine implements Serializable {
20
21 private static final long serialVersionUID = 7526471155622776147L;
22
23 private volatile TurmiteTabState applicationState;
24
25 public TurmiteTabStateMachine() {
26 this.applicationState = TurmiteTabState.MANDELBROT;
27 }
28
29 public void click(){
30 TurmiteTabState nextApplicationState = null;
31 switch (applicationState){
32 case MANDELBROT:
33 nextApplicationState = MANDELBROT_ZOOM;
34 break;
35 case MANDELBROT_ZOOM:
36 nextApplicationState = MANDELBROT;
37 break;
38 }
39 this.setApplicationState(nextApplicationState);
40 }
41
42 public void setModeSwitch() {
43 TurmiteTabState nextApplicationState = this.applicationState;
44
45
46
47
48
49
50
51
52
53
54
55
56
57 this.setApplicationState(nextApplicationState);
58 }
59
60 public void setModeZoom() {
61 TurmiteTabState nextApplicationState = this.applicationState;
62 switch (applicationState){
63 case MANDELBROT:
64 nextApplicationState = MANDELBROT_ZOOM;
65 break;
66
67
68
69 case MANDELBROT_ZOOM:
70
71 break;
72 }
73 this.setApplicationState(nextApplicationState);
74 }
75
76 public TurmiteTabState getApplicationState() {
77 return applicationState;
78 }
79
80 public void setApplicationState(TurmiteTabState applicationState) {
81 this.applicationState = applicationState;
82 }
83
84 }