JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / jalview / commands / SlideSequencesCommand.js
1 Clazz.declarePackage ("jalview.commands");\r
2 Clazz.load (["jalview.commands.EditCommand"], "jalview.commands.SlideSequencesCommand", ["jalview.util.Comparison"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.gapsInsertedBegin = false;\r
5 Clazz.instantialize (this, arguments);\r
6 }, jalview.commands, "SlideSequencesCommand", jalview.commands.EditCommand);\r
7 Clazz.makeConstructor (c$, \r
8 function (description, seqsLeft, seqsRight, slideSize, gapChar) {\r
9 Clazz.superConstructor (this, jalview.commands.SlideSequencesCommand, []);\r
10 this.description = description;\r
11 var lSize = seqsLeft.length;\r
12 this.gapsInsertedBegin = false;\r
13 var i;\r
14 var j;\r
15 for (i = 0; i < lSize; i++) {\r
16 for (j = 0; j < slideSize; j++) {\r
17 if (!jalview.util.Comparison.isGap (seqsLeft[i].getCharAt (j))) {\r
18 this.gapsInsertedBegin = true;\r
19 break;\r
20 }}\r
21 }\r
22 var e = null;\r
23 if (!this.gapsInsertedBegin) {\r
24 e = Clazz.innerTypeInstance (jalview.commands.EditCommand.Edit, this, null, jalview.commands.EditCommand.Action.DELETE_GAP, seqsLeft, 0, slideSize, gapChar);\r
25 this.setEdit (e);\r
26 } else {\r
27 e = Clazz.innerTypeInstance (jalview.commands.EditCommand.Edit, this, null, jalview.commands.EditCommand.Action.INSERT_GAP, seqsRight, 0, slideSize, gapChar);\r
28 this.setEdit (e);\r
29 }jalview.commands.EditCommand.performEdit (e, null);\r
30 }, "~S,~A,~A,~N,~S");\r
31 Clazz.defineMethod (c$, "getGapsInsertedBegin", \r
32 function () {\r
33 return this.gapsInsertedBegin;\r
34 });\r
35 Clazz.defineMethod (c$, "appendSlideCommand", \r
36 function (command) {\r
37 var same = false;\r
38 if (command.getEdit (0).seqs.length == this.getEdit (0).seqs.length) {\r
39 same = true;\r
40 for (var i = 0; i < command.getEdit (0).seqs.length; i++) {\r
41 if (this.getEdit (0).seqs[i] !== command.getEdit (0).seqs[i]) {\r
42 same = false;\r
43 }}\r
44 }if (same) {\r
45 command.addEdit (this.getEdit (0));\r
46 }return same;\r
47 }, "jalview.commands.SlideSequencesCommand");\r
48 });\r