package org.itsnat.droid.impl.xmlinflated.layout; import android.content.Context; import android.view.View; import org.itsnat.droid.ItsNatDroid; import org.itsnat.droid.impl.ItsNatDroidImpl; import org.itsnat.droid.impl.dom.layout.XMLDOMLayout; import org.itsnat.droid.impl.util.MapLight; import org.itsnat.droid.impl.xmlinflated.InflatedXML; import org.itsnat.droid.impl.xmlinflater.layout.ViewMapByXMLId; /** * Created by jmarranz on 16/06/14. */ public abstract class InflatedXMLLayoutImpl extends InflatedXML { protected View rootView; protected ViewMapByXMLId viewMapByXMLId; public InflatedXMLLayoutImpl(ItsNatDroidImpl itsNatDroid, XMLDOMLayout domLayout, Context ctx) { super(itsNatDroid,domLayout,ctx); // rootView se define a posteriori } public XMLDOMLayout getXMLDOMLayout() { return (XMLDOMLayout) xmlDOM; } public String getAndroidNSPrefix() { return getXMLDOMLayout().getAndroidNSPrefix(); } public MapLight<String,String> getRootNamespacesByPrefix() { return getXMLDOMLayout().getRootNamespacesByPrefix(); } public String getRootNamespaceByPrefix(String prefix) { return getXMLDOMLayout().getRootNamespaceByPrefix(prefix); } public ItsNatDroid getItsNatDroid() { return getItsNatDroidImpl(); } public View getRootView() { return rootView; } public void setRootView(View rootView) { this.rootView = rootView; } public View findViewByXMLId(String id) { if (viewMapByXMLId == null) return null; return viewMapByXMLId.findViewByXMLId(id); } public ViewMapByXMLId getViewMapByXMLId() { if (viewMapByXMLId == null) viewMapByXMLId = new ViewMapByXMLId(this); return viewMapByXMLId; } public String unsetXMLId(View view) { return getViewMapByXMLId().unsetXMLId(view); } public String getXMLId(View view) { return getViewMapByXMLId().getXMLId(view); } public void setXMLId(String id, View view) { getViewMapByXMLId().setXMLId(id, view); } /* public static int getChildViewIndex(ViewGroup parentView, View view) { if (view.getParent() != parentView) throw new ItsNatDroidException("View must be a direct child of parent View"); // Esto es una chapuza pero no hay opciĆ³n int size = parentView.getChildCount(); for(int i = 0; i < size; i++) { if (parentView.getChildAt(i) == view) return i; } return -1; // No es hijo directo } */ }