Rev 1422 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/*Copyright (c) 2004-2006, The Dojo FoundationAll Rights Reserved.Licensed under the Academic Free License version 2.1 or above OR themodified BSD license. For more information on Dojo licensing, see:http://dojotoolkit.org/community/licensing.shtml*/dojo.require("dojo.widget.*");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.widget.RichText");dojo.provide("dojo.widget.TreeEditor");dojo.widget.defineWidget("dojo.widget.TreeEditor", dojo.widget.HtmlWidget, {singleLineMode:false, saveOnBlur:true, sync:false, selectOnOpen:true, controller:null, node:null, richTextParams:{styleSheets:"src/widget/templates/TreeEditor.css"}, getContents:function () {return this.richText.getEditorContent();}, open:function (node) {if (!this.richText) {this.richText = dojo.widget.createWidget("RichText", this.richTextParams, node.labelNode);dojo.event.connect("around", this.richText, "onKeyDown", this, "richText_onKeyDown");dojo.event.connect(this.richText, "onBlur", this, "richText_onBlur");var self = this;dojo.event.connect(this.richText, "onLoad", function () {if (self.selectOnOpen) {self.richText.execCommand("selectall");}});} else {this.richText.open(node.labelNode);}this.node = node;}, close:function (save) {this.richText.close(save);this.node = null;}, isClosed:function () {return !this.richText || this.richText.isClosed;}, execCommand:function () {this.richText.execCommand.apply(this.richText, arguments);}, richText_onKeyDown:function (invocation) {var e = invocation.args[0];if ((!e) && (this.object)) {e = dojo.event.browser.fixEvent(this.editor.window.event);}switch (e.keyCode) {case e.KEY_ESCAPE:this.finish(false);dojo.event.browser.stopEvent(e);break;case e.KEY_ENTER:if (e.ctrlKey && !this.singleLineMode) {this.execCommand("inserthtml", "<br/>");} else {this.finish(true);}dojo.event.browser.stopEvent(e);break;default:return invocation.proceed();}}, richText_onBlur:function () {this.finish(this.saveOnBlur);}, finish:function (save) {return this.controller.editLabelFinish(save, this.sync);}});