cocoon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jo...@apache.org
Subject cvs commit: cocoon-2.1/src/blocks/xsp/samples/util view-source.xsp
Date Wed, 10 Mar 2004 23:36:13 GMT
joerg       2004/03/10 15:36:13

  Modified:    src/blocks/xsp/samples/util view-source.xsp
  Log:
  *** keyword substitution change ***
  
  Revision  Changes    Path
  1.2       +288 -288  cocoon-2.1/src/blocks/xsp/samples/util/view-source.xsp
  
  Index: view-source.xsp
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/xsp/samples/util/view-source.xsp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- view-source.xsp	10 Mar 2004 15:37:54 -0000	1.1
  +++ view-source.xsp	10 Mar 2004 23:36:13 -0000	1.2
  @@ -1,288 +1,288 @@
  -<?xml version="1.0"?>
  -<!--
  -  Copyright 1999-2004 The Apache Software Foundation
  -
  -  Licensed under the Apache License, Version 2.0 (the "License");
  -  you may not use this file except in compliance with the License.
  -  You may obtain a copy of the License at
  -
  -      http://www.apache.org/licenses/LICENSE-2.0
  -
  -  Unless required by applicable law or agreed to in writing, software
  -  distributed under the License is distributed on an "AS IS" BASIS,
  -  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  -  See the License for the specific language governing permissions and
  -  limitations under the License.
  --->
  -<!-- Written by Ricardo Rocha <rrocha@plenix.org> -->
  -<!-- Fixed for version 2.0 by Davanum Srinivas <dims@yahoo.com> -->
  -
  -<xsp:page language="java" xmlns:xsp="http://apache.org/xsp">
  -
  -  <xsp:structure>
  -    <xsp:include>org.w3c.dom.*</xsp:include>
  -    <xsp:include>org.apache.cocoon.components.source.SourceUtil</xsp:include>
  -    <xsp:include>org.apache.cocoon.xml.dom.DOMStreamer</xsp:include>
  -    <xsp:include>org.apache.excalibur.xml.dom.DOMParser</xsp:include>
  -    <xsp:include>org.apache.excalibur.source.Source</xsp:include>
  -  </xsp:structure>
  -
  -  <xsp:logic><![CDATA[
  -    private static final String ATTR_NAME_COLOR = "darkblue";
  -    private static final String ATTR_VALUE_COLOR = "navy";
  -    private static final String COMMENT_COLOR = "gray";
  -    private static final String DELIMITER_COLOR = "blue";
  -    private static final String ELEMENT_COLOR = "navy";
  -    private static final String ENTITY_REF_COLOR = "navy";
  -    private static final String PI_COLOR = "darkred";
  -    private static final String TEXT_COLOR = "black";
  -    private static final String CUSTOM_ELEMENT_COLOR = "green";
  -    private static final String XSL_ELEMENT_COLOR = "purple";
  -    private static final String XSP_ELEMENT_COLOR = "green";
  -    private static final String XSP_TEXT_COLOR = "red";
  -
  -    protected void colorize(Node node, Document factory) throws SAXException {
  -      Element element = factory.createElement("pre");
  -      DocumentFragment fragment = factory.createDocumentFragment();
  -      element.appendChild(doColorize(node, factory, 0, TEXT_COLOR));
  -      DOMStreamer ds = new DOMStreamer (this.contentHandler);
  -      ds.stream (element);
  -    }
  -
  -    protected static DocumentFragment
  -      doColorize(Node node, Document factory, int level, String textColor)
  -    {
  -      Element result = null;
  -      DocumentFragment fragment = factory.createDocumentFragment();
  -
  -      switch (node.getNodeType()) {
  -        case Node.CDATA_SECTION_NODE:
  -          result = factory.createElement("font");
  -          result.setAttribute("color", DELIMITER_COLOR);
  -          result.appendChild(factory.createTextNode("<![CDATA["));
  -          fragment.appendChild(result);
  -
  -          result = factory.createElement("font");
  -          result.setAttribute("color", textColor);
  -          result.appendChild(factory.createTextNode(node.getNodeValue()));
  -          fragment.appendChild(result);
  -
  -          result = factory.createElement("font");
  -          result.setAttribute("color", DELIMITER_COLOR);
  -          // I know the thing below is ugly, but man, nested CDATA are a pain in the ass!
  -          result.appendChild(factory.createTextNode("]]]]>&gt;<![CDATA["));
  -          fragment.appendChild(result);
  -
  -          break;
  -        case Node.ELEMENT_NODE: {
  -          Element element = (Element) node;
  -
  -          result = factory.createElement("font");
  -          result.setAttribute("color", DELIMITER_COLOR);
  -          result.appendChild(factory.createTextNode("<"));
  -          fragment.appendChild(result);
  -
  -          String tagColor = ELEMENT_COLOR;
  -          String tagName = element.getTagName();
  -
  -          if (tagName.startsWith("xsp:")) {
  -            tagColor = XSP_ELEMENT_COLOR;
  -          } else if (tagName.startsWith("xsl:")) {
  -            tagColor = XSL_ELEMENT_COLOR;
  -          } else if (tagName.indexOf(':') >= 0) {
  -            tagColor = CUSTOM_ELEMENT_COLOR;
  -          }
  -
  -          result = factory.createElement("font");
  -          result.setAttribute("color", tagColor);
  -          result.appendChild(factory.createTextNode(tagName));
  -          fragment.appendChild(result);
  -
  -          NamedNodeMap attributes = element.getAttributes();
  -          int attributeCount = attributes.getLength();
  -
  -          for (int i = 0; i < attributeCount; i++) {
  -            Attr attribute = (Attr) attributes.item(i);
  -
  -            result = factory.createElement("font");
  -            result.setAttribute("color", ATTR_NAME_COLOR);
  -            result.appendChild(
  -              factory.createTextNode(" " + attribute.getName() + "=")
  -            );
  -            fragment.appendChild(result);
  -
  -            result = factory.createElement("font");
  -            result.setAttribute("color", ATTR_VALUE_COLOR);
  -            result.appendChild(
  -              factory.createTextNode("\"" + attribute.getValue() + "\"")
  -            );
  -            fragment.appendChild(result);
  -          }
  -
  -          NodeList nodeList = element.getChildNodes();
  -          int childCount = nodeList.getLength();
  -
  -          result = factory.createElement("font");
  -          result.setAttribute("color", DELIMITER_COLOR);
  -          result.appendChild(
  -            factory.createTextNode((childCount == 0 ? "/" : "") + ">")
  -          );
  -          fragment.appendChild(result);
  -
  -          if (tagName.startsWith("xsp:")) {
  -            textColor = XSP_TEXT_COLOR;
  -          } else {
  -            textColor = TEXT_COLOR;
  -          }
  -
  -          result = factory.createElement("font");
  -          result.setAttribute("color", textColor);
  -
  -          for (int i = 0; i < childCount; i++) {
  -            result.appendChild(
  -              doColorize(nodeList.item(i), factory, level + 1, textColor)
  -            );
  -          }
  -          fragment.appendChild(result);
  -
  -          if (childCount > 0) {
  -            result = factory.createElement("font");
  -            result.setAttribute("color", DELIMITER_COLOR);
  -            result.appendChild(factory.createTextNode("</"));
  -            fragment.appendChild(result);
  -
  -            result = factory.createElement("font");
  -            result.setAttribute("color", tagColor);
  -            result.appendChild(factory.createTextNode(tagName));
  -            fragment.appendChild(result);
  -
  -            result = factory.createElement("font");
  -            result.setAttribute("color", DELIMITER_COLOR);
  -            result.appendChild(factory.createTextNode(">"));
  -            fragment.appendChild(result);
  -          }
  -
  -          break;
  -        }
  -        case Node.DOCUMENT_NODE:
  -        case Node.DOCUMENT_FRAGMENT_NODE: {
  -          NodeList nodeList = node.getChildNodes();
  -          int childCount = nodeList.getLength();
  -
  -          for (int i = 0; i < childCount; i++) {
  -            fragment.appendChild(
  -              doColorize(nodeList.item(i), factory, level + 1, textColor)
  -            );
  -          }
  -
  -          break;
  -        }
  -        case Node.COMMENT_NODE:
  -          result = factory.createElement("font");
  -          result.setAttribute("color", COMMENT_COLOR);
  -
  -          result.appendChild(
  -            factory.createTextNode(
  -              "<!-- " + node.getNodeValue() + " -->"
  -            )
  -          );
  -
  -          fragment.appendChild(result);
  -
  -          break;
  -        case Node.PROCESSING_INSTRUCTION_NODE:
  -          ProcessingInstruction pi = (ProcessingInstruction) node;
  -
  -          result = factory.createElement("font");
  -          result.setAttribute("color", DELIMITER_COLOR);
  -          result.appendChild(factory.createTextNode("<?"));
  -          fragment.appendChild(result);
  -
  -          result = factory.createElement("font");
  -          result.setAttribute("color", PI_COLOR);
  -          result.appendChild(factory.createTextNode(pi.getTarget() + " " + pi.getData()));
  -          fragment.appendChild(result);
  -
  -          result = factory.createElement("font");
  -          result.setAttribute("color", DELIMITER_COLOR);
  -          result.appendChild(factory.createTextNode("?>\n"));
  -          fragment.appendChild(result);
  -
  -          break;
  -        case Node.ENTITY_REFERENCE_NODE:
  -          result = factory.createElement("font");
  -          result.setAttribute("color", ENTITY_REF_COLOR);
  -          result.appendChild(
  -            factory.createTextNode("<" + node.getNodeValue() + ";")
  -          );
  -          fragment.appendChild(result);
  -
  -          break;
  -        case Node.TEXT_NODE:
  -          fragment.appendChild(factory.createTextNode(node.getNodeValue()));
  -          break;
  -        default:
  -          break;
  -      }
  -
  -      return fragment;
  -    }
  -  ]]></xsp:logic>
  -
  -  <html>
  -    <xsp:logic>
  -    </xsp:logic>
  -    <head>
  -      <title>Source Code</title>
  -      <link rel="stylesheet" type="text/css" href="style" title="Style"/>
  -    </head>
  -
  -    <body>
  -      <xsp:logic>
  -        String filename = request.getParameter("filename");
  -        if (filename != null) {
  -
  -          <h3 style="color:navy; text-align: center">
  -            <xsp:expr>filename</xsp:expr>
  -          </h3>
  -        
  -          DOMParser parser = null;
  -          Source source = null;
  -
  -          try {
  -              parser = (DOMParser)manager.lookup(DOMParser.ROLE);
  -              Document outputDocument = parser.createDocument();
  -
  -              source = super.resolver.resolveURI("context://" + filename);
  -
  -              Document sourceDocument = parser.parseDocument(SourceUtil.getInputSource(source));
  -
  -              this.colorize(sourceDocument, outputDocument);    
  -          } catch (SAXException e){
  -              getLogger().debug("SAXException in colorize", e);
  -              throw e;
  -          } catch (org.w3c.dom.DOMException e){
  -              getLogger().debug("DOMException in colorize", e);
  -              throw e;
  -          } catch (Exception e) {
  -              getLogger().error("Could not include page", e);
  -              <p style="color: red; font-weight: bold;">
  -                Could not include page:
  -                <xsp:expr>e</xsp:expr>
  -              </p>
  -          } finally {
  -              this.manager.release((Component) parser);
  -              if (source != null) {
  -                  super.resolver.release(source);
  -                  source = null;
  -              }
  -          }
  -        } else {
  -          <h3 style="color:navy; text-align: center">
  -            Need <em>filename</em> or <em>url</em> parameters to
work
  -          </h3>
  -        }
  -      </xsp:logic>
  -    </body>
  -  </html>
  -</xsp:page>
  +<?xml version="1.0"?>
  +<!--
  +  Copyright 1999-2004 The Apache Software Foundation
  +
  +  Licensed under the Apache License, Version 2.0 (the "License");
  +  you may not use this file except in compliance with the License.
  +  You may obtain a copy of the License at
  +
  +      http://www.apache.org/licenses/LICENSE-2.0
  +
  +  Unless required by applicable law or agreed to in writing, software
  +  distributed under the License is distributed on an "AS IS" BASIS,
  +  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  +  See the License for the specific language governing permissions and
  +  limitations under the License.
  +-->
  +<!-- Written by Ricardo Rocha <rrocha@plenix.org> -->
  +<!-- Fixed for version 2.0 by Davanum Srinivas <dims@yahoo.com> -->
  +
  +<xsp:page language="java" xmlns:xsp="http://apache.org/xsp">
  +
  +  <xsp:structure>
  +    <xsp:include>org.w3c.dom.*</xsp:include>
  +    <xsp:include>org.apache.cocoon.components.source.SourceUtil</xsp:include>
  +    <xsp:include>org.apache.cocoon.xml.dom.DOMStreamer</xsp:include>
  +    <xsp:include>org.apache.excalibur.xml.dom.DOMParser</xsp:include>
  +    <xsp:include>org.apache.excalibur.source.Source</xsp:include>
  +  </xsp:structure>
  +
  +  <xsp:logic><![CDATA[
  +    private static final String ATTR_NAME_COLOR = "darkblue";
  +    private static final String ATTR_VALUE_COLOR = "navy";
  +    private static final String COMMENT_COLOR = "gray";
  +    private static final String DELIMITER_COLOR = "blue";
  +    private static final String ELEMENT_COLOR = "navy";
  +    private static final String ENTITY_REF_COLOR = "navy";
  +    private static final String PI_COLOR = "darkred";
  +    private static final String TEXT_COLOR = "black";
  +    private static final String CUSTOM_ELEMENT_COLOR = "green";
  +    private static final String XSL_ELEMENT_COLOR = "purple";
  +    private static final String XSP_ELEMENT_COLOR = "green";
  +    private static final String XSP_TEXT_COLOR = "red";
  +
  +    protected void colorize(Node node, Document factory) throws SAXException {
  +      Element element = factory.createElement("pre");
  +      DocumentFragment fragment = factory.createDocumentFragment();
  +      element.appendChild(doColorize(node, factory, 0, TEXT_COLOR));
  +      DOMStreamer ds = new DOMStreamer (this.contentHandler);
  +      ds.stream (element);
  +    }
  +
  +    protected static DocumentFragment
  +      doColorize(Node node, Document factory, int level, String textColor)
  +    {
  +      Element result = null;
  +      DocumentFragment fragment = factory.createDocumentFragment();
  +
  +      switch (node.getNodeType()) {
  +        case Node.CDATA_SECTION_NODE:
  +          result = factory.createElement("font");
  +          result.setAttribute("color", DELIMITER_COLOR);
  +          result.appendChild(factory.createTextNode("<![CDATA["));
  +          fragment.appendChild(result);
  +
  +          result = factory.createElement("font");
  +          result.setAttribute("color", textColor);
  +          result.appendChild(factory.createTextNode(node.getNodeValue()));
  +          fragment.appendChild(result);
  +
  +          result = factory.createElement("font");
  +          result.setAttribute("color", DELIMITER_COLOR);
  +          // I know the thing below is ugly, but man, nested CDATA are a pain in the ass!
  +          result.appendChild(factory.createTextNode("]]]]>&gt;<![CDATA["));
  +          fragment.appendChild(result);
  +
  +          break;
  +        case Node.ELEMENT_NODE: {
  +          Element element = (Element) node;
  +
  +          result = factory.createElement("font");
  +          result.setAttribute("color", DELIMITER_COLOR);
  +          result.appendChild(factory.createTextNode("<"));
  +          fragment.appendChild(result);
  +
  +          String tagColor = ELEMENT_COLOR;
  +          String tagName = element.getTagName();
  +
  +          if (tagName.startsWith("xsp:")) {
  +            tagColor = XSP_ELEMENT_COLOR;
  +          } else if (tagName.startsWith("xsl:")) {
  +            tagColor = XSL_ELEMENT_COLOR;
  +          } else if (tagName.indexOf(':') >= 0) {
  +            tagColor = CUSTOM_ELEMENT_COLOR;
  +          }
  +
  +          result = factory.createElement("font");
  +          result.setAttribute("color", tagColor);
  +          result.appendChild(factory.createTextNode(tagName));
  +          fragment.appendChild(result);
  +
  +          NamedNodeMap attributes = element.getAttributes();
  +          int attributeCount = attributes.getLength();
  +
  +          for (int i = 0; i < attributeCount; i++) {
  +            Attr attribute = (Attr) attributes.item(i);
  +
  +            result = factory.createElement("font");
  +            result.setAttribute("color", ATTR_NAME_COLOR);
  +            result.appendChild(
  +              factory.createTextNode(" " + attribute.getName() + "=")
  +            );
  +            fragment.appendChild(result);
  +
  +            result = factory.createElement("font");
  +            result.setAttribute("color", ATTR_VALUE_COLOR);
  +            result.appendChild(
  +              factory.createTextNode("\"" + attribute.getValue() + "\"")
  +            );
  +            fragment.appendChild(result);
  +          }
  +
  +          NodeList nodeList = element.getChildNodes();
  +          int childCount = nodeList.getLength();
  +
  +          result = factory.createElement("font");
  +          result.setAttribute("color", DELIMITER_COLOR);
  +          result.appendChild(
  +            factory.createTextNode((childCount == 0 ? "/" : "") + ">")
  +          );
  +          fragment.appendChild(result);
  +
  +          if (tagName.startsWith("xsp:")) {
  +            textColor = XSP_TEXT_COLOR;
  +          } else {
  +            textColor = TEXT_COLOR;
  +          }
  +
  +          result = factory.createElement("font");
  +          result.setAttribute("color", textColor);
  +
  +          for (int i = 0; i < childCount; i++) {
  +            result.appendChild(
  +              doColorize(nodeList.item(i), factory, level + 1, textColor)
  +            );
  +          }
  +          fragment.appendChild(result);
  +
  +          if (childCount > 0) {
  +            result = factory.createElement("font");
  +            result.setAttribute("color", DELIMITER_COLOR);
  +            result.appendChild(factory.createTextNode("</"));
  +            fragment.appendChild(result);
  +
  +            result = factory.createElement("font");
  +            result.setAttribute("color", tagColor);
  +            result.appendChild(factory.createTextNode(tagName));
  +            fragment.appendChild(result);
  +
  +            result = factory.createElement("font");
  +            result.setAttribute("color", DELIMITER_COLOR);
  +            result.appendChild(factory.createTextNode(">"));
  +            fragment.appendChild(result);
  +          }
  +
  +          break;
  +        }
  +        case Node.DOCUMENT_NODE:
  +        case Node.DOCUMENT_FRAGMENT_NODE: {
  +          NodeList nodeList = node.getChildNodes();
  +          int childCount = nodeList.getLength();
  +
  +          for (int i = 0; i < childCount; i++) {
  +            fragment.appendChild(
  +              doColorize(nodeList.item(i), factory, level + 1, textColor)
  +            );
  +          }
  +
  +          break;
  +        }
  +        case Node.COMMENT_NODE:
  +          result = factory.createElement("font");
  +          result.setAttribute("color", COMMENT_COLOR);
  +
  +          result.appendChild(
  +            factory.createTextNode(
  +              "<!-- " + node.getNodeValue() + " -->"
  +            )
  +          );
  +
  +          fragment.appendChild(result);
  +
  +          break;
  +        case Node.PROCESSING_INSTRUCTION_NODE:
  +          ProcessingInstruction pi = (ProcessingInstruction) node;
  +
  +          result = factory.createElement("font");
  +          result.setAttribute("color", DELIMITER_COLOR);
  +          result.appendChild(factory.createTextNode("<?"));
  +          fragment.appendChild(result);
  +
  +          result = factory.createElement("font");
  +          result.setAttribute("color", PI_COLOR);
  +          result.appendChild(factory.createTextNode(pi.getTarget() + " " + pi.getData()));
  +          fragment.appendChild(result);
  +
  +          result = factory.createElement("font");
  +          result.setAttribute("color", DELIMITER_COLOR);
  +          result.appendChild(factory.createTextNode("?>\n"));
  +          fragment.appendChild(result);
  +
  +          break;
  +        case Node.ENTITY_REFERENCE_NODE:
  +          result = factory.createElement("font");
  +          result.setAttribute("color", ENTITY_REF_COLOR);
  +          result.appendChild(
  +            factory.createTextNode("<" + node.getNodeValue() + ";")
  +          );
  +          fragment.appendChild(result);
  +
  +          break;
  +        case Node.TEXT_NODE:
  +          fragment.appendChild(factory.createTextNode(node.getNodeValue()));
  +          break;
  +        default:
  +          break;
  +      }
  +
  +      return fragment;
  +    }
  +  ]]></xsp:logic>
  +
  +  <html>
  +    <xsp:logic>
  +    </xsp:logic>
  +    <head>
  +      <title>Source Code</title>
  +      <link rel="stylesheet" type="text/css" href="style" title="Style"/>
  +    </head>
  +
  +    <body>
  +      <xsp:logic>
  +        String filename = request.getParameter("filename");
  +        if (filename != null) {
  +
  +          <h3 style="color:navy; text-align: center">
  +            <xsp:expr>filename</xsp:expr>
  +          </h3>
  +        
  +          DOMParser parser = null;
  +          Source source = null;
  +
  +          try {
  +              parser = (DOMParser)manager.lookup(DOMParser.ROLE);
  +              Document outputDocument = parser.createDocument();
  +
  +              source = super.resolver.resolveURI("context://" + filename);
  +
  +              Document sourceDocument = parser.parseDocument(SourceUtil.getInputSource(source));
  +
  +              this.colorize(sourceDocument, outputDocument);    
  +          } catch (SAXException e){
  +              getLogger().debug("SAXException in colorize", e);
  +              throw e;
  +          } catch (org.w3c.dom.DOMException e){
  +              getLogger().debug("DOMException in colorize", e);
  +              throw e;
  +          } catch (Exception e) {
  +              getLogger().error("Could not include page", e);
  +              <p style="color: red; font-weight: bold;">
  +                Could not include page:
  +                <xsp:expr>e</xsp:expr>
  +              </p>
  +          } finally {
  +              this.manager.release((Component) parser);
  +              if (source != null) {
  +                  super.resolver.release(source);
  +                  source = null;
  +              }
  +          }
  +        } else {
  +          <h3 style="color:navy; text-align: center">
  +            Need <em>filename</em> or <em>url</em> parameters to
work
  +          </h3>
  +        }
  +      </xsp:logic>
  +    </body>
  +  </html>
  +</xsp:page>
  
  
  

Mime
View raw message