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 pen.** @namespace M.assignfeedback_editpdf* @class annotationpen* @extends M.assignfeedback_editpdf.annotation*/var ANNOTATIONPEN = function(config) {ANNOTATIONPEN.superclass.constructor.apply(this, [config]);};ANNOTATIONPEN.NAME = "annotationpen";ANNOTATIONPEN.ATTRS = {};Y.extend(ANNOTATIONPEN, M.assignfeedback_editpdf.annotation, {/*** Draw a pen annotation* @protected* @method draw* @return M.assignfeedback_editpdf.drawable*/draw: function() {var drawable,shape,first,positions,xy;drawable = new M.assignfeedback_editpdf.drawable(this.editor);shape = this.editor.graphic.addShape({type: Y.Path,fill: false,stroke: {weight: STROKEWEIGHT,color: ANNOTATIONCOLOUR[this.colour]}});first = true;// Recreate the pen path array.positions = this.path.split(':');// Redraw all the lines.Y.each(positions, function(position) {xy = position.split(',');if (first) {shape.moveTo(xy[0], xy[1]);first = false;} else {shape.lineTo(xy[0], xy[1]);}}, this);shape.end();drawable.shapes.push(shape);this.drawable = drawable;return ANNOTATIONPEN.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,first;shape = this.editor.graphic.addShape({type: Y.Path,fill: false,stroke: {weight: STROKEWEIGHT,color: ANNOTATIONCOLOUR[edit.annotationcolour]}});first = true;// Recreate the pen path array.// Redraw all the lines.Y.each(edit.path, function(position) {if (first) {shape.moveTo(position.x, position.y);first = false;} else {shape.lineTo(position.x, position.y);}}, this);shape.end();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 pen bound is more than min width/height, else false.*/init_from_edit: function(edit) {var bounds = new M.assignfeedback_editpdf.rect(),pathlist = [],i = 0;// This will get the boundaries of all points in the path.bounds.bound(edit.path);for (i = 0; i < edit.path.length; i++) {pathlist.push(parseInt(edit.path[i].x, 10) + ',' + parseInt(edit.path[i].y, 10));}this.gradeid = this.editor.get('gradeid');this.pageno = this.editor.currentpage;this.x = bounds.x;this.y = bounds.y;this.endx = bounds.x + bounds.width;this.endy = bounds.y + bounds.height;this.colour = edit.annotationcolour;this.path = pathlist.join(':');return (bounds.has_min_width() || bounds.has_min_height());}});M.assignfeedback_editpdf = M.assignfeedback_editpdf || {};M.assignfeedback_editpdf.annotationpen = ANNOTATIONPEN;