H key updates
[jalview.git] / src / jalview / gui / AlignViewport.java
index fde4d90..bccb877 100755 (executable)
@@ -1118,22 +1118,55 @@ public class AlignViewport
         colSel.hideColumns(start);\r
       else\r
         colSel.hideColumns(start, end);\r
-      setSelectionGroup(null);\r
+\r
       hasHiddenColumns = true;\r
     }\r
 \r
+    public void hideAllSelectedSeqs()\r
+    {\r
+      if (selectionGroup == null)\r
+        return;\r
+\r
+      SequenceI[] seqs = selectionGroup.getSequencesInOrder(alignment);\r
+\r
+      for (int i = 0; i < seqs.length; i++)\r
+      {\r
+        alignment.getHiddenSequences().hideSequence(seqs[i]);\r
+      }\r
+      firePropertyChange("alignment", null, alignment.getSequences());\r
+      hasHiddenRows = true;\r
+      setSelectionGroup(null);\r
+    }\r
+\r
     public void hideSequence(SequenceI seq)\r
     {\r
       if(seq!=null)\r
       {\r
         alignment.getHiddenSequences().hideSequence(seq);\r
         hasHiddenRows = true;\r
+        firePropertyChange("alignment", null, alignment.getSequences());\r
       }\r
     }\r
 \r
     public void showSequence(int index)\r
     {\r
-      alignment.getHiddenSequences().showSequence(index);\r
+      Vector tmp = alignment.getHiddenSequences().showSequence(index);\r
+      if(tmp.size()>0)\r
+      {\r
+        if(selectionGroup==null)\r
+        {\r
+          selectionGroup = new SequenceGroup();\r
+          selectionGroup.setEndRes(alignment.getWidth()-1);\r
+        }\r
+\r
+        for (int t = 0; t < tmp.size(); t++)\r
+        {\r
+          selectionGroup.addSequence(\r
+              (SequenceI) tmp.elementAt(t), false\r
+              );\r
+        }\r
+        firePropertyChange("alignment", null, alignment.getSequences());\r
+      }\r
 \r
       if(alignment.getHiddenSequences().getSize()<1)\r
         hasHiddenRows = false;\r
@@ -1156,11 +1189,39 @@ public class AlignViewport
     {\r
       if(alignment.getHiddenSequences().getSize()>0)\r
       {\r
-        alignment.getHiddenSequences().showAll();\r
+        if(selectionGroup==null)\r
+        {\r
+          selectionGroup = new SequenceGroup();\r
+          selectionGroup.setEndRes(alignment.getWidth()-1);\r
+        }\r
+        Vector tmp = alignment.getHiddenSequences().showAll();\r
+        for(int t=0; t<tmp.size(); t++)\r
+        {\r
+          selectionGroup.addSequence(\r
+              (SequenceI)tmp.elementAt(t), false\r
+              );\r
+        }\r
+        firePropertyChange("alignment", null, alignment.getSequences());\r
         hasHiddenRows = false;\r
       }\r
     }\r
 \r
+    public void invertColumnSelection()\r
+    {\r
+      int column;\r
+      for(int i=0; i<alignment.getWidth(); i++)\r
+      {\r
+        column = i;\r
+\r
+        if(colSel.contains(column))\r
+          colSel.removeElement(column);\r
+        else\r
+          colSel.addElement(column);\r
+\r
+      }\r
+\r
+    }\r
+\r
     public int adjustForHiddenSeqs(int alignmentIndex)\r
     {\r
       return alignment.getHiddenSequences().adjustForHiddenSeqs(alignmentIndex);\r