Add uniprot DBref
[jalview.git] / src / jalview / gui / AnnotationLabels.java
index bbc5c04..ceb736d 100755 (executable)
@@ -40,7 +40,7 @@ public class AnnotationLabels extends JPanel implements MouseListener,
     static String HIDE = "Hide This Row";\r
     static String DELETE = "Delete This Row";\r
     static String SHOWALL = "Show All Hidden Rows";\r
-    static String OUTPUT_TEXT = "Show Values In Textbox";\r
+    static String OUTPUT_TEXT = "Export Annotation";\r
     boolean resizePanel = false;\r
     Image image;\r
     AlignmentPanel ap;\r
@@ -113,20 +113,23 @@ public class AnnotationLabels extends JPanel implements MouseListener,
       int height = 0;\r
       AlignmentAnnotation[] aa = ap.av.alignment.getAlignmentAnnotation();\r
 \r
-      for (int i = 0; i < aa.length; i++)\r
+      if(aa!=null)\r
       {\r
-        if (!aa[i].visible)\r
+        for (int i = 0; i < aa.length; i++)\r
         {\r
-          continue;\r
-        }\r
+          if (!aa[i].visible)\r
+          {\r
+            continue;\r
+          }\r
 \r
-        height += aa[i].height;\r
+          height += aa[i].height;\r
 \r
-        if (y < height)\r
-        {\r
-          selectedRow = i;\r
+          if (y < height)\r
+          {\r
+            selectedRow = i;\r
 \r
-          break;\r
+            break;\r
+          }\r
         }\r
       }\r
     }\r
@@ -157,7 +160,8 @@ public class AnnotationLabels extends JPanel implements MouseListener,
 \r
             ap.av.alignment.addAnnotation(newAnnotation);\r
             ap.av.alignment.setAnnotationIndex(newAnnotation, 0);\r
-            dif = aa[aa.length - 1].height;\r
+            if (aa != null)\r
+              dif = aa[aa.length - 1].height;\r
         }\r
         else if (evt.getActionCommand().equals(HIDE))\r
         {\r
@@ -198,11 +202,11 @@ public class AnnotationLabels extends JPanel implements MouseListener,
         }\r
         else if (evt.getActionCommand().equals(OUTPUT_TEXT))\r
         {\r
-            CutAndPasteTransfer cap = new CutAndPasteTransfer();\r
-            Desktop.addInternalFrame(cap,\r
-                ap.alignFrame.getTitle() + " - " + aa[selectedRow].label, 500,\r
-                100);\r
-            cap.setText(aa[selectedRow].toString());\r
+          new AnnotationExporter().exportAnnotations(\r
+              ap,\r
+              new AlignmentAnnotation[]\r
+              {aa[selectedRow]}\r
+              );\r
         }\r
 \r
 \r
@@ -230,7 +234,7 @@ public class AnnotationLabels extends JPanel implements MouseListener,
     public void mouseReleased(MouseEvent evt)\r
     {\r
         int start = selectedRow;\r
-        getSelectedRow(evt.getY());\r
+        getSelectedRow(evt.getY() - scrollOffset);\r
         int end = selectedRow;\r
 \r
         if(start!=end)\r
@@ -270,7 +274,13 @@ public class AnnotationLabels extends JPanel implements MouseListener,
      * @param evt DOCUMENT ME!\r
      */\r
     public void mouseExited(MouseEvent evt)\r
-    {       }\r
+    {\r
+      if(dragEvent == null)\r
+      {\r
+        resizePanel = false;\r
+        repaint();\r
+      }\r
+    }\r
 \r
     /**\r
      * DOCUMENT ME!\r
@@ -407,9 +417,9 @@ public class AnnotationLabels extends JPanel implements MouseListener,
     public void drawComponent(Graphics g, int width)\r
     {\r
         if(av.getFont().getSize()<10)\r
-          g.setFont(new Font("Arial", Font.PLAIN, av.getFont().getSize()-1));\r
-        else\r
           g.setFont(font);\r
+        else\r
+          g.setFont(av.getFont());\r
 \r
         FontMetrics fm = g.getFontMetrics(g.getFont());\r
         g.setColor(Color.white);\r
@@ -517,10 +527,10 @@ public class AnnotationLabels extends JPanel implements MouseListener,
         {\r
           g.drawImage(image, 2, 0 - scrollOffset, this);\r
         }\r
-        else if (dragEvent != null)\r
+        else if (dragEvent != null && aa!=null)\r
         {\r
           g.setColor(Color.lightGray);\r
-          g.drawString(aa[selectedRow].label, dragEvent.getX(), dragEvent.getY());\r
+          g.drawString(aa[selectedRow].label, dragEvent.getX(), dragEvent.getY() - scrollOffset);\r
         }\r
 \r
 \r