package org.itsnat.droid.impl.xmlinflater.layout.attr.view;
import android.view.View;
import org.itsnat.droid.impl.dom.DOMAttr;
import org.itsnat.droid.impl.util.MapSmart;
import org.itsnat.droid.impl.xmlinflater.MethodContainer;
import org.itsnat.droid.impl.xmlinflater.layout.AttrLayoutContext;
import org.itsnat.droid.impl.xmlinflater.layout.classtree.ClassDescViewBased;
import org.itsnat.droid.impl.xmlinflater.shared.attr.AttrDesc;
/**
* Created by jmarranz on 30/04/14.
*/
public class AttrDescView_view_View_scrollbars extends AttrDesc<ClassDescViewBased,View,AttrLayoutContext>
{
public static final MapSmart<String,Integer> valueMap = MapSmart.<String,Integer>create( 3 );
static
{
valueMap.put("none",0); // SCROLLBARS_NONE
valueMap.put("horizontal", 0x00000100); // SCROLLBARS_HORIZONTAL
valueMap.put("vertical", 0x00000200); // SCROLLBARS_VERTICAL
}
protected static final int SCROLLBARS_MASK = 0x00000300;
protected MethodContainer<Void> methodSetFlags;
public AttrDescView_view_View_scrollbars(ClassDescViewBased parent)
{
super(parent,"scrollbars");
this.methodSetFlags = new MethodContainer<Void>(parent.getDeclaredClass(),"setFlags",new Class[]{int.class, int.class});
}
@Override
public void setAttribute(View view, DOMAttr attr, AttrLayoutContext attrCtx)
{
int scrollbars = parseMultipleName(attr.getValue(), valueMap);
setFlags(view, scrollbars, SCROLLBARS_MASK);
}
@Override
public void removeAttribute(View view, AttrLayoutContext attrCtx)
{
setAttributeToRemove(view, "none",attrCtx);
}
protected void setFlags(View view,int scrollbars,int scrollbarsMask)
{
methodSetFlags.invoke(view, scrollbars, scrollbarsMask);
}
}