001 package jagafa.view.newui;
002
003 import jagafa.flags.TestingFlags;
004
005 import java.awt.BorderLayout;
006 import java.awt.Color;
007 import java.awt.GridLayout;
008
009 import javax.swing.BorderFactory;
010 import javax.swing.JFrame;
011 import javax.swing.JPanel;
012 import javax.swing.JSeparator;
013 import javax.swing.JToggleButton;
014 import javax.swing.border.Border;
015 import javax.swing.event.ChangeEvent;
016 import javax.swing.event.ChangeListener;
017
018 public class TestingFlagsPanel extends JPanel implements ChangeListener {
019
020 private static final String PAUSED = "Paused";
021
022 private static final String REPEAT = "Always repeat";
023
024 private static final String SHOWALLHANDS = "Show selected hands";
025
026 /**
027 *
028 */
029 private static final long serialVersionUID = 543269931763256098L;
030
031 private static final String DUMP = "Show Dump Flags";
032
033 private static final String SPEEDUP = "Speedup";
034
035 public TestingFlagsPanel() {
036
037 this.addTitleBorder("Testing-Flag Control");
038 this.setLayout(new BorderLayout());
039 JToggleButton pauseItem = new JToggleButton(PAUSED);
040 this.add(pauseItem);
041 pauseItem.setSelected(TestingFlags.paused_);
042 pauseItem.addChangeListener(this);
043
044
045
046
047 JSeparator sep = new JSeparator();
048
049
050 // this.getContentPane().setBackground(new Color(0,0,0,0));
051 // this.getContentPane().setForeground(new Color(200,200,0,0));
052
053
054 JToggleButton allHandsItem = new JToggleButton(SHOWALLHANDS);
055 this.add(allHandsItem);
056 allHandsItem.setSelected(TestingFlags.showAllHands_);
057 allHandsItem.addChangeListener(this);
058
059
060
061 JToggleButton allDumpItem = new JToggleButton(DUMP);
062 this.add(allDumpItem);
063 allDumpItem.addChangeListener(this);
064
065
066 JToggleButton endlessItem = new JToggleButton(REPEAT);
067 this.add(endlessItem);
068 endlessItem.setSelected(TestingFlags.repeatedTest_);
069 endlessItem.addChangeListener(this);
070
071
072 JToggleButton speedupItem = new JToggleButton(SPEEDUP);
073 this.add(speedupItem);
074 speedupItem.setSelected(TestingFlags.speedUp_);
075 speedupItem.addChangeListener(this);
076
077
078
079 //this.setVisible(true);
080
081 this.setLocation(0, 259);
082
083
084
085 this.setLayout(new GridLayout(6, 1));
086
087 //this.pack();
088 //this.setResizable(false);
089 this.setSize(140, this.getHeight());
090 //this.setSize(140, 140);
091
092 dumpFrame_ = new DumpFrame();
093 dumpFrame_.setLocationRelativeTo(allDumpItem);
094 dumpFrame_.setLocation(dumpFrame_.getX()+allDumpItem.getWidth()/2+dumpFrame_.getWidth()/2,dumpFrame_.getY()+allDumpItem.getHeight()/2);
095 //dumpFrame_.setLocation(this.getLocation().x,this.getLocation().y);
096
097 showHandFrame_ = new HandChoiceFrame();
098 //dumpFrame_.setLocation(this.getLocation().x,this.getLocation().y);
099
100 }
101
102 private DumpFrame dumpFrame_;
103
104 private HandChoiceFrame showHandFrame_;
105
106 public void stateChanged(ChangeEvent arg0) {
107
108 JToggleButton src = (JToggleButton) arg0.getSource();
109 String name = src.getText();
110
111 if (name.equals(PAUSED)) {
112 TestingFlags.paused_ = src.isSelected();
113 }
114 if (name.equals(SHOWALLHANDS)) {
115 //TestingFlags.showAllHands_ = src.isSelected();
116 if (src.isSelected() != showHandFrame_.isVisible()) {
117 showHandFrame_.setVisible(src.isSelected());
118 showHandFrame_.setLocationRelativeTo(src);
119 showHandFrame_.setLocation(showHandFrame_.getX()+src.getWidth()/2+showHandFrame_.getWidth()/2,showHandFrame_.getY()+src.getHeight()/2);
120
121 }
122 }
123
124 if (name.equals(DUMP)) {
125 if (src.isSelected() != dumpFrame_.isVisible()) {
126 dumpFrame_.setVisible(src.isSelected());
127 dumpFrame_.setLocationRelativeTo(src);
128 dumpFrame_.setLocation(dumpFrame_.getX()+src.getWidth()/2+dumpFrame_.getWidth()/2,dumpFrame_.getY()+src.getHeight()/2);
129 }
130
131 }
132
133 if (name.equals(REPEAT)) {
134 TestingFlags.repeatedTest_ = src.isSelected();
135 }
136 if (name.equals(SPEEDUP)) {
137 TestingFlags.speedUp_ = src.isSelected();
138 }
139
140 }
141
142 private class HandChoiceFrame extends JFrame implements ChangeListener {
143
144 /**
145 *
146 */
147 private static final long serialVersionUID = 7664901490669192679L;
148
149 public HandChoiceFrame() {
150 this.setTitle("Show Hand Flags");
151 this.setLayout(new GridLayout(4, 1));
152
153 for (int i = 0;i<4;i++) {
154 JToggleButton pAIDump = new JToggleButton("Player " + i);
155 this.getContentPane().add(pAIDump);
156 pAIDump.setSelected(TestingFlags.showHand_[i]);
157 pAIDump.addChangeListener(this);
158 }
159
160
161 this.setUndecorated(true);
162 this.pack();
163 this.setResizable(false);
164 this.setAlwaysOnTop(true);
165
166 }
167
168 public void stateChanged(ChangeEvent arg0) {
169 JToggleButton src = (JToggleButton) arg0.getSource();
170 String name = src.getText();
171
172 for (int i = 0;i<4;i++) {
173 if (name.endsWith(String.valueOf(i))) {
174 TestingFlags.showHand_[i] = src.isSelected();
175 break;
176 }
177 }
178
179 }
180 }
181
182
183
184
185
186 private class DumpFrame extends JFrame implements ChangeListener {
187
188 /**
189 *
190 */
191 private static final long serialVersionUID = 7664901490669192679L;
192
193 private static final String PROB_AI_DUMP = "AI";
194
195 private static final String PROB_TABLE_DUMP = "Probability Table";
196
197 private static final String STRATEGY_DUMP = "Strategy";
198
199 private static final String RULESET_CHOICE_DUMP = "Ruleset Choice";
200
201 public DumpFrame() {
202 this.setTitle("Dump Flags");
203 this.setLayout(new GridLayout(4, 1));
204 JToggleButton pAIDump = new JToggleButton(PROB_AI_DUMP);
205 this.getContentPane().add(pAIDump);
206 pAIDump.setSelected(TestingFlags.probAIDump_);
207 pAIDump.addChangeListener(this);
208
209 JToggleButton pTableDump = new JToggleButton(PROB_TABLE_DUMP);
210 this.getContentPane().add(pTableDump);
211 pTableDump.setSelected(TestingFlags.probTableDump_);
212 pTableDump.addChangeListener(this);
213
214 JToggleButton startDump = new JToggleButton(STRATEGY_DUMP);
215 this.getContentPane().add(startDump);
216 startDump.setSelected(TestingFlags.aiStrategyDump_);
217 startDump.addChangeListener(this);
218
219 JToggleButton choiceDump = new JToggleButton(RULESET_CHOICE_DUMP);
220 this.getContentPane().add(choiceDump);
221 choiceDump.setSelected(TestingFlags.ruleSetChoiceDump_);
222 choiceDump.addChangeListener(this);
223
224 this.setUndecorated(true);
225 this.pack();
226 /*this.setLocation(TestingFlagsPanel.this.getWidth(), TestingFlagsPanel.this
227 .getY());
228 */
229 this.setResizable(false);
230 this.setAlwaysOnTop(true);
231
232 }
233
234 public void stateChanged(ChangeEvent arg0) {
235 JToggleButton src = (JToggleButton) arg0.getSource();
236 String name = src.getText();
237
238 if (name.equals(PROB_AI_DUMP)) {
239 TestingFlags.probAIDump_ = src.isSelected();
240 }
241 if (name.equals(PROB_TABLE_DUMP)) {
242 TestingFlags.probTableDump_ = src.isSelected();
243 }
244
245 if (name.equals(STRATEGY_DUMP)) {
246 TestingFlags.aiStrategyDump_ = src.isSelected();
247
248 }
249
250 if (name.equals(RULESET_CHOICE_DUMP)) {
251 TestingFlags.ruleSetChoiceDump_ = src.isSelected();
252 }
253 }
254 }
255 private void addTitleBorder(String string) {
256 Border b = BorderFactory.createLineBorder(Color.BLACK);
257
258 Border titleB = BorderFactory.createTitledBorder(b,string);
259 this.setBorder(titleB);
260
261 }
262 }