blob: 907fc5693e67903cc8b5669a8223050734588a5f [file] [log] [blame]
// Plugin for htmlArea to insert keywords, when a type of
// keyword is selected from a dropdown list
// By Adam Wright, for The University of Western Australia
//
// Distributed under the same terms as HTMLArea itself.
// This notice MUST stay intact for use (see license.txt).
function InsertWords(editor, params) {
this.editor = editor;
var cfg = editor.config;
var self = this;
if(params[0] && params[0].combos) {
//if arguments where passed with registerPlugin use these
var combos = params[0].combos;
} else if (cfg.InsertWords && cfg.InsertWords.combos) {
//if combos is found in config use these
var combos = cfg.InsertWords.combos;
} else {
//no combos found
var combos = [];
}
// register the toolbar with the keywords dropdown
var first = true;
var toolbar = [];
for (var i = combos.length; --i >= 0;) {
var combo = combos[i];
var id = "IW-id" + i;
var iw_class = {
id : id,
options : combo.options,
action : function (editor) { self.onSelect(editor, this, combo.context); },
refresh : function (editor) { },
context : combo.context
};
cfg.registerDropdown(iw_class);
if (combo.label)
toolbar.push("T[" + combo.label + "]");
toolbar.push(id);
toolbar.push(first ? "separator" : "space");
}
cfg.addToolbarElement(toolbar, "linebreak", 1);
}
InsertWords._pluginInfo = {
name : "InsertWords",
version : "1.0",
developer : "Adam Wright",
developer_url : "http://blog.hipikat.org/",
sponsor : "The University of Western Australia",
sponsor_url : "http://www.uwa.edu.au/",
license : "htmlArea"
};
InsertWords.prototype.onSelect = function(editor, obj, context) {
// Get the toolbar object element
var elem = editor._toolbarObjects[obj.id].element;
// Insert the keyword value blindly at the selection
editor.insertHTML(elem.value);
// Reset the dropdown to it's label
elem.selectedIndex = 0;
};