package org.itsnat.droid.impl.xmlinflater.layout.attr.gesture;
import android.graphics.Paint;
import android.view.View;
import org.itsnat.droid.impl.xmlinflater.FieldContainer;
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.AttrDescReflecMethodColor;
/**
* Created by jmarranz on 30/04/14.
*/
public class AttrDescView_gesture_GestureOverlayView_gestureColor extends AttrDescReflecMethodColor<ClassDescViewBased,View,AttrLayoutContext>
{
protected FieldContainer<Paint> fieldGesturePaint;
protected MethodContainer<Void> methodPaintSetColor;
protected FieldContainer<Integer> fieldCurrentColor;
public AttrDescView_gesture_GestureOverlayView_gestureColor(ClassDescViewBased parent)
{
super(parent,"gestureColor","#ffff00"/*yellow*/);
this.fieldGesturePaint = new FieldContainer<Paint>(parent.getDeclaredClass(),"mGesturePaint");
this.methodPaintSetColor = new MethodContainer<Void>(fieldGesturePaint.getField().getType(),"setColor",new Class[]{int.class});
this.fieldCurrentColor = new FieldContainer<Integer>(parent.getDeclaredClass(),"mCurrentColor");
}
@Override
protected void callMethod(View view, Object convertedValue)
{
super.callMethod(view,convertedValue);
// Tenemos que hacer más cosas:
Paint paint = fieldGesturePaint.get(view);
methodPaintSetColor.invoke(paint,(Integer)convertedValue);
fieldCurrentColor.set(view,(Integer)convertedValue);
}
}