package org.itsnat.droid.impl.xmlinflater.animlayout;
import android.view.animation.LayoutAnimationController;
import org.itsnat.droid.AttrResourceInflaterListener;
import org.itsnat.droid.impl.dom.animlayout.DOMElemLayoutAnimation;
import org.itsnat.droid.impl.dom.animlayout.XMLDOMLayoutAnimation;
import org.itsnat.droid.impl.xmlinflated.animlayout.InflatedXMLLayoutAnimation;
import org.itsnat.droid.impl.xmlinflater.XMLInflaterResource;
import org.itsnat.droid.impl.xmlinflater.animlayout.classtree.ClassDescLayoutAnimationBased;
/**
* Created by jmarranz on 4/11/14.
*/
public class XMLInflaterLayoutAnimation extends XMLInflaterResource<LayoutAnimationController>
{
protected XMLInflaterLayoutAnimation(InflatedXMLLayoutAnimation inflatedXML, int bitmapDensityReference, AttrResourceInflaterListener attrResourceInflaterListener)
{
super(inflatedXML, bitmapDensityReference, attrResourceInflaterListener);
}
public static XMLInflaterLayoutAnimation createXMLInflaterLayoutAnimation(InflatedXMLLayoutAnimation inflatedLayoutAnimation, int bitmapDensityReference, AttrResourceInflaterListener attrResourceInflaterListener)
{
return new XMLInflaterLayoutAnimation(inflatedLayoutAnimation,bitmapDensityReference,attrResourceInflaterListener);
}
@SuppressWarnings("unchecked")
public ClassDescLayoutAnimationBased<LayoutAnimationController> getClassDescLayoutAnimationBased(DOMElemLayoutAnimation domElemLayoutAnimation)
{
ClassDescLayoutAnimationMgr classDescMgr = getInflatedXMLLayoutAnimation().getXMLInflaterRegistry().getClassDescLayoutAnimationMgr();
return classDescMgr.get(domElemLayoutAnimation.getTagName());
}
public InflatedXMLLayoutAnimation getInflatedXMLLayoutAnimation()
{
return (InflatedXMLLayoutAnimation)inflatedXML;
}
public LayoutAnimationController inflateLayoutAnimation()
{
return inflateRoot(getInflatedXMLLayoutAnimation().getXMLDOMLayoutAnimation());
}
private LayoutAnimationController inflateRoot(XMLDOMLayoutAnimation xmlDOMLayoutAnimation)
{
DOMElemLayoutAnimation rootDOMElem = (DOMElemLayoutAnimation)xmlDOMLayoutAnimation.getRootDOMElement();
AttrLayoutAnimationContext attrCtx = new AttrLayoutAnimationContext(this);
ClassDescLayoutAnimationBased<LayoutAnimationController> classDesc = getClassDescLayoutAnimationBased(rootDOMElem);
LayoutAnimationController animationRoot = classDesc.createRootResourceAndFillAttributes(rootDOMElem, attrCtx);
// NO HAY HIJOS
return animationRoot;
}
}