minor formatting of tooltip
[jalview.git] / src / jalview / gui / IdPanel.java
index e3a81dc..b9366ae 100755 (executable)
@@ -32,7 +32,7 @@ import jalview.datamodel.*;
  */\r
 public class IdPanel\r
     extends JPanel implements MouseListener,\r
-    MouseMotionListener\r
+    MouseMotionListener, MouseWheelListener\r
 {\r
   protected IdCanvas idCanvas;\r
   protected AlignViewport av;\r
@@ -58,6 +58,7 @@ public class IdPanel
     add(idCanvas, BorderLayout.CENTER);\r
     addMouseListener(this);\r
     addMouseMotionListener(this);\r
+    addMouseWheelListener(this);\r
     ToolTipManager.sharedInstance().registerComponent(this);\r
   }\r
 \r
@@ -69,49 +70,61 @@ public class IdPanel
   public void mouseMoved(MouseEvent e)\r
   {\r
     int seq = Math.max(0, alignPanel.seqPanel.findSeq(e));\r
+    String tmp;\r
     if (seq > -1 && seq < av.alignment.getHeight())\r
     {\r
       SequenceI sequence = av.alignment.getSequenceAt(seq);\r
-      StringBuffer tip = new StringBuffer("<html>");\r
-      tip.append(sequence.getDisplayId(true));\r
+      StringBuffer tip = new StringBuffer();\r
+      tip.append("<i>");\r
+\r
+      int maxWidth = 0;\r
       if (sequence.getDescription() != null)\r
       {\r
-        tip.append("<table width=250 border=0><tr><td><i>");\r
-        tip.append(sequence.getDescription());\r
-\r
-        //ADD NON POSITIONAL SEQUENCE INFO\r
-        SequenceFeature[] features = sequence.getDatasetSequence().\r
-            getSequenceFeatures();\r
-        if (features != null)\r
-        {\r
-          for (int i = 0; i < features.length; i++)\r
-          {\r
-            if (features[i].begin == 0 && features[i].end == 0)\r
-            {\r
-              tip.append("<br>" + features[i].featureGroup\r
-                         + " " + features[i].getType() + " " +\r
-                         features[i].description);\r
-            }\r
-          }\r
-        }\r
-        tip.append("</i></td></tr></table>");\r
+        tmp = sequence.getDescription();\r
+        tip.append("<br>"+tmp);\r
+        maxWidth = Math.max(maxWidth, tmp.length());\r
       }\r
 \r
       DBRefEntry[] dbrefs = sequence.getDatasetSequence().getDBRef();\r
       if (dbrefs != null)\r
       {\r
-        tip.append("<i>");\r
         for (int i = 0; i < dbrefs.length; i++)\r
         {\r
           tip.append("<br>");\r
-          tip.append(dbrefs[i].getSource() + " "\r
-                     + dbrefs[i].getAccessionId());\r
+          tmp = dbrefs[i].getSource() + " " + dbrefs[i].getAccessionId();\r
+          tip.append(tmp);\r
+          maxWidth = Math.max(maxWidth, tmp.length());\r
         }\r
-        tip.append("</i>");\r
+      }\r
+\r
+\r
+      //ADD NON POSITIONAL SEQUENCE INFO\r
+      SequenceFeature[] features = sequence.getDatasetSequence().\r
+          getSequenceFeatures();\r
+      if (features != null)\r
+      {\r
+        for (int i = 0; i < features.length; i++)\r
+        {\r
+          if (features[i].begin == 0 && features[i].end == 0)\r
+          {\r
+            tmp = features[i].featureGroup\r
+                       + " " + features[i].getType() + " " +\r
+                       features[i].description;\r
+            tip.append("<br>" + tmp);\r
+            maxWidth = Math.max(maxWidth, tmp.length());\r
+          }\r
+        }\r
+      }\r
+\r
+      if(maxWidth > 60)\r
+      {\r
+         tip.insert(0, "<table width=350 border=0><tr><td><i>");\r
+         tip.append("</i></td></tr></table>");\r
       }\r
 \r
       tip.append("</html>");\r
-      setToolTipText(tip.toString());\r
+\r
+      setToolTipText("<html>"+sequence.getDisplayId(true)+tip.toString());\r
     }\r
   }\r
 \r
@@ -136,7 +149,20 @@ public class IdPanel
     }\r
 \r
     lastid = seq;\r
-    alignPanel.repaint();\r
+    alignPanel.paintAlignment(true);\r
+  }\r
+\r
+  public void mouseWheelMoved(MouseWheelEvent e)\r
+  {\r
+    e.consume();\r
+      if (e.getWheelRotation() > 0)\r
+      {\r
+        alignPanel.scrollUp(false);\r
+      }\r
+      else\r
+      {\r
+        alignPanel.scrollUp(true);\r
+      }\r
   }\r
 \r
   /**\r
@@ -267,7 +293,7 @@ public class IdPanel
       selectSeq(seq);\r
     }\r
 \r
-    alignPanel.repaint();\r
+    alignPanel.paintAlignment(true);\r
   }\r
 \r
   /**\r
@@ -407,7 +433,7 @@ public class IdPanel
           running = false;\r
         }\r
 \r
-        alignPanel.repaint();\r
+        alignPanel.paintAlignment(false);\r
 \r
         try\r
         {\r