removed deprecated bits
[jalview.git] / src / jalview / appletgui / SeqPanel.java
index feda697..8b9b5cb 100755 (executable)
@@ -215,7 +215,7 @@ public class SeqPanel
        SequenceGroup sg = av.selectionGroup;\r
        //Find the top and bottom of this group\r
        int min = av.alignment.getHeight(), max = 0;\r
-       for(int i=0; i<sg.getSize(false); i++)\r
+       for(int i=0; i<sg.getSize(); i++)\r
        {\r
          int index = av.alignment.findIndex( sg.getSequenceAt(i) );\r
          if(index > max)\r
@@ -251,7 +251,7 @@ public class SeqPanel
        else\r
        {\r
          // Now add any sequences between min and max\r
-         sg.getSequences(false).removeAllElements();\r
+         sg.getSequences(null).removeAllElements();\r
          for (int i = min; i < max; i++)\r
          {\r
            sg.addSequence(av.alignment.getSequenceAt(i), false);\r
@@ -522,12 +522,16 @@ public class SeqPanel
 \r
     if (seq >= av.getAlignment().getHeight() || seq<0 || res<0)\r
     {\r
+      if(tooltip!=null)\r
+        tooltip.setTip("");\r
       return;\r
     }\r
 \r
     SequenceI sequence = av.getAlignment().getSequenceAt(seq);\r
     if (res > sequence.getLength())\r
     {\r
+      if(tooltip!=null)\r
+        tooltip.setTip("");\r
       return;\r
     }\r
 \r
@@ -564,13 +568,30 @@ public class SeqPanel
 \r
     ap.alignFrame.statusBar.setText(text.toString());\r
 \r
+    StringBuffer tooltipText = new StringBuffer();\r
+    SequenceGroup []  groups = av.alignment.findAllGroups(sequence);\r
+    if(groups!=null)\r
+    {\r
+      for(int g=0; g<groups.length; g++)\r
+      {\r
+        if(groups[g].getStartRes()<=res && groups[g].getEndRes()>=res)\r
+        {\r
+          if (!groups[g].getName().startsWith("JTreeGroup") &&\r
+              !groups[g].getName().startsWith("JGroup"))\r
+            tooltipText.append(groups[g].getName() + " ");\r
+          if(groups[g].getDescription()!=null)\r
+            tooltipText.append(groups[g].getDescription());\r
+          tooltipText.append("\n");\r
+        }\r
+      }\r
+    }\r
 \r
     // use aa to see if the mouse pointer is on a\r
     if (av.showSequenceFeatures\r
         && sequence.getSequenceFeatures()!=null\r
         && av.featuresDisplayed!=null)\r
     {\r
-      StringBuffer featureText = new StringBuffer();\r
+\r
       Vector allFeatures = getAllFeaturesAtRes(sequence, sequence.findPosition(res));\r
 \r
       int index = 0;\r
@@ -578,35 +599,27 @@ public class SeqPanel
       {\r
         SequenceFeature sf = (SequenceFeature) allFeatures.elementAt(index);\r
 \r
-        featureText.append(sf.getType()+" "+sf.begin+":"+sf.end);\r
+        tooltipText.append(sf.getType()+" "+sf.begin+":"+sf.end);\r
 \r
         if (sf.getDescription() != null)\r
-          featureText.append(" " + sf.getDescription());\r
+          tooltipText.append(" " + sf.getDescription());\r
 \r
         if (sf.getValue("status") != null )\r
         {\r
           String status = sf.getValue("status").toString();\r
           if(status.length()>0)\r
-            featureText.append(" (" + sf.getValue("status") + ")");\r
+            tooltipText.append(" (" + sf.getValue("status") + ")");\r
         }\r
-        featureText.append("\n");\r
+        tooltipText.append("\n");\r
 \r
         index++;\r
       }\r
-\r
-\r
-        if (tooltip == null)\r
-          tooltip = new Tooltip(featureText.toString(), seqCanvas);\r
-        else\r
-          tooltip.setTip(featureText.toString());\r
-\r
-        tooltip.repaint();\r
-\r
     }\r
-    else if (tooltip != null)\r
-     {\r
-       tooltip.setTip("");\r
-     }\r
+\r
+    if (tooltip == null)\r
+      tooltip = new Tooltip(tooltipText.toString(), seqCanvas);\r
+    else\r
+      tooltip.setTip(tooltipText.toString());\r
   }\r
 \r
   Vector getAllFeaturesAtRes(SequenceI seq, int res)\r
@@ -730,24 +743,18 @@ public class SeqPanel
     boolean fixedColumns = false;\r
     SequenceGroup sg = av.getSelectionGroup();\r
 \r
+    SequenceI seq = av.alignment.getSequenceAt(startseq);\r
 \r
       if (!groupEditing && av.hasHiddenRows)\r
       {\r
-        if (av.alignment.getSequenceAt(startseq).getHiddenSequences() != null)\r
+        if (av.hiddenRepSequences!=null\r
+            && av.hiddenRepSequences.containsKey(seq))\r
         {\r
+          sg = (SequenceGroup)av.hiddenRepSequences.get(seq);\r
           groupEditing = true;\r
-        }\r
-      }\r
-\r
-      //No group, but the sequence may represent a group\r
-      if (groupEditing\r
-          && sg == null\r
-          && av.alignment.getSequenceAt(startseq).getHiddenSequences() == null)\r
-      {\r
-        groupEditing = false;\r
+          }\r
       }\r
 \r
-      SequenceI seq = av.alignment.getSequenceAt(startseq);\r
       StringBuffer message = new StringBuffer();\r
       if (groupEditing)\r
       {\r
@@ -776,7 +783,7 @@ public class SeqPanel
 \r
       //Are we editing within a selection group?\r
       if (groupEditing\r
-          || (sg != null && sg.getSequences(true).contains(seq)))\r
+          || (sg != null && sg.getSequences(av.hiddenRepSequences).contains(seq)))\r
       {\r
         fixedColumns = true;\r
 \r
@@ -784,9 +791,7 @@ public class SeqPanel
         //but the sequence represents a group\r
         if (sg == null)\r
         {\r
-          sg = new SequenceGroup(null, null, false, false, false, 0,\r
-                                 av.alignment.getWidth()-1);\r
-          sg.addSequence(av.alignment.getSequenceAt(startseq), false);\r
+          sg = (SequenceGroup) av.hiddenRepSequences.get(seq);\r
         }\r
 \r
         fixedLeft = sg.getStartRes();\r
@@ -845,7 +850,7 @@ public class SeqPanel
 \r
       if (groupEditing)\r
       {\r
-        Vector vseqs = sg.getSequences(true);\r
+        Vector vseqs = sg.getSequences(av.hiddenRepSequences);\r
         int g, groupSize = vseqs.size();\r
         SequenceI[] groupSeqs = new SequenceI[groupSize];\r
         for (g = 0; g < groupSeqs.length; g++)\r
@@ -893,7 +898,7 @@ public class SeqPanel
 \r
           if (!blank)\r
           {\r
-            if(sg.getSize(false) == av.alignment.getHeight()  )\r
+            if(sg.getSize() == av.alignment.getHeight()  )\r
             {\r
               if((av.hasHiddenColumns\r
                   && startres<av.getColumnSelection().getHiddenBoundaryRight(startres)))\r
@@ -964,7 +969,7 @@ public class SeqPanel
               editCommand.appendEdit(EditCommand.INSERT_GAP,\r
                                      groupSeqs,\r
                                      startres, startres-lastres,\r
-                                     av.getGapCharacter(),\r
+                                     av.alignment,\r
                                      true);\r
             }\r
           }\r
@@ -982,7 +987,7 @@ public class SeqPanel
               editCommand.appendEdit(EditCommand.DELETE_GAP,\r
                                      groupSeqs,\r
                                      startres, lastres - startres,\r
-                                     av.getGapCharacter(),\r
+                                     av.alignment,\r
                                      true);\r
 \r
           }\r
@@ -1005,7 +1010,7 @@ public class SeqPanel
                                    new SequenceI[]\r
                                    {seq},\r
                                    lastres, startres-lastres,\r
-                                   av.getGapCharacter(),\r
+                                   av.alignment,\r
                                    true);\r
           }\r
         }\r
@@ -1041,7 +1046,7 @@ public class SeqPanel
                                      new SequenceI[]\r
                                      {seq},\r
                                      startres, max,\r
-                                     av.getGapCharacter(),\r
+                                     av.alignment,\r
                                      true);\r
             }\r
           }\r
@@ -1081,11 +1086,11 @@ public class SeqPanel
 \r
     editCommand.appendEdit(EditCommand.DELETE_GAP,\r
                            seq,\r
-                           blankColumn, 1, av.getGapCharacter(), true);\r
+                           blankColumn, 1, av.alignment, true);\r
 \r
     editCommand.appendEdit(EditCommand.INSERT_GAP,\r
                            seq,\r
-                           j, 1, av.getGapCharacter(),\r
+                           j, 1, av.alignment,\r
                            true);\r
 \r
   }\r
@@ -1095,11 +1100,11 @@ public class SeqPanel
 \r
     editCommand.appendEdit(EditCommand.DELETE_GAP,\r
                            seq,\r
-                           j, 1, av.getGapCharacter(), true);\r
+                           j, 1, av.alignment, true);\r
 \r
     editCommand.appendEdit(EditCommand.INSERT_GAP,\r
                            seq,\r
-                           fixedColumn, 1, av.getGapCharacter(), true);\r
+                           fixedColumn, 1, av.alignment, true);\r
   }\r
 \r
 \r
@@ -1145,7 +1150,7 @@ public class SeqPanel
       }\r
     }\r
 \r
-    else if (!stretchGroup.getSequences(false).contains(sequence)\r
+    else if (!stretchGroup.getSequences(null).contains(sequence)\r
              || stretchGroup.getStartRes() > res\r
              || stretchGroup.getEndRes() < res)\r
     {\r
@@ -1245,7 +1250,7 @@ public class SeqPanel
       if (stretchGroup.cs instanceof ClustalxColourScheme)\r
       {\r
         ( (ClustalxColourScheme) stretchGroup.cs).resetClustalX(\r
-            stretchGroup.getSequences(true),\r
+            stretchGroup.getSequences(av.hiddenRepSequences),\r
             stretchGroup.getWidth());\r
       }\r
 \r
@@ -1355,7 +1360,7 @@ public class SeqPanel
 \r
           Sequence nextSeq = (Sequence) av.getAlignment().getSequenceAt(oldSeq);\r
 \r
-          if (stretchGroup.getSequences(false).contains(nextSeq))\r
+          if (stretchGroup.getSequences(null).contains(nextSeq))\r
           {\r
               stretchGroup.deleteSequence(seq, false);\r
           }\r