package org.itsnat.droid.impl.xmlinflater.layout.classtree;
import android.content.Context;
import android.view.View;
import org.itsnat.droid.impl.dom.DOMAttr;
import org.itsnat.droid.impl.util.MiscUtil;
import org.itsnat.droid.impl.xmlinflated.layout._IncludeFakeViewGroup_;
import org.itsnat.droid.impl.xmlinflater.layout.AttrLayoutContext;
import org.itsnat.droid.impl.xmlinflater.layout.ClassDescViewMgr;
import org.itsnat.droid.impl.xmlinflater.layout.PendingPostInsertChildrenTasks;
import org.itsnat.droid.impl.xmlinflater.layout.attr.AttrDesc_Include_layout;
/**
* Created by jmarranz on 30/04/14.
*/
public class ClassDescView_Include extends ClassDescViewBased
{
public ClassDescView_Include(ClassDescViewMgr classMgr, ClassDescView_widget_FrameLayout parentClass)
{
super(classMgr,"include",parentClass);
}
@Override
@SuppressWarnings("unchecked")
protected Class<View> resolveClass()
{
return (Class<View>)MiscUtil.resolveClass(_IncludeFakeViewGroup_.class.getName());
}
@Override
protected boolean setAttributeThisClass(final View view,final DOMAttr attr,final AttrLayoutContext attrCtx)
{
// Se redefine totalmente porque necesitamos memorizar los atributos (excepto el layout)
if (attr.getNamespaceURI() == null && attr.getName().equals("layout"))
return super.setAttributeThisClass(view, attr, attrCtx);
((_IncludeFakeViewGroup_)view).saveAttrib(attr);
return true; // No los estamos ignorando
}
@Override
protected View createViewObject(int idStyle,PendingPostInsertChildrenTasks pendingPostInsertChildrenTasks,Context ctx)
{
return new _IncludeFakeViewGroup_(ctx);
}
protected void init()
{
super.init();
addAttrDescNoNS(new AttrDesc_Include_layout(this)); // OJO llamamos a addAttrDescNoNS porque NO tiene namespace
}
}