All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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