1 Clazz.declarePackage ("jalview.datamodel");
\r
2 Clazz.load (null, "jalview.datamodel.HiddenSequences", ["jalview.datamodel.Alignment", "java.util.ArrayList"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
4 this.hiddenSequences = null;
\r
5 this.alignment = null;
\r
6 Clazz.instantialize (this, arguments);
\r
7 }, jalview.datamodel, "HiddenSequences");
\r
8 Clazz.makeConstructor (c$,
\r
10 this.alignment = al;
\r
11 }, "jalview.datamodel.AlignmentI");
\r
12 Clazz.defineMethod (c$, "getSize",
\r
14 if (this.hiddenSequences == null) {
\r
17 for (var i = 0; i < this.hiddenSequences.length; i++) {
\r
18 if (this.hiddenSequences[i] != null) {
\r
23 Clazz.defineMethod (c$, "getWidth",
\r
26 for (var i = 0; i < this.hiddenSequences.length; i++) {
\r
27 if (this.hiddenSequences[i] != null && this.hiddenSequences[i].getLength () > width) {
\r
28 width = this.hiddenSequences[i].getLength ();
\r
32 Clazz.defineMethod (c$, "adjustHeightSequenceDeleted",
\r
33 function (seqIndex) {
\r
34 if (this.hiddenSequences == null) {
\r
36 }var alHeight = this.alignment.getHeight ();
\r
37 var tmp = new Array (alHeight + this.getSize ());
\r
38 var deletionIndex = this.adjustForHiddenSeqs (seqIndex);
\r
39 for (var i = 0; i < this.hiddenSequences.length; i++) {
\r
40 if (this.hiddenSequences[i] == null) {
\r
42 }if (i > deletionIndex) {
\r
43 tmp[i - 1] = this.hiddenSequences[i];
\r
45 tmp[i] = this.hiddenSequences[i];
\r
47 this.hiddenSequences = tmp;
\r
49 Clazz.defineMethod (c$, "adjustHeightSequenceAdded",
\r
51 if (this.hiddenSequences == null) {
\r
53 }var alHeight = this.alignment.getHeight ();
\r
54 var tmp = new Array (alHeight + this.getSize ());
\r
55 System.arraycopy (this.hiddenSequences, 0, tmp, 0, this.hiddenSequences.length);
\r
56 this.hiddenSequences = tmp;
\r
58 Clazz.defineMethod (c$, "hideSequence",
\r
59 function (sequence) {
\r
60 if (this.hiddenSequences == null) {
\r
61 this.hiddenSequences = new Array (this.alignment.getHeight ());
\r
62 }var alignmentIndex = this.alignment.findIndex (sequence);
\r
63 alignmentIndex = this.adjustForHiddenSeqs (alignmentIndex);
\r
64 if (this.hiddenSequences[alignmentIndex] != null) {
\r
65 System.out.println ("ERROR!!!!!!!!!!!");
\r
66 }this.hiddenSequences[alignmentIndex] = sequence;
\r
67 this.alignment.deleteSequence (sequence);
\r
68 }, "jalview.datamodel.SequenceI");
\r
69 Clazz.defineMethod (c$, "showAll",
\r
70 function (hiddenRepSequences) {
\r
71 var revealedSeqs = new java.util.ArrayList ();
\r
72 for (var i = 0; i < this.hiddenSequences.length; i++) {
\r
73 if (this.hiddenSequences[i] != null) {
\r
74 var tmp = this.showSequence (i, hiddenRepSequences);
\r
75 for (var seq, $seq = tmp.iterator (); $seq.hasNext () && ((seq = $seq.next ()) || true);) {
\r
76 revealedSeqs.add (seq);
\r
79 return revealedSeqs;
\r
80 }, "java.util.Map");
\r
81 Clazz.defineMethod (c$, "showSequence",
\r
82 function (alignmentIndex, hiddenRepSequences) {
\r
83 var revealedSeqs = new java.util.ArrayList ();
\r
84 var repSequence = this.alignment.getSequenceAt (alignmentIndex);
\r
85 if (repSequence != null && hiddenRepSequences != null && hiddenRepSequences.containsKey (repSequence)) {
\r
86 hiddenRepSequences.remove (repSequence);
\r
87 revealedSeqs.add (repSequence);
\r
88 }var start = this.adjustForHiddenSeqs (alignmentIndex - 1);
\r
89 var end = this.adjustForHiddenSeqs (alignmentIndex);
\r
90 if (end >= this.hiddenSequences.length) {
\r
91 end = this.hiddenSequences.length - 1;
\r
94 for (var index = end; index > start; index--) {
\r
95 var seq = this.hiddenSequences[index];
\r
96 this.hiddenSequences[index] = null;
\r
98 if (seq.getLength () > 0) {
\r
99 revealedSeqs.add (seq);
\r
100 asequences.add (alignmentIndex, seq);
\r
102 System.out.println (seq.getName () + " has been deleted whilst hidden");
\r
104 }return revealedSeqs;
\r
105 }, "~N,java.util.Map");
\r
106 Clazz.defineMethod (c$, "getHiddenSequence",
\r
107 function (alignmentIndex) {
\r
108 return this.hiddenSequences[alignmentIndex];
\r
110 Clazz.defineMethod (c$, "findIndexWithoutHiddenSeqs",
\r
111 function (alignmentIndex) {
\r
113 var hiddenSeqs = 0;
\r
114 if (this.hiddenSequences.length <= alignmentIndex) {
\r
115 alignmentIndex = this.hiddenSequences.length - 1;
\r
116 }while (index <= alignmentIndex) {
\r
117 if (this.hiddenSequences[index] != null) {
\r
121 ;return (alignmentIndex - hiddenSeqs);
\r
123 Clazz.defineMethod (c$, "adjustForHiddenSeqs",
\r
124 function (alignmentIndex) {
\r
126 var hSize = this.hiddenSequences.length;
\r
127 while (index <= alignmentIndex && index < hSize) {
\r
128 if (this.hiddenSequences[index] != null) {
\r
132 ;return alignmentIndex;
\r
134 Clazz.defineMethod (c$, "getFullAlignment",
\r
136 var isize = this.hiddenSequences.length;
\r
137 var seq = new Array (isize);
\r
139 for (var i = 0; i < this.hiddenSequences.length; i++) {
\r
140 if (this.hiddenSequences[i] != null) {
\r
141 seq[i] = this.hiddenSequences[i];
\r
143 seq[i] = this.alignment.getSequenceAt (index);
\r
146 var fAlignmt = new jalview.datamodel.Alignment (seq);
\r
147 fAlignmt.annotations = this.alignment.getAlignmentAnnotation ();
\r
148 fAlignmt.alignmentProperties = this.alignment.getProperties ();
\r
149 fAlignmt.groups = this.alignment.getGroups ();
\r
150 fAlignmt.$hasRNAStructure = this.alignment.hasRNAStructure ();
\r
153 Clazz.defineMethod (c$, "isHidden",
\r
155 if (this.hiddenSequences != null) {
\r
156 for (var i = 0; i < this.hiddenSequences.length; i++) {
\r
157 if (this.hiddenSequences[i] != null && this.hiddenSequences[i] === seq) {
\r
161 }, "jalview.datamodel.SequenceI");
\r