35 lines
814 B
JavaScript
35 lines
814 B
JavaScript
|
'use strict';
|
||
|
|
||
|
const events = require('../events.js');
|
||
|
const Point = require('./point.js');
|
||
|
const PointList = require('./point_list.js');
|
||
|
|
||
|
class Note extends events.EventTarget {
|
||
|
constructor() {
|
||
|
super();
|
||
|
this._text = '…';
|
||
|
this._polygon = new PointList();
|
||
|
}
|
||
|
|
||
|
get text() { return this._text; }
|
||
|
get polygon() { return this._polygon; }
|
||
|
|
||
|
set text(value) { this._text = value; }
|
||
|
|
||
|
static fromResponse(response) {
|
||
|
const note = new Note();
|
||
|
note._updateFromResponse(response);
|
||
|
return note;
|
||
|
}
|
||
|
|
||
|
_updateFromResponse(response) {
|
||
|
this._text = response.text;
|
||
|
this._polygon.clear();
|
||
|
for (let point of response.polygon) {
|
||
|
this._polygon.add(new Point(point[0], point[1]));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = Note;
|