X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fcontroller%2FAlignViewController.java;h=fd5a8730441c4e9182e08899232a67223a5392d0;hb=17e77c3f2949a0729322b4a8d907f3f34b6a9914;hp=7e41f7703979316644dedf29b892dc0b2cc7685d;hpb=25aaaa87042b3f507ad4348120df7dd073182759;p=jalview.git diff --git a/src/jalview/controller/AlignViewController.java b/src/jalview/controller/AlignViewController.java index 7e41f77..fd5a873 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.2b1) - * Copyright (C) 2014 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9) + * Copyright (C) 2015 The Jalview Authors * * This file is part of Jalview. * @@ -33,6 +33,7 @@ import jalview.datamodel.SequenceCollectionI; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; +import jalview.io.FeaturesFile; import jalview.util.MessageManager; import java.awt.Color; @@ -85,20 +86,23 @@ public class AlignViewController implements AlignViewControllerI if (sg != null && (cs == null || cs.getSelected() == null || cs.size() == 0)) { - gps = jalview.analysis.Grouping.makeGroupsFrom( - viewport.getSequenceSelection(), - viewport.getAlignmentView(true).getSequenceStrings( - viewport.getGapCharacter()), viewport.getAlignment() - .getGroups()); - } else { - if (cs!=null) { + 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) { + if (gps != null) + { viewport.getAlignment().deleteAllGroups(); viewport.clearSequenceColours(); viewport.setSelectionGroup(null); @@ -179,13 +183,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()); @@ -294,17 +292,22 @@ public class AlignViewController implements AlignViewControllerI } viewport.setColumnSelection(cs); alignPanel.paintAlignment(true); - avcg.setStatus(MessageManager.formatMessage("label.view_controller_toggled_marked", - new String[]{ - (toggle ? MessageManager.getString("label.toggled") : MessageManager.getString("label.marked")), - (invert ? (Integer.valueOf((alw - alStart) - bs.cardinality()).toString()):(Integer.valueOf(bs.cardinality()).toString())), - featureType, Integer.valueOf(nseq).toString() - })); + avcg.setStatus(MessageManager.formatMessage( + "label.view_controller_toggled_marked", + new String[] { + (toggle ? MessageManager.getString("label.toggled") + : MessageManager.getString("label.marked")), + (invert ? (Integer.valueOf((alw - alStart) + - bs.cardinality()).toString()) : (Integer + .valueOf(bs.cardinality()).toString())), + featureType, Integer.valueOf(nseq).toString() })); return true; } else { - avcg.setStatus(MessageManager.formatMessage("label.no_feature_of_type_found", new String[]{featureType})); + avcg.setStatus(MessageManager.formatMessage( + "label.no_feature_of_type_found", + new String[] { featureType })); if (!extendCurrent && cs != null) { cs.clear(); @@ -314,8 +317,6 @@ public class AlignViewController implements AlignViewControllerI } } - - @Override public void sortAlignmentByFeatureDensity(String[] typ) { @@ -327,10 +328,10 @@ public class AlignViewController implements AlignViewControllerI FeatureRenderer fr = alignPanel.getFeatureRenderer(); if (typ == null) { - typ = fr==null ? null : fr.getDisplayedFeatureTypes(); + typ = fr == null ? null : fr.getDisplayedFeatureTypes(); } String gps[] = null; - gps = fr==null ? null : fr.getDisplayedFeatureGroups(); + gps = fr == null ? null : fr.getDisplayedFeatureGroups(); if (typ != null) { ArrayList types = new ArrayList(); @@ -385,4 +386,38 @@ public class AlignViewController implements AlignViewControllerI { sortBy(typ, "Sort by Feature Score", AlignmentSorter.FEATURE_SCORE); } + + @Override + public boolean parseFeaturesFile(String file, String protocol, + boolean relaxedIdMatching) + { + boolean featuresFile = false; + try + { + featuresFile = new FeaturesFile(file, protocol).parse(viewport + .getAlignment().getDataset(), alignPanel.getFeatureRenderer() + .getFeatureColours(), false, relaxedIdMatching); + } catch (Exception ex) + { + ex.printStackTrace(); + } + + if (featuresFile) + { + avcg.refreshFeatureUI(true); + if (alignPanel.getFeatureRenderer() != null) + { + // update the min/max ranges where necessary + alignPanel.getFeatureRenderer().findAllFeatures(true); + } + if (avcg.getFeatureSettingsUI() != null) + { + avcg.getFeatureSettingsUI().discoverAllFeatureData(); + } + alignPanel.paintAlignment(true); + } + + return featuresFile; + + } }