private void previousPage() {
    if (currentSource.hasPreviousPage()) {
      currentSource.previousPage();

      // set new text
      panel.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
      panel.refreshCurrentMarkup();
      panel.setCursor(null);

      // update display
      panel.updateCurrentPageDisplay(currentSource.getCurrentPage());

      // scroll to current selection
      ExtractedContentViewer.this.scrollToCurrentHit();

      // update controls if needed
      if (!currentSource.hasPreviousPage()) {
        panel.enablePrevPageControl(false);
      }
      if (currentSource.hasNextPage()) {
        panel.enableNextPageControl(true);
      }

      updateSearchControls();
    }
  }