diff --git a/browser/js/model.js b/browser/js/model.js index b64ff84600448865a16cf7b1e23083716559e91b..2b4fc0264002ff92002e42a757e7cf23be3db016 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 a7abab7125354781a2fdf9c608953d97cc7a3b90..72bb7df0749197bbaa8470e6f2f48645851e68b3 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 061cadc36dafa8d85132ba036e5a2a4a675a56de..e7ddd594c9cc6813a3598e76d40137edb81b75a1 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")