Gitlab CSE Unil

annotation.php 3.92 KB
Newer Older
M. Chardon's avatar
init  
M. Chardon committed
1
<?php
2

M. Chardon's avatar
init  
M. Chardon committed
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 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/>.

/**
 * This file contains the annotation class for the assignfeedback_editpdfplus plugin
 *
 * @package   assignfeedback_editpdfplus
M. Chardon's avatar
GPL3    
M. Chardon committed
22
 * @copyright  2016 Université de Lausanne
M. Chardon's avatar
init  
M. Chardon committed
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */

namespace assignfeedback_editpdfplus;

/**
 * This class adds and removes annotations from a page of a response.
 *
 * @package   assignfeedback_editpdfplus
 * @copyright 2012 Davo Smith
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */
class annotation {

    /** @var int unique id for this annotation */
    public $id = 0;

    /** @var int gradeid for this annotation */
    public $gradeid = 0;

    /** @var int page number for this annotation */
    public $pageno = 0;

    /** @var int starting location in pixels. Image resolution is 100 pixels per inch */
    public $x = 0;

    /** @var int ending location in pixels. Image resolution is 100 pixels per inch */
    public $endx = 0;

    /** @var int starting location in pixels. Image resolution is 100 pixels per inch */
    public $y = 0;

    /** @var int ending location in pixels. Image resolution is 100 pixels per inch */
    public $endy = 0;
57
58

    /** @var int starting location of cartridge in pixels. Image resolution is 100 pixels per inch */
59
    public $cartridgex = 0;
60

61
    /** @var int ending location of cartridge in pixels. Image resolution is 100 pixels per inch */
62
    public $cartridgey = 0;
M. Chardon's avatar
init  
M. Chardon committed
63
64
65
66
67

    /** @var string path information for drawing the annotation. */
    public $path = '';

    /** @var int toolid for this annotation. */
68
    public $toolid = 0;
69

M. Chardon's avatar
init  
M. Chardon committed
70
71
72
73
74
75
    /** @var string textannot, contains the text of this annotation */
    public $textannot = '';

    /** @var string colour - One of red, yellow, green, blue, white */
    public $colour = 'yellow';

M. Chardon's avatar
M. Chardon committed
76
    /** @var bool displaylock for displaying this annotation */
77
    public $displaylock = 1;
M. Chardon's avatar
M. Chardon committed
78
79
80

    /** @var bool displayrotation for displaying the sign of the annotation */
    public $displayrotation = 0;
81

82
83
    /** @var string borderstyle */
    public $borderstyle = '';
84

85
    /** @var int parent_annot */
86
    public $parent_annot = 0;
87

88
    /** @var int answerrequested */
89
    public $answerrequested = 0;
90

91
92
    /** @var int studentstatus */
    public $studentstatus = 0;
93

94
95
    /** @var string studentanswer */
    public $studentanswer = "";
96

M. Chardon's avatar
init  
M. Chardon committed
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
    /**
     * Convert a compatible stdClass into an instance of this class.
     * @param stdClass $record
     */
    public function __construct(\stdClass $record = null) {
        if ($record) {
            $intcols = array('endx', 'endy', 'x', 'y');
            foreach ($this as $key => $value) {
                if (isset($record->$key)) {
                    if (in_array($key, $intcols)) {
                        $this->$key = intval($record->$key);
                    } else {
                        $this->$key = $record->$key;
                    }
                }
            }
        }
    }
115

116
117
118
119
120
121
122
123
124
    /**
     * Check if the annotation has a real text which can be printed of displayed
     * If the annotation has a parent, it will be always no : the parent will give the text for all of its children
     * @return boolean
     */
    public function hasReadableComment() {
        return $this->textannot && !$this->parent_annot;
    }

M. Chardon's avatar
init  
M. Chardon committed
125
}