blob: 594923f5fde3b4f4d1eb6dd3ec78ec9617372736 [file] [log] [blame]
/*
* Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or
* without modification, are permitted provided that the following
* conditions are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistribution in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* Neither the name of Sun Microsystems, Inc. or the names of
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* This software is provided "AS IS," without a warranty of any
* kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
* WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
* EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY
* DAMAGES OR LIABILITIES SUFFERED BY LICENSEE AS A RESULT OF OR
* RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE OR
* ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE
* FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT,
* SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
* CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF
* THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS
* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*
* You acknowledge that this software is not designed, licensed or
* intended for use in the design, construction, operation or
* maintenance of any nuclear facility.
*/
package org.apache.cocoon.faces.samples.components.taglib;
import org.apache.cocoon.faces.FacesUtils;
import org.apache.cocoon.faces.taglib.UIComponentTag;
import org.apache.cocoon.faces.samples.components.components.AreaComponent;
import org.apache.cocoon.faces.samples.components.renderkit.Util;
import javax.faces.component.UIComponent;
import javax.faces.component.ValueHolder;
/**
* <p>{@link UIComponentTag} for an image map hotspot.</p>
*/
public class AreaTag extends UIComponentTag {
private String alt = null;
public void setAlt(String alt) {
this.alt = alt;
}
private String targetImage = null;
public void setTargetImage(String targetImage) {
this.targetImage = targetImage;
}
private String coords = null;
public void setCoords(String coords) {
this.coords = coords;
}
private String onmouseout = null;
public void setOnmouseout(String newonmouseout) {
onmouseout = newonmouseout;
}
private String onmouseover = null;
public void setOnmouseover(String newonmouseover) {
onmouseover = newonmouseover;
}
private String shape = null;
public void setShape(String shape) {
this.shape = shape;
}
private String styleClass = null;
public void setStyleClass(String styleClass) {
this.styleClass = styleClass;
}
private String value = null;
public void setValue(String newValue) {
value = newValue;
}
public String getComponentType() {
return ("DemoArea");
}
public String getRendererType() {
return ("DemoArea");
}
public void recycle() {
super.recycle();
this.alt = null;
this.coords = null;
this.onmouseout = null;
this.onmouseover = null;
this.shape = null;
this.styleClass = null;
this.value = null;
}
protected void setProperties(UIComponent component) {
super.setProperties(component);
AreaComponent area = (AreaComponent) component;
if (alt != null) {
if (FacesUtils.isExpression(alt)) {
area.setValueBinding("alt", Util.getValueBinding(alt));
} else {
area.getAttributes().put("alt", alt);
}
}
if (coords != null) {
if (FacesUtils.isExpression(coords)) {
area.setValueBinding("coords", Util.getValueBinding(coords));
} else {
area.getAttributes().put("coords", coords);
}
}
if (onmouseout != null) {
if (FacesUtils.isExpression(onmouseout)) {
area.setValueBinding("onmouseout",
Util.getValueBinding(onmouseout));
} else {
area.getAttributes().put("onmouseout", onmouseout);
}
}
if (onmouseover != null) {
if (FacesUtils.isExpression(onmouseover)) {
area.setValueBinding("onmouseover",
Util.getValueBinding(onmouseover));
} else {
area.getAttributes().put("onmouseover", onmouseover);
}
}
if (shape != null) {
if (FacesUtils.isExpression(shape)) {
area.setValueBinding("shape", Util.getValueBinding(shape));
} else {
area.getAttributes().put("shape", shape);
}
}
if (styleClass != null) {
if (FacesUtils.isExpression(styleClass)) {
area.setValueBinding("styleClass",
Util.getValueBinding(styleClass));
} else {
area.getAttributes().put("styleClass", styleClass);
}
}
if (component instanceof ValueHolder) {
ValueHolder valueHolder = (ValueHolder) component;
if (value != null) {
if (FacesUtils.isExpression(value)) {
area.setValueBinding("value", Util.getValueBinding(value));
} else {
valueHolder.setValue(value);
}
}
}
// target image is required
area.setTargetImage(targetImage);
}
}