/* WidgetAttribute.java
Purpose:
Description:
History:
Thu Jun 10 11:36:07 TST 2010, Created by tomyeh
Copyright (C) 2010 Potix Corporation. All Rights Reserved.
*/
package org.zkoss.zk.ui.metainfo;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.util.ConditionImpl;
import org.zkoss.zk.xel.EvaluatorRef;
import org.zkoss.zk.xel.ExValue;
/**
* Represents a DOM attribute of the peer widget.
*
* @author tomyeh
* @since 5.0.3
* @see WidgetListener
*/
public class WidgetAttribute extends ConditionValue {
private static final long serialVersionUID = 20081213L;
protected final String _name;
protected final ExValue _value;
/**
* @param name the event name, such as onClick
* @param value the value. EL is allowed and it will be coerced to String
* @exception IllegalArgumentException if value is null
*/
public WidgetAttribute(EvaluatorRef evalr, String name, String value, ConditionImpl cond) {
super(evalr, cond);
if (name == null || value == null)
throw new IllegalArgumentException();
_name = name;
_value = value != null ? new ExValue(value, String.class) : null;
}
/** Returns the event name, such as, onClick.
*/
public String getName() {
return _name;
}
/** Returns the value associated with this event handler.
*/
public String getValue(Component comp) {
return _value != null ? (String) _value.getValue(_evalr, comp) : null;
}
/** Returns the value passed to the constructor.
* In other words, it might contains EL.
*/
public String getRawValue() {
return _value != null ? _value.getRawValue() : null;
}
public void assign(Component comp) {
if (isEffective(comp))
comp.setClientAttribute(_name, getValue(comp));
}
}