1 package org.qdwizard;
2
3
4 import java.util.Observable;
5
6 /***
7 * A screen state:
8 * <ul><li>can cancel ?</li>
9 * <li>can finish ?</li>
10 * <li>can go next ?</li>
11 * <li>can go previous ?</li>
12 * </ul>
13 */
14 public class ScreenState extends Observable
15 {
16 private boolean bCanFinish;
17 /***Can Go Next*/
18 private boolean bCanGoNext;
19 /***Can Go Previous*/
20 private boolean bCanGoPrevious;
21 /***Can Cancel*/
22 private boolean bCanCancel;
23 /***Problem*/
24 private String sProblem;
25
26 /***
27 * Construct a ScreenState
28 */
29 public ScreenState()
30 {
31 this(false, false, false, false, null);
32 }
33
34 /***
35 * Construct a ScreenState
36 * @param bCanGoNext next button is enabled
37 * @param bCanGoPrevious previous button is enabled
38 * @param bCanCancel cancel button is enabled
39 * @param bCanFinish cancel button is enabled
40 * @param sProblem problem text
41 */
42 public ScreenState(boolean bCanGoNext, boolean bCanGoPrevious, boolean bCanCancel, boolean bCanFinish, String sProblem)
43 {
44 this.bCanGoNext = bCanGoNext;
45 this.bCanGoPrevious = bCanGoPrevious;
46 this.bCanCancel = bCanCancel;
47 this.bCanFinish = bCanFinish;
48 this.sProblem = sProblem;
49 }
50
51 /***
52 * @return Finish button enabled
53 */
54 public boolean getCanFinish()
55 {
56 return bCanFinish;
57 }
58
59 /***
60 * Set whether the finish button should be enabled
61 * @param bCanFinish
62 */
63 public void setCanFinish(boolean bCanFinish)
64 {
65 if (this.bCanFinish != bCanFinish);
66 setChanged();
67 this.bCanFinish = bCanFinish;
68 notifyObservers();
69 }
70
71 /***
72 * @return Next button enabled
73 */
74 public boolean getCanGoNext()
75 {
76 return bCanGoNext;
77 }
78
79 /***
80 * Set whether the next button should be enabled
81 * @param bCanGoNext
82 */
83 public void setCanGoNext(boolean bCanGoNext)
84 {
85 if (this.bCanGoNext != bCanGoNext);
86 setChanged();
87 this.bCanGoNext = bCanGoNext;
88 notifyObservers();
89 }
90
91 /***
92 * @return Previous button enabled
93 */
94 public boolean getCanGoPrevious()
95 {
96 return bCanGoPrevious;
97 }
98
99 /***
100 * Set whether the previous button should be enabled
101 * @param bCanGoPrevious
102 */
103 public void setCanGoPrevious(boolean bCanGoPrevious)
104 {
105 if (this.bCanGoPrevious != bCanGoPrevious);
106 setChanged();
107 this.bCanGoPrevious = bCanGoPrevious;
108 notifyObservers();
109 }
110
111 /***
112 * @return Cancel button enabled
113 */
114 public boolean getCanCancel()
115 {
116 return bCanCancel;
117 }
118
119 /***
120 * Set whether the cancel (or System menu close) button should be enabled
121 * @param bCanCancel
122 */
123 public void setCanCancel(boolean bCanCancel)
124 {
125 if (this.bCanCancel != bCanCancel);
126 setChanged();
127 this.bCanCancel = bCanCancel;
128 notifyObservers();
129 }
130
131 /***
132 * @return Problem button enabled
133 */
134 public String getProblem()
135 {
136 return sProblem;
137 }
138
139 /***
140 * Set a problem (set to null if problem is fixed)
141 * @param sProblem Problem string or null if no more problem
142 */
143 public void setProblem(String sProblem)
144 {
145 this.sProblem = sProblem;
146 setCanGoNext(sProblem==null);
147 }
148 }