You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2009/07/16 21:14:56 UTC

svn commit: r794787 [22/34] - in /geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src: ./ animation/ cal/ charting/ charting/svg/ charting/vml/ collections/ crypto/ data/ data/core/ data/old/ data/old/format/ data/old/provider/ date/ debug/...

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Plugin/TableOperation.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Plugin/TableOperation.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Plugin/TableOperation.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Plugin/TableOperation.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,120 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.Editor2Plugin.TableOperation");
+dojo.require("dojo.widget.Editor2");
+dojo.event.topic.subscribe("dojo.widget.RichText::init", function (editor) {
+	if (dojo.render.html.ie) {
+		editor.contentDomPreFilters.push(dojo.widget.Editor2Plugin.TableOperation.showIETableBorder);
+		editor.contentDomPostFilters.push(dojo.widget.Editor2Plugin.TableOperation.removeIEFakeClass);
+	}
+	editor.getCommand("toggletableborder");
+});
+dojo.lang.declare("dojo.widget.Editor2Plugin.deleteTableCommand", dojo.widget.Editor2Command, {execute:function () {
+	var table = dojo.withGlobal(this._editor.window, "getAncestorElement", dojo.html.selection, ["table"]);
+	if (table) {
+		dojo.withGlobal(this._editor.window, "selectElement", dojo.html.selection, [table]);
+		this._editor.execCommand("inserthtml", " ");
+	}
+}, getState:function () {
+	if (this._editor._lastStateTimestamp > this._updateTime || this._state == undefined) {
+		this._updateTime = this._editor._lastStateTimestamp;
+		var table = dojo.withGlobal(this._editor.window, "hasAncestorElement", dojo.html.selection, ["table"]);
+		this._state = table ? dojo.widget.Editor2Manager.commandState.Enabled : dojo.widget.Editor2Manager.commandState.Disabled;
+	}
+	return this._state;
+}, getText:function () {
+	return "Delete Table";
+}});
+dojo.lang.declare("dojo.widget.Editor2Plugin.toggleTableBorderCommand", dojo.widget.Editor2Command, function () {
+	this._showTableBorder = false;
+	dojo.event.connect(this._editor, "editorOnLoad", this, "execute");
+}, {execute:function () {
+	if (this._showTableBorder) {
+		this._showTableBorder = false;
+		if (dojo.render.html.moz) {
+			this._editor.removeStyleSheet(dojo.uri.moduleUri("dojo.widget", "templates/Editor2/showtableborder_gecko.css"));
+		} else {
+			if (dojo.render.html.ie) {
+				this._editor.removeStyleSheet(dojo.uri.moduleUri("dojo.widget", "templates/Editor2/showtableborder_ie.css"));
+			}
+		}
+	} else {
+		this._showTableBorder = true;
+		if (dojo.render.html.moz) {
+			this._editor.addStyleSheet(dojo.uri.moduleUri("dojo.widget", "templates/Editor2/showtableborder_gecko.css"));
+		} else {
+			if (dojo.render.html.ie) {
+				this._editor.addStyleSheet(dojo.uri.moduleUri("dojo.widget", "templates/Editor2/showtableborder_ie.css"));
+			}
+		}
+	}
+}, getText:function () {
+	return "Toggle Table Border";
+}, getState:function () {
+	return this._showTableBorder ? dojo.widget.Editor2Manager.commandState.Latched : dojo.widget.Editor2Manager.commandState.Enabled;
+}});
+dojo.widget.Editor2Plugin.TableOperation = {getCommand:function (editor, name) {
+	switch (name.toLowerCase()) {
+	  case "toggletableborder":
+		return new dojo.widget.Editor2Plugin.toggleTableBorderCommand(editor, name);
+	  case "inserttable":
+		return new dojo.widget.Editor2DialogCommand(editor, "inserttable", {contentFile:"dojo.widget.Editor2Plugin.InsertTableDialog", contentClass:"Editor2InsertTableDialog", title:"Insert/Edit Table", width:"450px", height:"250px"});
+	  case "deletetable":
+		return new dojo.widget.Editor2Plugin.deleteTableCommand(editor, name);
+	}
+}, getToolbarItem:function (name) {
+	var name = name.toLowerCase();
+	var item;
+	switch (name) {
+	  case "inserttable":
+	  case "toggletableborder":
+		item = new dojo.widget.Editor2ToolbarButton(name);
+	}
+	return item;
+}, getContextMenuGroup:function (name, contextmenuplugin) {
+	return new dojo.widget.Editor2Plugin.TableContextMenuGroup(contextmenuplugin);
+}, showIETableBorder:function (dom) {
+	var tables = dom.getElementsByTagName("table");
+	dojo.lang.forEach(tables, function (t) {
+		dojo.html.addClass(t, "dojoShowIETableBorders");
+	});
+	return dom;
+}, removeIEFakeClass:function (dom) {
+	var tables = dom.getElementsByTagName("table");
+	dojo.lang.forEach(tables, function (t) {
+		dojo.html.removeClass(t, "dojoShowIETableBorders");
+	});
+	return dom;
+}};
+dojo.widget.Editor2Manager.registerHandler(dojo.widget.Editor2Plugin.TableOperation.getCommand);
+dojo.widget.Editor2ToolbarItemManager.registerHandler(dojo.widget.Editor2Plugin.TableOperation.getToolbarItem);
+if (dojo.widget.Editor2Plugin.ContextMenuManager) {
+	dojo.widget.Editor2Plugin.ContextMenuManager.registerGroup("Table", dojo.widget.Editor2Plugin.TableOperation.getContextMenuGroup);
+	dojo.declare("dojo.widget.Editor2Plugin.TableContextMenuGroup", dojo.widget.Editor2Plugin.SimpleContextMenuGroup, {createItems:function () {
+		this.items.push(dojo.widget.createWidget("Editor2ContextMenuItem", {caption:"Delete Table", command:"deletetable"}));
+		this.items.push(dojo.widget.createWidget("Editor2ContextMenuItem", {caption:"Table Property", command:"inserttable", iconClass:"TB_Button_Icon TB_Button_Table"}));
+	}, checkVisibility:function () {
+		var curInst = dojo.widget.Editor2Manager.getCurrentInstance();
+		var table = dojo.withGlobal(curInst.window, "hasAncestorElement", dojo.html.selection, ["table"]);
+		if (dojo.withGlobal(curInst.window, "hasAncestorElement", dojo.html.selection, ["table"])) {
+			this.items[0].show();
+			this.items[1].show();
+			return true;
+		} else {
+			this.items[0].hide();
+			this.items[1].hide();
+			return false;
+		}
+	}});
+}
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Plugin/TableOperation.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Plugin/TableOperation.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Plugin/TableOperation.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Plugin/ToolbarDndSupport.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Plugin/ToolbarDndSupport.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Plugin/ToolbarDndSupport.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Plugin/ToolbarDndSupport.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,46 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.Editor2Plugin.ToolbarDndSupport");
+dojo.require("dojo.dnd.*");
+dojo.event.topic.subscribe("dojo.widget.Editor2::preLoadingToolbar", function (editor) {
+	dojo.dnd.dragManager.nestedTargets = true;
+	var p = new dojo.widget.Editor2Plugin.ToolbarDndSupport(editor);
+});
+dojo.declare("dojo.widget.Editor2Plugin.ToolbarDndSupport", null, {lookForClass:"dojoEditorToolbarDnd TB_ToolbarSet TB_Toolbar", initializer:function (editor) {
+	this.editor = editor;
+	dojo.event.connect(this.editor, "toolbarLoaded", this, "setup");
+	this.editor.registerLoadedPlugin(this);
+}, setup:function () {
+	dojo.event.disconnect(this.editor, "toolbarLoaded", this, "setup");
+	var tbw = this.editor.toolbarWidget;
+	dojo.event.connect("before", tbw, "destroy", this, "destroy");
+	var nodes = dojo.html.getElementsByClass(this.lookForClass, tbw.domNode, null, dojo.html.classMatchType.ContainsAny);
+	if (!nodes) {
+		dojo.debug("dojo.widget.Editor2Plugin.ToolbarDndSupport: No dom node with class in " + this.lookForClass);
+		return;
+	}
+	for (var i = 0; i < nodes.length; i++) {
+		var node = nodes[i];
+		var droptarget = node.getAttribute("dojoETDropTarget");
+		if (droptarget) {
+			(new dojo.dnd.HtmlDropTarget(node, [droptarget + tbw.widgetId])).vertical = true;
+		}
+		var dragsource = node.getAttribute("dojoETDragSource");
+		if (dragsource) {
+			new dojo.dnd.HtmlDragSource(node, dragsource + tbw.widgetId);
+		}
+	}
+}, destroy:function () {
+	this.editor.unregisterLoadedPlugin(this);
+}});
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Plugin/ToolbarDndSupport.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Plugin/ToolbarDndSupport.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Plugin/ToolbarDndSupport.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Plugin/__package__.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Plugin/__package__.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Plugin/__package__.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Plugin/__package__.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,15 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.kwCompoundRequire({common:["dojo.widget.Editor2", "dojo.widget.Editor2Toolbar"]});
+dojo.provide("dojo.widget.Editor2Plugin.*");
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Plugin/__package__.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Plugin/__package__.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Plugin/__package__.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Toolbar.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Toolbar.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Toolbar.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Toolbar.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,496 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.Editor2Toolbar");
+dojo.require("dojo.lang.*");
+dojo.require("dojo.widget.*");
+dojo.require("dojo.event.*");
+dojo.require("dojo.html.layout");
+dojo.require("dojo.html.display");
+dojo.require("dojo.widget.RichText");
+dojo.require("dojo.widget.PopupContainer");
+dojo.require("dojo.widget.ColorPalette");
+dojo.lang.declare("dojo.widget.HandlerManager", null, function () {
+	this._registeredHandlers = [];
+}, {registerHandler:function (obj, func) {
+	if (arguments.length == 2) {
+		this._registeredHandlers.push(function () {
+			return obj[func].apply(obj, arguments);
+		});
+	} else {
+		this._registeredHandlers.push(obj);
+	}
+}, removeHandler:function (func) {
+	for (var i = 0; i < this._registeredHandlers.length; i++) {
+		if (func === this._registeredHandlers[i]) {
+			delete this._registeredHandlers[i];
+			return;
+		}
+	}
+	dojo.debug("HandlerManager handler " + func + " is not registered, can not remove.");
+}, destroy:function () {
+	for (var i = 0; i < this._registeredHandlers.length; i++) {
+		delete this._registeredHandlers[i];
+	}
+}});
+dojo.widget.Editor2ToolbarItemManager = new dojo.widget.HandlerManager;
+dojo.lang.mixin(dojo.widget.Editor2ToolbarItemManager, {getToolbarItem:function (name) {
+	var item;
+	name = name.toLowerCase();
+	for (var i = 0; i < this._registeredHandlers.length; i++) {
+		item = this._registeredHandlers[i](name);
+		if (item) {
+			return item;
+		}
+	}
+	switch (name) {
+	  case "bold":
+	  case "copy":
+	  case "cut":
+	  case "delete":
+	  case "indent":
+	  case "inserthorizontalrule":
+	  case "insertorderedlist":
+	  case "insertunorderedlist":
+	  case "italic":
+	  case "justifycenter":
+	  case "justifyfull":
+	  case "justifyleft":
+	  case "justifyright":
+	  case "outdent":
+	  case "paste":
+	  case "redo":
+	  case "removeformat":
+	  case "selectall":
+	  case "strikethrough":
+	  case "subscript":
+	  case "superscript":
+	  case "underline":
+	  case "undo":
+	  case "unlink":
+	  case "createlink":
+	  case "insertimage":
+	  case "htmltoggle":
+		item = new dojo.widget.Editor2ToolbarButton(name);
+		break;
+	  case "forecolor":
+	  case "hilitecolor":
+		item = new dojo.widget.Editor2ToolbarColorPaletteButton(name);
+		break;
+	  case "plainformatblock":
+		item = new dojo.widget.Editor2ToolbarFormatBlockPlainSelect("formatblock");
+		break;
+	  case "formatblock":
+		item = new dojo.widget.Editor2ToolbarFormatBlockSelect("formatblock");
+		break;
+	  case "fontsize":
+		item = new dojo.widget.Editor2ToolbarFontSizeSelect("fontsize");
+		break;
+	  case "fontname":
+		item = new dojo.widget.Editor2ToolbarFontNameSelect("fontname");
+		break;
+	  case "inserttable":
+	  case "insertcell":
+	  case "insertcol":
+	  case "insertrow":
+	  case "deletecells":
+	  case "deletecols":
+	  case "deleterows":
+	  case "mergecells":
+	  case "splitcell":
+		dojo.debug(name + " is implemented in dojo.widget.Editor2Plugin.TableOperation, please require it first.");
+		break;
+	  case "inserthtml":
+	  case "blockdirltr":
+	  case "blockdirrtl":
+	  case "dirltr":
+	  case "dirrtl":
+	  case "inlinedirltr":
+	  case "inlinedirrtl":
+		dojo.debug("Not yet implemented toolbar item: " + name);
+		break;
+	  default:
+		dojo.debug("dojo.widget.Editor2ToolbarItemManager.getToolbarItem: Unknown toolbar item: " + name);
+	}
+	return item;
+}});
+dojo.addOnUnload(dojo.widget.Editor2ToolbarItemManager, "destroy");
+dojo.declare("dojo.widget.Editor2ToolbarButton", null, function (name) {
+	this._name = name;
+}, {create:function (node, toolbar, nohover) {
+	this._domNode = node;
+	var cmd = toolbar.parent.getCommand(this._name);
+	if (cmd) {
+		this._domNode.title = cmd.getText();
+	}
+	this.disableSelection(this._domNode);
+	this._parentToolbar = toolbar;
+	dojo.event.connect(this._domNode, "onclick", this, "onClick");
+	if (!nohover) {
+		dojo.event.connect(this._domNode, "onmouseover", this, "onMouseOver");
+		dojo.event.connect(this._domNode, "onmouseout", this, "onMouseOut");
+	}
+}, disableSelection:function (rootnode) {
+	dojo.html.disableSelection(rootnode);
+	var nodes = rootnode.all || rootnode.getElementsByTagName("*");
+	for (var x = 0; x < nodes.length; x++) {
+		dojo.html.disableSelection(nodes[x]);
+	}
+}, onMouseOver:function () {
+	var curInst = dojo.widget.Editor2Manager.getCurrentInstance();
+	if (curInst) {
+		var _command = curInst.getCommand(this._name);
+		if (_command && _command.getState() != dojo.widget.Editor2Manager.commandState.Disabled) {
+			this.highlightToolbarItem();
+		}
+	}
+}, onMouseOut:function () {
+	this.unhighlightToolbarItem();
+}, destroy:function () {
+	this._domNode = null;
+	this._parentToolbar = null;
+}, onClick:function (e) {
+	if (this._domNode && !this._domNode.disabled && this._parentToolbar.checkAvailability()) {
+		e.preventDefault();
+		e.stopPropagation();
+		var curInst = dojo.widget.Editor2Manager.getCurrentInstance();
+		if (curInst) {
+			var _command = curInst.getCommand(this._name);
+			if (_command) {
+				_command.execute();
+			}
+		}
+	}
+}, refreshState:function () {
+	var curInst = dojo.widget.Editor2Manager.getCurrentInstance();
+	var em = dojo.widget.Editor2Manager;
+	if (curInst) {
+		var _command = curInst.getCommand(this._name);
+		if (_command) {
+			var state = _command.getState();
+			if (state != this._lastState) {
+				switch (state) {
+				  case em.commandState.Latched:
+					this.latchToolbarItem();
+					break;
+				  case em.commandState.Enabled:
+					this.enableToolbarItem();
+					break;
+				  case em.commandState.Disabled:
+				  default:
+					this.disableToolbarItem();
+				}
+				this._lastState = state;
+			}
+		}
+	}
+	return em.commandState.Enabled;
+}, latchToolbarItem:function () {
+	this._domNode.disabled = false;
+	this.removeToolbarItemStyle(this._domNode);
+	dojo.html.addClass(this._domNode, this._parentToolbar.ToolbarLatchedItemStyle);
+}, enableToolbarItem:function () {
+	this._domNode.disabled = false;
+	this.removeToolbarItemStyle(this._domNode);
+	dojo.html.addClass(this._domNode, this._parentToolbar.ToolbarEnabledItemStyle);
+}, disableToolbarItem:function () {
+	this._domNode.disabled = true;
+	this.removeToolbarItemStyle(this._domNode);
+	dojo.html.addClass(this._domNode, this._parentToolbar.ToolbarDisabledItemStyle);
+}, highlightToolbarItem:function () {
+	dojo.html.addClass(this._domNode, this._parentToolbar.ToolbarHighlightedItemStyle);
+}, unhighlightToolbarItem:function () {
+	dojo.html.removeClass(this._domNode, this._parentToolbar.ToolbarHighlightedItemStyle);
+}, removeToolbarItemStyle:function () {
+	dojo.html.removeClass(this._domNode, this._parentToolbar.ToolbarEnabledItemStyle);
+	dojo.html.removeClass(this._domNode, this._parentToolbar.ToolbarLatchedItemStyle);
+	dojo.html.removeClass(this._domNode, this._parentToolbar.ToolbarDisabledItemStyle);
+	this.unhighlightToolbarItem();
+}});
+dojo.declare("dojo.widget.Editor2ToolbarDropDownButton", dojo.widget.Editor2ToolbarButton, {onClick:function () {
+	if (this._domNode && !this._domNode.disabled && this._parentToolbar.checkAvailability()) {
+		if (!this._dropdown) {
+			this._dropdown = dojo.widget.createWidget("PopupContainer", {});
+			this._domNode.appendChild(this._dropdown.domNode);
+		}
+		if (this._dropdown.isShowingNow) {
+			this._dropdown.close();
+		} else {
+			this.onDropDownShown();
+			this._dropdown.open(this._domNode, null, this._domNode);
+		}
+	}
+}, destroy:function () {
+	this.onDropDownDestroy();
+	if (this._dropdown) {
+		this._dropdown.destroy();
+	}
+	dojo.widget.Editor2ToolbarDropDownButton.superclass.destroy.call(this);
+}, onDropDownShown:function () {
+}, onDropDownDestroy:function () {
+}});
+dojo.declare("dojo.widget.Editor2ToolbarColorPaletteButton", dojo.widget.Editor2ToolbarDropDownButton, {onDropDownShown:function () {
+	if (!this._colorpalette) {
+		this._colorpalette = dojo.widget.createWidget("ColorPalette", {});
+		this._dropdown.addChild(this._colorpalette);
+		this.disableSelection(this._dropdown.domNode);
+		this.disableSelection(this._colorpalette.domNode);
+		dojo.event.connect(this._colorpalette, "onColorSelect", this, "setColor");
+		dojo.event.connect(this._dropdown, "open", this, "latchToolbarItem");
+		dojo.event.connect(this._dropdown, "close", this, "enableToolbarItem");
+	}
+}, setColor:function (color) {
+	this._dropdown.close();
+	var curInst = dojo.widget.Editor2Manager.getCurrentInstance();
+	if (curInst) {
+		var _command = curInst.getCommand(this._name);
+		if (_command) {
+			_command.execute(color);
+		}
+	}
+}});
+dojo.declare("dojo.widget.Editor2ToolbarFormatBlockPlainSelect", dojo.widget.Editor2ToolbarButton, {create:function (node, toolbar) {
+	this._domNode = node;
+	this._parentToolbar = toolbar;
+	this._domNode = node;
+	this.disableSelection(this._domNode);
+	dojo.event.connect(this._domNode, "onchange", this, "onChange");
+}, destroy:function () {
+	this._domNode = null;
+}, onChange:function () {
+	if (this._parentToolbar.checkAvailability()) {
+		var sv = this._domNode.value.toLowerCase();
+		var curInst = dojo.widget.Editor2Manager.getCurrentInstance();
+		if (curInst) {
+			var _command = curInst.getCommand(this._name);
+			if (_command) {
+				_command.execute(sv);
+			}
+		}
+	}
+}, refreshState:function () {
+	if (this._domNode) {
+		dojo.widget.Editor2ToolbarFormatBlockPlainSelect.superclass.refreshState.call(this);
+		var curInst = dojo.widget.Editor2Manager.getCurrentInstance();
+		if (curInst) {
+			var _command = curInst.getCommand(this._name);
+			if (_command) {
+				var format = _command.getValue();
+				if (!format) {
+					format = "";
+				}
+				dojo.lang.forEach(this._domNode.options, function (item) {
+					if (item.value.toLowerCase() == format.toLowerCase()) {
+						item.selected = true;
+					}
+				});
+			}
+		}
+	}
+}});
+dojo.declare("dojo.widget.Editor2ToolbarComboItem", dojo.widget.Editor2ToolbarDropDownButton, {href:null, create:function (node, toolbar) {
+	dojo.widget.Editor2ToolbarComboItem.superclass.create.apply(this, arguments);
+	if (!this._contentPane) {
+		dojo.require("dojo.widget.ContentPane");
+		this._contentPane = dojo.widget.createWidget("ContentPane", {preload:"true"});
+		this._contentPane.addOnLoad(this, "setup");
+		this._contentPane.setUrl(this.href);
+	}
+}, onMouseOver:function (e) {
+	if (this._lastState != dojo.widget.Editor2Manager.commandState.Disabled) {
+		dojo.html.addClass(e.currentTarget, this._parentToolbar.ToolbarHighlightedSelectStyle);
+	}
+}, onMouseOut:function (e) {
+	dojo.html.removeClass(e.currentTarget, this._parentToolbar.ToolbarHighlightedSelectStyle);
+}, onDropDownShown:function () {
+	if (!this._dropdown.__addedContentPage) {
+		this._dropdown.addChild(this._contentPane);
+		this._dropdown.__addedContentPage = true;
+	}
+}, setup:function () {
+}, onChange:function (e) {
+	if (this._parentToolbar.checkAvailability()) {
+		var name = e.currentTarget.getAttribute("dropDownItemName");
+		var curInst = dojo.widget.Editor2Manager.getCurrentInstance();
+		if (curInst) {
+			var _command = curInst.getCommand(this._name);
+			if (_command) {
+				_command.execute(name);
+			}
+		}
+	}
+	this._dropdown.close();
+}, onMouseOverItem:function (e) {
+	dojo.html.addClass(e.currentTarget, this._parentToolbar.ToolbarHighlightedSelectItemStyle);
+}, onMouseOutItem:function (e) {
+	dojo.html.removeClass(e.currentTarget, this._parentToolbar.ToolbarHighlightedSelectItemStyle);
+}});
+dojo.declare("dojo.widget.Editor2ToolbarFormatBlockSelect", dojo.widget.Editor2ToolbarComboItem, {href:dojo.uri.moduleUri("dojo.widget", "templates/Editor2/EditorToolbar_FormatBlock.html"), setup:function () {
+	dojo.widget.Editor2ToolbarFormatBlockSelect.superclass.setup.call(this);
+	var nodes = this._contentPane.domNode.all || this._contentPane.domNode.getElementsByTagName("*");
+	this._blockNames = {};
+	this._blockDisplayNames = {};
+	for (var x = 0; x < nodes.length; x++) {
+		var node = nodes[x];
+		dojo.html.disableSelection(node);
+		var name = node.getAttribute("dropDownItemName");
+		if (name) {
+			this._blockNames[name] = node;
+			var childrennodes = node.getElementsByTagName(name);
+			this._blockDisplayNames[name] = childrennodes[childrennodes.length - 1].innerHTML;
+		}
+	}
+	for (var name in this._blockNames) {
+		dojo.event.connect(this._blockNames[name], "onclick", this, "onChange");
+		dojo.event.connect(this._blockNames[name], "onmouseover", this, "onMouseOverItem");
+		dojo.event.connect(this._blockNames[name], "onmouseout", this, "onMouseOutItem");
+	}
+}, onDropDownDestroy:function () {
+	if (this._blockNames) {
+		for (var name in this._blockNames) {
+			delete this._blockNames[name];
+			delete this._blockDisplayNames[name];
+		}
+	}
+}, refreshState:function () {
+	dojo.widget.Editor2ToolbarFormatBlockSelect.superclass.refreshState.call(this);
+	if (this._lastState != dojo.widget.Editor2Manager.commandState.Disabled) {
+		var curInst = dojo.widget.Editor2Manager.getCurrentInstance();
+		if (curInst) {
+			var _command = curInst.getCommand(this._name);
+			if (_command) {
+				var format = _command.getValue();
+				if (format == this._lastSelectedFormat && this._blockDisplayNames) {
+					return this._lastState;
+				}
+				this._lastSelectedFormat = format;
+				var label = this._domNode.getElementsByTagName("label")[0];
+				var isSet = false;
+				if (this._blockDisplayNames) {
+					for (var name in this._blockDisplayNames) {
+						if (name == format) {
+							label.innerHTML = this._blockDisplayNames[name];
+							isSet = true;
+							break;
+						}
+					}
+					if (!isSet) {
+						label.innerHTML = "&nbsp;";
+					}
+				}
+			}
+		}
+	}
+	return this._lastState;
+}});
+dojo.declare("dojo.widget.Editor2ToolbarFontSizeSelect", dojo.widget.Editor2ToolbarComboItem, {href:dojo.uri.moduleUri("dojo.widget", "templates/Editor2/EditorToolbar_FontSize.html"), setup:function () {
+	dojo.widget.Editor2ToolbarFormatBlockSelect.superclass.setup.call(this);
+	var nodes = this._contentPane.domNode.all || this._contentPane.domNode.getElementsByTagName("*");
+	this._fontsizes = {};
+	this._fontSizeDisplayNames = {};
+	for (var x = 0; x < nodes.length; x++) {
+		var node = nodes[x];
+		dojo.html.disableSelection(node);
+		var name = node.getAttribute("dropDownItemName");
+		if (name) {
+			this._fontsizes[name] = node;
+			this._fontSizeDisplayNames[name] = node.getElementsByTagName("font")[0].innerHTML;
+		}
+	}
+	for (var name in this._fontsizes) {
+		dojo.event.connect(this._fontsizes[name], "onclick", this, "onChange");
+		dojo.event.connect(this._fontsizes[name], "onmouseover", this, "onMouseOverItem");
+		dojo.event.connect(this._fontsizes[name], "onmouseout", this, "onMouseOutItem");
+	}
+}, onDropDownDestroy:function () {
+	if (this._fontsizes) {
+		for (var name in this._fontsizes) {
+			delete this._fontsizes[name];
+			delete this._fontSizeDisplayNames[name];
+		}
+	}
+}, refreshState:function () {
+	dojo.widget.Editor2ToolbarFormatBlockSelect.superclass.refreshState.call(this);
+	if (this._lastState != dojo.widget.Editor2Manager.commandState.Disabled) {
+		var curInst = dojo.widget.Editor2Manager.getCurrentInstance();
+		if (curInst) {
+			var _command = curInst.getCommand(this._name);
+			if (_command) {
+				var size = _command.getValue();
+				if (size == this._lastSelectedSize && this._fontSizeDisplayNames) {
+					return this._lastState;
+				}
+				this._lastSelectedSize = size;
+				var label = this._domNode.getElementsByTagName("label")[0];
+				var isSet = false;
+				if (this._fontSizeDisplayNames) {
+					for (var name in this._fontSizeDisplayNames) {
+						if (name == size) {
+							label.innerHTML = this._fontSizeDisplayNames[name];
+							isSet = true;
+							break;
+						}
+					}
+					if (!isSet) {
+						label.innerHTML = "&nbsp;";
+					}
+				}
+			}
+		}
+	}
+	return this._lastState;
+}});
+dojo.declare("dojo.widget.Editor2ToolbarFontNameSelect", dojo.widget.Editor2ToolbarFontSizeSelect, {href:dojo.uri.moduleUri("dojo.widget", "templates/Editor2/EditorToolbar_FontName.html")});
+dojo.widget.defineWidget("dojo.widget.Editor2Toolbar", dojo.widget.HtmlWidget, function () {
+	dojo.event.connect(this, "fillInTemplate", dojo.lang.hitch(this, function () {
+		if (dojo.render.html.ie) {
+			this.domNode.style.zoom = 1;
+		}
+	}));
+}, {templateString:"<div dojoAttachPoint=\"domNode\" class=\"EditorToolbarDomNode\" unselectable=\"on\">\n\t<table cellpadding=\"3\" cellspacing=\"0\" border=\"0\">\n\t\t<!--\n\t\t\tour toolbar should look something like:\n\n\t\t\t+=======+=======+=======+=============================================+\n\t\t\t| w   w | style | copy  | bo | it | un | le | ce | ri |\n\t\t\t| w w w | style |=======|==============|==============|\n\t\t\t|  w w  | style | paste |  undo | redo | change style |\n\t\t\t+=======+=======+=======+=============================================+\n\t\t-->\n\t\t<tbody>\n\t\t\t<tr valign=\"top\">\n\t\t\t\t<td rowspan=\"2\">\n\t\t\t\t\t<div class=\"bigIcon\" dojoAttachPoint=\"wikiWordButton\"\n\t\t\t\t\t\tdojoOnClick=\"wikiWordClick; buttonClick;\">\n\t\t\t\t\t\t<span style=\"font-size: 30px; margin-left: 5px;\">\n\t\t\t\t\t\t\tW\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t</td>\n\t\t\t\t<td rowspan=\"2\">\n\t\t\t\t\t<div class=\"bigIcon\" dojoAttachPoint=
 \"styleDropdownButton\"\n\t\t\t\t\t\tdojoOnClick=\"styleDropdownClick; buttonClick;\">\n\t\t\t\t\t\t<span unselectable=\"on\"\n\t\t\t\t\t\t\tstyle=\"font-size: 30px; margin-left: 5px;\">\n\t\t\t\t\t\t\tS\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"StyleDropdownContainer\" style=\"display: none;\"\n\t\t\t\t\t\tdojoAttachPoint=\"styleDropdownContainer\">\n\t\t\t\t\t\t<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\"\n\t\t\t\t\t\t\theight=\"100%\" width=\"100%\">\n\t\t\t\t\t\t\t<tr valign=\"top\">\n\t\t\t\t\t\t\t\t<td rowspan=\"2\">\n\t\t\t\t\t\t\t\t\t<div style=\"height: 245px; overflow: auto;\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"headingContainer\"\n\t\t\t\t\t\t\t\t\t\t\tunselectable=\"on\"\n\t\t\t\t\t\t\t\t\t\t\tdojoOnClick=\"normalTextClick\">normal</div>\n\t\t\t\t\t\t\t\t\t\t<h1 class=\"headingContainer\"\n\t\t\t\t\t\t\t\t\t\t\tunselectable=\"on\"\n\t\t\t\t\t\t\t\t\t\t\tdojoOnClick=\"h1TextClick\">Heading 1</h1>\n\t\t\t\t\t\t\t\t\t\t<h2 class=\"head
 ingContainer\"\n\t\t\t\t\t\t\t\t\t\t\tunselectable=\"on\"\n\t\t\t\t\t\t\t\t\t\t\tdojoOnClick=\"h2TextClick\">Heading 2</h2>\n\t\t\t\t\t\t\t\t\t\t<h3 class=\"headingContainer\"\n\t\t\t\t\t\t\t\t\t\t\tunselectable=\"on\"\n\t\t\t\t\t\t\t\t\t\t\tdojoOnClick=\"h3TextClick\">Heading 3</h3>\n\t\t\t\t\t\t\t\t\t\t<h4 class=\"headingContainer\"\n\t\t\t\t\t\t\t\t\t\t\tunselectable=\"on\"\n\t\t\t\t\t\t\t\t\t\t\tdojoOnClick=\"h4TextClick\">Heading 4</h4>\n\t\t\t\t\t\t\t\t\t\t<div class=\"headingContainer\"\n\t\t\t\t\t\t\t\t\t\t\tunselectable=\"on\"\n\t\t\t\t\t\t\t\t\t\t\tdojoOnClick=\"blahTextClick\">blah</div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"headingContainer\"\n\t\t\t\t\t\t\t\t\t\t\tunselectable=\"on\"\n\t\t\t\t\t\t\t\t\t\t\tdojoOnClick=\"blahTextClick\">blah</div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"headingContainer\"\n\t\t\t\t\t\t\t\t\t\t\tunselectable=\"on\"\n\t\t\t\t\t\t\t\t\t\t\tdojoOnClick=\"blahTextClick\">blah</div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"headingContainer\">blah</div>
 \n\t\t\t\t\t\t\t\t\t\t<div class=\"headingContainer\">blah</div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"headingContainer\">blah</div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"headingContainer\">blah</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<!--\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<span class=\"iconContainer\" dojoOnClick=\"buttonClick;\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"icon justifyleft\" \n\t\t\t\t\t\t\t\t\t\t\tstyle=\"float: left;\">&nbsp;</span>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t<span class=\"iconContainer\" dojoOnClick=\"buttonClick;\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"icon justifycenter\" \n\t\t\t\t\t\t\t\t\t\t\tstyle=\"float: left;\">&nbsp;</span>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t<span class=\"iconContainer\" dojoOnClick=\"buttonClick;\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"icon justifyright\" \n\t\t\t\t\t\t\t\t\t\t\tstyle=\"float: left;\">&nbsp;</span>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t<span class=\"icon
 Container\" dojoOnClick=\"buttonClick;\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"icon justifyfull\" \n\t\t\t\t\t\t\t\t\t\t\tstyle=\"float: left;\">&nbsp;</span>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t-->\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr valign=\"top\">\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\tthud\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</div>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<!-- copy -->\n\t\t\t\t\t<span class=\"iconContainer\" dojoAttachPoint=\"copyButton\"\n\t\t\t\t\t\tunselectable=\"on\"\n\t\t\t\t\t\tdojoOnClick=\"copyClick; buttonClick;\">\n\t\t\t\t\t\t<span class=\"icon copy\" \n\t\t\t\t\t\t\tunselectable=\"on\"\n\t\t\t\t\t\t\tstyle=\"float: left;\">&nbsp;</span> copy\n\t\t\t\t\t</span>\n\t\t\t\t\t<!-- \"droppable\" options -->\n\t\t\t\t\t<span class=\"iconContainer\" dojoAttachPoint=\"boldButton\"\n\t\t\t\t\t\tunselectable=\"on\"\n\t\t\t\t\t\tdojoOnClick=\"boldClick; buttonClick;\">\n\t\t\t\t\
 t\t<span class=\"icon bold\" unselectable=\"on\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span class=\"iconContainer\" dojoAttachPoint=\"italicButton\"\n\t\t\t\t\t\tdojoOnClick=\"italicClick; buttonClick;\">\n\t\t\t\t\t\t<span class=\"icon italic\" unselectable=\"on\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span class=\"iconContainer\" dojoAttachPoint=\"underlineButton\"\n\t\t\t\t\t\tdojoOnClick=\"underlineClick; buttonClick;\">\n\t\t\t\t\t\t<span class=\"icon underline\" unselectable=\"on\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span class=\"iconContainer\" dojoAttachPoint=\"leftButton\"\n\t\t\t\t\t\tdojoOnClick=\"leftClick; buttonClick;\">\n\t\t\t\t\t\t<span class=\"icon justifyleft\" unselectable=\"on\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span class=\"iconContainer\" dojoAttachPoint=\"fullButton\"\n\t\t\t\t\t\tdojoOnClick=\"fullClick; buttonClick;\">\n\t\t\t\t\t\t<span class=\"icon justifyfull\" unselectable=\"on\">&nbsp;</span>\n\t\t\t\t\t</span>\
 n\t\t\t\t\t<span class=\"iconContainer\" dojoAttachPoint=\"rightButton\"\n\t\t\t\t\t\tdojoOnClick=\"rightClick; buttonClick;\">\n\t\t\t\t\t\t<span class=\"icon justifyright\" unselectable=\"on\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>\n\t\t\t\t\t<!-- paste -->\n\t\t\t\t\t<span class=\"iconContainer\" dojoAttachPoint=\"pasteButton\"\n\t\t\t\t\t\tdojoOnClick=\"pasteClick; buttonClick;\" unselectable=\"on\">\n\t\t\t\t\t\t<span class=\"icon paste\" style=\"float: left;\" unselectable=\"on\">&nbsp;</span> paste\n\t\t\t\t\t</span>\n\t\t\t\t\t<!-- \"droppable\" options -->\n\t\t\t\t\t<span class=\"iconContainer\" dojoAttachPoint=\"undoButton\"\n\t\t\t\t\t\tdojoOnClick=\"undoClick; buttonClick;\" unselectable=\"on\">\n\t\t\t\t\t\t<span class=\"icon undo\" style=\"float: left;\" unselectable=\"on\">&nbsp;</span> undo\n\t\t\t\t\t</span>\n\t\t\t\t\t<span class=\"iconContainer\" dojoAttachPoint=\"redoButton\"\n\t\t\t\t\t\tdojoOnClick=\"redo
 Click; buttonClick;\" unselectable=\"on\">\n\t\t\t\t\t\t<span class=\"icon redo\" style=\"float: left;\" unselectable=\"on\">&nbsp;</span> redo\n\t\t\t\t\t</span>\n\t\t\t\t</td>\t\n\t\t\t</tr>\n\t\t</tbody>\n\t</table>\n</div>\n", templateCssString:".StyleDropdownContainer {\n\tposition: absolute;\n\tz-index: 1000;\n\toverflow: auto;\n\tcursor: default;\n\twidth: 250px;\n\theight: 250px;\n\tbackground-color: white;\n\tborder: 1px solid black;\n}\n\n.ColorDropdownContainer {\n\tposition: absolute;\n\tz-index: 1000;\n\toverflow: auto;\n\tcursor: default;\n\twidth: 250px;\n\theight: 150px;\n\tbackground-color: white;\n\tborder: 1px solid black;\n}\n\n.EditorToolbarDomNode {\n\tbackground-image: url(buttons/bg-fade.png);\n\tbackground-repeat: repeat-x;\n\tbackground-position: 0px -50px;\n}\n\n.EditorToolbarSmallBg {\n\tbackground-image: url(images/toolbar-bg.gif);\n\tbackground-repeat: repeat-x;\n\tbackground-position: 0px 0px;\n}\n\n/*\nbody {\n\tbackground:url(images/blank.gif
 ) fixed;\n}*/\n\n.IEFixedToolbar {\n\tposition:absolute;\n\t/* top:0; */\n\ttop: expression(eval((document.documentElement||document.body).scrollTop));\n}\n\ndiv.bigIcon {\n\twidth: 40px;\n\theight: 40px; \n\t/* background-color: white; */\n\t/* border: 1px solid #a6a7a3; */\n\tfont-family: Verdana, Trebuchet, Tahoma, Arial;\n}\n\n.iconContainer {\n\tfont-family: Verdana, Trebuchet, Tahoma, Arial;\n\tfont-size: 13px;\n\tfloat: left;\n\theight: 18px;\n\tdisplay: block;\n\t/* background-color: white; */\n\tcursor: pointer;\n\tpadding: 1px 4px 1px 1px; /* almost the same as a transparent border */\n\tborder: 0px;\n}\n\n.dojoE2TBIcon {\n\tdisplay: block;\n\ttext-align: center;\n\tmin-width: 18px;\n\twidth: 18px;\n\theight: 18px;\n\t/* background-color: #a6a7a3; */\n\tbackground-repeat: no-repeat;\n\tbackground-image: url(buttons/aggregate.gif);\n}\n\n\n.dojoE2TBIcon[class~=dojoE2TBIcon] {\n}\n\n.ToolbarButtonLatched {\n	border: #316ac5 1px solid; !important;\n	padding: 0px 3px 0
 px 0px; !important; /* make room for border */\n	background-color: #c1d2ee;\n}\n\n.ToolbarButtonHighlighted {\n	border: #316ac5 1px solid; !important;\n	padding: 0px 3px 0px 0px; !important; /* make room for border */\n	background-color: #dff1ff;\n}\n\n.ToolbarButtonDisabled{\n	filter: gray() alpha(opacity=30); /* IE */\n	opacity: 0.30; /* Safari, Opera and Mozilla */\n}\n\n.headingContainer {\n\twidth: 150px;\n\theight: 30px;\n\tmargin: 0px;\n\t/* padding-left: 5px; */\n\toverflow: hidden;\n\tline-height: 25px;\n\tborder-bottom: 1px solid black;\n\tborder-top: 1px solid white;\n}\n\n.EditorToolbarDomNode select {\n\tfont-size: 14px;\n}\n \n.dojoE2TBIcon_Sep { width: 5px; min-width: 5px; max-width: 5px; background-position: 0px 0px}\n.dojoE2TBIcon_Backcolor { background-position: -18px 0px}\n.dojoE2TBIcon_Bold { background-position: -36px 0px}\n.dojoE2TBIcon_Cancel { background-position: -54px 0px}\n.dojoE2TBIcon_Copy { background-position: -72px 0px}\n.dojoE2TBIcon_Link { b
 ackground-position: -90px 0px}\n.dojoE2TBIcon_Cut { background-position: -108px 0px}\n.dojoE2TBIcon_Delete { background-position: -126px 0px}\n.dojoE2TBIcon_TextColor { background-position: -144px 0px}\n.dojoE2TBIcon_BackgroundColor { background-position: -162px 0px}\n.dojoE2TBIcon_Indent { background-position: -180px 0px}\n.dojoE2TBIcon_HorizontalLine { background-position: -198px 0px}\n.dojoE2TBIcon_Image { background-position: -216px 0px}\n.dojoE2TBIcon_NumberedList { background-position: -234px 0px}\n.dojoE2TBIcon_Table { background-position: -252px 0px}\n.dojoE2TBIcon_BulletedList { background-position: -270px 0px}\n.dojoE2TBIcon_Italic { background-position: -288px 0px}\n.dojoE2TBIcon_CenterJustify { background-position: -306px 0px}\n.dojoE2TBIcon_BlockJustify { background-position: -324px 0px}\n.dojoE2TBIcon_LeftJustify { background-position: -342px 0px}\n.dojoE2TBIcon_RightJustify { background-position: -360px 0px}\n.dojoE2TBIcon_left_to_right { background-position: 
 -378px 0px}\n.dojoE2TBIcon_list_bullet_indent { background-position: -396px 0px}\n.dojoE2TBIcon_list_bullet_outdent { background-position: -414px 0px}\n.dojoE2TBIcon_list_num_indent { background-position: -432px 0px}\n.dojoE2TBIcon_list_num_outdent { background-position: -450px 0px}\n.dojoE2TBIcon_Outdent { background-position: -468px 0px}\n.dojoE2TBIcon_Paste { background-position: -486px 0px}\n.dojoE2TBIcon_Redo { background-position: -504px 0px}\ndojoE2TBIcon_RemoveFormat { background-position: -522px 0px}\n.dojoE2TBIcon_right_to_left { background-position: -540px 0px}\n.dojoE2TBIcon_Save { background-position: -558px 0px}\n.dojoE2TBIcon_Space { background-position: -576px 0px}\n.dojoE2TBIcon_StrikeThrough { background-position: -594px 0px}\n.dojoE2TBIcon_Subscript { background-position: -612px 0px}\n.dojoE2TBIcon_Superscript { background-position: -630px 0px}\n.dojoE2TBIcon_Underline { background-position: -648px 0px}\n.dojoE2TBIcon_Undo { background-position: -666px 0px
 }\n.dojoE2TBIcon_WikiWord { background-position: -684px 0px}\n\n", templateCssPath:dojo.uri.moduleUri("dojo.widget", "templates/EditorToolbar.css"), ToolbarLatchedItemStyle:"ToolbarButtonLatched", ToolbarEnabledItemStyle:"ToolbarButtonEnabled", ToolbarDisabledItemStyle:"ToolbarButtonDisabled", ToolbarHighlightedItemStyle:"ToolbarButtonHighlighted", ToolbarHighlightedSelectStyle:"ToolbarSelectHighlighted", ToolbarHighlightedSelectItemStyle:"ToolbarSelectHighlightedItem", postCreate:function () {
+	var nodes = dojo.html.getElementsByClass("dojoEditorToolbarItem", this.domNode);
+	this.items = {};
+	for (var x = 0; x < nodes.length; x++) {
+		var node = nodes[x];
+		var itemname = node.getAttribute("dojoETItemName");
+		if (itemname) {
+			var item = dojo.widget.Editor2ToolbarItemManager.getToolbarItem(itemname);
+			if (item) {
+				item.create(node, this);
+				this.items[itemname.toLowerCase()] = item;
+			} else {
+				node.style.display = "none";
+			}
+		}
+	}
+}, update:function () {
+	for (var cmd in this.items) {
+		this.items[cmd].refreshState();
+	}
+}, shareGroup:"", checkAvailability:function () {
+	if (!this.shareGroup) {
+		this.parent.focus();
+		return true;
+	}
+	var curInst = dojo.widget.Editor2Manager.getCurrentInstance();
+	if (this.shareGroup == curInst.toolbarGroup) {
+		return true;
+	}
+	return false;
+}, destroy:function () {
+	for (var it in this.items) {
+		this.items[it].destroy();
+		delete this.items[it];
+	}
+	dojo.widget.Editor2Toolbar.superclass.destroy.call(this);
+}});
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Toolbar.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Toolbar.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Editor2Toolbar.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/FilteringTable.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/FilteringTable.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/FilteringTable.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/FilteringTable.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,710 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.FilteringTable");
+dojo.require("dojo.date.format");
+dojo.require("dojo.math");
+dojo.require("dojo.collections.Store");
+dojo.require("dojo.html.*");
+dojo.require("dojo.html.util");
+dojo.require("dojo.html.style");
+dojo.require("dojo.html.selection");
+dojo.require("dojo.event.*");
+dojo.require("dojo.widget.*");
+dojo.require("dojo.widget.HtmlWidget");
+dojo.widget.defineWidget("dojo.widget.FilteringTable", dojo.widget.HtmlWidget, function () {
+	this.store = new dojo.collections.Store();
+	this.valueField = "Id";
+	this.multiple = false;
+	this.maxSelect = 0;
+	this.maxSortable = 1;
+	this.minRows = 0;
+	this.defaultDateFormat = "%D";
+	this.isInitialized = false;
+	this.alternateRows = false;
+	this.columns = [];
+	this.sortInformation = [{index:0, direction:0}];
+	this.headClass = "";
+	this.tbodyClass = "";
+	this.headerClass = "";
+	this.headerUpClass = "selectedUp";
+	this.headerDownClass = "selectedDown";
+	this.rowClass = "";
+	this.rowAlternateClass = "alt";
+	this.rowSelectedClass = "selected";
+	this.columnSelected = "sorted-column";
+}, {isContainer:false, templatePath:null, templateCssPath:null, getTypeFromString:function (s) {
+	var parts = s.split("."), i = 0, obj = dj_global;
+	do {
+		obj = obj[parts[i++]];
+	} while (i < parts.length && obj);
+	return (obj != dj_global) ? obj : null;
+}, getByRow:function (row) {
+	return this.store.getByKey(dojo.html.getAttribute(row, "value"));
+}, getDataByRow:function (row) {
+	return this.store.getDataByKey(dojo.html.getAttribute(row, "value"));
+}, getRow:function (obj) {
+	var rows = this.domNode.tBodies[0].rows;
+	for (var i = 0; i < rows.length; i++) {
+		if (this.store.getDataByKey(dojo.html.getAttribute(rows[i], "value")) == obj) {
+			return rows[i];
+		}
+	}
+	return null;
+}, getColumnIndex:function (fieldPath) {
+	for (var i = 0; i < this.columns.length; i++) {
+		if (this.columns[i].getField() == fieldPath) {
+			return i;
+		}
+	}
+	return -1;
+}, getSelectedData:function () {
+	var data = this.store.get();
+	var a = [];
+	for (var i = 0; i < data.length; i++) {
+		if (data[i].isSelected) {
+			a.push(data[i].src);
+		}
+	}
+	if (this.multiple) {
+		return a;
+	} else {
+		return a[0];
+	}
+}, isSelected:function (obj) {
+	var data = this.store.get();
+	for (var i = 0; i < data.length; i++) {
+		if (data[i].src == obj) {
+			return true;
+		}
+	}
+	return false;
+}, isValueSelected:function (val) {
+	var v = this.store.getByKey(val);
+	if (v) {
+		return v.isSelected;
+	}
+	return false;
+}, isIndexSelected:function (idx) {
+	var v = this.store.getByIndex(idx);
+	if (v) {
+		return v.isSelected;
+	}
+	return false;
+}, isRowSelected:function (row) {
+	var v = this.getByRow(row);
+	if (v) {
+		return v.isSelected;
+	}
+	return false;
+}, reset:function () {
+	this.store.clearData();
+	this.columns = [];
+	this.sortInformation = [{index:0, direction:0}];
+	this.resetSelections();
+	this.isInitialized = false;
+	this.onReset();
+}, resetSelections:function () {
+	this.store.forEach(function (element) {
+		element.isSelected = false;
+	});
+}, onReset:function () {
+}, select:function (obj) {
+	var data = this.store.get();
+	for (var i = 0; i < data.length; i++) {
+		if (data[i].src == obj) {
+			data[i].isSelected = true;
+			break;
+		}
+	}
+	this.onDataSelect(obj);
+}, selectByValue:function (val) {
+	this.select(this.store.getDataByKey(val));
+}, selectByIndex:function (idx) {
+	this.select(this.store.getDataByIndex(idx));
+}, selectByRow:function (row) {
+	this.select(this.getDataByRow(row));
+}, selectAll:function () {
+	this.store.forEach(function (element) {
+		element.isSelected = true;
+	});
+}, onDataSelect:function (obj) {
+}, toggleSelection:function (obj) {
+	var data = this.store.get();
+	for (var i = 0; i < data.length; i++) {
+		if (data[i].src == obj) {
+			data[i].isSelected = !data[i].isSelected;
+			break;
+		}
+	}
+	this.onDataToggle(obj);
+}, toggleSelectionByValue:function (val) {
+	this.toggleSelection(this.store.getDataByKey(val));
+}, toggleSelectionByIndex:function (idx) {
+	this.toggleSelection(this.store.getDataByIndex(idx));
+}, toggleSelectionByRow:function (row) {
+	this.toggleSelection(this.getDataByRow(row));
+}, toggleAll:function () {
+	this.store.forEach(function (element) {
+		element.isSelected = !element.isSelected;
+	});
+}, onDataToggle:function (obj) {
+}, _meta:{field:null, format:null, filterer:null, noSort:false, sortType:"String", dataType:String, sortFunction:null, filterFunction:null, label:null, align:"left", valign:"middle", getField:function () {
+	return this.field || this.label;
+}, getType:function () {
+	return this.dataType;
+}}, createMetaData:function (obj) {
+	for (var p in this._meta) {
+		if (!obj[p]) {
+			obj[p] = this._meta[p];
+		}
+	}
+	if (!obj.label) {
+		obj.label = obj.field;
+	}
+	if (!obj.filterFunction) {
+		obj.filterFunction = this._defaultFilter;
+	}
+	return obj;
+}, parseMetadata:function (head) {
+	this.columns = [];
+	this.sortInformation = [];
+	var row = head.getElementsByTagName("tr")[0];
+	var cells = row.getElementsByTagName("td");
+	if (cells.length == 0) {
+		cells = row.getElementsByTagName("th");
+	}
+	for (var i = 0; i < cells.length; i++) {
+		var o = this.createMetaData({});
+		if (dojo.html.hasAttribute(cells[i], "align")) {
+			o.align = dojo.html.getAttribute(cells[i], "align");
+		}
+		if (dojo.html.hasAttribute(cells[i], "valign")) {
+			o.valign = dojo.html.getAttribute(cells[i], "valign");
+		}
+		if (dojo.html.hasAttribute(cells[i], "nosort")) {
+			o.noSort = (dojo.html.getAttribute(cells[i], "nosort") == "true");
+		}
+		if (dojo.html.hasAttribute(cells[i], "sortusing")) {
+			var trans = dojo.html.getAttribute(cells[i], "sortusing");
+			var f = this.getTypeFromString(trans);
+			if (f != null && f != window && typeof (f) == "function") {
+				o.sortFunction = f;
+			}
+		}
+		o.label = dojo.html.renderedTextContent(cells[i]);
+		if (dojo.html.hasAttribute(cells[i], "field")) {
+			o.field = dojo.html.getAttribute(cells[i], "field");
+		} else {
+			if (o.label.length > 0) {
+				o.field = o.label;
+			} else {
+				o.field = "field" + i;
+			}
+		}
+		if (dojo.html.hasAttribute(cells[i], "format")) {
+			o.format = dojo.html.getAttribute(cells[i], "format");
+		}
+		if (dojo.html.hasAttribute(cells[i], "dataType")) {
+			var sortType = dojo.html.getAttribute(cells[i], "dataType");
+			if (sortType.toLowerCase() == "html" || sortType.toLowerCase() == "markup") {
+				o.sortType = "__markup__";
+			} else {
+				var type = this.getTypeFromString(sortType);
+				if (type) {
+					o.sortType = sortType;
+					o.dataType = type;
+				}
+			}
+		}
+		if (dojo.html.hasAttribute(cells[i], "filterusing")) {
+			var trans = dojo.html.getAttribute(cells[i], "filterusing");
+			var f = this.getTypeFromString(trans);
+			if (f != null && f != window && typeof (f) == "function") {
+				o.filterFunction = f;
+			}
+		}
+		this.columns.push(o);
+		if (dojo.html.hasAttribute(cells[i], "sort")) {
+			var info = {index:i, direction:0};
+			var dir = dojo.html.getAttribute(cells[i], "sort");
+			if (!isNaN(parseInt(dir))) {
+				dir = parseInt(dir);
+				info.direction = (dir != 0) ? 1 : 0;
+			} else {
+				info.direction = (dir.toLowerCase() == "desc") ? 1 : 0;
+			}
+			this.sortInformation.push(info);
+		}
+	}
+	if (this.sortInformation.length == 0) {
+		this.sortInformation.push({index:0, direction:0});
+	} else {
+		if (this.sortInformation.length > this.maxSortable) {
+			this.sortInformation.length = this.maxSortable;
+		}
+	}
+}, parseData:function (body) {
+	if (body.rows.length == 0 && this.columns.length == 0) {
+		return;
+	}
+	var self = this;
+	this["__selected__"] = [];
+	var arr = this.store.getFromHtml(this.columns, body, function (obj, row) {
+		if (typeof (obj[self.valueField]) == "undefined" || obj[self.valueField] == null) {
+			obj[self.valueField] = dojo.html.getAttribute(row, "value");
+		}
+		if (dojo.html.getAttribute(row, "selected") == "true") {
+			self["__selected__"].push(obj);
+		}
+	});
+	this.store.setData(arr, true);
+	this.render();
+	for (var i = 0; i < this["__selected__"].length; i++) {
+		this.select(this["__selected__"][i]);
+	}
+	this.renderSelections();
+	delete this["__selected__"];
+	this.isInitialized = true;
+}, onSelect:function (e) {
+	var row = dojo.html.getParentByType(e.target, "tr");
+	if (dojo.html.hasAttribute(row, "emptyRow")) {
+		return;
+	}
+	var body = dojo.html.getParentByType(row, "tbody");
+	if (this.multiple) {
+		if (e.shiftKey) {
+			var startRow;
+			var rows = body.rows;
+			for (var i = 0; i < rows.length; i++) {
+				if (rows[i] == row) {
+					break;
+				}
+				if (this.isRowSelected(rows[i])) {
+					startRow = rows[i];
+				}
+			}
+			if (!startRow) {
+				startRow = row;
+				for (; i < rows.length; i++) {
+					if (this.isRowSelected(rows[i])) {
+						row = rows[i];
+						break;
+					}
+				}
+			}
+			this.resetSelections();
+			if (startRow == row) {
+				this.toggleSelectionByRow(row);
+			} else {
+				var doSelect = false;
+				for (var i = 0; i < rows.length; i++) {
+					if (rows[i] == startRow) {
+						doSelect = true;
+					}
+					if (doSelect) {
+						this.selectByRow(rows[i]);
+					}
+					if (rows[i] == row) {
+						doSelect = false;
+					}
+				}
+			}
+		} else {
+			this.toggleSelectionByRow(row);
+		}
+	} else {
+		this.resetSelections();
+		this.toggleSelectionByRow(row);
+	}
+	this.renderSelections();
+}, onSort:function (e) {
+	var oldIndex = this.sortIndex;
+	var oldDirection = this.sortDirection;
+	var source = e.target;
+	var row = dojo.html.getParentByType(source, "tr");
+	var cellTag = "td";
+	if (row.getElementsByTagName(cellTag).length == 0) {
+		cellTag = "th";
+	}
+	var headers = row.getElementsByTagName(cellTag);
+	var header = dojo.html.getParentByType(source, cellTag);
+	for (var i = 0; i < headers.length; i++) {
+		dojo.html.setClass(headers[i], this.headerClass);
+		if (headers[i] == header) {
+			if (this.sortInformation[0].index != i) {
+				this.sortInformation.unshift({index:i, direction:0});
+			} else {
+				this.sortInformation[0] = {index:i, direction:(~this.sortInformation[0].direction) & 1};
+			}
+		}
+	}
+	this.sortInformation.length = Math.min(this.sortInformation.length, this.maxSortable);
+	for (var i = 0; i < this.sortInformation.length; i++) {
+		var idx = this.sortInformation[i].index;
+		var dir = (~this.sortInformation[i].direction) & 1;
+		dojo.html.setClass(headers[idx], dir == 0 ? this.headerDownClass : this.headerUpClass);
+	}
+	this.render();
+}, onFilter:function () {
+}, _defaultFilter:function (obj) {
+	return true;
+}, setFilter:function (field, fn) {
+	for (var i = 0; i < this.columns.length; i++) {
+		if (this.columns[i].getField() == field) {
+			this.columns[i].filterFunction = fn;
+			break;
+		}
+	}
+	this.applyFilters();
+}, setFilterByIndex:function (idx, fn) {
+	this.columns[idx].filterFunction = fn;
+	this.applyFilters();
+}, clearFilter:function (field) {
+	for (var i = 0; i < this.columns.length; i++) {
+		if (this.columns[i].getField() == field) {
+			this.columns[i].filterFunction = this._defaultFilter;
+			break;
+		}
+	}
+	this.applyFilters();
+}, clearFilterByIndex:function (idx) {
+	this.columns[idx].filterFunction = this._defaultFilter;
+	this.applyFilters();
+}, clearFilters:function () {
+	for (var i = 0; i < this.columns.length; i++) {
+		this.columns[i].filterFunction = this._defaultFilter;
+	}
+	var rows = this.domNode.tBodies[0].rows;
+	for (var i = 0; i < rows.length; i++) {
+		rows[i].style.display = "";
+		if (this.alternateRows) {
+			dojo.html[((i % 2 == 1) ? "addClass" : "removeClass")](rows[i], this.rowAlternateClass);
+		}
+	}
+	this.onFilter();
+}, applyFilters:function () {
+	var alt = 0;
+	var rows = this.domNode.tBodies[0].rows;
+	for (var i = 0; i < rows.length; i++) {
+		var b = true;
+		var row = rows[i];
+		for (var j = 0; j < this.columns.length; j++) {
+			var value = this.store.getField(this.getDataByRow(row), this.columns[j].getField());
+			if (this.columns[j].getType() == Date && value != null && !value.getYear) {
+				value = new Date(value);
+			}
+			if (!this.columns[j].filterFunction(value)) {
+				b = false;
+				break;
+			}
+		}
+		row.style.display = (b ? "" : "none");
+		if (b && this.alternateRows) {
+			dojo.html[((alt++ % 2 == 1) ? "addClass" : "removeClass")](row, this.rowAlternateClass);
+		}
+	}
+	this.onFilter();
+}, createSorter:function (info) {
+	var self = this;
+	var sortFunctions = [];
+	function createSortFunction(fieldIndex, dir) {
+		var meta = self.columns[fieldIndex];
+		var field = meta.getField();
+		return function (rowA, rowB) {
+			if (dojo.html.hasAttribute(rowA, "emptyRow")) {
+				return 1;
+			}
+			if (dojo.html.hasAttribute(rowB, "emptyRow")) {
+				return -1;
+			}
+			var a = self.store.getField(self.getDataByRow(rowA), field);
+			var b = self.store.getField(self.getDataByRow(rowB), field);
+			var ret = 0;
+			if (a > b) {
+				ret = 1;
+			}
+			if (a < b) {
+				ret = -1;
+			}
+			return dir * ret;
+		};
+	}
+	var current = 0;
+	var max = Math.min(info.length, this.maxSortable, this.columns.length);
+	while (current < max) {
+		var direction = (info[current].direction == 0) ? 1 : -1;
+		sortFunctions.push(createSortFunction(info[current].index, direction));
+		current++;
+	}
+	return function (rowA, rowB) {
+		var idx = 0;
+		while (idx < sortFunctions.length) {
+			var ret = sortFunctions[idx++](rowA, rowB);
+			if (ret != 0) {
+				return ret;
+			}
+		}
+		return 0;
+	};
+}, createRow:function (obj) {
+	var row = document.createElement("tr");
+	dojo.html.disableSelection(row);
+	if (obj.key != null) {
+		row.setAttribute("value", obj.key);
+	}
+	for (var j = 0; j < this.columns.length; j++) {
+		var cell = document.createElement("td");
+		cell.setAttribute("align", this.columns[j].align);
+		cell.setAttribute("valign", this.columns[j].valign);
+		dojo.html.disableSelection(cell);
+		var val = this.store.getField(obj.src, this.columns[j].getField());
+		if (typeof (val) == "undefined") {
+			val = "";
+		}
+		this.fillCell(cell, this.columns[j], val);
+		row.appendChild(cell);
+	}
+	return row;
+}, fillCell:function (cell, meta, val) {
+	if (meta.sortType == "__markup__") {
+		cell.innerHTML = val;
+	} else {
+		if (meta.getType() == Date) {
+			val = new Date(val);
+			if (!isNaN(val)) {
+				var format = this.defaultDateFormat;
+				if (meta.format) {
+					format = meta.format;
+				}
+				cell.innerHTML = dojo.date.strftime(val, format);
+			} else {
+				cell.innerHTML = val;
+			}
+		} else {
+			if ("Number number int Integer float Float".indexOf(meta.getType()) > -1) {
+				if (val.length == 0) {
+					val = "0";
+				}
+				var n = parseFloat(val, 10) + "";
+				if (n.indexOf(".") > -1) {
+					n = dojo.math.round(parseFloat(val, 10), 2);
+				}
+				cell.innerHTML = n;
+			} else {
+				cell.innerHTML = val;
+			}
+		}
+	}
+}, prefill:function () {
+	this.isInitialized = false;
+	var body = this.domNode.tBodies[0];
+	while (body.childNodes.length > 0) {
+		body.removeChild(body.childNodes[0]);
+	}
+	if (this.minRows > 0) {
+		for (var i = 0; i < this.minRows; i++) {
+			var row = document.createElement("tr");
+			if (this.alternateRows) {
+				dojo.html[((i % 2 == 1) ? "addClass" : "removeClass")](row, this.rowAlternateClass);
+			}
+			row.setAttribute("emptyRow", "true");
+			for (var j = 0; j < this.columns.length; j++) {
+				var cell = document.createElement("td");
+				cell.innerHTML = "&nbsp;";
+				row.appendChild(cell);
+			}
+			body.appendChild(row);
+		}
+	}
+}, init:function () {
+	this.isInitialized = false;
+	var head = this.domNode.getElementsByTagName("thead")[0];
+	if (head.getElementsByTagName("tr").length == 0) {
+		var row = document.createElement("tr");
+		for (var i = 0; i < this.columns.length; i++) {
+			var cell = document.createElement("td");
+			cell.setAttribute("align", this.columns[i].align);
+			cell.setAttribute("valign", this.columns[i].valign);
+			dojo.html.disableSelection(cell);
+			cell.innerHTML = this.columns[i].label;
+			row.appendChild(cell);
+			if (!this.columns[i].noSort) {
+				dojo.event.connect(cell, "onclick", this, "onSort");
+			}
+		}
+		dojo.html.prependChild(row, head);
+	}
+	if (this.store.get().length == 0) {
+		return false;
+	}
+	var idx = this.domNode.tBodies[0].rows.length;
+	if (!idx || idx == 0 || this.domNode.tBodies[0].rows[0].getAttribute("emptyRow") == "true") {
+		idx = 0;
+		var body = this.domNode.tBodies[0];
+		while (body.childNodes.length > 0) {
+			body.removeChild(body.childNodes[0]);
+		}
+		var data = this.store.get();
+		for (var i = 0; i < data.length; i++) {
+			var row = this.createRow(data[i]);
+			body.appendChild(row);
+			idx++;
+		}
+	}
+	if (this.minRows > 0 && idx < this.minRows) {
+		idx = this.minRows - idx;
+		for (var i = 0; i < idx; i++) {
+			row = document.createElement("tr");
+			row.setAttribute("emptyRow", "true");
+			for (var j = 0; j < this.columns.length; j++) {
+				cell = document.createElement("td");
+				cell.innerHTML = "&nbsp;";
+				row.appendChild(cell);
+			}
+			body.appendChild(row);
+		}
+	}
+	var row = this.domNode.getElementsByTagName("thead")[0].rows[0];
+	var cellTag = "td";
+	if (row.getElementsByTagName(cellTag).length == 0) {
+		cellTag = "th";
+	}
+	var headers = row.getElementsByTagName(cellTag);
+	for (var i = 0; i < headers.length; i++) {
+		dojo.html.setClass(headers[i], this.headerClass);
+	}
+	for (var i = 0; i < this.sortInformation.length; i++) {
+		var idx = this.sortInformation[i].index;
+		var dir = (~this.sortInformation[i].direction) & 1;
+		dojo.html.setClass(headers[idx], dir == 0 ? this.headerDownClass : this.headerUpClass);
+	}
+	this.isInitialized = true;
+	return this.isInitialized;
+}, render:function () {
+	if (!this.isInitialized) {
+		var b = this.init();
+		if (!b) {
+			this.prefill();
+			return;
+		}
+	}
+	var rows = [];
+	var body = this.domNode.tBodies[0];
+	var emptyRowIdx = -1;
+	for (var i = 0; i < body.rows.length; i++) {
+		rows.push(body.rows[i]);
+	}
+	var sortFunction = this.createSorter(this.sortInformation);
+	if (sortFunction) {
+		rows.sort(sortFunction);
+	}
+	for (var i = 0; i < rows.length; i++) {
+		if (this.alternateRows) {
+			dojo.html[((i % 2 == 1) ? "addClass" : "removeClass")](rows[i], this.rowAlternateClass);
+		}
+		dojo.html[(this.isRowSelected(body.rows[i]) ? "addClass" : "removeClass")](body.rows[i], this.rowSelectedClass);
+		body.appendChild(rows[i]);
+	}
+}, renderSelections:function () {
+	var body = this.domNode.tBodies[0];
+	for (var i = 0; i < body.rows.length; i++) {
+		dojo.html[(this.isRowSelected(body.rows[i]) ? "addClass" : "removeClass")](body.rows[i], this.rowSelectedClass);
+	}
+}, initialize:function () {
+	var self = this;
+	dojo.event.connect(this.store, "onSetData", function () {
+		self.store.forEach(function (element) {
+			element.isSelected = false;
+		});
+		self.isInitialized = false;
+		var body = self.domNode.tBodies[0];
+		if (body) {
+			while (body.childNodes.length > 0) {
+				body.removeChild(body.childNodes[0]);
+			}
+		}
+		self.render();
+	});
+	dojo.event.connect(this.store, "onClearData", function () {
+		self.isInitialized = false;
+		self.render();
+	});
+	dojo.event.connect(this.store, "onAddData", function (addedObject) {
+		var row = self.createRow(addedObject);
+		self.domNode.tBodies[0].appendChild(row);
+		self.render();
+	});
+	dojo.event.connect(this.store, "onAddDataRange", function (arr) {
+		for (var i = 0; i < arr.length; i++) {
+			arr[i].isSelected = false;
+			var row = self.createRow(arr[i]);
+			self.domNode.tBodies[0].appendChild(row);
+		}
+		self.render();
+	});
+	dojo.event.connect(this.store, "onRemoveData", function (removedObject) {
+		var rows = self.domNode.tBodies[0].rows;
+		for (var i = 0; i < rows.length; i++) {
+			if (self.getDataByRow(rows[i]) == removedObject.src) {
+				rows[i].parentNode.removeChild(rows[i]);
+				break;
+			}
+		}
+		self.render();
+	});
+	dojo.event.connect(this.store, "onUpdateField", function (obj, fieldPath, val) {
+		var row = self.getRow(obj);
+		var idx = self.getColumnIndex(fieldPath);
+		if (row && row.cells[idx] && self.columns[idx]) {
+			self.fillCell(row.cells[idx], self.columns[idx], val);
+		}
+	});
+}, postCreate:function () {
+	this.store.keyField = this.valueField;
+	if (this.domNode) {
+		if (this.domNode.nodeName.toLowerCase() != "table") {
+		}
+		if (this.domNode.getElementsByTagName("thead")[0]) {
+			var head = this.domNode.getElementsByTagName("thead")[0];
+			if (this.headClass.length > 0) {
+				head.className = this.headClass;
+			}
+			dojo.html.disableSelection(this.domNode);
+			this.parseMetadata(head);
+			var header = "td";
+			if (head.getElementsByTagName(header).length == 0) {
+				header = "th";
+			}
+			var headers = head.getElementsByTagName(header);
+			for (var i = 0; i < headers.length; i++) {
+				if (!this.columns[i].noSort) {
+					dojo.event.connect(headers[i], "onclick", this, "onSort");
+				}
+			}
+		} else {
+			this.domNode.appendChild(document.createElement("thead"));
+		}
+		if (this.domNode.tBodies.length < 1) {
+			var body = document.createElement("tbody");
+			this.domNode.appendChild(body);
+		} else {
+			var body = this.domNode.tBodies[0];
+		}
+		if (this.tbodyClass.length > 0) {
+			body.className = this.tbodyClass;
+		}
+		dojo.event.connect(body, "onclick", this, "onSelect");
+		this.parseData(body);
+	}
+}});
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/FilteringTable.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/FilteringTable.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/FilteringTable.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/FisheyeList.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/FisheyeList.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/FisheyeList.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/FisheyeList.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,446 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.FisheyeList");
+dojo.require("dojo.widget.*");
+dojo.require("dojo.widget.HtmlWidget");
+dojo.require("dojo.html.style");
+dojo.require("dojo.html.selection");
+dojo.require("dojo.html.util");
+dojo.require("dojo.event.*");
+dojo.widget.defineWidget("dojo.widget.FisheyeList", dojo.widget.HtmlWidget, function () {
+	this.pos = {x:-1, y:-1};
+	this.EDGE = {CENTER:0, LEFT:1, RIGHT:2, TOP:3, BOTTOM:4};
+	this.timerScale = 1;
+}, {templateString:"<div class=\"dojoHtmlFisheyeListBar\"></div>", templateCssString:".dojoHtmlFisheyeListItemLabel {\n\tfont-family: Arial, Helvetica, sans-serif;\n\tbackground-color: #eee;\n\tborder: 2px solid #666;\n\tpadding: 2px;\n\ttext-align: center;\n\tposition: absolute;\n\tdisplay: none;\n}\n\n.dojoHtmlFisheyeListItemLabel.selected {\n\tdisplay: block;\n}\n\n.dojoHtmlFisheyeListItemImage {\n\tborder: 0px;\n\tposition: absolute;\n}\n\n.dojoHtmlFisheyeListItem {\n\tposition: absolute;\n\tz-index: 2;\n}\n\n.dojoHtmlFisheyeListBar {\n\tposition: relative;\n}\n", templateCssPath:dojo.uri.moduleUri("dojo.widget", "templates/FisheyeList.css"), isContainer:true, snarfChildDomOutput:true, itemWidth:40, itemHeight:40, itemMaxWidth:150, itemMaxHeight:150, orientation:"horizontal", conservativeTrigger:false, effectUnits:2, itemPadding:10, attachEdge:"center", labelEdge:"bottom", enableCrappySvgSupport:false, fillInTemplate:function () {
+	dojo.html.disableSelection(this.domNode);
+	this.isHorizontal = (this.orientation == "horizontal");
+	this.selectedNode = -1;
+	this.isOver = false;
+	this.hitX1 = -1;
+	this.hitY1 = -1;
+	this.hitX2 = -1;
+	this.hitY2 = -1;
+	this.anchorEdge = this._toEdge(this.attachEdge, this.EDGE.CENTER);
+	this.labelEdge = this._toEdge(this.labelEdge, this.EDGE.TOP);
+	if (this.isHorizontal && (this.anchorEdge == this.EDGE.LEFT)) {
+		this.anchorEdge = this.EDGE.CENTER;
+	}
+	if (this.isHorizontal && (this.anchorEdge == this.EDGE.RIGHT)) {
+		this.anchorEdge = this.EDGE.CENTER;
+	}
+	if (!this.isHorizontal && (this.anchorEdge == this.EDGE.TOP)) {
+		this.anchorEdge = this.EDGE.CENTER;
+	}
+	if (!this.isHorizontal && (this.anchorEdge == this.EDGE.BOTTOM)) {
+		this.anchorEdge = this.EDGE.CENTER;
+	}
+	if (this.labelEdge == this.EDGE.CENTER) {
+		this.labelEdge = this.EDGE.TOP;
+	}
+	if (this.isHorizontal && (this.labelEdge == this.EDGE.LEFT)) {
+		this.labelEdge = this.EDGE.TOP;
+	}
+	if (this.isHorizontal && (this.labelEdge == this.EDGE.RIGHT)) {
+		this.labelEdge = this.EDGE.TOP;
+	}
+	if (!this.isHorizontal && (this.labelEdge == this.EDGE.TOP)) {
+		this.labelEdge = this.EDGE.LEFT;
+	}
+	if (!this.isHorizontal && (this.labelEdge == this.EDGE.BOTTOM)) {
+		this.labelEdge = this.EDGE.LEFT;
+	}
+	this.proximityLeft = this.itemWidth * (this.effectUnits - 0.5);
+	this.proximityRight = this.itemWidth * (this.effectUnits - 0.5);
+	this.proximityTop = this.itemHeight * (this.effectUnits - 0.5);
+	this.proximityBottom = this.itemHeight * (this.effectUnits - 0.5);
+	if (this.anchorEdge == this.EDGE.LEFT) {
+		this.proximityLeft = 0;
+	}
+	if (this.anchorEdge == this.EDGE.RIGHT) {
+		this.proximityRight = 0;
+	}
+	if (this.anchorEdge == this.EDGE.TOP) {
+		this.proximityTop = 0;
+	}
+	if (this.anchorEdge == this.EDGE.BOTTOM) {
+		this.proximityBottom = 0;
+	}
+	if (this.anchorEdge == this.EDGE.CENTER) {
+		this.proximityLeft /= 2;
+		this.proximityRight /= 2;
+		this.proximityTop /= 2;
+		this.proximityBottom /= 2;
+	}
+}, postCreate:function () {
+	this._initializePositioning();
+	if (!this.conservativeTrigger) {
+		dojo.event.connect(document.documentElement, "onmousemove", this, "_onMouseMove");
+	}
+	dojo.event.connect(document.documentElement, "onmouseout", this, "_onBodyOut");
+	dojo.event.connect(this, "addChild", this, "_initializePositioning");
+}, _initializePositioning:function () {
+	this.itemCount = this.children.length;
+	this.barWidth = (this.isHorizontal ? this.itemCount : 1) * this.itemWidth;
+	this.barHeight = (this.isHorizontal ? 1 : this.itemCount) * this.itemHeight;
+	this.totalWidth = this.proximityLeft + this.proximityRight + this.barWidth;
+	this.totalHeight = this.proximityTop + this.proximityBottom + this.barHeight;
+	for (var i = 0; i < this.children.length; i++) {
+		this.children[i].posX = this.itemWidth * (this.isHorizontal ? i : 0);
+		this.children[i].posY = this.itemHeight * (this.isHorizontal ? 0 : i);
+		this.children[i].cenX = this.children[i].posX + (this.itemWidth / 2);
+		this.children[i].cenY = this.children[i].posY + (this.itemHeight / 2);
+		var isz = this.isHorizontal ? this.itemWidth : this.itemHeight;
+		var r = this.effectUnits * isz;
+		var c = this.isHorizontal ? this.children[i].cenX : this.children[i].cenY;
+		var lhs = this.isHorizontal ? this.proximityLeft : this.proximityTop;
+		var rhs = this.isHorizontal ? this.proximityRight : this.proximityBottom;
+		var siz = this.isHorizontal ? this.barWidth : this.barHeight;
+		var range_lhs = r;
+		var range_rhs = r;
+		if (range_lhs > c + lhs) {
+			range_lhs = c + lhs;
+		}
+		if (range_rhs > (siz - c + rhs)) {
+			range_rhs = siz - c + rhs;
+		}
+		this.children[i].effectRangeLeft = range_lhs / isz;
+		this.children[i].effectRangeRght = range_rhs / isz;
+	}
+	this.domNode.style.width = this.barWidth + "px";
+	this.domNode.style.height = this.barHeight + "px";
+	for (var i = 0; i < this.children.length; i++) {
+		var itm = this.children[i];
+		var elm = itm.domNode;
+		elm.style.left = itm.posX + "px";
+		elm.style.top = itm.posY + "px";
+		elm.style.width = this.itemWidth + "px";
+		elm.style.height = this.itemHeight + "px";
+		if (itm.svgNode) {
+			itm.svgNode.style.position = "absolute";
+			itm.svgNode.style.left = this.itemPadding + "%";
+			itm.svgNode.style.top = this.itemPadding + "%";
+			itm.svgNode.style.width = (100 - 2 * this.itemPadding) + "%";
+			itm.svgNode.style.height = (100 - 2 * this.itemPadding) + "%";
+			itm.svgNode.style.zIndex = 1;
+			itm.svgNode.setSize(this.itemWidth, this.itemHeight);
+		} else {
+			itm.imgNode.style.left = this.itemPadding + "%";
+			itm.imgNode.style.top = this.itemPadding + "%";
+			itm.imgNode.style.width = (100 - 2 * this.itemPadding) + "%";
+			itm.imgNode.style.height = (100 - 2 * this.itemPadding) + "%";
+		}
+	}
+	this._calcHitGrid();
+}, _onBodyOut:function (e) {
+	if (dojo.html.overElement(dojo.body(), e)) {
+		return;
+	}
+	this._setDormant(e);
+}, _setDormant:function (e) {
+	if (!this.isOver) {
+		return;
+	}
+	this.isOver = false;
+	if (this.conservativeTrigger) {
+		dojo.event.disconnect(document.documentElement, "onmousemove", this, "_onMouseMove");
+	}
+	this._onGridMouseMove(-1, -1);
+}, _setActive:function (e) {
+	if (this.isOver) {
+		return;
+	}
+	this.isOver = true;
+	if (this.conservativeTrigger) {
+		dojo.event.connect(document.documentElement, "onmousemove", this, "_onMouseMove");
+		this.timerScale = 0;
+		this._onMouseMove(e);
+		this._expandSlowly();
+	}
+}, _onMouseMove:function (e) {
+	if ((e.pageX >= this.hitX1) && (e.pageX <= this.hitX2) && (e.pageY >= this.hitY1) && (e.pageY <= this.hitY2)) {
+		if (!this.isOver) {
+			this._setActive(e);
+		}
+		this._onGridMouseMove(e.pageX - this.hitX1, e.pageY - this.hitY1);
+	} else {
+		if (this.isOver) {
+			this._setDormant(e);
+		}
+	}
+}, onResized:function () {
+	this._calcHitGrid();
+}, _onGridMouseMove:function (x, y) {
+	this.pos = {x:x, y:y};
+	this._paint();
+}, _paint:function () {
+	var x = this.pos.x;
+	var y = this.pos.y;
+	if (this.itemCount <= 0) {
+		return;
+	}
+	var pos = this.isHorizontal ? x : y;
+	var prx = this.isHorizontal ? this.proximityLeft : this.proximityTop;
+	var siz = this.isHorizontal ? this.itemWidth : this.itemHeight;
+	var sim = this.isHorizontal ? (1 - this.timerScale) * this.itemWidth + this.timerScale * this.itemMaxWidth : (1 - this.timerScale) * this.itemHeight + this.timerScale * this.itemMaxHeight;
+	var cen = ((pos - prx) / siz) - 0.5;
+	var max_off_cen = (sim / siz) - 0.5;
+	if (max_off_cen > this.effectUnits) {
+		max_off_cen = this.effectUnits;
+	}
+	var off_weight = 0;
+	if (this.anchorEdge == this.EDGE.BOTTOM) {
+		var cen2 = (y - this.proximityTop) / this.itemHeight;
+		off_weight = (cen2 > 0.5) ? 1 : y / (this.proximityTop + (this.itemHeight / 2));
+	}
+	if (this.anchorEdge == this.EDGE.TOP) {
+		var cen2 = (y - this.proximityTop) / this.itemHeight;
+		off_weight = (cen2 < 0.5) ? 1 : (this.totalHeight - y) / (this.proximityBottom + (this.itemHeight / 2));
+	}
+	if (this.anchorEdge == this.EDGE.RIGHT) {
+		var cen2 = (x - this.proximityLeft) / this.itemWidth;
+		off_weight = (cen2 > 0.5) ? 1 : x / (this.proximityLeft + (this.itemWidth / 2));
+	}
+	if (this.anchorEdge == this.EDGE.LEFT) {
+		var cen2 = (x - this.proximityLeft) / this.itemWidth;
+		off_weight = (cen2 < 0.5) ? 1 : (this.totalWidth - x) / (this.proximityRight + (this.itemWidth / 2));
+	}
+	if (this.anchorEdge == this.EDGE.CENTER) {
+		if (this.isHorizontal) {
+			off_weight = y / (this.totalHeight);
+		} else {
+			off_weight = x / (this.totalWidth);
+		}
+		if (off_weight > 0.5) {
+			off_weight = 1 - off_weight;
+		}
+		off_weight *= 2;
+	}
+	for (var i = 0; i < this.itemCount; i++) {
+		var weight = this._weighAt(cen, i);
+		if (weight < 0) {
+			weight = 0;
+		}
+		this._setItemSize(i, weight * off_weight);
+	}
+	var main_p = Math.round(cen);
+	var offset = 0;
+	if (cen < 0) {
+		main_p = 0;
+	} else {
+		if (cen > this.itemCount - 1) {
+			main_p = this.itemCount - 1;
+		} else {
+			offset = (cen - main_p) * ((this.isHorizontal ? this.itemWidth : this.itemHeight) - this.children[main_p].sizeMain);
+		}
+	}
+	this._positionElementsFrom(main_p, offset);
+}, _weighAt:function (cen, i) {
+	var dist = Math.abs(cen - i);
+	var limit = ((cen - i) > 0) ? this.children[i].effectRangeRght : this.children[i].effectRangeLeft;
+	return (dist > limit) ? 0 : (1 - dist / limit);
+}, _setItemSize:function (p, scale) {
+	scale *= this.timerScale;
+	var w = Math.round(this.itemWidth + ((this.itemMaxWidth - this.itemWidth) * scale));
+	var h = Math.round(this.itemHeight + ((this.itemMaxHeight - this.itemHeight) * scale));
+	if (this.isHorizontal) {
+		this.children[p].sizeW = w;
+		this.children[p].sizeH = h;
+		this.children[p].sizeMain = w;
+		this.children[p].sizeOff = h;
+		var y = 0;
+		if (this.anchorEdge == this.EDGE.TOP) {
+			y = (this.children[p].cenY - (this.itemHeight / 2));
+		} else {
+			if (this.anchorEdge == this.EDGE.BOTTOM) {
+				y = (this.children[p].cenY - (h - (this.itemHeight / 2)));
+			} else {
+				y = (this.children[p].cenY - (h / 2));
+			}
+		}
+		this.children[p].usualX = Math.round(this.children[p].cenX - (w / 2));
+		this.children[p].domNode.style.top = y + "px";
+		this.children[p].domNode.style.left = this.children[p].usualX + "px";
+	} else {
+		this.children[p].sizeW = w;
+		this.children[p].sizeH = h;
+		this.children[p].sizeOff = w;
+		this.children[p].sizeMain = h;
+		var x = 0;
+		if (this.anchorEdge == this.EDGE.LEFT) {
+			x = this.children[p].cenX - (this.itemWidth / 2);
+		} else {
+			if (this.anchorEdge == this.EDGE.RIGHT) {
+				x = this.children[p].cenX - (w - (this.itemWidth / 2));
+			} else {
+				x = this.children[p].cenX - (w / 2);
+			}
+		}
+		this.children[p].domNode.style.left = x + "px";
+		this.children[p].usualY = Math.round(this.children[p].cenY - (h / 2));
+		this.children[p].domNode.style.top = this.children[p].usualY + "px";
+	}
+	this.children[p].domNode.style.width = w + "px";
+	this.children[p].domNode.style.height = h + "px";
+	if (this.children[p].svgNode) {
+		this.children[p].svgNode.setSize(w, h);
+	}
+}, _positionElementsFrom:function (p, offset) {
+	var pos = 0;
+	if (this.isHorizontal) {
+		pos = Math.round(this.children[p].usualX + offset);
+		this.children[p].domNode.style.left = pos + "px";
+	} else {
+		pos = Math.round(this.children[p].usualY + offset);
+		this.children[p].domNode.style.top = pos + "px";
+	}
+	this._positionLabel(this.children[p]);
+	var bpos = pos;
+	for (var i = p - 1; i >= 0; i--) {
+		bpos -= this.children[i].sizeMain;
+		if (this.isHorizontal) {
+			this.children[i].domNode.style.left = bpos + "px";
+		} else {
+			this.children[i].domNode.style.top = bpos + "px";
+		}
+		this._positionLabel(this.children[i]);
+	}
+	var apos = pos;
+	for (var i = p + 1; i < this.itemCount; i++) {
+		apos += this.children[i - 1].sizeMain;
+		if (this.isHorizontal) {
+			this.children[i].domNode.style.left = apos + "px";
+		} else {
+			this.children[i].domNode.style.top = apos + "px";
+		}
+		this._positionLabel(this.children[i]);
+	}
+}, _positionLabel:function (itm) {
+	var x = 0;
+	var y = 0;
+	var mb = dojo.html.getMarginBox(itm.lblNode);
+	if (this.labelEdge == this.EDGE.TOP) {
+		x = Math.round((itm.sizeW / 2) - (mb.width / 2));
+		y = -mb.height;
+	}
+	if (this.labelEdge == this.EDGE.BOTTOM) {
+		x = Math.round((itm.sizeW / 2) - (mb.width / 2));
+		y = itm.sizeH;
+	}
+	if (this.labelEdge == this.EDGE.LEFT) {
+		x = -mb.width;
+		y = Math.round((itm.sizeH / 2) - (mb.height / 2));
+	}
+	if (this.labelEdge == this.EDGE.RIGHT) {
+		x = itm.sizeW;
+		y = Math.round((itm.sizeH / 2) - (mb.height / 2));
+	}
+	itm.lblNode.style.left = x + "px";
+	itm.lblNode.style.top = y + "px";
+}, _calcHitGrid:function () {
+	var pos = dojo.html.getAbsolutePosition(this.domNode, true);
+	this.hitX1 = pos.x - this.proximityLeft;
+	this.hitY1 = pos.y - this.proximityTop;
+	this.hitX2 = this.hitX1 + this.totalWidth;
+	this.hitY2 = this.hitY1 + this.totalHeight;
+}, _toEdge:function (inp, def) {
+	return this.EDGE[inp.toUpperCase()] || def;
+}, _expandSlowly:function () {
+	if (!this.isOver) {
+		return;
+	}
+	this.timerScale += 0.2;
+	this._paint();
+	if (this.timerScale < 1) {
+		dojo.lang.setTimeout(this, "_expandSlowly", 10);
+	}
+}, destroy:function () {
+	dojo.event.disconnect(document.documentElement, "onmouseout", this, "_onBodyOut");
+	dojo.event.disconnect(document.documentElement, "onmousemove", this, "_onMouseMove");
+	dojo.widget.FisheyeList.superclass.destroy.call(this);
+}});
+dojo.widget.defineWidget("dojo.widget.FisheyeListItem", dojo.widget.HtmlWidget, {iconSrc:"", svgSrc:"", caption:"", id:"", _blankImgPath:dojo.uri.moduleUri("dojo.widget", "templates/images/blank.gif"), templateString:"<div class=\"dojoHtmlFisheyeListItem\">" + "  <img class=\"dojoHtmlFisheyeListItemImage\" dojoAttachPoint=\"imgNode\" dojoAttachEvent=\"onMouseOver;onMouseOut;onClick\">" + "  <div class=\"dojoHtmlFisheyeListItemLabel\" dojoAttachPoint=\"lblNode\"></div>" + "</div>", fillInTemplate:function () {
+	if (this.svgSrc != "") {
+		this.svgNode = this._createSvgNode(this.svgSrc);
+		this.domNode.appendChild(this.svgNode);
+		this.imgNode.style.display = "none";
+	} else {
+		if ((this.iconSrc.toLowerCase().substring(this.iconSrc.length - 4) == ".png") && (dojo.render.html.ie) && (!dojo.render.html.ie70)) {
+			if (dojo.dom.hasParent(this.imgNode) && this.id != "") {
+				var parent = this.imgNode.parentNode;
+				parent.setAttribute("id", this.id);
+			}
+			this.imgNode.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.iconSrc + "', sizingMethod='scale')";
+			this.imgNode.src = this._blankImgPath.toString();
+		} else {
+			if (dojo.dom.hasParent(this.imgNode) && this.id != "") {
+				var parent = this.imgNode.parentNode;
+				parent.setAttribute("id", this.id);
+			}
+			this.imgNode.src = this.iconSrc;
+		}
+	}
+	if (this.lblNode) {
+		this.lblNode.appendChild(document.createTextNode(this.caption));
+	}
+	dojo.html.disableSelection(this.domNode);
+}, _createSvgNode:function (src) {
+	var elm = document.createElement("embed");
+	elm.src = src;
+	elm.type = "image/svg+xml";
+	elm.style.width = "1px";
+	elm.style.height = "1px";
+	elm.loaded = 0;
+	elm.setSizeOnLoad = false;
+	elm.onload = function () {
+		this.svgRoot = this.getSVGDocument().rootElement;
+		this.svgDoc = this.getSVGDocument().documentElement;
+		this.zeroWidth = this.svgRoot.width.baseVal.value;
+		this.zeroHeight = this.svgRoot.height.baseVal.value;
+		this.loaded = true;
+		if (this.setSizeOnLoad) {
+			this.setSize(this.setWidth, this.setHeight);
+		}
+	};
+	elm.setSize = function (w, h) {
+		if (!this.loaded) {
+			this.setWidth = w;
+			this.setHeight = h;
+			this.setSizeOnLoad = true;
+			return;
+		}
+		this.style.width = w + "px";
+		this.style.height = h + "px";
+		this.svgRoot.width.baseVal.value = w;
+		this.svgRoot.height.baseVal.value = h;
+		var scale_x = w / this.zeroWidth;
+		var scale_y = h / this.zeroHeight;
+		for (var i = 0; i < this.svgDoc.childNodes.length; i++) {
+			if (this.svgDoc.childNodes[i].setAttribute) {
+				this.svgDoc.childNodes[i].setAttribute("transform", "scale(" + scale_x + "," + scale_y + ")");
+			}
+		}
+	};
+	return elm;
+}, onMouseOver:function (e) {
+	if (!this.parent.isOver) {
+		this.parent._setActive(e);
+	}
+	if (this.caption != "") {
+		dojo.html.addClass(this.lblNode, "selected");
+		this.parent._positionLabel(this);
+	}
+}, onMouseOut:function (e) {
+	dojo.html.removeClass(this.lblNode, "selected");
+}, onClick:function (e) {
+}});
+

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/FisheyeList.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/FisheyeList.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/FisheyeList.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain