package org.itsnat.droid.impl.xmlinflater.animlayout.classtree;
import android.content.Context;
import android.view.animation.GridLayoutAnimationController;
import android.view.animation.LayoutAnimationController;
import org.itsnat.droid.impl.util.MapSmart;
import org.itsnat.droid.impl.xmlinflater.PercFloatImpl;
import org.itsnat.droid.impl.xmlinflater.animlayout.ClassDescLayoutAnimationMgr;
import org.itsnat.droid.impl.xmlinflater.shared.attr.AttrDescReflecMethodNameMultiple;
import org.itsnat.droid.impl.xmlinflater.shared.attr.AttrDescReflecMethodNameSingle;
import org.itsnat.droid.impl.xmlinflater.shared.attr.AttrDescReflecMethodPercFloat;
/**
* Created by Jose on 15/10/2015.
*/
public class ClassDescGridLayoutAnimation extends ClassDescLayoutAnimationBased<GridLayoutAnimationController>
{
public static final MapSmart<String,Integer> directionMap = MapSmart.<String,Integer>create(4);
static
{
directionMap.put("left_to_right", GridLayoutAnimationController.DIRECTION_LEFT_TO_RIGHT); // Animates columns from left to right.
directionMap.put("right_to_left", GridLayoutAnimationController.DIRECTION_RIGHT_TO_LEFT); // Animates columns from right to left.
directionMap.put("top_to_bottom", GridLayoutAnimationController.DIRECTION_TOP_TO_BOTTOM); // Animates rows from top to bottom.
directionMap.put("bottom_to_top", GridLayoutAnimationController.DIRECTION_BOTTOM_TO_TOP); // Animates rows from bottom to top.
}
public static final MapSmart<String,Integer> directionPriorityMap = MapSmart.<String,Integer>create(3);
static
{
directionPriorityMap.put("none", GridLayoutAnimationController.PRIORITY_NONE);
directionPriorityMap.put("column", GridLayoutAnimationController.PRIORITY_COLUMN);
directionPriorityMap.put("row", GridLayoutAnimationController.PRIORITY_ROW);
}
public ClassDescGridLayoutAnimation(ClassDescLayoutAnimationMgr classMgr, ClassDescLayoutAnimationBased<LayoutAnimationController> parentClass)
{
super(classMgr, "gridLayoutAnimation", parentClass);
}
@Override
public Class<GridLayoutAnimationController> getDeclaredClass()
{
return GridLayoutAnimationController.class;
}
@Override
protected GridLayoutAnimationController createResourceNative(Context ctx)
{
return new GridLayoutAnimationController(ctx,null);
}
@Override
public boolean isAttributeIgnored(GridLayoutAnimationController resource, String namespaceURI, String name)
{
return false;
}
@SuppressWarnings("unchecked")
protected void init()
{
super.init();
addAttrDescAN(new AttrDescReflecMethodPercFloat(this,"columnDelay",false,new PercFloatImpl(0)));
addAttrDescAN(new AttrDescReflecMethodNameMultiple(this,"direction", directionMap, "left_to_right|top_to_bottom"));
addAttrDescAN(new AttrDescReflecMethodNameSingle(this,"directionPriority",int.class,directionPriorityMap, "none"));
addAttrDescAN(new AttrDescReflecMethodPercFloat(this,"rowDelay",false,new PercFloatImpl(0)));
}
}