diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/KeggAnnotator.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/KeggAnnotator.java index 4f4238e70c7c1524f6df4c04a2cbfa040bbf533e..2097537be826e16e5138bbe13c2b96680a230580 100644 --- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/KeggAnnotator.java +++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/annotators/KeggAnnotator.java @@ -78,7 +78,7 @@ public class KeggAnnotator extends ElementAnnotator implements IExternalService String.class, "Space-delimited list of organisms codes for which homologous genes" + " (GENE section in the KEGG enzyme record) should be imported." - + " Currently ATH (Arabidopsis Thaliana) is supported."); + + " Currently only ATH (Arabidopsis Thaliana) is supported."); this.addParameterDefinition(paramDef); } @@ -230,7 +230,6 @@ public class KeggAnnotator extends ElementAnnotator implements IExternalService String[] tairCodes = m.group(1).trim().split(" "); for (String tairCode: tairCodes) { tairCode = tairCode.split("\\(")[0]; //some codes are in the form AT1G08510(FATB) - logger.debug("Adding tair code " + tairCode); result.add(createMiriamData(MiriamType.TAIR_LOCUS, tairCode)); } } diff --git a/frontend-js/src/main/js/gui/admin/ChooseAnnotatorsDialog.js b/frontend-js/src/main/js/gui/admin/ChooseAnnotatorsDialog.js index 55befeaa794a10c67984438b52207ca09a55d247..9c4e8b9c567f247bcf94d679a51ea72c690ca701 100644 --- a/frontend-js/src/main/js/gui/admin/ChooseAnnotatorsDialog.js +++ b/frontend-js/src/main/js/gui/admin/ChooseAnnotatorsDialog.js @@ -56,7 +56,7 @@ ChooseAnnotatorsDialog.prototype.createGui = function () { }; function onChangeParameterValue(element, user){ - var name = $(element).siblings(".minerva-annotator-param-name").text(); + var name = $(element).siblings(".minerva-annotator-param-name")[0].childNodes[0].nodeValue; var annotatorClassName = $(element).parent().parent().attr('name'); var data = new UserPreferences(); @@ -82,8 +82,7 @@ ChooseAnnotatorsDialog.prototype.setElementType = function (elementType) { var element = $("[name='annotatorListBox']", self.getElement())[0]; var annotatorsParams = $(".minerva-annotators-params", self.getElement())[0]; Functions.removeChildren(element); - Functions.removeChildren(annotatorsParams); - + var selectElement = Functions.createElement({ type: "select", className: "minerva-multi-select" @@ -92,8 +91,6 @@ ChooseAnnotatorsDialog.prototype.setElementType = function (elementType) { var annotators = configuration.getElementAnnotators(elementType); var selectedAnnotators = user.getPreferences().getElementAnnotators(elementType.className); - var existingAnnotatorsParameters = user.getPreferences().getAnnotatorsParameters(); - for (var i = 0; i < annotators.length; i++) { var annotator = annotators[i]; @@ -101,95 +98,110 @@ ChooseAnnotatorsDialog.prototype.setElementType = function (elementType) { for (var j = 0; j < selectedAnnotators.length; j++) { if (annotator.getName() === selectedAnnotators[j]) { selected = true; - - var paramsDefs = annotator.getParametersDefinitions(); - if (paramsDefs.length > 0) { + } + } + var option = new Option(); + option.value = annotator.getClassName(); + option.attributes.selected = selected; + option.innerHTML = "<div>" + annotator.getName() + "</div>"; + selectElement.appendChild(option); + }; + + function createAnnotatorsParams(){ + var existingAnnotatorsParameters = user.getPreferences().getAnnotatorsParameters(); + + Functions.removeChildren(annotatorsParams); + for (var i = 0; i < annotators.length; i++) { + var annotator = annotators[i]; + for (var j = 0; j < selectedAnnotators.length; j++) { + if (annotator.getName() === selectedAnnotators[j]) { - annotatorsParams.appendChild(Functions.createElement({ - type: "div", - className: "minerva-annotators-params-header", - content: '<div>Available parameters</div>' - })) - - var annotatorParams = Functions.createElement({ - type: "div", - className: "minerva-annotator-params", - name: annotator.getClassName() - }); + var paramsDefs = annotator.getParametersDefinitions(); + if (paramsDefs.length > 0) { + + annotatorsParams.appendChild(Functions.createElement({ + type: "div", + className: "minerva-annotators-params-header", + content: '<div>Available parameters</div>' + })) - annotatorParams.appendChild(Functions.createElement({ - type: "div", - className: "minerva-annotator-params-header", - content: annotator.getName() - })); - - for (var k = 0; k < paramsDefs.length; k++) { - var param = paramsDefs[k]; - var paramElement = Functions.createElement({ + var annotatorParams = Functions.createElement({ type: "div", - className: "minerva-annotator-param" - }); - - var paramName = Functions.createElement({ - type: "div", - className: "minerva-annotator-param-name", - content: param.name - }); - - var toolTip = Functions.createElement({ - type: "span", - className: "annotator-tooltip", - content: param.description + className: "minerva-annotator-params", + name: annotator.getClassName() }); - - paramName.appendChild(toolTip) - paramElement.appendChild(paramName); - - var paramValue; - - var existingParamValue; - if (existingAnnotatorsParameters[annotator.getClassName()]) { - existingParamValue = existingAnnotatorsParameters[annotator.getClassName()][param.name] - } - - if (param.type.indexOf("String") >= 0) { - paramValue = Functions.createElement({ - type: "textarea", - onchange: function(){return onChangeParameterValue(this, user);} + + annotatorParams.appendChild(Functions.createElement({ + type: "div", + className: "minerva-annotator-params-header", + content: annotator.getName() + })); + + for (var k = 0; k < paramsDefs.length; k++) { + var param = paramsDefs[k]; + var paramElement = Functions.createElement({ + type: "div", + className: "minerva-annotator-param" }); - if (existingParamValue) paramValue.value = existingParamValue; - } else if (param.type.indexOf("Integer") >= 0) { - paramValue = Functions.createElement({ - type: "input", - inputType: "number", - onchange: function(){return onChangeParameterValue(this, user);} + + var paramName = Functions.createElement({ + type: "div", + className: "minerva-annotator-param-name", + content: param.name }); - if (existingParamValue) paramValue.value = existingParamValue; - } else if (param.type.indexOf("Boolean") >= 0) { - paramValue = Functions.createElement({ - type: "input", - inputType: "checkbox", - onchange: function(){return onChangeParameterValue(this, user);} + + var toolTip = Functions.createElement({ + type: "span", + className: "annotator-tooltip", + content: param.description }); - paramValue.checked = (existingParamValue && existingParamValue === 'true'); - } else { - throw new InvalidAlgorithmError("Unknown annotator parameter type"); - } - - paramElement.appendChild(paramValue); - annotatorParams.appendChild(paramElement); + + paramName.appendChild(toolTip) + paramElement.appendChild(paramName); + + var paramValue; + + var existingParamValue; + if (existingAnnotatorsParameters[annotator.getClassName()]) { + existingParamValue = existingAnnotatorsParameters[annotator.getClassName()][param.name] + } + + if (param.type.indexOf("String") >= 0) { + paramValue = Functions.createElement({ + type: "textarea", + onchange: function(){return onChangeParameterValue(this, user);} + }); + if (existingParamValue) paramValue.value = existingParamValue; + } else if (param.type.indexOf("Integer") >= 0) { + paramValue = Functions.createElement({ + type: "input", + inputType: "number", + onchange: function(){return onChangeParameterValue(this, user);} + }); + if (existingParamValue) paramValue.value = existingParamValue; + } else if (param.type.indexOf("Boolean") >= 0) { + paramValue = Functions.createElement({ + type: "input", + inputType: "checkbox", + onchange: function(){return onChangeParameterValue(this, user);} + }); + paramValue.checked = (existingParamValue && existingParamValue === 'true'); + } else { + throw new InvalidAlgorithmError("Unknown annotator parameter type"); + } + + paramElement.appendChild(paramValue); + annotatorParams.appendChild(paramElement); + } + + annotatorsParams.appendChild(annotatorParams); } + } + } + }; - annotatorsParams.appendChild(annotatorParams); - } - } - } - var option = new Option(); - option.value = annotator.getClassName(); - option.attributes.selected = selected; - option.innerHTML = "<div>" + annotator.getName() + "</div>"; - selectElement.appendChild(option); - }; + } + createAnnotatorsParams(); element.appendChild(selectElement); new DualListbox(selectElement, { @@ -203,6 +215,8 @@ ChooseAnnotatorsDialog.prototype.setElementType = function (elementType) { } selectedAnnotators.push(annotator.getName()); + createAnnotatorsParams(); + var data = new UserPreferences(); var elementAnnotators = {}; @@ -223,6 +237,8 @@ ChooseAnnotatorsDialog.prototype.setElementType = function (elementType) { selectedAnnotators.splice(index, 1); } + createAnnotatorsParams(); + var data = new UserPreferences(); var elementAnnotators = {};