After merge
[jalview.git] / src / jalview / gui / SeqPanel.java
index ab5ed30..3209960 100755 (executable)
@@ -18,8 +18,6 @@
  */\r
 package jalview.gui;\r
 \r
-import jalview.analysis.*;\r
-\r
 import jalview.datamodel.*;\r
 \r
 import jalview.schemes.*;\r
@@ -91,21 +89,31 @@ public class SeqPanel extends JPanel
 \r
         ap = p;\r
 \r
+\r
         addMouseMotionListener(new MouseMotionAdapter()\r
             {\r
                 public void mouseMoved(MouseEvent evt)\r
                 {\r
                     doMouseMoved(evt);\r
+                    if (editingSeqs)\r
+                    {\r
+                      // This is because MacOSX creates a mouseMoved\r
+                      // If control is down\r
+                      if(!av.isDataset())\r
+                        doMouseDragged(evt);\r
+                    }\r
                 }\r
 \r
                 public void mouseDragged(MouseEvent evt)\r
                 {\r
                     if (editingSeqs)\r
                     {\r
+                      if(!av.isDataset())\r
                         doMouseDragged(evt);\r
                     }\r
                     else\r
                     {\r
+                      if(!av.isDataset())\r
                         doMouseDraggedDefineMode(evt);\r
                     }\r
                 }\r
@@ -120,7 +128,7 @@ public class SeqPanel extends JPanel
            {\r
              Font font = av.getFont();\r
              int fontSize = font.getSize();\r
-             if (e.getWheelRotation() > 0 && fontSize < 30)\r
+             if (e.getWheelRotation() > 0 && fontSize < 51)\r
                fontSize++;\r
              else if (fontSize > 1)\r
                fontSize--;\r
@@ -140,67 +148,71 @@ public class SeqPanel extends JPanel
        });\r
 \r
 \r
-        addMouseListener(new MouseAdapter()\r
-            {\r
-                public void mouseReleased(MouseEvent evt)\r
-                {\r
-                    mouseWheelPressed = false;\r
-\r
-                    if (editingSeqs)\r
-                    {\r
-                        doMouseReleased(evt);\r
-                    }\r
-                    else\r
-                    {\r
-                        doMouseReleasedDefineMode(evt);\r
-                    }\r
-                }\r
-\r
-                public void mousePressed(MouseEvent evt)\r
-                {\r
-                  if( javax.swing.SwingUtilities.isMiddleMouseButton(evt))\r
-                  {\r
-                    mouseWheelPressed = true;\r
-                    return;\r
-                  }\r
+       if(!av.isDataset())\r
+       {\r
+         addMouseListener(new MouseAdapter()\r
+         {\r
+           public void mouseReleased(MouseEvent evt)\r
+           {\r
+             mouseWheelPressed = false;\r
 \r
-                    if (evt.isShiftDown() || evt.isAltDown() ||\r
-                            evt.isControlDown())\r
-                    {\r
-                        if (evt.isAltDown() || evt.isControlDown())\r
-                        {\r
-                            groupEditing = true;\r
-                        }\r
+             if (editingSeqs)\r
+             {\r
+               doMouseReleased(evt);\r
+             }\r
+             else\r
+             {\r
+               doMouseReleasedDefineMode(evt);\r
+             }\r
+           }\r
 \r
-                        editingSeqs = true;\r
-                        doMousePressed(evt);\r
-                    }\r
-                    else\r
-                    {\r
-                        doMousePressedDefineMode(evt);\r
-                    }\r
-                }\r
+           public void mousePressed(MouseEvent evt)\r
+           {\r
+             if (javax.swing.SwingUtilities.isMiddleMouseButton(evt))\r
+             {\r
+               mouseWheelPressed = true;\r
+               return;\r
+             }\r
+\r
+             if (evt.isShiftDown() || evt.isAltDown() ||\r
+                 evt.isControlDown())\r
+             {\r
+               if (evt.isAltDown() || evt.isControlDown())\r
+               {\r
+                 groupEditing = true;\r
+\r
+               }\r
+\r
+               editingSeqs = true;\r
+               doMousePressed(evt);\r
+             }\r
+             else\r
+             {\r
+               doMousePressedDefineMode(evt);\r
+             }\r
+           }\r
 \r
-                public void mouseExited(MouseEvent evt)\r
-                {\r
-                  if (editingSeqs)\r
-                  {\r
-                    return;\r
-                  }\r
+           public void mouseExited(MouseEvent evt)\r
+           {\r
+             if (editingSeqs)\r
+             {\r
+               return;\r
+             }\r
 \r
-                  doMouseExitedDefineMode(evt);\r
-                }\r
+             doMouseExitedDefineMode(evt);\r
+           }\r
 \r
-                public void mouseEntered(MouseEvent evt)\r
-                {\r
-                  if (editingSeqs)\r
-                  {\r
-                    return;\r
-                  }\r
+           public void mouseEntered(MouseEvent evt)\r
+           {\r
+             if (editingSeqs)\r
+             {\r
+               return;\r
+             }\r
 \r
-                    doMouseEnteredDefineMode(evt);\r
-                }\r
-            });\r
+             doMouseEnteredDefineMode(evt);\r
+           }\r
+         });\r
+       }\r
     }\r
 \r
     int startWrapBlock=-1;\r
@@ -345,6 +357,12 @@ public class SeqPanel extends JPanel
         return;\r
       }\r
 \r
+      if(seqCanvas.pdbCanvas!=null && sequence==seqCanvas.pdbCanvas.sequence)\r
+      {\r
+        seqCanvas.pdbCanvas.highlightRes(sequence.findPosition(res));\r
+      }\r
+\r
+\r
         StringBuffer text = new StringBuffer("Sequence " + (seq + 1) + " ID: " +\r
                 sequence.getName());\r
 \r
@@ -378,32 +396,54 @@ public class SeqPanel extends JPanel
         // use aa to see if the mouse pointer is on a\r
         if (av.showSequenceFeatures)\r
         {\r
-            Vector features = sequence.getSequenceFeatures();\r
-            Enumeration e = features.elements();\r
-            StringBuffer sbuffer = new StringBuffer();\r
-\r
-            while (e.hasMoreElements())\r
+            Vector features = sequence.getDatasetSequence().getSequenceFeatures();\r
+            if(features!=null)\r
             {\r
-                SequenceFeature sf = (SequenceFeature) e.nextElement();\r
+              StringBuffer sbuffer = new StringBuffer("<html>");\r
 \r
-                if ((sf.getStart() <= sequence.findPosition(res)) &&\r
-                        (sf.getEnd() >= sequence.findPosition(res)))\r
+              for (int i = 0; i < features.size(); i++)\r
+              {\r
+                SequenceFeature sf = (SequenceFeature) features.elementAt(i);\r
+\r
+                if ( (sf.getBegin() <= sequence.findPosition(res)) &&\r
+                    (sf.getEnd() >= sequence.findPosition(res)))\r
                 {\r
-                    if (sbuffer.length() > 0)\r
+                  if (sf.getType().equals("disulfide bond"))\r
+                  {\r
+                    if (sf.getBegin() == sequence.findPosition(res)\r
+                        || sf.getEnd() == sequence.findPosition(res))\r
                     {\r
-                        sbuffer.append("; ");\r
+                      if (sbuffer.length() > 6)\r
+                        sbuffer.append("<br>");\r
+                      sbuffer.append("disulfide bond " + sf.getBegin() + ":" +\r
+                                     sf.getEnd());\r
                     }\r
+                  }\r
+                  else\r
+                  {\r
+                    if (sbuffer.length() > 6)\r
+                      sbuffer.append("<br>");\r
+                    sbuffer.append(sf.getType());\r
+                    if (sf.getDescription() != null)\r
+                      sbuffer.append(" " + sf.getDescription());\r
 \r
-                    sbuffer.append(sf.getType() + " " + sf.getDescription());\r
-\r
-                    if (sf.getStatus().length() > 0)\r
+                    if (sf.getStatus() != null)\r
                     {\r
-                        sbuffer.append(" (" + sf.getStatus() + ")");\r
+                      sbuffer.append(" (" + sf.getStatus() + ")");\r
                     }\r
+                  }\r
                 }\r
-            }\r
 \r
-            this.setToolTipText(sbuffer.toString());\r
+              }\r
+\r
+              sbuffer.append("</html>");\r
+              if(sbuffer.length()==13) // <html></html>\r
+                setToolTipText("");\r
+              else\r
+               setToolTipText(sbuffer.toString());\r
+            }\r
+            else\r
+              setToolTipText("");\r
         }\r
     }\r
 \r
@@ -969,7 +1009,7 @@ public class SeqPanel extends JPanel
 \r
                 try\r
                 {\r
-                    Thread.sleep(75);\r
+                    Thread.sleep(20);\r
                 }\r
                 catch (Exception ex)\r
                 {\r