You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xang-cvs@xml.apache.org by md...@locus.apache.org on 2000/09/13 20:40:26 UTC
cvs commit: xml-xang/java/samples system.script.xml editor.script.xml
mdierken 00/09/13 11:40:26
Added: java/samples system.script.xml editor.script.xml
Log:
Moved common script files.
Revision Changes Path
1.1 xml-xang/java/samples/system.script.xml
Index: system.script.xml
===================================================================
<script >
<![CDATA[
function debug(s)
{
Packages.java.lang.System.out.println(s);
}
function getInheritedAttribute(element,name)
{
var value;
value=null;
while ((element != null) && (element.getNodeType() == 1))
{
value = element.getAttribute(name);
if (value != null && value != "")
break;
element = element.getParentNode();
}
return value;
}
function getLayout(element)
{
return getInheritedAttribute(element,'layout');
}
/**
* This determines which XSL stylesheet to use and applies the stylesheet to the targeted
* element.
*/
function get(context,returnTypes,parameters)
{
var doc;
var layout;
debug('in get()');
doc = context.getResponse().getWriter();
// check for object
if (xml == null)
{
context.getResponse().sendError(404,"Page not found.");
return;
}
// require a trailing slash.
var path;
path = context.getRequest().getPathInfo();
if (path.charAt(path.length-1) != '/')
{
app.redirectTo(context,path+"/");
return;
}
// get the url to the XSL to use for the transform.
base = getInheritedAttribute(xml,'resources.server');
layout = parameters.get('layout');
if (layout == null)
{
layout = getLayout(xml);
}
if (base != null && (layout.indexOf(':') <= 1))
{
media_root = Packages.org.apache.xang.util.ServletUtil.getRealPath(context);
layout = media_root + "/" + base + layout;
layout = "file:///"+Packages.org.apache.xang.util.ServletUtil.resolveURL(layout);
}
if (layout != null)
{
context.getResponse().setContentType("text/html");
// do XSL via Xalan
{
processor = Packages.org.apache.xalan.xslt.XSLTProcessorFactory.getProcessorUsingLiaisonName("org.apache.xalan.xpath.xdom.XercesLiaison");
source = new Packages.org.apache.xalan.xslt.XSLTInputSource();
source.setNode(xml);
stylesheet = new Packages.org.apache.xalan.xslt.XSLTInputSource();
stylesheet.setSystemId(layout);
output = new Packages.org.apache.xalan.xslt.XSLTResultTarget();
output.setCharacterStream(doc);
processor.process(source,stylesheet,output);
}
doc.flush();
}
}
function getXML(context,returnTypes,parameters)
{
doc = context.getResponse().getWriter();
doc.println("<?xml version='1.0' ?>");
doc.println("<!-- cool huh? -->");
doc.println(xml.getXML());
}
function getScript(context,returnTypes,parameters)
{
var doc;
var s;
var util;
doc = context.getResponse().getWriter();
util = new Packages.org.apache.xang.util.TextUtil();
s = "<html><body><pre>";
s += util.encodeToHTML(app.loadScript(null));
s += "</pre></body></html>";
doc.println(s);
doc.flush();
}
]]>
</script>
1.1 xml-xang/java/samples/editor.script.xml
Index: editor.script.xml
===================================================================
<script >
<![CDATA[
/** Base browser method. Override to provide object specific functionality.
*/
function doObjectEdit(context,returnTypes,parameters)
{
parameters.put("layout","editor.xsl");
get(context,returnTypes,parameters);
}
function doObjectBrowser(context,returnTypes,parameters)
{
parameters.put("layout","editor_browse.xsl");
get(context,returnTypes,parameters);
}
/** Base editor method. Override to provide object specific functionality.
*/
function doObjectEditor(context,returnTypes,parameters)
{
parameters.put("layout","editor_edit.xsl");
get(context,returnTypes,parameters);
}
/** Base update method
*/
function doObjectUpdate(context,returnTypes,parameters)
{
doc = context.getResponse().getWriter();
for (prop in parameters.keys())
{
if (prop.indexOf('prop_') == 0)
{
value = parameters.get(prop);
attrib = prop.substring(5);
if (value == null || value=="")
{
xml.removeAttribute(attrib);
}
else
{
xml.setAttribute(attrib,value);
}
}
}
context.getResponse().setContentType("text/html");
doc.println("<html><body>OK</body></html>");
}
function doObjectAddProp(context,returnTypes,parameters)
{
name = parameters.get('name');
value = parameters.get('value');
xml.setAttribute(name,value);
context.getResponse().setContentType("text/html");
doc = context.getResponse().getWriter();
doc.println("<html><body>"+name+"="+value+"</body></html>");
}
]]>
</script>