AutorÃa | Ultima modificación | Ver Log |
// This file is part of Moodle - http://moodle.org///// Moodle is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.//// Moodle is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with Moodle. If not, see <http://www.gnu.org/licenses/>./*** Provides an in browser PDF editor.** @module moodle-assignfeedback_editpdf-editor*//*** Class representing a highlight.** @namespace M.assignfeedback_editpdf* @class annotationhighlight* @extends M.assignfeedback_editpdf.annotation* @module moodle-assignfeedback_editpdf-editor*/var ANNOTATIONHIGHLIGHT = function(config) {ANNOTATIONHIGHLIGHT.superclass.constructor.apply(this, [config]);};ANNOTATIONHIGHLIGHT.NAME = "annotationhighlight";ANNOTATIONHIGHLIGHT.ATTRS = {};Y.extend(ANNOTATIONHIGHLIGHT, M.assignfeedback_editpdf.annotation, {/*** Draw a highlight annotation* @protected* @method draw* @return M.assignfeedback_editpdf.drawable*/draw: function() {var drawable,shape,bounds,highlightcolour;drawable = new M.assignfeedback_editpdf.drawable(this.editor);bounds = new M.assignfeedback_editpdf.rect();bounds.bound([new M.assignfeedback_editpdf.point(this.x, this.y),new M.assignfeedback_editpdf.point(this.endx, this.endy)]);highlightcolour = ANNOTATIONCOLOUR[this.colour];// Add an alpha channel to the rgb colour.highlightcolour = highlightcolour.replace('rgb', 'rgba');highlightcolour = highlightcolour.replace(')', ',0.5)');shape = this.editor.graphic.addShape({type: Y.Rect,width: bounds.width,height: bounds.height,stroke: false,fill: {color: highlightcolour},x: bounds.x,y: bounds.y});drawable.shapes.push(shape);this.drawable = drawable;return ANNOTATIONHIGHLIGHT.superclass.draw.apply(this);},/*** Draw the in progress edit.** @public* @method draw_current_edit* @param M.assignfeedback_editpdf.edit edit*/draw_current_edit: function(edit) {var drawable = new M.assignfeedback_editpdf.drawable(this.editor),shape,bounds,highlightcolour;bounds = new M.assignfeedback_editpdf.rect();bounds.bound([new M.assignfeedback_editpdf.point(edit.start.x, edit.start.y),new M.assignfeedback_editpdf.point(edit.end.x, edit.end.y)]);// Set min. width of highlight.if (!bounds.has_min_width()) {bounds.set_min_width();}highlightcolour = ANNOTATIONCOLOUR[edit.annotationcolour];// Add an alpha channel to the rgb colour.highlightcolour = highlightcolour.replace('rgb', 'rgba');highlightcolour = highlightcolour.replace(')', ',0.5)');// We will draw a box with the current background colour.shape = this.editor.graphic.addShape({type: Y.Rect,width: bounds.width,height: 20,stroke: false,fill: {color: highlightcolour},x: bounds.x,y: edit.start.y - 10});drawable.shapes.push(shape);return drawable;},/*** Promote the current edit to a real annotation.** @public* @method init_from_edit* @param M.assignfeedback_editpdf.edit edit* @return bool true if highlight bound is more than min width/height, else false.*/init_from_edit: function(edit) {var bounds = new M.assignfeedback_editpdf.rect();bounds.bound([edit.start, edit.end]);this.gradeid = this.editor.get('gradeid');this.pageno = this.editor.currentpage;this.x = bounds.x;this.y = edit.start.y - 10;this.endx = bounds.x + bounds.width;this.endy = edit.start.y + 10;this.colour = edit.annotationcolour;this.page = '';return (bounds.has_min_width());}});M.assignfeedback_editpdf = M.assignfeedback_editpdf || {};M.assignfeedback_editpdf.annotationhighlight = ANNOTATIONHIGHLIGHT;