X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignViewport.java;h=37422590d4306f1fe2bf136981b554fd2487fbed;hb=3d32993c37812a293d61b8cb746ac8a4f246bed0;hp=edbfde587f2ac72eb466cfceb7c3b158d3c6af54;hpb=df9b85c1cf39894039018499fe802406cc37f209;p=jalview.git diff --git a/src/jalview/gui/AlignViewport.java b/src/jalview/gui/AlignViewport.java index edbfde5..3742259 100755 --- a/src/jalview/gui/AlignViewport.java +++ b/src/jalview/gui/AlignViewport.java @@ -74,6 +74,7 @@ public class AlignViewport boolean scaleRightWrapped = true; boolean hasHiddenColumns = false; boolean hasHiddenRows = false; + boolean showHiddenMarkers = true; boolean cursorMode = false; @@ -1119,10 +1120,44 @@ public class AlignViewport return isDataset; } + + public void hideSelectedColumns() + { + if (colSel.selected.size() < 1) + return; + + while (colSel.selected.size() > 0) + { + int column = ( (Integer) colSel.selected.firstElement()).intValue(); + colSel.hideColumns(column); + } + setSelectionGroup(null); + hasHiddenColumns = true; + } + + + public void hideColumns(int start, int end) + { + if(start==end) + end++; + + for(int i=start; i0) + { + alignment.getHiddenSequences().showAll(); + hasHiddenRows = false; + } } public int adjustForHiddenSeqs(int alignmentIndex) { return alignment.getHiddenSequences().adjustForHiddenSeqs(alignmentIndex); } + + /** + * This method returns the a new SequenceI [] with + * the selection sequence and start and end points adjusted + * @return String[] + */ + public SequenceI[] getSelectionAsNewSequence() + { + SequenceI[] sequences; + + if (selectionGroup == null) + sequences = alignment.getSequencesArray(); + else + sequences = selectionGroup.getSelectionAsNewSequences(alignment); + + return sequences; + } + + + /** + * This method returns the visible alignment as text, as + * seen on the GUI, ie if columns are hidden they will not + * be returned in the result. + * Use this for calculating trees, PCA, redundancy etc on views + * which contain hidden columns. + * @return String[] + */ + public String [] getViewAsString(boolean selectedRegionOnly) + { + String [] selection = null; + SequenceI [] seqs= null; + int i, iSize; + int start = 0, end = 0; + if(selectedRegionOnly && selectionGroup!=null) + { + iSize = selectionGroup.getSize(false); + seqs = selectionGroup.getSequencesInOrder(alignment); + start = selectionGroup.getStartRes(); + end = selectionGroup.getEndRes()+1; + } + else + { + iSize = alignment.getHeight(); + seqs = alignment.getSequencesArray(); + end = alignment.getWidth(); + } + + selection = new String[iSize]; + + + for(i=0; iblockEnd) + { + break; + } + + + visibleSeq.append(seqs[i].getSequence(blockStart, blockEnd)); + + blockStart = hideEnd+1; + blockEnd = end; + } + + if(end>blockStart) + visibleSeq.append(seqs[i].getSequence(blockStart, end)); + + selection[i] = visibleSeq.toString(); + } + else + { + selection[i] = seqs[i].getSequence(start, end); + } + } + + return selection; + } + + public boolean getShowHiddenMarkers() + { + return showHiddenMarkers; + } + + public void setShowHiddenMarkers(boolean show) + { + showHiddenMarkers = show; + } }