2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
6 package twitter.action;
8 import java.awt.TrayIcon;
10 import java.util.logging.Level;
11 import java.util.logging.Logger;
13 import twitter.action.streaming.TweetStreamingListener;
14 import twitter.manage.TweetManager;
15 import twitter.manage.TweetNotifyManager;
16 import twitter4j.Status;
17 import twitter4j.TwitterException;
23 public class TweetMentionGetter implements TweetGetter{
26 private TweetManager tweetManager;
28 private TweetNotifyManager notifyManager = null;
29 //1回目の最初の呼び出しかどうか, 1回目の呼び出しの際は通知バーにメッセージを表示しない
30 private boolean isFirstTime = true;
36 public TweetMentionGetter(TweetManager tweetManager) {
37 this.tweetManager = tweetManager;
43 * @param trayIcon タスクバーの通知用アイコン
45 public TweetMentionGetter(TweetManager tweetManager, TrayIcon trayIcon) {
46 this.tweetManager = tweetManager;
47 this.notifyManager = new TweetNotifyManager(trayIcon);
51 * Mentionツイートを指定した数だけ取得
56 public List<Status> getTweetData(int num) {
57 List<Status> status = null;
59 status = tweetManager.getMentions(num);
60 if( notifyManager != null && isFirstTime == false) {
61 this.notifyManager.showNotifyMessage(status);
64 } catch (TwitterException ex) {
65 Logger.getLogger(TweetMentionGetter.class.getName()).log(Level.SEVERE, null, ex);
71 * Mentionツイートの新しく投稿されたものだけを取得
75 public List<Status> getNewTweetData() {
76 List<Status> status = null;
78 status = tweetManager.getNewMentionData();
79 if( notifyManager != null && isFirstTime == false) {
80 this.notifyManager.showNotifyMessage(status);
83 } catch (TwitterException ex) {
84 Logger.getLogger(TweetMentionGetter.class.getName()).log(Level.SEVERE, null, ex);
93 public void setUpdateListener(TweetStreamingListener listener) {
94 if( listener != null ) {
95 this.tweetManager.getStreamManager().setMentionListener(listener, notifyManager);
100 * streaming api有効時のアップデートを受け取るlistenerを削除
102 public void stopUpdateListener() {
103 this.tweetManager.getStreamManager().stopMentionListener();