"use strict"; require("./mocha-config"); var Alias = require("../../main/js/map/data/Alias"); var AbstractCustomMap = require("../../main/js/map/AbstractCustomMap"); var Comment = require("../../main/js/map/data/Comment"); var CommentDbOverlay = require("../../main/js/map/overlay/CommentDbOverlay"); var CustomMap = require("../../main/js/map/CustomMap"); var CustomMapOptions = require("../../main/js/map/CustomMapOptions"); var IdentifiedElement = require("../../main/js/map/data/IdentifiedElement"); var LayoutAlias = require("../../main/js/map/data/LayoutAlias"); var LayoutData = require("../../main/js/map/data/LayoutData"); var LayoutReaction = require("../../main/js/map/data/LayoutReaction"); var Model = require("../../main/js/map/data/MapModel"); var OverlayCollection = require("../../main/js/map/overlay/OverlayCollection"); var Project = require("../../main/js/map/data/Project"); var Reaction = require("../../main/js/map/data/Reaction"); var SearchDbOverlay = require("../../main/js/map/overlay/SearchDbOverlay"); function Helper() { this.idCounter = 1000000; } Helper.prototype.createCommentDbOverlay = function(map) { var result = new CommentDbOverlay({ map : map, name : "comment", allowGeneralSearch : true }); return result; }; Helper.prototype.createSearchDbOverlay = function(map) { var result = new SearchDbOverlay({ map : map, name : "search", }); return result; }; Helper.prototype.createDrugDbOverlay = function(map) { var result = this.createDbOverlay(map); result.setName('drug'); result.setAllowGeneralSearch(true); result.setAllowSearchById(true); return result; }; Helper.prototype.createComment = function(element) { var elementType = "ALIAS"; var elementId = this.idCounter++; var id = this.idCounter++; var modelId = this.idCounter++; if (element !== undefined) { if (element instanceof Alias) { elementType = "ALIAS"; elementId = element.getId(); modelId = element.getModelId(); } else { throw new Error("Unknown element type: " + element); } } var result = new Comment({ elementId : elementId, type : elementType, modelId : modelId, icon : "icons/comment.png", id : id, pinned : true, coord : { x : 321.5, y : 289.0 }, removed : false, title : "title fo comment: " + id, content : "content of the comment # " + id }); return result; }; Helper.prototype.createDbOverlay = function(map) { var result = new OverlayCollection({ map : map, name : "overlay name: " + (this.idCounter++), allowGeneralSearch : true }); return result; }; Helper.prototype.createProject = function() { var result = new Project(); result.setProjectId("testId"); result.setId(this.idCounter++); result.setModel(this.createModel()); return result; }; Helper.prototype.createAlias = function(map) { var mapId; if (map === undefined) { mapId = this.idCounter++; } else { mapId = map.getId(); } var result = new Alias({ idObject : this.idCounter++, name : "Test element", type : "RNA", modelId : mapId, bounds : { x : 10.0, y : 20.0, width : 30.0, height : 40.0, }, }); if (map !== undefined) { map.getModel().addAlias(result); } return result; }; Helper.prototype.createLayoutAlias = function(alias) { var id; if (alias instanceof Alias) { id = alias.getId(); } else { id = this.idCounter++; } var result = new LayoutAlias({ idObject : id, value : 0.2, color : { a : 23 }, geneVariations : [ {} ] }); return result; }; Helper.prototype.createLayoutReaction = function(reaction) { var reactionId; if (reaction instanceof Reaction) { reactionId = reaction.getId(); } else { reactionId = this.idCounter++; } var result = new LayoutReaction({ idObject : reactionId, width : 3.4, color : { a : 24, }, reverse : true }); return result; }; Helper.prototype.createIdentifiedElement = function(element) { if (element === undefined) { return new IdentifiedElement({ type : "ALIAS", idObject : this.idCounter++, modelId : this.idCounter++, }); } return new IdentifiedElement(element); }; Helper.prototype.createReaction = function(map) { var mapId = null; if (map !== undefined) { mapId = map.getId(); } else { mapId = this.idCounter++; } var result = new Reaction({ idObject : this.idCounter++, lines : [ { start : { x : 434.8904109589041, y : 85.0 }, end : { x : 410.8341500923087, y : 104.95576185524392 }, type : "START" }, { start : { x : 404.6769250286157, y : 110.06345991944379 }, end : { x : 380.62066416202026, y : 130.0192217746877 }, type : "END" } ], centerPoint : new google.maps.Point(0, 0), modelId : mapId, }); return result; }; Helper.prototype.createOptions = function() { var map = this.createGoogleMap(); var project = this.createProject(); var options = { map : map, project : project, dataCollections : [ { name : "testCollection" + this.idCounter++, } ], }; return options; }; Helper.prototype.createModel = function() { var result = new Model(); result.setId(this.idCounter++); result.setTileSize(256); result.setWidth(26547.3333333333); result.setHeight(800); result.setMaxZoom(8); result.setMinZoom(2); var layout = this.createLayout(); result.addLayout(layout); return result; }; Helper.prototype.createLayout = function() { var id = this.idCounter++; var layout = new LayoutData({ idObject : id, name : "testLayout" + id, }); return layout; }; Helper.prototype.createGoogleMap = function() { var result = new google.maps.Map(testDiv, { center : { lat : -34.397, lng : 150.644 }, scrollwheel : false, zoom : 8 }); return result; }; Helper.prototype.createCustomMapOptions = function() { var project = this.createProject(); var map = this.createGoogleMap(); var result = new CustomMapOptions({ markerOptimization : true, project : project, map : map }); return result; }; Helper.prototype.createAbstractCustomMap = function() { var options = this.createCustomMapOptions(); var result = new AbstractCustomMap(options.getProject().getModel(), options); return result; }; Helper.prototype.createCustomMap = function() { var options = this.createCustomMapOptions(); var result = new CustomMap(options); return result; }; module.exports = Helper;