OSDN Git Service

StreamingAPIをプログラム開始時に開始するかどうかの処理を追加
authorU-nishio-PC8\nishio <spark_xp@users.sourceforge.jp>
Wed, 31 Aug 2011 19:16:56 +0000 (04:16 +0900)
committerU-nishio-PC8\nishio <spark_xp@users.sourceforge.jp>
Wed, 31 Aug 2011 19:16:56 +0000 (04:16 +0900)
src/twitter/gui/action/TweetMainAction.java
src/twitter/gui/form/NishioTweetManager.java
src/twitter/manage/TweetSearchStream.java
src/twitter/manage/TweetUserStream.java
src/twitter/manage/TweetUserStreamManager.java

index 639f946..dbe2f10 100644 (file)
@@ -2381,7 +2381,7 @@ public class TweetMainAction implements ConnectionLifeCycleListener{
         */
        public void startStreaming() {
            this.isUsingStreaming = true;
-           //TODO: ここでストリーミング開始処理
+           this.tweetManager.getStreamManager().start();
            try {
                saveProperties();
            } catch (IOException ex) {
@@ -2394,7 +2394,7 @@ public class TweetMainAction implements ConnectionLifeCycleListener{
         */
        public void stopStreaming() {
            this.isUsingStreaming = false;
-           //TODO: ここでストリーミング停止処理
+           this.tweetManager.getStreamManager().stop();
            try {
                saveProperties();
            } catch (IOException ex) {
index 404f8a6..6e4c9b4 100644 (file)
@@ -1549,6 +1549,10 @@ public class NishioTweetManager extends javax.swing.JFrame implements Connection
                
                //Streaming APIを利用しているかどうかを表示
                this.tweetManager.getStreamManager().addCollectionLifeCycleListener(this);
+               //streaming利用時はstreamingを開始する
+               if( this.mainAction.isUsingStreaming() ) {
+                   this.mainAction.startStreaming();
+               }
        }
 
        /**
index 863279f..ea06aa9 100644 (file)
@@ -7,6 +7,7 @@ import java.util.Map;
 import java.util.Set;\r
 \r
 import twitter.action.streaming.TweetStreamingListener;\r
+import twitter4j.ConnectionLifeCycleListener;\r
 import twitter4j.DirectMessage;\r
 import twitter4j.FilterQuery;\r
 import twitter4j.Status;\r
@@ -26,7 +27,7 @@ import twitter4j.auth.AccessToken;
  * @author nishio\r
  *\r
  */\r
-public class TweetSearchStream extends StatusAdapter implements Runnable{\r
+public class TweetSearchStream extends StatusAdapter implements Runnable, ConnectionLifeCycleListener{\r
        //streaming\r
        private TwitterStream twitterStream = null;\r
        //Filter query\r
@@ -58,6 +59,7 @@ public class TweetSearchStream extends StatusAdapter implements Runnable{
                this.twitterStream = new TwitterStreamFactory().getInstance();\r
                this.twitterStream.setOAuthConsumer(consumerKey, consumerSecret);\r
                this.twitterStream.setOAuthAccessToken(ac);\r
+               this.twitterStream.addConnectionLifeCycleListener(this);\r
 \r
                filter = new FilterQuery();\r
                listeners = new HashMap<String, TweetStreamingListener>();\r
@@ -215,4 +217,19 @@ public class TweetSearchStream extends StatusAdapter implements Runnable{
                }\r
        }\r
 \r
+       @Override\r
+       public void onConnect() {\r
+           System.out.println("search started");\r
+       }\r
+       \r
+       @Override\r
+       public void onDisconnect() {\r
+           System.out.println("search stopped");\r
+       }\r
+       \r
+       @Override\r
+       public void onCleanUp() {\r
+           //nothing\r
+       }\r
+\r
 }\r
index 5f6358f..19860c5 100644 (file)
@@ -49,7 +49,20 @@ public class TweetUserStream extends UserStreamAdapter{
                this.twitterStream.setOAuthConsumer(consumerKey, consumerSecret);\r
                this.twitterStream.setOAuthAccessToken(ac);\r
                this.twitterStream.addListener(this);\r
-               this.twitterStream.user();\r
+       }\r
+       \r
+       /**\r
+        * streaming開始\r
+        */\r
+       public void start() {\r
+           this.twitterStream.user();\r
+       }\r
+       \r
+       /**\r
+        * streaming停止\r
+        */\r
+       public void stop() {\r
+           this.twitterStream.cleanUp();\r
        }\r
        \r
        /**\r
index ac350a3..aa49705 100644 (file)
@@ -145,4 +145,18 @@ public class TweetUserStreamManager extends UserStreamAdapter {
        public void addCollectionLifeCycleListener(ConnectionLifeCycleListener listener) {\r
            this.userStream.addConnectionLifeCycleListener(listener);\r
        }\r
+       \r
+       /**\r
+        * streaming開始\r
+        */\r
+       public void start() {\r
+           this.userStream.start();\r
+       }\r
+       \r
+       /**\r
+        * streaming停止\r
+        */\r
+       public void stop() {\r
+           this.userStream.stop();\r
+       }\r
 }\r