package org.itsnat.droid.impl.xmlinflater.anim.attr;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import org.itsnat.droid.impl.dom.DOMAttr;
import org.itsnat.droid.impl.util.MiscUtil;
import org.itsnat.droid.impl.xmlinflater.FieldContainer;
import org.itsnat.droid.impl.xmlinflater.PercFloatImpl;
import org.itsnat.droid.impl.xmlinflater.anim.AttrAnimationContext;
import org.itsnat.droid.impl.xmlinflater.anim.classtree.ClassDescAnimationTranslate;
import org.itsnat.droid.impl.xmlinflater.shared.attr.AttrDesc;
/**
* Created by jmarranz on 30/04/14.
*/
public class AttrDescAnimation_view_animation_TranslateAnimation_fromToXYDelta extends AttrDesc<ClassDescAnimationTranslate,TranslateAnimation,AttrAnimationContext>
{
protected FieldContainer<Integer> fieldMFromToXYType;
protected FieldContainer<Float> fieldMFromToXYValue;
public AttrDescAnimation_view_animation_TranslateAnimation_fromToXYDelta(ClassDescAnimationTranslate parent, String name)
{
super(parent,name);
String fieldMFromToXYTypeName;
String fieldMFromToXYValueName;
if ("fromXDelta".equals(name))
{
fieldMFromToXYTypeName = "mFromXType";
fieldMFromToXYValueName = "mFromXValue";
}
else if ("fromYDelta".equals(name))
{
fieldMFromToXYTypeName = "mFromYType";
fieldMFromToXYValueName = "mFromYValue";
}
else if ("toXDelta".equals(name))
{
fieldMFromToXYTypeName = "mToXType";
fieldMFromToXYValueName = "mToXValue";
}
else if ("toYDelta".equals(name))
{
fieldMFromToXYTypeName = "mToYType";
fieldMFromToXYValueName = "mToYValue";
}
else throw MiscUtil.internalError();
this.fieldMFromToXYType = new FieldContainer<Integer>(TranslateAnimation.class, fieldMFromToXYTypeName);
this.fieldMFromToXYValue = new FieldContainer<Float>(TranslateAnimation.class, fieldMFromToXYValueName);
}
@Override
public void setAttribute(TranslateAnimation translateAnimation, DOMAttr attr, AttrAnimationContext attrCtx)
{
PercFloatImpl convValue = getPercFloat(attr.getResourceDesc(),attrCtx.getXMLInflaterContext());
int fromToXYType;
float fomToXYValue;
if (convValue.isFraction())
{
fromToXYType = convValue.isFractionParent() ? Animation.RELATIVE_TO_PARENT : Animation.RELATIVE_TO_SELF;
fomToXYValue = convValue.toFloatBasedOnDataType();
}
else
{
fromToXYType = Animation.ABSOLUTE;
fomToXYValue = convValue.toFloatBasedOnDataType();
}
fieldMFromToXYType.set(translateAnimation,fromToXYType);
fieldMFromToXYValue.set(translateAnimation,fomToXYValue);
}
@Override
public void removeAttribute(TranslateAnimation translateAnimation, AttrAnimationContext attrCtx)
{
setAttributeToRemove(translateAnimation, "0", attrCtx);
}
}