public GrabTweetsDialog(String id, String user) {
super(id);
this.userName = user;
final Form form = new Form("grabForm");
final ProgressBar bar = new ProgressBar("bar", new ProgressionModel() {
@Override
protected Progression getProgression() {
if (pkg == null)
return new Progression(0);
return new Progression(pkg.getProgress());
}
}) {
@Override
protected void onFinished(AjaxRequestTarget target) {
logger.info("finished: " + pkg.getProgress() + " canceled:" + pkg.isCanceled());
if (pkg.getException() != null) {
logger.error("Error while storing archive", pkg.getException());
String msg = TwitterSearch.getMessage(pkg.getException());
if (msg.length() > 0)
error(msg);
else
error("Couldn't process your request. Please contact admin "
+ "or twitter.com/jetwick if problem remains!");
} else
info(grabber.getTweetCount() + " tweets were stored for " + grabber.getUserName()
+ ". In approx. 5min they will be searchable.");
GrabTweetsDialog.this.updateAfterAjax(target);
GrabTweetsDialog.this.onClose(target);
started = false;
}
};
form.add(bar);
form.add(new AjaxSubmitLink("ajaxSubmit") {
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
if (!started) {
started = true;
bar.start(target);
final String userName = getUsername();
if (getMaxTweets() > 0) {
grabber.setUserName(userName);
grabber.setTweetsCount(getMaxTweets());
grabber.setTwitterSearch(getTwitterSearch());