--- /dev/null
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package twitter.action;
+
+import java.util.List;
+import twitter.manage.TweetManager;
+import twitter4j.Status;
+
+/**
+ *
+ * @author nishio
+ */
+public class TweetListGetter implements TweetGetter{
+ //tweet管理用
+ private TweetManager tweetManager;
+ //リストID
+ private int listID;
+ //ユーザ名
+ private String username = null;
+ //sinceID
+ private long sinceID;
+
+ /**
+ *
+ * @param tweetManager
+ * @param username ユーザ名
+ * @param listID リストのID
+ */
+ public TweetListGetter(TweetManager tweetManager, String username, int listID) {
+ this.tweetManager = tweetManager;
+ this.username = username;
+ this.listID = listID;
+ }
+
+ @Override
+ public List<Status> getTweetData(int num) {
+ List<Status> status = tweetManager.getUserListStatuses(username, listID, num);
+ if( status != null ) {
+ //一番最後のtweetのsinceIDを取得する
+ int lastnum = status.size();
+ if( lastnum > 0 ) {
+ sinceID = status.get(lastnum - 1).getId();
+ }
+ }
+ return status;
+ }
+
+ @Override
+ public List<Status> getNewTweetData() {
+ List<Status> status = tweetManager.getNewUserListStatuses(username, listID, sinceID);
+ if( status != null ) {
+ //一番最後のtweetのsinceIDを取得する
+ int lastnum = status.size();
+ if( lastnum > 0 ) {
+ sinceID = status.get(lastnum - 1).getId();
+ }
+ }
+ return status;
+ }
+
+}
import twitter.action.TweetDirectMessageGetter;
import twitter.action.TweetFavoriteGetter;
import twitter.action.TweetGetter;
+import twitter.action.TweetListGetter;
import twitter.action.TweetMentionGetter;
import twitter.action.TweetSearchResultGetter;
import twitter.action.TweetSendDirectMessageGetter;
}
}
+ /**
+ * 指定したリストをタブに追加
+ * @param username
+ * @param listID
+ * @param listFullname
+ * @param period
+ */
+ public void actionAddListTab(String username, int listID, String listFullname, int period) {
+ TimerID timerID = TimerID.getInstance();
+ String id = TimerID.createUserListID(username, listID);
+ try {
+ //既にIDが存在していたらここで例外発生
+ timerID.addID(id);
+ //検索結果を表示するタブを生成
+ actionAddTab(id, period, new TweetListGetter(tweetManager, username, listID), listFullname);
+ } catch (ExistTimerIDException ex) {
+ JOptionPane.showMessageDialog(null, "そのタブは既に存在しています",
+ "Error", JOptionPane.ERROR_MESSAGE);
+ }
+ }
+
/**
* ツイート検索結果を表示するタブを新しく追加
<Properties>
<Property name="text" type="java.lang.String" value="OK"/>
</Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton1ActionPerformed"/>
+ </Events>
</Component>
<Component class="javax.swing.JButton" name="jButton2">
<Properties>
import java.awt.event.MouseEvent;
import java.util.List;
import javax.swing.ImageIcon;
+import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
jScrollPane1.setViewportView(jTable1);
jButton1.setText("OK");
+ jButton1.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ jButton1ActionPerformed(evt);
+ }
+ });
jButton2.setText("キャンセル");
jButton2.addActionListener(new java.awt.event.ActionListener() {
this.dispose();
}//GEN-LAST:event_jButton2ActionPerformed
+ private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
+ UserList info = getTweetTableInformation(jTable1, listTableModel);
+ if( info == null ) {
+ JOptionPane.showMessageDialog(null, "リストを選択してください",
+ "Error", JOptionPane.ERROR_MESSAGE);
+ return;
+ }
+ String listName = info.getName();
+ String userName = info.getUser().getScreenName();
+ int id = info.getId();
+ String fullName = info.getFullName();
+
+ if( listName == null || userName == null || fullName == null ) {
+ JOptionPane.showMessageDialog(null, "選択できないリストです",
+ "Error", JOptionPane.ERROR_MESSAGE);
+ return;
+ }
+ //TODO: 更新間隔をリスト毎に設定できるようにするべきか検討
+ this.mainAction.actionAddListTab(userName, id, fullName, this.mainAction.getGetTimelinePeriod());
+ //終了
+ this.dispose();
+ }//GEN-LAST:event_jButton1ActionPerformed
+
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
* @return
* @throws TwitterException
*/
- public List<Status> getUserListStatuses(String userScreenName, int listID, int num)
- throws TwitterException {
- List<Status> tweetList =
- this.twitter.getUserListStatuses(userScreenName, listID, new Paging(1, num));
+ public List<Status> getUserListStatuses(String userScreenName, int listID, int num) {
+ List<Status> tweetList = null;
+ try {
+ tweetList = this.twitter.getUserListStatuses(userScreenName, listID, new Paging(1, num));
+ } catch (TwitterException ex) {
+ Logger.getLogger(TweetManager.class.getName()).log(Level.SEVERE, null, ex);
+ }
//tweet逆転
if( tweetList != null && tweetList.size() > 0 ) {
Collections.reverse(tweetList);
* @param listID リストID
* @param sinceID
* @return
- * @throws TwitterException
*/
- public List<Status> getNewUserListStatuses(String userScreenName, int listID, long sinceID)
- throws TwitterException {
+ public List<Status> getNewUserListStatuses(String userScreenName, int listID, long sinceID) {
if( sinceID == 0 ) {
return getUserListStatuses(userScreenName, listID, MAX_TWEET_NUM);
}
- List<Status> tweetList = this.twitter.getUserListStatuses(
- userScreenName, listID, new Paging(sinceID) );
+ List<Status> tweetList = null;
+ try {
+ tweetList = this.twitter.getUserListStatuses(userScreenName, listID, new Paging(sinceID));
+ } catch (TwitterException ex) {
+ Logger.getLogger(TweetManager.class.getName()).log(Level.SEVERE, null, ex);
+ }
//tweet逆転
if( tweetList != null && tweetList.size() > 0 ) {
Collections.reverse(tweetList);
public static String createUserTimelineID(long userID) {
return "USERTIMELINE:" + userID;
}
+
+ /**
+ * リストID生成
+ * @param username
+ * @param listID
+ * @return
+ */
+ public static String createUserListID(String username, long listID) {
+ return "LIST:" + username + ":" + listID;
+ }
}
}
System.out.println("---");
//List<Status> status = manager.getUserListStatuses("applegarden_01", 22406196, 99);
- //List<Status> status = manager.getNewUserListStatuses("applegarden_01", 22406196, 27543444817L);
+ List<Status> status = manager.getNewUserListStatuses("nyou_a", 16152694, 0L);
//List<Status> status = manager.getNewSearchResult(333L, "test");
- /*for(Status s : status) {
+ for(Status s : status) {
System.out.println( s );
//System.out.println( s.getId() );
- }*/
+ }
/*} catch (TwitterException ex) {
Logger.getLogger(TestDriver.class.getName()).log(Level.SEVERE, null, ex);
}catch (FileNotFoundException ex) {