import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.Annotation;
import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.HiddenColumns;
import jalview.datamodel.ProfilesI;
-import jalview.schemes.CollectionColourScheme;
-import jalview.schemes.CollectionColourSchemeI;
import jalview.schemes.ColourSchemeI;
import jalview.schemes.NucleotideColourScheme;
import jalview.schemes.ResidueProperties;
boolean av_renderHistogram = true, av_renderProfile = true,
av_normaliseProfile = false;
- CollectionColourSchemeI profcolour = null;
+ ResidueShaderI profcolour = null;
private ColumnSelection columnSelection;
+ private HiddenColumns hiddenColumns;
+
private ProfilesI hconsensus;
private Hashtable[] complementConsensus;
* display a backward arrow
*/
g.fillPolygon(new int[] { lastSSX + 5, lastSSX + 5, lastSSX },
- new int[] { y + iconOffset, y + 14 + iconOffset,
- y + 8 + iconOffset }, 3);
+ new int[]
+ { y + iconOffset, y + 14 + iconOffset, y + 8 + iconOffset },
+ 3);
x1 += 5;
}
if (diffdownstream)
* if annotation ending with an opeing base pair half of the stem,
* display a forward arrow
*/
- g.fillPolygon(new int[] { x2 - 5, x2 - 5, x2 }, new int[] {
- y + iconOffset, y + 14 + iconOffset, y + 8 + iconOffset }, 3);
+ g.fillPolygon(new int[] { x2 - 5, x2 - 5, x2 },
+ new int[]
+ { y + iconOffset, y + 14 + iconOffset, y + 8 + iconOffset },
+ 3);
x2 -= 5;
}
if (diffupstream)
boolean diffdownstream = !validRes || !validEnd
|| row_annotations[column] == null
|| !dc.equals(row_annotations[column].displayCharacter);
- // System.out.println("Column "+column+" diff up: "+diffupstream+" down:"+diffdownstream);
+ // System.out.println("Column "+column+" diff up: "+diffupstream+"
+ // down:"+diffdownstream);
// If a closing base pair half of the stem, display a backward arrow
if (column > 0 && Rna.isClosingParenthesis(dc))
{
// dc.equals(row_annotations[column-2].displayCharacter))
{
g.fillPolygon(new int[] { lastSSX + 5, lastSSX + 5, lastSSX },
- new int[] { y + iconOffset, y + 14 + iconOffset,
- y + 8 + iconOffset }, 3);
+ new int[]
+ { y + iconOffset, y + 14 + iconOffset, y + 8 + iconOffset },
+ 3);
x1 += 5;
}
if (diffdownstream)
// display a forward arrow
if (diffdownstream)
{
- g.fillPolygon(new int[] { x2 - 5, x2 - 5, x2 }, new int[] {
- y + iconOffset, y + 14 + iconOffset, y + 8 + iconOffset }, 3);
+ g.fillPolygon(new int[] { x2 - 5, x2 - 5, x2 },
+ new int[]
+ { y + iconOffset, y + 14 + iconOffset, y + 8 + iconOffset },
+ 3);
x2 -= 5;
}
if (diffupstream)
public void updateFromAlignViewport(AlignViewportI av)
{
charWidth = av.getCharWidth();
- endRes = av.getEndRes();
+ endRes = av.getRanges().getEndRes();
charHeight = av.getCharHeight();
hasHiddenColumns = av.hasHiddenColumns();
validCharWidth = av.isValidCharWidth();
av_renderHistogram = av.isShowConsensusHistogram();
av_renderProfile = av.isShowSequenceLogo();
av_normaliseProfile = av.isNormaliseSequenceLogo();
- profcolour = av.getViewportColourScheme();
+ profcolour = av.getResidueShading();
if (profcolour == null || profcolour.getColourScheme() == null)
{
/*
* the alignment has no colourscheme set
* (would like to use user preference but n/a for applet)
*/
- ColourSchemeI col = av.getAlignment().isNucleotide() ? new NucleotideColourScheme()
+ ColourSchemeI col = av.getAlignment().isNucleotide()
+ ? new NucleotideColourScheme()
: new ZappoColourScheme();
- profcolour = new CollectionColourScheme(col);
+ profcolour = new ResidueShader(col);
}
columnSelection = av.getColumnSelection();
+ hiddenColumns = av.getAlignment().getHiddenColumns();
hconsensus = av.getSequenceConsensusHash();
complementConsensus = av.getComplementConsensusHash();
hStrucConsensus = av.getRnaStructureConsensusHash();
// properties/rendering attributes as a global 'alignment group' which holds
// all vis settings for the alignment as a whole rather than a subset
//
- if (aa.autoCalculated
- && (aa.label.startsWith("Consensus") || aa.label
- .startsWith("cDNA Consensus")))
+ if (aa.autoCalculated && (aa.label.startsWith("Consensus")
+ || aa.label.startsWith("cDNA Consensus")))
{
boolean forComplement = aa.label.startsWith("cDNA Consensus");
if (aa.groupRef != null && aa.groupRef.consensusData != null
{
if (forComplement)
{
- return AAFrequency.extractCdnaProfile(
- complementConsensus[column], av_ignoreGapsConsensus);
+ return AAFrequency.extractCdnaProfile(complementConsensus[column],
+ av_ignoreGapsConsensus);
}
else
{
- return AAFrequency.extractProfile(
-hconsensus.get(column),
+ return AAFrequency.extractProfile(hconsensus.get(column),
av_ignoreGapsConsensus);
}
}
.getAlignmentStrucConsensusAnnotation();
final AlignmentAnnotation complementConsensusAnnot = av
.getComplementConsensusAnnotation();
- boolean renderHistogram = true, renderProfile = true, normaliseProfile = false, isRNA = rna;
+ boolean renderHistogram = true, renderProfile = true,
+ normaliseProfile = false, isRNA = rna;
BitSet graphGroupDrawn = new BitSet();
int charOffset = 0; // offset for a label
lastSS = ' ';
lastSSX = 0;
- if (!useClip
- || ((y - charHeight) < visHeight && (y + row.height + charHeight * 2) >= sOffset))
+ if (!useClip || ((y - charHeight) < visHeight
+ && (y + row.height + charHeight * 2) >= sOffset))
{// if_in_visible_region
if (!clipst)
{
{
y += charHeight;
usedFaded = true;
- g.drawImage(fadedImage, 0, y - row.height, imgWidth, y, 0, y
- - row.height, imgWidth, y, annotationPanel);
+ g.drawImage(fadedImage, 0, y - row.height, imgWidth, y, 0,
+ y - row.height, imgWidth, y, annotationPanel);
g.setColor(Color.black);
// g.drawString("Calculating "+aa[i].label+"....",20, y-row.height/2);
{
if (hasHiddenColumns)
{
- column = columnSelection.adjustForHiddenColumns(startRes + x);
+ column = hiddenColumns.adjustForHiddenColumns(startRes + x);
if (column > row_annotations.length - 1)
{
break;
{
validRes = true;
}
- final String displayChar = validRes ? row_annotations[column].displayCharacter
+ final String displayChar = validRes
+ ? row_annotations[column].displayCharacter
: null;
if (x > -1)
{
if (column == 0 || row.graph > 0)
{
- g.drawString(displayChar, (x * charWidth) + charOffset, y
- + iconOffset);
+ g.drawString(displayChar, (x * charWidth) + charOffset,
+ y + iconOffset);
}
- else if (row_annotations[column - 1] == null
- || (labelAllCols
- || !displayChar
- .equals(row_annotations[column - 1].displayCharacter) || (displayChar
- .length() < 2 && row_annotations[column].secondaryStructure == ' ')))
+ else if (row_annotations[column - 1] == null || (labelAllCols
+ || !displayChar.equals(
+ row_annotations[column - 1].displayCharacter)
+ || (displayChar.length() < 2
+ && row_annotations[column].secondaryStructure == ' ')))
{
- g.drawString(displayChar, x * charWidth + charOffset, y
- + iconOffset);
+ g.drawString(displayChar, x * charWidth + charOffset,
+ y + iconOffset);
}
g.setFont(ofont);
}
{
int nb_annot = x - temp;
- // System.out.println("\t type :"+lastSS+"\t x :"+x+"\t nbre annot :"+nb_annot);
+ // System.out.println("\t type :"+lastSS+"\t x :"+x+"\t nbre
+ // annot :"+nb_annot);
switch (lastSS)
{
case '(': // Stem case for RNA secondary structure
break;
default:
g.setColor(Color.gray);
- g.fillRect(lastSSX, y + 6 + iconOffset, (x * charWidth)
- - lastSSX, 2);
+ g.fillRect(lastSSX, y + 6 + iconOffset,
+ (x * charWidth) - lastSSX, 2);
temp = x;
break;
}
{
clipend = true;
}
- }// end if_in_visible_region
+ } // end if_in_visible_region
if (row.graph > 0 && row.hasText)
{
y += charHeight;
{
if (clipst)
{
- System.err.println("Start clip at : " + yfrom + " (index " + f_i
- + ")");
+ System.err.println(
+ "Start clip at : " + yfrom + " (index " + f_i + ")");
}
if (clipend)
{
- System.err.println("End clip at : " + yto + " (index " + f_to
- + ")");
+ System.err.println(
+ "End clip at : " + yto + " (index " + f_to + ")");
}
}
;
private Color sdNOTCANONICAL_COLOUR;
void drawGlyphLine(Graphics g, Annotation[] row, int lastSSX, int x,
- int y, int iconOffset, int startRes, int column,
- boolean validRes, boolean validEnd)
+ int y, int iconOffset, int startRes, int column, boolean validRes,
+ boolean validEnd)
{
g.setColor(GLYPHLINE_COLOR);
g.fillRect(lastSSX, y + 6 + iconOffset, (x * charWidth) - lastSSX, 2);
void drawSheetAnnot(Graphics g, Annotation[] row,
- int lastSSX, int x, int y, int iconOffset, int startRes, int column,
- boolean validRes, boolean validEnd)
+ int lastSSX, int x, int y, int iconOffset, int startRes,
+ int column, boolean validRes, boolean validEnd)
{
g.setColor(SHEET_COLOUR);
if (!validEnd || !validRes || row == null || row[column] == null
|| row[column].secondaryStructure != 'E')
{
- g.fillRect(lastSSX, y + 4 + iconOffset,
- (x * charWidth) - lastSSX - 4, 7);
- g.fillPolygon(new int[] { (x * charWidth) - 4, (x * charWidth) - 4,
- (x * charWidth) }, new int[] { y + iconOffset,
- y + 14 + iconOffset, y + 7 + iconOffset }, 3);
+ g.fillRect(lastSSX, y + 4 + iconOffset, (x * charWidth) - lastSSX - 4,
+ 7);
+ g.fillPolygon(
+ new int[]
+ { (x * charWidth) - 4, (x * charWidth) - 4, (x * charWidth) },
+ new int[]
+ { y + iconOffset, y + 14 + iconOffset, y + 7 + iconOffset },
+ 3);
}
else
{
- g.fillRect(lastSSX, y + 4 + iconOffset,
- (x + 1) * charWidth - lastSSX, 7);
+ g.fillRect(lastSSX, y + 4 + iconOffset, (x + 1) * charWidth - lastSSX,
+ 7);
}
}
void drawHelixAnnot(Graphics g, Annotation[] row, int lastSSX, int x,
- int y, int iconOffset, int startRes, int column,
- boolean validRes, boolean validEnd)
+ int y, int iconOffset, int startRes, int column, boolean validRes,
+ boolean validEnd)
{
g.setColor(HELIX_COLOUR);
else
{
// g.setColor(Color.magenta);
- g.fillRoundRect(lastSSX + ofs, y + 4 + iconOffset, x2 - x1 - ofs
- + 1, 8, 0, 0);
+ g.fillRoundRect(lastSSX + ofs, y + 4 + iconOffset,
+ x2 - x1 - ofs + 1, 8, 0, 0);
}
}
void drawLineGraph(Graphics g, AlignmentAnnotation _aa,
- Annotation[] aa_annotations, int sRes, int eRes, int y,
- float min, float max, int graphHeight)
+ Annotation[] aa_annotations, int sRes, int eRes, int y, float min,
+ float max, int graphHeight)
{
if (sRes > aa_annotations.length)
{
column = sRes + x;
if (hasHiddenColumns)
{
- column = columnSelection.adjustForHiddenColumns(column);
+ column = hiddenColumns.adjustForHiddenColumns(column);
}
if (column > aaMax)
g.setColor(aa_annotations[column].colour);
}
- y1 = y
- - (int) (((aa_annotations[column - 1].value - min) / range) * graphHeight);
- y2 = y
- - (int) (((aa_annotations[column].value - min) / range) * graphHeight);
+ y1 = y - (int) (((aa_annotations[column - 1].value - min) / range)
+ * graphHeight);
+ y2 = y - (int) (((aa_annotations[column].value - min) / range)
+ * graphHeight);
- g.drawLine(x * charWidth - charWidth / 2, y1, x * charWidth
- + charWidth / 2, y2);
+ g.drawLine(x * charWidth - charWidth / 2, y1,
+ x * charWidth + charWidth / 2, y2);
x++;
}
g.setColor(_aa.threshold.colour);
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(new BasicStroke(1, BasicStroke.CAP_SQUARE,
- BasicStroke.JOIN_ROUND, 3f, new float[] { 5f, 3f }, 0f));
+ BasicStroke.JOIN_ROUND, 3f, new float[]
+ { 5f, 3f }, 0f));
y2 = (int) (y - ((_aa.threshold.value - min) / range) * graphHeight);
g.drawLine(0, y2, (eRes - sRes) * charWidth, y2);
column = sRes + x;
if (hasHiddenColumns)
{
- column = columnSelection.adjustForHiddenColumns(column);
+ column = hiddenColumns.adjustForHiddenColumns(column);
}
if (column > aaMax)
g.setColor(aa_annotations[column].colour);
}
- y1 = y
- - (int) (((aa_annotations[column].value - min) / (range)) * _aa.graphHeight);
+ y1 = y - (int) (((aa_annotations[column].value - min) / (range))
+ * _aa.graphHeight);
if (renderHistogram)
{
ht += scl;
// next profl[] position is profile % for the character(s)
scl = htn * scale * profl[c++];
- lm = ofont.getLineMetrics(dc, 0, 1, g.getFontMetrics()
- .getFontRenderContext());
- Font font = ofont.deriveFont(AffineTransform.getScaleInstance(
- wdth, scl / lm.getAscent()));
+ lm = ofont.getLineMetrics(dc, 0, 1,
+ g.getFontMetrics().getFontRenderContext());
+ Font font = ofont.deriveFont(AffineTransform
+ .getScaleInstance(wdth, scl / lm.getAscent()));
g.setFont(font);
lm = g.getFontMetrics().getLineMetrics(dc, 0, 1, g);
}
g.setColor(colour == Color.white ? Color.lightGray : colour);
- hght = (ht + (scl - lm.getDescent() - lm.getBaselineOffsets()[lm
- .getBaselineIndex()]));
+ hght = (ht + (scl - lm.getDescent()
+ - lm.getBaselineOffsets()[lm.getBaselineIndex()]));
g.drawChars(dc, 0, dc.length, x * charWidth, (int) hght);
valuesProcessed++;
g.setColor(_aa.threshold.colour);
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(new BasicStroke(1, BasicStroke.CAP_SQUARE,
- BasicStroke.JOIN_ROUND, 3f, new float[] { 5f, 3f }, 0f));
+ BasicStroke.JOIN_ROUND, 3f, new float[]
+ { 5f, 3f }, 0f));
- y2 = (int) (y - ((_aa.threshold.value - min) / range)
- * _aa.graphHeight);
+ y2 = (int) (y
+ - ((_aa.threshold.value - min) / range) * _aa.graphHeight);
g.drawLine(0, y2, (eRes - sRes) * charWidth, y2);
g2.setStroke(new BasicStroke());
}