X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=site%2Ft.js;fp=site%2Ft.js;h=9704c61a08fca1abe7e21846f19385987e539b8b;hb=4231d40261fef32ce4570a6bbad0d35df44e8baf;hp=0000000000000000000000000000000000000000;hpb=c07eb2c5794833bd0241000d6844d783fe10cb82;p=jalview.git diff --git a/site/t.js b/site/t.js new file mode 100644 index 0000000..9704c61 --- /dev/null +++ b/site/t.js @@ -0,0 +1,643 @@ +Clazz.declarePackage ("jalview.commands"); +Clazz.load (["jalview.commands.CommandI", "java.lang.Enum", "java.util.ArrayList"], "jalview.commands.EditCommand", ["jalview.analysis.AlignSeq", "jalview.datamodel.AlignmentAnnotation", "$.Annotation", "$.Sequence", "$.SequenceFeature", "jalview.schemes.ResidueProperties", "jalview.util.Comparison", "$.ReverseListIterator", "$.StringUtils", "java.lang.StringBuffer", "java.util.HashMap", "$.Hashtable"], function () { +c$ = Clazz.decorateAsClass (function () { +this.edits = null; +this.description = null; +if (!Clazz.isClassDefined ("jalview.commands.EditCommand.Edit")) { +jalview.commands.EditCommand.$EditCommand$Edit$ (); +} +Clazz.instantialize (this, arguments); +}, jalview.commands, "EditCommand", null, jalview.commands.CommandI); +Clazz.prepareFields (c$, function () { +this.edits = new java.util.ArrayList (); +}); +Clazz.makeConstructor (c$, +function () { +}); +Clazz.makeConstructor (c$, +function (description) { +this.description = description; +}, "~S"); +Clazz.makeConstructor (c$, +function (description, command, seqs, position, number, al) { +this.description = description; +if (command === jalview.commands.EditCommand.Action.CUT || command === jalview.commands.EditCommand.Action.PASTE) { +this.setEdit (Clazz.innerTypeInstance (jalview.commands.EditCommand.Edit, this, null, command, seqs, position, number, al)); +}this.performEdit (0, null); +}, "~S,jalview.commands.EditCommand.Action,~A,~N,~N,jalview.datamodel.AlignmentI"); +Clazz.makeConstructor (c$, +function (description, command, replace, seqs, position, number, al) { +this.description = description; +if (command === jalview.commands.EditCommand.Action.REPLACE) { +this.setEdit (Clazz.innerTypeInstance (jalview.commands.EditCommand.Edit, this, null, command, seqs, position, number, al, replace)); +}this.performEdit (0, null); +}, "~S,jalview.commands.EditCommand.Action,~S,~A,~N,~N,jalview.datamodel.AlignmentI"); +Clazz.defineMethod (c$, "setEdit", +function (e) { +this.edits.clear (); +this.edits.add (e); +}, "jalview.commands.EditCommand.Edit"); +Clazz.defineMethod (c$, "addEdit", +function (e) { +if (!jalview.commands.EditCommand.expandEdit (this.edits, e)) { +this.edits.add (e); +}}, "jalview.commands.EditCommand.Edit"); +c$.expandEdit = Clazz.defineMethod (c$, "expandEdit", +function (edits, e) { +if (edits == null || edits.isEmpty ()) { +return false; +}var lastEdit = edits.get (edits.size () - 1); +var action = e.command; +if (lastEdit.command !== action) { +return false; +}if (lastEdit.seqs.length != e.seqs.length) { +return false; +}for (var i = 0; i < e.seqs.length; i++) { +if (lastEdit.seqs[i].getDatasetSequence () !== e.seqs[i].getDatasetSequence ()) { +return false; +}} +var contiguous = (action === jalview.commands.EditCommand.Action.INSERT_GAP && e.position == lastEdit.position + lastEdit.number) || (action === jalview.commands.EditCommand.Action.DELETE_GAP && e.position + e.number == lastEdit.position); +if (contiguous) { +lastEdit.number += e.number; +lastEdit.seqs = e.seqs; +if (action === jalview.commands.EditCommand.Action.DELETE_GAP) { +lastEdit.position--; +}return true; +}return false; +}, "java.util.List,jalview.commands.EditCommand.Edit"); +Clazz.defineMethod (c$, "clearEdits", +function () { +this.edits.clear (); +}); +Clazz.defineMethod (c$, "getEdit", +function (i) { +if (i >= 0 && i < this.edits.size ()) { +return this.edits.get (i); +}return null; +}, "~N"); +Clazz.overrideMethod (c$, "getDescription", +function () { +return this.description; +}); +Clazz.overrideMethod (c$, "getSize", +function () { +return this.edits.size (); +}); +Clazz.defineMethod (c$, "getAlignment", +function () { +return (this.edits.isEmpty () ? null : this.edits.get (0).al); +}); +Clazz.defineMethod (c$, "appendEdit", +function (command, seqs, position, number, al, performEdit) { +this.appendEdit (command, seqs, position, number, al, performEdit, null); +}, "jalview.commands.EditCommand.Action,~A,~N,~N,jalview.datamodel.AlignmentI,~B"); +Clazz.defineMethod (c$, "appendEdit", +function (command, seqs, position, number, al, performEdit, views) { +var edit = Clazz.innerTypeInstance (jalview.commands.EditCommand.Edit, this, null, command, seqs, position, number, al.getGapCharacter ()); +if (al.getHeight () == seqs.length) { +edit.al = al; +edit.fullAlignmentHeight = true; +}this.addEdit (edit); +if (performEdit) { +jalview.commands.EditCommand.performEdit (edit, views); +}}, "jalview.commands.EditCommand.Action,~A,~N,~N,jalview.datamodel.AlignmentI,~B,~A"); +Clazz.defineMethod (c$, "appendEdit", +function (edit, al, performEdit, views) { +if (al.getHeight () == edit.seqs.length) { +edit.al = al; +edit.fullAlignmentHeight = true; +}this.addEdit (edit); +if (performEdit) { +jalview.commands.EditCommand.performEdit (edit, views); +}}, "jalview.commands.EditCommand.Edit,jalview.datamodel.AlignmentI,~B,~A"); +Clazz.defineMethod (c$, "performEdit", +function (commandIndex, views) { +var iterator = this.edits.listIterator (commandIndex); +while (iterator.hasNext ()) { +var edit = iterator.next (); +jalview.commands.EditCommand.performEdit (edit, views); +} +}, "~N,~A"); +c$.performEdit = Clazz.defineMethod (c$, "performEdit", +function (edit, views) { +switch (edit.command) { +case jalview.commands.EditCommand.Action.INSERT_GAP: +jalview.commands.EditCommand.insertGap (edit); +break; +case jalview.commands.EditCommand.Action.DELETE_GAP: +jalview.commands.EditCommand.deleteGap (edit); +break; +case jalview.commands.EditCommand.Action.CUT: +jalview.commands.EditCommand.cut (edit, views); +break; +case jalview.commands.EditCommand.Action.PASTE: +jalview.commands.EditCommand.paste (edit, views); +break; +case jalview.commands.EditCommand.Action.REPLACE: +jalview.commands.EditCommand.replace (edit); +break; +case jalview.commands.EditCommand.Action.INSERT_NUC: +break; +default: +break; +} +}, "jalview.commands.EditCommand.Edit,~A"); +Clazz.overrideMethod (c$, "doCommand", +function (views) { +this.performEdit (0, views); +}, "~A"); +Clazz.overrideMethod (c$, "undoCommand", +function (views) { +var iterator = this.edits.listIterator (this.edits.size ()); +while (iterator.hasPrevious ()) { +var e = iterator.previous (); +switch (e.command) { +case jalview.commands.EditCommand.Action.INSERT_GAP: +jalview.commands.EditCommand.deleteGap (e); +break; +case jalview.commands.EditCommand.Action.DELETE_GAP: +jalview.commands.EditCommand.insertGap (e); +break; +case jalview.commands.EditCommand.Action.CUT: +jalview.commands.EditCommand.paste (e, views); +break; +case jalview.commands.EditCommand.Action.PASTE: +jalview.commands.EditCommand.cut (e, views); +break; +case jalview.commands.EditCommand.Action.REPLACE: +jalview.commands.EditCommand.replace (e); +break; +case jalview.commands.EditCommand.Action.INSERT_NUC: +break; +default: +break; +} +} +}, "~A"); +c$.insertGap = Clazz.defineMethod (c$, "insertGap", + function (command) { +for (var s = 0; s < command.seqs.length; s++) { +command.seqs[s].insertCharAt (command.position, command.number, command.gapChar); +} +jalview.commands.EditCommand.adjustAnnotations (command, true, false, null); +}, "jalview.commands.EditCommand.Edit"); +c$.deleteGap = Clazz.defineMethod (c$, "deleteGap", + function (command) { +for (var s = 0; s < command.seqs.length; s++) { +command.seqs[s].deleteChars (command.position, command.position + command.number); +} +jalview.commands.EditCommand.adjustAnnotations (command, false, false, null); +}, "jalview.commands.EditCommand.Edit"); +c$.cut = Clazz.defineMethod (c$, "cut", +function (command, views) { +var seqDeleted = false; +command.string = Clazz.newCharArray (command.seqs.length, '\0'); +for (var i = 0; i < command.seqs.length; i++) { +var sequence = command.seqs[i]; +if (sequence.getLength () > command.position) { +command.string[i] = sequence.getSequence (command.position, command.position + command.number); +var oldds = sequence.getDatasetSequence (); +if (command.oldds != null && command.oldds[i] != null) { +sequence.setDatasetSequence (null); +}sequence.deleteChars (command.position, command.position + command.number); +if (command.oldds != null && command.oldds[i] != null) { +sequence.setDatasetSequence (command.oldds[i]); +command.oldds[i] = oldds; +} else { +if (oldds !== sequence.getDatasetSequence () || sequence.getSequenceFeatures () != null) { +if (command.oldds == null) { +command.oldds = new Array (command.seqs.length); +}command.oldds[i] = oldds; +jalview.commands.EditCommand.adjustFeatures (command, i, sequence.findPosition (command.position), sequence.findPosition (command.position + command.number), false); +}}}if (sequence.getLength () < 1) { +command.al.deleteSequence (sequence); +seqDeleted = true; +}} +jalview.commands.EditCommand.adjustAnnotations (command, false, seqDeleted, views); +}, "jalview.commands.EditCommand.Edit,~A"); +c$.paste = Clazz.defineMethod (c$, "paste", +function (command, views) { +var tmp; +var newDSNeeded; +var newDSWasNeeded; +var newstart; +var newend; +var seqWasDeleted = false; +var start = 0; +var end = 0; +for (var i = 0; i < command.seqs.length; i++) { +newDSNeeded = false; +newDSWasNeeded = command.oldds != null && command.oldds[i] != null; +if (command.seqs[i].getLength () < 1) { +if (command.alIndex[i] < command.al.getHeight ()) { +var sequences; +{ +if (!(command.alIndex[i] < 0)) { +sequences.add (command.alIndex[i], command.seqs[i]); +}}} else { +command.al.addSequence (command.seqs[i]); +}seqWasDeleted = true; +}newstart = command.seqs[i].getStart (); +newend = command.seqs[i].getEnd (); +tmp = new StringBuffer (); +tmp.append (command.seqs[i].getSequence ()); +if (command.string != null && command.string[i] != null) { +if (command.position >= tmp.length ()) { +var length = command.position - tmp.length (); +while (length > 0) { +tmp.append (command.gapChar); +length--; +} +}tmp.insert (command.position, command.string[i]); +for (var s = 0; s < command.string[i].length; s++) { +if (jalview.schemes.ResidueProperties.aaIndex[command.string[i][s].charCodeAt (0)] != 23) { +if (!newDSNeeded) { +newDSNeeded = true; +start = command.seqs[i].findPosition (command.position); +end = command.seqs[i].findPosition (command.position + command.number); +}if (command.seqs[i].getStart () == start) { +newstart--; +} else { +newend++; +}}} +command.string[i] = null; +}command.seqs[i].setSequence (tmp.toString ()); +command.seqs[i].setStart (newstart); +command.seqs[i].setEnd (newend); +if (newDSNeeded) { +if (command.seqs[i].getDatasetSequence () != null) { +var ds; +if (newDSWasNeeded) { +ds = command.oldds[i]; +} else { +ds = new jalview.datamodel.Sequence (command.seqs[i].getName (), jalview.analysis.AlignSeq.extractGaps (jalview.util.Comparison.GapChars, command.seqs[i].getSequenceAsString ()), command.seqs[i].getStart (), command.seqs[i].getEnd ()); +ds.setDescription (command.seqs[i].getDescription ()); +}if (command.oldds == null) { +command.oldds = new Array (command.seqs.length); +}command.oldds[i] = command.seqs[i].getDatasetSequence (); +command.seqs[i].setDatasetSequence (ds); +}jalview.commands.EditCommand.adjustFeatures (command, i, start, end, true); +}} +jalview.commands.EditCommand.adjustAnnotations (command, true, seqWasDeleted, views); +command.string = null; +}, "jalview.commands.EditCommand.Edit,~A"); +c$.replace = Clazz.defineMethod (c$, "replace", +function (command) { +var tmp; +var oldstring; +var start = command.position; +var end = command.number; +command.number = start + command.string[0].length; +for (var i = 0; i < command.seqs.length; i++) { +var newDSWasNeeded = command.oldds != null && command.oldds[i] != null; +oldstring = command.seqs[i].getSequenceAsString (); +tmp = new StringBuffer (oldstring.substring (0, start)); +tmp.append (command.string[i]); +var nogaprep = jalview.analysis.AlignSeq.extractGaps (jalview.util.Comparison.GapChars, String.instantialize (command.string[i])); +var ipos = command.seqs[i].findPosition (start) - command.seqs[i].getStart (); +tmp.append (oldstring.substring (end)); +command.seqs[i].setSequence (tmp.toString ()); +command.string[i] = oldstring.substring (start, end).toCharArray (); +var nogapold = jalview.analysis.AlignSeq.extractGaps (jalview.util.Comparison.GapChars, String.instantialize (command.string[i])); +if (!nogaprep.toLowerCase ().equals (nogapold.toLowerCase ())) { +if (newDSWasNeeded) { +var oldds = command.seqs[i].getDatasetSequence (); +command.seqs[i].setDatasetSequence (command.oldds[i]); +command.oldds[i] = oldds; +} else { +if (command.oldds == null) { +command.oldds = new Array (command.seqs.length); +}command.oldds[i] = command.seqs[i].getDatasetSequence (); +var newds = new jalview.datamodel.Sequence (command.seqs[i].getDatasetSequence ()); +var fullseq; +var osp = newds.getSequenceAsString (); +fullseq = osp.substring (0, ipos) + nogaprep + osp.substring (ipos + nogaprep.length); +newds.setSequence (fullseq.toUpperCase ()); +command.seqs[i].setDatasetSequence (newds); +}}tmp = null; +oldstring = null; +} +}, "jalview.commands.EditCommand.Edit"); +c$.adjustAnnotations = Clazz.defineMethod (c$, "adjustAnnotations", +function (command, insert, modifyVisibility, views) { +var annotations = null; +if (modifyVisibility && !insert) { +command.deletedAnnotationRows = new java.util.Hashtable (); +}if (command.fullAlignmentHeight) { +annotations = command.al.getAlignmentAnnotation (); +} else { +var aSize = 0; +var tmp; +for (var s = 0; s < command.seqs.length; s++) { +if (modifyVisibility) { +if (!insert) { +tmp = command.seqs[s].getAnnotation (); +if (tmp != null) { +var alen = tmp.length; +for (var aa = 0; aa < tmp.length; aa++) { +if (!command.al.deleteAnnotation (tmp[aa])) { +tmp[aa] = null; +alen--; +}} +command.seqs[s].setAlignmentAnnotation (null); +if (alen != tmp.length) { +var saved = new Array (alen); +for (var aa = 0, aapos = 0; aa < tmp.length; aa++) { +if (tmp[aa] != null) { +saved[aapos++] = tmp[aa]; +tmp[aa] = null; +}} +tmp = saved; +command.deletedAnnotationRows.put (command.seqs[s], saved); +for (var alview = 0; views != null && alview < views.length; alview++) { +if (views[alview] !== command.al) { +var toremove = views[alview].getAlignmentAnnotation (); +if (toremove == null || toremove.length == 0) { +continue; +}for (var aa = 0; aa < toremove.length; aa++) { +if (toremove[aa].sequenceRef === command.seqs[s]) { +views[alview].deleteAnnotation (toremove[aa]); +}} +}} +} else { +command.deletedAnnotationRows.put (command.seqs[s], tmp); +}}} else { +if (command.deletedAnnotationRows != null && command.deletedAnnotationRows.containsKey (command.seqs[s])) { +var revealed = command.deletedAnnotationRows.get (command.seqs[s]); +command.seqs[s].setAlignmentAnnotation (revealed); +if (revealed != null) { +for (var aa = 0; aa < revealed.length; aa++) { +command.al.addAnnotation (revealed[aa]); +} +for (var aa = 0; aa < revealed.length; aa++) { +command.al.setAnnotationIndex (revealed[aa], aa); +} +for (var vnum = 0; views != null && vnum < views.length; vnum++) { +if (views[vnum] !== command.al) { +var avwidth = views[vnum].getWidth () + 1; +for (var a = 0; a < revealed.length; a++) { +var newann = new jalview.datamodel.AlignmentAnnotation (revealed[a]); +command.seqs[s].addAlignmentAnnotation (newann); +newann.padAnnotation (avwidth); +views[vnum].addAnnotation (newann); +views[vnum].setAnnotationIndex (newann, a); +} +}} +}}}continue; +}if (command.seqs[s].getAnnotation () == null) { +continue; +}if (aSize == 0) { +annotations = command.seqs[s].getAnnotation (); +} else { +tmp = new Array (aSize + command.seqs[s].getAnnotation ().length); +System.arraycopy (annotations, 0, tmp, 0, aSize); +System.arraycopy (command.seqs[s].getAnnotation (), 0, tmp, aSize, command.seqs[s].getAnnotation ().length); +annotations = tmp; +}aSize = annotations.length; +} +}if (annotations == null) { +return; +}if (!insert) { +command.deletedAnnotations = new java.util.Hashtable (); +}var aSize; +var temp; +for (var a = 0; a < annotations.length; a++) { +if (annotations[a].autoCalculated || annotations[a].annotations == null) { +continue; +}var tSize = 0; +aSize = annotations[a].annotations.length; +if (insert) { +temp = new Array (aSize + command.number); +if (annotations[a].padGaps) { +for (var aa = 0; aa < temp.length; aa++) { +temp[aa] = new jalview.datamodel.Annotation (command.gapChar + "", null, ' ', 0); +} +}} else { +if (command.position < aSize) { +if (command.position + command.number >= aSize) { +tSize = aSize; +} else { +tSize = aSize - command.number; +}} else { +tSize = aSize; +}if (tSize < 0) { +tSize = aSize; +}temp = new Array (tSize); +}if (insert) { +if (command.position < annotations[a].annotations.length) { +System.arraycopy (annotations[a].annotations, 0, temp, 0, command.position); +if (command.deletedAnnotations != null && command.deletedAnnotations.containsKey (annotations[a].annotationId)) { +var restore = command.deletedAnnotations.get (annotations[a].annotationId); +System.arraycopy (restore, 0, temp, command.position, command.number); +}System.arraycopy (annotations[a].annotations, command.position, temp, command.position + command.number, aSize - command.position); +} else { +if (command.deletedAnnotations != null && command.deletedAnnotations.containsKey (annotations[a].annotationId)) { +var restore = command.deletedAnnotations.get (annotations[a].annotationId); +temp = new Array (annotations[a].annotations.length + restore.length); +System.arraycopy (annotations[a].annotations, 0, temp, 0, annotations[a].annotations.length); +System.arraycopy (restore, 0, temp, annotations[a].annotations.length, restore.length); +} else { +temp = annotations[a].annotations; +}}} else { +if (tSize != aSize || command.position < 2) { +var copylen = Math.min (command.position, annotations[a].annotations.length); +if (copylen > 0) { +System.arraycopy (annotations[a].annotations, 0, temp, 0, copylen); +}var deleted = new Array (command.number); +if (copylen >= command.position) { +copylen = Math.min (command.number, annotations[a].annotations.length - command.position); +if (copylen > 0) { +System.arraycopy (annotations[a].annotations, command.position, deleted, 0, copylen); +}}command.deletedAnnotations.put (annotations[a].annotationId, deleted); +if (annotations[a].annotations.length > command.position + command.number) { +System.arraycopy (annotations[a].annotations, command.position + command.number, temp, command.position, annotations[a].annotations.length - command.position - command.number); +}} else { +var dSize = aSize - command.position; +if (dSize > 0) { +var deleted = new Array (command.number); +System.arraycopy (annotations[a].annotations, command.position, deleted, 0, dSize); +command.deletedAnnotations.put (annotations[a].annotationId, deleted); +tSize = Math.min (annotations[a].annotations.length, command.position); +temp = new Array (tSize); +System.arraycopy (annotations[a].annotations, 0, temp, 0, tSize); +} else { +temp = annotations[a].annotations; +}}}annotations[a].annotations = temp; +} +}, "jalview.commands.EditCommand.Edit,~B,~B,~A"); +c$.adjustFeatures = Clazz.defineMethod (c$, "adjustFeatures", +function (command, index, i, j, insert) { +var seq = command.seqs[index]; +var sequence = seq.getDatasetSequence (); +if (sequence == null) { +sequence = seq; +}if (insert) { +if (command.editedFeatures != null && command.editedFeatures.containsKey (seq)) { +sequence.setSequenceFeatures (command.editedFeatures.get (seq)); +}return; +}var sf = sequence.getSequenceFeatures (); +if (sf == null) { +return; +}var oldsf = new Array (sf.length); +var cSize = j - i; +for (var s = 0; s < sf.length; s++) { +var copy = new jalview.datamodel.SequenceFeature (sf[s]); +oldsf[s] = copy; +if (sf[s].getEnd () < i) { +continue; +}if (sf[s].getBegin () > j) { +sf[s].setBegin (copy.getBegin () - cSize); +sf[s].setEnd (copy.getEnd () - cSize); +continue; +}if (sf[s].getBegin () >= i) { +sf[s].setBegin (i); +}if (sf[s].getEnd () < j) { +sf[s].setEnd (j - 1); +}sf[s].setEnd (sf[s].getEnd () - (cSize)); +if (sf[s].getBegin () > sf[s].getEnd ()) { +sequence.deleteFeature (sf[s]); +}} +if (command.editedFeatures == null) { +command.editedFeatures = new java.util.Hashtable (); +}command.editedFeatures.put (seq, oldsf); +}, "jalview.commands.EditCommand.Edit,~N,~N,~N,~B"); +Clazz.defineMethod (c$, "getEdits", +function () { +return this.edits; +}); +Clazz.defineMethod (c$, "priorState", +function (forUndo) { +var result = new java.util.HashMap (); +if (this.getEdits () == null) { +return result; +}if (forUndo) { +for (var e, $e = this.getEdits ().iterator (); $e.hasNext () && ((e = $e.next ()) || true);) { +for (var seq, $seq = 0, $$seq = e.getSequences (); $seq < $$seq.length && ((seq = $$seq[$seq]) || true); $seq++) { +var ds = seq.getDatasetSequence (); +var preEdit = result.get (ds); +if (preEdit == null) { +preEdit = new jalview.datamodel.Sequence ("", seq.getSequenceAsString ()); +preEdit.setDatasetSequence (ds); +result.put (ds, preEdit); +}} +} +return result; +}var edits = new jalview.util.ReverseListIterator (this.getEdits ()); +while (edits.hasNext ()) { +var oldEdit = edits.next (); +var action = oldEdit.getAction (); +var position = oldEdit.getPosition (); +var number = oldEdit.getNumber (); +var gap = oldEdit.getGapCharacter (); +for (var seq, $seq = 0, $$seq = oldEdit.getSequences (); $seq < $$seq.length && ((seq = $$seq[$seq]) || true); $seq++) { +var ds = seq.getDatasetSequence (); +var preEdit = result.get (ds); +if (preEdit == null) { +preEdit = new jalview.datamodel.Sequence ("", seq.getSequenceAsString ()); +preEdit.setDatasetSequence (ds); +result.put (ds, preEdit); +}if (ds != null) { +if (action === jalview.commands.EditCommand.Action.DELETE_GAP) { +preEdit.setSequence ( String.instantialize (jalview.util.StringUtils.insertCharAt (preEdit.getSequence (), position, number, gap))); +} else if (action === jalview.commands.EditCommand.Action.INSERT_GAP) { +preEdit.setSequence ( String.instantialize (jalview.util.StringUtils.deleteChars (preEdit.getSequence (), position, position + number))); +} else { +System.err.println ("Can't undo edit action " + action); +}}} +} +return result; +}, "~B"); +Clazz.defineMethod (c$, "getEditIterator", +function (forwards) { +if (forwards) { +return this.getEdits ().iterator (); +} else { +return new jalview.util.ReverseListIterator (this.getEdits ()); +}}, "~B"); +c$.$EditCommand$Edit$ = function () { +Clazz.pu$h(self.c$); +c$ = Clazz.decorateAsClass (function () { +Clazz.prepareCallback (this, arguments); +this.oldds = null; +this.fullAlignmentHeight = false; +this.deletedAnnotationRows = null; +this.deletedAnnotations = null; +this.editedFeatures = null; +this.al = null; +this.command = null; +this.string = null; +this.seqs = null; +this.alIndex = null; +this.position = 0; +this.number = 0; +this.gapChar = '\0'; +Clazz.instantialize (this, arguments); +}, jalview.commands.EditCommand, "Edit"); +Clazz.makeConstructor (c$, +function (a, b, c, d, e) { +this.command = a; +this.seqs = b; +this.position = c; +this.number = d; +this.gapChar = e; +}, "jalview.commands.EditCommand.Action,~A,~N,~N,~S"); +Clazz.makeConstructor (c$, +function (a, b, c, d, e) { +this.gapChar = e.getGapCharacter (); +this.command = a; +this.seqs = b; +this.position = c; +this.number = d; +this.al = e; +this.alIndex = Clazz.newIntArray (b.length, 0); +for (var f = 0; f < b.length; f++) { +this.alIndex[f] = e.findIndex (b[f]); +} +this.fullAlignmentHeight = (e.getHeight () == b.length); +}, "jalview.commands.EditCommand.Action,~A,~N,~N,jalview.datamodel.AlignmentI"); +Clazz.makeConstructor (c$, +function (a, b, c, d, e, f) { +this.command = a; +this.seqs = b; +this.position = c; +this.number = d; +this.al = e; +this.gapChar = e.getGapCharacter (); +this.string = Clazz.newCharArray (b.length, '\0'); +for (var g = 0; g < b.length; g++) { +this.string[g] = f.toCharArray (); +} +this.fullAlignmentHeight = (e.getHeight () == b.length); +}, "jalview.commands.EditCommand.Action,~A,~N,~N,jalview.datamodel.AlignmentI,~S"); +Clazz.defineMethod (c$, "getSequences", +function () { +return this.seqs; +}); +Clazz.defineMethod (c$, "getPosition", +function () { +return this.position; +}); +Clazz.defineMethod (c$, "getAction", +function () { +return this.command; +}); +Clazz.defineMethod (c$, "getNumber", +function () { +return this.number; +}); +Clazz.defineMethod (c$, "getGapCharacter", +function () { +return this.gapChar; +}); +c$ = Clazz.p0p (); +}; +Clazz.pu$h(self.c$); +c$ = Clazz.declareType (jalview.commands.EditCommand, "Action", Enum); +(Clazz.isClassDefined ("jalview.commands.EditCommand$Action$1") ? 0 : jalview.commands.EditCommand.$EditCommand$Action$1$ ())Clazz.defineEnumConstant (c$, "INSERT_GAP", 0, [], jalview.commands.EditCommand.Action); +(Clazz.isClassDefined ("jalview.commands.EditCommand$Action$2") ? 0 : jalview.commands.EditCommand.$EditCommand$Action$2$ ())Clazz.defineEnumConstant (c$, "DELETE_GAP", 1, [], jalview.commands.EditCommand.Action); +(Clazz.isClassDefined ("jalview.commands.EditCommand$Action$3") ? 0 : jalview.commands.EditCommand.$EditCommand$Action$3$ ())Clazz.defineEnumConstant (c$, "CUT", 2, [], jalview.commands.EditCommand.Action); +(Clazz.isClassDefined ("jalview.commands.EditCommand$Action$4") ? 0 : jalview.commands.EditCommand.$EditCommand$Action$4$ ())Clazz.defineEnumConstant (c$, "PASTE", 3, [], jalview.commands.EditCommand.Action); +(Clazz.isClassDefined ("jalview.commands.EditCommand$Action$5") ? 0 : jalview.commands.EditCommand.$EditCommand$Action$5$ ())Clazz.defineEnumConstant (c$, "REPLACE", 4, [], jalview.commands.EditCommand.Action); +(Clazz.isClassDefined ("jalview.commands.EditCommand$Action$6") ? 0 : jalview.commands.EditCommand.$EditCommand$Action$6$ ())Clazz.defineEnumConstant (c$, "INSERT_NUC", 5, [], jalview.commands.EditCommand.Action); +c$ = Clazz.p0p (); +});