X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fcontroller%2FAlignViewController.java;h=3b546415a7906b1427825f7c361f2a076eac5452;hb=b04bbad58a8dd34fe773dfeb758e71e64606ed9e;hp=1b7ee71bc0b2084e0c43524a9572b8a4ab07d182;hpb=a218846f58ddfd7c6503f79a61f55fddb9ec016e;p=jalview.git diff --git a/src/jalview/controller/AlignViewController.java b/src/jalview/controller/AlignViewController.java index 1b7ee71..3b54641 100644 --- a/src/jalview/controller/AlignViewController.java +++ b/src/jalview/controller/AlignViewController.java @@ -20,11 +20,6 @@ */ package jalview.controller; -import java.awt.Color; -import java.util.ArrayList; -import java.util.BitSet; -import java.util.List; - import jalview.analysis.AlignmentSorter; import jalview.api.AlignViewControllerGuiI; import jalview.api.AlignViewControllerI; @@ -38,6 +33,12 @@ import jalview.datamodel.SequenceCollectionI; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; +import jalview.util.MessageManager; + +import java.awt.Color; +import java.util.ArrayList; +import java.util.BitSet; +import java.util.List; public class AlignViewController implements AlignViewControllerI { @@ -78,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); @@ -99,7 +112,9 @@ public class AlignViewController implements AlignViewControllerI (int) (Math.random() * 255), (int) (Math.random() * 255)); col = col.brighter(); for (SequenceI sq : gps[g].getSequences(null)) + { viewport.setSequenceColour(sq, col); + } } return true; } @@ -279,16 +294,17 @@ public class AlignViewController implements AlignViewControllerI } viewport.setColumnSelection(cs); alignPanel.paintAlignment(true); - avcg.setStatus((toggle ? "Toggled " : "Marked ") - + (invert ? (alw - alStart) - bs.cardinality() : bs - .cardinality()) + " columns " - + (invert ? "not " : "") + "containing features of type " - + featureType + " across " + nseq + " sequence(s)"); + 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("No features of type " + featureType + " found."); + avcg.setStatus(MessageManager.formatMessage("label.no_feature_of_type_found", new String[]{featureType})); if (!extendCurrent && cs != null) { cs.clear(); @@ -298,6 +314,8 @@ public class AlignViewController implements AlignViewControllerI } } + + @Override public void sortAlignmentByFeatureDensity(String[] typ) {