package hu.sch.web.common;
import hu.sch.domain.SpotImage;
import hu.sch.domain.user.User;
import hu.sch.services.UserManagerLocal;
import hu.sch.services.exceptions.NotImplementedException;
import hu.sch.web.wicket.components.ImageResource;
import javax.inject.Inject;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.image.NonCachingImage;
import org.apache.wicket.markup.html.panel.Fragment;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.AbstractReadOnlyModel;
/**
*
* @author messo
* @since 2.4
*/
class RecommendedPhotoPanel extends Panel {
@Inject
UserManagerLocal userManager;
public RecommendedPhotoPanel(String contentId, final String userUid, final User user) {
super(contentId);
final WebMarkupContainer container = new WebMarkupContainer("container");
container.setOutputMarkupId(true);
add(container);
final SpotImage si = userManager.getSpotImage(user);
Fragment fragment = new Fragment("fragment", "prompt", null, null);
container.add(fragment);
Form<?> form = new Form("form");
fragment.add(form);
NonCachingImage photo = new NonCachingImage("photo", new AbstractReadOnlyModel<ImageResource>() {
@Override
public ImageResource getObject() {
// TODO: read image from filesystem
// return new ImageResource(si.getImage(), "png");
throw new NotImplementedException("TODO: read image from file system.");
}
});
fragment.add(photo);
form.add(new AjaxButton("accept") {
@Override
protected void onError(AjaxRequestTarget target, Form<?> form) {
}
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
// elfogadtuk
if (userManager.acceptRecommendedPhoto(userUid)) {
container.replace(new Fragment("fragment", "accepted", null, null));
} else {
container.replace(new Fragment("fragment", "failed", null, null));
}
target.add(container);
}
});
form.add(new AjaxButton("decline") {
@Override
protected void onError(AjaxRequestTarget target, Form<?> form) {
}
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
userManager.declineRecommendedPhoto(user);
container.replace(new Fragment("fragment", "declined", null, null));
target.add(container);
}
});
}
}