package org.itsnat.droid.impl.domparser.layout; import org.itsnat.droid.impl.dom.layout.XMLDOMLayout; import org.itsnat.droid.impl.dom.layout.XMLDOMLayoutPage; import org.itsnat.droid.impl.dom.layout.XMLDOMLayoutPageItsNat; import org.itsnat.droid.impl.domparser.XMLDOMParserContext; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import java.io.IOException; /** * Created by jmarranz on 14/11/14. */ public class XMLDOMLayoutParserPageItsNat extends XMLDOMLayoutParserPage { protected final String itsNatServerVersion; // NO null public XMLDOMLayoutParserPageItsNat(XMLDOMParserContext xmlDOMParserContext, String itsNatServerVersion) { super(xmlDOMParserContext); this.itsNatServerVersion = itsNatServerVersion; } @Override protected void addDOMScriptInline(XmlPullParser parser, XMLDOMLayoutPage domLayout) throws IOException, XmlPullParserException { // Aunque sea una página generada por ItsNat puede tener el scripting desactivado y no generar load script boolean isLoadScript = parser.getAttributeCount() == 1 && "id".equals(parser.getAttributeName(0)) && "itsnat_load_script".equals(parser.getAttributeValue(0)); if (isLoadScript) { // Tratamiento especial while (parser.next() != XmlPullParser.TEXT) /*nop*/ ; String code = parser.getText(); XMLDOMLayoutPageItsNat xmlDOMLayoutPageItsNat = (XMLDOMLayoutPageItsNat)domLayout; xmlDOMLayoutPageItsNat.setLoadInitScript(code); } else super.addDOMScriptInline(parser, domLayout); } @Override public XMLDOMLayout createXMLDOMLayout() { return new XMLDOMLayoutPageItsNat(); } }