diff --git a/IPython/frontend/html/notebook/static/js/textcell.js b/IPython/frontend/html/notebook/static/js/textcell.js index bab05de..ebc6759 100644 --- a/IPython/frontend/html/notebook/static/js/textcell.js +++ b/IPython/frontend/html/notebook/static/js/textcell.js @@ -9,11 +9,18 @@ // TextCell //============================================================================ +/** + A module that allow to create different type of Text Cell + */ var IPython = (function (IPython) { // TextCell base class var key = IPython.utils.keycodes; + /** + * @class TextCell + * @constructs TextCell + */ var TextCell = function () { this.code_mirror_mode = this.code_mirror_mode || 'htmlmixed'; IPython.Cell.apply(this, arguments); @@ -21,10 +28,12 @@ var IPython = (function (IPython) { this.cell_type = this.cell_type || 'text'; }; - TextCell.prototype = new IPython.Cell(); - + /** create the DOM element of the TextCell + * @method create_element + * @private + */ TextCell.prototype.create_element = function () { var cell = $("
").addClass('cell text_cell border-box-sizing'); cell.attr('tabindex','2'); @@ -47,6 +56,11 @@ var IPython = (function (IPython) { }; + /** bind the DOM evet to cell actions + * Need to be called after TextCell.create_element + * @private + * @method bind_event + */ TextCell.prototype.bind_events = function () { IPython.Cell.prototype.bind_events.apply(this); var that = this; @@ -63,13 +77,16 @@ var IPython = (function (IPython) { }); }; - + /** This method gets called in CodeMirror's onKeyDown/onKeyPress + * handlers and is used to provide custom key handling. + * + * @method handle_codemirror_keyevent + * @param {CodeMirror } editor - The codemirror instance bound to the cell + * @param {event} event - + * @return {Boolean} true if CodeMirror should ignore the event, `false` Otherwise + */ TextCell.prototype.handle_codemirror_keyevent = function (editor, event) { - // This method gets called in CodeMirror's onKeyDown/onKeyPress - // handlers and is used to provide custom key handling. Its return - // value is used to determine if CodeMirror should ignore the event: - // true = ignore, false = don't ignore. - + if (event.keyCode === 13 && (event.shiftKey || event.ctrlKey)) { // Always ignore shift-enter in CodeMirror as we handle it. return true; @@ -77,26 +94,33 @@ var IPython = (function (IPython) { return false; }; - + /** + * Select the current cell + * @method select + */ TextCell.prototype.select = function () { IPython.Cell.prototype.select.apply(this); var output = this.element.find("div.text_cell_render"); output.trigger('focus'); }; - + /** unselect the current cell + * @method unselect + */ TextCell.prototype.unselect = function() { // render on selection of another cell this.render(); IPython.Cell.prototype.unselect.apply(this); }; - + /** put the current cell in edition mode + * @method edit + */ TextCell.prototype.edit = function () { if ( this.read_only ) return; if (this.rendered === true) { var text_cell = this.element; - var output = text_cell.find("div.text_cell_render"); + var output = text_cell.find("div.text_cell_render"); output.hide(); text_cell.find('div.text_cell_input').show(); this.code_mirror.refresh(); @@ -113,31 +137,55 @@ var IPython = (function (IPython) { }; - // Subclasses must define render. + /** Subclasses must define render. + * @method render + */ TextCell.prototype.render = function () {}; + /** + * setter: {{#crossLink "TextCell/set_text"}}{{/crossLink}} + * @method get_text + * @retrun {string} CodeMirror current text value + */ TextCell.prototype.get_text = function() { return this.code_mirror.getValue(); }; - + /** + * @param {string} text - Codemiror text value + * @see TextCell#get_text + * @method set_text + * */ TextCell.prototype.set_text = function(text) { this.code_mirror.setValue(text); this.code_mirror.refresh(); }; - + /** + * setter :{{#crossLink "TextCell/set_rendered"}}{{/crossLink}} + * @method get_rendered + * @return {html} html of rendered element + * */ TextCell.prototype.get_rendered = function() { return this.element.find('div.text_cell_render').html(); }; - + /** + * @method set_rendered + */ TextCell.prototype.set_rendered = function(text) { this.element.find('div.text_cell_render').html(text); }; - + /** + * not deprecated, but implementation wrong + * @method at_top + * @deprecated + * @return {Boolean} true is cell rendered, false otherwise + * I doubt this is what it is supposed to do + * this implementation is completly false + */ TextCell.prototype.at_top = function () { if (this.rendered) { return true; @@ -147,6 +195,14 @@ var IPython = (function (IPython) { }; + /** + * not deprecated, but implementation wrong + * @method at_bottom + * @deprecated + * @return {Boolean} true is cell rendered, false otherwise + * I doubt this is what it is supposed to do + * this implementation is completly false + * */ TextCell.prototype.at_bottom = function () { if (this.rendered) { return true; @@ -155,7 +211,9 @@ var IPython = (function (IPython) { } }; - + /** Create Text cell from JSON + * @param {json} data - JSON serialized text-cell + */ TextCell.prototype.fromJSON = function (data) { IPython.Cell.prototype.fromJSON.apply(this, arguments); if (data.cell_type === this.cell_type) { @@ -180,8 +238,11 @@ var IPython = (function (IPython) { }; - // HTMLCell - + /** + * @constructs HtmlCell + * @class HtmlCell + * @extends TextCell + */ var HTMLCell = function () { this.placeholder = "Type HTML and LaTeX: $\\alpha^2$"; IPython.TextCell.apply(this, arguments); @@ -206,7 +267,10 @@ var IPython = (function (IPython) { // MarkdownCell - + /** @class MarkdownCell + * @constructs MarkdownCell + * @extends HtmlCell + */ var MarkdownCell = function () { this.placeholder = "Type *Markdown* and LaTeX: $\\alpha^2$"; IPython.TextCell.apply(this, arguments); @@ -255,6 +319,9 @@ var IPython = (function (IPython) { // RawCell + /** @construct RawCell + * @extends TextCell + */ var RawCell = function () { this.placeholder = "Type plain text and LaTeX: $\\alpha^2$"; this.code_mirror_mode = 'rst'; @@ -337,8 +404,9 @@ var IPython = (function (IPython) { }; - // HTMLCell - + /** @constructs HeadingCell + * @extends TextCell + */ var HeadingCell = function () { this.placeholder = "Type Heading Here"; IPython.TextCell.apply(this, arguments); @@ -349,7 +417,7 @@ var IPython = (function (IPython) { HeadingCell.prototype = new TextCell(); - + /** from json */ HeadingCell.prototype.fromJSON = function (data) { if (data.level != undefined){ this.level = data.level; @@ -373,7 +441,9 @@ var IPython = (function (IPython) { }; }; - + /** The depth of header cell, based on html (h1 to h6) + * @return {integer} level - for 1 to 6 + */ HeadingCell.prototype.get_level = function () { return this.level; };