diff --git a/uk/ac/sanger/artemis/components/database/DatabaseJPanel.java b/uk/ac/sanger/artemis/components/database/DatabaseJPanel.java
index a6a2b408f940931b3ab91908e066e46926e06223..318acc17269f127dada790fa0fd68a6b5d5a4705 100644
--- a/uk/ac/sanger/artemis/components/database/DatabaseJPanel.java
+++ b/uk/ac/sanger/artemis/components/database/DatabaseJPanel.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/database/DatabaseJPanel.java,v 1.8 2007-07-02 14:57:34 tjc Exp $
+ * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/database/DatabaseJPanel.java,v 1.9 2007-08-23 12:10:35 tjc Exp $
  */
 
 package uk.ac.sanger.artemis.components.database;
@@ -35,6 +35,7 @@ import uk.ac.sanger.artemis.util.OutOfRangeException;
 import uk.ac.sanger.artemis.util.DatabaseDocument;
 import uk.ac.sanger.artemis.io.DatabaseDocumentEntry;
 
+import javax.swing.JComponent;
 import javax.swing.JTree;
 import javax.swing.JScrollPane;
 import javax.swing.JSeparator;
@@ -143,9 +144,10 @@ public class DatabaseJPanel extends JPanel
       
       String id = seq_node.getFeatureId(); 
       if(id != null)
-        getEntryEditFromDatabase(id, entry_source, tree,
-                                 splash_main, node_name,
-                                 schema);
+        getEntryEditFromDatabase(id, entry_source, tree, 
+            status_line, stream_progress_listener, 
+            splitGFFEntry, splash_main, 
+            node_name, schema);
     }
     catch(NullPointerException npe)
     {
@@ -154,16 +156,25 @@ public class DatabaseJPanel extends JPanel
 
   /**
    * Retrieve a database entry.
-   * @param id
+   * @param srcfeatureId
    * @param entry_source
-   * @param tree
+   * @param srcComponent
+   * @param status_line
+   * @param stream_progress_listener
+   * @param splitGFFEntry
    * @param splash_main
-   * @param node_name
+   * @param dbDocumentName
    * @param schema
    */
-  private void getEntryEditFromDatabase(final String id,
-      final DatabaseEntrySource entry_source, final JTree tree,
-      final Splash splash_main, final String node_name,
+  private static void getEntryEditFromDatabase(
+      final String srcfeatureId,
+      final DatabaseEntrySource entry_source, 
+      final JComponent srcComponent,
+      final JLabel status_line,
+      final InputStreamProgressListener stream_progress_listener,
+      final boolean splitGFFEntry,
+      final Splash splash_main, 
+      final String dbDocumentName,
       final String schema)
   {
     SwingWorker entryWorker = new SwingWorker()
@@ -174,82 +185,34 @@ public class DatabaseJPanel extends JPanel
         Cursor cdone = new Cursor(Cursor.DEFAULT_CURSOR);
 
         status_line.setText("Retrieving sequence....");
-        tree.setCursor(cbusy);
+        srcComponent.setCursor(cbusy);
         try
         {
           entry_source.setSplitGFF(splitGFFEntry);
 
-          final Entry entry = entry_source.getEntry(id, schema,
+          final Entry entry = entry_source.getEntry(srcfeatureId, schema,
               stream_progress_listener);
 
 
           DatabaseDocumentEntry db_entry =
                          (DatabaseDocumentEntry)entry.getEMBLEntry();
           DatabaseDocument doc = (DatabaseDocument)db_entry.getDocument();
-          doc.setName(node_name);
+          doc.setName(dbDocumentName);
 
           if(entry == null)
           {
-            tree.setCursor(cdone);
+            srcComponent.setCursor(cdone);
             status_line.setText("No entry.");
             return null;
           }
 
           final EntryEdit new_entry_edit = ArtemisMain.makeEntryEdit(entry);
-
-          // retrieve match features
-          /*uk.ac.sanger.artemis.FeatureVector fv = entry.getAllFeatures();
-          List matches = doc.getSimilarityMatches();
-
-          Hashtable temp_lookup_hash = new Hashtable(matches.size()/2);
-          String f_id;
-          for(int i=0; i<fv.size(); i++)
-          {
-            Feature f = fv.elementAt(i);
-            f_id = f.getValueOfQualifier("feature_id");
-            if(f_id != null)
-            {
-              temp_lookup_hash.put(f_id, f);
-            }
-          }
-          
-          
-          for(int i=0; i<matches.size(); i++)
-          {
-            org.gmod.schema.sequence.Feature matchFeature =
-                 (org.gmod.schema.sequence.Feature)matches.get(i);
-            
-            java.util.Collection featureLocs = matchFeature.getFeatureLocsForFeatureId();
-            java.util.Iterator it = featureLocs.iterator();
-            while(it.hasNext())
-            {
-              org.gmod.schema.sequence.FeatureLoc featureLoc =
-                (org.gmod.schema.sequence.FeatureLoc)it.next();
-
-              //Feature queryFeature = getFeatureById(
-              //    Integer.toString(featureLoc.getSrcFeatureId()), fv);
-              
-              Feature queryFeature = 
-                (Feature)temp_lookup_hash.get(Integer.toString(featureLoc.getSrcFeatureId()));
-              
-              if(queryFeature != null)
-              {
-                ((GFFStreamFeature)queryFeature.getEmblFeature()).addSimilarityFeature(matchFeature);
-                break;
-              }
-
-            }
-          }
-          temp_lookup_hash.clear();*/
           
           // add gff entries
           if(splitGFFEntry)
           {
-//          DatabaseDocumentEntry db_entry = 
-//                       (DatabaseDocumentEntry)entry.getEMBLEntry();
-
             final DatabaseDocumentEntry[] entries = entry_source.makeFromGff(
-                        (DatabaseDocument)db_entry.getDocument(), id, schema);
+                        (DatabaseDocument)db_entry.getDocument(), srcfeatureId, schema);
             for(int i = 0; i < entries.length; i++)
             {
               if(entries[i] == null)
@@ -279,7 +242,7 @@ public class DatabaseJPanel extends JPanel
           new MessageDialog(splash_main, "read failed due to IO error: " + e);
         }
         
-        tree.setCursor(cdone);
+        srcComponent.setCursor(cdone);
         return null;
       }