org.wicketstuff.jquery.crop.CroppableImage Maven / Gradle / Ivy
package org.wicketstuff.jquery.crop;
import java.util.HashMap;
import java.util.Map;
import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.util.template.PackageTextTemplate;
/**
 * 
 * @author Edvin Syse 
 * 
 */
public class CroppableImage extends Panel
{
	private static final long serialVersionUID = 1L;
	private WebMarkupContainer container;
	private WebMarkupContainer image;
	private final Map vars;
	public CroppableImage(String id, CropBehaviour behaviour, final String imageUrl,
		final int width, final int height)
	{
		super(id);
		container = new WebMarkupContainer("container");
		container.setOutputMarkupId(true);
		add(container);
		image = new WebMarkupContainer("image");
		image.setOutputMarkupId(true);
		add(image);
		vars = new HashMap();
		vars.put("container", container.getMarkupId());
		vars.put("image", image.getMarkupId());
		vars.put("imageUrl", imageUrl);
		vars.put("width", width);
		vars.put("height", height);
		vars.put("rwidth", width / 2);
		vars.put("rheight", height / 2);
		vars.put("cropBg", urlFor(CropBehaviour.CROP_BG, null));
		image.add(behaviour);
	}
	@Override
	public void renderHead(IHeaderResponse response)
	{
		super.renderHead(response);
		PackageTextTemplate template = new PackageTextTemplate(CroppableImage.class, "crop.css");
		String css = template.interpolate(vars).asString();
		response.render(CssHeaderItem.forCSS(css, "croppable-image." + getMarkupId()));
	}
}
       © 2015 - 2025 Weber Informatics LLC | Privacy Policy