-
- /**
- *
- * @return true if there are columns marked
- */
- public boolean hasSelectedColumns()
- {
- return (selected != null && selected.size() > 0);
- }
-
- /**
- *
- * @return true if there are columns hidden
- */
- public boolean hasHiddenColumns()
- {
- return hiddenColumns != null && hiddenColumns.size() > 0;
- }
-
- /**
- *
- * @return true if there are more than one set of columns hidden
- */
- public boolean hasManyHiddenColumns()
- {
- return hiddenColumns != null && hiddenColumns.size() > 1;
- }
-
- /**
- * mark the columns corresponding to gap characters as hidden in the column
- * selection
- *
- * @param sr
- */
- public void hideInsertionsFor(SequenceI sr)
- {
- List<int[]> inserts = sr.getInsertions();
- for (int[] r : inserts)
- {
- hideColumns(r[0], r[1]);
- }
- }
-
- public boolean filterAnnotations(Annotation[] annotations,
- AnnotationFilterParameter filterParams)
- {
- this.revealAllHiddenColumns();
- this.clear();
- int count = 0;
- do
- {
- if (annotations[count] != null)
- {
-
- boolean itemMatched = false;
-
- if (filterParams.getThresholdType() == AnnotationFilterParameter.ThresholdType.ABOVE_THRESHOLD
- && annotations[count].value >= filterParams
- .getThresholdValue())
- {
- itemMatched = true;
- }
- if (filterParams.getThresholdType() == AnnotationFilterParameter.ThresholdType.BELOW_THRESHOLD
- && annotations[count].value <= filterParams
- .getThresholdValue())
- {
- itemMatched = true;
- }
-
- if (filterParams.isFilterAlphaHelix()
- && annotations[count].secondaryStructure == 'H')
- {
- itemMatched = true;
- }
-
- if (filterParams.isFilterBetaSheet()
- && annotations[count].secondaryStructure == 'E')
- {
- itemMatched = true;
- }
-
- if (filterParams.isFilterTurn()
- && annotations[count].secondaryStructure == 'S')
- {
- itemMatched = true;
- }
-
- String regexSearchString = filterParams.getRegexString();
- if (regexSearchString != null
- && !filterParams.getRegexSearchFields().isEmpty())
- {
- List<SearchableAnnotationField> fields = filterParams
- .getRegexSearchFields();
- try
- {
- if (fields.contains(SearchableAnnotationField.DISPLAY_STRING)
- && annotations[count].displayCharacter
- .matches(regexSearchString))
- {
- itemMatched = true;
- }
- } catch (java.util.regex.PatternSyntaxException pse)
- {
- if (annotations[count].displayCharacter
- .equals(regexSearchString))
- {
- itemMatched = true;
- }
- }
- if (fields.contains(SearchableAnnotationField.DESCRIPTION)
- && annotations[count].description != null
- && annotations[count].description
- .matches(regexSearchString))
- {
- itemMatched = true;
- }
- }
-
- if (itemMatched)
- {
- this.addElement(count);
- }
- }
- count++;
- } while (count < annotations.length);
- return false;
- }