|
Struts example source code file (InlineEditBox.js)
The Struts InlineEditBox.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.InlineEditBox"); dojo.require("dojo.widget.*"); dojo.require("dojo.event.*"); dojo.require("dojo.lfx.*"); dojo.require("dojo.gfx.color"); dojo.require("dojo.string"); dojo.require("dojo.html.*"); dojo.require("dojo.html.layout"); dojo.widget.defineWidget("dojo.widget.InlineEditBox", dojo.widget.HtmlWidget, function () { this.history = []; }, {templateString:"<form class=\"inlineEditBox\" style=\"display: none\" dojoAttachPoint=\"form\" dojoAttachEvent=\"onSubmit:saveEdit; onReset:cancelEdit; onKeyUp: checkForValueChange;\">\n\t\n\t\n\t\n\t\n\n", templateCssString:".editLabel {\n\tfont-size : small;\n\tpadding : 0 5px;\n\tdisplay : none;\n}\n\n.editableRegionDisabled {\n\tcursor : pointer;\n\t_cursor : hand;\n}\n\n.editableRegion {\n\tbackground-color : #ffc !important;\n\tcursor : pointer;\n\t_cursor : hand;\n}\n\n.editableRegion .editLabel {\n\tdisplay : inline;\n}\n\n.editableTextareaRegion .editLabel {\n\tdisplay : block;\n}\n\n.inlineEditBox {\n\t/*background-color : #ffc;*/\n\tdisplay : inline;\n}\n", templateCssPath:dojo.uri.moduleUri("dojo.widget", "templates/InlineEditBox.css"), mode:"text", name:"", minWidth:100, minHeight:200, editing:false, value:"", textValue:"", defaultText:"", postMixInProperties:function () { if (this.textValue) { dojo.deprecated("InlineEditBox: Use value parameter instead of textValue; will be removed in 0.5"); this.value = this.textValue; } if (this.defaultText) { dojo.deprecated("InlineEditBox: Use value parameter instead of defaultText; will be removed in 0.5"); this.value = this.defaultText; } }, postCreate:function (args, frag) { this.editable = this.getFragNodeRef(frag); dojo.html.insertAfter(this.editable, this.form); dojo.event.connect(this.editable, "onmouseover", this, "onMouseOver"); dojo.event.connect(this.editable, "onmouseout", this, "onMouseOut"); dojo.event.connect(this.editable, "onclick", this, "_beginEdit"); if (this.value) { this.editable.innerHTML = this.value; return; } else { this.value = dojo.string.trim(this.editable.innerHTML); this.editable.innerHTML = this.value; } }, onMouseOver:function () { if (!this.editing) { if (this.disabled) { dojo.html.addClass(this.editable, "editableRegionDisabled"); } else { dojo.html.addClass(this.editable, "editableRegion"); if (this.mode == "textarea") { dojo.html.addClass(this.editable, "editableTextareaRegion"); } } } }, onMouseOut:function () { if (!this.editing) { dojo.html.removeClass(this.editable, "editableRegion"); dojo.html.removeClass(this.editable, "editableTextareaRegion"); dojo.html.removeClass(this.editable, "editableRegionDisabled"); } }, _beginEdit:function (e) { if (this.editing || this.disabled) { return; } this.onMouseOut(); this.editing = true; var ee = this[this.mode.toLowerCase()]; ee.value = dojo.string.trim(this.value); ee.style.fontSize = dojo.html.getStyle(this.editable, "font-size"); ee.style.fontWeight = dojo.html.getStyle(this.editable, "font-weight"); ee.style.fontStyle = dojo.html.getStyle(this.editable, "font-style"); var bb = dojo.html.getBorderBox(this.editable); ee.style.width = Math.max(bb.width, this.minWidth) + "px"; if (this.mode.toLowerCase() == "textarea") { ee.style.display = "block"; ee.style.height = Math.max(bb.height, this.minHeight) + "px"; } else { ee.style.display = ""; } this.form.style.display = ""; this.editable.style.display = "none"; ee.focus(); ee.select(); this.submitButton.disabled = true; }, saveEdit:function (e) { e.preventDefault(); e.stopPropagation(); var ee = this[this.mode.toLowerCase()]; if ((this.value != ee.value) && (dojo.string.trim(ee.value) != "")) { this.doFade = true; this.history.push(this.value); this.onSave(ee.value, this.value, this.name); this.value = ee.value; this.editable.innerHTML = ""; var textNode = document.createTextNode(this.value); this.editable.appendChild(textNode); } else { this.doFade = false; } this._finishEdit(e); }, _stopEditing:function () { this.editing = false; this.form.style.display = "none"; this.editable.style.display = ""; return true; }, cancelEdit:function (e) { this._stopEditing(); this.onCancel(); return true; }, _finishEdit:function (e) { this._stopEditing(); if (this.doFade) { dojo.lfx.highlight(this.editable, dojo.gfx.color.hex2rgb("#ffc"), 700).play(300); } this.doFade = false; }, setText:function (txt) { dojo.deprecated("setText() is deprecated, call setValue() instead, will be removed in 0.5"); this.setValue(txt); }, setValue:function (txt) { txt = "" + txt; var tt = dojo.string.trim(txt); this.value = tt; this.editable.innerHTML = tt; }, undo:function () { if (this.history.length > 0) { var curValue = this.value; var value = this.history.pop(); this.editable.innerHTML = value; this.value = value; this.onUndo(value); this.onSave(value, curValue, this.name); } }, onChange:function (newValue, oldValue) { }, onSave:function (newValue, oldValue, name) { }, onCancel:function () { }, checkForValueChange:function () { var ee = this[this.mode.toLowerCase()]; if ((this.value != ee.value) && (dojo.string.trim(ee.value) != "")) { this.submitButton.disabled = false; } this.onChange(this.value, ee.value); }, disable:function () { this.submitButton.disabled = true; this.cancelButton.disabled = true; var ee = this[this.mode.toLowerCase()]; ee.disabled = true; dojo.widget.InlineEditBox.superclass.disable.apply(this, arguments); }, enable:function () { this.checkForValueChange(); this.cancelButton.disabled = false; var ee = this[this.mode.toLowerCase()]; ee.disabled = false; dojo.widget.InlineEditBox.superclass.enable.apply(this, arguments); }}); Other Struts examples (source code examples)Here is a short list of links related to this Struts InlineEditBox.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.