X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignViewport.java;h=bccb877e88d0ac0718339da63e2fabd4ea033e44;hb=76b5c58c65413e8b239dbf71999f500600ef0f95;hp=af5938885ca77f8110f813021b189097022fe36d;hpb=e33cdacd2ac2836504375c538574a0f1cafec7e3;p=jalview.git diff --git a/src/jalview/gui/AlignViewport.java b/src/jalview/gui/AlignViewport.java index af59388..bccb877 100755 --- a/src/jalview/gui/AlignViewport.java +++ b/src/jalview/gui/AlignViewport.java @@ -121,6 +121,20 @@ public class AlignViewport setAlignment(al); init(); } + /** + * Create a new AlignViewport with hidden regions + * @param al AlignmentI + * @param hiddenColumns ColumnSelection + */ + public AlignViewport(AlignmentI al, ColumnSelection hiddenColumns) { + setAlignment(al); + if (hiddenColumns!=null) { + this.colSel = hiddenColumns; + if (hiddenColumns.getHiddenColumns() != null) + hasHiddenColumns = true; + } + init(); + } void init() { @@ -873,41 +887,6 @@ public class AlignViewport return increment; } - /** - * DOCUMENT ME! - * - * @param y DOCUMENT ME! - * - * @return DOCUMENT ME! - */ - public int getIndex(int y) - { - int y1 = 0; - int starty = getStartSeq(); - int endy = getEndSeq(); - - for (int i = starty; i <= endy; i++) - { - if ((i < alignment.getHeight()) && - (alignment.getSequenceAt(i) != null)) - { - int y2 = y1 + getCharHeight(); - - if ((y >= y1) && (y <= y2)) - { - return i; - } - - y1 = y2; - } - else - { - return -1; - } - } - - return -1; - } /** * DOCUMENT ME! @@ -1139,22 +1118,55 @@ public class AlignViewport colSel.hideColumns(start); else colSel.hideColumns(start, end); - setSelectionGroup(null); + hasHiddenColumns = true; } + public void hideAllSelectedSeqs() + { + if (selectionGroup == null) + return; + + SequenceI[] seqs = selectionGroup.getSequencesInOrder(alignment); + + for (int i = 0; i < seqs.length; i++) + { + alignment.getHiddenSequences().hideSequence(seqs[i]); + } + firePropertyChange("alignment", null, alignment.getSequences()); + hasHiddenRows = true; + setSelectionGroup(null); + } + public void hideSequence(SequenceI seq) { if(seq!=null) { alignment.getHiddenSequences().hideSequence(seq); hasHiddenRows = true; + firePropertyChange("alignment", null, alignment.getSequences()); } } public void showSequence(int index) { - alignment.getHiddenSequences().showSequence(index); + Vector tmp = alignment.getHiddenSequences().showSequence(index); + if(tmp.size()>0) + { + if(selectionGroup==null) + { + selectionGroup = new SequenceGroup(); + selectionGroup.setEndRes(alignment.getWidth()-1); + } + + for (int t = 0; t < tmp.size(); t++) + { + selectionGroup.addSequence( + (SequenceI) tmp.elementAt(t), false + ); + } + firePropertyChange("alignment", null, alignment.getSequences()); + } if(alignment.getHiddenSequences().getSize()<1) hasHiddenRows = false; @@ -1177,11 +1189,39 @@ public class AlignViewport { if(alignment.getHiddenSequences().getSize()>0) { - alignment.getHiddenSequences().showAll(); + if(selectionGroup==null) + { + selectionGroup = new SequenceGroup(); + selectionGroup.setEndRes(alignment.getWidth()-1); + } + Vector tmp = alignment.getHiddenSequences().showAll(); + for(int t=0; t