JAL-3253 one global singleton instance of EnsemblInfo suffices
[jalview.git] / src / jalview / gui / CrossRefAction.java
index 21a0a84..d37cb29 100644 (file)
@@ -34,7 +34,6 @@ import jalview.datamodel.SequenceI;
 import jalview.ext.ensembl.EnsemblInfo;
 import jalview.ext.ensembl.EnsemblMap;
 import jalview.io.gff.SequenceOntologyI;
-import jalview.structure.StructureSelectionManager;
 import jalview.util.DBRefUtils;
 import jalview.util.MapList;
 import jalview.util.MappingUtils;
@@ -108,7 +107,8 @@ public class CrossRefAction implements Runnable
       /*
        * get display scheme (if any) to apply to features
        */
-      FeatureSettingsModelI featureColourScheme = new SequenceFetcher()
+      FeatureSettingsModelI featureColourScheme = SequenceFetcher
+              .getInstance()
               .getFeatureColourScheme(source);
 
       AlignmentI xrefsAlignment = makeCrossReferencesAlignment(dataset,
@@ -141,7 +141,7 @@ public class CrossRefAction implements Runnable
        */
       AlignFrame newFrame = new AlignFrame(xrefsAlignment,
               AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT);
-      if (Cache.getDefault("HIDE_INTRONS", true))
+      if (Cache.getDefault(Preferences.HIDE_INTRONS, true))
       {
         newFrame.hideFeatureColumns(SequenceOntologyI.EXON, false);
       }
@@ -176,10 +176,14 @@ public class CrossRefAction implements Runnable
       /*
        * copy feature rendering settings to split frame
        */
-      newFrame.alignPanel.getSeqPanel().seqCanvas.getFeatureRenderer()
-              .transferSettings(myFeatureStyling);
-      copyThis.alignPanel.getSeqPanel().seqCanvas.getFeatureRenderer()
-              .transferSettings(myFeatureStyling);
+      FeatureRenderer fr1 = newFrame.alignPanel.getSeqPanel().seqCanvas
+              .getFeatureRenderer();
+      fr1.transferSettings(myFeatureStyling);
+      fr1.findAllFeatures(true);
+      FeatureRenderer fr2 = copyThis.alignPanel.getSeqPanel().seqCanvas
+              .getFeatureRenderer();
+      fr2.transferSettings(myFeatureStyling);
+      fr2.findAllFeatures(true);
 
       /*
        * apply 'database source' feature configuration
@@ -279,8 +283,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)
     {
@@ -300,8 +304,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)
         {
@@ -336,7 +340,7 @@ public class CrossRefAction implements Runnable
 
     /*
      * hack: ignore cross-references to Ensembl protein ids
-     * (can't fetch chromosomal mapping for these)
+     * (or use map/translation perhaps?)
      * todo: is there an equivalent in EnsemblGenomes?
      */
     if (accession.startsWith("ENSP"))
@@ -432,14 +436,12 @@ public class CrossRefAction implements Runnable
     copyAlignment
             .setGapCharacter(alignFrame.viewport.getGapCharacter());
 
-    StructureSelectionManager ssm = StructureSelectionManager
-            .getStructureSelectionManager(Desktop.instance);
-
     /*
      * register any new mappings for sequence mouseover etc
      * (will not duplicate any previously registered mappings)
      */
-    ssm.registerMappings(dataset.getCodonFrames());
+    Desktop.getStructureSelectionManager()
+            .registerMappings(dataset.getCodonFrames());
 
     if (copyAlignment.getHeight() <= 0)
     {