package org.itsnat.droid.impl.xmlinflater.drawable.classtree;
import org.itsnat.droid.impl.dom.drawable.DOMElemDrawable;
import org.itsnat.droid.impl.xmlinflated.drawable.ElementDrawableChild;
import org.itsnat.droid.impl.xmlinflated.drawable.ElementDrawableChildBase;
import org.itsnat.droid.impl.xmlinflated.drawable.StateListDrawableChildItem;
import org.itsnat.droid.impl.xmlinflater.drawable.AttrDrawableContext;
import org.itsnat.droid.impl.xmlinflater.drawable.ClassDescDrawableMgr;
import org.itsnat.droid.impl.xmlinflater.shared.attr.AttrDescReflecMethodBoolean;
import org.itsnat.droid.impl.xmlinflater.shared.attr.AttrDescReflecMethodDrawable;
/**
* Created by jmarranz on 10/11/14.
*/
public class ClassDescStateListDrawableChildItem extends ClassDescElementDrawableChildWithDrawable<StateListDrawableChildItem>
{
public ClassDescStateListDrawableChildItem(ClassDescDrawableMgr classMgr)
{
super(classMgr,"selector:item",null);
}
@Override
public Class<StateListDrawableChildItem> getDrawableOrElementDrawableClass()
{
return StateListDrawableChildItem.class;
}
@Override
public ElementDrawableChild createElementDrawableChild(DOMElemDrawable domElement, DOMElemDrawable domElementParent, ElementDrawableChildBase parentChildDrawable, AttrDrawableContext attrCtx)
{
return new StateListDrawableChildItem(parentChildDrawable);
}
@SuppressWarnings("unchecked")
protected void init()
{
super.init();
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "constantSize", false));
addAttrDescAN(new AttrDescReflecMethodDrawable(this, "drawable", "@null"));
// Documentados en https://developer.android.com/guide/topics/resources/drawable-resource.html#StateList
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "state_pressed", false));
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "state_focused", false));
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "state_hovered", false));
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "state_selected", false));
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "state_checkable", false));
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "state_checked", false));
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "state_enabled", false));
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "state_activated", false));
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "state_window_focused", false));
// Presentes en source code y en el javadoc de ICS (level 15) pero no en el tutorial
// http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.3_r1/android/graphics/drawable/StateListDrawable.java
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "state_active", false));
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "state_single", false));
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "state_first", false));
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "state_middle", false));
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "state_last", false));
// En teoria hay más android.R.attr.state_* en level 15 pero no tenemos ni idea de como funcionan
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "variablePadding", false));
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "visible", false));
}
}