OSDN Git Service

Tableの背景色の設定が即座に反映されるように修正
[nt-manager/nt-manager.git] / src / twitter / gui / form / ConfigurationDialog.java
1 /*
2  * To change this template, choose Tools | Templates
3  * and open the template in the editor.
4  */
5
6 /*
7  * ConfigurationDialog2.java
8  *
9  * Created on 2010/09/18, 1:41:32
10  */
11
12 package twitter.gui.form;
13
14 import java.awt.Color;
15 import java.awt.GraphicsEnvironment;
16 import java.io.IOException;
17 import java.util.logging.Level;
18 import java.util.logging.Logger;
19 import javax.swing.DefaultComboBoxModel;
20 import javax.swing.JColorChooser;
21 import twitter.gui.action.TweetMainAction;
22
23 /**
24  *
25  * @author nishio
26  */
27 public class ConfigurationDialog extends javax.swing.JDialog {
28
29     /** Creates new form ConfigurationDialog2 */
30     public ConfigurationDialog(java.awt.Frame parent, boolean modal, TweetMainAction mainAction) {
31         super(parent, modal);
32         initComponents();
33
34         this.mainAction = mainAction;
35         init();
36     }
37
38     /**
39      * 初期化
40      */
41     public void init() {
42         // 利用可能なフォント一覧を取得しておく
43                 this.fonts = GraphicsEnvironment.getLocalGraphicsEnvironment()
44                                 .getAvailableFontFamilyNames();
45                 // 利用可能なフォント一覧を設定しておく
46                 if (fonts != null) {
47                         for (String f : fonts) {
48                                 fontModel.addElement(f);
49                                 fontModel2.addElement(f);
50                         }
51                 }
52                 // 利用可能なフォントサイズを設定しておく
53                 String[] fontSize = { "8", "9", "10", "11", "12", "13", "14", "15",
54                                 "16", "17", "18" };
55                 for (String f : fontSize) {
56                         fontSizeModel.addElement(f);
57                         fontSizeModel2.addElement(f);
58                 }
59
60         //読み込んだ情報を反映
61         applyLoadInformation();
62     }
63
64     /**
65      * 読み込んだ情報を反映
66      */
67     public void applyLoadInformation() {
68         try {
69             // 画面が見えたときに情報更新
70             jSpinner1.setValue( mainAction.getGetTimelinePeriod() );
71             jSpinner2.setValue( mainAction.getGetMentionPeriod() );
72             jSpinner3.setValue( mainAction.getGetDirectMessagePeriod() );
73             jSpinner4.setValue( mainAction.getGetSendDirectMessagePeriod() );
74             
75             jLabel10.setBackground(mainAction.getNewTableColor());
76             
77             // font関係
78             if (mainAction.getTlFontName() != null) {
79                 jComboBox1.setSelectedItem(mainAction.getTlFontName());
80             }
81             if (mainAction.getDetailFontName() != null) {
82                 jComboBox2.setSelectedItem(mainAction.getDetailFontName());
83             }
84             jComboBox3.setSelectedItem(mainAction.getTlFontSize() + "");
85             jComboBox4.setSelectedItem(mainAction.getDetailFontSize() + "");
86             
87             // 表示
88             jSpinner5.setValue(mainAction.getTableElementHeight());
89             jCheckBox1.setSelected( mainAction.getNotifyMention() );
90             jCheckBox2.setSelected( mainAction.getNotifyDirectMessage() );
91             jCheckBox3.setSelected( mainAction.isUpdateNotify() );
92             jCheckBox4.setSelected( mainAction.isFavNotify() );
93             
94             //テーブルに表示するツイート数
95             jSpinner6.setValue(mainAction.getTableElementMaxSize());
96             
97         } catch (Exception e) {
98             e.printStackTrace();
99         }
100     }
101
102     /**
103      * 
104      */
105     @Override
106         public void setVisible(boolean b) {
107                 super.setVisible(b);
108         applyLoadInformation();
109         }
110
111
112     /** This method is called from within the constructor to
113      * initialize the form.
114      * WARNING: Do NOT modify this code. The content of this method is
115      * always regenerated by the Form Editor.
116      */
117     @SuppressWarnings("unchecked")
118     // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
119     private void initComponents() {
120
121         jTabbedPane1 = new javax.swing.JTabbedPane();
122         jPanel1 = new javax.swing.JPanel();
123         jLabel1 = new javax.swing.JLabel();
124         jSpinner1 = new javax.swing.JSpinner();
125         jLabel2 = new javax.swing.JLabel();
126         jSpinner2 = new javax.swing.JSpinner();
127         jLabel3 = new javax.swing.JLabel();
128         jSpinner3 = new javax.swing.JSpinner();
129         jLabel4 = new javax.swing.JLabel();
130         jSpinner4 = new javax.swing.JSpinner();
131         jLabel13 = new javax.swing.JLabel();
132         jPanel2 = new javax.swing.JPanel();
133         jLabel5 = new javax.swing.JLabel();
134         jLabel6 = new javax.swing.JLabel();
135         jLabel7 = new javax.swing.JLabel();
136         jLabel8 = new javax.swing.JLabel();
137         jComboBox1 = new javax.swing.JComboBox();
138         jComboBox2 = new javax.swing.JComboBox();
139         jComboBox3 = new javax.swing.JComboBox();
140         jComboBox4 = new javax.swing.JComboBox();
141         jPanel3 = new javax.swing.JPanel();
142         jLabel9 = new javax.swing.JLabel();
143         jPanel5 = new javax.swing.JPanel();
144         jLabel10 = new javax.swing.JLabel();
145         jPanel4 = new javax.swing.JPanel();
146         jLabel11 = new javax.swing.JLabel();
147         jSpinner5 = new javax.swing.JSpinner();
148         jCheckBox1 = new javax.swing.JCheckBox();
149         jCheckBox2 = new javax.swing.JCheckBox();
150         jSpinner6 = new javax.swing.JSpinner();
151         jLabel12 = new javax.swing.JLabel();
152         jCheckBox3 = new javax.swing.JCheckBox();
153         jCheckBox4 = new javax.swing.JCheckBox();
154         jButton1 = new javax.swing.JButton();
155         jButton2 = new javax.swing.JButton();
156
157         setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
158         setTitle("基本設定");
159
160         jTabbedPane1.setPreferredSize(new java.awt.Dimension(318, 341));
161
162         jLabel1.setText("タイムライン更新間隔 [秒]");
163
164         jSpinner1.addChangeListener(new javax.swing.event.ChangeListener() {
165             public void stateChanged(javax.swing.event.ChangeEvent evt) {
166                 jSpinner1StateChanged(evt);
167             }
168         });
169
170         jLabel2.setText("Mention更新間隔 [秒]");
171
172         jSpinner2.addChangeListener(new javax.swing.event.ChangeListener() {
173             public void stateChanged(javax.swing.event.ChangeEvent evt) {
174                 jSpinner2StateChanged(evt);
175             }
176         });
177
178         jLabel3.setText("ダイレクトメッセージ更新間隔 [秒]");
179
180         jSpinner3.addChangeListener(new javax.swing.event.ChangeListener() {
181             public void stateChanged(javax.swing.event.ChangeEvent evt) {
182                 jSpinner3StateChanged(evt);
183             }
184         });
185
186         jLabel4.setText("送信済みダイレクトメッセージ更新間隔 [秒]");
187
188         jSpinner4.addChangeListener(new javax.swing.event.ChangeListener() {
189             public void stateChanged(javax.swing.event.ChangeEvent evt) {
190                 jSpinner4StateChanged(evt);
191             }
192         });
193
194         jLabel13.setText("Streaming API利用時は、情報の定期的な取得は行いません");
195
196         javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
197         jPanel1.setLayout(jPanel1Layout);
198         jPanel1Layout.setHorizontalGroup(
199             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
200             .addGroup(jPanel1Layout.createSequentialGroup()
201                 .addContainerGap()
202                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
203                     .addGroup(jPanel1Layout.createSequentialGroup()
204                         .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
205                             .addComponent(jLabel1)
206                             .addComponent(jLabel2)
207                             .addComponent(jLabel3)
208                             .addComponent(jLabel4))
209                         .addGap(24, 24, 24)
210                         .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
211                             .addComponent(jSpinner4, javax.swing.GroupLayout.DEFAULT_SIZE, 204, Short.MAX_VALUE)
212                             .addComponent(jSpinner3, javax.swing.GroupLayout.DEFAULT_SIZE, 204, Short.MAX_VALUE)
213                             .addComponent(jSpinner2, javax.swing.GroupLayout.DEFAULT_SIZE, 204, Short.MAX_VALUE)
214                             .addComponent(jSpinner1, javax.swing.GroupLayout.DEFAULT_SIZE, 204, Short.MAX_VALUE)))
215                     .addComponent(jLabel13, javax.swing.GroupLayout.DEFAULT_SIZE, 431, Short.MAX_VALUE))
216                 .addContainerGap())
217         );
218         jPanel1Layout.setVerticalGroup(
219             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
220             .addGroup(jPanel1Layout.createSequentialGroup()
221                 .addContainerGap()
222                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
223                     .addComponent(jLabel1)
224                     .addComponent(jSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
225                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
226                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
227                     .addComponent(jLabel2)
228                     .addComponent(jSpinner2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
229                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
230                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
231                     .addComponent(jLabel3)
232                     .addComponent(jSpinner3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
233                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
234                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
235                     .addComponent(jLabel4)
236                     .addComponent(jSpinner4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
237                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 183, Short.MAX_VALUE)
238                 .addComponent(jLabel13)
239                 .addContainerGap())
240         );
241
242         jTabbedPane1.addTab("更新間隔設定", jPanel1);
243
244         jLabel5.setText("タイムラインのフォント");
245
246         jLabel6.setText("詳細情報のフォント");
247
248         jLabel7.setText("タイムラインのフォントサイズ");
249
250         jLabel8.setText("詳細情報のフォントサイズ");
251
252         jComboBox1.setModel(fontModel);
253
254         jComboBox2.setModel(fontModel2);
255
256         jComboBox3.setModel(fontSizeModel);
257
258         jComboBox4.setModel(fontSizeModel2);
259
260         javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
261         jPanel2.setLayout(jPanel2Layout);
262         jPanel2Layout.setHorizontalGroup(
263             jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
264             .addGroup(jPanel2Layout.createSequentialGroup()
265                 .addContainerGap()
266                 .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
267                     .addComponent(jLabel5)
268                     .addComponent(jLabel6)
269                     .addComponent(jLabel7)
270                     .addComponent(jLabel8))
271                 .addGap(23, 23, 23)
272                 .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
273                     .addComponent(jComboBox4, 0, 229, Short.MAX_VALUE)
274                     .addComponent(jComboBox3, 0, 229, Short.MAX_VALUE)
275                     .addComponent(jComboBox2, 0, 229, Short.MAX_VALUE)
276                     .addComponent(jComboBox1, 0, 229, Short.MAX_VALUE))
277                 .addContainerGap())
278         );
279         jPanel2Layout.setVerticalGroup(
280             jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
281             .addGroup(jPanel2Layout.createSequentialGroup()
282                 .addContainerGap()
283                 .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
284                     .addComponent(jLabel5)
285                     .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
286                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
287                 .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
288                     .addComponent(jLabel6)
289                     .addComponent(jComboBox2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
290                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
291                 .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
292                     .addComponent(jLabel7)
293                     .addComponent(jComboBox3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
294                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
295                 .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
296                     .addComponent(jLabel8)
297                     .addComponent(jComboBox4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
298                 .addContainerGap(198, Short.MAX_VALUE))
299         );
300
301         jTabbedPane1.addTab("フォント", jPanel2);
302
303         jLabel9.setText("最新情報の背景色");
304
305         jPanel5.setBorder(javax.swing.BorderFactory.createEtchedBorder());
306
307         jLabel10.setBackground(java.awt.Color.black);
308         jLabel10.setOpaque(true);
309         jLabel10.addMouseListener(new java.awt.event.MouseAdapter() {
310             public void mouseClicked(java.awt.event.MouseEvent evt) {
311                 jLabel10MouseClicked(evt);
312             }
313         });
314
315         javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
316         jPanel5.setLayout(jPanel5Layout);
317         jPanel5Layout.setHorizontalGroup(
318             jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
319             .addComponent(jLabel10, javax.swing.GroupLayout.DEFAULT_SIZE, 328, Short.MAX_VALUE)
320         );
321         jPanel5Layout.setVerticalGroup(
322             jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
323             .addComponent(jLabel10, javax.swing.GroupLayout.DEFAULT_SIZE, 26, Short.MAX_VALUE)
324         );
325
326         javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
327         jPanel3.setLayout(jPanel3Layout);
328         jPanel3Layout.setHorizontalGroup(
329             jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
330             .addGroup(jPanel3Layout.createSequentialGroup()
331                 .addContainerGap()
332                 .addComponent(jLabel9)
333                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
334                 .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
335                 .addContainerGap())
336         );
337         jPanel3Layout.setVerticalGroup(
338             jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
339             .addGroup(jPanel3Layout.createSequentialGroup()
340                 .addContainerGap()
341                 .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
342                     .addComponent(jLabel9, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
343                     .addComponent(jPanel5, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
344                 .addContainerGap(274, Short.MAX_VALUE))
345         );
346
347         jTabbedPane1.addTab("カラー", jPanel3);
348
349         jLabel11.setText("タイムラインのテーブルの高さ");
350
351         jSpinner5.addChangeListener(new javax.swing.event.ChangeListener() {
352             public void stateChanged(javax.swing.event.ChangeEvent evt) {
353                 jSpinner5StateChanged(evt);
354             }
355         });
356
357         jCheckBox1.setSelected(true);
358         jCheckBox1.setText("自分宛のMentionメッセージをタスクバーから通知する");
359         jCheckBox1.addActionListener(new java.awt.event.ActionListener() {
360             public void actionPerformed(java.awt.event.ActionEvent evt) {
361                 jCheckBox1ActionPerformed(evt);
362             }
363         });
364
365         jCheckBox2.setSelected(true);
366         jCheckBox2.setText("自分宛のDirectメッセージをタスクバーから通知する");
367
368         jSpinner6.addChangeListener(new javax.swing.event.ChangeListener() {
369             public void stateChanged(javax.swing.event.ChangeEvent evt) {
370                 jSpinner6StateChanged(evt);
371             }
372         });
373
374         jLabel12.setText("テーブルに表示するツイート数");
375
376         jCheckBox3.setText("クライアントの最新情報を通知する");
377
378         jCheckBox4.setText("自分の発言がお気に入りに登録されたら通知する(ストリーミングAPI利用時のみ)");
379
380         javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
381         jPanel4.setLayout(jPanel4Layout);
382         jPanel4Layout.setHorizontalGroup(
383             jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
384             .addGroup(jPanel4Layout.createSequentialGroup()
385                 .addContainerGap()
386                 .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
387                     .addComponent(jCheckBox3, javax.swing.GroupLayout.DEFAULT_SIZE, 431, Short.MAX_VALUE)
388                     .addComponent(jCheckBox1, javax.swing.GroupLayout.DEFAULT_SIZE, 431, Short.MAX_VALUE)
389                     .addComponent(jCheckBox2, javax.swing.GroupLayout.DEFAULT_SIZE, 431, Short.MAX_VALUE)
390                     .addGroup(jPanel4Layout.createSequentialGroup()
391                         .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
392                             .addComponent(jLabel12)
393                             .addComponent(jLabel11))
394                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
395                         .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
396                             .addComponent(jSpinner5, javax.swing.GroupLayout.DEFAULT_SIZE, 290, Short.MAX_VALUE)
397                             .addComponent(jSpinner6, javax.swing.GroupLayout.DEFAULT_SIZE, 290, Short.MAX_VALUE)))
398                     .addComponent(jCheckBox4, javax.swing.GroupLayout.DEFAULT_SIZE, 431, Short.MAX_VALUE))
399                 .addContainerGap())
400         );
401         jPanel4Layout.setVerticalGroup(
402             jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
403             .addGroup(jPanel4Layout.createSequentialGroup()
404                 .addContainerGap()
405                 .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
406                     .addComponent(jSpinner5)
407                     .addComponent(jLabel11))
408                 .addGap(5, 5, 5)
409                 .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
410                     .addComponent(jLabel12, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
411                     .addComponent(jSpinner6, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
412                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
413                 .addComponent(jCheckBox1)
414                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
415                 .addComponent(jCheckBox2)
416                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
417                 .addComponent(jCheckBox4)
418                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
419                 .addComponent(jCheckBox3)
420                 .addGap(171, 171, 171))
421         );
422
423         jTabbedPane1.addTab("表示", jPanel4);
424
425         jButton1.setText("設定を保存");
426         jButton1.addActionListener(new java.awt.event.ActionListener() {
427             public void actionPerformed(java.awt.event.ActionEvent evt) {
428                 jButton1ActionPerformed(evt);
429             }
430         });
431
432         jButton2.setText("キャンセル");
433         jButton2.addActionListener(new java.awt.event.ActionListener() {
434             public void actionPerformed(java.awt.event.ActionEvent evt) {
435                 jButton2ActionPerformed(evt);
436             }
437         });
438
439         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
440         getContentPane().setLayout(layout);
441         layout.setHorizontalGroup(
442             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
443             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
444                 .addContainerGap(227, Short.MAX_VALUE)
445                 .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE)
446                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
447                 .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 116, javax.swing.GroupLayout.PREFERRED_SIZE)
448                 .addGap(8, 8, 8))
449             .addGroup(layout.createSequentialGroup()
450                 .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 460, Short.MAX_VALUE)
451                 .addContainerGap())
452         );
453         layout.setVerticalGroup(
454             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
455             .addGroup(layout.createSequentialGroup()
456                 .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 341, javax.swing.GroupLayout.PREFERRED_SIZE)
457                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
458                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
459                     .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE)
460                     .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE))
461                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
462         );
463
464         pack();
465     }// </editor-fold>//GEN-END:initComponents
466
467     private void jLabel10MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel10MouseClicked
468         Color c = JColorChooser.showDialog(this, "テーブルカラーの選択",
469                 mainAction.getNewTableColor());
470         if (c != null) {
471             jLabel10.setBackground(c);
472         }
473     }//GEN-LAST:event_jLabel10MouseClicked
474
475     private void jSpinner5StateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jSpinner5StateChanged
476                 // テーブルの高さを更新
477         Integer val = Integer.parseInt( jSpinner5.getValue().toString() );
478         if( val == null ) {
479             val = 50;
480         }
481         if( val < 0 ) {
482             val = 0;
483             jSpinner5.setValue(0);
484         }
485         mainAction.updateTableHeight( val );
486     }//GEN-LAST:event_jSpinner5StateChanged
487
488     private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
489         this.setVisible(false);
490     }//GEN-LAST:event_jButton2ActionPerformed
491
492     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
493         try {
494             // 更新間隔情報
495             mainAction.setGetTimelinePeriod(Integer.parseInt(jSpinner1.getValue().toString()));
496             mainAction.setGetMentionPeriod(Integer.parseInt(jSpinner2.getValue().toString()));
497             mainAction.setGetDirectMessagePeriod(Integer.parseInt(jSpinner3.getValue().toString()));
498             mainAction.setGetSendDirectMessagePeriod(Integer.parseInt(jSpinner4.getValue().toString()));
499
500             mainAction.setNewTableColor(jLabel10.getBackground());
501
502             // フォント情報
503             mainAction.setTlFontName((String) jComboBox1.getSelectedItem());
504             mainAction.setDetailFontName((String) jComboBox2.getSelectedItem());
505             mainAction.setTlFontSize(Integer.parseInt((String) jComboBox3.getSelectedItem()));
506             mainAction.setDetailFontSize(Integer.parseInt((String) jComboBox4.getSelectedItem()));
507             // フォント情報反映
508             mainAction.updateFontInformationToComponent();
509
510             //更新間隔反映
511             mainAction.updatePeriodInformationToComponent();
512
513             // 表示
514             mainAction.setTableElementHeight(Integer.parseInt( jSpinner5.getValue().toString() ));
515             mainAction.setNotifyMention( jCheckBox1.isSelected() );
516             mainAction.setNotifyDirectMessage( jCheckBox2.isSelected() );
517             mainAction.setUpdateNotify( jCheckBox3.isSelected() );
518             //fav通知ウィンドウ変更
519             mainAction.setFavNotify( jCheckBox4.isSelected());
520             mainAction.updateNotifyInformation();
521             
522             //ツイート表示数
523             mainAction.setTableElementMaxSize(Integer.parseInt( jSpinner6.getValue().toString() ));
524         } catch (Exception e1) {
525             e1.printStackTrace();
526         }
527
528         try {
529             //設定保存
530             mainAction.saveProperties();
531         } catch (IOException ex) {
532             Logger.getLogger(ConfigurationDialog.class.getName()).log(Level.SEVERE, null, ex);
533         }
534
535         this.setVisible(false);
536     }//GEN-LAST:event_jButton1ActionPerformed
537
538     private void jSpinner1StateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jSpinner1StateChanged
539         Integer val = Integer.parseInt(jSpinner1.getValue().toString());
540         if (val == null) {
541             //最小値30
542             val = MIN_PERIOD * 2;
543         }
544         if (val < MIN_PERIOD) {
545             val = MIN_PERIOD;
546             jSpinner1.setValue(MIN_PERIOD);
547         }
548     }//GEN-LAST:event_jSpinner1StateChanged
549
550     private void jSpinner2StateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jSpinner2StateChanged
551         Integer val = Integer.parseInt(jSpinner2.getValue().toString());
552         if (val == null) {
553             //最小値30
554             val = MIN_PERIOD * 2;
555         }
556         if (val < MIN_PERIOD) {
557             val = MIN_PERIOD;
558             jSpinner2.setValue(MIN_PERIOD);
559         }
560     }//GEN-LAST:event_jSpinner2StateChanged
561
562     private void jSpinner3StateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jSpinner3StateChanged
563         Integer val = Integer.parseInt(jSpinner3.getValue().toString());
564         if (val == null) {
565             //最小値30
566             val = MIN_PERIOD * 2;
567         }
568         if (val < MIN_PERIOD) {
569             val = MIN_PERIOD;
570             jSpinner3.setValue(MIN_PERIOD);
571         }
572     }//GEN-LAST:event_jSpinner3StateChanged
573
574     private void jSpinner4StateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jSpinner4StateChanged
575         Integer val = Integer.parseInt(jSpinner4.getValue().toString());
576         if (val == null) {
577             //最小値30
578             val = MIN_PERIOD * 2;
579         }
580         if (val < MIN_PERIOD) {
581             val = MIN_PERIOD;
582             jSpinner4.setValue(MIN_PERIOD);
583         }
584     }//GEN-LAST:event_jSpinner4StateChanged
585
586     private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox1ActionPerformed
587         // TODO add your handling code here:
588     }//GEN-LAST:event_jCheckBox1ActionPerformed
589
590 private void jSpinner6StateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jSpinner6StateChanged
591 // TODO add your handling code here:
592 }//GEN-LAST:event_jSpinner6StateChanged
593
594     //twitter
595     private TweetMainAction mainAction;
596     // 利用可能なフォント一覧
597         private String[] fonts = null;
598     // フォント一覧コンボボックスのモデル
599         private final DefaultComboBoxModel fontModel = new DefaultComboBoxModel();
600         private final DefaultComboBoxModel fontModel2 = new DefaultComboBoxModel();
601         // フォントサイズコンボボックスのモデル
602         private final DefaultComboBoxModel fontSizeModel = new DefaultComboBoxModel();
603         private final DefaultComboBoxModel fontSizeModel2 = new DefaultComboBoxModel();
604
605     //情報更新最小値
606     private final int MIN_PERIOD = 30;
607
608     // Variables declaration - do not modify//GEN-BEGIN:variables
609     private javax.swing.JButton jButton1;
610     private javax.swing.JButton jButton2;
611     private javax.swing.JCheckBox jCheckBox1;
612     private javax.swing.JCheckBox jCheckBox2;
613     private javax.swing.JCheckBox jCheckBox3;
614     private javax.swing.JCheckBox jCheckBox4;
615     private javax.swing.JComboBox jComboBox1;
616     private javax.swing.JComboBox jComboBox2;
617     private javax.swing.JComboBox jComboBox3;
618     private javax.swing.JComboBox jComboBox4;
619     private javax.swing.JLabel jLabel1;
620     private javax.swing.JLabel jLabel10;
621     private javax.swing.JLabel jLabel11;
622     private javax.swing.JLabel jLabel12;
623     private javax.swing.JLabel jLabel13;
624     private javax.swing.JLabel jLabel2;
625     private javax.swing.JLabel jLabel3;
626     private javax.swing.JLabel jLabel4;
627     private javax.swing.JLabel jLabel5;
628     private javax.swing.JLabel jLabel6;
629     private javax.swing.JLabel jLabel7;
630     private javax.swing.JLabel jLabel8;
631     private javax.swing.JLabel jLabel9;
632     private javax.swing.JPanel jPanel1;
633     private javax.swing.JPanel jPanel2;
634     private javax.swing.JPanel jPanel3;
635     private javax.swing.JPanel jPanel4;
636     private javax.swing.JPanel jPanel5;
637     private javax.swing.JSpinner jSpinner1;
638     private javax.swing.JSpinner jSpinner2;
639     private javax.swing.JSpinner jSpinner3;
640     private javax.swing.JSpinner jSpinner4;
641     private javax.swing.JSpinner jSpinner5;
642     private javax.swing.JSpinner jSpinner6;
643     private javax.swing.JTabbedPane jTabbedPane1;
644     // End of variables declaration//GEN-END:variables
645
646 }