JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / jalview / commands / RemoveGapsCommand.js
1 Clazz.declarePackage ("jalview.commands");\r
2 Clazz.load (["jalview.commands.EditCommand"], "jalview.commands.RemoveGapsCommand", ["jalview.util.Comparison"], function () {\r
3 c$ = Clazz.declareType (jalview.commands, "RemoveGapsCommand", jalview.commands.EditCommand);\r
4 Clazz.makeConstructor (c$, \r
5 function (description, seqs, al) {\r
6 Clazz.superConstructor (this, jalview.commands.RemoveGapsCommand, []);\r
7 this.description = description;\r
8 var width = 0;\r
9 for (var i = 0; i < seqs.length; i++) {\r
10 if (seqs[i].getLength () > width) {\r
11 width = seqs[i].getLength ();\r
12 }}\r
13 this.findGaps (seqs, 0, width, al);\r
14 }, "~S,~A,jalview.datamodel.AlignmentI");\r
15 Clazz.makeConstructor (c$, \r
16 function (description, seqs, start, end, al) {\r
17 Clazz.superConstructor (this, jalview.commands.RemoveGapsCommand, []);\r
18 this.description = description;\r
19 this.findGaps (seqs, start, end, al);\r
20 }, "~S,~A,~N,~N,jalview.datamodel.AlignmentI");\r
21 Clazz.defineMethod (c$, "findGaps", \r
22 function (seqs, start, end, al) {\r
23 var startCol = -1;\r
24 var endCol = -1;\r
25 var deletedCols = 0;\r
26 var j;\r
27 var jSize;\r
28 this.clearEdits ();\r
29 var $delete = true;\r
30 var sequence;\r
31 for (var s = 0; s < seqs.length; s++) {\r
32 deletedCols = 0;\r
33 startCol = -1;\r
34 endCol = -1;\r
35 sequence = seqs[s].getSequence (start, end + 1);\r
36 jSize = sequence.length;\r
37 for (j = 0; j < jSize; j++) {\r
38 $delete = true;\r
39 if (!jalview.util.Comparison.isGap (sequence[j])) {\r
40 if ($delete) {\r
41 endCol = j;\r
42 }$delete = false;\r
43 }if ($delete && startCol == -1) {\r
44 startCol = j;\r
45 }if (!$delete && startCol > -1) {\r
46 this.appendEdit (jalview.commands.EditCommand.Action.DELETE_GAP,  Clazz.newArray (-1, [seqs[s]]), start + startCol - deletedCols, endCol - startCol, al, false, null);\r
47 deletedCols += (endCol - startCol);\r
48 startCol = -1;\r
49 endCol = -1;\r
50 }}\r
51 if ($delete && startCol > -1) {\r
52 this.appendEdit (jalview.commands.EditCommand.Action.DELETE_GAP,  Clazz.newArray (-1, [seqs[s]]), start + startCol - deletedCols, jSize - startCol, al, false, null);\r
53 }}\r
54 this.performEdit (0, null);\r
55 }, "~A,~N,~N,jalview.datamodel.AlignmentI");\r
56 });\r