if(currentLineIndex >= model.getSelectionStartLine() && currentLineIndex <= model.getSelectionEndLine()) paintLineHighlight(model,gfx,y);  if(bracketHighlight && currentLineIndex == model.getBracketLine()) paintBracketHighlight(model,gfx,y);  gfx.setColor(defaultColor);
	protected int paintLine(TextAreaModel model, Graphics gfx,		int x, int y)	{		TokenMarker tokenMarker = model.getTokenMarker();		Font defaultFont = getFont();		Color defaultColor = getForeground();		/* Clear the line's bounding rectangle */		FontMetrics fm = getFontMetrics();		int gap = fm.getMaxDescent() + fm.getLeading();		gfx.setColor(getBackground());		gfx.fillRect(0,y + gap,offImg.getWidth(this),fm.getHeight());						gfx.setFont(defaultFont);		if(currentLineIndex < 0 || currentLineIndex >= model.getLineCount())		{			gfx.setColor(defaultColor);			gfx.drawString("~",0,y + model.getLineHeight());			return 1;		}		// Get the text		model.getLineText(currentLineIndex,currentLine);		// draw the highlights		if(currentLineIndex >= model.getSelectionStartLine()			&& currentLineIndex <= model.getSelectionEndLine())			paintLineHighlight(model,gfx,y);		if(bracketHighlight && currentLineIndex == model.getBracketLine())			paintBracketHighlight(model,gfx,y);		gfx.setColor(defaultColor);		if(tokenMarker == null)		{			paintPlainLine(model,gfx,defaultFont,defaultColor,				x,y + model.getLineHeight());			return 1;		}		else		{			int count = 0;			int lastVisibleLine = textArea.getFirstLine()				+ textArea.getVisibleLines();			do			{				model.getLineText(currentLineIndex,currentLine);				currentLineTokens = tokenMarker.markTokens(					currentLine,currentLineIndex);				currentLineIndex++;				if(currentLineIndex <= lastVisibleLine)				{					y += model.getLineHeight();					paintSyntaxLine(model,gfx,defaultFont,						defaultColor,x,y);				}				count++;			}			while(tokenMarker.isNextLineRequested());			return count;		}	}