Dynamically Load/Unload Predefined Resources on an XPage


<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.ibm.com/xsp/core xsdxp://localhost/xsp~core.xsd">
	<xp:this.resources>
		<xp:script src="http://foo/bar.js" clientSide="true"></xp:script>
		<xp:dojoModule name="foo.bar.HelloWorld"></xp:dojoModule>
		<xp:metaData name="foo.bar" content="Hello World"></xp:metaData>
	</xp:this.resources>
	<xp:dataTable id="dataTable1" rows="30" var="resource"
		value="#{javascript:view.getResources()}">
		<xp:column id="column3">
			<xp:link id="lk" text="Unload">
				<xp:eventHandler event="onclick" submit="true"
					refreshMode="complete">
					<xp:this.action><![CDATA[#{javascript:resource.setRendered(false)}]]></xp:this.action>
				</xp:eventHandler>
			</xp:link>
		</xp:column>
		<xp:column id="column4">
			<xp:link id="link1" text="Load">
				<xp:eventHandler event="onclick" submit="true"
					refreshMode="complete">
					<xp:this.action><![CDATA[#{javascript:resource.setRendered(true)}]]></xp:this.action>
				</xp:eventHandler>
			</xp:link>
		</xp:column>
		<xp:column id="column1">
			<xp:text escape="true" id="computedField1"
				value="#{javascript:typeof resource}">
			</xp:text>
		</xp:column>
		<xp:column id="column2">
			<xp:text escape="true" id="computedField2">
				<xp:this.value><![CDATA[#{javascript:var resourceDetails = "";
switch(typeof resource){
	case "com.ibm.xsp.resource.StyleSheetResource" : {
		if(resource.getHref() == null){
			resourceDetails = "media=" + resource.getMedia() +
				" contents=" + resource.getContents();
		}else{
			resourceDetails = resource.getHref();
		}
		break;
	}
	case "com.ibm.xsp.resource.ScriptResource" : {
		resourceDetails = resource.getSrc();
		break;
	}
	case "com.ibm.xsp.resource.BundleResource" : {
		resourceDetails = resource.getSrc();
		break;
	}
	case "com.ibm.xsp.resource.DojoModuleResource" : {
		resourceDetails = resource.getName();
		break;
	}
	case "com.ibm.xsp.resource.LinkResource" : {
		resourceDetails = resource.getHref();
		break;
	}
	case "com.ibm.xsp.resource.MetaDataResource" : {
		resourceDetails = "http-equiv=" + resource.getHttpEquiv() +
			" name=" + resource.getName() +
				" content=" + resource.getContent() +
					" scheme=" + resource.getScheme();
		break;
	}
}
return resourceDetails;}]]></xp:this.value>
			</xp:text>
		</xp:column>
	</xp:dataTable>
</xp:view>
All code submitted to OpenNTF XSnippets, whether submitted as a "Snippet" or in the body of a Comment, is provided under the Apache License Version 2.0. See Terms of Use for full details.
No comments yetLogin first to comment...