Remove unnecessary refresh
[jalview.git] / src / jalview / appletgui / SeqPanel.java
index e87ab95..0596468 100755 (executable)
@@ -1,6 +1,6 @@
 /*\r
  * Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+ * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
  *\r
  * This program is free software; you can redistribute it and/or\r
  * modify it under the terms of the GNU General Public License\r
@@ -246,8 +246,6 @@ public class SeqPanel
 \r
    void insertGapAtCursor(boolean group)\r
    {\r
-     ap.alignFrame.addHistoryItem(new HistoryItem("Edit Sequence",\r
-                                                  av.alignment, HistoryItem.EDIT));\r
      groupEditing = group;\r
      startseq = seqCanvas.cursorY;\r
      lastres = seqCanvas.cursorX;\r
@@ -257,8 +255,6 @@ public class SeqPanel
 \r
    void deleteGapAtCursor(boolean group)\r
    {\r
-     ap.alignFrame.addHistoryItem(new HistoryItem("Edit Sequence",\r
-                                                  av.alignment, HistoryItem.EDIT));\r
      groupEditing = group;\r
      startseq = seqCanvas.cursorY;\r
      lastres = seqCanvas.cursorX+getKeyboardNo(keyboardNo1);\r
@@ -322,17 +318,20 @@ public class SeqPanel
      {\r
        lastMousePress = evt.getPoint();\r
 \r
+       //For now, ignore the mouseWheel font resizing on Macs\r
+       //As the Button2_mask always seems to be true\r
        if ( (evt.getModifiers() & InputEvent.BUTTON2_MASK) ==\r
-         InputEvent.BUTTON2_MASK)\r
+         InputEvent.BUTTON2_MASK && !av.MAC)\r
        {\r
          mouseWheelPressed = true;\r
          return;\r
        }\r
 \r
-       if (evt.isShiftDown() || evt.isAltDown() ||\r
-           evt.isControlDown())\r
+       if (evt.isShiftDown()\r
+           || evt.isControlDown()\r
+           || evt.isAltDown())\r
        {\r
-         if (evt.isAltDown() || evt.isControlDown())\r
+         if (evt.isControlDown() || evt.isAltDown())\r
          {\r
            groupEditing = true;\r
          }\r
@@ -351,8 +350,6 @@ public class SeqPanel
        if(seq<0 || res<0)\r
          return;\r
 \r
-       ap.alignFrame.addHistoryItem(new HistoryItem("Edit Sequence",\r
-                                                          av.alignment, HistoryItem.EDIT));\r
 \r
          if ((seq < av.getAlignment().getHeight()) &&\r
                  (res < av.getAlignment().getSequenceAt(seq).getLength()))\r
@@ -412,6 +409,8 @@ public class SeqPanel
 \r
 \r
       int cwidth = seqCanvas.getWrappedCanvasWidth(getSize().width);\r
+      if(cwidth<1)\r
+        return 0;\r
 \r
       wrappedBlock = y / cHeight;\r
       wrappedBlock += av.getStartRes() / cwidth;\r
@@ -467,8 +466,6 @@ public class SeqPanel
 \r
   public void doMousePressed(MouseEvent evt)\r
   {\r
-    ap.alignFrame.addHistoryItem(new HistoryItem(\r
-        "Edit Sequence", av.alignment, HistoryItem.EDIT));\r
 \r
     int seq = findSeq(evt);\r
     int res = findRes(evt);\r
@@ -562,7 +559,9 @@ public class SeqPanel
 \r
         if (sf.getValue("status") != null )\r
         {\r
-          featureText.append(" (" + sf.getValue("status") + ")");\r
+          String status = sf.getValue("status").toString();\r
+          if(status.length()>0)\r
+            featureText.append(" (" + sf.getValue("status") + ")");\r
         }\r
         featureText.append("\n");\r
 \r
@@ -578,6 +577,10 @@ public class SeqPanel
         tooltip.repaint();\r
 \r
     }\r
+    else if (tooltip != null)\r
+     {\r
+       tooltip.setTip("");\r
+     }\r
   }\r
 \r
   Vector getAllFeaturesAtRes(SequenceI seq, int res)\r
@@ -803,8 +806,15 @@ public class SeqPanel
       }\r
 \r
 \r
+\r
       if (groupEditing)\r
       {\r
+        Vector vseqs = sg.getSequences(true);\r
+        int g, groupSize = vseqs.size();\r
+        SequenceI[] groupSeqs = new SequenceI[groupSize];\r
+        for (g = 0; g < groupSeqs.length; g++)\r
+          groupSeqs[g] = (SequenceI) vseqs.elementAt(g);\r
+\r
         // drag to right\r
         if (insertGap)\r
         {\r
@@ -828,13 +838,13 @@ public class SeqPanel
                fixedRight--)\r
           {\r
             blank = true;\r
-            for (int s = 0; s < sg.getSize(true); s++)\r
+\r
+            for (g = 0; g < groupSize; g++)\r
             {\r
-              seq = (SequenceI)sg.getSequences(true).elementAt(s);\r
               for (int j = 0; j < startres - lastres; j++)\r
               {\r
                 if (!jalview.util.Comparison.isGap(\r
-                    seq.getCharAt(fixedRight - j)))\r
+                    groupSeqs[g].getCharAt(fixedRight - j)))\r
                 {\r
                   blank = false;\r
                   break;\r
@@ -883,19 +893,17 @@ public class SeqPanel
           /// Are we able to delete?\r
           // ie are all columns blank?\r
 \r
-          for (int s = 0; s < sg.getSize(true); s++)\r
+          for (g = 0; g < groupSize; g++)\r
           {\r
-            seq = (SequenceI)sg.getSequences(true).elementAt(s);\r
-\r
             for (int j = startres; j < lastres; j++)\r
             {\r
-              if (seq.getSequence().length() <= j)\r
+              if (groupSeqs[g].getLength() <= j)\r
               {\r
                 continue;\r
               }\r
 \r
               if (!jalview.util.Comparison.isGap(\r
-                  seq.getSequence().charAt(j)))\r
+                  groupSeqs[g].getCharAt(j)))\r
               {\r
                 // Not a gap, block edit not valid\r
                 endEditing();\r
@@ -906,10 +914,8 @@ public class SeqPanel
         }\r
 \r
 \r
-        for (int i = 0; i < sg.getSize(true); i++)\r
+        for (g = 0; g < groupSize; g++)\r
         {\r
-          seq = (SequenceI) sg.getSequences(true).elementAt(i);\r
-\r
           if (insertGap)\r
           {\r
             // dragging to the right\r
@@ -917,10 +923,10 @@ public class SeqPanel
             {\r
               if (fixedColumns && fixedRight != -1)\r
               {\r
-                insertChar(j, seq, fixedRight);\r
+                insertChar(j, groupSeqs[g], fixedRight);\r
               }\r
               else\r
-                insertChar(j, seq);\r
+                insertChar(j, groupSeqs[g]);\r
             }\r
           }\r
           else\r
@@ -930,17 +936,16 @@ public class SeqPanel
             {\r
               if (fixedColumns && fixedRight != -1)\r
               {\r
-                deleteChar(startres, seq, fixedRight);\r
+                deleteChar(startres, groupSeqs[g], fixedRight);\r
               }\r
               else\r
               {\r
-                deleteChar(startres, seq);\r
+                deleteChar(startres, groupSeqs[g]);\r
               }\r
             }\r
           }\r
         }\r
-      }\r
-      else /////Editing a single sequence///////////\r
+      }      else /////Editing a single sequence///////////\r
       {\r
         if (insertGap)\r
         {\r
@@ -987,7 +992,7 @@ public class SeqPanel
     {\r
         seq.insertCharAt(j, av.getGapCharacter());\r
         seqEditOccurred = true;\r
-    }\r
+   }\r
 \r
     void insertChar(int j, SequenceI seq, int fixedColumn)\r
     {\r
@@ -1029,7 +1034,6 @@ public class SeqPanel
             "End editing: Tried removing residue " + seq.getCharAt(j));\r
         return;\r
       }\r
-\r
       seq.deleteCharAt(j);\r
       seq.insertCharAt(fixedColumn, av.getGapCharacter());\r
       seqEditOccurred = true;\r
@@ -1262,7 +1266,7 @@ public class SeqPanel
         y = av.alignment.getHeight() -1;\r
       }\r
 \r
-      if(res>av.alignment.getWidth())\r
+      if(res>=av.alignment.getWidth())\r
         res = av.alignment.getWidth()-1;\r
 \r
       if (stretchGroup.getEndRes() == res)\r