X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fcontroller%2FAlignViewController.java;h=972b6ab43282f0ef9e913b452a146ba3ddbfbcae;hb=43b415c68805f3dec44a6ddc666d52220483c120;hp=7b42a30e5f38e6c3196316be485deef3e2a1e6d8;hpb=95de746a08351b07696a0c455ef37d866c8104d2;p=jalview.git diff --git a/src/jalview/controller/AlignViewController.java b/src/jalview/controller/AlignViewController.java index 7b42a30..972b6ab 100644 --- a/src/jalview/controller/AlignViewController.java +++ b/src/jalview/controller/AlignViewController.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) - * Copyright (C) 2014 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * @@ -28,15 +28,12 @@ import jalview.api.AlignmentViewPanel; import jalview.api.FeatureRenderer; import jalview.commands.OrderCommand; import jalview.datamodel.AlignmentI; -import jalview.datamodel.Annotation; import jalview.datamodel.ColumnSelection; import jalview.datamodel.SequenceCollectionI; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; import jalview.util.MessageManager; -import jalview.viewmodel.annotationfilter.AnnotationFilterParameter; -import jalview.viewmodel.annotationfilter.AnnotationFilterParameter.SearchableAnnotationField; import java.awt.Color; import java.util.ArrayList; @@ -82,14 +79,26 @@ public class AlignViewController implements AlignViewControllerI @Override public boolean makeGroupsFromSelection() { - - if (viewport.getSelectionGroup() != null) + SequenceGroup sg = viewport.getSelectionGroup(); + ColumnSelection cs = viewport.getColumnSelection(); + SequenceGroup[] gps = null; + if (sg != null + && (cs == null || cs.getSelected() == null || cs.size() == 0)) { - SequenceGroup[] gps = jalview.analysis.Grouping.makeGroupsFrom( + gps = jalview.analysis.Grouping.makeGroupsFrom( viewport.getSequenceSelection(), viewport.getAlignmentView(true).getSequenceStrings( viewport.getGapCharacter()), viewport.getAlignment() .getGroups()); + } else { + if (cs!=null) { + gps = jalview.analysis.Grouping.makeGroupsFromCols( + (sg == null) ? viewport.getAlignment().getSequencesArray() + : sg.getSequences().toArray(new SequenceI[0]), cs, + viewport.getAlignment().getGroups()); + } + } + if (gps!=null) { viewport.getAlignment().deleteAllGroups(); viewport.clearSequenceColours(); viewport.setSelectionGroup(null); @@ -170,13 +179,7 @@ public class AlignViewController implements AlignViewControllerI int tfeat = 0; if (sq != null) { - SequenceI dsq = sq.getDatasetSequence(); - while (dsq.getDatasetSequence() != null) - { - dsq = dsq.getDatasetSequence(); - } - ; - SequenceFeature[] sf = dsq.getSequenceFeatures(); + SequenceFeature[] sf = sq.getSequenceFeatures(); if (sf != null) { int ist = sq.findIndex(sq.getStart()); @@ -305,90 +308,7 @@ public class AlignViewController implements AlignViewControllerI } } - public static boolean filterAnnotations(Annotation[] annotations, - AnnotationFilterParameter filterParams, ColumnSelection cs) - { - cs.revealAllHiddenColumns(); - cs.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 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) - { - cs.addElement(count); - } - } - count++; - } while (count < annotations.length); - return false; - } @Override public void sortAlignmentByFeatureDensity(String[] typ)