twitterのTLを取得してはてなに投稿する計画その1.2
TLを表示して投稿していいか聞く部分
投稿しますか?って文字はhtmlのほうに書いたのだけど、
せっかくなのでLabel使えばよかった
あと70行くらいになってしまいました
可読性を考えると匿名クラスつかわないとか
TL取得部分をクラスわけするとかすればよかった
import java.io.IOException; import java.util.List; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.model.PropertyModel; import twitter4j.Status; import twitter4j.Twitter; import twitter4j.TwitterException; import twitter4j.User; public class GetTlPage extends WebPage { public GetTlPage(final Valuekeeper value) { Twitter twitter = new Twitter(value.getTwitterId(), value .getTwitterPassword()); List<Status> tlList = null; try { tlList = twitter.getFriendsTimeline(); } catch (TwitterException e) { } final StringBuilder tl = new StringBuilder(); add(new ListView<Status>("tlList", tlList) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<Status> item) { Status status = item.getModelObject(); User user = status.getUser(); item.add(new Label("screenName", new PropertyModel<User>(user, "screenName"))); item.add(new Label("text", new PropertyModel<Status>(status, "text"))); tl.append(user.getScreenName()); tl.append(":" + status.getText() + "----"); } }); add(new Link<Void>("YesButton") { private static final long serialVersionUID = 1L; private String result; @Override public void onClick() { HatenaContribution hatena = new HatenaContribution(value, tl); try { hatena.contribute(); result = "投稿しました"; } catch (IOException e) { result = "投稿に失敗しました"; } setResponsePage(new ResultPage(result)); } }); add(new Link<Void>("NoButton") { private static final long serialVersionUID = 1L; @Override public void onClick() { setResponsePage(new HomePage()); } }); } }