JAL-2089 patch broken merge to master for Release 2.10.0b1
[jalview.git] / src / jalview / ws / DasSequenceFeatureFetcher.java
index 08070db..7e069e3 100644 (file)
@@ -1,30 +1,35 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.1)
- * Copyright (C) 2014 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
  * Jalview is free software: you can redistribute it and/or
  * modify it under the terms of the GNU General Public License 
- * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
  *  
  * Jalview is distributed in the hope that it will be useful, but 
  * WITHOUT ANY WARRANTY; without even the implied warranty 
  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
  * PURPOSE.  See the GNU General Public License for more details.
  * 
- * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
  * The Jalview Authors are detailed in the 'AUTHORS' file.
  */
 package jalview.ws;
 
 import jalview.bin.Cache;
 import jalview.datamodel.DBRefEntry;
+import jalview.datamodel.DBRefSource;
 import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceI;
 import jalview.gui.AlignFrame;
 import jalview.gui.Desktop;
 import jalview.gui.FeatureSettings;
+import jalview.util.DBRefUtils;
+import jalview.util.MessageManager;
 import jalview.util.UrlLink;
 import jalview.ws.dbsources.das.api.DasSourceRegistryI;
 import jalview.ws.dbsources.das.api.jalviewSourceI;
@@ -178,13 +183,12 @@ public class DasSequenceFeatureFetcher
     int refCount = 0;
     for (int i = 0; i < sequences.length; i++)
     {
-      DBRefEntry[] dbref = sequences[i].getDBRef();
+      DBRefEntry[] dbref = sequences[i].getDBRefs();
       if (dbref != null)
       {
         for (int j = 0; j < dbref.length; j++)
         {
-          if (dbref[j].getSource().equals(
-                  jalview.datamodel.DBRefSource.UNIPROT))
+          if (dbref[j].getSource().equals(DBRefSource.UNIPROT))
           {
             refCount++;
             break;
@@ -202,9 +206,10 @@ public class DasSequenceFeatureFetcher
         reply = JOptionPane
                 .showInternalConfirmDialog(
                         Desktop.desktop,
-                        "Do you want Jalview to find\n"
-                                + "Uniprot Accession ids for given sequence names?",
-                        "Find Uniprot Accession Ids",
+                        MessageManager
+                                .getString("info.you_want_jalview_to_find_uniprot_accessions"),
+                        MessageManager
+                                .getString("label.find_uniprot_accession_ids"),
                         JOptionPane.YES_NO_OPTION,
                         JOptionPane.QUESTION_MESSAGE);
       }
@@ -234,6 +239,7 @@ public class DasSequenceFeatureFetcher
 
   class FetchSeqFeatures implements Runnable
   {
+    @Override
     public void run()
     {
       startFetching();
@@ -243,10 +249,14 @@ public class DasSequenceFeatureFetcher
 
   class FetchDBRefs implements Runnable
   {
+    @Override
     public void run()
     {
       running = true;
-      new DBRefFetcher(sequences, af).fetchDBRefs(true);
+      boolean isNucleotide = af.getViewport().getAlignment().isNucleotide();
+      new DBRefFetcher(sequences, af, null, af.featureSettings,
+              isNucleotide).fetchDBRefs(true);
+
       startFetching();
       setGuiFetchComplete();
     }
@@ -262,7 +272,9 @@ public class DasSequenceFeatureFetcher
     startTime = System.currentTimeMillis();
     if (af != null)
     {
-      af.setProgressBar("Fetching DAS Sequence Features", startTime);
+      af.setProgressBar(MessageManager
+              .getString("status.fetching_das_sequence_features"),
+              startTime);
     }
     if (sourceRegistry == null)
     {
@@ -274,8 +286,7 @@ public class DasSequenceFeatureFetcher
       {
         jalviewSourceI[] sources = sourceRegistry.getSources().toArray(
                 new jalviewSourceI[0]);
-        String active = jalview.bin.Cache.getDefault("DAS_ACTIVE_SOURCE",
-                "uniprot");
+        String active = Cache.getDefault("DAS_ACTIVE_SOURCE", "uniprot");
         StringTokenizer st = new StringTokenizer(active, "\t");
         selectedSources = new Vector();
         String token;
@@ -376,8 +387,7 @@ public class DasSequenceFeatureFetcher
                         source));
         for (String id : idl)
         {
-          List<String> qid = Arrays.asList(new String[]
-          { id });
+          List<String> qid = Arrays.asList(new String[] { id });
           try
           {
             DasGFFAdapter dga = featuresc.fetchData(source, qid);
@@ -494,13 +504,13 @@ public class DasSequenceFeatureFetcher
                 } catch (Exception ex)
                 {
                   Cache.log
-                          .info("Error in 'experimental' mapping of features. Please try to reproduce and then report info to jalview-discuss@jalview.org.");
-                  Cache.log.info("Mapping feature from " + f.getBegin()
+                          .warn("Error in 'experimental' mapping of features. Please try to reproduce and then report info to jalview-discuss@jalview.org.");
+                  Cache.log.warn("Mapping feature from " + f.getBegin()
                           + " to " + f.getEnd() + " in dbref "
                           + dbref.getAccessionId() + " in "
                           + dbref.getSource());
-                  Cache.log.info("using das Source " + source);
-                  Cache.log.info("Exception", ex);
+                  Cache.log.warn("using das Source " + source);
+                  Cache.log.warn("Exception", ex);
                 }
 
                 if (vf != null)
@@ -535,7 +545,9 @@ public class DasSequenceFeatureFetcher
 
     if (af != null)
     {
-      af.setProgressBar("No DAS Sources Active", startTime);
+      af.setProgressBar(
+              MessageManager.getString("status.no_das_sources_active"),
+              startTime);
     }
     if (getFeatSettings() != null)
     {
@@ -565,7 +577,9 @@ public class DasSequenceFeatureFetcher
   {
     if (af != null)
     {
-      af.setProgressBar("DAS Feature Fetching Cancelled", startTime);
+      af.setProgressBar(MessageManager
+              .getString("status.das_feature_fetching_cancelled"),
+              startTime);
     }
     cancelled = true;
   }
@@ -580,12 +594,13 @@ public class DasSequenceFeatureFetcher
     if (!cancelled && af != null)
     {
       // only update the progress bar if we've completed the fetch normally
-      af.setProgressBar("DAS Feature Fetching Complete", startTime);
+      af.setProgressBar(MessageManager
+              .getString("status.das_feature_fetching_complete"), startTime);
     }
 
     if (af != null && af.featureSettings != null)
     {
-      af.featureSettings.setTableData();
+      af.featureSettings.discoverAllFeatureData();
     }
 
     if (getFeatSettings() != null)
@@ -624,12 +639,13 @@ public class DasSequenceFeatureFetcher
   Object[] nextSequence(jalviewSourceI dasSource, SequenceI seq)
   {
     if (cancelled)
+    {
       return null;
-    DBRefEntry[] uprefs = jalview.util.DBRefUtils.selectRefs(
-            seq.getDBRef(), new String[]
-            {
+    }
+    DBRefEntry[] uprefs = DBRefUtils.selectRefs(seq.getDBRefs(),
+            new String[] {
             // jalview.datamodel.DBRefSource.PDB,
-            jalview.datamodel.DBRefSource.UNIPROT,
+            DBRefSource.UNIPROT,
             // jalview.datamodel.DBRefSource.EMBL - not tested on any EMBL coord
             // sys sources
             });
@@ -648,8 +664,8 @@ public class DasSequenceFeatureFetcher
 
         for (COORDINATES csys : dasSource.getVersion().getCOORDINATES())
         {
-          if (jalview.util.DBRefUtils.isDasCoordinateSystem(
-                  csys.getAuthority(), uprefs[j]))
+          if (DBRefUtils.isDasCoordinateSystem(csys.getAuthority(),
+                  uprefs[j]))
           {
             debug("Launched fetcher for coordinate system "
                     + csys.getAuthority());
@@ -666,7 +682,9 @@ public class DasSequenceFeatureFetcher
             qstring.add(uprefs[j].getAccessionId());
           }
           else
+          {
             System.out.println("IGNORE " + csys.getAuthority());
+          }
         }
       }
     }
@@ -704,8 +722,7 @@ public class DasSequenceFeatureFetcher
       }
     }
 
-    return new Object[]
-    { ids, qstring };
+    return new Object[] { ids, qstring };
   }
 
   /**
@@ -837,7 +854,7 @@ public class DasSequenceFeatureFetcher
       {
         for (String note : feat.getNOTE())
         {
-          desc += (String) note;
+          desc += note;
         }
       }