JAL-3210 Barebones gradle/buildship/eclipse. See README
[jalview.git] / src / jalview / gui / SequenceFetcher.java
index b8e3b33..646a7f1 100755 (executable)
@@ -64,9 +64,9 @@ import javax.swing.SwingConstants;
  * If the selected source is Uniprot or PDB, a free text search panel is opened
  * instead to perform the search and selection.
  */
-@SuppressWarnings("serial")
 public class SequenceFetcher extends JPanel implements Runnable
 {
+  private static jalview.ws.SequenceFetcher sfetch = null;
 
   JLabel exampleAccession;
 
@@ -97,6 +97,20 @@ public class SequenceFetcher extends JPanel implements Runnable
   volatile boolean _isConstructing = false;
 
   /**
+   * Returns the shared instance of the SequenceFetcher client
+   * 
+   * @return
+   */
+  public static jalview.ws.SequenceFetcher getSequenceFetcherSingleton()
+  {
+    if (sfetch == null)
+    {
+      sfetch = new jalview.ws.SequenceFetcher();
+    }
+    return sfetch;
+  }
+
+  /**
    * Constructor given a client to receive any status or progress messages
    * (currently either the Desktop, or an AlignFrame panel)
    * 
@@ -118,7 +132,7 @@ public class SequenceFetcher extends JPanel implements Runnable
           final String selectedDb, final String queryString)
   {
     this.progressIndicator = guiIndic;
-
+    getSequenceFetcherSingleton();
     this.guiWindow = progressIndicator;
 
     if (progressIndicator instanceof AlignFrame)
@@ -150,8 +164,7 @@ public class SequenceFetcher extends JPanel implements Runnable
     database = new JComboBox<>();
     database.setFont(JvSwingUtils.getLabelFont());
     database.setPrototypeDisplayValue("ENSEMBLGENOMES   ");
-    String[] sources = jalview.ws.SequenceFetcher.getInstance()
-            .getSupportedDb();
+    String[] sources = new jalview.ws.SequenceFetcher().getSupportedDb();
     Arrays.sort(sources, String.CASE_INSENSITIVE_ORDER);
     database.addItem(MessageManager.getString("action.select_ddbb"));
     for (String source : sources)
@@ -302,8 +315,7 @@ public class SequenceFetcher extends JPanel implements Runnable
   {
     StringBuilder sb = new StringBuilder();
     HashSet<String> hs = new HashSet<>();
-    for (DbSourceProxy dbs : jalview.ws.SequenceFetcher.getInstance()
-            .getSourceProxy(db))
+    for (DbSourceProxy dbs : sfetch.getSourceProxy(db))
     {
       String tq = dbs.getTestQuery();
       if (hs.add(tq)) // not a duplicate source
@@ -451,7 +463,7 @@ public class SequenceFetcher extends JPanel implements Runnable
     List<String> presultTitle = new ArrayList<>();
     List<AlignmentI> presult = new ArrayList<>();
     List<AlignmentI> aresult = new ArrayList<>();
-    List<DbSourceProxy> sources = jalview.ws.SequenceFetcher.getInstance()
+    List<DbSourceProxy> sources = sfetch
             .getSourceProxy((String) database.getSelectedItem());
     Iterator<DbSourceProxy> proxies = sources.iterator();
     String[] qries = textArea.getText().trim().split(";");
@@ -815,7 +827,7 @@ public class SequenceFetcher extends JPanel implements Runnable
         {
           af.getViewport().applyFeaturesStyle(preferredFeatureColours);
         }
-        if (Cache.getDefault(Preferences.HIDE_INTRONS, true))
+        if (Cache.getDefault("HIDE_INTRONS", true))
         {
           af.hideFeatureColumns(SequenceOntologyI.EXON, false);
         }
@@ -827,8 +839,7 @@ public class SequenceFetcher extends JPanel implements Runnable
 
         try
         {
-          af.setMaximum(
-                  Cache.getDefault(Preferences.SHOW_FULLSCREEN, false));
+          af.setMaximum(Cache.getDefault("SHOW_FULLSCREEN", false));
         } catch (Exception ex)
         {
         }
@@ -849,7 +860,7 @@ public class SequenceFetcher extends JPanel implements Runnable
       @Override
       public void run()
       {
-        JvOptionPane.showInternalMessageDialog(Desktop.getDesktopPane(), error,
+        JvOptionPane.showInternalMessageDialog(Desktop.desktop, error,
                 MessageManager.getString("label.error_retrieving_data"),
                 JvOptionPane.WARNING_MESSAGE);
       }