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;
if (currentGetMentionPeriodNum == 0) {
// Mentionテーブルの情報を更新
- actionMentionTableUpdate();
+ //actionMentionTableUpdate();
}
currentGetMentionPeriodNum = (currentGetMentionPeriodNum + 1)
% getMentionPeriodNum;
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() {
//タブリストに追加
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以下の場合は更新しない
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);
}
}
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);
}
//自動更新しているタブを削除
- timerID = idManager.createSearchTimerID(timerID);
this.tweetTaskManager.shutdownTask( timerID );
//ID削除
+ TimerID idManager = TimerID.getInstance();
idManager.removeID(timerID);
}
}
private Color newTableColor = null;
//テーブルに追加できる要素の最大数
private int tableElementMaxSize = 200;
+ //自動更新に使うタイマーのID
+ private String timerID;
/**
* @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;
this.tableElementHeight = tableElementHeight;
this.newTableColor = newTableColor;
this.tableElementMaxSize = tableElementMaxSize;
+ this.timerID = timerID;
table = new JTable();
model = new TweetTableModel();
this.tabSetNum = tabSetNum;
}
+ /**
+ * @return the timerID
+ */
+ public String getTimerID() {
+ return timerID;
+ }
+
}
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();
});
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');
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
+
/**
*
*/
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;