package logopaint; import java.awt.Paint; import java.awt.Color; import java.util.*; import org.biojava.bio.*; import org.biojava.bio.symbol.*; import org.biojava.bio.gui.*; import org.biojava.bio.seq.RNATools; /** * A simple implementation of SymbolStyle optimized for DNA. * * @author Mark Schreiber */ public class RNAStyle implements SymbolStyle { private Map outlinePaint; private Map fillPaint; { outlinePaint = new HashMap(); fillPaint = new HashMap(); } public Paint outlinePaint(Symbol s) throws IllegalSymbolException { RNATools.getRNA().validate(s); return (Paint) outlinePaint.get(s); } public Paint fillPaint(Symbol s) throws IllegalSymbolException { RNATools.getRNA().validate(s); return (Paint) fillPaint.get(s); } public void setOutlinePaint(Symbol s, Paint paint) throws IllegalSymbolException { RNATools.getRNA().validate(s); outlinePaint.put(s, paint); } public void setFillPaint(Symbol s, Paint paint) throws IllegalSymbolException { RNATools.getRNA().validate(s); fillPaint.put(s, paint); } public RNAStyle() { try { setOutlinePaint(RNATools.u(), Color.red); setFillPaint(RNATools.u(), Color.red); setOutlinePaint(RNATools.a(), Color.green); setFillPaint(RNATools.a(), Color.green); setOutlinePaint(RNATools.g(), Color.blue); setFillPaint(RNATools.g(), Color.blue); setOutlinePaint(RNATools.c(), Color.yellow); setFillPaint(RNATools.c(), Color.yellow); } catch (IllegalSymbolException ire) { throw new BioError(ire, "RNA symbols dissapeared from RNA alphabet"); } } }