OSDN Git Service

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