From 45a0d74c25a6020a759d62b7db1b76ede4f1ae77 Mon Sep 17 00:00:00 2001 From: Mikael Salson Date: Wed, 11 Apr 2018 10:16:11 +0200 Subject: [PATCH] model.js: Clone unselection Method for unselecting (requires to update the list containin selection in order). Unit test it and also checks that selected sequences appear in the segmenter. --- browser/js/model.js | 20 +++++++++++++++++++ browser/test/QUnit/testFiles/model_test.js | 4 ++++ .../test/QUnit/testFiles/segmenter_test.js | 7 +++++++ 3 files changed, 31 insertions(+) diff --git a/browser/js/model.js b/browser/js/model.js index b64ff8460..2b4fc0264 100644 --- a/browser/js/model.js +++ b/browser/js/model.js @@ -816,6 +816,26 @@ changeAlleleNotation: function(alleleNotation) { } }, + /** + * Unselect an isolated clone + * @param {integer} - cloneID - index of the clone to remove from the selection + */ + unselect: function(cloneID) { + console.log("unselect() (clone " + cloneID + ")"); + if (this.clones[cloneID].isVirtual()) { + return 0; + } + + if (this.clone(cloneID).isSelected()) { + var index = this.orderedSelectedClones.indexOf(cloneID); + if (index > -1) + this.orderedSelectedClones.splice(index, 1); + this.clone(cloneID).select = false; + this.updateElemStyle([cloneID]); + } + console.log("orderedSelectedClones: " + this.orderedSelectedClones.join(",")); + }, + toggleSelect: function(cloneID) { console.log("toggle() (clone " + cloneID + ")"); diff --git a/browser/test/QUnit/testFiles/model_test.js b/browser/test/QUnit/testFiles/model_test.js index a7abab712..72bb7df07 100644 --- a/browser/test/QUnit/testFiles/model_test.js +++ b/browser/test/QUnit/testFiles/model_test.js @@ -149,6 +149,10 @@ QUnit.test("select/focus", function(assert) { assert.deepEqual(m.getSelected(), [], "unselect all"); m.multiSelect([0,2,3]) assert.deepEqual(m.getSelected(), [0,2,3], "multi-select"); + m.unselect(2); + assert.deepEqual(m.getSelected(), [0, 3], "unselect"); + m.unselect(5); + assert.deepEqual(m.getSelected(), [0, 3], "unselect"); m.unselectAll() assert.equal(m.findWindow("aaaaaaaaaaaid1aaaaaaa"), 0, "findWindow : Ok") assert.equal(m.findWindow("aaaaaaaaaaaplopaaaaaaa"), -1, "findWindow : Ok") diff --git a/browser/test/QUnit/testFiles/segmenter_test.js b/browser/test/QUnit/testFiles/segmenter_test.js index 061cadc36..e7ddd594c 100644 --- a/browser/test/QUnit/testFiles/segmenter_test.js +++ b/browser/test/QUnit/testFiles/segmenter_test.js @@ -30,6 +30,13 @@ QUnit.test("segmenter", function(assert) { assert.equal(document.getElementById("f0"), null, "unselect : Ok") assert.equal(document.getElementById("f1"), null, "unselect : Ok") assert.equal(document.getElementById("f2"), null, "unselect : Ok") + + m.select(0); + m.select(2); + m.unselect(2); + assert.notEqual(div0.innerHTML.indexOf("test1"), -1, "select : Ok") + assert.equal(document.getElementById("f2"), null, "unselect : Ok") + m.unselectAll(); // assert.deepEqual(segment.findPotentialField(), ["","cdr3","fr1", "5", "id", "f1", "V-REGION","J-REGION","D-REGION","CDR3-IMGT"], "potentialField : Ok") -- GitLab