dojox/mobile/parser.js

  • Provides:

    • dojox.mobile.parser
  • dojox.mobile.parser

    • type
      Function
    • ?? initialized = 1 (debug: boolean) ??
    • source: [view]
       this.instantiate = function(list, defaultParams){
        // summary:
        //  Function for instantiating a list of widget nodes.
        // list:
        //  The list of DOMNodes to walk and instantiate widgets on.
        var ws = [];
        if(list){
         var i, len;
         len = list.length;
         for(i = 0; i < len; i++){
          var node = list[i];
          var cls = dojo.getObject(dojo.attr(node, "dojoType"));
          var proto = cls.prototype;
          var params = {};


          if(defaultParams){
           for(var name in defaultParams){
            params[name] = defaultParams[name];
           }
          }
          for(var prop in proto){
           var val = dojo.attr(node, prop);
           if(!val){ continue; }
           if(typeof proto[prop] == "string"){
            params[prop] = val;
           }else if(typeof proto[prop] == "number"){
            params[prop] = val - 0;
           }else if(typeof proto[prop] == "boolean"){
            params[prop] = (val != "false");
           }else if(typeof proto[prop] == "object"){
            params[prop] = eval("(" + val + ")");
           }
          }
          params["class"] = node.className;
          params["style"] = node.style && node.style.cssText;
          var instance = new cls(params, node);
          ws.push(instance);
          var jsId = node.getAttribute("jsId");
          if(jsId){
           dojo.setObject(jsId, instance);
          }
         }
         len = ws.length;
         for(i = 0; i < len; i++){
          var w = ws[i];
          w.startup && !w._started && (!w.getParent || !w.getParent()) && w.startup();
         }
        }
        return ws;
       };


       this.parse = function(rootNode, defaultParams){
        // summary:
        //  Function to handle parsing for widgets in the current document.
        //  It is not as powerful as the full dojo parser, but it will handle basic
        //  use cases fine.
        // rootNode:
        //  The root node in the document to parse from
        if(!rootNode){
         rootNode = dojo.body();
        }else if(!defaultParams && rootNode.rootNode){
         // Case where 'rootNode' is really a params object.
         rootNode = rootNode.rootNode;
        }


        var nodes = rootNode.getElementsByTagName("*");
        var list = [];
        for(var i = 0, len = nodes.length; i < len; i++){
         if(nodes[i].getAttribute("dojoType")){
          list.push(nodes[i]);
         }
        }
        return this.instantiate(list, defaultParams);
       };
    • summary
  • dojox.mobile.parser.instantiate

    • type
      Function
    • parameters:
      • list: (typeof The)
        list of DOMNodes to walk and instantiate widgets on.
      • defaultParams: (typeof )
    • source: [view]
        var ws = [];
        if(list){
         var i, len;
         len = list.length;
         for(i = 0; i < len; i++){
          var node = list[i];
          var cls = dojo.getObject(dojo.attr(node, "dojoType"));
          var proto = cls.prototype;
          var params = {};


          if(defaultParams){
           for(var name in defaultParams){
            params[name] = defaultParams[name];
           }
          }
          for(var prop in proto){
           var val = dojo.attr(node, prop);
           if(!val){ continue; }
           if(typeof proto[prop] == "string"){
            params[prop] = val;
           }else if(typeof proto[prop] == "number"){
            params[prop] = val - 0;
           }else if(typeof proto[prop] == "boolean"){
            params[prop] = (val != "false");
           }else if(typeof proto[prop] == "object"){
            params[prop] = eval("(" + val + ")");
           }
          }
          params["class"] = node.className;
          params["style"] = node.style && node.style.cssText;
          var instance = new cls(params, node);
          ws.push(instance);
          var jsId = node.getAttribute("jsId");
          if(jsId){
           dojo.setObject(jsId, instance);
          }
         }
         len = ws.length;
         for(i = 0; i < len; i++){
          var w = ws[i];
          w.startup && !w._started && (!w.getParent || !w.getParent()) && w.startup();
         }
        }
        return ws;
    • summary
      Function for instantiating a list of widget nodes.
  • dojox.mobile.parser.parse

    • type
      Function
    • parameters:
      • rootNode: (typeof The)
        root node in the document to parse from
      • defaultParams: (typeof )
    • source: [view]
        if(!rootNode){
         rootNode = dojo.body();
        }else if(!defaultParams && rootNode.rootNode){
         // Case where 'rootNode' is really a params object.
         rootNode = rootNode.rootNode;
        }


        var nodes = rootNode.getElementsByTagName("*");
        var list = [];
        for(var i = 0, len = nodes.length; i < len; i++){
         if(nodes[i].getAttribute("dojoType")){
          list.push(nodes[i]);
         }
        }
        return this.instantiate(list, defaultParams);
    • summary
      Function to handle parsing for widgets in the current document.
      It is not as powerful as the full dojo parser, but it will handle basic
      use cases fine.
  • dojox.mobile

    • type
      Object
    • summary
  • dojox

    • type
      Object
    • summary