package aliview.gui.pane; import java.awt.Color; import java.awt.Font; import java.util.HashMap; import java.util.HashSet; 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 TranslationCharPixelsContainerShowBoth { private static final Logger logger = Logger.getLogger(TranslationCharPixelsContainerShowBoth.class); private CharPixelsContainer[] allAAContainers; public RGBArray getRGBArray(AminoAcid aa, byte residue){ return allAAContainers[aa.intVal].getRGBArray(residue); } public static TranslationCharPixelsContainerShowBoth createDefaultTranslationPixelsContainer(Font font, int minFontSize, int width, int height, ColorScheme colorScheme, int fontCase) { TranslationCharPixelsContainerShowBoth transContainer = new TranslationCharPixelsContainerShowBoth(); transContainer.allAAContainers = new CharPixelsContainer[AminoAcid.HIGEST_AA_INT_VAL + 1]; for(AminoAcid containerAcid: AminoAcid.GROUP_ALL){ 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.getAminoAcidBackgroundColor(containerAcid); container.backend[n] = new CharPixels((char)n, width, height, fgColor, bgColor, font, minFontSize, fontCase); } transContainer.allAAContainers[containerAcid.intVal] = container; } return transContainer; } public static TranslationCharPixelsContainerShowBoth createSelectedTranslationPixelsContainer(Font font, int minFontSize, int width, int height, ColorScheme colorScheme, int fontCase) { TranslationCharPixelsContainerShowBoth transContainer = new TranslationCharPixelsContainerShowBoth(); transContainer.allAAContainers = new CharPixelsContainer[AminoAcid.HIGEST_AA_INT_VAL + 1]; for(AminoAcid containerAcid: AminoAcid.GROUP_ALL){ CharPixelsContainer container = new CharPixelsContainer(); for(int n = 0; n < container.backend.length; n++){ int baseVal = NucleotideUtilities.baseValFromBase((byte)n); // It looks better without the selected color for foreground Color fgColor = colorScheme.getBaseForegroundColor(baseVal); Color bgColor = colorScheme.getAminoAcidSelectionBackgroundColor(containerAcid); container.backend[n] = new CharPixels((char)n, width, height, fgColor, bgColor, font, minFontSize, fontCase); } transContainer.allAAContainers[containerAcid.intVal] = container; } return transContainer; } public static TranslationCharPixelsContainerShowBoth createLetterTranslationPixelsContainer(Font font, int minFontSize, int width, int height, ColorScheme colorScheme, int fontCase) { TranslationCharPixelsContainerShowBoth transContainer = new TranslationCharPixelsContainerShowBoth(); transContainer.allAAContainers = new CharPixelsContainer[AminoAcid.HIGEST_AA_INT_VAL + 1]; for(AminoAcid containerAcid: AminoAcid.GROUP_ALL){ CharPixelsContainer container = new CharPixelsContainer(); for(int n = 0; n < container.backend.length; n++){ Color fgColor = Color.white; //colorScheme.getAminoAcidForgroundColor(containerAcid); Color bgColor = colorScheme.getAminoAcidBackgroundColor(containerAcid); container.backend[n] = new CharPixels(containerAcid.getCodeCharVal(), width, height, fgColor, bgColor, font, minFontSize, fontCase); } transContainer.allAAContainers[containerAcid.intVal] = container; } return transContainer; } public static TranslationCharPixelsContainerShowBoth createSelectedLetterTranslationPixelsContainer(Font font, int minFontSize, int width, int height, ColorScheme colorScheme, int fontCase) { TranslationCharPixelsContainerShowBoth transContainer = new TranslationCharPixelsContainerShowBoth(); transContainer.allAAContainers = new CharPixelsContainer[AminoAcid.HIGEST_AA_INT_VAL + 1]; for(AminoAcid containerAcid: AminoAcid.GROUP_ALL){ CharPixelsContainer container = new CharPixelsContainer(); for(int n = 0; n < container.backend.length; n++){ Color fgColor = Color.white; //colorScheme.getAminoAcidForgroundColor(containerAcid); Color bgColor = colorScheme.getAminoAcidSelectionBackgroundColor(containerAcid); container.backend[n] = new CharPixels(containerAcid.getCodeCharVal(), width, height, fgColor, bgColor, font, minFontSize, fontCase); } transContainer.allAAContainers[containerAcid.intVal] = container; } return transContainer; } }