Added: 
incubator/beehive/trunk/samples/netui-samples/resources/beehive/version1/javascript/netui-tree.js
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/resources/beehive/version1/javascript/netui-tree.js?view=auto&rev=161112
==============================================================================
--- 
incubator/beehive/trunk/samples/netui-samples/resources/beehive/version1/javascript/netui-tree.js
 (added)
+++ 
incubator/beehive/trunk/samples/netui-samples/resources/beehive/version1/javascript/netui-tree.js
 Tue Apr 12 13:23:23 2005
@@ -0,0 +1,630 @@
+// The variable netUI already exists and the type NetUI has been
+// defined.  There isn't anything in it at the moment.
+// NOTE: Using this file requires that runAtClient be turned on in the
+//      script container.
+
+///////////////////////////////// NetUI //////////////////////////
+
+// define the constructor for the NetUI object
+function NetUI() {
+   this.members = new Object();    // the named object
+}
+
+// create the variable, it will be empty
+var netUI = new NetUI();
+
+NetUI.prototype.action = function(command)
+{
+    var f = new Function("members","members." + command);
+    f(this.members);
+    return false;
+}
+
+NetUI.prototype.xmlHttpRequestMapping = ".xhr";
+
+
+///////////////////////////////// Tree //////////////////////////
+function NetUITree()
+{
+}
+
+// this method walks the document looking for tree items that
+// are collapsed.  A non-leaf tree item is defined here as an anchor
+// that has an attribute that defines either the collapse/expand state
+NetUITree.prototype.init = function()
+{
+    for (var i=0;i<document.links.length;i++) {
+       var attr = netUIGetAttribute(document.links[i],"netui","treeAnchor");
+        if (attr != null) {
+            var isInit = 
netUIGetAttribute(document.links[i],"netui","treeAnchorInit");
+           if (isInit != null && isInit != "") {
+               var link = document.links[i];
+               var treeName = netUI.netUITree.getTreeName(link);
+               //alert("TreeName:" + treeName);
+               if (netUI.netUITree.trees[treeName] != null) {
+                    document.links[i].onclick = NetUICollapseTree;
+                   if (attr == "collapse") {
+                      NetUICollapseTreeNode(document.links[i],false);
+                   }
+                   document.links[i].removeAttribute("netui:treeAnchorInit");
+               }
+            }
+        }
+    }
+}
+
+// Given a node inside the tree, this method will find the name
+// of the tree and return it.  It should only be with an anchor
+// tree inside of the generated tree and will reportError if the
+// tree is invalid.
+NetUITree.prototype.getTreeName = function(node)
+{
+    //alert("A:" + node.nodeName);
+    if (node.nodeName != "A")
+        return reportNetUIError("getTreeName: Expected Node was not an A:" + 
node.nodeName);
+
+    // parent of the A should be a DIV
+    node = node.parentNode;
+    //alert("DIV:" + node.nodeName);
+    if (node.nodeName != "DIV")
+        return reportNetUIError("getTreeName: Expected Node was not an DIV:" + 
node.nodeName);
+
+    // parent of the DIV is the root of the tree DIV
+    node = node.parentNode;
+    //alert("DIV:" + node.nodeName);
+    if (node.nodeName != "DIV")
+        return reportNetUIError("getTreeName: Expected Node was not an DIV:" + 
node.nodeName);
+
+    var attr = netUIGetAttribute(node,"netui","treeName");
+    if (attr == null)
+       return reportNetUIError("getTreeName: The treeName was not found");
+
+    return attr;
+}
+
+// This method will create a command URL.  
+// @param command this is the command name, it is a simple String
+// @param treeName this name of the tree
+// @param nodeName this is the node to apply the command to
+NetUITree.prototype.getTreeCommandUrl = 
function(command,treeName,nodeName,expandOnServer)
+{
+    var url = netUI.webAppName + "/" + command + 
NetUI.prototype.xmlHttpRequestMapping +
+        "?tree=" + treeName + "&node=" + nodeName;
+    if (expandOnServer == "true") {
+       url = url + "&expandOnServer=true";
+    }
+    return url;
+}
+
+// This method will raise a command through XmlHttpRequest and send it to
+// the server.  The command must be a fully formed URL including all of the 
+// parameters.
+// @param cmdUrl the fully specified URL representing the command to the 
servere
+NetUI.prototype.raiseCommand = function(cmdUrl,callback)
+{
+    var req = null;
+    var func = function() {
+       if (req.readyState==4) {
+          if (req.status == 200) {
+              if (req.responseXML!=null && callback != null) {
+                  callback(req);
+              }
+          }
+          else {
+              reportNetUIError("Unable to retrieve XML data:"; +  
req.statusText);
+          }
+       }
+    }
+
+    if (window.XMLHttpRequest) {
+        // Moz/Firefox
+        req = new XMLHttpRequest();
+        req.onreadystatechange=func;
+        req.open("GET", cmdUrl, true);
+        req.send(null);
+
+    } else if (window.ActiveXObject) {
+        // IE
+        req = new ActiveXObject("Microsoft.XMLHTTP");
+        if (req) {
+            req.onreadystatechange=func;
+            req.open("GET", cmdUrl, true);
+            req.send(null);
+        }
+    }
+}
+
+function getCData(node)
+{
+    for (var i=0;i<node.childNodes.length;i++) {
+       if (node.childNodes[i].nodeType == 4)
+           return node.childNodes[i];
+    }
+    return null;
+}
+
+// If the XmlHttpRequest results in a valid XML document, this will be called
+function NetUITreeXmlHttpRequestReturn(req)
+{
+   var nodeName = req.responseXML.getElementsByTagName("node");
+   if (nodeName == null || nodeName.length == 0)
+       return;
+
+   var treeDivs = req.responseXML.getElementsByTagName("treeDiv");
+
+
+   nodeName = nodeName[0].childNodes[0].nodeValue;
+
+   for (var i=0;i<document.links.length;i++) {
+       var attr = netUIGetAttribute(document.links[i],"netui","treeId");
+       if (attr != null) {
+          if (attr == nodeName) {
+              var dump = "DUMP:\n";
+              var treeNode = document.links[i];
+              treeNode.removeAttribute("netui:expandOnServer");
+              treeNode = treeNode.parentNode;
+              for (var j=0;j<treeDivs.length;j++) {
+                  var txt = getCData(treeDivs[j]);
+                   //alert("Text:" + txt.nodeValue);
+                  if (txt == null) {
+                      reportNetUIError("Didn't find the CDATA");
+                      return;
+                  }
+              
+                  var pElement = document.createElement("div");
+                  if (treeNode.nextSibling != null) {
+                      var sib = treeNode.nextSibling;
+                      pElement.innerHTML=txt.nodeValue;
+                      var newNode = pElement.childNodes[0];
+                      treeNode.parentNode.insertBefore(newNode,sib);
+                      treeNode = newNode;
+                      //alert(dumpNodes(dump,pElement,0));
+                  }
+                  else {
+                      pElement.innerHTML=txt.nodeValue;
+                      var newNode = pElement.childNodes[0];
+                      treeNode.parentNode.appendChild(newNode);
+                      treeNode = newNode;
+                  }
+              }
+              netUI.netUITree.init();
+          }
+       }
+   }
+}
+
+function dumpNodes(results, node, level)
+{
+    for (var i=0;i<level;i++) {
+       results = results + " ";
+    }
+    results = results + node + "\n";
+  
+    for (var i=0;i<node.childNodes.length;i++)
+        results = dumpNodes(results,node.childNodes[i],level+1);
+    return results
+}
+
+function NetUIExpandTree()
+{
+    // make sure that what is calling this is an anchor
+    if (this.nodeName != "A")
+        return reportNetUIError("NetUIExpandTree: Expected Node was not an A:" 
+ this.nodeName);
+
+    // Create the XmlHttpRequest that will inform the server of the 
+    // change in the client state.
+    var treeName = netUI.netUITree.getTreeName(this);
+    var nodeName = netUIGetAttribute(this,"netui","treeId");
+    var expandOnServer = netUIGetAttribute(this,"netui","expandOnServer");
+    var expandPath = netUIGetAttribute(this,"netui","expandPath");
+    var cmd = "treeExpand";
+    if (expandPath != null) {
+       cmd = expandPath + "/" + cmd;
+    }
+    var url = 
netUI.netUITree.getTreeCommandUrl(cmd,treeName,nodeName,expandOnServer);
+    netUI.raiseCommand(url,NetUITreeXmlHttpRequestReturn);
+
+    // find the image child so we can change the image
+    var children = this.childNodes;
+    var img = null;
+    for (var i=0;i<children.length;i++) {
+        if (children[i].nodeName == "IMG") {
+            img = children[i];
+            break;
+        }
+    }
+    if (img == null)
+        return reportNetUIError("IMG tag not found");
+
+    var nodeName = netUIGetAttribute(this,"netui","expandLast");
+    var expandImage = netUIGetAttribute(this,"netui","imageExpand");
+    if (expandImage != null) {
+       img.src = expandImage;
+    }
+    else {
+       if (nodeName != null)
+           img.src = netUI.netUITree.trees[treeName].imgCollapseLastName;
+       else
+           img.src = netUI.netUITree.trees[treeName].imgCollapseName;
+    }
+    this.onclick = NetUICollapseTree;
+
+    // go up the level and get the Div
+    var parentDiv = this.parentNode;
+    if (parentDiv.nodeName != "DIV")
+        return reportNetUIError("Expected Node was not an DIV:" + 
parentDiv.nodeName);
+
+    var depth = netUI.netUITree.getDepth(parentDiv);
+    parentDiv.setAttribute("netui:treeAnchor","expand");
+    parentDiv = parentDiv.nextSibling;
+    while (parentDiv != null && parentDiv.nodeName != "DIV") {
+        parentDiv = parentDiv.nextSibling;
+    }
+    if (parentDiv == null) {
+        return false;
+    }
+
+    netUI.netUITree.expandTreeSection(depth,parentDiv);
+    return false;
+}
+
+// this will cause a collapse to happend in the tree
+// this function is not name spaced because it is 
+function NetUICollapseTree()
+{
+    if (this.nodeName != "A")
+        return reportNetUIError("NetUICollapseTree: Expected Node was not an 
A:" + this.nodeName);
+    return NetUICollapseTreeNode(this,true);
+}
+
+// this will cause a collapse to happend in the tree
+// this function is not name spaced because it is 
+function NetUICollapseTreeNode(node,raiseCommand)
+{
+    // verify we are inside an anchor
+    if (node.nodeName != "A")
+        return reportNetUIError("NetUICollapseTreeNode: Expected Node was not 
an A:" + node.nodeName);
+
+    // Create the XmlHttpRequest that will inform the server of the 
+    // change in the client state.
+    var treeName = netUI.netUITree.getTreeName(node);
+    if (raiseCommand) {
+       var nodeName = netUIGetAttribute(node,"netui","treeId");
+       var url = 
netUI.netUITree.getTreeCommandUrl("treeCollapse",treeName,nodeName,"false");
+       netUI.raiseCommand(url,NetUITreeXmlHttpRequestReturn);
+    }
+
+    var children = node.childNodes;
+    var img = null;
+    for (var i=0;i<children.length;i++) {
+        if (children[i].nodeName == "IMG") {
+            img = children[i];
+            break;
+        }
+    }
+    if (img == null)
+        return reportNetUIError("IMG tag not found");
+
+    // set the image to be the collapse image
+    var nodeName = netUIGetAttribute(node,"netui","expandLast");
+    var expandImage = netUIGetAttribute(node,"netui","imageCollapse");
+    if (expandImage != null) {
+       img.src = expandImage;
+    }
+    else {
+       if (nodeName != null)
+           img.src = netUI.netUITree.trees[treeName].imgExpandLastName;
+       else
+           img.src = netUI.netUITree.trees[treeName].imgExpandName;
+    }
+    node.onclick = NetUIExpandTree;
+
+    // go up the level
+    var parentDiv = node.parentNode;
+    if (parentDiv.nodeName != "DIV")
+        return reportNetUIError("Expected Node was not a DIV:" + 
parentDiv.nodeName);
+
+    // get the depth and then begin to collapse rows
+    var depth = netUI.netUITree.getDepth(parentDiv);
+    parentDiv.setAttribute("netui:treeAnchor","collapse");
+    netUI.netUITree.collapseTreeSection(depth,parentDiv.nextSibling);
+    
+    // change the method the 
+   return false;
+}
+
+// Look above this node to find a Parent node that is a <tr>
+NetUITree.prototype.getDiv = function(a)
+{
+    var parentDiv = a.parentNode;
+    if (parentDiv.nodeName != "DIV")
+        return reportNetUIError("Exception Node was not a DIV:" + 
parentDiv.nodeName);
+    return parentDiv;
+}
+
+// This will return the <TD> that contains the colspan attribute,
+// it will always return a TD or null.
+NetUITree.prototype.getDepth = function(div)
+{
+    if (div.nodeName != "DIV")
+        return reportNetUIError("getDepth only support DIV nodes, found: " + 
div.nodeName);
+    
+    var attr = netUIGetAttribute(div,"netui","treeLevel");
+    return attr;
+}
+
+// This will collapse a set of rows
+NetUITree.prototype.collapseTreeSection = function(depth,div)
+{
+    // convert the depth into an integer...
+    depth = parseInt(depth);
+
+    // now we walk the rows collapsing 
+    while (div != null) {
+        if (div.nodeName != "DIV") {
+            if (div.nodeType != 1) {
+                div = div.nextSibling;
+                continue;
+            }
+            break;
+        }
+        
+        // @todo: need to verify that the div is inside the tree or not
+        // do we just get to the end if we only walk siblings?
+        
+        // Get the colspan so we can see the indent level.  
+        var csp = this.getDepth(div);
+        csp = parseInt(csp);
+
+        // if the colSpan is less than the collapse colspan set the
+        // the display of the div to none.
+        if (csp > depth) {
+            div.style.display = "none";
+        }
+        if (csp <= depth)
+            break;
+        div = div.nextSibling;
+    }
+}
+
+NetUITree.prototype.expandTreeSection = function(depth,div)
+{
+    //alert("ExpandTreeSection:" + div);
+    depth = parseInt(depth);
+    
+    // Find the next div after the node we are expanding...
+    while (div != null && div.nodeName != "DIV") {
+        div = div.nextSibling;
+    }
+    if (div == null) {
+        return false;
+    }
+
+    while (div != null) {
+        div = this.expandTree(depth+1,div);
+        if (div == null)
+           return false;
+        var csp = this.getDepth(div);
+        csp = parseInt(csp);
+        if (csp <= depth)
+           return false;
+    }
+    return false;
+}
+
+NetUITree.prototype.expandTree = function(depth,div)
+{
+    if (div.nodeName != "DIV")
+        return reportNetUIError("expandTree only support DIV nodes, found: " + 
div.nodeName);
+        
+    //alert("inside expand:" + depth);
+    while (true) {
+        div.style.display = "";
+
+        var at = netUIGetAttribute(div,"netui","treeAnchor");
+
+        // get the next sibling
+        div = div.nextSibling;
+        while (div != null && div.nodeName != "DIV") {
+            div = div.nextSibling;
+        }
+        if (div == null)
+            return null;
+
+        // see what depth it is...
+        // if the depth is the same then we continue expanding it..
+        var csp = this.getDepth(div);
+        csp = parseInt(csp);
+        //alert("csp:" + csp + " attr:" + at);
+        if (csp == depth)
+           continue;
+
+        // if this is less than depth return it to the previous level
+        if (csp < depth)
+           return div;
+        
+        // if the attribute is not set, then we need to expand the subtree
+        if (at == null || at == "expand") {
+            div = this.expandTree(csp,div);
+            if (div == null)
+                return div;
+            csp = this.getDepth(div);
+            csp = parseInt(csp);
+            if (csp < depth)
+                return div;
+        }
+        else {
+            //alert("inside collapsed region");
+            while (true) {
+                while (div != null && div.nodeName != "DIV") {
+                    div = div.nextSibling;
+                }
+                if (div == null)
+                    return null;
+
+                csp = this.getDepth(div);
+                csp = parseInt(csp);
+                if (csp <= depth)
+                    break;
+                div = div.nextSibling;
+            }
+            if (csp < depth)
+                return div;
+        }
+    }
+}
+
+///////////////////////////////// DivPanel //////////////////////////
+
+// This is a DivPaneContainer
+function NetUIDivPanelInstance()
+{
+    this.pages = new Object();
+    this.curPage = null;
+    this.pageName = null;
+    this.divPanelName = null;
+}
+
+NetUIDivPanelInstance.prototype.showPage = function(page)
+{
+    if (this.divPanelName != null) {
+       var url = 
netUI.netUIDivPanel.getCommandUrl("switchPage",this.divPanelName,page);
+       netUI.raiseCommand(url,NetUIDivPanelXmlHttpRequestReturn);
+    }
+
+    var newPage = this.pages[page];
+    if (newPage != null) {
+       this.curPage.style.display = "none";
+       this.curPage = newPage;
+       this.curPage.style.display = "";
+       this.pageName = page;
+    }
+}
+
+// panels -- this is a hash of all the panels defined.  It is a mapping from 
ID to panel
+function NetUIDivPanel()
+{
+    this.panels = new Object();
+}
+
+// This method will create a command URL.  
+// @param command this is the command name, it is a simple String
+// @param treeName this name of the tree
+// @param nodeName this is the node to apply the command to
+NetUIDivPanel.prototype.getCommandUrl = function(command,divPanelName, 
firstPage)
+{
+    var url = netUI.webAppName + "/" + command + 
NetUI.prototype.xmlHttpRequestMapping +
+       "?divPanel=" + divPanelName + "&firstPage=" + firstPage;
+    return url;
+}
+
+// The initialization routine will walk all the div's looking
+// for DivPanels.
+NetUIDivPanel.prototype.init = function()
+{
+    this.loadDivPanels(document);
+}
+
+// This method will call the individual panel to showPage a page
+NetUIDivPanel.prototype.showPage = function(panel,page)
+{
+    this.panels[panel].showPage(page);
+}
+
+// This method will walk the DOM looking for a netui-div-panel attribute
+// it then takes the DivPanel and inserts into the object
+NetUIDivPanel.prototype.loadDivPanels = function(node)
+{
+    if (node.nodeType == 1 || node.nodeType == 9) {
+        if (node.nodeType == 1 && node.nodeName == "DIV") {
+            var attr = node.getAttribute("netui-div-panel");
+            if (attr != null) {
+                //alert("here:" + node.id);
+               attr = node.getAttribute("netui:divName");
+                var dp = new NetUIDivPanelInstance();
+               dp.divPanelName = attr;
+                netUI.members[node.id] = dp;
+                this.panels[node.id] = dp;
+                this.createDivPanel(node,dp);
+
+                attr = node.getAttribute("netui-div-panel-first");
+                if (attr != null) {
+                    this.panels[node.id].showPage(attr);
+                }
+
+            }
+        }
+        var children = node.childNodes;
+        for (var i=0;i<children.length;i++) {
+            this.loadDivPanels(children[i]);
+        }
+    }
+}
+
+// This method will create the initial runtime view of the
+// divPanel.  The first div is made visible and all others
+// are not visible.  It will also initialize the pages variable
+// and the curPage variable.
+NetUIDivPanel.prototype.createDivPanel = function(node,dp)
+{
+    var children = node.childNodes;
+    var displayFirst = false;
+    for (var i=0;i<children.length;i++)  {
+        if (children[i].nodeType == 1 && node.nodeName == "DIV")  {
+            var divName = children[i].id;
+            //alert("Page:" + divName);
+            if (divName != null) {
+               dp.pages[divName] = children[i];
+            }
+            if (displayFirst == false) {
+                displayFirst = true;
+                dp.curPage = children[i];
+                continue;
+            }
+            children[i].style.display = "none";
+        }
+    }
+}
+
+// this will add the tree state to the passed anchor
+NetUIDivPanel.prototype.rewriteAnchor = function(node)
+{
+    var sep = '?';
+    if (node.href.indexOf('?') != -1)
+        sep = '&';
+    var state = "";
+    for (var pan in this.panels) {
+        state = state + sep;
+        state = state + "netui_divpanel_" + pan + "=" + 
this.panels[pan].pageName;
+        sep = '&';
+    }
+
+    node.href = node.href + state;
+}
+
+function NetUIDivPanelXmlHttpRequestReturn()
+{
+}
+
+function netUIGetAttribute(node,namespace,attribute)
+{
+    var attr = node.getAttribute(namespace + ":" + attribute);
+    //alert("getAttribute: '" + attr + "'");
+    if (attr == null || attr == "") {
+       attr = node.getAttribute(attribute);
+        //alert("getAttributeNS: '" + attr + "'");
+       if (attr == "")
+           attr = null;
+    }
+    return attr;
+}
+
+// Utility function to report an error
+function reportNetUIError(msg)
+{
+    var url = netUI.webAppName + "/netuiError" + 
NetUI.prototype.xmlHttpRequestMapping +
+       "?error=" + msg;
+    netUI.raiseCommand(url,null);
+    window.status = msg;
+    return false;
+}

Propchange: 
incubator/beehive/trunk/samples/netui-samples/resources/beehive/version1/javascript/netui-tree.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/resources/css/style.css
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/resources/css/style.css?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/resources/css/style.css 
(added)
+++ incubator/beehive/trunk/samples/netui-samples/resources/css/style.css Tue 
Apr 12 13:23:23 2005
@@ -0,0 +1,38 @@
+/* Data grid styles */
+.gridStyle
+{
+color: #111111;
+font-size: 14px;
+text-align: left;
+vertical-align: middle;
+padding: 5px 5px 5px 5px;
+}
+.gridStyle-header
+{
+background-color: #aaddaa;
+color: #FFF;
+vertical-align: baseline;
+line-height: 18px;
+}
+.gridStyle-even
+{
+background-color: #FFFFFF;
+color: #111111;
+font-size: 14px;
+text-align: left;
+border-color: #999999;
+border-style: solid;
+border-width: 1px;
+padding-left: 12px;
+}
+.gridStyle-odd
+{
+background-color: #dddddd;
+color: #111111;
+font-size: 14px;
+text-align: left;
+border-color: #999999;
+border-style: solid;
+border-width: 1px;
+padding-left: 12px;
+}
\ No newline at end of file

Propchange: 
incubator/beehive/trunk/samples/netui-samples/resources/css/style.css
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
incubator/beehive/trunk/samples/netui-samples/resources/template/template.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/resources/template/template.jsp?view=auto&rev=161112
==============================================================================
--- 
incubator/beehive/trunk/samples/netui-samples/resources/template/template.jsp 
(added)
+++ 
incubator/beehive/trunk/samples/netui-samples/resources/template/template.jsp 
Tue Apr 12 13:23:23 2005
@@ -0,0 +1,40 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-databinding-1.0"; 
prefix="netui-data"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0"; prefix="netui"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-template-1.0"; 
prefix="netui-template"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core"; prefix="c"%>
+<%@ taglib prefix="beehive-petstore" tagdir="/WEB-INF/tags/beehive/petstore" %>
+
+<netui-data:declareBundle bundlePath="bundles.site" name="site"/>
+
+<netui:html>
+    <head>
+        <title>
+            ${bundle.site.browserTitle}
+        </title>
+        <link rel="stylesheet" 
href="${pageContext.request.contextPath}/resources/css/style.css" 
type="text/css"/>
+    </head>
+    <netui:body>
+        <div>
+            <div id="header">
+                <table style="background-color:#FFE87C;width:100%;">
+                  <tr>
+                    <td style="font-size:x-large;">Page Flow Feature Samples: 
<netui-template:attribute name="samTitle"/></td>
+                    <td style="text-align:right;"><a 
href="${pageContext.request.contextPath}" target="_top">Samples Home</a></td>
+                  </tr>
+                </table><br/>
+            </div>
+            <div id="main">
+                <netui-template:includeSection name="main"/>
+            </div>
+            <div id="footer">
+                <table style="background-color:#FFE87C;width:100%;">
+                  <tr>
+                    <td>&nbsp;</td>
+                    <td style="text-align:right;"><a 
href="${pageContext.request.contextPath}">Samples Home</a></td>
+                  </tr>
+                </table>
+            </div>
+        </div>
+    </netui:body>
+</netui:html>

Propchange: 
incubator/beehive/trunk/samples/netui-samples/resources/template/template.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/ui/datagrid/Controller.jpf
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/ui/datagrid/Controller.jpf?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/ui/datagrid/Controller.jpf 
(added)
+++ incubator/beehive/trunk/samples/netui-samples/ui/datagrid/Controller.jpf 
Tue Apr 12 13:23:23 2005
@@ -0,0 +1,61 @@
+/*
+ * Copyright 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.
+ *
+ * $Header:$
+ */
+package ui.datagrid;
+
+import javax.servlet.http.HttpSession;
+
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+import org.apache.beehive.controls.api.bean.Control;
+import org.apache.beehive.samples.controls.pets.Pets;
+
[EMAIL PROTECTED]
+public class Controller extends PageFlowController
+{
+    @Control
+    private Pets _pets;
+    
+    @Jpf.Action(
+      forwards={
+        @Jpf.Forward( name="success", path="index.jsp" )
+      }
+    )
+    protected Forward begin() throws Exception
+    {
+        Forward f = new Forward("success");
+        f.addActionOutput("petList", _pets.getPetList());
+        return f;
+    }    
+
+    /**
+     * Callback that is invoked when this controller instance is created.
+     */
+    protected void onCreate()
+    {
+    }
+
+    /**
+     * Callback that is invoked when this controller instance is destroyed.
+     */
+    protected void onDestroy(HttpSession session)
+    {
+    }
+       
+}
\ No newline at end of file

Propchange: 
incubator/beehive/trunk/samples/netui-samples/ui/datagrid/Controller.jpf
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/ui/datagrid/error.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/ui/datagrid/error.jsp?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/ui/datagrid/error.jsp (added)
+++ incubator/beehive/trunk/samples/netui-samples/ui/datagrid/error.jsp Tue Apr 
12 13:23:23 2005
@@ -0,0 +1,69 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0"; prefix="netui"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core"; prefix="c"%>
+<netui:html>
+  <head>
+    <title>NetUI Error</title>
+    <style>
+    table {
+        border: solid 1pt #90180F;
+        background-color: #ffffff;
+    }
+    body {
+        margin: 20pt 5%;
+        background-color: #fdf4b6;
+        font-family: Arial, Helvetica, sans-serif;
+        font-size: 10pt;
+    }
+    .caption {
+        font-weight: bold;
+        font-size: 20pt;
+        text-align: left;
+        width: 500px
+    }
+    th {vertical-align: top;
+        text-align: right;
+        font-size: 12pt;
+        color: #90180F;
+        width: 100px;
+    }
+    td {
+        text-align: left;
+        }
+    hr {
+        color: #90180F;
+    }
+    .posTitle {
+        position: relative; 
+        color: #6C0C06;
+        left: -160pt; 
+        top: -12pt; 
+    }
+    .pfErrorLineOne {
+        color: red;
+        font-size: 12pt;
+        font-style: italic;
+    }
+    img {
+        border: solid 2pt #90180F;
+    }
+    </style>
+    <netui:base/>
+  </head>
+  <netui:body>
+    <div class="caption">
+    <netui:image 
src="${pageContext.request.contextPath}/resources/beehive/version1/images/error-header.jpg"
 width="338" height="96" alt="Page Flow Error"/>
+    <span class="posTitle">NetUI Error</span>
+    </div>
+    <table border="0" cellspacing='0' cellpadding='4'>
+       <c:if test="${request.errorMessage != null}">
+            <tr><th>Message:</th><td class="pfErrorLineOne"><netui:label 
value="${request.errorMessage}" defaultValue="&nbsp;"/></td></tr>
+       </c:if> 
+       <tr><th>Exception:</th><td class="pfErrorLineOne"><netui:exceptions 
showMessage="true" showStackTrace="true"/></td></tr> 
+       <tr><td colspan="2" style="min-width:342"><hr></td></tr>     
+       <tr><th>Stack Trace:</th><td><netui:exceptions showMessage="false" 
showStackTrace="true"/></td></tr>
+    </table>      
+  </netui:body>
+</netui:html>
+<%-- Some browsers will not display this page unless the response status code 
is 200. --%>
+<% response.setStatus(200); %>

Propchange: incubator/beehive/trunk/samples/netui-samples/ui/datagrid/error.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/ui/datagrid/index.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/ui/datagrid/index.jsp?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/ui/datagrid/index.jsp (added)
+++ incubator/beehive/trunk/samples/netui-samples/ui/datagrid/index.jsp Tue Apr 
12 13:23:23 2005
@@ -0,0 +1,35 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-databinding-1.0"; 
prefix="netui-data"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0"; prefix="netui"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-template-1.0"; 
prefix="netui-template"%>
+
+<netui-template:template templatePage="/resources/template/template.jsp">
+  <netui-template:setAttribute name="samTitle" value="Data Grid"/>
+  <netui-template:section name="main">
+    <!--
+      The 'dataSource' attribute points to the 'pets' member variable in the 
class 'datagrid/Controller.jpf' 
+      The 'resouceBundlePath' attribute points to the file 
WEB-INF/src/datagrid/grid.properties 
+      The 'styleClassPrefix' attribute points to the CSS styles defined in the 
file resource/css/style.css
+    -->
+    <netui-data:dataGrid  
+      name="petGrid" 
+      dataSource="pageInput.petList"
+      resourceBundlePath="datagrid.grid"
+      styleClassPrefix="gridStyle" >
+    <netui-data:configurePager pageSize="3" pagerFormat="prevNext" 
pageAction="begin.do"/>
+        <netui-data:caption>Pets Available</netui-data:caption>
+        <netui-data:header>
+            <netui-data:headerCell headerText="Pet ID Number" />
+            <netui-data:headerCell headerText="Name"/>
+            <netui-data:headerCell headerText="Description"/>
+            <netui-data:headerCell headerText="Price"/>
+        </netui-data:header>
+        <netui-data:rows>
+            <netui-data:spanCell value="${container.item.petID}" />
+            <netui-data:spanCell value="${container.item.name}" />
+            <netui-data:spanCell value="${container.item.description}"/>
+            <netui-data:spanCell value="${container.item.price}"/>
+        </netui-data:rows>
+    </netui-data:dataGrid>
+  </netui-template:section>
+</netui-template:template>
\ No newline at end of file

Propchange: incubator/beehive/trunk/samples/netui-samples/ui/datagrid/index.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/ui/tree/Controller.jpf
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/ui/tree/Controller.jpf?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/ui/tree/Controller.jpf (added)
+++ incubator/beehive/trunk/samples/netui-samples/ui/tree/Controller.jpf Tue 
Apr 12 13:23:23 2005
@@ -0,0 +1,104 @@
+/*
+ * Copyright 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.
+ *
+ * $Header:$
+ */
+package ui.tree;
+
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+import org.apache.beehive.netui.tags.tree.TreeHelpers;
+import org.apache.beehive.netui.tags.tree.ITreeRootElement;
+import org.apache.beehive.netui.tags.tree.TreeElement;
+import org.apache.beehive.netui.tags.tree.TreeRenderState;
+import org.apache.beehive.netui.pageflow.requeststate.NameService;
+
+import javax.servlet.ServletRequest;
+import javax.servlet.http.HttpSession;
+import org.apache.beehive.netui.pageflow.Forward;
+
[EMAIL PROTECTED] (
+)
+public class Controller extends PageFlowController
+{
+    private TreeElement _root;
+
+    public TreeElement getRoot()
+    {
+        return _root;
+    }
+    public void setRoot(TreeElement tree) 
+    {
+           _root = tree;
+    }
+
+    @Jpf.Action(
+       forwards={
+        @Jpf.Forward(name="success", path="frameSet.jsp")
+       }
+    )
+    protected Forward begin()
+    {
+        return new Forward("success");
+    }
+
+    @Jpf.Action(
+      forwards = { 
+           @Jpf.Forward(name = "success", path = "echo.jsp"),
+           @Jpf.Forward(name = "0.0.0.0", path = "content/0.0.0.0.jsp"),
+           @Jpf.Forward(name = "0.0.0.1", path = "content/0.0.0.1.jsp"),
+           @Jpf.Forward(name = "0.0.0", path = "content/0.0.0.jsp"),
+           @Jpf.Forward(name = "0.0", path = "content/0.0.jsp"),
+           @Jpf.Forward(name = "0.1.0", path = "content/0.1.0.jsp"),
+           @Jpf.Forward(name = "0.1.1", path = "content/0.1.1.jsp"),
+           @Jpf.Forward(name = "0.1", path = "content/0.1.jsp"),
+           @Jpf.Forward(name = "0.2.0", path = "content/0.2.0.jsp"),
+           @Jpf.Forward(name = "0.2.1", path = "content/0.2.1.jsp"),
+           @Jpf.Forward(name = "0.2", path = "content/0.2.jsp"),
+           @Jpf.Forward(name = "0", path = "content/0.jsp")
+      }
+    )
+    protected Forward selectFrame()        
+    {
+
+        String selectNode = 
getRequest().getParameter(TreeElement.SELECTED_NODE);
+        TreeElement n = _root.findNode(selectNode);
+
+           return new Forward( n.getTitle() );
+    }
+
+    @Jpf.Action(forwards = { 
+    @Jpf.Forward(name = "success", path = "tree.jsp")
+})
+    protected Forward selectTree()        {
+        Forward success = new Forward("success");               
+        return success;
+    }
+
+    /**
+     * Callback that is invoked when this controller instance is created.
+     */
+    protected void onCreate()
+    {
+    }
+
+    /**
+     * Callback that is invoked when this controller instance is destroyed.
+     */
+    protected void onDestroy(HttpSession session)
+    {
+    }
+}
+

Propchange: incubator/beehive/trunk/samples/netui-samples/ui/tree/Controller.jpf
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.0.0.0.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.0.0.0.jsp?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.0.0.0.jsp 
(added)
+++ incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.0.0.0.jsp 
Tue Apr 12 13:23:23 2005
@@ -0,0 +1,8 @@
+<[EMAIL PROTECTED] contentType="text/html;charset=UTF-8" language="java"%>
+<html>
+    <head>
+    </head>
+    <body>
+      page 0.0.0.0
+    </body>
+</html>
\ No newline at end of file

Propchange: 
incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.0.0.0.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.0.0.1.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.0.0.1.jsp?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.0.0.1.jsp 
(added)
+++ incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.0.0.1.jsp 
Tue Apr 12 13:23:23 2005
@@ -0,0 +1,8 @@
+<[EMAIL PROTECTED] contentType="text/html;charset=UTF-8" language="java"%>
+<html>
+    <head>
+    </head>
+    <body>
+      page 0.0.0.1
+    </body>
+</html>
\ No newline at end of file

Propchange: 
incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.0.0.1.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.0.0.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.0.0.jsp?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.0.0.jsp 
(added)
+++ incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.0.0.jsp Tue 
Apr 12 13:23:23 2005
@@ -0,0 +1,8 @@
+<[EMAIL PROTECTED] contentType="text/html;charset=UTF-8" language="java"%>
+<html>
+    <head>
+    </head>
+    <body>
+      page 0.0.0
+    </body>
+</html>
\ No newline at end of file

Propchange: 
incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.0.0.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.0.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.0.jsp?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.0.jsp 
(added)
+++ incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.0.jsp Tue 
Apr 12 13:23:23 2005
@@ -0,0 +1,8 @@
+<[EMAIL PROTECTED] contentType="text/html;charset=UTF-8" language="java"%>
+<html>
+    <head>
+    </head>
+    <body>
+      page 0.0
+    </body>
+</html>
\ No newline at end of file

Propchange: 
incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.0.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.1.0.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.1.0.jsp?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.1.0.jsp 
(added)
+++ incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.1.0.jsp Tue 
Apr 12 13:23:23 2005
@@ -0,0 +1,8 @@
+<[EMAIL PROTECTED] contentType="text/html;charset=UTF-8" language="java"%>
+<html>
+    <head>
+    </head>
+    <body>
+      page 0.1.0
+    </body>
+</html>
\ No newline at end of file

Propchange: 
incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.1.0.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.1.1.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.1.1.jsp?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.1.1.jsp 
(added)
+++ incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.1.1.jsp Tue 
Apr 12 13:23:23 2005
@@ -0,0 +1,8 @@
+<[EMAIL PROTECTED] contentType="text/html;charset=UTF-8" language="java"%>
+<html>
+    <head>
+    </head>
+    <body>
+      page 0.1.1
+    </body>
+</html>
\ No newline at end of file

Propchange: 
incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.1.1.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.1.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.1.jsp?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.1.jsp 
(added)
+++ incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.1.jsp Tue 
Apr 12 13:23:23 2005
@@ -0,0 +1,8 @@
+<[EMAIL PROTECTED] contentType="text/html;charset=UTF-8" language="java"%>
+<html>
+    <head>
+    </head>
+    <body>
+      page 0.1
+    </body>
+</html>
\ No newline at end of file

Propchange: 
incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.1.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.2.0.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.2.0.jsp?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.2.0.jsp 
(added)
+++ incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.2.0.jsp Tue 
Apr 12 13:23:23 2005
@@ -0,0 +1,8 @@
+<[EMAIL PROTECTED] contentType="text/html;charset=UTF-8" language="java"%>
+<html>
+    <head>
+    </head>
+    <body>
+      page 0.2.0
+    </body>
+</html>
\ No newline at end of file

Propchange: 
incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.2.0.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.2.1.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.2.1.jsp?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.2.1.jsp 
(added)
+++ incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.2.1.jsp Tue 
Apr 12 13:23:23 2005
@@ -0,0 +1,8 @@
+<[EMAIL PROTECTED] contentType="text/html;charset=UTF-8" language="java"%>
+<html>
+    <head>
+    </head>
+    <body>
+      page 0.2.1
+    </body>
+</html>
\ No newline at end of file

Propchange: 
incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.2.1.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.2.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.2.jsp?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.2.jsp 
(added)
+++ incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.2.jsp Tue 
Apr 12 13:23:23 2005
@@ -0,0 +1,8 @@
+<[EMAIL PROTECTED] contentType="text/html;charset=UTF-8" language="java"%>
+<html>
+    <head>
+    </head>
+    <body>
+      page 0.2
+    </body>
+</html>
\ No newline at end of file

Propchange: 
incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.2.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.jsp?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.jsp (added)
+++ incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.jsp Tue Apr 
12 13:23:23 2005
@@ -0,0 +1,8 @@
+<[EMAIL PROTECTED] contentType="text/html;charset=UTF-8" language="java"%>
+<html>
+    <head>
+    </head>
+    <body>
+      page 0
+    </body>
+</html>
\ No newline at end of file

Propchange: incubator/beehive/trunk/samples/netui-samples/ui/tree/content/0.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/ui/tree/echo.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/ui/tree/echo.jsp?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/ui/tree/echo.jsp (added)
+++ incubator/beehive/trunk/samples/netui-samples/ui/tree/echo.jsp Tue Apr 12 
13:23:23 2005
@@ -0,0 +1,9 @@
+<html>
+    <head>
+    </head>
+    <body>
+        <div class="content" style="height:282px">
+      <h4>${pageFlow.action}</h4>
+    </div> 
+    </body>
+</html>
\ No newline at end of file

Propchange: incubator/beehive/trunk/samples/netui-samples/ui/tree/echo.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/ui/tree/frameSet.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/ui/tree/frameSet.jsp?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/ui/tree/frameSet.jsp (added)
+++ incubator/beehive/trunk/samples/netui-samples/ui/tree/frameSet.jsp Tue Apr 
12 13:23:23 2005
@@ -0,0 +1,17 @@
+<!--Generated by WebLogic Workshop-->
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-databinding-1.0"; 
prefix="netui-data"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0"; prefix="netui"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-template-1.0"; 
prefix="netui-template"%>
+<netui:html>
+    <head>
+        <title>
+            Frame Set
+        </title>
+        <netui:base target="/tree/"/>
+    </head>
+    <frameset cols="20%,*">
+        <frame src="tree.jsp" name="navFrame" id="navFrame">
+        <frame src="content/0.jsp" name="contentFrame" id="contentFrame">
+    </frameset>
+</netui:html>
\ No newline at end of file

Propchange: incubator/beehive/trunk/samples/netui-samples/ui/tree/frameSet.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/ui/tree/tree.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/ui/tree/tree.jsp?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/ui/tree/tree.jsp (added)
+++ incubator/beehive/trunk/samples/netui-samples/ui/tree/tree.jsp Tue Apr 12 
13:23:23 2005
@@ -0,0 +1,39 @@
+<%@ taglib prefix="netui" uri="http://beehive.apache.org/netui/tags-html-1.0"%>
+<%@ taglib prefix="netui-template" 
uri="http://beehive.apache.org/netui/tags-template-1.0"%>
+
+<netui-template:template templatePage="/resources/template/template.jsp">
+  <netui-template:setAttribute name="samTitle" value="Tree"/>
+  <netui-template:section name="main">
+    <div style="border: thin solid;height: 300px;">
+      <netui:tree dataSource="pageFlow.root"
+        selectionAction="selectFrame"
+               expansionAction="selectTree"
+               selectionTarget="contentFrame"
+        tagId="tree"
+        selectedStyle="background-color: #FFD185; font-color: #FFFFFF; 
text-decoration: none;"
+           unselectedStyle="text-decoration: none">
+        <netui:treeItem title="0" expanded="true">
+        <netui:treeLabel>0</netui:treeLabel>
+          <netui:treeItem title="0.0" expanded="false">
+          <netui:treeLabel>0.0</netui:treeLabel>
+            <netui:treeItem title="0.0.0" expanded="false">
+            <netui:treeLabel>0.0.0</netui:treeLabel>
+              <netui:treeItem title="0.0.0.0">0.0.0.0</netui:treeItem>
+              <netui:treeItem title="0.0.0.1">0.0.0.1</netui:treeItem>
+            </netui:treeItem>
+          </netui:treeItem>
+          <netui:treeItem title="0.1" expanded="false">
+          <netui:treeLabel>0.1</netui:treeLabel>
+            <netui:treeItem title="0.1.0">0.1.0</netui:treeItem>
+            <netui:treeItem title="0.1.1">0.1.1</netui:treeItem>
+          </netui:treeItem>
+          <netui:treeItem title="0.2" expanded="false">
+          <netui:treeLabel>0.2</netui:treeLabel>
+            <netui:treeItem title="0.2.0">0.2.0</netui:treeItem>
+            <netui:treeItem title="0.2.1">0.2.1</netui:treeItem>
+           </netui:treeItem>
+        </netui:treeItem>
+      </netui:tree>
+    </div>
+  </netui-template:section>
+</netui-template:template>

Propchange: incubator/beehive/trunk/samples/netui-samples/ui/tree/tree.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/validation/Controller.jpf
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/validation/Controller.jpf?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/validation/Controller.jpf 
(added)
+++ incubator/beehive/trunk/samples/netui-samples/validation/Controller.jpf Tue 
Apr 12 13:23:23 2005
@@ -0,0 +1,69 @@
+/*
+ * Copyright 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.
+ *
+ * $Header:$
+ */
+package validation;
+
+import org.apache.beehive.netui.pageflow.*;
+import org.apache.beehive.netui.pageflow.annotations.*;
+
+import java.io.Serializable;
+
[EMAIL PROTECTED](
+    simpleActions = [EMAIL PROTECTED](name="begin",path="index.jsp")},
+    validatableBeans={
+        @Jpf.ValidatableBean(
+            type=Controller.MyForm.class,
+            validatableProperties={
+                @Jpf.ValidatableProperty(
+                    propertyName="date",
+                    displayName="This field",
+                    [EMAIL PROTECTED](),
+                    [EMAIL PROTECTED](pattern="M-d-y")
+                )
+            }
+        )
+    }
+)
+public class Controller extends PageFlowController
+{
+    @Jpf.Action(
+        forwards={
+            @Jpf.Forward(name="success", path="success.jsp")
+        },
+        [EMAIL PROTECTED](name="fail", navigateTo=Jpf.NavigateTo.currentPage)
+    )
+    public Forward validate( MyForm form )
+    {
+        getRequest().setAttribute("date", form.getDate());
+        return new Forward( "success" );
+    }
+    
+    public static class MyForm implements Serializable
+    {
+        private String _date;
+
+        public String getDate()
+        {
+            return _date;
+        }
+
+        public void setDate( String str )
+        {
+            _date = str;
+        }
+    }
+}

Propchange: 
incubator/beehive/trunk/samples/netui-samples/validation/Controller.jpf
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/validation/error.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/validation/error.jsp?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/validation/error.jsp (added)
+++ incubator/beehive/trunk/samples/netui-samples/validation/error.jsp Tue Apr 
12 13:23:23 2005
@@ -0,0 +1,69 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0"; prefix="netui"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core"; prefix="c"%>
+<netui:html>
+  <head>
+    <title>NetUI Error</title>
+    <style>
+    table {
+        border: solid 1pt #90180F;
+        background-color: #ffffff;
+    }
+    body {
+        margin: 20pt 5%;
+        background-color: #fdf4b6;
+        font-family: Arial, Helvetica, sans-serif;
+        font-size: 10pt;
+    }
+    .caption {
+        font-weight: bold;
+        font-size: 20pt;
+        text-align: left;
+        width: 500px
+    }
+    th {vertical-align: top;
+        text-align: right;
+        font-size: 12pt;
+        color: #90180F;
+        width: 100px;
+    }
+    td {
+        text-align: left;
+        }
+    hr {
+        color: #90180F;
+    }
+    .posTitle {
+        position: relative; 
+        color: #6C0C06;
+        left: -160pt; 
+        top: -12pt; 
+    }
+    .pfErrorLineOne {
+        color: red;
+        font-size: 12pt;
+        font-style: italic;
+    }
+    img {
+        border: solid 2pt #90180F;
+    }
+    </style>
+    <netui:base/>
+  </head>
+  <netui:body>
+    <div class="caption">
+    <netui:image 
src="${pageContext.request.contextPath}/resources/beehive/version1/images/error-header.jpg"
 width="338" height="96" alt="Page Flow Error"/>
+    <span class="posTitle">NetUI Error</span>
+    </div>
+    <table border="0" cellspacing='0' cellpadding='4'>
+       <c:if test="${request.errorMessage != null}">
+            <tr><th>Message:</th><td class="pfErrorLineOne"><netui:label 
value="${request.errorMessage}" defaultValue="&nbsp;"/></td></tr>
+       </c:if> 
+       <tr><th>Exception:</th><td class="pfErrorLineOne"><netui:exceptions 
showMessage="true"/></td></tr> 
+       <tr><td colspan="2" style="min-width:342"><hr></td></tr>     
+       <tr><th>Stack Trace:</th><td><netui:exceptions showMessage="false" 
showDevModeStackTrace="true"/></td></tr>
+    </table>      
+  </netui:body>
+</netui:html>
+<%-- Some browsers will not display this page unless the response status code 
is 200. --%>
+<% response.setStatus(200); %>

Propchange: incubator/beehive/trunk/samples/netui-samples/validation/error.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/validation/index.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/validation/index.jsp?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/validation/index.jsp (added)
+++ incubator/beehive/trunk/samples/netui-samples/validation/index.jsp Tue Apr 
12 13:23:23 2005
@@ -0,0 +1,16 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib prefix="netui" uri="http://beehive.apache.org/netui/tags-html-1.0"%>
+<%@ taglib prefix="netui-data" 
uri="http://beehive.apache.org/netui/tags-databinding-1.0"%>
+<%@ taglib prefix="netui-template" 
uri="http://beehive.apache.org/netui/tags-template-1.0"%>
+
+<netui-template:template templatePage="/resources/template/template.jsp">
+  <netui-template:setAttribute name="samTitle" value="Validation"/>
+  <netui-template:section name="main">
+        <netui:form action="validate">
+            <p>Submit date (MM-dd-YYYY):
+            <netui:textBox dataSource="actionForm.date"/></p>
+            <netui:error key="date"/>
+            <p><netui:button value="Submit"/></p>
+        </netui:form>
+  </netui-template:section>
+</netui-template:template>

Propchange: incubator/beehive/trunk/samples/netui-samples/validation/index.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/validation/success.jsp
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/validation/success.jsp?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/validation/success.jsp (added)
+++ incubator/beehive/trunk/samples/netui-samples/validation/success.jsp Tue 
Apr 12 13:23:23 2005
@@ -0,0 +1,15 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib prefix="netui" uri="http://beehive.apache.org/netui/tags-html-1.0"%>
+<%@ taglib prefix="netui-data" 
uri="http://beehive.apache.org/netui/tags-databinding-1.0"%>
+<%@ taglib prefix="netui-template" 
uri="http://beehive.apache.org/netui/tags-template-1.0"%>
+
+<netui-template:template templatePage="/resources/template/template.jsp">
+  <netui-template:setAttribute name="samTitle" value="Validation"/>
+  <netui-template:section name="main">
+        <p>Data submitted: <netui:span value="${requestScope.date}"/></p>
+        <p>Date validation successful.</p>
+        <p><netui:anchor action="begin">Submit another date</netui:anchor></p>
+  </netui-template:section>
+</netui-template:template>
+  
+

Propchange: incubator/beehive/trunk/samples/netui-samples/validation/success.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/samples/netui-samples/velocity.log
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/samples/netui-samples/velocity.log?view=auto&rev=161112
==============================================================================
--- incubator/beehive/trunk/samples/netui-samples/velocity.log (added)
+++ incubator/beehive/trunk/samples/netui-samples/velocity.log Tue Apr 12 
13:23:23 2005
@@ -0,0 +1,41 @@
+Mon Apr 11 16:49:39 PDT 2005  [debug] AvalonLogSystem initialized using 
logfile 'velocity.log'
+Mon Apr 11 16:49:39 PDT 2005   [info] 
************************************************************** 
+Mon Apr 11 16:49:39 PDT 2005   [info] Starting Jakarta Velocity v1.4
+Mon Apr 11 16:49:39 PDT 2005   [info] RuntimeInstance initializing.
+Mon Apr 11 16:49:39 PDT 2005   [info] Default Properties File: 
org\apache\velocity\runtime\defaults\velocity.properties
+Mon Apr 11 16:49:39 PDT 2005   [info] Trying to use logger class 
org.apache.velocity.runtime.log.AvalonLogSystem
+Mon Apr 11 16:49:39 PDT 2005   [info] Using logger class 
org.apache.velocity.runtime.log.AvalonLogSystem
+Mon Apr 11 16:49:39 PDT 2005   [info] Default ResourceManager initializing. 
(class org.apache.velocity.runtime.resource.ResourceManagerImpl)
+Mon Apr 11 16:49:39 PDT 2005   [info] Resource Loader Instantiated: 
org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
+Mon Apr 11 16:49:39 PDT 2005   [info] ClasspathResourceLoader : initialization 
starting.
+Mon Apr 11 16:49:39 PDT 2005   [info] ClasspathResourceLoader : initialization 
complete.
+Mon Apr 11 16:49:39 PDT 2005   [info] ResourceCache : initialized. (class 
org.apache.velocity.runtime.resource.ResourceCacheImpl)
+Mon Apr 11 16:49:39 PDT 2005   [info] Default ResourceManager initialization 
complete.
+Mon Apr 11 16:49:39 PDT 2005   [info] Loaded System Directive: 
org.apache.velocity.runtime.directive.Literal
+Mon Apr 11 16:49:39 PDT 2005   [info] Loaded System Directive: 
org.apache.velocity.runtime.directive.Macro
+Mon Apr 11 16:49:39 PDT 2005   [info] Loaded System Directive: 
org.apache.velocity.runtime.directive.Parse
+Mon Apr 11 16:49:39 PDT 2005   [info] Loaded System Directive: 
org.apache.velocity.runtime.directive.Include
+Mon Apr 11 16:49:39 PDT 2005   [info] Loaded System Directive: 
org.apache.velocity.runtime.directive.Foreach
+Mon Apr 11 16:49:39 PDT 2005   [info] Created: 20 parsers.
+Mon Apr 11 16:49:39 PDT 2005   [info] Velocimacro : initialization starting.
+Mon Apr 11 16:49:39 PDT 2005   [info] Velocimacro : adding VMs from VM library 
template : org/apache/beehive/controls/runtime/generator/ControlMacros.vm
+Mon Apr 11 16:49:39 PDT 2005   [info] Velocimacro : added new VM : #toObject( 
type ) : source = org/apache/beehive/controls/runtime/generator/ControlMacros.vm
+Mon Apr 11 16:49:39 PDT 2005   [info] Velocimacro : added new VM : 
#declareMethodStatics( ) : source = 
org/apache/beehive/controls/runtime/generator/ControlMacros.vm
+Mon Apr 11 16:49:39 PDT 2005   [info] Velocimacro : added new VM : 
#initMethodStatics( ) : source = 
org/apache/beehive/controls/runtime/generator/ControlMacros.vm
+Mon Apr 11 16:49:39 PDT 2005   [info] ResourceManager : found 
org/apache/beehive/controls/runtime/generator/ControlMacros.vm with loader 
org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
+Mon Apr 11 16:49:39 PDT 2005   [info] Velocimacro :  VM library template macro 
registration complete.
+Mon Apr 11 16:49:39 PDT 2005   [info] Velocimacro : allowInline = true : VMs 
can be defined inline in templates
+Mon Apr 11 16:49:39 PDT 2005   [info] Velocimacro : allowInlineToOverride = 
false : VMs defined inline may NOT replace previous VM definitions
+Mon Apr 11 16:49:39 PDT 2005   [info] Velocimacro : allowInlineLocal = false : 
VMs defined inline will be  global in scope if allowed.
+Mon Apr 11 16:49:39 PDT 2005   [info] Velocimacro : messages on  : VM system 
will output logging messages
+Mon Apr 11 16:49:39 PDT 2005   [info] Velocimacro : autoload off  : VM system 
will not automatically reload global library macros
+Mon Apr 11 16:49:39 PDT 2005   [info] Velocimacro : initialization complete.
+Mon Apr 11 16:49:39 PDT 2005   [info] Velocity successfully started.
+Mon Apr 11 16:49:39 PDT 2005   [info] Velocimacro : added new VM : 
#declareReflectFields( ) : source = 
org/apache/beehive/controls/runtime/generator/ClientInitializer.vm
+Mon Apr 11 16:49:39 PDT 2005   [info] Velocimacro : added new VM : 
#initReflectFields( ) : source = 
org/apache/beehive/controls/runtime/generator/ClientInitializer.vm
+Mon Apr 11 16:49:39 PDT 2005   [info] Velocimacro : added new VM : 
#declareEventAdaptor( adaptor ) : source = 
org/apache/beehive/controls/runtime/generator/ClientInitializer.vm
+Mon Apr 11 16:49:39 PDT 2005   [info] Velocimacro : added new VM : 
#declareEventAdaptors( ) : source = 
org/apache/beehive/controls/runtime/generator/ClientInitializer.vm
+Mon Apr 11 16:49:39 PDT 2005   [info] Velocimacro : added new VM : 
#initEventAdaptors( control ) : source = 
org/apache/beehive/controls/runtime/generator/ClientInitializer.vm
+Mon Apr 11 16:49:39 PDT 2005   [info] Velocimacro : added new VM : 
#initControl( control ) : source = 
org/apache/beehive/controls/runtime/generator/ClientInitializer.vm
+Mon Apr 11 16:49:39 PDT 2005   [info] Velocimacro : added new VM : 
#declareFieldInit( ) : source = 
org/apache/beehive/controls/runtime/generator/ClientInitializer.vm
+Mon Apr 11 16:49:39 PDT 2005   [info] ResourceManager : found 
org/apache/beehive/controls/runtime/generator/ClientInitializer.vm with loader 
org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader


Reply via email to