View Javadoc

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 }