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>