diff --git a/uk/ac/sanger/artemis/components/QualifierTextArea.java b/uk/ac/sanger/artemis/components/QualifierTextArea.java
index 4ec7ee4f742c49eeadd1d5709563d11bc0ac70e0..4978860694c3c87b67d115a2f9586851dd07c399 100644
--- a/uk/ac/sanger/artemis/components/QualifierTextArea.java
+++ b/uk/ac/sanger/artemis/components/QualifierTextArea.java
@@ -20,7 +20,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  *
- * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/QualifierTextArea.java,v 1.14 2008-07-29 10:35:47 tjc Exp $
+ * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/QualifierTextArea.java,v 1.15 2008-08-01 12:49:18 tjc Exp $
  */
 
 package uk.ac.sanger.artemis.components;
@@ -46,6 +46,7 @@ import java.io.IOException;
 import java.io.StringReader;
 import java.util.Vector;
 
+import javax.swing.JComponent;
 import javax.swing.JTextPane;
 import javax.swing.text.BadLocationException;
 import javax.swing.text.Style;
@@ -62,13 +63,13 @@ public class QualifierTextArea extends JTextPane
     implements MouseMotionListener
 {
   private static final long serialVersionUID = 1L;
-  private static Vector DATABASES = new Vector();
   private static Cursor cbusy = new Cursor(Cursor.WAIT_CURSOR);
   private static Cursor cdone = new Cursor(Cursor.DEFAULT_CURSOR);
   private static Cursor chand = new Cursor(Cursor.HAND_CURSOR);
   private static Style DEFAULT_STYLE = 
     StyleContext.getDefaultStyleContext().getStyle(StyleContext.DEFAULT_STYLE);
   private static StringVector dbsLinks;
+  public static Vector DATABASES = new Vector();
   
   /**
    *  Create a new QualifierTextArea containing no text.
@@ -107,8 +108,9 @@ public class QualifierTextArea extends JTextPane
     {
       public void mouseClicked(MouseEvent e)
       {
-        if(e.getClickCount() == 1) 
-          handleMouseSingleClick(e);
+        if(e.getClickCount() == 1)
+          handleMouseSingleClick(getHyperlinkTextAtMouseEvent(e),
+              QualifierTextArea.this);
       }
     });
     
@@ -235,7 +237,7 @@ public class QualifierTextArea extends JTextPane
     }
   }
   
-  private int getEndOfLink(String s, int ind)
+  public static int getEndOfLink(String s, int ind)
   {
     final char endOfLinkChar[] = { 
         ' ',
@@ -276,11 +278,13 @@ public class QualifierTextArea extends JTextPane
   
   /**
    * Process double click event.
-   * @param e
+   * @param hyperlinkText
+   * @param c
    */
-  private void handleMouseSingleClick(final MouseEvent e)
+  public static void handleMouseSingleClick(
+      final String hyperlinkText,
+      final JComponent c)
   {
-    final String hyperlinkText = getHyperlinkTextAtMouseEvent(e);
     if(hyperlinkText == null)
       return;
     
@@ -299,9 +303,9 @@ public class QualifierTextArea extends JTextPane
           String link = (String)dbsLinks.get(i+1);
           
           if(link.equals("srs_url"))
-            sendToBrowser( getSrsLink(hyperlinkText) );
+            sendToBrowser( getSrsLink(hyperlinkText), c );
           else
-            sendToBrowser(link + id[1]);
+            sendToBrowser(link + id[1], c);
           return;
         }
       }
@@ -313,7 +317,7 @@ public class QualifierTextArea extends JTextPane
    * @param hyperlinkText
    * @return
    */
-  private String getSrsLink(String hyperlinkText)
+  private static String getSrsLink(String hyperlinkText)
   {
     String cmd = DataCollectionPane.getSrsSite() + 
                "/wgetz?-e+[" + hyperlinkText + "]";
@@ -339,15 +343,15 @@ public class QualifierTextArea extends JTextPane
    * Send hyperlink to browser
    * @param cmd
    */
-  private void sendToBrowser(final String cmd)
+  private static void sendToBrowser(final String cmd, final JComponent c)
   {
     SwingWorker browserLaunch = new SwingWorker()
     {
       public Object construct()
       {
-        setCursor(cbusy);
+        c.setCursor(cbusy);
         BrowserControl.displayURL(cmd);
-        setCursor(cdone);
+        c.setCursor(cdone);
         return null;
       }
     };
@@ -360,7 +364,7 @@ public class QualifierTextArea extends JTextPane
     return a.toLowerCase().lastIndexOf(b.toLowerCase());
   }
   
-  private int indexOfIgnoreCase(String a, String b, int fromPos)
+  private static int indexOfIgnoreCase(String a, String b, int fromPos)
   {
     return a.toLowerCase().indexOf(b.toLowerCase(), fromPos);
   }