Gitlab CSE Unil

Commit 9192b9f0 authored by M. Chardon's avatar M. Chardon
Browse files

tool6 fin

+ optimisations diverses
parent 786c5007
......@@ -68,6 +68,9 @@ class annotation {
/** @var bool displaylock for displaying this annotation */
public $displaylock = 0;
/** @var bool displayrotation for displaying the sign of the annotation */
public $displayrotation = 0;
/** @var string borderstyle */
public $borderstyle = '';
......
......@@ -93,6 +93,12 @@ class assignfeedback_editpdfplus_renderer extends plugin_renderer_base {
} else {
$iconalt = $fulltool->label;
$iconhtml = $fulltool->label;
if ($fulltool->type == 4) {
$iconhtml = '| ' . $fulltool->label . ' |';
}
if ($fulltool->type == 5) {
$iconhtml = '| ' . $fulltool->label;
}
$datatool = '';
$class = '';
switch ($fulltool->type) {
......
......@@ -41,6 +41,7 @@
<FIELD NAME="studentanswer" TYPE="char" LENGTH="500" NOTNULL="false" SEQUENCE="false"/>
<FIELD NAME="studentstatus" TYPE="char" LENGTH="50" NOTNULL="false" SEQUENCE="false"/>
<FIELD NAME="displaylock" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
<FIELD NAME="displayrotation" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
<FIELD NAME="borderstyle" TYPE="char" LENGTH="20" NOTNULL="false" SEQUENCE="false"/>
<FIELD NAME="parent_annot" TYPE="int" LENGTH="10" NOTNULL="false" SEQUENCE="true"/>
</FIELDS>
......
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16"
height="16"
viewBox="-0.1 -3.1 16 16"
preserveAspectRatio="xMinYMid meet"
overflow="visible"
id="svg2"
version="1.1"
inkscape:version="0.91 r"
sodipodi:docname="twoway_v.svg">
<metadata
id="metadata10">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs8" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1053"
id="namedview6"
showgrid="false"
inkscape:object-paths="false"
inkscape:snap-center="false"
inkscape:snap-object-midpoints="false"
inkscape:snap-midpoints="false"
inkscape:zoom="14.75"
inkscape:cx="-4.8474576"
inkscape:cy="7.8644068"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<path
d="M 6.5194266,12.198246 8.8589111,10.87241 C 9.3510583,10.593498 11.300051,10.039178 10.862876,9.6282312 L 9.3497293,8.2058649 C 11.67127,5.134506 11.700217,4.7532609 9.1398348,0.98571204 L 10.718213,-0.43943935 C 11.08932,-0.77452032 9.7237589,-1.0272404 9.1870129,-1.2058568 L 6.6421811,-2.0527171 C 6.1054353,-2.2313336 5.5853569,-2.0072657 5.5817144,-1.441592 L 5.5504898,3.4075907 C 5.5468473,3.9732644 5.9762303,3.1733774 6.4601291,2.8186353 L 7.2934773,2.2077148 c 2.1395843,2.278883 2.0862088,2.882086 0.00467,5.186439 L 6.5315598,6.8524712 C 6.1232165,6.5639302 5.6165081,5.6316898 5.6207997,6.197359 l 0.040389,5.323694 c 0.3003602,0.39973 0.3660903,0.956104 0.8582375,0.677193 z"
id="path4"
inkscape:connector-curvature="0"
style="fill:#999999"
sodipodi:nodetypes="sssccssssssccsscs" />
</svg>
......@@ -345,23 +345,37 @@ ul.assignfeedback_editpdfplus_menu {
}
/*** add editpdfplus ***/
.highlightplusbutton, .highlightplusbutton:hover{
text-decoration: underline;
}
.framebutton, .framebutton:hover{
text-decoration: underline;
}
.assignfeedback_editpdfplus_hightlightplus,
.assignfeedback_editpdfplus_frame,
.assignfeedback_editpdfplus_verticalline,
.assignfeedback_editpdfplus_stampcomment {
position:absolute;
border:2px solid;
border-width: 2px;
border-style: solid;
border-radius: 10px;
background-color: #FFFEEB;
padding: 0px;
line-height: normal;
}
.assignfeedback_editpdfplus_hightlightplus_cartridge,
.assignfeedback_editpdfplus_frame_cartridge,
.assignfeedback_editpdfplus_verticalline_cartridge,
.assignfeedback_editpdfplus_stampcomment_cartridge {
display:inline;
border-right:2px solid;
border-right-width: 2px;
border-right-style: solid;
padding-left:2px;
padding-right:2px;
padding-top: 0px;
padding-bottom: 0px;
margin:0px;
font-size:10px;
}
.assignfeedback_editpdfplus_hightlightplus_conteneur,
......@@ -369,15 +383,19 @@ ul.assignfeedback_editpdfplus_menu {
.assignfeedback_editpdfplus_verticalline_conteneur,
.assignfeedback_editpdfplus_stampcomment_conteneur {
display:inline;
margin:0px;
margin-right:4px;
padding-top: 0px;
padding-bottom: 0px;
}
.assignfeedback_editpdfplus_hightlightplus_conteneur > button,
.assignfeedback_editpdfplus_frame_conteneur > button,
.assignfeedback_editpdfplus_verticalline_conteneur > button,
.assignfeedback_editpdfplus_stampcomment_conteneur > button {
margin:0;
margin:0px;
margin-left:2px;
padding:0;
height: 20px;
}
.assignfeedback_editpdfplus_hightlightplus_input,
.assignfeedback_editpdfplus_frame_input,
......
......@@ -115,10 +115,12 @@ Y.extend(ANNOTATION, Y.Base, {
divcartridge: '',
textannot: '',
displaylock: 0,
displayrotation: 0,
borderstyle: '',
parent_annot: 0,
parent_annot_element: null,
id: 0,
shape_id: '',
/**
* Initialise the annotation.
*
......@@ -141,6 +143,7 @@ Y.extend(ANNOTATION, Y.Base, {
this.tooltype = config.tooltype;
this.textannot = config.parent_annot_element.textannot;
this.displaylock = config.parent_annot_element.displaylock;
this.displayrotation = config.parent_annot_element.displayrotation;
this.borderstyle = config.parent_annot_element.borderstyle || 'solid';
this.parent_annot = config.parent_annot_element.id;
this.parent_annot_element = config.parent_annot_element;
......@@ -160,6 +163,7 @@ Y.extend(ANNOTATION, Y.Base, {
this.tooltype = config.tooltype;
this.textannot = config.textannot;
this.displaylock = config.displaylock;
this.displayrotation = config.displayrotation;
this.borderstyle = config.borderstyle || 'solid';
this.parent_annot = config.parent_annot;
this.id = config.id;
......@@ -185,6 +189,7 @@ Y.extend(ANNOTATION, Y.Base, {
colour: this.colour,
textannot: this.textannot,
displaylock: parseInt(this.displaylock, 10),
displayrotation: parseInt(this.displayrotation, 10),
borderstyle: this.borderstyle,
parent_annot: this.parent_annot,
divcartridge: this.divcartridge,
......@@ -203,12 +208,73 @@ Y.extend(ANNOTATION, Y.Base, {
colour: this.colour,
textannot: this.textannot,
displaylock: parseInt(this.displaylock, 10),
displayrotation: parseInt(this.displayrotation, 10),
borderstyle: this.borderstyle,
parent_annot: this.parent_annot,
divcartridge: this.divcartridge,
parent_annot_div: ''
};
},
get_color: function () {
var color = ANNOTATIONCOLOUR[this.colour];
if (!color) {
color = this.colour;
} else {
// Add an alpha channel to the rgb colour.
color = color.replace('rgb', 'rgba');
color = color.replace(')', ',0.5)');
}
return color;
},
get_color_cartridge: function () {
var color = ANNOTATIONCOLOUR[this.tooltype.cartridge_color];
if (!color) {
color = this.tooltype.cartridge_color;
} else {
// Add an alpha channel to the rgb colour.
color = color.replace('rgb', 'rgba');
color = color.replace(')', ',0.5)');
}
return color;
},
init_div_cartridge_id: function () {
var date = (new Date().toJSON()).replace(/:/g, '').replace(/\./g, '');
this.divcartridge = 'ct_' + this.tooltype.id + '_' + date;
},
get_div_cartridge: function (colorcartridge) {
var div = "<div ";
div += "id='" + this.divcartridge + "' ";
div += "style='border-color: " + colorcartridge + ";'> ";
div += "</div>";
return Y.Node.create(div);
},
get_div_cartridge_label: function (colorcartridge) {
var divcartridge = "<div ";
divcartridge += "style='border-right-color: " + colorcartridge + ";color:" + colorcartridge + ";'> ";
divcartridge += this.tooltype.cartridge;
divcartridge += "</div>";
return Y.Node.create(divcartridge);
},
apply_visibility_annot: function () {
var divdisplay = this.editor.get_dialogue_element('#' + this.divcartridge + "_display");
var interrupt = this.editor.get_dialogue_element('#' + this.divcartridge + "_onof");
var valref = this.editor.get_dialogue_element('#' + this.divcartridge + "_valref").get('value');
var buttonplus = this.editor.get_dialogue_element('#' + this.divcartridge + "_buttonedit");
if (valref === '') {
divdisplay.setContent('&nbsp;&nbsp;&nbsp;&nbsp');
}
if (interrupt.get('value') === '0') {
if (valref !== '') {
divdisplay.setContent(valref.substr(0, 20));
}
buttonplus.one('img').setAttribute('src', M.util.image_url('t/right', 'core'));
} else {
if (valref !== '') {
divdisplay.setContent(valref);
}
buttonplus.one('img').setAttribute('src', M.util.image_url('t/left', 'core'));
}
},
/**
* Draw a selection around this annotation if it is selected.
* @public
......
......@@ -35,7 +35,6 @@ ANNOTATIONFRAME.NAME = "annotationframe";
ANNOTATIONFRAME.ATTRS = {};
Y.extend(ANNOTATIONFRAME, M.assignfeedback_editpdfplus.annotation, {
shape_id: '',
children: [],
/**
* Draw a highlight annotation
......@@ -186,45 +185,29 @@ Y.extend(ANNOTATIONFRAME, M.assignfeedback_editpdfplus.annotation, {
return this.colour;
},
get_color_cartridge: function () {
var highlightcolour = ANNOTATIONCOLOUR[this.tooltype.cartridge_color];
if (!highlightcolour) {
highlightcolour = this.tooltype.cartridge_color;
} else {
// Add an alpha channel to the rgb colour.
highlightcolour = highlightcolour.replace('rgb', 'rgba');
highlightcolour = highlightcolour.replace(')', ',0.5)');
}
if (highlightcolour === '') {
var color = ANNOTATIONFRAME.superclass.get_color_cartridge.apply(this);
if (color === '') {
return TOOLTYPEDEFAULTCOLOR.FRAMECARTRIDGE;
}
//Y.log('get_color_cartridge : ' + highlightcolour);
return highlightcolour;
return color;
},
draw_catridge: function (edit) {
if (this.parent_annot_element === null && this.parent_annot === 0) {
var offsetcanvas = this.editor.get_dialogue_element(SELECTOR.DRAWINGCANVAS).getXY();
if (this.divcartridge === '') {
var date = (new Date().toJSON()).replace(/:/g, '').replace(/\./g, '');
this.divcartridge = 'ct_' + this.tooltype.id + '_' + date;
this.init_div_cartridge_id();
var drawingregion = this.editor.get_dialogue_element(SELECTOR.DRAWINGREGION);
var cartridge = this.tooltype.cartridge;
//Y.log('draw_catridge : ' + cartridge);
//init cartridge
var colorcartridge = this.get_color();
var div = "<div ";
div += "id='" + this.divcartridge + "' ";
div += "class='assignfeedback_editpdfplus_frame' ";
div += "style='border-color: " + colorcartridge + ";border-style: " + this.borderstyle + "'> ";
div += "</div>";
var divdisplay = Y.Node.create(div);
var divdisplay = this.get_div_cartridge(colorcartridge);
divdisplay.addClass('assignfeedback_editpdfplus_frame');
divdisplay.setStyles({'border-style': this.borderstyle});
// inscription entete
var divcartridge = "<div ";
divcartridge += "id='" + this.divcartridge + "_cartridge' ";
divcartridge += "class='assignfeedback_editpdfplus_frame_cartridge' ";
divcartridge += "style='border-right-color: " + colorcartridge + ";color:" + colorcartridge + ";'> ";
divcartridge += cartridge;
divcartridge += "</div>";
divdisplay.append(Y.Node.create(divcartridge));
var divcartridge = this.get_div_cartridge_label(colorcartridge);
divcartridge.addClass('assignfeedback_editpdfplus_frame_cartridge');
divdisplay.append(divcartridge);
//creation input
var divconteneur = "<div ";
......
......@@ -134,61 +134,32 @@ Y.extend(ANNOTATIONHIGHLIGHTPLUS, M.assignfeedback_editpdfplus.annotation, {
this.y = edit.start.y - 8;
this.endx = bounds.x + bounds.width;
this.endy = edit.start.y + 16 - 8;
//this.colour = edit.annotationcolour;
this.page = '';
return (bounds.has_min_width());
},
get_color: function () {
var highlightcolour = ANNOTATIONCOLOUR[this.colour];
if (!highlightcolour) {
highlightcolour = this.colour;
} else {
// Add an alpha channel to the rgb colour.
highlightcolour = highlightcolour.replace('rgb', 'rgba');
highlightcolour = highlightcolour.replace(')', ',0.5)');
}
//Y.log('get_color : ' + highlightcolour);
return highlightcolour;
},
get_color_cartridge: function () {
var highlightcolour = ANNOTATIONCOLOUR[this.tooltype.cartridge_color];
if (!highlightcolour) {
highlightcolour = this.tooltype.cartridge_color;
} else {
// Add an alpha channel to the rgb colour.
highlightcolour = highlightcolour.replace('rgb', 'rgba');
highlightcolour = highlightcolour.replace(')', ',0.5)');
}
if (highlightcolour === '') {
var color = ANNOTATIONHIGHLIGHTPLUS.superclass.get_color_cartridge.apply(this);
if (color === '') {
return TOOLTYPEDEFAULTCOLOR.HIGHLIGHTPLUSCARTRIDGE;
}
//Y.log('get_color_cartridge : ' + highlightcolour);
return highlightcolour;
return color;
},
draw_catridge: function (edit) {
var offsetcanvas = this.editor.get_dialogue_element(SELECTOR.DRAWINGCANVAS).getXY();
if (this.divcartridge === '') {
var date = (new Date().toJSON()).replace(/:/g, '').replace(/\./g, '');
this.divcartridge = 'ct_' + this.tooltype.id + '_' + date;
this.init_div_cartridge_id();
var drawingregion = this.editor.get_dialogue_element(SELECTOR.DRAWINGREGION);
var cartridge = this.tooltype.cartridge;
//Y.log('draw_catridge : ' + cartridge);
//init cartridge
var colorcartridge = this.get_color_cartridge();
var div = "<div ";
div += "id='" + this.divcartridge + "' ";
div += "class='assignfeedback_editpdfplus_hightlightplus' ";
div += "style='border-color: " + colorcartridge + ";'> ";
div += "</div>";
var divdisplay = Y.Node.create(div);
var divdisplay = this.get_div_cartridge(colorcartridge);
divdisplay.addClass('assignfeedback_editpdfplus_hightlightplus');
// inscription entete
var divcartridge = "<div ";
divcartridge += "class='assignfeedback_editpdfplus_hightlightplus_cartridge' ";
divcartridge += "style='border-right-color: " + colorcartridge + ";color:" + colorcartridge + ";'> ";
divcartridge += cartridge;
divcartridge += "</div>";
divdisplay.append(Y.Node.create(divcartridge));
var divcartridge = this.get_div_cartridge_label(colorcartridge);
divcartridge.addClass('assignfeedback_editpdfplus_hightlightplus_cartridge');
divdisplay.append(divcartridge);
//creation input
var divconteneur = "<div ";
......@@ -322,25 +293,21 @@ Y.extend(ANNOTATIONHIGHLIGHTPLUS, M.assignfeedback_editpdfplus.annotation, {
}
},
apply_visibility_annot: function () {
var divdisplay = this.editor.get_dialogue_element('#' + this.divcartridge + "_display");
var interrupt = this.editor.get_dialogue_element('#' + this.divcartridge + "_onof");
var lockdisplay = this.editor.get_dialogue_element('#' + this.divcartridge + "_lockdisplay");
var valref = this.editor.get_dialogue_element('#' + this.divcartridge + "_valref").get('value');
var buttonplus = this.editor.get_dialogue_element('#' + this.divcartridge + "_buttonedit");
//Y.log('apply_visibility_annot : ' + interrupt.get('value') + ' - ' + valref + ' - ' + lockdisplay.get('value'));
if (lockdisplay.get('value') === '0') {
if (interrupt.get('value') === '0') {
divdisplay.setContent(valref.substr(0, 20));
buttonplus.one('img').setAttribute('src', M.util.image_url('t/right', 'core'));
} else {
divdisplay.setContent(valref);
buttonplus.one('img').setAttribute('src', M.util.image_url('t/left', 'core'));
}
ANNOTATIONHIGHLIGHTPLUS.superclass.apply_visibility_annot.apply(this);
} else {
if (interrupt.get('value') === '0') {
divdisplay.setContent(valref.substr(0, 20));
var divdisplay = this.editor.get_dialogue_element('#' + this.divcartridge + "_display");
var valref = this.editor.get_dialogue_element('#' + this.divcartridge + "_valref").get('value');
if (valref === '') {
divdisplay.setContent('&nbsp;&nbsp;&nbsp;&nbsp');
} else {
divdisplay.setContent(valref);
var interrupt = this.editor.get_dialogue_element('#' + this.divcartridge + "_onof");
if (interrupt.get('value') === '0') {
divdisplay.setContent(valref.substr(0, 20));
} else {
divdisplay.setContent(valref);
}
}
}
},
......
......@@ -46,8 +46,9 @@ Y.extend(ANNOTATIONSTAMPCOMMENT, M.assignfeedback_editpdfplus.annotation, {
node,
position;
this.shape_id = 'ct_frame_' + (new Date().toJSON()).replace(/:/g, '').replace(/\./g, '');
position = this.editor.get_window_coordinates(new M.assignfeedback_editpdfplus.point(this.x, this.y));
node = Y.Node.create('<div/>');
node = Y.Node.create('<div id="' + this.shape_id + '"/>');
node.setStyles({
'position': 'absolute',
'display': 'inline-block',
......@@ -57,6 +58,11 @@ Y.extend(ANNOTATIONSTAMPCOMMENT, M.assignfeedback_editpdfplus.annotation, {
'backgroundSize': '100% 100%',
'zIndex': 50
});
if (this.displayrotation > 0) {
node.setStyles({
'backgroundImage': 'url(' + M.util.image_url('twoway_v', 'assignfeedback_editpdfplus') + ')'
});
}
drawingcanvas.append(node);
node.setX(position.x);
......@@ -118,61 +124,46 @@ Y.extend(ANNOTATIONSTAMPCOMMENT, M.assignfeedback_editpdfplus.annotation, {
var bounds = new M.assignfeedback_editpdfplus.rect();
bounds.bound([edit.start, edit.end]);
if (bounds.width < 40) {
bounds.width = 40;
if (bounds.width < 30) {
bounds.width = 30;
}
if (bounds.height < 40) {
bounds.height = 40;
if (bounds.height < 30) {
bounds.height = 30;
}
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.x = bounds.x - 20;
this.y = bounds.y - 25;
this.endx = bounds.x + bounds.width - 20;
this.endy = bounds.y + bounds.height - 25;
this.colour = edit.annotationcolour;
this.path = edit.stampcomment;
// Min width and height is always more than 40px.
return true;
},get_color_cartridge: function () {
var highlightcolour = ANNOTATIONCOLOUR[this.tooltype.cartridge_color];
if (!highlightcolour) {
highlightcolour = this.tooltype.cartridge_color;
} else {
// Add an alpha channel to the rgb colour.
highlightcolour = highlightcolour.replace('rgb', 'rgba');
highlightcolour = highlightcolour.replace(')', ',0.5)');
}
if (highlightcolour === '') {
},
get_color_cartridge: function () {
var color = ANNOTATIONSTAMPCOMMENT.superclass.get_color_cartridge.apply(this);
if (color === '') {
return TOOLTYPEDEFAULTCOLOR.STAMPCOMMENTCARTRIDGE;
}
//Y.log('get_color_cartridge : ' + highlightcolour);
return highlightcolour;
return color;
},
draw_catridge: function (edit) {
var offsetcanvas = this.editor.get_dialogue_element(SELECTOR.DRAWINGCANVAS).getXY();
if (this.divcartridge === '') {
var date = (new Date().toJSON()).replace(/:/g, '').replace(/\./g, '');
this.divcartridge = 'ct_' + this.tooltype.id + '_' + date;
this.init_div_cartridge_id();
var drawingregion = this.editor.get_dialogue_element(SELECTOR.DRAWINGREGION);
var cartridge = this.tooltype.cartridge;
//Y.log('draw_catridge : ' + cartridge);
//init cartridge
var colorcartridge = this.get_color_cartridge();
var div = "<div ";
div += "id='" + this.divcartridge + "' ";
div += "class='assignfeedback_editpdfplus_stampcomment' ";
div += "style='border-color: " + colorcartridge + ";'> ";
div += "</div>";
var divdisplay = Y.Node.create(div);
var divdisplay = this.get_div_cartridge(colorcartridge);
divdisplay.addClass('assignfeedback_editpdfplus_stampcomment');
// inscription entete
var divcartridge = "<div ";
divcartridge += "class='assignfeedback_editpdfplus_stampcomment_cartridge' ";
divcartridge += "style='border-right-color: " + colorcartridge + ";color:" + colorcartridge + ";'> ";
divcartridge += cartridge;
divcartridge += "</div>";
divdisplay.append(Y.Node.create(divcartridge));
var divcartridge = this.get_div_cartridge_label(colorcartridge);
divcartridge.addClass('assignfeedback_editpdfplus_stampcomment_cartridge');
divdisplay.append(divcartridge);
//creation input
var divconteneur = "<div ";
......@@ -183,10 +174,9 @@ Y.extend(ANNOTATIONSTAMPCOMMENT, M.assignfeedback_editpdfplus.annotation, {
divinput += "id='" + this.divcartridge + "_display' ";
divinput += "class='assignfeedback_editpdfplus_stampcomment_input' ";
divinput += "style='color:" + colorcartridge + ";'> ";
if (this.textannot && this.textannot.length > 0) {
divinput += this.textannot.substr(0, 20);
} else {
divinput += '&nbsp;&nbsp;';
var valref = '';
if (this.textannot && this.textannot.length > 0 && typeof this.textannot === 'string') {
valref = this.textannot;
}
divinput += "</div>";
var onof = 0;
......@@ -194,7 +184,7 @@ Y.extend(ANNOTATIONSTAMPCOMMENT, M.assignfeedback_editpdfplus.annotation, {
onof = 1;
}
var divinputdisplay = Y.Node.create(divinput);
var inputvalref = Y.Node.create("<input type='hidden' id='" + this.divcartridge + "_valref' value=\"" + this.textannot + "\"/>");