Package com.anzsoft.client.utils

Source Code of com.anzsoft.client.utils.JabberXData

package com.anzsoft.client.utils;

import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.InputElement;
import com.google.gwt.dom.client.Node;
import com.google.gwt.dom.client.NodeList;


public class JabberXData
{
  public static native String genJabberXDataTable(Node x)
  /*-{
  var html = '<input type=hidden name="jwchat_form_type" value="jabber:x:data">';

  if (x.getElementsByTagName('title').item(0))
    html += "<h1>"+x.getElementsByTagName('title').item(0).firstChild.nodeValue.replace(/\n/g,"<br>")+"</h1>";
  if (x.getElementsByTagName('instructions').item(0))
    html += x.getElementsByTagName('instructions').item(0).firstChild.nodeValue.replace(/\n/g,"<br>");

  if (!x.getElementsByTagName('field').length)
    return html;

  html += '<table width="100%">';
  for (var i=0; i<x.getElementsByTagName('field').length; i++) {
    var aField = x.getElementsByTagName('field').item(i);
     html += "<tr>";
    switch (aField.getAttribute('type')) {
    case 'hidden':
      if (aField.firstChild && aField.firstChild.firstChild)
        html += "<td colspan=2><input type=hidden name='"+aField.getAttribute('var')+"' value='"+aField.firstChild.firstChild.nodeValue+"'></td>";
      break;
    case 'fixed':
      html += "<td colspan=2><b>"+aField.firstChild.firstChild.nodeValue+"</b></td>";
      break;
    case 'jid-single':
    case 'text-single':
      html += "<th>" + aField.getAttribute('label') + "</th>";
      html += "<td>";
      html += "<input type=text size='24' name='" + aField.getAttribute('var') + "'";
      if (aField.firstChild && aField.firstChild.firstChild)
        html += " value='" + aField.firstChild.firstChild.nodeValue + "'";
      html += ">";
      html += "</td>";
      break;
    case 'text-private':
      html += "<th>" + aField.getAttribute('label') + "</th>";
      html += "<td>";
      html += "<input type=password size='24' name='" + aField.getAttribute('var') + "'";
      if (aField.firstChild && aField.firstChild.firstChild)
        html += " value='" + aField.firstChild.firstChild.nodeValue + "'";
      html += ">";
      html += "</td>";
      break;
    case 'jid-multi':
    case 'text-multi':
      html += "<th valign=top>" + aField.getAttribute('label') + "</th>";
      html += "<td>";
      html += "<textarea cols=24 rows=4 name='" + aField.getAttribute('var') + "'>";
      if (aField.firstChild && aField.firstChild.firstChild)
        html += aField.firstChild.firstChild.nodeValue;
      html += "</textarea>";
      html += "</td>";
      break;
    case 'list-single':
      html += "<th>" + aField.getAttribute('label') + "</th>";
      html += "<td>";
      html += "<select name='" + aField.getAttribute('var') + "'>";
      if (aField.childNodes.length) {
        var val;
        for (var j=0; j<aField.childNodes.length; j++)
          if (aField.childNodes.item(j).nodeName == 'value')
            val = aField.childNodes.item(j).firstChild.nodeValue;
        for (var j=0; j<aField.childNodes.length; j++) {
          if (aField.childNodes.item(j).nodeName == 'option') {
            html += "<option value='" + aField.childNodes.item(j).firstChild.firstChild.nodeValue + "'";
             if (val && val == aField.childNodes.item(j).firstChild.firstChild.nodeValue)
               html += " selected";
            html += ">"+aField.childNodes.item(j).getAttribute('label')+"</option>";
          }
        }
      }
      html += "</select>";
      html += "</td>";
      break;
    case 'list-multi':
      html += "<th>" + aField.getAttribute('label') + "</th>";
      html += "<td>";
      html += "<select name='" + aField.getAttribute('var') + "' "
        + "multiple='true'>";
      if (aField.childNodes.length) {
        for (var j=0; j<aField.childNodes.length; j++) {
          if (aField.childNodes.item(j).nodeName == 'option') {
            html += "<option value='" + aField.childNodes.item(j).firstChild.firstChild.nodeValue + "'";
//             if (x.o[i].value == x.o[i].o[j].value)
//               html += " selected";
            html += ">"+aField.childNodes.item(j).getAttribute('label')+"</option>";
          }
        }
      }
      html += "</select>";
      html += "</td>";
      break;
    case 'boolean':
      html += "<th>" + aField.getAttribute('label') + "</th>";
      html += "<td>";
      html += "<input type=checkbox name='" +aField.getAttribute('var') + "'";
      if (aField.firstChild && aField.firstChild.firstChild && aField.firstChild.firstChild.nodeValue == '1')
        html += " checked";
      html += ">";
      html += "</td>";
      break;
    default:
      srcW.Debug.log("unknown type: " + aField.getAttribute('type'),1);
      break;
    }
     html += "</tr>";
  }
  html += "</table>";

  return html;
   }-*/;
 
  public static String genJabberXDataReply(Element form)
  {
    String xml = "<x xmlns='jabber:x:data' type='submit'>";
    NodeList<Element> nodes = form.getElementsByTagName("*");
    for(int i = 0;i < nodes.getLength();i++)
    {
      Element element =  nodes.getItem(i);
      try
      {
        String name = element.getAttribute("name");
        if(name == null||name.isEmpty()||name.equals("jwchat_form_type"))
          continue;
        InputElement ie = (InputElement)element;
        String value = ie.getValue();
        if(value == null)
          value = "";
        String type = ie.getType();
        if(type == null)
          type = "";
       
        xml += "<field var='" +name + "'><value>";
       
        if(type.equals("checkbox"))
        {
          //InputElement ce = (InputElement)element;
          xml += ie.isChecked() ? "1":"0";
        }
        else
          xml += value;
        xml += "</value></field>";
      }
      catch(Exception ce)
      {
       
      }
    }
    xml += "</x>";
    return xml;
  }
}
TOP

Related Classes of com.anzsoft.client.utils.JabberXData

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.