1 Clazz.declarePackage ("jalview.commands");
\r
2 Clazz.load (["jalview.commands.CommandI"], "jalview.commands.ChangeCaseCommand", ["java.lang.StringBuffer"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
4 this.description = null;
\r
5 this.caseChange = -1;
\r
8 Clazz.instantialize (this, arguments);
\r
9 }, jalview.commands, "ChangeCaseCommand", null, jalview.commands.CommandI);
\r
10 Clazz.makeConstructor (c$,
\r
11 function (description, seqs, regions, caseChange) {
\r
12 this.description = description;
\r
14 this.regions = regions;
\r
15 this.caseChange = caseChange;
\r
16 this.doCommand (null);
\r
17 }, "~S,~A,java.util.List,~N");
\r
18 Clazz.overrideMethod (c$, "getDescription",
\r
20 return this.description;
\r
22 Clazz.overrideMethod (c$, "getSize",
\r
26 Clazz.overrideMethod (c$, "doCommand",
\r
28 this.changeCase (true);
\r
30 Clazz.overrideMethod (c$, "undoCommand",
\r
32 this.changeCase (false);
\r
34 Clazz.defineMethod (c$, "changeCase",
\r
35 function (doCommand) {
\r
40 for (var r, $r = this.regions.iterator (); $r.hasNext () && ((r = $r.next ()) || true);) {
\r
42 for (var s = 0; s < this.seqs.length; s++) {
\r
43 sequence = this.seqs[s].getSequenceAsString ();
\r
44 var newSeq = new StringBuffer ();
\r
45 if (r[1] > sequence.length) {
\r
46 end = sequence.length;
\r
50 newSeq.append (sequence.substring (0, start));
\r
51 }if ((this.caseChange == jalview.commands.ChangeCaseCommand.TO_UPPER && doCommand) || (this.caseChange == jalview.commands.ChangeCaseCommand.TO_LOWER && !doCommand)) {
\r
52 newSeq.append (sequence.substring (start, end).toUpperCase ());
\r
53 } else if ((this.caseChange == jalview.commands.ChangeCaseCommand.TO_LOWER && doCommand) || (this.caseChange == jalview.commands.ChangeCaseCommand.TO_UPPER && !doCommand)) {
\r
54 newSeq.append (sequence.substring (start, end).toLowerCase ());
\r
56 for (var c = start; c < end; c++) {
\r
57 nextChar = sequence.charAt (c);
\r
58 if ('a' <= nextChar && nextChar <= 'z') {
\r
59 nextChar = String.fromCharCode (nextChar.charCodeAt (0) - (32));
\r
60 } else if ('A' <= nextChar && nextChar <= 'Z') {
\r
61 nextChar = String.fromCharCode (nextChar.charCodeAt (0) + (32));
\r
62 }newSeq.append (nextChar);
\r
64 }if (end < sequence.length) {
\r
65 newSeq.append (sequence.substring (end));
\r
66 }this.seqs[s].setSequence (newSeq.toString ());
\r
70 Clazz.defineStatics (c$,
\r