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
public PreviousProblem() {
			setImageDescriptor(CompareUI.DESC_ETOOL_PREV);
			setDisabledImageDescriptor(CompareUI.DESC_DTOOL_PREV);
			setHoverImageDescriptor(CompareUI.DESC_CTOOL_PREV);
			setToolTipText(RefactoringUIMessages.getString("ErrorWizardPage.previous_Change")); 
			WorkbenchHelp.setHelp(this, IRefactoringHelpContextIds.PREVIOUS_PROBLEM_ACTION);
		}	
		public void run() {
			revealElement(false);
		}
		public void update() {
			boolean enabled= false;
			if (fStatus != null && fStatus.hasEntries()) {
				int index= fTableViewer.getTable().getSelectionIndex();
				enabled= index == -1 || index > 0;
			}
			setEnabled(enabled);
		}
	}
	
	private static class RefactoringStatusSorter extends ViewerSorter {