package aliview.gui.pane;
import java.awt.Color;
import java.awt.Font;
import org.apache.log4j.Logger;
import aliview.AminoAcid;
import aliview.NucleotideUtilities;
import aliview.alignment.Alignment;
import aliview.color.ColorScheme;
import aliview.sequencelist.AlignmentListModel;
public class CharPixelsContainer {
CharPixels[] backend = new CharPixels[256];
private static final Logger logger = Logger.getLogger(CharPixelsContainer.class);
// Below is for CompounColorScheme
private ColorScheme colorScheme;
public CharPixelsContainer() {
// logger.info("init CharPixContainer");
}
public RGBArray getRGBArray(byte target){
return backend[target].getRGBArray();
}
public static CharPixelsContainer createDefaultNucleotideContainer(Font font, int minFontSize, int width, int height, ColorScheme colorScheme, int fontCalse){
CharPixelsContainer container = new CharPixelsContainer();
for(int n = 0; n < container.backend.length; n++){
int baseVal = NucleotideUtilities.baseValFromBase((byte)n);
Color fgColor = colorScheme.getBaseForegroundColor(baseVal);
Color bgColor = colorScheme.getBaseBackgroundColor(baseVal);
container.backend[n] = new CharPixels((char)n, width, height, fgColor, bgColor, font, minFontSize, fontCalse);
}
return container;
}
public static CharPixelsContainer createSelectedNucleotideContainer(Font font, int minFontSize, int width, int height, ColorScheme colorScheme, int fontCase){
CharPixelsContainer container = new CharPixelsContainer();
for(int n = 0; n < container.backend.length; n++){
int baseVal = NucleotideUtilities.baseValFromBase((byte)n);
Color fgColor = colorScheme.getBaseSelectionForegroundColor(baseVal);
Color bgColor = colorScheme.getBaseSelectionBackgroundColor(baseVal);
container.backend[n] = new CharPixels((char)n, width, height, fgColor, bgColor, font, minFontSize, fontCase);
}
return container;
}
public static CharPixelsContainer createConsensusNucleotideContainer(Font font, int minFontSize, int width, int height, ColorScheme colorScheme, int fontCase){
CharPixelsContainer container = new CharPixelsContainer();
for(int n = 0; n < container.backend.length; n++){
int baseVal = NucleotideUtilities.baseValFromBase((byte)n);
Color fgColor = colorScheme.getBaseForegroundColor(baseVal);
Color bgColor = colorScheme.getBaseConsensusBackgroundColor();
container.backend[n] = new CharPixels((char)n, width, height, fgColor, bgColor, font, minFontSize, fontCase);
}
return container;
}
public static CharPixelsContainer createDefaultAAContainer(Font font, int minFontSize, int width, int height, ColorScheme colorScheme, int fontCase) {
CharPixelsContainer container = new CharPixelsContainer();
for(int n = 0; n < container.backend.length; n++){
AminoAcid aa = AminoAcid.getAminoAcidFromByte((byte)n);
Color fgColor = colorScheme.getAminoAcidForgroundColor(aa);
Color bgColor = colorScheme.getAminoAcidBackgroundColor(aa);
container.backend[n] = new CharPixels((char)n, width, height, fgColor, bgColor, font, minFontSize, fontCase);
}
return container;
}
public static CharPixelsContainer createSelectedAAContainer(Font font, int minFontSize, int width, int height, ColorScheme colorScheme, int fontCase) {
CharPixelsContainer container = new CharPixelsContainer();
for(int n = 0; n < container.backend.length; n++){
AminoAcid aa = AminoAcid.getAminoAcidFromByte((byte)n);
Color fgColor = colorScheme.getAminoAcidSelectionForegroundColor(aa);
Color bgColor = colorScheme.getAminoAcidSelectionBackgroundColor(aa);
container.backend[n] = new CharPixels((char)n, width, height, fgColor, bgColor, font, minFontSize,fontCase);
}
return container;
}
public static CharPixelsContainer createConsensusAAContainer(Font font, int minFontSize, int width, int height, ColorScheme colorScheme, int fontCase) {
CharPixelsContainer container = new CharPixelsContainer();
for(int n = 0; n < container.backend.length; n++){
AminoAcid aa = AminoAcid.getAminoAcidFromByte((byte)n);
Color fgColor = colorScheme.getAminoAcidForgroundColor(aa);
Color bgColor = colorScheme.getBaseConsensusBackgroundColor();
container.backend[n] = new CharPixels((char)n, width, height, fgColor, bgColor, font, minFontSize, fontCase);
}
return container;
}
}