import java.beans.*;
import java.io.*;
+import java.util.Hashtable;
import java.util.Vector;
import java.awt.*;
annotationSpaceFillerHolder.setPreferredSize(new Dimension(
annotationSpaceFillerHolder.getWidth(), height));
annotationScroller.validate();// repaint();
+ addNotify();
repaint();
}
*/
public void updateAnnotation()
{
+ updateAnnotation(false);
+ }
+ public void updateAnnotation(boolean applyGlobalSettings)
+ {
boolean updateCalcs = false;
boolean conv = av.isShowGroupConservation();
boolean cons = av.isShowGroupConsensus();
+ boolean showprf = av.isShowSequenceLogo();
+ boolean showConsHist = av.isShowConsensusHistogram();
+
boolean sortg = true;
// remove old automatic annotation
// intersect alignment annotation with alignment groups
AlignmentAnnotation[] aan = av.alignment.getAlignmentAnnotation();
+ Hashtable oldrfs = new Hashtable();
for (int an = 0; an < aan.length; an++)
{
if (aan[an].autoCalculated && aan[an].groupRef != null)
{
+ oldrfs.put(aan[an].groupRef, aan[an].groupRef);
av.alignment.deleteAnnotation(aan[an]);
aan[an] = null;
}
{
updateCalcs = false;
sg = (SequenceGroup) gr.elementAt(g);
-
+ if (applyGlobalSettings || !oldrfs.containsKey(sg))
+ {
+ // set defaults for this group's conservation/consensus
+ sg.setIncludeAllConsSymbols(showprf);
+ sg.setShowConsensusHistogram(showConsHist);
+ }
if (conv)
{
updateCalcs = true;
sg.recalcConservation();
}
}
+ oldrfs.clear();
adjustAnnotationHeight();
}
}