mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5282 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
112 lines
2.4 KiB
JavaScript
112 lines
2.4 KiB
JavaScript
/*
|
|
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.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, // enter saves
|
|
saveOnBlur: true, // blur or new edit saves current
|
|
sync: false, // finish editing in sync/async mode
|
|
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.debug("finish");
|
|
}
|
|
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);
|
|
}
|
|
|
|
|
|
|
|
});
|