Wicket Image with Javascript
May 15, 2008
a very simple wicket image with javascript behavior. JsImage is nice to use as a link or a button.
JsImage
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.behavior.AttributeAppender;import org.apache.wicket.markup.html.image.Image;
import org.apache.wicket.model.Model;public class JsImage extends Image {
private String baseImage;
private String onMouseOverImage;
private String onMouseOutImage;
private String onMouseUpImage;
private String onMouseDownImage;
public JsImage(String id, String baseImage) {
super(id);
this.baseImage = baseImage;
if(StringUtils.isNotBlank(baseImage))
add(new AttributeModifier(“src”, true, new Model(baseImage)));
else
throw new WicketRuntimeException(“baseImage can not be null or empty”);
}
public String getBaseImage() {
return baseImage;
}
public void setBaseImage(String baseImage) {
this.baseImage = baseImage;
}
public String getOnMouseOverImage() {
return onMouseOverImage;
}
public void setOnMouseOverImage(String onMouseOverImage) {
this.onMouseOverImage = onMouseOverImage;
if(StringUtils.isNotBlank(onMouseOverImage))
EztImage.this.add(new AttributeAppender(“onmouseover”, new Model(“this.src = ‘” + onMouseOverImage + “‘;”), “;”));
}
public String getOnMouseOutImage() {
return onMouseOutImage;
}
public void setOnMouseOutImage(String onMouseOutImage) {
this.onMouseOutImage = onMouseOutImage;
if(StringUtils.isNotBlank(onMouseOutImage))
EztImage.this.add(new AttributeAppender(“onmouseout”, new Model(“this.src = ‘” + onMouseOutImage + “‘;”), “;”));
}
public String getOnMouseUpImage() {
return onMouseUpImage;
}
public void setOnMouseUpImage(String onMouseUpImage) {
this.onMouseUpImage = onMouseUpImage;
if(StringUtils.isNotBlank(onMouseUpImage))
EztImage.this.add(new AttributeAppender(“onmouseup”, new Model(“this.src = ‘” + onMouseUpImage + “‘;”), “;”));
}
public String getOnMouseDownImage() {
return onMouseDownImage;
}
public void setOnMouseDownImage(String onMouseDownImage) {
this.onMouseDownImage = onMouseDownImage;
if(StringUtils.isNotBlank(onMouseDownImage))
EztImage.this.add(new AttributeAppender(“onmousedown”, new Model(“this.src = ‘” + onMouseDownImage + “‘;”), “;”));
}
}
Wicket Auto Reloading Classes
April 24, 2008
web.xml
<filter>
<filter-name>wicket</filter-name>
<filter-class>ghost.wicket.apps.MyReloadingFilter</filter-class>
<init-param>
<param-name>applicationClassName</param-name>
<param-value>ghost.wicket.apps.MyWebApplication</param-value>
</init-param>
</filter>
MyReloadingFilter
public class MyReloadingFilter extends ReloadingWicketFilter
{
static
{
ReloadingClassLoader.includePattern(“ghost.wicket.*”);
ReloadingClassLoader.excludePattern(“ghost.wicket.bo.*”);
ReloadingClassLoader.excludePattern(“ghost.wicket.apps.MyWebSession”);
}
}
Simply replace your wicket filter with your custom filter to enable wicket automatically reload your class files on the fly, so that you no need to restart server to update your changes to your class file.
