X-Git-Url: http://source.jalview.org/gitweb/?p=jalview.git;a=blobdiff_plain;f=src%2Fjalview%2Fcontroller%2FAlignViewController.java;fp=src%2Fjalview%2Fcontroller%2FAlignViewController.java;h=443433134510475fc17e9ed5d4ee045d4f62f35b;hp=2fb9cdde4123dfdd87d0208c5263733991cad964;hb=c1e71094304dcd2b975c485416ec5e25cca30815;hpb=bd990168d0b3c7772c961b56144c3dee94a09054 diff --git a/src/jalview/controller/AlignViewController.java b/src/jalview/controller/AlignViewController.java index 2fb9cdd..4434331 100644 --- a/src/jalview/controller/AlignViewController.java +++ b/src/jalview/controller/AlignViewController.java @@ -20,6 +20,10 @@ */ package jalview.controller; +import java.awt.Color; +import java.util.BitSet; +import java.util.List; + import jalview.analysis.AlignmentSorter; import jalview.api.AlignViewControllerGuiI; import jalview.api.AlignViewControllerI; @@ -29,19 +33,17 @@ import jalview.api.FeatureRenderer; import jalview.commands.OrderCommand; import jalview.datamodel.AlignmentI; import jalview.datamodel.ColumnSelection; +import jalview.datamodel.SearchResultsI; import jalview.datamodel.SequenceCollectionI; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; +import jalview.gui.Desktop; import jalview.io.DataSourceType; import jalview.io.FeaturesFile; import jalview.schemes.ColourSchemeI; import jalview.util.MessageManager; -import java.awt.Color; -import java.util.BitSet; -import java.util.List; - public class AlignViewController implements AlignViewControllerI { AlignViewportI viewport = null; @@ -471,4 +473,31 @@ public class AlignViewController implements AlignViewControllerI return false; } + @Override + public boolean copyHighlightedRegionsToClipboard() + { + if (!viewport.hasSearchResults()) + { + // do nothing if no selection exists + return false; + } + + SearchResultsI searchResults = viewport.getSearchResults(); + if (searchResults.isEmpty()) + { + return false; // shouldn't happen + } + List seqs = searchResults.getMatchingSubSequences(); + + // TODO: pass in hiddenColumns according to intersection of searchResults + // and visible columns. Currently this isn't done, since each contig becomes + // a single subsequence + Desktop.jalviewClipboard = new Object[] { + seqs.toArray(new SequenceI[0]), + alignPanel.getAlignment().getDataset(), null }; + avcg.setStatus(MessageManager.formatMessage( + "label.copied_sequences_to_clipboard", seqs.size())); + // Technically we should return false, since view has not changed + return false; + } }