Implementation of roll-over image. Takes 2 image resource-references: one for initial image, second for mouseover image. Automatically adds javascript for preloading these images. Takes wicket locale and style into consideration.
USAGE: RollOverImage image = new RollOverImage("wicketId", "imageAltText", imageOut, imageOver, null); add(image); Enjoy ;) S&S // CODE //================================================================== package sk.serviceintegra.wisa.component.image.rolloverimage; import java.util.Locale; import org.apache.wicket.AttributeModifier; import org.apache.wicket.RequestCycle; import org.apache.wicket.ResourceReference; import org.apache.wicket.Session; import org.apache.wicket.behavior.StringHeaderContributor; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; import sk.serviceintegra.random.RandomStringGenerator; import sk.serviceintegra.wisa.component.image.extended.ExtendedImage; /** * Roll-over image. * Takes 2 image resource-references: one for initial image, second for mouseover image. * Takes wicket locale and style into consideration. * * <pre> * USAGE: * RollOverImage image = new RollOverImage("wicketId", "imageAltText", imageOut, imageOver, null); * add(image); * </pre> * * @author simik */ public class RollOverImage extends ExtendedImage { private static final long serialVersionUID = -4686703857711636280L; /** * Roll-over image. * * @param wicketId * @param altAttributeModel model, that contains value for ALT attribute in <image> tag * @param imageOut mouseout image * @param imageOver mouseover image * @param style wicket style. Can be null, if not used. */ public RollOverImage(String wicketId, IModel<String> altAttributeModel, ResourceReference imageOut, ResourceReference imageOver, String style) { super(wicketId, imageOut, altAttributeModel); //set locale for ResourceReference Locale locale = Session.get().getLocale(); if (locale != null) { imageOut.setLocale(locale); imageOver.setLocale(locale); } //set style for ResourceReference if (style != null) { imageOut.setStyle(style); imageOver.setStyle(style); } //generate random string for unique image name String uniqueImageName = "Image_" + RandomStringGenerator.generate(10); //HEAD CONTRIBUTION FOR PRELOADING IMAGES /* <script language="JavaScript"> ${IMAGE_IDENTIFIER}_out = new Image(); ${IMAGE_IDENTIFIER}_out.src = "${IMAGE_OUT_URL}"; ${IMAGE_IDENTIFIER}_over = new Image(); ${IMAGE_IDENTIFIER}_over.src = "${IMAGE_OVER_URL}"; </script> */ String imageOutUrl = RequestCycle.get().urlFor(imageOut).toString(); String imageOverUrl = RequestCycle.get().urlFor(imageOver).toString(); String javascript = "<script type=\"text/javascript\">\n" + uniqueImageName + "_out = new Image();\n" + uniqueImageName + "_out.src = \"" + imageOutUrl + "\";\n" + uniqueImageName + "_over = new Image();\n" + uniqueImageName + "_over.src = \"" + imageOverUrl + "\";\n" + "</script>\n"; add(new StringHeaderContributor(javascript)); // HEAD CONTRIBUTION FOR display() function. /* <script language="JavaScript"> function display(imgName, imgUrl) { if (document.images && typeof imgUrl != 'undefined') document[imgName].src = imgUrl.src; } </script> */ String javascript2 = "<script type=\"text/javascript\">" + "<!--/*--><![CDATA[/*><!--*/\n" + "function display(imgName, imgUrl) {\n" + "if (document.images && typeof imgUrl != 'undefined')\n" + "document[imgName].src = imgUrl.src;\n" + "}\n" + "/*-->]]>*/"+ "</script>\n"; add(new StringHeaderContributor(javascript2)); // ADD 3 ATTRIBUTES TO IMAGE: name, onmouseover, onmouseout /* * button_off.GIF */ AttributeModifier nameAtt = new AttributeModifier("name", true, new Model<String>(uniqueImageName)); add(nameAtt); AttributeModifier onMouseOverAtt = new AttributeModifier("onmouseover", true, new Model<String>("display('"+uniqueImageName+"', "+uniqueImageName+"_over);")); add(onMouseOverAtt); AttributeModifier onMouseOutAtt = new AttributeModifier("onmouseout", true, new Model<String>("display('"+uniqueImageName+"', "+uniqueImageName+"_out);")); add(onMouseOutAtt); } } -- View this message in context: http://www.nabble.com/onmouseover-image-tp19567984p19905061.html Sent from the Wicket - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]