From 35de995493f1737a18a1d7f5ddde459505db5a65 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Thu, 3 May 2018 12:47:22 +0200 Subject: [PATCH] JSdoc for canvas --- frontend-js/src/main/js/map/canvas/Bounds.js | 10 ++ .../canvas/GoogleMaps/GoogleMapsApiCanvas.js | 2 +- .../src/main/js/map/canvas/InfoWindow.js | 26 +++- .../src/main/js/map/canvas/MapCanvas.js | 116 +++++++++++++++++- frontend-js/src/main/js/map/canvas/Marker.js | 11 ++ frontend-js/src/main/js/map/canvas/Point.js | 6 + .../src/main/js/map/canvas/Polyline.js | 22 ++++ .../src/main/js/map/canvas/Rectangle.js | 28 ++++- frontend-js/src/test/js/helper.js | 5 + .../src/test/js/map/canvas/MapCanvas-test.js | 36 ++++++ 10 files changed, 256 insertions(+), 6 deletions(-) create mode 100644 frontend-js/src/test/js/map/canvas/MapCanvas-test.js diff --git a/frontend-js/src/main/js/map/canvas/Bounds.js b/frontend-js/src/main/js/map/canvas/Bounds.js index 420934ef04..210e748477 100644 --- a/frontend-js/src/main/js/map/canvas/Bounds.js +++ b/frontend-js/src/main/js/map/canvas/Bounds.js @@ -4,6 +4,12 @@ var logger = require('../../logger'); var Point = require('./Point'); +/** + * + * @param {Point} [p1] + * @param {Point} [p2] + * @constructor + */ function Bounds(p1, p2) { this._topLeft = undefined; this._rightBottom = undefined; @@ -11,6 +17,10 @@ function Bounds(p1, p2) { this.extend(p2); } +/** + * + * @param {Point} [point] + */ Bounds.prototype.extend = function (point) { if (point !== undefined) { if (point instanceof Bounds) { diff --git a/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiCanvas.js b/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiCanvas.js index d0909e07a6..4386bbdc3f 100644 --- a/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiCanvas.js +++ b/frontend-js/src/main/js/map/canvas/GoogleMaps/GoogleMapsApiCanvas.js @@ -193,7 +193,7 @@ GoogleMapsApiCanvas.prototype.latLngToTile = function (latLng, z) { * * @param {Point} options.position * @param {string} options.icon - * @param {string} options.id + * @param {string} [options.id] * @returns {GoogleMapsApiMarker} */ GoogleMapsApiCanvas.prototype.createMarker = function (options) { diff --git a/frontend-js/src/main/js/map/canvas/InfoWindow.js b/frontend-js/src/main/js/map/canvas/InfoWindow.js index a6e3e683ac..9072826958 100644 --- a/frontend-js/src/main/js/map/canvas/InfoWindow.js +++ b/frontend-js/src/main/js/map/canvas/InfoWindow.js @@ -5,6 +5,11 @@ var MapCanvas = require('./MapCanvas'); // noinspection JSUnusedLocalSymbols var logger = require('../../logger'); +/** + * + * @param {MapCanvas} options.map + * @constructor + */ function InfoWindow(options) { this.setMap(options.map); } @@ -17,6 +22,10 @@ InfoWindow.prototype.hide = function () { throw new Error("Not implemented"); }; +/** + * + * @param {MapCanvas} map + */ InfoWindow.prototype.setMap = function (map) { if (!(map instanceof MapCanvas)) { throw new Error("Map must be of MapCanvas class"); @@ -24,14 +33,29 @@ InfoWindow.prototype.setMap = function (map) { this._map = map; }; +/** + * + * @returns {MapCanvas} + */ InfoWindow.prototype.getMap = function () { return this._map; }; +// noinspection JSUnusedLocalSymbols +/** + * + * @param {Marker} marker + */ InfoWindow.prototype.setMarker = function (marker) { throw new Error("Not implemented"); }; -InfoWindow.prototype.setContent= function (content) { + +// noinspection JSUnusedLocalSymbols +/** + * + * @param {HTMLElement|string} content + */ +InfoWindow.prototype.setContent = function (content) { throw new Error("Not implemented"); }; diff --git a/frontend-js/src/main/js/map/canvas/MapCanvas.js b/frontend-js/src/main/js/map/canvas/MapCanvas.js index f63e6a4e48..0e59cc6345 100644 --- a/frontend-js/src/main/js/map/canvas/MapCanvas.js +++ b/frontend-js/src/main/js/map/canvas/MapCanvas.js @@ -7,7 +7,17 @@ var Functions = require('../../Functions'); var ObjectWithListeners = require('../../ObjectWithListeners'); var Point = require('./Point'); - +/** + * + * @param {HTMLElement} element + * @param {Object} options + * @param {number} options.tileSize + * @param {number} options.minZoom + * @param {number} options.height + * @param {number} options.width + * @constructor + * @extends ObjectWithListeners + */ function MapCanvas(element, options) { ObjectWithListeners.call(this); //map canvas listeners @@ -37,53 +47,124 @@ function MapCanvas(element, options) { MapCanvas.prototype = Object.create(ObjectWithListeners.prototype); MapCanvas.prototype.constructor = ObjectWithListeners; +/** + * + * @param {Object} options + * @param {number} options.tileSize + * @param {number} options.minZoom + * @param {number} options.height + * @param {number} options.width + */ MapCanvas.prototype.setOptions = function (options) { this._options = options; }; + +/** + * + * @returns {{tileSize: number, minZoom: number, height: number, width: number}} + */ MapCanvas.prototype.getOptions = function () { return this._options; }; - +/** + * + * @returns {number} + */ MapCanvas.prototype.getTileSize = function () { return this.getOptions().tileSize; }; + +/** + * + * @returns {number} + */ MapCanvas.prototype.getMaxZoom = function () { return this.getOptions().maxZoom; }; + +/** + * + * @returns {number} + */ MapCanvas.prototype.getMinZoom = function () { return this.getOptions().minZoom; }; + +/** + * + * @returns {number} + */ MapCanvas.prototype.getWidth = function () { return this.getOptions().width; }; + +/** + * + * @returns {number} + */ MapCanvas.prototype.getHeight = function () { return this.getOptions().height; }; +// noinspection JSUnusedLocalSymbols +/** + * + * @param {Object} options + * @returns {Marker} + */ MapCanvas.prototype.createMarker = function (options) { throw new Error("Not implemented"); }; +// noinspection JSUnusedLocalSymbols +/** + * + * @param {Object} options + * @returns {InfoWindow} + */ MapCanvas.prototype.createInfoWindow = function (options) { throw new Error("Not implemented"); }; +// noinspection JSUnusedLocalSymbols +/** + * + * @param {Object} options + * @returns {Rectangle} + */ MapCanvas.prototype.createRectangle = function (options) { throw new Error("Not implemented"); }; +// noinspection JSUnusedLocalSymbols +/** + * + * @param {Object} options + * @returns {Polyline} + */ MapCanvas.prototype.createPolyline = function (options) { throw new Error("Not implemented"); }; +// noinspection JSUnusedLocalSymbols +/** + * + * @param {HTMLElement} element + */ MapCanvas.prototype.addLeftBottomControl = function (element) { throw new Error("Not implemented"); }; +// noinspection JSUnusedLocalSymbols +/** + * + * @param {HTMLElement} element + */ MapCanvas.prototype.addRightBottomControl = function (element) { throw new Error("Not implemented"); }; +// noinspection JSUnusedLocalSymbols /** * * @param {Bounds} bounds @@ -92,6 +173,7 @@ MapCanvas.prototype.fitBounds = function (bounds) { throw new Error("Not implemented"); }; +// noinspection JSUnusedLocalSymbols /** * * @param {Point} center @@ -106,12 +188,16 @@ MapCanvas.prototype.setCenter = function (center) { MapCanvas.prototype.getCenter = function () { throw new Error("Not implemented"); }; + /** * @returns {number} */ MapCanvas.prototype.getZoom = function () { throw new Error("Not implemented"); }; + + +// noinspection JSUnusedLocalSymbols /** * * @param {number} zoom @@ -126,11 +212,13 @@ MapCanvas.prototype.setZoom = function (zoom) { MapCanvas.prototype.getBackgroundId = function () { throw new Error("Not implemented"); }; + +// noinspection JSUnusedLocalSymbols /** * * @param {number|string} backgroundId */ -MapCanvas.prototype.setBackgroundId = function (backgroundId) { +MapCanvas.prototype.getBackgroundId = function (backgroundId) { throw new Error("Not implemented"); }; @@ -154,9 +242,16 @@ MapCanvas.prototype.toggleDrawing = function () { } }; +/** + * Turns on drawing library. + */ MapCanvas.prototype.turnOnDrawing = function () { throw new Error("Not implemented"); }; + +/** + * Turns off drawing library. + */ MapCanvas.prototype.turnOffDrawing = function () { throw new Error("Not implemented"); }; @@ -167,10 +262,19 @@ MapCanvas.prototype.isDrawingOn = function () { throw new Error("Not implemented"); }; +// noinspection JSUnusedLocalSymbols +/** + * + * @param {Object} area + */ MapCanvas.prototype.setSelectedArea = function (area) { throw new Error("Not implemented"); }; +/** + * + * @returns {Object} + */ MapCanvas.prototype.getSelectedArea = function () { throw new Error("Not implemented"); }; @@ -179,6 +283,12 @@ MapCanvas.prototype.removeSelection = function () { throw new Error("Not implemented"); }; +// noinspection JSUnusedLocalSymbols +/** + * + * @param {string} type + * @param [data] + */ MapCanvas.prototype.triggerListeners = function (type, data) { throw new Error("Not implemented"); }; diff --git a/frontend-js/src/main/js/map/canvas/Marker.js b/frontend-js/src/main/js/map/canvas/Marker.js index a08b91a1bc..dac47734f1 100644 --- a/frontend-js/src/main/js/map/canvas/Marker.js +++ b/frontend-js/src/main/js/map/canvas/Marker.js @@ -8,6 +8,8 @@ var logger = require('../../logger'); var ObjectWithListeners = require('../../ObjectWithListeners'); /** + * + * @param {MapCanvas} options.map * * @constructor * @augments {ObjectWithListeners} @@ -39,6 +41,7 @@ Marker.prototype.getBounds = function () { throw new Error("Not implemented"); }; +// noinspection JSUnusedLocalSymbols /** * * @param {string} icon @@ -47,6 +50,10 @@ Marker.prototype.setIcon = function (icon) { throw new Error("Not implemented"); }; +/** + * + * @param {MapCanvas} map + */ Marker.prototype.setMap = function (map) { if (!(map instanceof MapCanvas)) { throw new Error("Map must be of MapCanvas class"); @@ -54,6 +61,10 @@ Marker.prototype.setMap = function (map) { this._map = map; }; +/** + * + * @returns {MapCanvas} + */ Marker.prototype.getMap = function () { return this._map; }; diff --git a/frontend-js/src/main/js/map/canvas/Point.js b/frontend-js/src/main/js/map/canvas/Point.js index 5ba8a1ecf5..fc4bbd218d 100644 --- a/frontend-js/src/main/js/map/canvas/Point.js +++ b/frontend-js/src/main/js/map/canvas/Point.js @@ -3,6 +3,12 @@ // noinspection JSUnusedLocalSymbols var logger = require('../../logger'); +/** + * + * @param {number} x + * @param {number} y + * @constructor + */ function Point(x, y) { if (x instanceof Point) { this.x = x.x; diff --git a/frontend-js/src/main/js/map/canvas/Polyline.js b/frontend-js/src/main/js/map/canvas/Polyline.js index 65ce02c6d6..3bd7cefcf8 100644 --- a/frontend-js/src/main/js/map/canvas/Polyline.js +++ b/frontend-js/src/main/js/map/canvas/Polyline.js @@ -6,6 +6,12 @@ var MapCanvas = require('./MapCanvas'); var logger = require('../../logger'); var ObjectWithListeners = require('../../ObjectWithListeners'); +/** + * @param {MapCanvas} options.map + * + * @constructor + * @augments {ObjectWithListeners} + */ function Polyline(options) { ObjectWithListeners.call(this); this.setMap(options.map); @@ -23,14 +29,26 @@ Polyline.prototype.hide = function () { throw new Error("Not implemented"); }; +/** + * @returns {Bounds} + */ Polyline.prototype.getBounds = function () { throw new Error("Not implemented"); }; +// noinspection JSUnusedLocalSymbols +/** + * + * @param {Object} options + */ Polyline.prototype.setOptions = function (options) { throw new Error("Not implemented"); }; +/** + * + * @param {MapCanvas} map + */ Polyline.prototype.setMap = function (map) { if (!(map instanceof MapCanvas) && map !== null) { throw new Error("Map must be of MapCanvas class"); @@ -38,6 +56,10 @@ Polyline.prototype.setMap = function (map) { this._map = map; }; +/** + * + * @returns {MapCanvas} + */ Polyline.prototype.getMap = function () { return this._map; }; diff --git a/frontend-js/src/main/js/map/canvas/Rectangle.js b/frontend-js/src/main/js/map/canvas/Rectangle.js index 9cc2b462f7..01c5986b1c 100644 --- a/frontend-js/src/main/js/map/canvas/Rectangle.js +++ b/frontend-js/src/main/js/map/canvas/Rectangle.js @@ -6,6 +6,13 @@ var MapCanvas = require('./MapCanvas'); var logger = require('../../logger'); var ObjectWithListeners = require('../../ObjectWithListeners'); +/** + * @param {MapCanvas} options.map + * + * @constructor + * @augments {ObjectWithListeners} + */ + function Rectangle(options) { ObjectWithListeners.call(this); this.registerListenerType("click"); @@ -23,18 +30,33 @@ Rectangle.prototype.hide = function () { throw new Error("Not implemented"); }; +/** + * @returns {Bounds} + */ Rectangle.prototype.getBounds = function () { throw new Error("Not implemented"); }; -Rectangle.prototype.setBounds = function () { +/** + * + * @param {Bounds} bounds + */ +Rectangle.prototype.setBounds = function (bounds) { throw new Error("Not implemented"); }; +/** + * + * @param {Object} options + */ Rectangle.prototype.setOptions = function (options) { throw new Error("Not implemented"); }; +/** + * + * @param {MapCanvas} map + */ Rectangle.prototype.setMap = function (map) { if (!(map instanceof MapCanvas) && map !== null) { throw new Error("Map must be of MapCanvas class"); @@ -42,6 +64,10 @@ Rectangle.prototype.setMap = function (map) { this._map = map; }; +/** + * + * @returns {MapCanvas} + */ Rectangle.prototype.getMap = function () { return this._map; }; diff --git a/frontend-js/src/test/js/helper.js b/frontend-js/src/test/js/helper.js index 31951dc59d..8ce42ecdcf 100644 --- a/frontend-js/src/test/js/helper.js +++ b/frontend-js/src/test/js/helper.js @@ -520,6 +520,11 @@ Helper.prototype.createAnnotation = function () { type: "DOI" }); }; + +/** + * + * @returns {GoogleMapsApiCanvas} + */ Helper.prototype.createGoogleCanvas = function () { return new GoogleMapsApiCanvas(testDiv, { center: new Point(0, 0), diff --git a/frontend-js/src/test/js/map/canvas/MapCanvas-test.js b/frontend-js/src/test/js/map/canvas/MapCanvas-test.js new file mode 100644 index 0000000000..06bf740aa7 --- /dev/null +++ b/frontend-js/src/test/js/map/canvas/MapCanvas-test.js @@ -0,0 +1,36 @@ +"use strict"; +require("../../mocha-config"); + +var MapCanvas = require('../../../../main/js/map/canvas/MapCanvas'); + +var chai = require('chai'); +var assert = chai.assert; + +describe('MapCanvas', function () { + it("test existence of abstract methods", function () { + + var canvas = new MapCanvas(testDiv, { + tileSize: 256, + minZoom: 2, + height: 600, + width: 800 + }); + assert.ok(canvas.createMarker); + assert.ok(canvas.createInfoWindow); + assert.ok(canvas.createRectangle); + assert.ok(canvas.createPolyline); + assert.ok(canvas.addLeftBottomControl); + assert.ok(canvas.addRightBottomControl); + assert.ok(canvas.fitBounds); + assert.ok(canvas.setCenter); + assert.ok(canvas.getCenter); + assert.ok(canvas.getZoom); + assert.ok(canvas.getBackgroundId); + assert.ok(canvas.getSelectedArea); + assert.ok(canvas.getBounds); + assert.ok(canvas.setSelectedArea); + assert.ok(canvas.removeSelection); + assert.ok(canvas.triggerListeners); + }); + +}); -- GitLab