import jalview.workers.ConsensusThread;
import jalview.workers.StrucConsensusThread;
+import java.awt.Color;
import java.util.ArrayList;
+import java.util.BitSet;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
protected boolean showConsensus = true;
+ Hashtable sequenceColours;
+
/**
* Property change listener for changes in alignment
*
int charHeight = getCharHeight();
if (aa != null)
{
- boolean graphgrp[] = null;
+ BitSet graphgrp = new BitSet();
for (int i = 0; i < aa.length; i++)
{
if (aa[i] == null)
}
if (aa[i].graphGroup > -1)
{
- if (graphgrp == null)
- {
- graphgrp = new boolean[aa.length];
- }
- if (graphgrp[aa[i].graphGroup])
+ if (graphgrp.get(aa[i].graphGroup))
{
continue;
}
else
{
- graphgrp[aa[i].graphGroup] = true;
+ graphgrp.set(aa[i].graphGroup);
}
}
aa[i].height = 0;
oldrfs.clear();
}
+ @Override
+ public Color getSequenceColour(SequenceI seq)
+ {
+ Color sqc=Color.white;
+ if (sequenceColours != null)
+ {
+ sqc = (Color) sequenceColours.get(seq);
+ if (sqc == null) {
+ sqc = Color.white;
+ }
+ }
+ return sqc;
+ }
+
+ @Override
+ public void setSequenceColour(SequenceI seq, Color col)
+ {
+ if (sequenceColours == null)
+ {
+ sequenceColours = new Hashtable();
+ }
+
+ if (col == null)
+ {
+ sequenceColours.remove(seq);
+ }
+ else
+ {
+ sequenceColours.put(seq, col);
+ }
+ }
+
+ @Override
+ public void updateSequenceIdColours()
+ {
+ if (sequenceColours == null)
+ {
+ sequenceColours = new Hashtable();
+ }
+ for (SequenceGroup sg : alignment.getGroups())
+ {
+ if (sg.idColour != null)
+ {
+ for (SequenceI s : sg.getSequences(getHiddenRepSequences()))
+ {
+ sequenceColours.put(s, sg.idColour);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void clearSequenceColours()
+ {
+ sequenceColours = null;
+ };
}