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    }