package org.itsnat.droid.impl.xmlinflater.shared.attr;
import android.graphics.drawable.Drawable;
import org.itsnat.droid.impl.dom.DOMAttr;
import org.itsnat.droid.impl.xmlinflater.AttrContext;
import org.itsnat.droid.impl.xmlinflater.shared.classtree.ClassDesc;
/**
* Created by jmarranz on 30/04/14.
*/
public class AttrDescReflecFieldMethodDrawable<TclassDesc extends ClassDesc,TattrTarget,TattrContext extends AttrContext>
extends AttrDescReflecFieldMethod<TclassDesc,TattrTarget,TattrContext>
{
protected String defaultValue;
public AttrDescReflecFieldMethodDrawable(TclassDesc parent, String name, String fieldName, Class methodClass,String methodName,String defaultValue)
{
super(parent,name,fieldName,methodClass,methodName,Drawable.class);
this.defaultValue = defaultValue;
}
@Override
public void setAttribute(final TattrTarget target, final DOMAttr attr,final TattrContext attrCtx)
{
Drawable convertedValue = getDrawable(attr.getResourceDesc(),attrCtx.getXMLInflaterContext());
callFieldMethod(target, convertedValue);
}
@Override
public void removeAttribute(TattrTarget target, TattrContext attrCtx)
{
if (defaultValue != null) // Para especificar null se ha de usar "@null"
setAttributeToRemove(target, defaultValue,attrCtx); // defaultValue puede ser null (ej attr background), también valdría "@null" en el atributo
}
}