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 = " ";
+ }
+ }
+ }
+ }
+ }
+ 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 = " ";
+ }
+ }
+ }
+ }
+ }
+ 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;\"> </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;\"> </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;\"> </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;\"> </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;\"> </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\"> </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\"> </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\"> </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\"> </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\"> </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\"> </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\"> </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\"> </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\"> </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 = " ";
+ 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 = " ";
+ 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