From 8ed3c5c28fa8d8304c6ea442d2f24733728486c2 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Thu, 14 Jun 2018 16:46:53 +0200 Subject: [PATCH] info about element in search panel contains compartment name --- .../src/main/js/gui/leftPanel/GuiUtils.js | 45 ++++++++++++------- frontend-js/src/main/js/map/data/Alias.js | 2 +- .../src/main/js/map/data/Annotation.js | 6 +-- .../main/js/map/data/SearchBioEntityGroup.js | 4 ++ .../test/js/gui/leftPanel/GuiUtils-test.js | 38 ++++++++++------ 5 files changed, 61 insertions(+), 34 deletions(-) diff --git a/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js b/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js index c1e7b40b0e..f2743da842 100644 --- a/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js +++ b/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js @@ -4,6 +4,7 @@ var Alias = require('../../map/data/Alias'); var ConfigurationType = require('../../ConfigurationType'); +var IdentifiedElement = require('../../map/data/IdentifiedElement'); var GuiConnector = require('../../GuiConnector'); var AbstractGuiElement = require('../AbstractGuiElement'); @@ -120,11 +121,7 @@ GuiUtils.prototype.createNewLine = function (count) { GuiUtils.prototype.createLink = function (url, name) { if (url === null || url === undefined) { logger.warn("URL not defined for: \"" + name + "\" link"); - return Functions.createElement( - { - type: "span", - content: name - }); + return Functions.createElement({type: "span", content: name}); } var link = document.createElement("a"); link.href = url; @@ -608,19 +605,33 @@ GuiUtils.prototype.createAliasElement = function (params) { div.appendChild(self.createNewLine(3)); } - div.appendChild(self.createParamLine("Full name: ", alias.getFullName())); - div.appendChild(self.createParamLine("Symbol: ", alias.getSymbol())); - div.appendChild(self.createParamLine("Abbreviation: ", alias.getAbbreviation())); - div.appendChild(self.createParamLine("Formula: ", alias.getFormula())); - div.appendChild(self.createArrayParamLine("Former symbols: ", alias.getFormerSymbols())); - div.appendChild(self.createPostTranslationalModifications("PostTranslational modifications: ", alias - .getOther('modifications'))); - div.appendChild(self.createParamLine("Charge: ", alias.getCharge())); - div.appendChild(self.createArrayParamLine("Synonyms: ", alias.getSynonyms())); - div.appendChild(self.createLabelText(alias.getDescription())); - div.appendChild(self.createAnnotations("Annotations: ", alias.getReferences())); + var promise = Promise.resolve(); + if (alias.getCompartmentId() !== undefined) { + promise = self.getMap().getModel().getByIdentifiedElement(new IdentifiedElement({ + type: "ALIAS", + id: alias.getCompartmentId(), + modelId: alias.getModelId() + }), true).then(function (compartment) { + div.appendChild(self.createParamLine("Compartment: ", compartment.getName())); + }) + } - return Promise.resolve(div); + return promise.then(function () { + + div.appendChild(self.createParamLine("Full name: ", alias.getFullName())); + div.appendChild(self.createParamLine("Symbol: ", alias.getSymbol())); + div.appendChild(self.createParamLine("Abbreviation: ", alias.getAbbreviation())); + div.appendChild(self.createParamLine("Formula: ", alias.getFormula())); + div.appendChild(self.createArrayParamLine("Former symbols: ", alias.getFormerSymbols())); + div.appendChild(self.createPostTranslationalModifications("PostTranslational modifications: ", alias + .getOther('modifications'))); + div.appendChild(self.createParamLine("Charge: ", alias.getCharge())); + div.appendChild(self.createArrayParamLine("Synonyms: ", alias.getSynonyms())); + div.appendChild(self.createLabelText(alias.getDescription())); + div.appendChild(self.createAnnotations("Annotations: ", alias.getReferences())); + + return div; + }) }; /** diff --git a/frontend-js/src/main/js/map/data/Alias.js b/frontend-js/src/main/js/map/data/Alias.js index c1207a7045..ad5aa080b4 100644 --- a/frontend-js/src/main/js/map/data/Alias.js +++ b/frontend-js/src/main/js/map/data/Alias.js @@ -341,7 +341,7 @@ Alias.prototype.setFullName = function (fullName) { /** * - * @returns {number} + * @returns {number|undefined} */ Alias.prototype.getCompartmentId = function () { return this._compartmentId; diff --git a/frontend-js/src/main/js/map/data/Annotation.js b/frontend-js/src/main/js/map/data/Annotation.js index 748eff9244..7b6f82bef9 100644 --- a/frontend-js/src/main/js/map/data/Annotation.js +++ b/frontend-js/src/main/js/map/data/Annotation.js @@ -11,10 +11,10 @@ var logger = require('../../logger'); * @typedef {Object} AnnotationOptions * @property {string} link * @property {number} id - * @property {Article|ArticleOptions} article + * @property {Article|ArticleOptions} [article] * @property {string} type * @property {string} resource - * @property {string} annotatorClassName + * @property {string} [annotatorClassName] */ /** @@ -140,7 +140,7 @@ Annotation.prototype.setAnnotatorClassName = function (annotatorClassName) { /** * - * @returns {string} + * @returns {string|undefined} */ Annotation.prototype.getAnnotatorClassName = function () { return this._annotatorClassName; diff --git a/frontend-js/src/main/js/map/data/SearchBioEntityGroup.js b/frontend-js/src/main/js/map/data/SearchBioEntityGroup.js index c3e5f57379..16e07a3fe3 100644 --- a/frontend-js/src/main/js/map/data/SearchBioEntityGroup.js +++ b/frontend-js/src/main/js/map/data/SearchBioEntityGroup.js @@ -113,6 +113,10 @@ SearchBioEntityGroup.prototype.getModelId = function () { return this._bioEntites[0].getModelId(); }; +SearchBioEntityGroup.prototype.getCompartmentId = function () { + return this._bioEntites[0].getCompartmentId(); +}; + SearchBioEntityGroup.prototype.getReactants = function () { return this._bioEntites[0].getReactants(); }; diff --git a/frontend-js/src/test/js/gui/leftPanel/GuiUtils-test.js b/frontend-js/src/test/js/gui/leftPanel/GuiUtils-test.js index ab51bc5f82..ff5e92fd78 100644 --- a/frontend-js/src/test/js/gui/leftPanel/GuiUtils-test.js +++ b/frontend-js/src/test/js/gui/leftPanel/GuiUtils-test.js @@ -23,7 +23,7 @@ describe('GuiUtils', function () { var map = helper.createCustomMap(); helper.createSearchDbOverlay(map); - new GuiUtils(); + new GuiUtils(helper.getConfiguration()); assert.equal(logger.getWarnings().length, 0); }); @@ -64,8 +64,7 @@ describe('GuiUtils', function () { it('createLabelText for undefined', function () { var map = helper.createCustomMap(); - var guiUtils = new GuiUtils(); - guiUtils.setMap(map); + var guiUtils = createGuiUtils(map); var res = guiUtils.createLabelText(); assert.notOk(res.innerHTML); @@ -74,8 +73,7 @@ describe('GuiUtils', function () { it('createSubMapLink', function () { var map = helper.createCustomMap(); - var guiUtils = new GuiUtils(); - guiUtils.setMap(map); + var guiUtils = createGuiUtils(map); var res = guiUtils.createSubMapLink("TEST", map.getId()); assert.ok(res.innerHTML); @@ -127,8 +125,7 @@ describe('GuiUtils', function () { var map = helper.createCustomMap(); helper.createSearchDbOverlay(map); - var guiUtils = new GuiUtils(); - guiUtils.setMap(map); + var guiUtils = createGuiUtils(map); var alias = helper.createAlias(map); alias.setFullName("xxx"); @@ -137,12 +134,27 @@ describe('GuiUtils', function () { }); }); + it('compartment visible', function () { + var map = helper.createCustomMap(); + helper.createSearchDbOverlay(map); + + var guiUtils = createGuiUtils(map); + var alias = helper.createAlias(map); + var compartment = helper.createAlias(map); + alias.setCompartmentId(compartment.getId()); + + compartment.setName("compartment_name"); + return guiUtils.createAliasElement({alias: alias}).then(function (div) { + assert.ok(div.innerHTML.indexOf("compartment_name") >= 0); + }); + }); + + it('full name in desc invisible', function () { var map = helper.createCustomMap(); helper.createSearchDbOverlay(map); - var guiUtils = new GuiUtils(); - guiUtils.setMap(map); + var guiUtils = createGuiUtils(map); var alias = helper.createAlias(map); alias.setFullName(""); @@ -155,8 +167,7 @@ describe('GuiUtils', function () { var map = helper.createCustomMap(); helper.createSearchDbOverlay(map); - var guiUtils = new GuiUtils(); - guiUtils.setMap(map); + var guiUtils = createGuiUtils(map); var alias = helper.createAlias(map); alias.setFullName("xxx"); @@ -173,14 +184,15 @@ describe('GuiUtils', function () { describe('createLink', function () { it('normal', function () { - var guiUtils = new GuiUtils(); + var guiUtils = createGuiUtils(); var link = guiUtils.createLink("http://www.minerva.uni.lu", "PD map"); assert.ok(link); assert.equal(0, logger.getWarnings().length); }); it('with null link', function () { - var guiUtils = new GuiUtils(); + var guiUtils = createGuiUtils(); + // noinspection JSCheckFunctionSignatures var link = guiUtils.createLink(null, "PD map"); assert.ok(link); assert.ok(logger.getWarnings().length > 0); -- GitLab