#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end import android.app.Activity; import android.app.Fragment; import android.app.FragmentManager; #parse("File Header.java") public class ${NAME} extends Fragment { private static final String FRAG_TAG = ${NAME}.class.getCanonicalName(); public interface ${PARENT_INTERFACE} { //TODO: define methods for parent interface } public static ${NAME} attach(ParentFrag parent) { return attach(parent.getChildFragmentManager()); } public static ${NAME} attach(ParentActivity parent) { return attach(parent.getFragmentManager()); } private static ${NAME} attach(FragmentManager fragmentManager) { ${NAME} frag = (${NAME}) fragmentManager.findFragmentByTag(FRAG_TAG); if (frag == null) { frag = new ${NAME}(); fragmentManager.beginTransaction().add(frag, FRAG_TAG).commit(); } return frag; } private ${PARENT_INTERFACE} getParent() { Fragment parentFragment = getParentFragment(); if (parentFragment instanceof ${PARENT_INTERFACE}) { return (${PARENT_INTERFACE}) parentFragment; } else { Activity activity = getActivity(); if (activity instanceof ${PARENT_INTERFACE}) { return (${PARENT_INTERFACE}) activity; } } return null; } }