package org.itsnat.droid.impl.xmlinflater.layout.classtree;
import org.itsnat.droid.impl.xmlinflater.layout.ClassDescViewMgr;
import org.itsnat.droid.impl.xmlinflater.layout.attr.ImeOptionsUtil;
import org.itsnat.droid.impl.xmlinflater.layout.attr.InputTypeUtil;
import org.itsnat.droid.impl.xmlinflater.layout.attr.widget.AttrDescView_widget_TextView_autoLink;
import org.itsnat.droid.impl.xmlinflater.layout.attr.widget.AttrDescView_widget_TextView_bufferType;
import org.itsnat.droid.impl.xmlinflater.layout.attr.widget.AttrDescView_widget_TextView_drawable_rect;
import org.itsnat.droid.impl.xmlinflater.layout.attr.widget.AttrDescView_widget_TextView_ellipsize;
import org.itsnat.droid.impl.xmlinflater.layout.attr.widget.AttrDescView_widget_TextView_fontFamily;
import org.itsnat.droid.impl.xmlinflater.layout.attr.widget.AttrDescView_widget_TextView_imeActionId;
import org.itsnat.droid.impl.xmlinflater.layout.attr.widget.AttrDescView_widget_TextView_imeActionLabel;
import org.itsnat.droid.impl.xmlinflater.layout.attr.widget.AttrDescView_widget_TextView_lineSpacingExtra;
import org.itsnat.droid.impl.xmlinflater.layout.attr.widget.AttrDescView_widget_TextView_lineSpacingMultiplier;
import org.itsnat.droid.impl.xmlinflater.layout.attr.widget.AttrDescView_widget_TextView_marqueeRepeatLimit;
import org.itsnat.droid.impl.xmlinflater.layout.attr.widget.AttrDescView_widget_TextView_maxLength;
import org.itsnat.droid.impl.xmlinflater.layout.attr.widget.AttrDescView_widget_TextView_shadowLayer_base;
import org.itsnat.droid.impl.xmlinflater.layout.attr.widget.AttrDescView_widget_TextView_textAllCaps;
import org.itsnat.droid.impl.xmlinflater.layout.attr.widget.AttrDescView_widget_TextView_textAppearance;
import org.itsnat.droid.impl.xmlinflater.layout.attr.widget.AttrDescView_widget_TextView_textSize;
import org.itsnat.droid.impl.xmlinflater.layout.attr.widget.AttrDescView_widget_TextView_textStyle;
import org.itsnat.droid.impl.xmlinflater.layout.attr.widget.AttrDescView_widget_TextView_typeface;
import org.itsnat.droid.impl.xmlinflater.shared.GravityUtil;
import org.itsnat.droid.impl.xmlinflater.shared.attr.AttrDescReflecMethodBoolean;
import org.itsnat.droid.impl.xmlinflater.shared.attr.AttrDescReflecMethodCharSequence;
import org.itsnat.droid.impl.xmlinflater.shared.attr.AttrDescReflecMethodColor;
import org.itsnat.droid.impl.xmlinflater.shared.attr.AttrDescReflecMethodDimensionIntRound;
import org.itsnat.droid.impl.xmlinflater.shared.attr.AttrDescReflecMethodFloat;
import org.itsnat.droid.impl.xmlinflater.shared.attr.AttrDescReflecMethodInt;
import org.itsnat.droid.impl.xmlinflater.shared.attr.AttrDescReflecMethodNameMultiple;
import org.itsnat.droid.impl.xmlinflater.shared.attr.AttrDescReflecMethodString;
/**
* Created by jmarranz on 30/04/14.
*/
public class ClassDescView_widget_TextView extends ClassDescViewBased
{
public ClassDescView_widget_TextView(ClassDescViewMgr classMgr,ClassDescView_view_View parentClass)
{
super(classMgr,"android.widget.TextView",parentClass);
}
@SuppressWarnings("unchecked")
protected void init()
{
super.init();
addAttrDescAN(new AttrDescView_widget_TextView_autoLink(this));
// android:autoText está deprecated desde Level 3, no se implementarlo y tiene alternativa (inputType)
// android:breakStrategy es level 23
addAttrDescAN(new AttrDescView_widget_TextView_bufferType(this));
// android:capitalize está deprecated desde Level 3, no se implementarlo y tiene alternativa (inputType)
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "cursorVisible", true));
// android:digits no se implementarlo y mi impresión es que es similar a autoText, capitalize etc (en teoría no está deprecated)
addAttrDescAN(new AttrDescView_widget_TextView_drawable_rect(this, "drawableBottom"));
addAttrDescAN(new AttrDescView_widget_TextView_drawable_rect(this, "drawableLeft"));
addAttrDescAN(new AttrDescView_widget_TextView_drawable_rect(this, "drawableRight"));
addAttrDescAN(new AttrDescView_widget_TextView_drawable_rect(this, "drawableTop"));
// android:drawableStart y android:drawableEnd en teoría existen pero su acceso via métodos es desde Level 17 y no los veo relevantes (desde level 16 hay muchos problemas)
//addAttrDescAN(new AttrDescView_widget_TextView_drawable_relative_NOFUNCIONA(this, "drawableStart"));
//addAttrDescAN(new AttrDescView_widget_TextView_drawable_relative_NOFUNCIONA(this, "drawableEnd"));
// android:drawableTint y android:drawableTintMode son level 23
addAttrDescAN(new AttrDescReflecMethodDimensionIntRound(this, "drawablePadding", "setCompoundDrawablePadding", 0f));
// android:editable está deprecated desde Level 3, no se implementarlo y tiene alternativa (inputType)
// android:editorExtras tiene un bug y no funciona ni con un layout compilado: https://code.google.com/p/android/issues/detail?id=38122
// android:elegantTextHeight es level 21
addAttrDescAN(new AttrDescView_widget_TextView_ellipsize(this));
addAttrDescAN(new AttrDescReflecMethodInt(this, "ems", -1));
addAttrDescAN(new AttrDescView_widget_TextView_fontFamily(this));
// android:fontFeatureSetting es level 21
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "freezesText", false));
addAttrDescAN(new AttrDescReflecMethodNameMultiple(this, "gravity", GravityUtil.nameValueMap, "top|start"));
addAttrDescAN(new AttrDescReflecMethodDimensionIntRound(this, "height", -1f));
addAttrDescAN(new AttrDescReflecMethodCharSequence(this, "hint", ""));
// android:hyphenationFrequency es level 23
addAttrDescAN(new AttrDescView_widget_TextView_imeActionId(this));
addAttrDescAN(new AttrDescView_widget_TextView_imeActionLabel(this));
addAttrDescAN(new AttrDescReflecMethodNameMultiple(this, "imeOptions", ImeOptionsUtil.nameValueMap, "actionUnspecified"));
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "includeFontPadding", true));
// android:inputMethod lleva deprecated desde Level 3, mal documentado, es difícil de implementar y tiene substituto en inputType
// una clase de ejemplo podría ser android.text.method.DateTimeInputMethod
addAttrDescAN(new AttrDescReflecMethodNameMultiple(this, "inputType", InputTypeUtil.nameValueMap, "text")); // No estoy seguro que el valor por defecto sea "text" pero parece el más razonable
// android:letterSpacing es level 21
addAttrDescAN(new AttrDescView_widget_TextView_lineSpacingExtra(this));
addAttrDescAN(new AttrDescView_widget_TextView_lineSpacingMultiplier(this));
addAttrDescAN(new AttrDescReflecMethodInt(this, "lines", -1));
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "linksClickable", true));
addAttrDescAN(new AttrDescView_widget_TextView_marqueeRepeatLimit(this));
addAttrDescAN(new AttrDescReflecMethodInt(this, "maxEms", -1));
addAttrDescAN(new AttrDescReflecMethodDimensionIntRound(this, "maxHeight", -1f));
addAttrDescAN(new AttrDescView_widget_TextView_maxLength(this));
addAttrDescAN(new AttrDescReflecMethodInt(this, "maxLines", -1));
addAttrDescAN(new AttrDescReflecMethodDimensionIntRound(this, "maxWidth", -1f));
addAttrDescAN(new AttrDescReflecMethodInt(this, "minEms", -1));
addAttrDescAN(new AttrDescReflecMethodDimensionIntRound(this, "minHeight", -1f));
addAttrDescAN(new AttrDescReflecMethodInt(this, "minLines", -1));
addAttrDescAN(new AttrDescReflecMethodDimensionIntRound(this, "minWidth", -1f));
// android:numeric está deprecated desde Level 3, no se implementarlo y tiene alternativa (inputType)
// android:password está deprecated desde Level 3, no se implementarlo y tiene alternativa (inputType)
// android:phoneNumber está deprecated desde Level 3, no se implementarlo y tiene alternativa (inputType)
addAttrDescAN(new AttrDescReflecMethodString(this, "privateImeOptions", ""));
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "scrollHorizontally", "setHorizontallyScrolling", false));
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "selectAllOnFocus", false));
addAttrDescAN(new AttrDescView_widget_TextView_shadowLayer_base(this, "shadowColor"));
addAttrDescAN(new AttrDescView_widget_TextView_shadowLayer_base(this, "shadowDx"));
addAttrDescAN(new AttrDescView_widget_TextView_shadowLayer_base(this, "shadowDy"));
addAttrDescAN(new AttrDescView_widget_TextView_shadowLayer_base(this, "shadowRadius"));
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "singleLine", false));
addAttrDescAN(new AttrDescReflecMethodCharSequence(this, "text", "")); // El tipo de CharSequence resultante (Spannable etc) depende del bufferType definido pero el orden no importa pues al definir el bufferType exige dar el texto como param para "retransformarlo"
addAttrDescAN(new AttrDescView_widget_TextView_textAllCaps(this));
addAttrDescAN(new AttrDescView_widget_TextView_textAppearance(this)); // "textAppearance"
addAttrDescAN(new AttrDescReflecMethodColor(this, "textColor", "#000000"));
addAttrDescAN(new AttrDescReflecMethodColor(this, "textColorHighlight", "setHighlightColor", 0));
addAttrDescAN(new AttrDescReflecMethodColor(this, "textColorHint", "setHintTextColor", 0));
addAttrDescAN(new AttrDescReflecMethodColor(this, "textColorLink", "setLinkTextColor", 0));
addAttrDescAN(new AttrDescReflecMethodBoolean(this, "textIsSelectable", false));
addAttrDescAN(new AttrDescReflecMethodFloat(this, "textScaleX", 1.0f));
// No, no es un error, no hay textScaleY (en Level 15 ni en superiores)
addAttrDescAN(new AttrDescView_widget_TextView_textSize(this)); // textSize
addAttrDescAN(new AttrDescView_widget_TextView_textStyle(this));
addAttrDescAN(new AttrDescView_widget_TextView_typeface(this));
addAttrDescAN(new AttrDescReflecMethodDimensionIntRound(this, "width", -1f));
}
}