use fontchooser to change fonts
[jalview.git] / src / jalview / gui / SeqPanel.java
index 41174d4..8146be0 100755 (executable)
@@ -183,16 +183,28 @@ public class SeqPanel extends JPanel
 \r
                 public void mouseExited(MouseEvent evt)\r
                 {\r
-                    doMouseExitedDefineMode(evt);\r
+                  if (editingSeqs)\r
+                  {\r
+                    return;\r
+                  }\r
+\r
+                  doMouseExitedDefineMode(evt);\r
                 }\r
 \r
                 public void mouseEntered(MouseEvent evt)\r
                 {\r
+                  if (editingSeqs)\r
+                  {\r
+                    return;\r
+                  }\r
+\r
                     doMouseEnteredDefineMode(evt);\r
                 }\r
             });\r
     }\r
 \r
+    int startWrapBlock=-1;\r
+    int wrappedBlock=-1;\r
     int findRes(MouseEvent evt)\r
    {\r
      int res = 0;\r
@@ -206,10 +218,10 @@ public class SeqPanel extends JPanel
 \r
         int chunkHeight = (av.getAlignment().getHeight() + 2) * av.charHeight;\r
         int cwidth = seqCanvas.getWrappedCanvasWidth(this.getWidth());\r
-        int block = y/chunkHeight;\r
-        block += av.getStartRes()/cwidth;\r
+        wrappedBlock = y/chunkHeight;\r
+        wrappedBlock += av.getStartRes()/cwidth;\r
 \r
-        res = block*cwidth   +   x / av.getCharWidth();\r
+        res = wrappedBlock*cwidth   +   x / av.getCharWidth();\r
     }\r
     else\r
     {\r
@@ -274,6 +286,9 @@ public class SeqPanel extends JPanel
       int seq = findSeq(evt);\r
       int res = findRes(evt);\r
 \r
+      if(seq<0 || res<0)\r
+        return;\r
+\r
         if ((seq < av.getAlignment().getHeight()) &&\r
                 (res < av.getAlignment().getSequenceAt(seq).getLength()))\r
         {\r
@@ -570,97 +585,8 @@ public class SeqPanel extends JPanel
         ap.alignFrame.updateEditMenuBar();\r
       }\r
 \r
-      av.updateConservation();\r
-      av.updateConsensus();\r
-\r
-      //Does the edit affect any groups?\r
-      //////////////////////////////\r
-      Vector groupsToUpdate = new Vector();\r
-      SequenceGroup sg = av.getSelectionGroup();\r
-\r
-      int s, g, gSize = av.alignment.getGroups().size();\r
-      if (sg != null)\r
-      {\r
-        groupsToUpdate.addElement(av.getSelectionGroup());\r
-        int sSize = sg.getSize();\r
-        for (s = 0; s < sSize; s++)\r
-        {\r
-          SequenceI seq = sg.getSequenceAt(s);\r
-\r
-          for (g = 0; g < gSize; g++)\r
-          {\r
-            SequenceGroup sg2 = (SequenceGroup) av.alignment.getGroups().\r
-                elementAt(\r
-                    g);\r
-            if (sg2.sequences.contains(seq))\r
-            {\r
-              if (!groupsToUpdate.contains(sg2))\r
-                groupsToUpdate.addElement(sg2);\r
-              continue;\r
-            }\r
-          }\r
-        }\r
-      }\r
-      else\r
-      {\r
-        SequenceI seq = av.alignment.getSequenceAt(startseq);\r
-        for (g = 0; g < gSize; g++)\r
-        {\r
-          SequenceGroup sg2 = (SequenceGroup) av.alignment.getGroups().elementAt(\r
-              g);\r
-          if (sg2.sequences.contains(seq))\r
-          {\r
-            if (!groupsToUpdate.contains(sg2))\r
-              groupsToUpdate.addElement(sg2);\r
-            continue;\r
-          }\r
-        }\r
-      }\r
-\r
-      gSize = groupsToUpdate.size();\r
-      for (g = 0; g < gSize; g++)\r
-      {\r
-        ( (SequenceGroup) groupsToUpdate.elementAt(g)).recalcConservation();\r
-      }\r
-      ////End of updating groups\r
-      //////////////////////////////////////////\r
-\r
-        // Y O Y CLUSTALX\r
-        ColourSchemeI cs = av.getGlobalColourScheme();\r
-        if(cs!=null)\r
-        {\r
-          if (cs.conservationApplied())\r
-          {\r
-            Conservation c = new Conservation("All",\r
-                                              ResidueProperties.propHash, 3,\r
-                                              av.alignment.getSequences(),\r
-                                              0, av.alignment.getWidth() - 1);\r
-            c.calculate();\r
-            c.verdict(false, av.ConsPercGaps);\r
-\r
-            if (cs instanceof ClustalxColourScheme)\r
-            {\r
-              ClustalxColourScheme cxs = (ClustalxColourScheme) cs;\r
-              cxs.resetClustalX(av.alignment.getSequences(),\r
-                                av.alignment.getWidth());\r
-              cs.setConservation(c);\r
-              av.setGlobalColourScheme(cs);\r
-            }\r
-            else\r
-            {\r
-              cs.setConservation(c);\r
-              av.setGlobalColourScheme(cs);\r
-            }\r
-\r
-          }\r
+      av.firePropertyChange("alignment", null,av.getAlignment().getSequences());\r
 \r
-          if (cs instanceof ClustalxColourScheme)\r
-          {\r
-            ( (ClustalxColourScheme) cs).resetClustalX(av.alignment.getSequences(),\r
-                                                       av.alignment.getWidth());\r
-            av.setGlobalColourScheme(cs);\r
-          }\r
-        }\r
     }\r
 \r
     /**\r
@@ -674,6 +600,11 @@ public class SeqPanel extends JPanel
       int seq = findSeq(evt);\r
       oldSeq = seq;\r
 \r
+      startWrapBlock=wrappedBlock;\r
+\r
+      if(seq<0 || res<0)\r
+        return;\r
+\r
         SequenceI sequence = (Sequence) av.getAlignment().getSequenceAt(seq);\r
 \r
         if ((sequence == null) || (res > sequence.getLength()))\r
@@ -821,6 +752,9 @@ public class SeqPanel extends JPanel
       int res = findRes(evt);\r
       int y = findSeq(evt);\r
 \r
+      if(wrappedBlock!=startWrapBlock)\r
+        return;\r
+\r
       if (stretchGroup == null)\r
       {\r
             return;\r