/*
* Copyright 2004-2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
package components.taglib;
import components.components.MapComponent;
import components.renderkit.Util;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.el.MethodBinding;
import javax.faces.el.ValueBinding;
import javax.faces.event.ActionEvent;
import javax.faces.webapp.UIComponentTag;
/**
* <p>{@link UIComponentTag} for an image map.</p>
*/
public class MapTag extends UIComponentTag {
private String current = null;
public void setCurrent(String current) {
this.current = current;
}
private String actionListener = null;
public void setActionListener(String actionListener) {
this.actionListener = actionListener;
}
private String action = null;
public void setAction(String action) {
this.action = action;
}
private String immediate = null;
public void setImmediate(String immediate) {
this.immediate = immediate;
}
private String styleClass = null;
public void setStyleClass(String styleClass) {
this.styleClass = styleClass;
}
public String getComponentType() {
return ("DemoMap");
}
public String getRendererType() {
return ("DemoMap");
}
public void release() {
super.release();
current = null;
styleClass = null;
actionListener = null;
action = null;
immediate = null;
styleClass = null;
}
protected void setProperties(UIComponent component) {
super.setProperties(component);
MapComponent map = (MapComponent) component;
// if (current != null) {
// map.setCurrent(current);
// }
if (styleClass != null) {
if (isValueReference(styleClass)) {
ValueBinding vb = FacesContext.getCurrentInstance()
.getApplication().
createValueBinding(styleClass);
map.setValueBinding("styleClass", vb);
} else {
map.getAttributes().put("styleClass", styleClass);
}
}
if (actionListener != null) {
if (isValueReference(actionListener)) {
Class args[] = {ActionEvent.class};
MethodBinding mb = FacesContext.getCurrentInstance()
.getApplication()
.createMethodBinding(actionListener, args);
map.setActionListener(mb);
} else {
Object params [] = {actionListener};
throw new javax.faces.FacesException();
}
}
if (action != null) {
if (isValueReference(action)) {
MethodBinding vb = FacesContext.getCurrentInstance()
.getApplication()
.createMethodBinding(action, null);
map.setAction(vb);
} else {
map.setAction(Util.createConstantMethodBinding(action));
}
}
if (immediate != null) {
if (isValueReference(immediate)) {
ValueBinding vb = FacesContext.getCurrentInstance()
.getApplication().
createValueBinding(immediate);
map.setValueBinding("immediate", vb);
} else {
boolean _immediate = new Boolean(immediate).booleanValue();
map.setImmediate(_immediate);
}
}
}
}