int lineCount = content.getLineCount(); int oldColumnX = columnX; int oldHScrollOffset = horizontalScrollOffset; int caretLine;
void doPageDown(boolean select, int lines) {	int lineCount = content.getLineCount();	int oldColumnX = columnX;	int oldHScrollOffset = horizontalScrollOffset;	int caretLine;		// do nothing if in single line mode. fixes 5673	if (isSingleLine()) {		return;	}	caretLine = getCaretLine();	if (caretLine < lineCount - 1) {		int verticalMaximum = lineCount * getVerticalIncrement();		int pageSize = getClientArea().height;		int scrollLines = Math.min(lineCount - caretLine - 1, lines);		int scrollOffset;				// ensure that scrollLines never gets negative and at leat one 		// line is scrolled. fixes bug 5602.		scrollLines = Math.max(1, scrollLines);		caretLine += scrollLines;		caretOffset = getOffsetAtMouseLocation(columnX, caretLine); 		if (select) {			doSelection(ST.COLUMN_NEXT);		}		// scroll one page down or to the bottom		scrollOffset = verticalScrollOffset + scrollLines * getVerticalIncrement();		if (scrollOffset + pageSize > verticalMaximum) {			scrollOffset = verticalMaximum - pageSize;		}		if (scrollOffset > verticalScrollOffset) {					setVerticalScrollOffset(scrollOffset, true);		}	}	// explicitly go to the calculated caret line. may be different 	// from content.getLineAtOffset(caretOffset) when in word wrap mode	showCaret(caretLine);	// restore the original horizontal caret position	int hScrollChange = oldHScrollOffset - horizontalScrollOffset;	columnX = oldColumnX + hScrollChange;}