public void actionSetReplyStatusToTweetBoxPane() {
//選択した部分
this.setReplyStatus( currentStatus );
+
+ Status s = this.getCurrentStatus();
+ if( s.isRetweet() ) {
+ s = s.getRetweetedStatus();
+ }
// コメントしたユーザ名
- String username = this.getCurrentStatus().getUser().getScreenName();
+ String username = s.getUser().getScreenName();
this.tweetBoxPane.setText("@" + username + " ");
//情報表示
public void actionSetQuoteStatusToTweetBoxPane() {
//選択した部分
this.setReplyStatus( currentStatus );
+ Status s = this.getCurrentStatus();
+ if( s.isRetweet() ) {
+ s = s.getRetweetedStatus();
+ }
// コメントしたユーザ名
- String username = this.getCurrentStatus().getUser().getScreenName();
+ String username = s.getUser().getScreenName();
// コメント
- String message = this.getCurrentStatus().getText();
+ String message = s.getText();
this.tweetBoxPane.setText("QT @" + username + ": " + message);
//情報表示
* 選択したtweetを非公式RT
*/
public void actionCopySelectedStatusToTweetBoxPane() {
+ Status s = this.getCurrentStatus();
+ if( s.isRetweet() ) {
+ s = s.getRetweetedStatus();
+ }
// コメントしたユーザ名
- String username = this.getCurrentStatus().getUser().getScreenName();
+ String username = s.getUser().getScreenName();
// コメント
- String message = this.getCurrentStatus().getText();
+ String message = s.getText();
this.tweetBoxPane.setText("RT @" + username + ": " + message);
}
*/
public void actionOpenUserURL() {
try {
- String userName = this.getCurrentStatus().getUser().getScreenName();
+ Status s = this.getCurrentStatus();
+ if( s.isRetweet() ) {
+ s = s.getRetweetedStatus();
+ }
+ String userName = s.getUser().getScreenName();
Desktop.getDesktop().browse(new URI(TWITTER_URL + userName));
} catch (Exception ex) {
ex.printStackTrace();
//選択している行が1行だけの場合,情報を表示する
if (sc == 1 && table != null) {
Status st = getTweetTableInformation(table, table.getModel());
+ //RTの場合,もとの発言を表示
+ if( st.isRetweet() ) {
+ st = st.getRetweetedStatus();
+ }
infoMessage = st.getText();
// tweetMessageBox内のURLをhtmlリンクへ変換
infoMessage = actionReplaceTweetMessageBoxURLLink(infoMessage);
private TweetManager tweetManager;
//メインアクション
private TweetMainAction mainAction;
- //右クリックを押した時のポップアップ
- private JPopupMenu rightClickPopup = null;
//テーブルの高さ
private int tableElementHeight;
//新しく取得した部分のテーブルの色
* @return
*/
private JPopupMenu getRightClickPopup() {
- if (rightClickPopup == null) {
- rightClickPopup = new JPopupMenu();
+ //if (rightClickPopup == null) {
+ JPopupMenu rightClickPopup = new JPopupMenu();
- JMenuItem replyMenuItem = new JMenuItem("この発言に返信する(Reply)");
- replyMenuItem.addActionListener(new java.awt.event.ActionListener() {
+ JMenuItem replyMenuItem = new JMenuItem("この発言に返信する(Reply)");
+ replyMenuItem.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent e) {
- // 選択したセルのステータスにreply
- mainAction.actionSetReplyStatusToTweetBoxPane();
- }
- });
- rightClickPopup.add(replyMenuItem);
-
- JMenuItem retweetMenuItem = new JMenuItem("発言を公式リツイート(RT)");
- retweetMenuItem.addActionListener(new java.awt.event.ActionListener() {
-
- @Override
- public void actionPerformed(java.awt.event.ActionEvent e) {
- // 選択したセルのステータスをRetweet
- mainAction.actionRetweet();
- }
- });
- rightClickPopup.add(retweetMenuItem);
+ public void actionPerformed(java.awt.event.ActionEvent e) {
+ // 選択したセルのステータスにreply
+ mainAction.actionSetReplyStatusToTweetBoxPane();
+ }
+ });
+
+ JMenuItem retweetMenuItem = new JMenuItem("発言を公式リツイート(RT)");
+ retweetMenuItem.addActionListener(new java.awt.event.ActionListener() {
- JMenuItem quoteMenuItem = new JMenuItem("発言を引用ツイート(QT)");
- quoteMenuItem.addActionListener(new java.awt.event.ActionListener() {
+ @Override
+ public void actionPerformed(java.awt.event.ActionEvent e) {
+ // 選択したセルのステータスをRetweet
+ mainAction.actionRetweet();
+ }
+ });
+
+ JMenuItem quoteMenuItem = new JMenuItem("発言を引用ツイート(QT)");
+ quoteMenuItem.addActionListener(new java.awt.event.ActionListener() {
- @Override
- public void actionPerformed(java.awt.event.ActionEvent e) {
- // 選択したセルのステータスをQT
- mainAction.actionSetQuoteStatusToTweetBoxPane();
- }
- });
- rightClickPopup.add(quoteMenuItem);
+ @Override
+ public void actionPerformed(java.awt.event.ActionEvent e) {
+ // 選択したセルのステータスをQT
+ mainAction.actionSetQuoteStatusToTweetBoxPane();
+ }
+ });
+
+ JMenuItem unofficialRetweetMenuItem = new JMenuItem("発言をコメント付きリツイート(非公式RT)");
+ unofficialRetweetMenuItem.addActionListener(new java.awt.event.ActionListener() {
- JMenuItem unofficialRetweetMenuItem = new JMenuItem("発言をコメント付きリツイート(非公式RT)");
- unofficialRetweetMenuItem.addActionListener(new java.awt.event.ActionListener() {
+ @Override
+ public void actionPerformed(java.awt.event.ActionEvent e) {
+ // 選択したセルのステータスをコメント付Retweet
+ mainAction.actionCopySelectedStatusToTweetBoxPane();
+ }
+ });
- @Override
- public void actionPerformed(java.awt.event.ActionEvent e) {
- // 選択したセルのステータスをコメント付Retweet
- mainAction.actionCopySelectedStatusToTweetBoxPane();
- }
- });
- rightClickPopup.add(unofficialRetweetMenuItem);
+ JMenuItem directMessageMenuItem = new JMenuItem("ダイレクトメッセージを送信");
+ directMessageMenuItem.addActionListener(new java.awt.event.ActionListener() {
- JMenuItem directMessageMenuItem = new JMenuItem("ダイレクトメッセージを送信");
- directMessageMenuItem.addActionListener(new java.awt.event.ActionListener() {
+ @Override
+ public void actionPerformed(java.awt.event.ActionEvent e) {
+ // ダイレクトメッセージ送信ダイアログを表示
+ mainAction.actionShowDirectMessageDialog();
+ }
+ });
- @Override
- public void actionPerformed(java.awt.event.ActionEvent e) {
- // ダイレクトメッセージ送信ダイアログを表示
- mainAction.actionShowDirectMessageDialog();
- }
- });
- rightClickPopup.add(directMessageMenuItem);
+ JMenuItem statusBrowserMenuItem = new JMenuItem("この発言をブラウザで開く");
+ statusBrowserMenuItem.addActionListener(new java.awt.event.ActionListener() {
- JMenuItem statusBrowserMenuItem = new JMenuItem("この発言をブラウザで開く");
- statusBrowserMenuItem.addActionListener(new java.awt.event.ActionListener() {
+ @Override
+ public void actionPerformed(java.awt.event.ActionEvent e) {
+ // 選択したセルのステータスをブラウザで開く
+ mainAction.actionOpenStatusURL();
+ }
+ });
- @Override
- public void actionPerformed(java.awt.event.ActionEvent e) {
- // 選択したセルのステータスをブラウザで開く
- mainAction.actionOpenStatusURL();
- }
- });
- rightClickPopup.add(statusBrowserMenuItem);
+ JMenuItem openBrowserUserInformationMenuItem = new JMenuItem(
+ "この人のTimelineをブラウザで開く");
+ openBrowserUserInformationMenuItem.addActionListener(new java.awt.event.ActionListener() {
- JMenuItem openBrowserUserInformationMenuItem = new JMenuItem(
- "この人のTimelineをブラウザで開く");
- openBrowserUserInformationMenuItem.addActionListener(new java.awt.event.ActionListener() {
+ @Override
+ public void actionPerformed(java.awt.event.ActionEvent e) {
+ // 選択したセルのユーザ情報をブラウザで開く
+ mainAction.actionOpenUserURL();
+ }
+ });
- @Override
- public void actionPerformed(java.awt.event.ActionEvent e) {
- // 選択したセルのユーザ情報をブラウザで開く
- mainAction.actionOpenUserURL();
- }
- });
+ //指定した発言がRTかどうか判定
+ int sc = table.getSelectedRowCount();
+ if (sc == 1 && table != null) {
+ Status st = mainAction.getTweetTableInformation(table, table.getModel());
+
+ //メニューアイテムを追加
+ //返信
+ rightClickPopup.add(replyMenuItem);
+ //公式RT
+ rightClickPopup.add(retweetMenuItem);
+ //QT
+ rightClickPopup.add(quoteMenuItem);
+ //非公式RT
+ rightClickPopup.add(unofficialRetweetMenuItem);
+ //ダイレクトメッセージ
+ rightClickPopup.add(directMessageMenuItem);
+ //発言をブラウザで開く
+ rightClickPopup.add(statusBrowserMenuItem);
+ //この人のtimelineを開く
rightClickPopup.add(openBrowserUserInformationMenuItem);
+
+ if( st.isRetweet() ) {
+ //Retweetのときのみ表示するメニュー
+ }
+ if( st.isFavorited() ) {
+ //お気に入りに追加されている時のみ表示するメニュー
+ }
}
+ //}
return rightClickPopup;
}