}
/**
+ * 選択しているツイートをお気に入りに追加
+ */
+ public void actionCreateFavorite() {
+ Status status = null;
+ if( this.getCurrentStatus().isRetweet() ) {
+ status = this.getCurrentStatus().getRetweetedStatus();
+ }else {
+ status = this.getCurrentStatus();
+ }
+ // 選択しているtweetのstatus id
+ long statusID = status.getId();
+ // コメントしたユーザ名
+ String username = status.getUser().getScreenName();
+ // コメント
+ String message = status.getText();
+ // 発言が長すぎる場合,後半をカット
+ if (message.length() > 30) {
+ message = message.substring(0, 30) + " ...(以下略)";
+ }
+ // Retweetしていいかどうかの確認
+ int ret = JOptionPane.showConfirmDialog(mainFrame, username + " さんの発言:"
+ + message + "\nをお気に入りに追加しますか?", "Favの確認",
+ JOptionPane.YES_NO_OPTION);
+ if (ret == JOptionPane.YES_OPTION) {
+ try {
+ // Retweetを行う
+ this.tweetManager.createFavorite(statusID);
+ } catch (TwitterException e) {
+ JOptionPane.showMessageDialog(null, "エラーによりお気に入りに追加できませんでした.",
+ "Fav Error", JOptionPane.ERROR_MESSAGE);
+ }
+ }
+ }
+
+ /**
+ * 選択しているツイートをお気に入りから外す
+ */
+ public void actionDestroyFavorite() {
+ Status status = null;
+ if( this.getCurrentStatus().isRetweet() ) {
+ status = this.getCurrentStatus().getRetweetedStatus();
+ }else {
+ status = this.getCurrentStatus();
+ }
+ // 選択しているtweetのstatus id
+ long statusID = status.getId();
+ // コメントしたユーザ名
+ String username = status.getUser().getScreenName();
+ // コメント
+ String message = status.getText();
+ // 発言が長すぎる場合,後半をカット
+ if (message.length() > 30) {
+ message = message.substring(0, 30) + " ...(以下略)";
+ }
+ // Retweetしていいかどうかの確認
+ int ret = JOptionPane.showConfirmDialog(mainFrame, username + " さんの発言:"
+ + message + "\nをお気に入りから削除しますか?", "Favの確認",
+ JOptionPane.YES_NO_OPTION);
+ if (ret == JOptionPane.YES_OPTION) {
+ try {
+ // Retweetを行う
+ this.tweetManager.destroyFavorite(statusID);
+ } catch (TwitterException e) {
+ JOptionPane.showMessageDialog(null, "エラーによりお気に入りから削除できませんでした.",
+ "Fav Error", JOptionPane.ERROR_MESSAGE);
+ }
+ }
+ }
+
+ /**
* 現在選択しているステータスを公式Retweet
*/
public void actionRetweet() {
//if (rightClickPopup == null) {
JPopupMenu rightClickPopup = new JPopupMenu();
- JMenuItem replyMenuItem = new JMenuItem("この発言に返信する(Reply)");
+ JMenuItem replyMenuItem = new JMenuItem("この発言に返信(Reply)");
replyMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
mainAction.actionOpenUserURL();
}
});
+
+ JMenuItem createFavMenuItem = new JMenuItem(
+ "この発言をお気に入りに追加");
+ createFavMenuItem.addActionListener(new java.awt.event.ActionListener() {
+
+ @Override
+ public void actionPerformed(java.awt.event.ActionEvent e) {
+ // 選択したセルのユーザ情報をブラウザで開く
+ mainAction.actionCreateFavorite();
+ }
+ });
+
+ JMenuItem destroyFavMenuItem = new JMenuItem(
+ "この発言をお気に入りから削除");
+ destroyFavMenuItem.addActionListener(new java.awt.event.ActionListener() {
+
+ @Override
+ public void actionPerformed(java.awt.event.ActionEvent e) {
+ // 選択したセルのユーザ情報をブラウザで開く
+ mainAction.actionDestroyFavorite();
+ }
+ });
+
//指定した発言がRTかどうか判定
int sc = table.getSelectedRowCount();
}
if( st.isFavorited() ) {
//お気に入りに追加されている時のみ表示するメニュー
+ //お気に入り追加
+ rightClickPopup.add(destroyFavMenuItem);
+ }else {
+ rightClickPopup.add(createFavMenuItem);
}
}
//}