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