[jboss-cvs] jboss-seam/examples/seambay/view ...

Shane Bryzak sbryzak at redhat.com
Mon Apr 9 21:42:38 EDT 2007


  User: sbryzak2
  Date: 07/04/09 21:42:38

  Modified:    examples/seambay/view   test.js test.xhtml
  Log:
  improvements to web services test page
  
  Revision  Changes    Path
  1.3       +117 -4    jboss-seam/examples/seambay/view/test.js
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: test.js
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/seambay/view/test.js,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- test.js	29 Mar 2007 13:55:07 -0000	1.2
  +++ test.js	10 Apr 2007 01:42:38 -0000	1.3
  @@ -1,9 +1,16 @@
  -var webServices = {};
  +var webServices = new Object();
  +
  +ServiceParam = function(name, key)
  +{
  +  this.name = name;
  +  this.key = key; 
  +  this.value = "#{" + key + "}";
  +}
   
   ServiceMetadata = function(name)
   {
     this.name = name;
  -  this.parameters = {};
  +  this.parameters = new Array();
   
     webServices[name] = this;
   
  @@ -23,7 +30,62 @@
   svc = new ServiceMetadata("listAuctions");
   svc.setDescription("List Auctions");
   
  +svc = new ServiceMetadata("login");
  +svc.setDescription("Login");
  +svc.setRequest("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" " +
  +               "\n    xmlns:seam=\"http://seambay.example.seam.jboss.org/\">\n  <soapenv:Header/>" +
  +               "\n  <soapenv:Body>" +
  +               "\n    <seam:login>" +
  +               "\n      <arg0>#{username}</arg0>" +
  +               "\n      <arg1>#{password}</arg1>" +
  +               "\n    </seam:login>" +
  +               "\n  </soapenv:Body>" +
  +               "</soapenv:Envelope>");
  +svc.addParameter(new ServiceParam("Username", "username"));
  +svc.addParameter(new ServiceParam("Password", "password"));      
  +
  +var selectedService = null;         
  +
  +function setAllParams()
  +{
  +  if (!selectedService)
  +    return;
  +  
  +  var request = selectedService.request;  
  +  
  +  for (var i = 0; i < selectedService.parameters.length; i++)
  +  {
  +    var param = selectedService.parameters[i];
  +    var search = "#{" + param.key + "}";
  +    
  +    request = request.replace(search, param.value);
  +  } 
  +  
  +  document.getElementById("serviceRequest").value = request;  
  +}
  +
  +function setParamValue(event)
  +{
  +  var ctl = null
  +  if (event.target)
  +    ctl = event.target;
  +  else if (window.event.srcElement)
  +    ctl = window.event.srcElement;
  +    
  +  var key = ctl.id;
  +  
  +  for (var i = 0; i < selectedService.parameters.length; i++)
  +  {
  +    var param = selectedService.parameters[i];
  +    if (param.key == key)
  +    {
  +      param.value = ctl.value;
  +      break;
  +    }
  +  } 
   
  +  setAllParams();
  +}
   
   function selectService(serviceName)
   {
  @@ -35,9 +97,45 @@
       return;
     }
     
  +  selectedService = svc;
  +  
     document.getElementById("selectedService").innerHTML = svc.getDescription();
  -  document.getElementById("serviceRequest").value = svc.getRequest();
  + // document.getElementById("serviceRequest").value = svc.getRequest();
     document.getElementById("serviceResponse").value = null;
  +  
  +  var ctl = document.getElementById("parameters");
  +  for (var i = ctl.childNodes.length - 1; i >= 0; i--)
  +  {
  +     ctl.removeChild(ctl.childNodes[i]);
  +  }
  +
  +  var tbl = document.createElement("table");
  +  tbl.cellspacing = 0;
  +  tbl.cellpadding = 0;
  +  
  +  ctl.appendChild(tbl);
  +    
  +  for (var i = 0; i < svc.parameters.length; i++)
  +  {
  +     var row = tbl.insertRow(-1);
  +     
  +     var td = document.createElement("td");
  +     row.appendChild(td);
  +     td.innerHTML = svc.parameters[i].name;
  +          
  +     var inp = document.createElement("input");
  +
  +     inp.id = svc.parameters[i].key;
  +     inp.value = svc.parameters[i].value;
  +     inp.onchange = setParamValue;
  +     inp.onkeyup = setParamValue;
  +     
  +     td = document.createElement("td");
  +     row.appendChild(td);
  +     td.appendChild(inp);
  +  }
  +  
  +  setAllParams();
   }
   
   function sendRequest()
  @@ -73,3 +171,18 @@
       }
     }  
   }
  \ No newline at end of file
  +
  +function initServices()
  +{
  +  for (var i in webServices)
  +  {    
  +    var ws = webServices[i];
  +    
  +    var anchor = document.createElement("a");
  +    anchor.href = "javascript:selectService('" + ws.name + "')";  
  +    anchor.appendChild(document.createTextNode(ws.getDescription()));
  +    document.getElementById("services").appendChild(anchor); 
  +  }
  +}
  +
  +initServices();
  \ No newline at end of file
  
  
  
  1.2       +2 -3      jboss-seam/examples/seambay/view/test.xhtml
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: test.xhtml
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/seambay/view/test.xhtml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- test.xhtml	24 Mar 2007 05:38:10 -0000	1.1
  +++ test.xhtml	10 Apr 2007 01:42:38 -0000	1.2
  @@ -8,7 +8,6 @@
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
       <title>seamBay</title>
       <link href="style/test.css" rel="stylesheet" type="text/css"/> 
  -    <script type="text/javascript" src="test.js"/>   
     </head>
   
     <body>
  @@ -16,8 +15,6 @@
     
       <div id="services">
         <span>Select a service to test</span>
  -      <a href="#" onclick="javascript:selectService('listCategories')">List Categories</a>
  -      <a href="#" onclick="javascript:selectService('listAuctions')">List Auctions</a>
       </div>
       
       <div id="detail">
  @@ -49,5 +46,7 @@
       
       </div>
   
  +    <script type="text/javascript" src="test.js"/>       
  +
     </body>
   </html>
  \ No newline at end of file
  
  
  



More information about the jboss-cvs-commits mailing list