OSDN Git Service

036f50c6d94b26be99fb4caba20cedb6d5b1c9f9
[nt-manager/nt-manager.git] / src / twitter / action / TweetDirectMessageGetter.java
1 /*
2  * To change this template, choose Tools | Templates
3  * and open the template in the editor.
4  */
5
6 package twitter.action;
7
8 import java.awt.TrayIcon;
9 import java.util.List;
10 import java.util.logging.Level;
11 import java.util.logging.Logger;
12
13 import twitter.action.streaming.TweetStreamingListener;
14 import twitter.manage.TweetManager;
15 import twitter.manage.TweetNotifyManager;
16 import twitter4j.Status;
17 import twitter4j.TwitterException;
18
19 /**
20  *
21  * @author nishio
22  */
23 public class TweetDirectMessageGetter implements TweetGetter{
24
25     //tweet管理用
26     private TweetManager tweetManager;
27     //通知
28     private TweetNotifyManager notifyManager = null;
29     //1回目の最初の呼び出しかどうか, 1回目の呼び出しの際は通知バーにメッセージを表示しない
30     private boolean isFirstTime = true;
31
32     /**
33      *
34      * @param tweetManager
35      */
36     public TweetDirectMessageGetter(TweetManager tweetManager) {
37         this.tweetManager = tweetManager;
38     }
39
40     /**
41      *
42      * @param tweetManager
43      * @param trayIcon
44      */
45     public TweetDirectMessageGetter(TweetManager tweetManager, TrayIcon trayIcon) {
46         this.tweetManager = tweetManager;
47         this.notifyManager = new TweetNotifyManager(trayIcon, "あなた宛のダイレクトメッセージ");
48     }
49
50     /**
51      * DirectMessageツイートを指定した数だけ取得
52      * @param num
53      * @return
54      */
55     @Override
56     public List<Status> getTweetData(int num) {
57         List<Status> status = null;
58         try {
59             status = tweetManager.getDirectMessages(num);
60             if( notifyManager != null && isFirstTime == false) {
61                 this.notifyManager.showNotifyMessage(status);
62             }
63             isFirstTime = false;
64         } catch (TwitterException ex) {
65             Logger.getLogger(TweetMentionGetter.class.getName()).log(Level.SEVERE, null, ex);
66         }
67         return status;
68     }
69
70     /**
71      * DirectMessageツイートの新しく投稿されたものだけを取得
72      * @param sinceID
73      * @return
74      */
75     @Override
76     public List<Status> getNewTweetData() {
77         List<Status> status = null;
78         try {
79             status = tweetManager.getNewDirectMessages();
80             if( notifyManager != null && isFirstTime == false) {
81                 this.notifyManager.showNotifyMessage(status);
82             }
83             isFirstTime = false;
84         } catch (TwitterException ex) {
85             Logger.getLogger(TweetMentionGetter.class.getName()).log(Level.SEVERE, null, ex);
86         }
87         return status;
88     }
89
90         @Override
91         public void setUpdateListener(TweetStreamingListener listener) {
92                 // TODO 自動生成されたメソッド・スタブ
93
94         }
95
96 }
97