OSDN Git Service

Mentionテーブル更新の処理と,検索タブを更新する処理との共通部分を統一
authorspark_xp <spark_xp@d8c9ecd3-d47d-4367-8645-de82c00e513f>
Wed, 15 Sep 2010 08:49:53 +0000 (08:49 +0000)
committerspark_xp <spark_xp@d8c9ecd3-d47d-4367-8645-de82c00e513f>
Wed, 15 Sep 2010 08:49:53 +0000 (08:49 +0000)
git-svn-id: http://svn.sourceforge.jp/svnroot/nt-manager/NishioTweetManager/trunk@42 d8c9ecd3-d47d-4367-8645-de82c00e513f

src/twitter/gui/action/TweetMainAction.java
src/twitter/gui/component/TweetTabbedTable.java
src/twitter/gui/form/NishioTweetManager.form
src/twitter/gui/form/NishioTweetManager.java

index bb81346..63eb542 100644 (file)
@@ -47,6 +47,7 @@ import javax.swing.text.StyleConstants;
 import javax.swing.text.html.HTMLDocument;
 import javax.swing.text.html.StyleSheet;
 import twitter.action.TweetGetter;
+import twitter.action.TweetMentionGetter;
 import twitter.action.TweetSearchResultGetter;
 
 import twitter.gui.component.TweetCommentRenderer;
@@ -98,7 +99,7 @@ public class TweetMainAction {
 
                 if (currentGetMentionPeriodNum == 0) {
                     // Mentionテーブルの情報を更新
-                    actionMentionTableUpdate();
+                    //actionMentionTableUpdate();
                 }
                 currentGetMentionPeriodNum = (currentGetMentionPeriodNum + 1)
                         % getMentionPeriodNum;
@@ -472,7 +473,7 @@ public class TweetMainAction {
                 final TweetTabbedTable table = new TweetTabbedTable(tweetGetter, tabTitle,
                         this.tweetMainTab, numOfTab + alreadyExistTabNum,
                         this.tableElementHeight, this.tweetManager,
-                        this, newTableColor, tableElementHeight);
+                        this, newTableColor, tableElementHeight, timerID);
 
                 this.tweetTaskManager.addTask(timerID, new TweetUpdateTask() {
 
@@ -490,13 +491,31 @@ public class TweetMainAction {
                 //タブリストに追加
                 this.tweetTabbedTableList.add(table);
                 //searchTable.updateTweetTable();
-            }catch (TweetTaskException ex) {
+            } catch (TweetTaskException ex) {
                 Logger.getLogger(TweetMainAction.class.getName()).log(Level.SEVERE, null, ex);
             }
         }
     }
 
     /**
+     * mentionを追加するタブ
+     * @param period 情報更新間隔[sec]
+     */
+    public void actionAddMentionTab(int period) {
+        TimerID timerID = TimerID.getInstance();
+        String id = timerID.createMentionID();
+        try {
+            //既にIDが存在していたらここで例外発生
+            timerID.addID(id);
+            //検索結果を表示するタブを生成
+            actionAddTab(id, period, new TweetMentionGetter(tweetManager), this.TAB_MENTION_STRING);
+        } catch (ExistTimerIDException ex) {
+            JOptionPane.showMessageDialog(null, "そのタブは既に存在しています",
+                    "Error", JOptionPane.ERROR_MESSAGE);
+        }
+    }
+
+    /**
      * ツイート検索結果を表示するタブを新しく追加
      * @param searchWord
      * @param period 更新周期[sec] 0以下の場合は更新しない
@@ -504,52 +523,14 @@ public class TweetMainAction {
     public void actionAddNewSearchResultTab(String searchWord, int period) {
         TimerID timerID = TimerID.getInstance();
         String id = timerID.createSearchTimerID(searchWord);
-        //TODO:ここを更新
-        actionAddTab(tlFontName, period, null, tlFontName);
-
-        int numOfTab = this.tweetTabbedTableList.size();
-        //すでに追加されているタブの数
-        //TODO:ここはあとで変更する必要がある.なぜなら既に追加されているタブの数は変わる可能性があるから
-        int alreadyExistTabNum = ALREADY_TWEET_TAB_NUM;
-
-        //周期的に情報を更新する
-        if( period > 0 ) {
-            try {
-                //指定したワードを検索してくるアクション
-                TweetGetter tweetGetter = new TweetSearchResultGetter(this.tweetManager, searchWord);
-                //検索したワードを表示するテーブルを作成,及びタブにそのテーブルを追加
-                final TweetTabbedTable searchTable = new TweetTabbedTable(tweetGetter, searchWord,
-                        this.tweetMainTab, numOfTab + alreadyExistTabNum,
-                        this.tableElementHeight, this.tweetManager,
-                        this, newTableColor, tableElementHeight);
-
-                //タイマーのID取得
-                TimerID idManager = TimerID.getInstance();
-                String timerID = idManager.createSearchTimerID(searchWord);
-                //利用するIDを追加
-                idManager.addID(timerID);
-
-                this.tweetTaskManager.addTask(timerID, new TweetUpdateTask() {
-
-                    @Override
-                    public void runTask() throws TweetTaskException {
-                        //ツイート情報を一定間隔で更新
-                        searchTable.updateTweetTable();
-                    }
-                });
-                //更新開始
-                this.tweetTaskManager.startTask(timerID, period * 1000L);
-
-                //タブにテーブルを追加
-                searchTable.addTableToTab();
-                //タブリストに追加
-                this.tweetTabbedTableList.add(searchTable);
-                //searchTable.updateTweetTable();
-            } catch (ExistTimerIDException ex) {
-                Logger.getLogger(TweetMainAction.class.getName()).log(Level.SEVERE, null, ex);
-            } catch (TweetTaskException ex) {
-                Logger.getLogger(TweetMainAction.class.getName()).log(Level.SEVERE, null, ex);
-            }
+        try {
+            //既にIDが存在していたらここで例外発生
+            timerID.addID(id);
+            //検索結果を表示するタブを生成
+            actionAddTab(id, period, new TweetSearchResultGetter(this.tweetManager, searchWord), searchWord);
+        } catch (ExistTimerIDException ex) {
+            JOptionPane.showMessageDialog(null, "そのタブは既に存在しています",
+                    "Error", JOptionPane.ERROR_MESSAGE);
         }
     }
 
@@ -651,8 +632,7 @@ public class TweetMainAction {
             this.tweetMainTab.remove(deleteTabIndex + this.ALREADY_TWEET_TAB_NUM);
             int tabSetNum = this.tweetTabbedTableList.get(deleteTabIndex).getTabSetNum();
             //タブのタイマーID
-            String timerID = this.tweetTabbedTableList.get(deleteTabIndex).getTitle();
-            TimerID idManager = TimerID.getInstance();
+            String timerID = this.tweetTabbedTableList.get(deleteTabIndex).getTimerID();
 
             //削除
             this.tweetTabbedTableList.remove(deleteTabIndex);
@@ -667,9 +647,9 @@ public class TweetMainAction {
             }
 
             //自動更新しているタブを削除
-            timerID = idManager.createSearchTimerID(timerID);
             this.tweetTaskManager.shutdownTask( timerID );
             //ID削除
+            TimerID idManager = TimerID.getInstance();
             idManager.removeID(timerID);
         }
     }
index be9be74..72c47e9 100644 (file)
@@ -59,6 +59,8 @@ public class TweetTabbedTable {
     private Color newTableColor = null;
     //テーブルに追加できる要素の最大数
     private int tableElementMaxSize = 200;
+    //自動更新に使うタイマーのID
+    private String timerID;
 
 
     /**
@@ -72,11 +74,12 @@ public class TweetTabbedTable {
      * @param mainAction メインアクション
      * @param newTableColor 新しく取得した部分の色
      * @param tableElementMaxSize テーブルに格納できる要素の最大数
+     * @param timerID 自動更新につかうタイマーのID
      */
     public TweetTabbedTable(TweetGetter tweetGetter,
             String title, JTabbedPane tabbedPane, int tabSetNum, int tableElementHeight,
             TweetManager tweetManager, TweetMainAction mainAction, Color newTableColor,
-            int tableElementMaxSize) {
+            int tableElementMaxSize, String timerID) {
         this.tweetGetter = tweetGetter;
         this.title = title;
         this.tabbedPane = tabbedPane;
@@ -86,6 +89,7 @@ public class TweetTabbedTable {
         this.tableElementHeight = tableElementHeight;
         this.newTableColor = newTableColor;
         this.tableElementMaxSize = tableElementMaxSize;
+        this.timerID = timerID;
 
         table = new JTable();
         model = new TweetTableModel();
@@ -413,4 +417,11 @@ public class TweetTabbedTable {
         this.tabSetNum = tabSetNum;
     }
 
+    /**
+     * @return the timerID
+     */
+    public String getTimerID() {
+        return timerID;
+    }
+
 }
index 7fb38b1..60f8a12 100644 (file)
                 <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jMenuItem5ActionPerformed"/>
               </Events>
             </MenuItem>
+            <MenuItem class="javax.swing.JMenuItem" name="jMenuItem9">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Debug"/>
+              </Properties>
+              <Events>
+                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jMenuItem9ActionPerformed"/>
+              </Events>
+            </MenuItem>
           </SubComponents>
         </Menu>
         <Menu class="javax.swing.JMenu" name="jMenu5">
index 3c85e49..57f4621 100644 (file)
@@ -184,6 +184,7 @@ public class NishioTweetManager extends javax.swing.JFrame {
         jMenuItem8 = new javax.swing.JMenuItem();
         jMenu4 = new javax.swing.JMenu();
         jMenuItem5 = new javax.swing.JMenuItem();
+        jMenuItem9 = new javax.swing.JMenuItem();
         jMenu5 = new javax.swing.JMenu();
         jMenuItem6 = new javax.swing.JMenuItem();
         jMenu2 = new javax.swing.JMenu();
@@ -558,6 +559,14 @@ public class NishioTweetManager extends javax.swing.JFrame {
         });
         jMenu4.add(jMenuItem5);
 
+        jMenuItem9.setText("Debug");
+        jMenuItem9.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent evt) {
+                jMenuItem9ActionPerformed(evt);
+            }
+        });
+        jMenu4.add(jMenuItem9);
+
         jMenuBar1.add(jMenu4);
 
         jMenu5.setMnemonic('S');
@@ -791,6 +800,10 @@ public class NishioTweetManager extends javax.swing.JFrame {
         mainAction.actionRefreshTime();
     }//GEN-LAST:event_jMenuItem8ActionPerformed
 
+    private void jMenuItem9ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem9ActionPerformed
+        mainAction.actionAddMentionTab(60);
+    }//GEN-LAST:event_jMenuItem9ActionPerformed
+
     /**
      *
      */
@@ -1030,6 +1043,7 @@ public class NishioTweetManager extends javax.swing.JFrame {
     private javax.swing.JMenuItem jMenuItem6;
     private javax.swing.JMenuItem jMenuItem7;
     private javax.swing.JMenuItem jMenuItem8;
+    private javax.swing.JMenuItem jMenuItem9;
     private javax.swing.JPanel jPanel1;
     private javax.swing.JScrollPane jScrollPane1;
     private javax.swing.JScrollPane jScrollPane2;