|
Struts example source code file (TableOperation.js)
The Struts TableOperation.js source code/* 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; } }}); } Other Struts examples (source code examples)Here is a short list of links related to this Struts TableOperation.js source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.