diff --git a/frontend-js/src/main/js/map/canvas/Bounds.js b/frontend-js/src/main/js/map/canvas/Bounds.js index 420934ef04559ac0621f526a9628ead0d1535d51..210e7484774d27156809bd26498fa32e75cb9352 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 d0909e07a6543ee3ac053af015b1a3a579059a2e..4386bbdc3fcb6262e00d738d2cf1272b371279a0 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 a6e3e683ac4f481cec3ba7ff367db3b07714b5b1..9072826958fee52f6f272668bc5129b4021a5c8c 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 f63e6a4e48866f855c0c57fa6c2afb236ee63579..0e59cc6345d63fe83570c7ec93eedca6a8ef020c 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 a08b91a1bc1135dc64ce222fb5cf9cd3325a73ca..dac47734f1205f0c26ae156f935e173a0c4f34eb 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 5ba8a1ecf5e55196f4d7f2576ce28ade40c92770..fc4bbd218d7d95cbcd698b150288edfd783c7dba 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 65ce02c6d60db4a8d38c93858d5337d46dc4afea..3bd7cefcf8321dd0fae0bb97672418355c5fdc92 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 9cc2b462f7ed2c68f817b12b5d4b4754862ac67d..01c5986b1cc12422e9e59f9ba77598b8ce87fbc8 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 31951dc59d2b8834188800acdb2489853e7a9666..8ce42ecdcf5c4b3d69c2dcdadbee77f9acce76ec 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 0000000000000000000000000000000000000000..06bf740aa7a49ff9744224c21e88130e9175f9ae --- /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); + }); + +});