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]