Blame | Last modification | View Log | RSS feed
if(!dojo._hasResource["dojo.dnd.Avatar"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["dojo.dnd.Avatar"] = true;dojo.provide("dojo.dnd.Avatar");dojo.require("dojo.dnd.common");dojo.dnd.Avatar = function(manager){// summary: an object, which represents transferred DnD items visually// manager: Object: a DnD manager objectthis.manager = manager;this.construct();};dojo.extend(dojo.dnd.Avatar, {construct: function(){// summary: a constructor function;// it is separate so it can be (dynamically) overwritten in case of needvar a = dojo.doc.createElement("table");a.className = "dojoDndAvatar";a.style.position = "absolute";a.style.zIndex = 1999;a.style.margin = "0px"; // to avoid dojo.marginBox() problems with table's marginsvar b = dojo.doc.createElement("tbody");var tr = dojo.doc.createElement("tr");tr.className = "dojoDndAvatarHeader";var td = dojo.doc.createElement("td");td.innerHTML = this._generateText();tr.appendChild(td);dojo.style(tr, "opacity", 0.9);b.appendChild(tr);var k = Math.min(5, this.manager.nodes.length);var source = this.manager.source;for(var i = 0; i < k; ++i){tr = dojo.doc.createElement("tr");tr.className = "dojoDndAvatarItem";td = dojo.doc.createElement("td");var node = source.creator ?// create an avatar representation of the nodenode = source._normalizedCreator(source.getItem(this.manager.nodes[i].id).data, "avatar").node :// or just clone the node and hope it worksnode = this.manager.nodes[i].cloneNode(true);node.id = "";td.appendChild(node);tr.appendChild(td);dojo.style(tr, "opacity", (9 - i) / 10);b.appendChild(tr);}a.appendChild(b);this.node = a;},destroy: function(){// summary: a desctructor for the avatar, called to remove all references so it can be garbage-collecteddojo._destroyElement(this.node);this.node = false;},update: function(){// summary: updates the avatar to reflect the current DnD statedojo[(this.manager.canDropFlag ? "add" : "remove") + "Class"](this.node, "dojoDndAvatarCanDrop");// replace textvar t = this.node.getElementsByTagName("td");for(var i = 0; i < t.length; ++i){var n = t[i];if(dojo.hasClass(n.parentNode, "dojoDndAvatarHeader")){n.innerHTML = this._generateText();break;}}},_generateText: function(){// summary: generates a proper text to reflect copying or moving of itemsreturn this.manager.nodes.length.toString();}});}