Bug 81733 RefactoringWizardDialog - ErrorPage - action buttons "Next Problem", "Previous Problem" do not work correctly
If a refactoring (checkFinalConditions method) finishes with a refactoring status, that has several entries with different severities, the following situation can happen: Action buttons "Next Problem", "Previous Problem" do not work correctly. (For example the button "Previous" does nothing.) Explanation: There is a bug. The list of entries is retrieved from a RefactoringStatus object and put into a RefactoringStatusViewer. The viewer sorts the items, using RefactoringStatusSorter. The implementation of RefactoringStatusViewer.revealElement(boolean) is wrong, because this takes the index from the table: int index= fTableViewer.getTable().getSelectionIndex(); but this index refers to an index in the sorted list and the code: if (doIt) fTableViewer.setSelection(new StructuredSelection(entries[index])); refers the index (increased or decreased) to the original list of entries (unsorted). The result is a mess after clicking on Next or Previous button.
org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/RefactoringStatusViewer.java
private RefactoringStatusEntry getFirstEntry() {
		if (fStatus == null || !fStatus.hasEntries())
			return null;
		return fStatus.getEntryAt(0);
	}
		
	private void revealElement(boolean next) {
		RefactoringStatusEntry[] entries= fStatus.getEntries();
		if (entries.length == 0) {
			return;
		}
		int index= fTableViewer.getTable().getSelectionIndex();
		int last= entries.length - 1;
		boolean doIt= true;
		if (index == -1) {
			index= 0;
		} else if (next && index < last) {
			index++;
		} else if (!next && index > 0) {
			index--;
		} else {
			doIt= false;
		}
		if (doIt)	
			fTableViewer.setSelection(new StructuredSelection(entries[index]));
	}
}