import jalview.api.AlignmentViewPanel;
import jalview.api.FeatureSettingsModelI;
import jalview.bin.Cache;
+import jalview.bin.Console;
import jalview.datamodel.Alignment;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.DBRefEntry;
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)
/*
* 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
new OOMWarning("whilst fetching crossreferences", e);
} catch (Throwable e)
{
- Cache.log.error("Error when finding crossreferences", e);
+ Console.error("Error when finding crossreferences", e);
} finally
{
alignFrame.setProgressBar(MessageManager.formatMessage(
*/
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)
{
{
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)
{