]> git.pond.sub.org Git - eow/blob - static/dojo-release-1.1.1/dojox/dtl/_HtmlTemplated.js
add Dojo 1.1.1
[eow] / static / dojo-release-1.1.1 / dojox / dtl / _HtmlTemplated.js
1 if(!dojo._hasResource["dojox.dtl._HtmlTemplated"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
2 dojo._hasResource["dojox.dtl._HtmlTemplated"] = true;
3 dojo.provide("dojox.dtl._HtmlTemplated");
4 dojo.require("dijit._Templated");
5 dojo.require("dojox.dtl.html");
6 dojo.require("dojox.dtl.render.html");
7 dojo.require("dojox.dtl.contrib.dijit");
8
9 dojox.dtl._HtmlTemplated = {
10         prototype: {
11                 _dijitTemplateCompat: false,
12                 buildRendering: function(){
13                         this.domNode = this.srcNodeRef;
14
15                         if(!this._render){
16                                 var ddcd = dojox.dtl.contrib.dijit;
17                                 var old = ddcd.widgetsInTemplate;
18                                 ddcd.widgetsInTemplate = this.widgetsInTemplate;
19                                 this._template = this._getCachedTemplate(this.templatePath, this.templateString);
20                                 this._render = new dojox.dtl.render.html.Render(this.domNode, this._template);
21                                 ddcd.widgetsInTemplate = old;
22                         }
23
24                         var self = this;
25                         this._rendering = setTimeout(function(){ self.render(); }, 10);
26                 },
27                 setTemplate: function(/*String|dojo._Url*/ template, /*dojox.dtl.Context?*/ context){
28                         // summary:
29                         //              Quickly switch between templated by location
30                         if(dojox.dtl.text._isTemplate(template)){
31                                 this._template = this._getCachedTemplate(null, template);
32                         }else{
33                                 this._template = this._getCachedTemplate(template);
34                         }
35                         this.render(context);
36                 },
37                 render: function(/*dojox.dtl.Context?*/ context){
38                         if(this._rendering){
39                                 clearTimeout(this._rendering);
40                                 delete this._rendering;
41                         }
42                         this._render.render(this._getContext(context));
43                 },
44                 _getContext: function(context){
45                         if (!(context instanceof dojox.dtl.Context)) {
46                                 context = false;
47                         }
48                         context = context || new dojox.dtl.Context(this);
49                         context.setThis(this);
50                         return context;
51                 },
52                 _getCachedTemplate: function(templatePath, templateString){
53                         if(!this._templates){
54                                 this._templates = {};
55                         }
56                         var key = templateString || templatePath.toString();
57                         var tmplts = this._templates;
58                         if(tmplts[key]){
59                                 return tmplts[key];
60                         }
61                         return (tmplts[key] = new dojox.dtl.HtmlTemplate(
62                                 dijit._Templated.getCachedTemplate(
63                                         templatePath,
64                                         templateString,
65                                         true
66                                 )
67                         ));
68                 }
69         }
70 };
71
72 }