1 Clazz.declarePackage ("jalview.datamodel");
\r
2 Clazz.load (["java.util.Vector"], "jalview.datamodel.ColumnSelection", ["jalview.util.ShiftList", "jalview.viewmodel.annotationfilter.AnnotationFilterParameter", "java.lang.StringBuffer", "java.util.ArrayList", "$.Collections"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
4 this.selected = null;
\r
5 this.hiddenColumns = null;
\r
6 Clazz.instantialize (this, arguments);
\r
7 }, jalview.datamodel, "ColumnSelection");
\r
8 Clazz.prepareFields (c$, function () {
\r
9 this.selected = new java.util.Vector ();
\r
11 Clazz.defineMethod (c$, "addElement",
\r
13 var column = new Integer (col);
\r
14 if (!this.selected.contains (column)) {
\r
15 this.selected.addElement (column);
\r
17 Clazz.defineMethod (c$, "clear",
\r
19 this.selected.removeAllElements ();
\r
21 Clazz.defineMethod (c$, "removeElement",
\r
23 var colInt = new Integer (col);
\r
24 if (this.selected.contains (colInt)) {
\r
25 this.selected.removeElement (colInt);
\r
27 Clazz.defineMethod (c$, "removeElements",
\r
28 function (start, end) {
\r
30 for (var i = start; i < end; i++) {
\r
31 colInt = new Integer (i);
\r
32 if (this.selected.contains (colInt)) {
\r
33 this.selected.removeElement (colInt);
\r
36 Clazz.defineMethod (c$, "getSelected",
\r
38 return this.selected;
\r
40 Clazz.defineMethod (c$, "contains",
\r
42 return this.selected.contains ( new Integer (col));
\r
44 Clazz.defineMethod (c$, "columnAt",
\r
46 return this.selected.elementAt (i).intValue ();
\r
48 Clazz.defineMethod (c$, "size",
\r
50 return this.selected.size ();
\r
52 Clazz.defineMethod (c$, "getMax",
\r
55 for (var i = 0; i < this.selected.size (); i++) {
\r
56 if (this.columnAt (i) > max) {
\r
57 max = this.columnAt (i);
\r
61 Clazz.defineMethod (c$, "getMin",
\r
63 var min = 1000000000;
\r
64 for (var i = 0; i < this.selected.size (); i++) {
\r
65 if (this.columnAt (i) < min) {
\r
66 min = this.columnAt (i);
\r
70 Clazz.defineMethod (c$, "compensateForEdit",
\r
71 function (start, change) {
\r
72 var deletedHiddenColumns = null;
\r
73 for (var i = 0; i < this.size (); i++) {
\r
74 var temp = this.columnAt (i);
\r
75 if (temp >= start) {
\r
76 this.selected.setElementAt ( new Integer (temp - change), i);
\r
78 if (this.hiddenColumns != null) {
\r
79 deletedHiddenColumns = new java.util.ArrayList ();
\r
80 var hSize = this.hiddenColumns.size ();
\r
81 for (var i = 0; i < hSize; i++) {
\r
82 var region = this.hiddenColumns.elementAt (i);
\r
83 if (region[0] > start && start + change > region[1]) {
\r
84 deletedHiddenColumns.add (region);
\r
85 this.hiddenColumns.removeElementAt (i);
\r
89 }if (region[0] > start) {
\r
90 region[0] -= change;
\r
91 region[1] -= change;
\r
92 }if (region[0] < 0) {
\r
95 this.revealHiddenColumns (0);
\r
96 }return deletedHiddenColumns;
\r
98 Clazz.defineMethod (c$, "compensateForDelEdits",
\r
99 ($fz = function (start, change) {
\r
100 for (var i = 0; i < this.size (); i++) {
\r
101 var temp = this.columnAt (i);
\r
102 if (temp >= start) {
\r
103 this.selected.setElementAt ( new Integer (temp - change), i);
\r
105 if (this.hiddenColumns != null) {
\r
106 for (var i = 0; i < this.hiddenColumns.size (); i++) {
\r
107 var region = this.hiddenColumns.elementAt (i);
\r
108 if (region[0] >= start) {
\r
109 region[0] -= change;
\r
110 }if (region[1] >= start) {
\r
111 region[1] -= change;
\r
112 }if (region[1] < region[0]) {
\r
113 this.hiddenColumns.removeElementAt (i--);
\r
114 }if (region[0] < 0) {
\r
116 }if (region[1] < 0) {
\r
119 }}, $fz.isPrivate = true, $fz), "~N,~N");
\r
120 Clazz.defineMethod (c$, "compensateForEdits",
\r
121 function (shiftrecord) {
\r
122 if (shiftrecord != null) {
\r
123 var shifts = shiftrecord.getShifts ();
\r
124 if (shifts != null && shifts.size () > 0) {
\r
126 for (var i = 0, j = shifts.size (); i < j; i++) {
\r
127 var sh = shifts.get (i);
\r
128 this.compensateForDelEdits (shifted + sh[0], sh[1]);
\r
131 }return shiftrecord.getInverse ();
\r
133 }, "jalview.util.ShiftList");
\r
134 Clazz.defineMethod (c$, "pruneIntervalVector",
\r
135 ($fz = function (shifts, intervals) {
\r
136 var pruned = false;
\r
138 var j = intervals.size () - 1;
\r
140 var t = shifts.size () - 1;
\r
141 var hr = intervals.elementAt (i);
\r
142 var sr = shifts.get (s);
\r
143 while (i <= j && s <= t) {
\r
144 var trailinghn = hr[1] >= sr[0];
\r
147 hr = intervals.elementAt (++i);
\r
151 }var endshift = sr[0] + sr[1];
\r
152 if (endshift < hr[0] || endshift < sr[0]) {
\r
154 sr = shifts.get (++s);
\r
158 }var leadinghn = hr[0] >= sr[0];
\r
159 var leadinghc = hr[0] < endshift;
\r
160 var trailinghc = hr[1] < endshift;
\r
163 intervals.removeElementAt (i);
\r
167 hr = intervals.elementAt (i);
\r
171 leadinghn = !leadinghn;
\r
173 }}if (!leadinghn) {
\r
180 sr = shifts.get (++s);
\r
186 }, $fz.isPrivate = true, $fz), "java.util.List,java.util.Vector");
\r
187 Clazz.defineMethod (c$, "pruneColumnList",
\r
188 ($fz = function (shifts, list) {
\r
190 var t = shifts.size ();
\r
191 var sr = shifts.get (s++);
\r
192 var pruned = false;
\r
194 var j = list.size ();
\r
195 while (i < j && s <= t) {
\r
196 var c = list.elementAt (i++).intValue ();
\r
198 if (sr[1] + sr[0] >= c) {
\r
199 list.removeElementAt (--i);
\r
203 sr = shifts.get (s);
\r
207 }, $fz.isPrivate = true, $fz), "java.util.List,java.util.Vector");
\r
208 Clazz.defineMethod (c$, "pruneDeletions",
\r
209 function (deletions) {
\r
210 if (deletions != null) {
\r
211 var shifts = deletions.getShifts ();
\r
212 if (shifts != null && shifts.size () > 0) {
\r
213 if (this.hiddenColumns != null) {
\r
214 this.pruneIntervalVector (shifts, this.hiddenColumns);
\r
215 if (this.hiddenColumns != null && this.hiddenColumns.size () == 0) {
\r
216 this.hiddenColumns = null;
\r
217 }}if (this.selected != null && this.selected.size () > 0) {
\r
218 this.pruneColumnList (shifts, this.selected);
\r
219 if (this.selected != null && this.selected.size () == 0) {
\r
220 this.selected = null;
\r
221 }}this.compensateForEdits (deletions);
\r
222 }}}, "jalview.util.ShiftList");
\r
223 Clazz.defineMethod (c$, "getHiddenColumns",
\r
225 return this.hiddenColumns == null ? java.util.Collections.emptyList () : this.hiddenColumns;
\r
227 Clazz.defineMethod (c$, "adjustForHiddenColumns",
\r
228 function (column) {
\r
229 var result = column;
\r
230 if (this.hiddenColumns != null) {
\r
231 for (var i = 0; i < this.hiddenColumns.size (); i++) {
\r
232 var region = this.hiddenColumns.elementAt (i);
\r
233 if (result >= region[0]) {
\r
234 result += region[1] - region[0] + 1;
\r
238 Clazz.defineMethod (c$, "findColumnPosition",
\r
239 function (hiddenColumn) {
\r
240 var result = hiddenColumn;
\r
241 if (this.hiddenColumns != null) {
\r
245 region = this.hiddenColumns.elementAt (index++);
\r
246 if (hiddenColumn > region[1]) {
\r
247 result -= region[1] + 1 - region[0];
\r
248 }} while ((hiddenColumn > region[1]) && (index < this.hiddenColumns.size ()));
\r
249 if (hiddenColumn > region[0] && hiddenColumn < region[1]) {
\r
250 return region[0] + hiddenColumn - result;
\r
253 Clazz.defineMethod (c$, "findHiddenRegionPosition",
\r
254 function (hiddenRegion) {
\r
256 if (this.hiddenColumns != null) {
\r
260 var region = this.hiddenColumns.elementAt (index);
\r
261 if (hiddenRegion == 0) {
\r
263 }gaps += region[1] + 1 - region[0];
\r
264 result = region[1] + 1;
\r
266 } while (index < hiddenRegion + 1);
\r
270 Clazz.defineMethod (c$, "getHiddenBoundaryRight",
\r
272 if (this.hiddenColumns != null) {
\r
275 var region = this.hiddenColumns.elementAt (index);
\r
276 if (alPos < region[0]) {
\r
279 } while (index < this.hiddenColumns.size ());
\r
282 Clazz.defineMethod (c$, "getHiddenBoundaryLeft",
\r
284 if (this.hiddenColumns != null) {
\r
285 var index = this.hiddenColumns.size () - 1;
\r
287 var region = this.hiddenColumns.elementAt (index);
\r
288 if (alPos > region[1]) {
\r
291 } while (index > -1);
\r
294 Clazz.defineMethod (c$, "hideSelectedColumns",
\r
296 while (this.size () > 0) {
\r
297 var column = this.getSelected ().firstElement ().intValue ();
\r
298 this.hideColumns (column);
\r
301 Clazz.defineMethod (c$, "hideColumns",
\r
302 function (start, end) {
\r
303 if (this.hiddenColumns == null) {
\r
304 this.hiddenColumns = new java.util.Vector ();
\r
305 }var added = false;
\r
306 var overlap = false;
\r
307 for (var i = 0; i < this.hiddenColumns.size (); i++) {
\r
308 var region = this.hiddenColumns.elementAt (i);
\r
309 if (start <= region[1] && end >= region[0]) {
\r
310 this.hiddenColumns.removeElementAt (i);
\r
313 } else if (end < region[0] && start < region[0]) {
\r
314 this.hiddenColumns.insertElementAt ( Clazz.newIntArray (-1, [start, end]), i);
\r
319 this.hideColumns (start, end);
\r
320 } else if (!added) {
\r
321 this.hiddenColumns.addElement ( Clazz.newIntArray (-1, [start, end]));
\r
323 Clazz.defineMethod (c$, "hideColumns",
\r
327 while (this.contains (min)) {
\r
328 this.removeElement (min);
\r
331 while (this.contains (max)) {
\r
332 this.removeElement (max);
\r
339 }this.hideColumns (min, max);
\r
341 Clazz.defineMethod (c$, "revealAllHiddenColumns",
\r
343 if (this.hiddenColumns != null) {
\r
344 for (var i = 0; i < this.hiddenColumns.size (); i++) {
\r
345 var region = this.hiddenColumns.elementAt (i);
\r
346 for (var j = region[0]; j < region[1] + 1; j++) {
\r
347 this.addElement (j);
\r
350 }this.hiddenColumns = null;
\r
352 Clazz.defineMethod (c$, "revealHiddenColumns",
\r
354 for (var i = 0; i < this.hiddenColumns.size (); i++) {
\r
355 var region = this.hiddenColumns.elementAt (i);
\r
356 if (res == region[0]) {
\r
357 for (var j = region[0]; j < region[1] + 1; j++) {
\r
358 this.addElement (j);
\r
360 this.hiddenColumns.removeElement (region);
\r
363 if (this.hiddenColumns.size () == 0) {
\r
364 this.hiddenColumns = null;
\r
366 Clazz.defineMethod (c$, "isVisible",
\r
367 function (column) {
\r
368 if (this.hiddenColumns != null) {
\r
369 for (var i = 0; i < this.hiddenColumns.size (); i++) {
\r
370 var region = this.hiddenColumns.elementAt (i);
\r
371 if (column >= region[0] && column <= region[1]) {
\r
376 Clazz.makeConstructor (c$,
\r
378 if (copy != null) {
\r
379 if (copy.selected != null) {
\r
380 this.selected = new java.util.Vector ();
\r
381 for (var i = 0, j = copy.selected.size (); i < j; i++) {
\r
382 this.selected.addElement (copy.selected.elementAt (i));
\r
384 }if (copy.hiddenColumns != null) {
\r
385 this.hiddenColumns = new java.util.Vector (copy.hiddenColumns.size ());
\r
386 for (var i = 0, j = copy.hiddenColumns.size (); i < j; i++) {
\r
389 rh = copy.hiddenColumns.elementAt (i);
\r
391 cp = Clazz.newIntArray (rh.length, 0);
\r
392 System.arraycopy (rh, 0, cp, 0, rh.length);
\r
393 this.hiddenColumns.addElement (cp);
\r
395 }}}, "jalview.datamodel.ColumnSelection");
\r
396 Clazz.makeConstructor (c$,
\r
399 Clazz.defineMethod (c$, "getVisibleSequenceStrings",
\r
400 function (start, end, seqs) {
\r
402 var iSize = seqs.length;
\r
403 var selection = new Array (iSize);
\r
404 if (this.hiddenColumns != null && this.hiddenColumns.size () > 0) {
\r
405 for (i = 0; i < iSize; i++) {
\r
406 var visibleSeq = new StringBuffer ();
\r
407 var regions = this.getHiddenColumns ();
\r
408 var blockStart = start;
\r
409 var blockEnd = end;
\r
413 for (var j = 0; j < regions.size (); j++) {
\r
414 region = regions.get (j);
\r
415 hideStart = region[0];
\r
416 hideEnd = region[1];
\r
417 if (hideStart < start) {
\r
419 }blockStart = Math.min (blockStart, hideEnd + 1);
\r
420 blockEnd = Math.min (blockEnd, hideStart);
\r
421 if (blockStart > blockEnd) {
\r
423 }visibleSeq.append (seqs[i].getSequence (blockStart, blockEnd));
\r
424 blockStart = hideEnd + 1;
\r
427 if (end > blockStart) {
\r
428 visibleSeq.append (seqs[i].getSequence (blockStart, end));
\r
429 }selection[i] = visibleSeq.toString ();
\r
432 for (i = 0; i < iSize; i++) {
\r
433 selection[i] = seqs[i].getSequenceAsString (start, end);
\r
437 Clazz.defineMethod (c$, "getVisibleContigs",
\r
438 function (start, end) {
\r
439 if (this.hiddenColumns != null && this.hiddenColumns.size () > 0) {
\r
440 var visiblecontigs = new java.util.ArrayList ();
\r
441 var regions = this.getHiddenColumns ();
\r
442 var vstart = start;
\r
446 for (var j = 0; vstart < end && j < regions.size (); j++) {
\r
447 region = regions.get (j);
\r
448 hideStart = region[0];
\r
449 hideEnd = region[1];
\r
450 if (hideEnd < vstart) {
\r
452 }if (hideStart > vstart) {
\r
453 visiblecontigs.add ( Clazz.newIntArray (-1, [vstart, hideStart - 1]));
\r
454 }vstart = hideEnd + 1;
\r
456 if (vstart < end) {
\r
457 visiblecontigs.add ( Clazz.newIntArray (-1, [vstart, end - 1]));
\r
458 }var vcontigs = Clazz.newIntArray (visiblecontigs.size () * 2, 0);
\r
459 for (var i = 0, j = visiblecontigs.size (); i < j; i++) {
\r
460 var vc = visiblecontigs.get (i);
\r
461 visiblecontigs.set (i, null);
\r
462 vcontigs[i * 2] = vc[0];
\r
463 vcontigs[i * 2 + 1] = vc[1];
\r
465 visiblecontigs.clear ();
\r
468 return Clazz.newIntArray (-1, [start, end - 1]);
\r
470 Clazz.defineMethod (c$, "makeVisibleAnnotation",
\r
471 function (alignmentAnnotation) {
\r
472 this.makeVisibleAnnotation (-1, -1, alignmentAnnotation);
\r
473 }, "jalview.datamodel.AlignmentAnnotation");
\r
474 Clazz.defineMethod (c$, "makeVisibleAnnotation",
\r
475 function (start, end, alignmentAnnotation) {
\r
476 if (alignmentAnnotation.annotations == null) {
\r
478 }if (start == end && end == -1) {
\r
480 end = alignmentAnnotation.annotations.length;
\r
481 }if (this.hiddenColumns != null && this.hiddenColumns.size () > 0) {
\r
482 var annels = new java.util.Vector ();
\r
484 var regions = this.getHiddenColumns ();
\r
485 var blockStart = start;
\r
486 var blockEnd = end;
\r
491 for (var j = 0; j < regions.size (); j++) {
\r
492 region = regions.get (j);
\r
493 hideStart = region[0];
\r
494 hideEnd = region[1];
\r
495 if (hideStart < start) {
\r
497 }blockStart = Math.min (blockStart, hideEnd + 1);
\r
498 blockEnd = Math.min (blockEnd, hideStart);
\r
499 if (blockStart > blockEnd) {
\r
501 }annels.addElement (els = new Array (blockEnd - blockStart));
\r
502 System.arraycopy (alignmentAnnotation.annotations, blockStart, els, 0, els.length);
\r
504 blockStart = hideEnd + 1;
\r
507 if (end > blockStart) {
\r
508 annels.addElement (els = new Array (end - blockStart + 1));
\r
509 if ((els.length + blockStart) <= alignmentAnnotation.annotations.length) {
\r
510 System.arraycopy (alignmentAnnotation.annotations, blockStart, els, 0, els.length);
\r
512 System.arraycopy (alignmentAnnotation.annotations, blockStart, els, 0, (alignmentAnnotation.annotations.length - blockStart));
\r
516 }alignmentAnnotation.annotations = new Array (w);
\r
518 for (var chnk, $chnk = annels.iterator (); $chnk.hasNext () && ((chnk = $chnk.next ()) || true);) {
\r
519 System.arraycopy (chnk, 0, alignmentAnnotation.annotations, w, chnk.length);
\r
523 alignmentAnnotation.restrict (start, end);
\r
524 }}, "~N,~N,jalview.datamodel.AlignmentAnnotation");
\r
525 Clazz.defineMethod (c$, "invertColumnSelection",
\r
526 function (first, width) {
\r
527 var hasHidden = this.hiddenColumns != null && this.hiddenColumns.size () > 0;
\r
528 for (var i = first; i < width; i++) {
\r
529 if (this.contains (i)) {
\r
530 this.removeElement (i);
\r
532 if (!hasHidden || this.isVisible (i)) {
\r
533 this.addElement (i);
\r
536 Clazz.defineMethod (c$, "addElementsFrom",
\r
537 function (colsel) {
\r
538 if (colsel != null && colsel.size () > 0) {
\r
539 for (var col, $col = colsel.getSelected ().iterator (); $col.hasNext () && ((col = $col.next ()) || true);) {
\r
540 if (this.hiddenColumns != null && this.isVisible (col.intValue ())) {
\r
541 if (!this.selected.contains (col)) {
\r
542 this.selected.addElement (col);
\r
544 }}, "jalview.datamodel.ColumnSelection");
\r
545 Clazz.defineMethod (c$, "setElementsFrom",
\r
546 function (colsel) {
\r
547 this.selected = new java.util.Vector ();
\r
548 if (colsel.selected != null && colsel.selected.size () > 0) {
\r
549 if (this.hiddenColumns != null && this.hiddenColumns.size () > 0) {
\r
550 this.addElementsFrom (colsel);
\r
552 for (var col, $col = colsel.getSelected ().iterator (); $col.hasNext () && ((col = $col.next ()) || true);) {
\r
553 this.addElement ((col).intValue ());
\r
555 }}}, "jalview.datamodel.ColumnSelection");
\r
556 c$.propagateInsertions = Clazz.defineMethod (c$, "propagateInsertions",
\r
557 function (profileseq, al, input) {
\r
559 var gc = al.getGapCharacter ();
\r
560 var alandcolsel = input.getAlignmentAndColumnSelection (gc);
\r
561 var nview = alandcolsel[1];
\r
562 var origseq = (alandcolsel[0])[profsqpos];
\r
563 nview.propagateInsertions (profileseq, al, origseq);
\r
565 }, "jalview.datamodel.SequenceI,jalview.datamodel.AlignmentI,jalview.datamodel.AlignmentView");
\r
566 Clazz.defineMethod (c$, "propagateInsertions",
\r
567 function (profileseq, al, origseq) {
\r
568 var gc = al.getGapCharacter ();
\r
569 this.pruneDeletions (jalview.util.ShiftList.parseMap (origseq.gapMap ()));
\r
570 var viscontigs = this.getVisibleContigs (0, profileseq.getLength ());
\r
573 for (var v = 0; v < viscontigs.length; v += 2) {
\r
574 if (viscontigs[v] > spos) {
\r
575 var sb = new StringBuffer ();
\r
576 for (var s = 0, ns = viscontigs[v] - spos; s < ns; s++) {
\r
579 for (var s = 0, ns = al.getHeight (); s < ns; s++) {
\r
580 var sqobj = al.getSequenceAt (s);
\r
581 if (sqobj !== profileseq) {
\r
582 var sq = al.getSequenceAt (s).getSequenceAsString ();
\r
583 if (sq.length <= spos + offset) {
\r
584 var diff = spos + offset - sq.length - 1;
\r
587 while ((diff = spos + offset - sq.length - 1) > 0) {
\r
588 if (diff >= sb.length ()) {
\r
589 sq += sb.toString ();
\r
591 var buf = Clazz.newCharArray (diff, '\0');
\r
592 sb.getChars (0, diff, buf, 0);
\r
593 sq += buf.toString ();
\r
595 }sq += sb.toString ();
\r
597 al.getSequenceAt (s).setSequence (sq.substring (0, spos + offset) + sb.toString () + sq.substring (spos + offset));
\r
599 }spos = viscontigs[v + 1] + 1;
\r
601 if ((offset + spos) < profileseq.getLength ()) {
\r
602 var sb = new StringBuffer ();
\r
603 for (var s = 0, ns = profileseq.getLength () - spos - offset; s < ns; s++) {
\r
606 for (var s = 0, ns = al.getHeight (); s < ns; s++) {
\r
607 var sqobj = al.getSequenceAt (s);
\r
608 if (sqobj === profileseq) {
\r
610 }var sq = sqobj.getSequenceAsString ();
\r
611 var diff = origseq.getLength () - sq.length;
\r
613 if (diff >= sb.length ()) {
\r
614 sq += sb.toString ();
\r
616 var buf = Clazz.newCharArray (diff, '\0');
\r
617 sb.getChars (0, diff, buf, 0);
\r
618 sq += buf.toString ();
\r
619 }diff = origseq.getLength () - sq.length;
\r
622 }}, "jalview.datamodel.SequenceI,jalview.datamodel.AlignmentI,jalview.datamodel.SequenceI");
\r
623 Clazz.defineMethod (c$, "hasSelectedColumns",
\r
625 return (this.selected != null && this.selected.size () > 0);
\r
627 Clazz.defineMethod (c$, "hasHiddenColumns",
\r
629 return this.hiddenColumns != null && this.hiddenColumns.size () > 0;
\r
631 Clazz.defineMethod (c$, "hasManyHiddenColumns",
\r
633 return this.hiddenColumns != null && this.hiddenColumns.size () > 1;
\r
635 Clazz.defineMethod (c$, "hideInsertionsFor",
\r
637 var inserts = sr.getInsertions ();
\r
638 for (var r, $r = inserts.iterator (); $r.hasNext () && ((r = $r.next ()) || true);) {
\r
639 this.hideColumns (r[0], r[1]);
\r
641 }, "jalview.datamodel.SequenceI");
\r
642 Clazz.defineMethod (c$, "filterAnnotations",
\r
643 function (annotations, filterParams) {
\r
644 this.revealAllHiddenColumns ();
\r
648 if (annotations[count] != null) {
\r
649 var itemMatched = false;
\r
650 if (filterParams.getThresholdType () === jalview.viewmodel.annotationfilter.AnnotationFilterParameter.ThresholdType.ABOVE_THRESHOLD && annotations[count].value >= filterParams.getThresholdValue ()) {
\r
651 itemMatched = true;
\r
652 }if (filterParams.getThresholdType () === jalview.viewmodel.annotationfilter.AnnotationFilterParameter.ThresholdType.BELOW_THRESHOLD && annotations[count].value <= filterParams.getThresholdValue ()) {
\r
653 itemMatched = true;
\r
654 }if (filterParams.isFilterAlphaHelix () && annotations[count].secondaryStructure == 'H') {
\r
655 itemMatched = true;
\r
656 }if (filterParams.isFilterBetaSheet () && annotations[count].secondaryStructure == 'E') {
\r
657 itemMatched = true;
\r
658 }if (filterParams.isFilterTurn () && annotations[count].secondaryStructure == 'S') {
\r
659 itemMatched = true;
\r
660 }var regexSearchString = filterParams.getRegexString ();
\r
661 if (regexSearchString != null && !filterParams.getRegexSearchFields ().isEmpty ()) {
\r
662 var fields = filterParams.getRegexSearchFields ();
\r
664 if (fields.contains (jalview.viewmodel.annotationfilter.AnnotationFilterParameter.SearchableAnnotationField.DISPLAY_STRING) && annotations[count].displayCharacter.matches (regexSearchString)) {
\r
665 itemMatched = true;
\r
667 if (Clazz.exceptionOf (pse, java.util.regex.PatternSyntaxException)) {
\r
668 if (annotations[count].displayCharacter.equals (regexSearchString)) {
\r
669 itemMatched = true;
\r
674 if (fields.contains (jalview.viewmodel.annotationfilter.AnnotationFilterParameter.SearchableAnnotationField.DESCRIPTION) && annotations[count].description != null && annotations[count].description.matches (regexSearchString)) {
\r
675 itemMatched = true;
\r
676 }}if (itemMatched) {
\r
677 this.addElement (count);
\r
679 } while (count < annotations.length);
\r
681 }, "~A,jalview.viewmodel.annotationfilter.AnnotationFilterParameter");
\r