super(id);
}
public OneTweet init(IModel<JTweet> model, boolean showUser) {
setOutputMarkupId(true);
final JTweet tweet = model.getObject();
if (tweet == null) {
setVisible(false);
return this;
}
final JUser user = tweet.getFromUser();
if (showUser) {
LabeledLink userNameLink = new LabeledLink("userNameLink", user.getScreenName() + ":", false) {
@Override
public void onClick(AjaxRequestTarget target) {
onUserClick(user.getScreenName());
}
};
add(userNameLink);
} else
add(new Label("userNameLink", ""));
WebMarkupContainer spamIndicator = new WebMarkupContainer("spamIndicator");
spamIndicator.setVisible(tweet.isSpam());
add(spamIndicator);
// final DialogUtilsBehavior dialogUtilsBehavior = new DialogUtilsBehavior();
// add(dialogUtilsBehavior);
final Label label = new Label("tweetText", new Model<String>() {
int counter = 0;
@Override
public String getObject() {
return new Extractor() {
@Override
public String createTagMarkup(String tag, String cleanTag) {
// String url = Helper.TSURL + cleanTag;
return "<a class=\"i-tw-link tw-tag\" "
+ "clean=\"" + cleanTag + "\" "
+ "tag=\"" + tag + " \" "
+ ">" + tag + "</a>";
}
}.setTweet(tweet).setText(translate(tweet)).run().toString();
}
});
label.setEscapeModelStrings(false);
label.setOutputMarkupId(true);
add(label);
ExternalLink dateLink = new ExternalLink("tweetDate",
Helper.toTwitterHref(user.getScreenName(), tweet.getTwitterId()));
String str = "status";
if (tweet.getCreatedAt() != null)
str = Helper.toSimpleDateTime(tweet.getCreatedAt());
Label dateLabel = new Label("tweetDateLabel", str);
dateLink.add(dateLabel);
add(dateLink);
add(new ExternalLink("tweetFav",
Helper.twitterIntentFav(tweet.getTwitterId())));
add(new ExternalLink("tweetReply",
Helper.twitterIntentReply(tweet.getTwitterId())));
add(new AjaxFallbackLink("tweetRetweet") {
@Override
public void onClick(AjaxRequestTarget target) {
onRetweet(tweet, target);
}
});
IndicatingAjaxFallbackLink inReplyOfButton = new IndicatingAjaxFallbackLink("inreplyof") {
@Override
public void onClick(AjaxRequestTarget target) {
if (target != null) {
subTweets.clear();
target.addComponent(OneTweet.this);
if (!inReplyOfClicked)
subTweets.addAll(onInReplyOfClick(tweet.getInReplyTwitterId()));
inReplyOfClicked = !inReplyOfClicked;
}
}
};
add(inReplyOfButton);
if (JTweet.isDefaultInReplyId(tweet.getInReplyTwitterId()))
inReplyOfButton.setVisible(false);
IndicatingAjaxFallbackLink rtLink = new IndicatingAjaxFallbackLink("retweeters") {
@Override
public void onClick(AjaxRequestTarget target) {
if (target != null) {
subTweets.clear();
target.addComponent(OneTweet.this);
if (!rtClicked)
subTweets.addAll(onReplyClick(tweet.getTwitterId(), true));
rtClicked = !rtClicked;
}
}
};
add(rtLink.add(new Label("retweetersLabel", "retweets " + tweet.getRetweetCount())));
if (tweet.getRetweetCount() == 0)
rtLink.setVisible(false);
IndicatingAjaxFallbackLink replyLink = new IndicatingAjaxFallbackLink("replies") {
@Override
public void onClick(AjaxRequestTarget target) {
if (target != null) {
subTweets.clear();
target.addComponent(OneTweet.this);
if (!rpClicked)
subTweets.addAll(onReplyClick(tweet.getTwitterId(), false));
rpClicked = !rpClicked;
}
}
};
add(replyLink.add(new Label("repliesLabel", "replies " + (tweet.getReplyCount() - tweet.getRetweetCount()))));
if (tweet.getReplyCount() == tweet.getRetweetCount())
replyLink.setVisible(false);
add(new AjaxFallbackLink("similarLink") {
@Override