From e44a7e37b6c7b5961adaffc62b9042b8d442938e Mon Sep 17 00:00:00 2001 From: mensonge Date: Thu, 13 Nov 2008 09:49:11 +0000 Subject: New feature: basic Ajax suggestion for tags and implementation of Dojo toolkit git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@151 b3834d28-1941-0410-a4f8-b48e95affb8f --- includes/js/dojox/dtl/_HtmlTemplated.js | 72 +++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 includes/js/dojox/dtl/_HtmlTemplated.js (limited to 'includes/js/dojox/dtl/_HtmlTemplated.js') diff --git a/includes/js/dojox/dtl/_HtmlTemplated.js b/includes/js/dojox/dtl/_HtmlTemplated.js new file mode 100644 index 0000000..8947a8d --- /dev/null +++ b/includes/js/dojox/dtl/_HtmlTemplated.js @@ -0,0 +1,72 @@ +if(!dojo._hasResource["dojox.dtl._HtmlTemplated"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojox.dtl._HtmlTemplated"] = true; +dojo.provide("dojox.dtl._HtmlTemplated"); +dojo.require("dijit._Templated"); +dojo.require("dojox.dtl.html"); +dojo.require("dojox.dtl.render.html"); +dojo.require("dojox.dtl.contrib.dijit"); + +dojox.dtl._HtmlTemplated = { + prototype: { + _dijitTemplateCompat: false, + buildRendering: function(){ + this.domNode = this.srcNodeRef; + + if(!this._render){ + var ddcd = dojox.dtl.contrib.dijit; + var old = ddcd.widgetsInTemplate; + ddcd.widgetsInTemplate = this.widgetsInTemplate; + this._template = this._getCachedTemplate(this.templatePath, this.templateString); + this._render = new dojox.dtl.render.html.Render(this.domNode, this._template); + ddcd.widgetsInTemplate = old; + } + + var self = this; + this._rendering = setTimeout(function(){ self.render(); }, 10); + }, + setTemplate: function(/*String|dojo._Url*/ template, /*dojox.dtl.Context?*/ context){ + // summary: + // Quickly switch between templated by location + if(dojox.dtl.text._isTemplate(template)){ + this._template = this._getCachedTemplate(null, template); + }else{ + this._template = this._getCachedTemplate(template); + } + this.render(context); + }, + render: function(/*dojox.dtl.Context?*/ context){ + if(this._rendering){ + clearTimeout(this._rendering); + delete this._rendering; + } + this._render.render(this._getContext(context)); + }, + _getContext: function(context){ + if (!(context instanceof dojox.dtl.Context)) { + context = false; + } + context = context || new dojox.dtl.Context(this); + context.setThis(this); + return context; + }, + _getCachedTemplate: function(templatePath, templateString){ + if(!this._templates){ + this._templates = {}; + } + var key = templateString || templatePath.toString(); + var tmplts = this._templates; + if(tmplts[key]){ + return tmplts[key]; + } + return (tmplts[key] = new dojox.dtl.HtmlTemplate( + dijit._Templated.getCachedTemplate( + templatePath, + templateString, + true + ) + )); + } + } +}; + +} -- cgit v1.2.3