OSDN Git Service

6b27eac0b68a08fa0d473592ae3140b71f0e6d23
[nt-manager/nt-manager.git] / src / twitter / gui / form / NishioTweetManager.java
1 /*
2  * To change this template, choose Tools | Templates
3  * and open the template in the editor.
4  */
5
6 /*
7  * NishioTweetManager.java
8  *
9  * Created on 2010/09/06, 3:32:04
10  */
11 package twitter.gui.form;
12
13 import java.awt.AWTException;
14 import java.awt.Image;
15 import java.awt.MenuItem;
16 import java.awt.PopupMenu;
17 import java.awt.SystemTray;
18 import java.awt.TrayIcon;
19 import java.awt.event.ActionEvent;
20 import java.awt.event.ActionListener;
21 import java.awt.event.MouseAdapter;
22 import java.awt.event.MouseEvent;
23 import java.awt.image.BufferedImage;
24 import java.io.IOException;
25 import java.net.URL;
26 import java.util.logging.Level;
27 import java.util.logging.Logger;
28 import javax.swing.ImageIcon;
29 import javax.swing.JButton;
30 import javax.swing.JFrame;
31 import javax.swing.JPopupMenu;
32 import javax.swing.UIManager;
33 import javax.swing.WindowConstants;
34 import javax.swing.text.Style;
35 import javax.swing.text.StyleConstants;
36 import javax.swing.text.html.HTMLDocument;
37 import javax.swing.text.html.StyleSheet;
38 import twitter.action.list.ListGetterSelection;
39 import twitter.gui.action.TweetMainAction;
40 import twitter.gui.component.TweetHashtagHyperlinkHandler;
41 import twitter.gui.component.TweetHyperlinkHandler;
42 import twitter.gui.component.TweetTextFieldPopupMenu;
43 import twitter.manage.TweetManager;
44 import twitter.task.TimerID;
45
46 /**
47  *
48  * @author nishio
49  */
50 public class NishioTweetManager extends javax.swing.JFrame {
51
52         private SystemTray systemTray;
53         private TrayIcon trayIcon;
54         private TweetHashtagHyperlinkHandler hashTagHyperlinkListener = new TweetHashtagHyperlinkHandler();
55
56         /** Creates new form NishioTweetManager */
57         public NishioTweetManager() {
58                 initComponents();
59                 // component初期化
60                 initComponents2();
61                 // twitterコード初期化
62                 init();
63                 // checkboxの更新
64                 updateSelectedInformation();
65         }
66
67         /**
68          * コンポーネント初期化
69          */
70         private void initComponents2() {
71                 Image image = null;
72                 try {
73                         // トレイイメージ
74                         /*
75                          * URL resource = getClass().getResource("icon.png"); image = new
76                          * ImageIcon(resource).getImage();
77                          */
78                         image = new ImageIcon("resources/icon.png").getImage();
79                         // フレームのアイコン設定
80                         this.setIconImage(image);
81                 } catch (Exception e) {
82                         e.printStackTrace();
83                         image = new BufferedImage(32, 32, BufferedImage.TYPE_INT_RGB);
84                 }
85                 // システムトライ関係
86                 systemTray = SystemTray.getSystemTray();
87                 final JFrame frame = this;
88                 final PopupMenu popup = new PopupMenu();
89                 trayIcon = new TrayIcon(image, "Nishio Tweet Manager", popup);
90
91                 // 左クリックした時に「画面を開く」アクションをする
92                 trayIcon.addMouseListener(new MouseAdapter() {
93
94                         @Override
95                         public void mousePressed(MouseEvent me) {
96                                 // 左クリック
97                                 if (me.getButton() == MouseEvent.BUTTON1) {
98                                         frame.setVisible(true);
99                                 }
100                         }
101                 });
102
103                 // 右クリック時のポップアップメニュー
104                 MenuItem item1 = new MenuItem("画面を開く");
105                 item1.addActionListener(new ActionListener() {
106
107                         @Override
108                         public void actionPerformed(ActionEvent e) {
109                                 frame.setVisible(true);
110                         }
111                 });
112                 MenuItem item2 = new MenuItem("終了");
113                 item2.addActionListener(new ActionListener() {
114
115                         @Override
116                         public void actionPerformed(ActionEvent e) {
117                                 systemTray.remove(trayIcon);
118                                 frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
119                                 frame.dispose();
120                                 System.exit(0);
121                         }
122                 });
123                 popup.add(item1);
124                 popup.add(item2);
125
126                 try {
127                         systemTray.add(trayIcon);
128                 } catch (AWTException e) {
129                         e.printStackTrace();
130                 }
131
132                 //tweet発言するボックスの右クリック対応
133                 this.jTextPane.setComponentPopupMenu(
134                                 new TweetTextFieldPopupMenu( this.jTextPane ) );
135         }
136
137         /**
138          * This method is called from within the constructor to initialize the form.
139          * WARNING: Do NOT modify this code. The content of this method is always
140          * regenerated by the Form Editor.
141          */
142         @SuppressWarnings("unchecked")
143         // <editor-fold defaultstate="collapsed"
144     // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
145     private void initComponents() {
146
147         jTabbedPane1 = new twitter.gui.component.DnDTabbedPane();
148         jPanel1 = new javax.swing.JPanel();
149         userImageLabel = new javax.swing.JLabel();
150         jScrollPane5 = new javax.swing.JScrollPane();
151         tweetMessageBox = new javax.swing.JEditorPane();
152         jLabel3 = new javax.swing.JLabel();
153         jLabel4 = new javax.swing.JLabel();
154         jLabel5 = new javax.swing.JLabel();
155         userNameLabel = new javax.swing.JLabel();
156         updateTimeLabel = new javax.swing.JLabel();
157         locationLabel = new javax.swing.JLabel();
158         jLabel9 = new javax.swing.JLabel();
159         followingLabel = new javax.swing.JLabel();
160         followerLabel = new javax.swing.JLabel();
161         jLabel12 = new javax.swing.JLabel();
162         jLabel13 = new javax.swing.JLabel();
163         updateLabel = new javax.swing.JLabel();
164         jScrollPane6 = new javax.swing.JScrollPane();
165         userIntroBox = new javax.swing.JEditorPane();
166         jScrollPane7 = new javax.swing.JScrollPane();
167         userWebBox = new javax.swing.JEditorPane();
168         jScrollPane8 = new javax.swing.JScrollPane();
169         clientNameLabel = new javax.swing.JEditorPane();
170         jPanel2 = new javax.swing.JPanel();
171         statusBar = new javax.swing.JLabel();
172         jToolBar1 = new javax.swing.JToolBar();
173         jButton1 = new javax.swing.JButton();
174         jSeparator1 = new javax.swing.JToolBar.Separator();
175         jButton2 = new javax.swing.JButton();
176         jSeparator2 = new javax.swing.JToolBar.Separator();
177         jToggleButton1 = new javax.swing.JToggleButton();
178         jToggleButton2 = new javax.swing.JToggleButton();
179         jSeparator3 = new javax.swing.JToolBar.Separator();
180         jToggleButton3 = new javax.swing.JToggleButton();
181         jToggleButton4 = new javax.swing.JToggleButton();
182         jToggleButton5 = new javax.swing.JToggleButton();
183         jToggleButton6 = new javax.swing.JToggleButton();
184         jPanel3 = new javax.swing.JPanel();
185         jScrollPane9 = new javax.swing.JScrollPane();
186         jTextPane = new javax.swing.JTextPane();
187         jButton4 = new javax.swing.JButton();
188         tweetLengthLabel = new javax.swing.JLabel();
189         jLabel15 = new javax.swing.JLabel();
190         jMenuBar1 = new javax.swing.JMenuBar();
191         jMenu1 = new javax.swing.JMenu();
192         jMenuItem1 = new javax.swing.JMenuItem();
193         jMenu6 = new javax.swing.JMenu();
194         jMenuItem10 = new javax.swing.JMenuItem();
195         jMenuItem7 = new javax.swing.JMenuItem();
196         jMenuItem8 = new javax.swing.JMenuItem();
197         jSeparator4 = new javax.swing.JPopupMenu.Separator();
198         jMenuItem11 = new javax.swing.JMenuItem();
199         jMenuItem12 = new javax.swing.JMenuItem();
200         jMenuItem13 = new javax.swing.JMenuItem();
201         jMenuItem15 = new javax.swing.JMenuItem();
202         jMenuItem14 = new javax.swing.JMenuItem();
203         jMenuItem16 = new javax.swing.JMenuItem();
204         jSeparator5 = new javax.swing.JPopupMenu.Separator();
205         jMenuItem17 = new javax.swing.JMenuItem();
206         jMenuItem18 = new javax.swing.JMenuItem();
207         jMenuItem21 = new javax.swing.JMenuItem();
208         jMenuItem35 = new javax.swing.JMenuItem();
209         jMenuItem36 = new javax.swing.JMenuItem();
210         jSeparator6 = new javax.swing.JPopupMenu.Separator();
211         jMenuItem30 = new javax.swing.JMenuItem();
212         jMenuItem22 = new javax.swing.JMenuItem();
213         jMenuItem19 = new javax.swing.JMenuItem();
214         jMenuItem20 = new javax.swing.JMenuItem();
215         jMenuItem33 = new javax.swing.JMenuItem();
216         jMenu4 = new javax.swing.JMenu();
217         jMenuItem5 = new javax.swing.JMenuItem();
218         jCheckBoxMenuItem1 = new javax.swing.JCheckBoxMenuItem();
219         jCheckBoxMenuItem2 = new javax.swing.JCheckBoxMenuItem();
220         jCheckBoxMenuItem3 = new javax.swing.JCheckBoxMenuItem();
221         jCheckBoxMenuItem4 = new javax.swing.JCheckBoxMenuItem();
222         jCheckBoxMenuItem5 = new javax.swing.JCheckBoxMenuItem();
223         jCheckBoxMenuItem6 = new javax.swing.JCheckBoxMenuItem();
224         jMenuItem9 = new javax.swing.JMenuItem();
225         jMenu5 = new javax.swing.JMenu();
226         jMenuItem6 = new javax.swing.JMenuItem();
227         jMenuItem23 = new javax.swing.JMenuItem();
228         jMenuItem31 = new javax.swing.JMenuItem();
229         jMenuItem34 = new javax.swing.JMenuItem();
230         jMenu7 = new javax.swing.JMenu();
231         jMenuItem25 = new javax.swing.JMenuItem();
232         jMenuItem24 = new javax.swing.JMenuItem();
233         jMenuItem26 = new javax.swing.JMenuItem();
234         jSeparator7 = new javax.swing.JPopupMenu.Separator();
235         jMenuItem27 = new javax.swing.JMenuItem();
236         jMenuItem28 = new javax.swing.JMenuItem();
237         jMenuItem29 = new javax.swing.JMenuItem();
238         jMenu2 = new javax.swing.JMenu();
239         jMenuItem2 = new javax.swing.JMenuItem();
240         jMenuItem4 = new javax.swing.JMenuItem();
241         jMenu8 = new javax.swing.JMenu();
242         logSaveCheckItem = new javax.swing.JCheckBoxMenuItem();
243         jMenuItem32 = new javax.swing.JMenuItem();
244         jMenu3 = new javax.swing.JMenu();
245         jMenuItem3 = new javax.swing.JMenuItem();
246
247         setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
248         setTitle("Nishio Tweet Manager");
249
250         jTabbedPane1.addContainerListener(new java.awt.event.ContainerAdapter() {
251             public void componentRemoved(java.awt.event.ContainerEvent evt) {
252                 jTabbedPane1ComponentRemoved(evt);
253             }
254         });
255
256         jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
257
258         userImageLabel.setBackground(java.awt.Color.black);
259         userImageLabel.setOpaque(true);
260
261         jScrollPane5.setHorizontalScrollBar(null);
262
263         tweetMessageBox.setContentType("text/html");
264         tweetMessageBox.setEditable(false);
265         tweetMessageBox.addComponentListener(new java.awt.event.ComponentAdapter() {
266             public void componentResized(java.awt.event.ComponentEvent evt) {
267                 tweetMessageBoxComponentResized(evt);
268             }
269         });
270         tweetMessageBox.addHyperlinkListener(hashTagHyperlinkListener);
271         jScrollPane5.setViewportView(tweetMessageBox);
272
273         jLabel3.setText("ユーザ名");
274
275         jLabel4.setText("更新日");
276
277         jLabel5.setText("現在地");
278
279         userNameLabel.setText("UserName");
280
281         updateTimeLabel.setText("Date");
282
283         locationLabel.setText("Information");
284
285         jLabel9.setText("Following");
286
287         followingLabel.setText("0");
288
289         followerLabel.setText("0");
290
291         jLabel12.setText("Follower");
292
293         jLabel13.setText("更新回数");
294
295         updateLabel.setText("0");
296
297         jScrollPane6.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
298
299         userIntroBox.setContentType("text/html");
300         userIntroBox.setEditable(false);
301         userIntroBox.setMinimumSize(new java.awt.Dimension(120, 20));
302         jScrollPane6.setViewportView(userIntroBox);
303
304         jScrollPane7.setBorder(null);
305         jScrollPane7.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
306         jScrollPane7.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
307
308         userWebBox.setBorder(null);
309         userWebBox.setContentType("text/html");
310         userWebBox.setEditable(false);
311         userWebBox.setEditable(false);
312         userWebBox.addHyperlinkListener(new TweetHyperlinkHandler());
313         try {
314             // htmlフォント変更
315             HTMLDocument doc = (HTMLDocument) userWebBox.getDocument();
316             StyleSheet[] style = doc.getStyleSheet().getStyleSheets();
317             for (int i = style.length - 1; i >= 0; i--) {
318                 Style body = style[i].getStyle("body");
319                 if (body != null) {
320                     // TODO: change default font size
321                     StyleConstants.setFontSize(body, 13);
322                 }
323             }
324         } catch (Exception e) {
325             e.printStackTrace();
326         }
327         jScrollPane7.setViewportView(userWebBox);
328
329         jScrollPane8.setBorder(null);
330         jScrollPane8.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
331         jScrollPane8.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
332
333         clientNameLabel.setBorder(null);
334         clientNameLabel.setContentType("text/html");
335         clientNameLabel.setEditable(false);
336         clientNameLabel.setEditable(false);
337         clientNameLabel.addHyperlinkListener(new TweetHyperlinkHandler());
338         try {
339             // htmlフォント変更
340             HTMLDocument doc = (HTMLDocument) clientNameLabel.getDocument();
341             StyleSheet[] style = doc.getStyleSheet().getStyleSheets();
342             for (int i = style.length - 1; i >= 0; i--) {
343                 Style body = style[i].getStyle("body");
344                 if (body != null) {
345                     // TODO: default font size
346                     StyleConstants.setFontSize(body, 13);
347                 }
348             }
349         } catch (Exception e) {
350             e.printStackTrace();
351         }
352         jScrollPane8.setViewportView(clientNameLabel);
353
354         javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
355         jPanel1.setLayout(jPanel1Layout);
356         jPanel1Layout.setHorizontalGroup(
357             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
358             .addGroup(jPanel1Layout.createSequentialGroup()
359                 .addComponent(userImageLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
360                 .addGap(3, 3, 3)
361                 .addComponent(jScrollPane5, javax.swing.GroupLayout.DEFAULT_SIZE, 666, Short.MAX_VALUE))
362             .addGroup(jPanel1Layout.createSequentialGroup()
363                 .addContainerGap()
364                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
365                     .addGroup(jPanel1Layout.createSequentialGroup()
366                         .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
367                             .addComponent(jLabel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
368                             .addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
369                             .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
370                         .addGap(18, 18, 18)
371                         .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
372                             .addComponent(locationLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 183, javax.swing.GroupLayout.PREFERRED_SIZE)
373                             .addComponent(userNameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 183, javax.swing.GroupLayout.PREFERRED_SIZE)
374                             .addComponent(updateTimeLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 183, javax.swing.GroupLayout.PREFERRED_SIZE))
375                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
376                         .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
377                             .addComponent(jLabel13, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
378                             .addComponent(jLabel12, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
379                             .addComponent(jLabel9))
380                         .addGap(18, 18, 18)
381                         .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
382                             .addComponent(updateLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
383                             .addComponent(followerLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 68, Short.MAX_VALUE)
384                             .addComponent(followingLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
385                     .addGroup(jPanel1Layout.createSequentialGroup()
386                         .addComponent(jScrollPane7, javax.swing.GroupLayout.PREFERRED_SIZE, 220, javax.swing.GroupLayout.PREFERRED_SIZE)
387                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
388                         .addComponent(jScrollPane8, javax.swing.GroupLayout.PREFERRED_SIZE, 189, javax.swing.GroupLayout.PREFERRED_SIZE)))
389                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
390                 .addComponent(jScrollPane6, javax.swing.GroupLayout.DEFAULT_SIZE, 282, Short.MAX_VALUE))
391         );
392         jPanel1Layout.setVerticalGroup(
393             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
394             .addGroup(jPanel1Layout.createSequentialGroup()
395                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
396                     .addComponent(userImageLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
397                     .addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE))
398                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
399                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
400                     .addGroup(jPanel1Layout.createSequentialGroup()
401                         .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
402                             .addGroup(jPanel1Layout.createSequentialGroup()
403                                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
404                                     .addComponent(jLabel3)
405                                     .addComponent(userNameLabel))
406                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
407                                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
408                                     .addComponent(jLabel4)
409                                     .addComponent(updateTimeLabel))
410                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
411                                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
412                                     .addComponent(jLabel5)
413                                     .addComponent(locationLabel)))
414                             .addGroup(jPanel1Layout.createSequentialGroup()
415                                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
416                                     .addComponent(jLabel9)
417                                     .addComponent(followingLabel))
418                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
419                                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
420                                     .addComponent(jLabel12)
421                                     .addComponent(followerLabel))
422                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
423                                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
424                                     .addComponent(jLabel13)
425                                     .addComponent(updateLabel))))
426                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
427                         .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
428                             .addComponent(jScrollPane8, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
429                             .addComponent(jScrollPane7, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)))
430                     .addComponent(jScrollPane6, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE))
431                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
432         );
433
434         jPanel2.setBorder(javax.swing.BorderFactory.createEtchedBorder());
435
436         statusBar.setText("Status");
437         statusBar.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
438             public void propertyChange(java.beans.PropertyChangeEvent evt) {
439                 statusBarPropertyChange(evt);
440             }
441         });
442
443         javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
444         jPanel2.setLayout(jPanel2Layout);
445         jPanel2Layout.setHorizontalGroup(
446             jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
447             .addComponent(statusBar, javax.swing.GroupLayout.PREFERRED_SIZE, 707, javax.swing.GroupLayout.PREFERRED_SIZE)
448         );
449         jPanel2Layout.setVerticalGroup(
450             jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
451             .addComponent(statusBar, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 20, Short.MAX_VALUE)
452         );
453
454         jToolBar1.setRollover(true);
455
456         jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/toolbarButtonGraphics/general/Refresh24.gif"))); // NOI18N
457         jButton1.setToolTipText("今すぐ更新");
458         jButton1.setFocusable(false);
459         jButton1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
460         jButton1.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
461         jButton1.addActionListener(new java.awt.event.ActionListener() {
462             public void actionPerformed(java.awt.event.ActionEvent evt) {
463                 jButton1ActionPerformed(evt);
464             }
465         });
466         jToolBar1.add(jButton1);
467         jToolBar1.add(jSeparator1);
468
469         jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/toolbarButtonGraphics/general/Find24.gif"))); // NOI18N
470         jButton2.setFocusable(false);
471         jButton2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
472         jButton2.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
473         jButton2.addActionListener(new java.awt.event.ActionListener() {
474             public void actionPerformed(java.awt.event.ActionEvent evt) {
475                 jButton2ActionPerformed(evt);
476             }
477         });
478         jToolBar1.add(jButton2);
479         jToolBar1.add(jSeparator2);
480
481         jToggleButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resource/syousai.PNG"))); // NOI18N
482         jToggleButton1.setSelected(true);
483         jToggleButton1.setFocusable(false);
484         jToggleButton1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
485         jToggleButton1.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
486         jToggleButton1.addActionListener(new java.awt.event.ActionListener() {
487             public void actionPerformed(java.awt.event.ActionEvent evt) {
488                 jToggleButton1ActionPerformed(evt);
489             }
490         });
491         jToolBar1.add(jToggleButton1);
492
493         jToggleButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resource/write.PNG"))); // NOI18N
494         jToggleButton2.setSelected(true);
495         jToggleButton2.setFocusable(false);
496         jToggleButton2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
497         jToggleButton2.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
498         jToggleButton2.addActionListener(new java.awt.event.ActionListener() {
499             public void actionPerformed(java.awt.event.ActionEvent evt) {
500                 jToggleButton2ActionPerformed(evt);
501             }
502         });
503         jToolBar1.add(jToggleButton2);
504         jToolBar1.add(jSeparator3);
505
506         jToggleButton3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resource/timeline.PNG"))); // NOI18N
507         jToggleButton3.setSelected(true);
508         jToggleButton3.setFocusable(false);
509         jToggleButton3.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
510         jToggleButton3.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
511         jToggleButton3.addActionListener(new java.awt.event.ActionListener() {
512             public void actionPerformed(java.awt.event.ActionEvent evt) {
513                 jToggleButton3ActionPerformed(evt);
514             }
515         });
516         jToolBar1.add(jToggleButton3);
517
518         jToggleButton4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resource/mention.PNG"))); // NOI18N
519         jToggleButton4.setFocusable(false);
520         jToggleButton4.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
521         jToggleButton4.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
522         jToggleButton4.addActionListener(new java.awt.event.ActionListener() {
523             public void actionPerformed(java.awt.event.ActionEvent evt) {
524                 jToggleButton4ActionPerformed(evt);
525             }
526         });
527         jToolBar1.add(jToggleButton4);
528
529         jToggleButton5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resource/directmessage.PNG"))); // NOI18N
530         jToggleButton5.setFocusable(false);
531         jToggleButton5.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
532         jToggleButton5.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
533         jToggleButton5.addActionListener(new java.awt.event.ActionListener() {
534             public void actionPerformed(java.awt.event.ActionEvent evt) {
535                 jToggleButton5ActionPerformed(evt);
536             }
537         });
538         jToolBar1.add(jToggleButton5);
539
540         jToggleButton6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resource/sendMessage.PNG"))); // NOI18N
541         jToggleButton6.setFocusable(false);
542         jToggleButton6.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
543         jToggleButton6.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
544         jToggleButton6.addActionListener(new java.awt.event.ActionListener() {
545             public void actionPerformed(java.awt.event.ActionEvent evt) {
546                 jToggleButton6ActionPerformed(evt);
547             }
548         });
549         jToolBar1.add(jToggleButton6);
550
551         jScrollPane9.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
552         jScrollPane9.setMaximumSize(new java.awt.Dimension(32767, 80));
553         jScrollPane9.setMinimumSize(new java.awt.Dimension(26, 80));
554
555         jTextPane.setMaximumSize(new java.awt.Dimension(2147483647, 20));
556         jTextPane.addCaretListener(new javax.swing.event.CaretListener() {
557             public void caretUpdate(javax.swing.event.CaretEvent evt) {
558                 jTextPaneCaretUpdate(evt);
559             }
560         });
561         jTextPane.addFocusListener(new java.awt.event.FocusAdapter() {
562             public void focusGained(java.awt.event.FocusEvent evt) {
563                 jTextPaneFocusGained(evt);
564             }
565             public void focusLost(java.awt.event.FocusEvent evt) {
566                 jTextPaneFocusLost(evt);
567             }
568         });
569         jTextPane.addKeyListener(new java.awt.event.KeyAdapter() {
570             public void keyReleased(java.awt.event.KeyEvent evt) {
571                 jTextPaneKeyReleased(evt);
572             }
573         });
574         jScrollPane9.setViewportView(jTextPane);
575
576         jButton4.setText("つぶやく");
577         jButton4.addActionListener(new java.awt.event.ActionListener() {
578             public void actionPerformed(java.awt.event.ActionEvent evt) {
579                 jButton4ActionPerformed(evt);
580             }
581         });
582
583         tweetLengthLabel.setText("140");
584
585         jLabel15.setText("残り文字数");
586
587         javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
588         jPanel3.setLayout(jPanel3Layout);
589         jPanel3Layout.setHorizontalGroup(
590             jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
591             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
592                 .addComponent(jScrollPane9, javax.swing.GroupLayout.DEFAULT_SIZE, 529, Short.MAX_VALUE)
593                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
594                 .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
595                     .addComponent(jLabel15)
596                     .addComponent(tweetLengthLabel))
597                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
598                 .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE)
599                 .addContainerGap())
600         );
601         jPanel3Layout.setVerticalGroup(
602             jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
603             .addGroup(jPanel3Layout.createSequentialGroup()
604                 .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
605                     .addComponent(jButton4, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 32, Short.MAX_VALUE)
606                     .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel3Layout.createSequentialGroup()
607                         .addComponent(jLabel15)
608                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
609                         .addComponent(tweetLengthLabel)))
610                 .addGap(48, 48, 48))
611             .addGroup(jPanel3Layout.createSequentialGroup()
612                 .addComponent(jScrollPane9, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)
613                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
614         );
615
616         jMenu1.setMnemonic('F');
617         /*
618         org.openide.awt.Mnemonics.setLocalizedText(jMenu1, "ファイル(F)");
619         */
620         jMenu1.setText("ファイル(F)");
621
622         jMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Q, java.awt.event.InputEvent.CTRL_MASK));
623         jMenuItem1.setMnemonic('X');
624         jMenuItem1.setText("終了(X)");
625         jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
626             public void actionPerformed(java.awt.event.ActionEvent evt) {
627                 jMenuItem1ActionPerformed(evt);
628             }
629         });
630         jMenu1.add(jMenuItem1);
631
632         jMenuBar1.add(jMenu1);
633
634         jMenu6.setMnemonic('O');
635         jMenu6.setText("操作(O)");
636
637         jMenuItem10.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F5, 0));
638         jMenuItem10.setMnemonic('U');
639         jMenuItem10.setText("今すぐ更新(U)");
640         jMenuItem10.addActionListener(new java.awt.event.ActionListener() {
641             public void actionPerformed(java.awt.event.ActionEvent evt) {
642                 jMenuItem10ActionPerformed(evt);
643             }
644         });
645         jMenu6.add(jMenuItem10);
646
647         jMenuItem7.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F5, java.awt.event.InputEvent.CTRL_MASK));
648         jMenuItem7.setMnemonic('A');
649         jMenuItem7.setText("すべての情報を今すぐ更新(A)");
650         jMenuItem7.addActionListener(new java.awt.event.ActionListener() {
651             public void actionPerformed(java.awt.event.ActionEvent evt) {
652                 jMenuItem7ActionPerformed(evt);
653             }
654         });
655         jMenu6.add(jMenuItem7);
656
657         jMenuItem8.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F5, java.awt.event.InputEvent.ALT_MASK));
658         jMenuItem8.setMnemonic('I');
659         jMenuItem8.setText("時間情報を更新(I)");
660         jMenuItem8.addActionListener(new java.awt.event.ActionListener() {
661             public void actionPerformed(java.awt.event.ActionEvent evt) {
662                 jMenuItem8ActionPerformed(evt);
663             }
664         });
665         jMenu6.add(jMenuItem8);
666         jMenu6.add(jSeparator4);
667
668         jMenuItem11.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, java.awt.event.InputEvent.CTRL_MASK));
669         jMenuItem11.setMnemonic('R');
670         jMenuItem11.setText("発言に返信(Reply)");
671         jMenuItem11.addActionListener(new java.awt.event.ActionListener() {
672             public void actionPerformed(java.awt.event.ActionEvent evt) {
673                 jMenuItem11ActionPerformed(evt);
674             }
675         });
676         jMenu6.add(jMenuItem11);
677
678         jMenuItem12.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
679         jMenuItem12.setMnemonic('A');
680         jMenuItem12.setText("発言に返信(Reply All)");
681         jMenuItem12.addActionListener(new java.awt.event.ActionListener() {
682             public void actionPerformed(java.awt.event.ActionEvent evt) {
683                 jMenuItem12ActionPerformed(evt);
684             }
685         });
686         jMenu6.add(jMenuItem12);
687
688         jMenuItem13.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.CTRL_MASK));
689         jMenuItem13.setMnemonic('T');
690         jMenuItem13.setText("発言を公式リツイート(RT)");
691         jMenuItem13.addActionListener(new java.awt.event.ActionListener() {
692             public void actionPerformed(java.awt.event.ActionEvent evt) {
693                 jMenuItem13ActionPerformed(evt);
694             }
695         });
696         jMenu6.add(jMenuItem13);
697
698         jMenuItem15.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
699         jMenuItem15.setText("発言をコメント付リツイート(非公式RT)");
700         jMenuItem15.addActionListener(new java.awt.event.ActionListener() {
701             public void actionPerformed(java.awt.event.ActionEvent evt) {
702                 jMenuItem15ActionPerformed(evt);
703             }
704         });
705         jMenu6.add(jMenuItem15);
706
707         jMenuItem14.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Q, java.awt.event.InputEvent.CTRL_MASK));
708         jMenuItem14.setMnemonic('Q');
709         jMenuItem14.setText("発言を引用ツイート(QT)");
710         jMenuItem14.addActionListener(new java.awt.event.ActionListener() {
711             public void actionPerformed(java.awt.event.ActionEvent evt) {
712                 jMenuItem14ActionPerformed(evt);
713             }
714         });
715         jMenu6.add(jMenuItem14);
716
717         jMenuItem16.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_D, java.awt.event.InputEvent.CTRL_MASK));
718         jMenuItem16.setMnemonic('D');
719         jMenuItem16.setText("ダイレクトメッセージを送信(D)");
720         jMenuItem16.addActionListener(new java.awt.event.ActionListener() {
721             public void actionPerformed(java.awt.event.ActionEvent evt) {
722                 jMenuItem16ActionPerformed(evt);
723             }
724         });
725         jMenu6.add(jMenuItem16);
726         jMenu6.add(jSeparator5);
727
728         jMenuItem17.setText("選択した発言をブラウザで開く");
729         jMenuItem17.addActionListener(new java.awt.event.ActionListener() {
730             public void actionPerformed(java.awt.event.ActionEvent evt) {
731                 jMenuItem17ActionPerformed(evt);
732             }
733         });
734         jMenu6.add(jMenuItem17);
735
736         jMenuItem18.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));
737         jMenuItem18.setMnemonic('S');
738         jMenuItem18.setText("選択したユーザの発言を別タブで開く(S)");
739         jMenuItem18.addActionListener(new java.awt.event.ActionListener() {
740             public void actionPerformed(java.awt.event.ActionEvent evt) {
741                 jMenuItem18ActionPerformed(evt);
742             }
743         });
744         jMenu6.add(jMenuItem18);
745
746         jMenuItem21.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_B, java.awt.event.InputEvent.CTRL_MASK));
747         jMenuItem21.setMnemonic('B');
748         jMenuItem21.setText("選択したユーザの発言をブラウザで開く(B)");
749         jMenuItem21.addActionListener(new java.awt.event.ActionListener() {
750             public void actionPerformed(java.awt.event.ActionEvent evt) {
751                 jMenuItem21ActionPerformed(evt);
752             }
753         });
754         jMenu6.add(jMenuItem21);
755
756         jMenuItem35.setText("選択したユーザがフォローしているユーザ一覧を開く");
757         jMenuItem35.addActionListener(new java.awt.event.ActionListener() {
758             public void actionPerformed(java.awt.event.ActionEvent evt) {
759                 jMenuItem35ActionPerformed(evt);
760             }
761         });
762         jMenu6.add(jMenuItem35);
763
764         jMenuItem36.setText("選択したユーザがフォローされているユーザ一覧を開く");
765         jMenuItem36.addActionListener(new java.awt.event.ActionListener() {
766             public void actionPerformed(java.awt.event.ActionEvent evt) {
767                 jMenuItem36ActionPerformed(evt);
768             }
769         });
770         jMenu6.add(jMenuItem36);
771         jMenu6.add(jSeparator6);
772
773         jMenuItem30.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
774         jMenuItem30.setText("自分のお気に入りを開く");
775         jMenuItem30.addActionListener(new java.awt.event.ActionListener() {
776             public void actionPerformed(java.awt.event.ActionEvent evt) {
777                 jMenuItem30ActionPerformed(evt);
778             }
779         });
780         jMenu6.add(jMenuItem30);
781
782         jMenuItem22.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_MASK));
783         jMenuItem22.setText("選択したユーザのお気に入りを開く");
784         jMenuItem22.addActionListener(new java.awt.event.ActionListener() {
785             public void actionPerformed(java.awt.event.ActionEvent evt) {
786                 jMenuItem22ActionPerformed(evt);
787             }
788         });
789         jMenu6.add(jMenuItem22);
790
791         jMenuItem19.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK));
792         jMenuItem19.setMnemonic('F');
793         jMenuItem19.setText("選択した発言をお気に入りに追加(F)");
794         jMenuItem19.addActionListener(new java.awt.event.ActionListener() {
795             public void actionPerformed(java.awt.event.ActionEvent evt) {
796                 jMenuItem19ActionPerformed(evt);
797             }
798         });
799         jMenu6.add(jMenuItem19);
800
801         jMenuItem20.setText("選択した発言をお気に入りから削除");
802         jMenuItem20.addActionListener(new java.awt.event.ActionListener() {
803             public void actionPerformed(java.awt.event.ActionEvent evt) {
804                 jMenuItem20ActionPerformed(evt);
805             }
806         });
807         jMenu6.add(jMenuItem20);
808
809         jMenuItem33.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
810         jMenuItem33.setMnemonic('C');
811         jMenuItem33.setText("つぶやき内のURLをbit.ly短縮URLに変換(C)");
812         jMenuItem33.addActionListener(new java.awt.event.ActionListener() {
813             public void actionPerformed(java.awt.event.ActionEvent evt) {
814                 jMenuItem33ActionPerformed(evt);
815             }
816         });
817         jMenu6.add(jMenuItem33);
818
819         jMenuBar1.add(jMenu6);
820
821         jMenu4.setMnemonic('V');
822         jMenu4.setText("表示(V)");
823
824         jMenuItem5.setMnemonic('D');
825         jMenuItem5.setText("選択しているタブを削除(D)");
826         jMenuItem5.addActionListener(new java.awt.event.ActionListener() {
827             public void actionPerformed(java.awt.event.ActionEvent evt) {
828                 jMenuItem5ActionPerformed(evt);
829             }
830         });
831         jMenu4.add(jMenuItem5);
832
833         jCheckBoxMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_I, java.awt.event.InputEvent.CTRL_MASK));
834         jCheckBoxMenuItem1.setMnemonic('I');
835         jCheckBoxMenuItem1.setSelected(true);
836         jCheckBoxMenuItem1.setText("詳細情報ボタンの表示(I)");
837         jCheckBoxMenuItem1.addActionListener(new java.awt.event.ActionListener() {
838             public void actionPerformed(java.awt.event.ActionEvent evt) {
839                 jCheckBoxMenuItem1ActionPerformed(evt);
840             }
841         });
842         jMenu4.add(jCheckBoxMenuItem1);
843
844         jCheckBoxMenuItem2.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_W, java.awt.event.InputEvent.CTRL_MASK));
845         jCheckBoxMenuItem2.setMnemonic('W');
846         jCheckBoxMenuItem2.setSelected(true);
847         jCheckBoxMenuItem2.setText("書き込みボタンの表示(W)");
848         jCheckBoxMenuItem2.addActionListener(new java.awt.event.ActionListener() {
849             public void actionPerformed(java.awt.event.ActionEvent evt) {
850                 jCheckBoxMenuItem2ActionPerformed(evt);
851             }
852         });
853         jMenu4.add(jCheckBoxMenuItem2);
854
855         jCheckBoxMenuItem3.setSelected(true);
856         jCheckBoxMenuItem3.setText("Timelineタブを表示");
857         jCheckBoxMenuItem3.addActionListener(new java.awt.event.ActionListener() {
858             public void actionPerformed(java.awt.event.ActionEvent evt) {
859                 jCheckBoxMenuItem3ActionPerformed(evt);
860             }
861         });
862         jMenu4.add(jCheckBoxMenuItem3);
863
864         jCheckBoxMenuItem4.setSelected(true);
865         jCheckBoxMenuItem4.setText("Mentionタブを表示");
866         jCheckBoxMenuItem4.addActionListener(new java.awt.event.ActionListener() {
867             public void actionPerformed(java.awt.event.ActionEvent evt) {
868                 jCheckBoxMenuItem4ActionPerformed(evt);
869             }
870         });
871         jMenu4.add(jCheckBoxMenuItem4);
872
873         jCheckBoxMenuItem5.setSelected(true);
874         jCheckBoxMenuItem5.setText("ダイレクトメッセージタブを表示");
875         jCheckBoxMenuItem5.addActionListener(new java.awt.event.ActionListener() {
876             public void actionPerformed(java.awt.event.ActionEvent evt) {
877                 jCheckBoxMenuItem5ActionPerformed(evt);
878             }
879         });
880         jMenu4.add(jCheckBoxMenuItem5);
881
882         jCheckBoxMenuItem6.setSelected(true);
883         jCheckBoxMenuItem6.setText("送信済みメッセージタブの表示");
884         jCheckBoxMenuItem6.addActionListener(new java.awt.event.ActionListener() {
885             public void actionPerformed(java.awt.event.ActionEvent evt) {
886                 jCheckBoxMenuItem6ActionPerformed(evt);
887             }
888         });
889         jMenu4.add(jCheckBoxMenuItem6);
890
891         jMenuItem9.setText("Debug");
892         jMenuItem9.addActionListener(new java.awt.event.ActionListener() {
893             public void actionPerformed(java.awt.event.ActionEvent evt) {
894                 jMenuItem9ActionPerformed(evt);
895             }
896         });
897         jMenu4.add(jMenuItem9);
898
899         jMenuBar1.add(jMenu4);
900
901         jMenu5.setMnemonic('S');
902         jMenu5.setText("検索(S)");
903
904         jMenuItem6.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F, java.awt.event.InputEvent.CTRL_MASK));
905         jMenuItem6.setMnemonic('A');
906         jMenuItem6.setText("キーワードでTwitter全体を検索(A)");
907         jMenuItem6.addActionListener(new java.awt.event.ActionListener() {
908             public void actionPerformed(java.awt.event.ActionEvent evt) {
909                 jMenuItem6ActionPerformed(evt);
910             }
911         });
912         jMenu5.add(jMenuItem6);
913
914         jMenuItem23.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_H, java.awt.event.InputEvent.CTRL_MASK));
915         jMenuItem23.setMnemonic('K');
916         jMenuItem23.setText("キーワードに関連するハッシュタグを検索(K)");
917         jMenuItem23.addActionListener(new java.awt.event.ActionListener() {
918             public void actionPerformed(java.awt.event.ActionEvent evt) {
919                 jMenuItem23ActionPerformed(evt);
920             }
921         });
922         jMenu5.add(jMenuItem23);
923
924         jMenuItem31.setMnemonic('U');
925         jMenuItem31.setText("指定したユーザを検索(U)");
926         jMenuItem31.addActionListener(new java.awt.event.ActionListener() {
927             public void actionPerformed(java.awt.event.ActionEvent evt) {
928                 jMenuItem31ActionPerformed(evt);
929             }
930         });
931         jMenu5.add(jMenuItem31);
932
933         jMenuItem34.setText("指定したユーザのFollowing/Followerを表示");
934         jMenuItem34.addActionListener(new java.awt.event.ActionListener() {
935             public void actionPerformed(java.awt.event.ActionEvent evt) {
936                 jMenuItem34ActionPerformed(evt);
937             }
938         });
939         jMenu5.add(jMenuItem34);
940
941         jMenuBar1.add(jMenu5);
942
943         jMenu7.setMnemonic('L');
944         jMenu7.setText("リスト(L)");
945
946         jMenuItem25.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.CTRL_MASK));
947         jMenuItem25.setMnemonic('C');
948         jMenuItem25.setText("自分が作成したリスト一覧(C)");
949         jMenuItem25.addActionListener(new java.awt.event.ActionListener() {
950             public void actionPerformed(java.awt.event.ActionEvent evt) {
951                 jMenuItem25ActionPerformed(evt);
952             }
953         });
954         jMenu7.add(jMenuItem25);
955
956         jMenuItem24.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.ALT_MASK));
957         jMenuItem24.setMnemonic('S');
958         jMenuItem24.setText("購読しているリスト一覧(S)");
959         jMenuItem24.addActionListener(new java.awt.event.ActionListener() {
960             public void actionPerformed(java.awt.event.ActionEvent evt) {
961                 jMenuItem24ActionPerformed(evt);
962             }
963         });
964         jMenu7.add(jMenuItem24);
965
966         jMenuItem26.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
967         jMenuItem26.setMnemonic('F');
968         jMenuItem26.setText("自分がフォローされているリスト一覧(F)");
969         jMenuItem26.addActionListener(new java.awt.event.ActionListener() {
970             public void actionPerformed(java.awt.event.ActionEvent evt) {
971                 jMenuItem26ActionPerformed(evt);
972             }
973         });
974         jMenu7.add(jMenuItem26);
975         jMenu7.add(jSeparator7);
976
977         jMenuItem27.setText("選択したユーザが作成したリスト一覧");
978         jMenuItem27.addActionListener(new java.awt.event.ActionListener() {
979             public void actionPerformed(java.awt.event.ActionEvent evt) {
980                 jMenuItem27ActionPerformed(evt);
981             }
982         });
983         jMenu7.add(jMenuItem27);
984
985         jMenuItem28.setText("選択したユーザが購読しているリスト一覧");
986         jMenuItem28.addActionListener(new java.awt.event.ActionListener() {
987             public void actionPerformed(java.awt.event.ActionEvent evt) {
988                 jMenuItem28ActionPerformed(evt);
989             }
990         });
991         jMenu7.add(jMenuItem28);
992
993         jMenuItem29.setText("選択したユーザがフォローされているリスト一覧");
994         jMenuItem29.addActionListener(new java.awt.event.ActionListener() {
995             public void actionPerformed(java.awt.event.ActionEvent evt) {
996                 jMenuItem29ActionPerformed(evt);
997             }
998         });
999         jMenu7.add(jMenuItem29);
1000
1001         jMenuBar1.add(jMenu7);
1002
1003         jMenu2.setMnemonic('O');
1004         jMenu2.setText("設定(O)");
1005
1006         jMenuItem2.setText("基本設定");
1007         jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
1008             public void actionPerformed(java.awt.event.ActionEvent evt) {
1009                 jMenuItem2ActionPerformed(evt);
1010             }
1011         });
1012         jMenu2.add(jMenuItem2);
1013
1014         jMenuItem4.setText("アカウント設定");
1015         jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
1016             public void actionPerformed(java.awt.event.ActionEvent evt) {
1017                 jMenuItem4ActionPerformed(evt);
1018             }
1019         });
1020         jMenu2.add(jMenuItem4);
1021
1022         jMenuBar1.add(jMenu2);
1023
1024         jMenu8.setMnemonic('M');
1025         jMenu8.setText("ログ管理(M)");
1026
1027         logSaveCheckItem.setSelected(true);
1028         logSaveCheckItem.setText("タイムラインをログとして保存する");
1029         logSaveCheckItem.addActionListener(new java.awt.event.ActionListener() {
1030             public void actionPerformed(java.awt.event.ActionEvent evt) {
1031                 logSaveCheckItemActionPerformed(evt);
1032             }
1033         });
1034         jMenu8.add(logSaveCheckItem);
1035
1036         jMenuItem32.setText("ログをCSV形式として保存");
1037         jMenuItem32.addActionListener(new java.awt.event.ActionListener() {
1038             public void actionPerformed(java.awt.event.ActionEvent evt) {
1039                 jMenuItem32ActionPerformed(evt);
1040             }
1041         });
1042         jMenu8.add(jMenuItem32);
1043
1044         jMenuBar1.add(jMenu8);
1045
1046         jMenu3.setMnemonic('H');
1047         jMenu3.setText("ヘルプ(H)");
1048
1049         jMenuItem3.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F1, 0));
1050         jMenuItem3.setText("このプログラムについて");
1051         jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
1052             public void actionPerformed(java.awt.event.ActionEvent evt) {
1053                 jMenuItem3ActionPerformed(evt);
1054             }
1055         });
1056         jMenu3.add(jMenuItem3);
1057
1058         jMenuBar1.add(jMenu3);
1059
1060         setJMenuBar(jMenuBar1);
1061
1062         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
1063         getContentPane().setLayout(layout);
1064         layout.setHorizontalGroup(
1065             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1066             .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, 721, Short.MAX_VALUE)
1067             .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
1068             .addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, 721, Short.MAX_VALUE)
1069             .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
1070             .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 721, Short.MAX_VALUE)
1071         );
1072         layout.setVerticalGroup(
1073             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1074             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
1075                 .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 321, Short.MAX_VALUE)
1076                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1077                 .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
1078                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1079                 .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
1080                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1081                 .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, 58, javax.swing.GroupLayout.PREFERRED_SIZE)
1082                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1083                 .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
1084         );
1085
1086         pack();
1087     }// </editor-fold>//GEN-END:initComponents
1088
1089         private void jMenuItem31ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem31ActionPerformed
1090             mainAction.actionShowUserSearchDialog();
1091         }//GEN-LAST:event_jMenuItem31ActionPerformed
1092
1093         private void jMenuItem32ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem32ActionPerformed
1094             mainAction.actionShowOutputCSVLogDialog();
1095         }//GEN-LAST:event_jMenuItem32ActionPerformed
1096
1097         private void jMenuItem33ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem33ActionPerformed
1098             mainAction.actionConvertTweetBoxURLToBitly();
1099         }//GEN-LAST:event_jMenuItem33ActionPerformed
1100
1101         private void jMenuItem34ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem34ActionPerformed
1102             mainAction.actionShowFollowingFollowerDialog();
1103         }//GEN-LAST:event_jMenuItem34ActionPerformed
1104
1105         private void jMenuItem35ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem35ActionPerformed
1106             mainAction.actionOpenFollowing();
1107         }//GEN-LAST:event_jMenuItem35ActionPerformed
1108
1109         private void jMenuItem36ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem36ActionPerformed
1110             mainAction.actionOpenFollower();
1111         }//GEN-LAST:event_jMenuItem36ActionPerformed
1112
1113 private void logSaveCheckItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_logSaveCheckItemActionPerformed
1114     mainAction.setSaveLog(this.logSaveCheckItem.getState());
1115         try {
1116             mainAction.saveProperties();
1117         } catch (IOException ex) {
1118             Logger.getLogger(NishioTweetManager.class.getName()).log(Level.SEVERE, null, ex);
1119         }
1120 }//GEN-LAST:event_logSaveCheckItemActionPerformed
1121
1122         private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jButton4ActionPerformed
1123                 // メッセージをつぶやく
1124                 mainAction.actionTweet();
1125                 updateLen();
1126         }// GEN-LAST:event_jButton4ActionPerformed
1127
1128         private void tweetMessageBoxComponentResized(
1129                         java.awt.event.ComponentEvent evt) {// GEN-FIRST:event_tweetMessageBoxComponentResized
1130         }// GEN-LAST:event_tweetMessageBoxComponentResized
1131
1132         private void jTextPaneKeyReleased(java.awt.event.KeyEvent evt) {// GEN-FIRST:event_jTextPaneKeyReleased
1133                 // 残りつぶやける文字数情報を更新
1134                 mainAction.actionUpdateTweetMessageCount();
1135         }// GEN-LAST:event_jTextPaneKeyReleased
1136
1137         private void jTextPaneFocusGained(java.awt.event.FocusEvent evt) {// GEN-FIRST:event_jTextPaneFocusGained
1138                 updateLen();
1139         }// GEN-LAST:event_jTextPaneFocusGained
1140
1141         private void jTextPaneFocusLost(java.awt.event.FocusEvent evt) {// GEN-FIRST:event_jTextPaneFocusLost
1142                 updateLen();
1143         }// GEN-LAST:event_jTextPaneFocusLost
1144
1145         private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem1ActionPerformed
1146                 // 終了動作
1147                 mainAction.actionExitButton(evt);
1148         }// GEN-LAST:event_jMenuItem1ActionPerformed
1149
1150         private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem2ActionPerformed
1151                 // 基本設定ダイアログを開く
1152                 mainAction.actionBasicSettingDialog();
1153         }// GEN-LAST:event_jMenuItem2ActionPerformed
1154
1155         private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem3ActionPerformed
1156                 mainAction.actionShowAboutDialog();
1157         }// GEN-LAST:event_jMenuItem3ActionPerformed
1158
1159         private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem4ActionPerformed
1160                 mainAction.actionShowAccountDialog();
1161         }// GEN-LAST:event_jMenuItem4ActionPerformed
1162
1163         private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem5ActionPerformed
1164                 // 選択しているタブを削除
1165                 mainAction.actionRemoveFocusedTabbedTable();
1166         }// GEN-LAST:event_jMenuItem5ActionPerformed
1167
1168         private void jMenuItem6ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem6ActionPerformed
1169                 this.mainAction.actionShowKeywordSearchDialog();
1170         }// GEN-LAST:event_jMenuItem6ActionPerformed
1171
1172         private void jMenuItem7ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem7ActionPerformed
1173                 mainAction.actionUpdateButton(evt);
1174                 // いますぐ更新ボタンを押したので,更新タイムを一度リセットする
1175                 // mainAction.resetTweetAutoUpdate();
1176         }// GEN-LAST:event_jMenuItem7ActionPerformed
1177
1178         private void jMenuItem8ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem8ActionPerformed
1179                 // tweet取得時間情報を更新
1180                 mainAction.actionRefreshTime();
1181         }// GEN-LAST:event_jMenuItem8ActionPerformed
1182
1183         private void jMenuItem9ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem9ActionPerformed
1184                 mainAction.debug();
1185         }// GEN-LAST:event_jMenuItem9ActionPerformed
1186
1187         private void jTextPaneCaretUpdate(javax.swing.event.CaretEvent evt) {// GEN-FIRST:event_jTextPaneCaretUpdate
1188                 // TODO add your handling code here:
1189         }// GEN-LAST:event_jTextPaneCaretUpdate
1190
1191         private void statusBarPropertyChange(java.beans.PropertyChangeEvent evt) {// GEN-FIRST:event_statusBarPropertyChange
1192
1193         }// GEN-LAST:event_statusBarPropertyChange
1194
1195         private void jMenuItem10ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem10ActionPerformed
1196                 // フォーカスのあるタブだけ更新
1197                 mainAction.actionFocusedTableUpdate();
1198         }// GEN-LAST:event_jMenuItem10ActionPerformed
1199
1200         private void jCheckBoxMenuItem1ActionPerformed(
1201                         java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jCheckBoxMenuItem1ActionPerformed
1202                 // 詳細情報ボタンを押した時の動作
1203                 mainAction.actionDetailInfoButton(evt);
1204                 jCheckBoxMenuItem1.setSelected(mainAction.isDetailInfoPanelVisible());
1205                 jToggleButton1.setSelected(mainAction.isDetailInfoPanelVisible());
1206         }// GEN-LAST:event_jCheckBoxMenuItem1ActionPerformed
1207
1208         private void jCheckBoxMenuItem2ActionPerformed(
1209                         java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jCheckBoxMenuItem2ActionPerformed
1210                 // 書き込みボタン表示
1211                 mainAction.actionShowTweetboxButton(evt);
1212                 this.invalidate();
1213                 this.validate();
1214
1215                 jCheckBoxMenuItem2.setSelected(mainAction.isShowTweetBoxVisible());
1216                 jToggleButton2.setSelected(mainAction.isShowTweetBoxVisible());
1217         }// GEN-LAST:event_jCheckBoxMenuItem2ActionPerformed
1218
1219         private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jButton1ActionPerformed
1220                 jMenuItem10ActionPerformed(evt);
1221         }// GEN-LAST:event_jButton1ActionPerformed
1222
1223         private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jButton2ActionPerformed
1224                 jMenuItem6ActionPerformed(evt);
1225         }// GEN-LAST:event_jButton2ActionPerformed
1226
1227         private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jToggleButton1ActionPerformed
1228                 jCheckBoxMenuItem1ActionPerformed(evt);
1229         }// GEN-LAST:event_jToggleButton1ActionPerformed
1230
1231         private void jToggleButton2ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jToggleButton2ActionPerformed
1232                 jCheckBoxMenuItem2ActionPerformed(evt);
1233         }// GEN-LAST:event_jToggleButton2ActionPerformed
1234
1235         private void jCheckBoxMenuItem3ActionPerformed(
1236                         java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jCheckBoxMenuItem3ActionPerformed
1237                 if (mainAction.isExistTimelineTab()) {
1238                         // タイムラインタブを削除
1239                         mainAction.actionRemoveTabbedTable(TimerID.createTimelineID());
1240                         jCheckBoxMenuItem3.setSelected(false);
1241                         jToggleButton3.setSelected(false);
1242                 } else {
1243                         // タイムラインタブを追加
1244                         mainAction.actionAddTimelineTab(mainAction.getGetTimelinePeriod());
1245                         jCheckBoxMenuItem3.setSelected(true);
1246                         jToggleButton3.setSelected(true);
1247                 }
1248         }// GEN-LAST:event_jCheckBoxMenuItem3ActionPerformed
1249
1250         private void jToggleButton3ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jToggleButton3ActionPerformed
1251                 jCheckBoxMenuItem3ActionPerformed(evt);
1252         }// GEN-LAST:event_jToggleButton3ActionPerformed
1253
1254         private void jTabbedPane1ComponentRemoved(java.awt.event.ContainerEvent evt) {// GEN-FIRST:event_jTabbedPane1ComponentRemoved
1255
1256         }// GEN-LAST:event_jTabbedPane1ComponentRemoved
1257
1258         private void jCheckBoxMenuItem4ActionPerformed(
1259                         java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jCheckBoxMenuItem4ActionPerformed
1260                 if (mainAction.isExistMentionTab()) {
1261                         // mentionタブを削除
1262                         mainAction.actionRemoveTabbedTable(TimerID.createMentionID());
1263                         jCheckBoxMenuItem4.setSelected(false);
1264                         jToggleButton4.setSelected(false);
1265                 } else {
1266                         // mentionタブを追加
1267                         mainAction.actionAddMentionTab(mainAction.getGetMentionPeriod());
1268                         jCheckBoxMenuItem4.setSelected(true);
1269                         jToggleButton4.setSelected(true);
1270                 }
1271         }// GEN-LAST:event_jCheckBoxMenuItem4ActionPerformed
1272
1273         private void jCheckBoxMenuItem5ActionPerformed(
1274                         java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jCheckBoxMenuItem5ActionPerformed
1275                 if (mainAction.isExistDirectMessageTab()) {
1276                         // dmタブを削除
1277                         mainAction.actionRemoveTabbedTable(TimerID.createDirectMessageID());
1278                         jCheckBoxMenuItem5.setSelected(false);
1279                         jToggleButton5.setSelected(false);
1280                 } else {
1281                         // dmタブを追加
1282                         mainAction.actionAddDirectMessageTab(mainAction
1283                                         .getGetDirectMessagePeriod());
1284                         jCheckBoxMenuItem5.setSelected(true);
1285                         jToggleButton5.setSelected(true);
1286                 }
1287         }// GEN-LAST:event_jCheckBoxMenuItem5ActionPerformed
1288
1289         private void jCheckBoxMenuItem6ActionPerformed(
1290                         java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jCheckBoxMenuItem6ActionPerformed
1291                 if (mainAction.isExistSendDirectMessageTab()) {
1292                         // タイムラインタブを削除
1293                         mainAction.actionRemoveTabbedTable(TimerID
1294                                         .createSendDirectMessageID());
1295                         jCheckBoxMenuItem6.setSelected(false);
1296                         jToggleButton6.setSelected(false);
1297                 } else {
1298                         // タイムラインタブを追加
1299                         mainAction.actionAddSendDirectMessageTab(mainAction
1300                                         .getGetSendDirectMessagePeriod());
1301                         jCheckBoxMenuItem6.setSelected(true);
1302                         jToggleButton6.setSelected(true);
1303                 }
1304         }// GEN-LAST:event_jCheckBoxMenuItem6ActionPerformed
1305
1306         private void jToggleButton4ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jToggleButton4ActionPerformed
1307                 jCheckBoxMenuItem4ActionPerformed(evt);
1308         }// GEN-LAST:event_jToggleButton4ActionPerformed
1309
1310         private void jToggleButton5ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jToggleButton5ActionPerformed
1311                 jCheckBoxMenuItem5ActionPerformed(evt);
1312         }// GEN-LAST:event_jToggleButton5ActionPerformed
1313
1314         private void jToggleButton6ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jToggleButton6ActionPerformed
1315                 jCheckBoxMenuItem6ActionPerformed(evt);
1316         }// GEN-LAST:event_jToggleButton6ActionPerformed
1317
1318         private void jMenuItem11ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem11ActionPerformed
1319                 // reply
1320                 this.mainAction.actionSetReplyStatusToTweetBoxPane();
1321         }// GEN-LAST:event_jMenuItem11ActionPerformed
1322
1323         private void jMenuItem12ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem12ActionPerformed
1324                 // reply all
1325                 this.mainAction.actionSetReplyAllStatusToTweetBoxPane();
1326         }// GEN-LAST:event_jMenuItem12ActionPerformed
1327
1328         private void jMenuItem13ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem13ActionPerformed
1329                 // official rt
1330                 this.mainAction.actionRetweet();
1331         }// GEN-LAST:event_jMenuItem13ActionPerformed
1332
1333         private void jMenuItem15ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem15ActionPerformed
1334                 this.mainAction.actionCopySelectedStatusToTweetBoxPane();
1335         }// GEN-LAST:event_jMenuItem15ActionPerformed
1336
1337         private void jMenuItem14ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem14ActionPerformed
1338                 this.mainAction.actionSetQuoteStatusToTweetBoxPane();
1339         }// GEN-LAST:event_jMenuItem14ActionPerformed
1340
1341         private void jMenuItem16ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem16ActionPerformed
1342                 this.mainAction.actionShowDirectMessageDialog();
1343         }// GEN-LAST:event_jMenuItem16ActionPerformed
1344
1345         private void jMenuItem17ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem17ActionPerformed
1346                 this.mainAction.actionOpenStatusURL();
1347         }// GEN-LAST:event_jMenuItem17ActionPerformed
1348
1349         private void jMenuItem18ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem18ActionPerformed
1350                 this.mainAction.actionSelectedUserTimeline();
1351         }// GEN-LAST:event_jMenuItem18ActionPerformed
1352
1353         private void jMenuItem21ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem21ActionPerformed
1354                 this.mainAction.actionOpenUserURL();
1355         }// GEN-LAST:event_jMenuItem21ActionPerformed
1356
1357         private void jMenuItem22ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem22ActionPerformed
1358                 this.mainAction.actionOpenUserFav();
1359         }// GEN-LAST:event_jMenuItem22ActionPerformed
1360
1361         private void jMenuItem19ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem19ActionPerformed
1362                 this.mainAction.actionCreateFavorite();
1363         }// GEN-LAST:event_jMenuItem19ActionPerformed
1364
1365         private void jMenuItem20ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem20ActionPerformed
1366                 this.mainAction.actionDestroyFavorite();
1367         }// GEN-LAST:event_jMenuItem20ActionPerformed
1368
1369         private void jMenuItem23ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem23ActionPerformed
1370                 this.mainAction.actionShowHashtagSearchDialog();
1371         }// GEN-LAST:event_jMenuItem23ActionPerformed
1372
1373         private void jMenuItem25ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem25ActionPerformed
1374                 this.mainAction.actionShowUserListDialog(mainAction.getScreenName(),
1375                                 ListGetterSelection.CREATED);
1376         }// GEN-LAST:event_jMenuItem25ActionPerformed
1377
1378         private void jMenuItem24ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem24ActionPerformed
1379                 this.mainAction.actionShowUserListDialog(mainAction.getScreenName(),
1380                                 ListGetterSelection.SUBSCRIPTION);
1381         }// GEN-LAST:event_jMenuItem24ActionPerformed
1382
1383         private void jMenuItem26ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem26ActionPerformed
1384                 this.mainAction.actionShowUserListDialog(mainAction.getScreenName(),
1385                                 ListGetterSelection.MEMBERSHIPS);
1386         }// GEN-LAST:event_jMenuItem26ActionPerformed
1387
1388         private void jMenuItem27ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem27ActionPerformed
1389                 this.mainAction.actionShowSelectedUserList(ListGetterSelection.CREATED);
1390         }// GEN-LAST:event_jMenuItem27ActionPerformed
1391
1392         private void jMenuItem28ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem28ActionPerformed
1393                 this.mainAction
1394                                 .actionShowSelectedUserList(ListGetterSelection.SUBSCRIPTION);
1395         }// GEN-LAST:event_jMenuItem28ActionPerformed
1396
1397         private void jMenuItem29ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem29ActionPerformed
1398                 this.mainAction
1399                                 .actionShowSelectedUserList(ListGetterSelection.MEMBERSHIPS);
1400         }// GEN-LAST:event_jMenuItem29ActionPerformed
1401
1402         private void jMenuItem30ActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_jMenuItem30ActionPerformed
1403                 this.mainAction.actionOpenFav();
1404         }// GEN-LAST:event_jMenuItem30ActionPerformed
1405
1406         /**
1407      *
1408      */
1409         private void updateLen() {
1410                 // 残りつぶやける文字数情報を更新
1411                 mainAction.actionUpdateTweetMessageCount();
1412         }
1413
1414         /**
1415          * @param args
1416          *            the command line arguments
1417          */
1418         public static void main(String args[]) {
1419                 java.awt.EventQueue.invokeLater(new Runnable() {
1420
1421                         @Override
1422                         public void run() {
1423                                 try {
1424                                         // UIをシステム標準のものとする
1425                                         UIManager.setLookAndFeel(UIManager
1426                                                         .getSystemLookAndFeelClassName());
1427
1428                                 } catch (Exception e) {
1429                                         e.printStackTrace();
1430                                 }
1431                                 new NishioTweetManager().setVisible(true);
1432                         }
1433                 });
1434         }
1435
1436         /**
1437          * Twitter初期化
1438          */
1439         private void init() {
1440                 // twitterログイン
1441                 boolean login = false;
1442                 try {
1443                     tweetManager = new TweetManager();
1444                     tweetManager.loginTwitter();
1445                     login = true;
1446                 } catch (Exception e) {
1447                         e.printStackTrace();
1448                 }
1449
1450                 // メインアクション初期化
1451                 mainAction = new TweetMainAction(this, tweetManager, statusBar,
1452                                 jTextPane, jPanel3, tweetLengthLabel, jPanel1, jTabbedPane1,
1453                                 tweetMessageBox, userImageLabel, userNameLabel,
1454                                 updateTimeLabel, followerLabel, followingLabel, locationLabel,
1455                                 clientNameLabel, updateLabel, userIntroBox, userWebBox,
1456                                 jToggleButton3, jToggleButton4, jToggleButton5, jToggleButton6,
1457                                 jCheckBoxMenuItem3, jCheckBoxMenuItem4, jCheckBoxMenuItem5,
1458                                 jCheckBoxMenuItem6, trayIcon);
1459                 // ハッシュタグ用のハイパーリンクリスナーにアクション登録
1460                 this.hashTagHyperlinkListener.setMainAction(mainAction);
1461                 // もしログインに失敗したら,アカウント設定画面を出す
1462                 if (login == false) {
1463                         mainAction.actionShowAccountDialog();
1464                 } else {
1465                         // TLなどを表示するタブを追加
1466                         // 自動更新も開始
1467                         //タブがひとつもないかどうか
1468                         boolean isNoTab = true;
1469                         // TL, Mention, DMのタブなどを表示するかしないかの設定を読み込んで反映するようにする
1470                         if( this.mainAction.isTempOpenedTimelineTab() ) {
1471                                 this.mainAction.actionAddTimelineTab(this.mainAction
1472                                                 .getGetTimelinePeriod());
1473                                 isNoTab = false;
1474                         }
1475                         if( this.mainAction.isTempOpenedMentionTab() ) {
1476                                 this.mainAction.actionAddMentionTab(this.mainAction
1477                                                 .getGetMentionPeriod());
1478                                 isNoTab = false;
1479                         }
1480                         if( this.mainAction.isTempOpenedDMTab() ) {
1481                                 this.mainAction.actionAddDirectMessageTab(this.mainAction
1482                                                 .getGetDirectMessagePeriod());
1483                                 isNoTab = false;
1484                         }
1485                         if( this.mainAction.isTempOpenedSendDMTab() ) {
1486                                 this.mainAction.actionAddSendDirectMessageTab(
1487                                  this.mainAction.getGetSendDirectMessagePeriod() );
1488                                 isNoTab = false;
1489                         }
1490
1491                         //タブがひとつもないとき
1492                         if( isNoTab == true ) {
1493                                 //Timelineタブを追加
1494                                 this.mainAction.actionAddTimelineTab(this.mainAction
1495                                                 .getGetTimelinePeriod());
1496                         }
1497                         // フォーカスを一番初めのテーブルに移す
1498                         this.mainAction.actionRequestFocusToTab(0);
1499                 }
1500         }
1501
1502         /**
1503          * チェックボックスすべてのチェック状態を更新
1504          */
1505         public void updateSelectedInformation() {
1506                 // checkボタンの状態を設定
1507                 // 詳細情報
1508                 jCheckBoxMenuItem1.setSelected(mainAction.isDetailInfoPanelVisible());
1509                 jToggleButton1.setSelected(mainAction.isDetailInfoPanelVisible());
1510                 // 書き込みボタン
1511                 jCheckBoxMenuItem2.setSelected(mainAction.isShowTweetBoxVisible());
1512                 jToggleButton2.setSelected(mainAction.isShowTweetBoxVisible());
1513                 //log保存
1514                 logSaveCheckItem.setSelected(mainAction.isSaveLog());
1515                 // TL表示
1516                 mainAction.updateCheckboxInformation();
1517         }
1518
1519         // nishio tweet manager
1520         private JPopupMenu rightClickPopup = null;
1521         private TweetMainAction mainAction = null;
1522         // TweetManager
1523         private TweetManager tweetManager = null;
1524     // Variables declaration - do not modify//GEN-BEGIN:variables
1525     private javax.swing.JEditorPane clientNameLabel;
1526     private javax.swing.JLabel followerLabel;
1527     private javax.swing.JLabel followingLabel;
1528     private javax.swing.JButton jButton1;
1529     private javax.swing.JButton jButton2;
1530     private javax.swing.JButton jButton4;
1531     private javax.swing.JCheckBoxMenuItem jCheckBoxMenuItem1;
1532     private javax.swing.JCheckBoxMenuItem jCheckBoxMenuItem2;
1533     private javax.swing.JCheckBoxMenuItem jCheckBoxMenuItem3;
1534     private javax.swing.JCheckBoxMenuItem jCheckBoxMenuItem4;
1535     private javax.swing.JCheckBoxMenuItem jCheckBoxMenuItem5;
1536     private javax.swing.JCheckBoxMenuItem jCheckBoxMenuItem6;
1537     private javax.swing.JLabel jLabel12;
1538     private javax.swing.JLabel jLabel13;
1539     private javax.swing.JLabel jLabel15;
1540     private javax.swing.JLabel jLabel3;
1541     private javax.swing.JLabel jLabel4;
1542     private javax.swing.JLabel jLabel5;
1543     private javax.swing.JLabel jLabel9;
1544     private javax.swing.JMenu jMenu1;
1545     private javax.swing.JMenu jMenu2;
1546     private javax.swing.JMenu jMenu3;
1547     private javax.swing.JMenu jMenu4;
1548     private javax.swing.JMenu jMenu5;
1549     private javax.swing.JMenu jMenu6;
1550     private javax.swing.JMenu jMenu7;
1551     private javax.swing.JMenu jMenu8;
1552     private javax.swing.JMenuBar jMenuBar1;
1553     private javax.swing.JMenuItem jMenuItem1;
1554     private javax.swing.JMenuItem jMenuItem10;
1555     private javax.swing.JMenuItem jMenuItem11;
1556     private javax.swing.JMenuItem jMenuItem12;
1557     private javax.swing.JMenuItem jMenuItem13;
1558     private javax.swing.JMenuItem jMenuItem14;
1559     private javax.swing.JMenuItem jMenuItem15;
1560     private javax.swing.JMenuItem jMenuItem16;
1561     private javax.swing.JMenuItem jMenuItem17;
1562     private javax.swing.JMenuItem jMenuItem18;
1563     private javax.swing.JMenuItem jMenuItem19;
1564     private javax.swing.JMenuItem jMenuItem2;
1565     private javax.swing.JMenuItem jMenuItem20;
1566     private javax.swing.JMenuItem jMenuItem21;
1567     private javax.swing.JMenuItem jMenuItem22;
1568     private javax.swing.JMenuItem jMenuItem23;
1569     private javax.swing.JMenuItem jMenuItem24;
1570     private javax.swing.JMenuItem jMenuItem25;
1571     private javax.swing.JMenuItem jMenuItem26;
1572     private javax.swing.JMenuItem jMenuItem27;
1573     private javax.swing.JMenuItem jMenuItem28;
1574     private javax.swing.JMenuItem jMenuItem29;
1575     private javax.swing.JMenuItem jMenuItem3;
1576     private javax.swing.JMenuItem jMenuItem30;
1577     private javax.swing.JMenuItem jMenuItem31;
1578     private javax.swing.JMenuItem jMenuItem32;
1579     private javax.swing.JMenuItem jMenuItem33;
1580     private javax.swing.JMenuItem jMenuItem34;
1581     private javax.swing.JMenuItem jMenuItem35;
1582     private javax.swing.JMenuItem jMenuItem36;
1583     private javax.swing.JMenuItem jMenuItem4;
1584     private javax.swing.JMenuItem jMenuItem5;
1585     private javax.swing.JMenuItem jMenuItem6;
1586     private javax.swing.JMenuItem jMenuItem7;
1587     private javax.swing.JMenuItem jMenuItem8;
1588     private javax.swing.JMenuItem jMenuItem9;
1589     private javax.swing.JPanel jPanel1;
1590     private javax.swing.JPanel jPanel2;
1591     private javax.swing.JPanel jPanel3;
1592     private javax.swing.JScrollPane jScrollPane5;
1593     private javax.swing.JScrollPane jScrollPane6;
1594     private javax.swing.JScrollPane jScrollPane7;
1595     private javax.swing.JScrollPane jScrollPane8;
1596     private javax.swing.JScrollPane jScrollPane9;
1597     private javax.swing.JToolBar.Separator jSeparator1;
1598     private javax.swing.JToolBar.Separator jSeparator2;
1599     private javax.swing.JToolBar.Separator jSeparator3;
1600     private javax.swing.JPopupMenu.Separator jSeparator4;
1601     private javax.swing.JPopupMenu.Separator jSeparator5;
1602     private javax.swing.JPopupMenu.Separator jSeparator6;
1603     private javax.swing.JPopupMenu.Separator jSeparator7;
1604     private javax.swing.JTabbedPane jTabbedPane1;
1605     private javax.swing.JTextPane jTextPane;
1606     private javax.swing.JToggleButton jToggleButton1;
1607     private javax.swing.JToggleButton jToggleButton2;
1608     private javax.swing.JToggleButton jToggleButton3;
1609     private javax.swing.JToggleButton jToggleButton4;
1610     private javax.swing.JToggleButton jToggleButton5;
1611     private javax.swing.JToggleButton jToggleButton6;
1612     private javax.swing.JToolBar jToolBar1;
1613     private javax.swing.JLabel locationLabel;
1614     private javax.swing.JCheckBoxMenuItem logSaveCheckItem;
1615     private javax.swing.JLabel statusBar;
1616     private javax.swing.JLabel tweetLengthLabel;
1617     private javax.swing.JEditorPane tweetMessageBox;
1618     private javax.swing.JLabel updateLabel;
1619     private javax.swing.JLabel updateTimeLabel;
1620     private javax.swing.JLabel userImageLabel;
1621     private javax.swing.JEditorPane userIntroBox;
1622     private javax.swing.JLabel userNameLabel;
1623     private javax.swing.JEditorPane userWebBox;
1624     // End of variables declaration//GEN-END:variables
1625 }