tt-rss/lib/dijit/_Templated.js.uncompressed.js
2012-08-14 18:59:18 +04:00

71 lines
2.3 KiB
JavaScript

define("dijit/_Templated", [
"./_WidgetBase",
"./_TemplatedMixin",
"./_WidgetsInTemplateMixin",
"dojo/_base/array", // array.forEach
"dojo/_base/declare", // declare
"dojo/_base/lang", // lang.extend lang.isArray
"dojo/_base/kernel" // kernel.deprecated
], function(_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin, array, declare, lang, kernel){
/*=====
var _WidgetBase = dijit._WidgetBase;
var _TemplatedMixin = dijit._TemplatedMixin;
var _WidgetsInTemplateMixin = dijit._WidgetsInTemplateMixin;
=====*/
// module:
// dijit/_Templated
// summary:
// Deprecated mixin for widgets that are instantiated from a template.
// These arguments can be specified for widgets which are used in templates.
// Since any widget can be specified as sub widgets in template, mix it
// into the base widget class. (This is a hack, but it's effective.)
lang.extend(_WidgetBase, {
waiRole: "",
waiState:""
});
return declare("dijit._Templated", [_TemplatedMixin, _WidgetsInTemplateMixin], {
// summary:
// Deprecated mixin for widgets that are instantiated from a template.
// Widgets should use _TemplatedMixin plus if necessary _WidgetsInTemplateMixin instead.
// widgetsInTemplate: [protected] Boolean
// Should we parse the template to find widgets that might be
// declared in markup inside it? False by default.
widgetsInTemplate: false,
constructor: function(){
kernel.deprecated(this.declaredClass + ": dijit._Templated deprecated, use dijit._TemplatedMixin and if necessary dijit._WidgetsInTemplateMixin", "", "2.0");
},
_attachTemplateNodes: function(rootNode, getAttrFunc){
this.inherited(arguments);
// Do deprecated waiRole and waiState
var nodes = lang.isArray(rootNode) ? rootNode : (rootNode.all || rootNode.getElementsByTagName("*"));
var x = lang.isArray(rootNode) ? 0 : -1;
for(; x<nodes.length; x++){
var baseNode = (x == -1) ? rootNode : nodes[x];
// waiRole, waiState
var role = getAttrFunc(baseNode, "waiRole");
if(role){
baseNode.setAttribute("role", role);
}
var values = getAttrFunc(baseNode, "waiState");
if(values){
array.forEach(values.split(/\s*,\s*/), function(stateValue){
if(stateValue.indexOf('-') != -1){
var pair = stateValue.split('-');
baseNode.setAttribute("aria-"+pair[0], pair[1]);
}
});
}
}
}
});
});