[prev in list] [next in list] [prev in thread] [next in thread]
List: tapestry-user
Subject: RE: Rollover-like component to submit forms
From: Paul Ferraro <pmf8 () columbia ! edu>
Date: 2004-09-30 20:41:28
Message-ID: 415C6F78.2080708 () columbia ! edu
[Download RAW message or body]
A few people asked if I would post this component to the list. Enjoy...
Paul
RolloverSubmit.jwc
================
<?xml version="1.0"?>
<!DOCTYPE component-specification PUBLIC "-//Apache Software
Foundation//Tapestry Specification 3.0//EN"
"http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
<component-specification class="RolloverSubmit" allow-body="no"
allow-informal-parameters="yes">
<parameter name="name" property-name="nameOverride"
type="java.lang.String" direction="in"></parameter>
<parameter name="disabled" type="boolean" direction="in"></parameter>
<parameter name="image" type="org.apache.tapestry.IAsset"
direction="in" required="yes"></parameter>
<parameter name="disabledImage" type="org.apache.tapestry.IAsset"
direction="in"></parameter>
<parameter name="focusImage" type="org.apache.tapestry.IAsset"
direction="in" required="yes"></parameter>
<parameter name="blurImage" type="org.apache.tapestry.IAsset"
direction="in"></parameter>
<parameter name="point" type="java.awt.Point"></parameter>
<parameter name="selected" type="java.lang.Object"></parameter>
<parameter name="tag" type="java.lang.Object"
direction="in"></parameter>
<parameter name="listener" type="org.apache.tapestry.IActionListener"
direction="in"></parameter>
<reserved-parameter name="type"/>
<reserved-parameter name="src"/>
<reserved-parameter name="border"/>
<reserved-parameter name="onmouseover"/>
<reserved-parameter name="onmouseout"/>
<property-specification name="name" type="java.lang.String"/>
<property-specification name="form" type="org.apache.tapestry.IForm"/>
</component-specification>
RolloverSubmit.java
=================
public abstract class RolloverSubmit extends ImageSubmit
{
public abstract IAsset getFocusImage();
public abstract IAsset getBlurImage();
private IScript script;
protected void renderInformalParameters(IMarkupWriter writer,
IRequestCycle requestCycle)
{
IAsset focusImage = this.getFocusImage();
IAsset blurImage = this.getBlurImage();
if (!this.isDisabled())
{
String focusImageReference = getImageReference(focusImage,
requestCycle);
String blurImageReference = getImageReference((blurImage ==
null) ? this.getImage() : blurImage, requestCycle);
writer.attribute(LinkEventType.MOUSE_OVER.getAttributeName(),
"setImageSrc(this, " + focusImageReference + ")");
writer.attribute(LinkEventType.MOUSE_OUT.getAttributeName(),
"setImageSrc(this, " + blurImageReference + ")");
this.script.execute(requestCycle,
Body.get(requestCycle), Collections.EMPTY_MAP);
}
super.renderInformalParameters(writer, requestCycle);
}
private String getImageReference(IAsset asset, IRequestCycle
requestCycle)
{
String imageURL = asset.buildURL(requestCycle);
Body body = Body.get(requestCycle);
String imageReference = body.getPreloadedImageReference(imageURL);
return imageReference.split("\\.")[0];
}
protected void finishLoad()
{
IResourceLocation location =
this.getSpecification().getSpecificationLocation().getRelativeLocation("RolloverSubmit.script");
this.script =
this.getPage().getEngine().getScriptSource().getScript(location);
}
}
RolloverSubmit.script
==================
<?xml version="1.0"?>
<!DOCTYPE script PUBLIC "-//Apache Software Foundation//Tapestry Script
Specification 3.0//EN"
"http://jakarta.apache.org/tapestry/dtd/Script_3_0.dtd">
<script>
<include-script resource-path="RolloverSubmit.js"/>
</script>
RolloverSubmit.js
==================
function setImageSrc(image1, image2) {
if (image1 && image2 && image1.src && image2.src) {
image1.src = image2.src
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic