JAL-3949 Complete new abstracted logging framework in jalview.log. Updated log calls...
[jalview.git] / src / jalview / gui / CrossRefAction.java
index 37f11df..8c64c32 100644 (file)
@@ -112,6 +112,13 @@ public class CrossRefAction implements Runnable
       FeatureSettingsModelI featureColourScheme = new SequenceFetcher()
               .getFeatureColourScheme(source);
 
+      if (dna && AlignmentUtils.looksLikeEnsembl(alignment))
+      {
+        // override default featureColourScheme so products have Ensembl variant colours
+        featureColourScheme = new SequenceFetcher()
+                .getFeatureColourScheme(DBRefSource.ENSEMBL);
+      }
+
       AlignmentI xrefsAlignment = makeCrossReferencesAlignment(dataset,
               xrefs);
       if (!dna)
@@ -188,15 +195,24 @@ public class CrossRefAction implements Runnable
 
       /*
        * apply 'database source' feature configuration
-       * if any was found
+       * if any - first to the new splitframe view about to be displayed
        */
-      // TODO is this the feature colouring for the original
-      // alignment or the fetched xrefs? either could be Ensembl
+
       newFrame.getViewport().applyFeaturesStyle(featureColourScheme);
       copyThis.getViewport().applyFeaturesStyle(featureColourScheme);
 
+      /*
+       * and for JAL-3330 also to original alignFrame view(s)
+       * this currently trashes any original settings.
+       */
+      for (AlignmentViewPanel origpanel: alignFrame.getAlignPanels()) {
+        origpanel.getAlignViewport()
+                .mergeFeaturesStyle(featureColourScheme);
+      }
+
       SplitFrame sf = new SplitFrame(dna ? copyThis : newFrame,
               dna ? newFrame : copyThis);
+
       newFrame.setVisible(true);
       copyThis.setVisible(true);
       String linkedTitle = MessageManager
@@ -213,7 +229,7 @@ public class CrossRefAction implements Runnable
       new OOMWarning("whilst fetching crossreferences", e);
     } catch (Throwable e)
     {
-      Cache.log.error("Error when finding crossreferences", e);
+      Cache.error("Error when finding crossreferences", e);
     } finally
     {
       alignFrame.setProgressBar(MessageManager.formatMessage(
@@ -284,8 +300,8 @@ public class CrossRefAction implements Runnable
      */
     String[] divisionsArray = ensemblDivisions
             .toArray(new String[ensemblDivisions.size()]);
-    DBRefEntry[] seqRefs = seq.getDBRefs();
-    DBRefEntry[] directEnsemblRefs = DBRefUtils.selectRefs(seqRefs,
+    List<DBRefEntry> seqRefs = seq.getDBRefs();
+    List<DBRefEntry> directEnsemblRefs = DBRefUtils.selectRefs(seqRefs,
             divisionsArray);
     if (directEnsemblRefs != null)
     {
@@ -305,8 +321,8 @@ public class CrossRefAction implements Runnable
     {
       if (dbref.getMap() != null && dbref.getMap().getTo() != null)
       {
-        DBRefEntry[] dbrefs = dbref.getMap().getTo().getDBRefs();
-        DBRefEntry[] indirectEnsemblRefs = DBRefUtils.selectRefs(dbrefs,
+        List<DBRefEntry> dbrefs = dbref.getMap().getTo().getDBRefs();
+        List<DBRefEntry> indirectEnsemblRefs = DBRefUtils.selectRefs(dbrefs,
                 divisionsArray);
         if (indirectEnsemblRefs != null)
         {
@@ -357,12 +373,12 @@ public class CrossRefAction implements Runnable
             seq.getLength());
     if (geneLoci != null)
     {
-      MapList map = geneLoci.getMap();
+      MapList map = geneLoci.getMapping();
       int mappedFromLength = MappingUtils.getLength(map.getFromRanges());
       if (mappedFromLength == seq.getLength())
       {
         seq.setGeneLoci(geneLoci.getSpeciesId(), geneLoci.getAssemblyId(),
-                geneLoci.getChromosomeId(), geneLoci.getMap());
+                geneLoci.getChromosomeId(), map);
         retrievedLoci.put(dbref, geneLoci);
         return true;
       }
@@ -375,12 +391,12 @@ public class CrossRefAction implements Runnable
             seq.getLength());
     if (geneLoci != null)
     {
-      MapList map = geneLoci.getMap();
+      MapList map = geneLoci.getMapping();
       int mappedFromLength = MappingUtils.getLength(map.getFromRanges());
       if (mappedFromLength == seq.getLength())
       {
         seq.setGeneLoci(geneLoci.getSpeciesId(), geneLoci.getAssemblyId(),
-                geneLoci.getChromosomeId(), geneLoci.getMap());
+                geneLoci.getChromosomeId(), map);
         retrievedLoci.put(dbref, geneLoci);
         return true;
       }