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 }