JAL-1114 - refactor methods handling Vectors and Hashtables to Lists and Maps, and...
[jalview.git] / src / jalview / appletgui / AnnotationLabels.java
index 1a6400d..635535c 100755 (executable)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
- * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
+ * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle
  * 
  * This file is part of Jalview.
  * 
@@ -24,6 +24,7 @@ import java.awt.event.*;
 import java.awt.image.BufferedImage;
 
 import jalview.datamodel.*;
+import jalview.util.ParseHtmlBodyAndLinks;
 
 public class AnnotationLabels extends Panel implements ActionListener,
         MouseListener, MouseMotionListener
@@ -106,7 +107,7 @@ public class AnnotationLabels extends Panel implements ActionListener,
   int getSelectedRow(int y)
   {
     int row = -2;
-    AlignmentAnnotation[] aa = ap.av.alignment.getAlignmentAnnotation();
+    AlignmentAnnotation[] aa = ap.av.getAlignment().getAlignmentAnnotation();
 
     if (aa == null)
     {
@@ -133,20 +134,20 @@ public class AnnotationLabels extends Panel implements ActionListener,
 
   public void actionPerformed(ActionEvent evt)
   {
-    AlignmentAnnotation[] aa = av.alignment.getAlignmentAnnotation();
+    AlignmentAnnotation[] aa = av.getAlignment().getAlignmentAnnotation();
 
     if (evt.getActionCommand().equals(ADDNEW))
     {
       AlignmentAnnotation newAnnotation = new AlignmentAnnotation("", null,
-              new Annotation[ap.av.alignment.getWidth()]);
+              new Annotation[ap.av.getAlignment().getWidth()]);
 
       if (!editLabelDescription(newAnnotation))
       {
         return;
       }
 
-      ap.av.alignment.addAnnotation(newAnnotation);
-      ap.av.alignment.setAnnotationIndex(newAnnotation, 0);
+      ap.av.getAlignment().addAnnotation(newAnnotation);
+      ap.av.getAlignment().setAnnotationIndex(newAnnotation, 0);
     }
     else if (evt.getActionCommand().equals(EDITNAME))
     {
@@ -227,17 +228,14 @@ public class AnnotationLabels extends Panel implements ActionListener,
 
     if (row > -1)
     {
+      ParseHtmlBodyAndLinks phb = new ParseHtmlBodyAndLinks(av.getAlignment().getAlignmentAnnotation()[row].getDescription(true), true, "\n");
       if (tooltip == null)
       {
-        tooltip = new Tooltip(
-                ap.av.alignment.getAlignmentAnnotation()[row]
-                        .getDescription(true),
-                this);
+        tooltip = new Tooltip(phb.getNonHtmlContent(), this);
       }
       else
       {
-        tooltip.setTip(ap.av.alignment.getAlignmentAnnotation()[row]
-                .getDescription(true));
+        tooltip.setTip(phb.getNonHtmlContent());
       }
     }
     else if (tooltip != null)
@@ -339,17 +337,17 @@ public class AnnotationLabels extends Panel implements ActionListener,
       if (start>-1 && start != end)
       {
         // Swap these annotations
-        AlignmentAnnotation startAA = ap.av.alignment
+        AlignmentAnnotation startAA = ap.av.getAlignment()
                 .getAlignmentAnnotation()[start];
         if (end == -1)
         {
-          end = ap.av.alignment.getAlignmentAnnotation().length - 1;
+          end = ap.av.getAlignment().getAlignmentAnnotation().length - 1;
         }
-        AlignmentAnnotation endAA = ap.av.alignment
+        AlignmentAnnotation endAA = ap.av.getAlignment()
                 .getAlignmentAnnotation()[end];
 
-        ap.av.alignment.getAlignmentAnnotation()[end] = startAA;
-        ap.av.alignment.getAlignmentAnnotation()[start] = endAA;
+        ap.av.getAlignment().getAlignmentAnnotation()[end] = startAA;
+        ap.av.getAlignment().getAlignmentAnnotation()[start] = endAA;
       }
     }
     resizePanel = false;
@@ -397,7 +395,7 @@ public class AnnotationLabels extends Panel implements ActionListener,
     // todo: move below to mouseClicked ?
     selectedRow = getSelectedRow(evt.getY() + scrollOffset);
 
-    AlignmentAnnotation[] aa = ap.av.alignment.getAlignmentAnnotation();
+    AlignmentAnnotation[] aa = ap.av.getAlignment().getAlignmentAnnotation();
 
     // DETECT RIGHT MOUSE BUTTON IN AWT
     if ((evt.getModifiers() & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK)
@@ -624,7 +622,7 @@ public class AnnotationLabels extends Panel implements ActionListener,
     jalview.appletgui.AlignFrame.copiedSequences.append(sq.getName() + "\t"
             + sq.getStart() + "\t" + sq.getEnd() + "\t"
             + sq.getSequenceAsString() + "\n");
-    if (av.hasHiddenColumns)
+    if (av.hasHiddenColumns())
     {
       jalview.appletgui.AlignFrame.copiedHiddenColumns = new Vector();
       for (int i = 0; i < av.getColumnSelection().getHiddenColumns().size(); i++)
@@ -667,7 +665,7 @@ public class AnnotationLabels extends Panel implements ActionListener,
     g.translate(0, -scrollOffset);
     g.setColor(Color.black);
 
-    AlignmentAnnotation[] aa = av.alignment.getAlignmentAnnotation();
+    AlignmentAnnotation[] aa = av.getAlignment().getAlignmentAnnotation();
     int y = 0, fy = g.getFont().getSize();
     int x = 0, offset;