/* * 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); } }