OSDN Git Service

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