Bug 501797 - Rework QuickFixPage
Change-Id: Ia235b6223c932c111a59a7393e797b0dc70e0190
Signed-off-by: Lars Vogel <Lars.Vogel@vogella.com>
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/QuickFixPage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/QuickFixPage.java
index 20c4ec4..9d9f3e0 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/QuickFixPage.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/QuickFixPage.java
@@ -23,6 +23,7 @@
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.ILabelProviderListener;
@@ -79,7 +80,7 @@
private TableViewer resolutionsList;
private CheckboxTableViewer markersTable;
private IWorkbenchPartSite site;
- private final IMarker[] selectedMarkers;
+ private IMarker[] selectedMarkers;
/**
@@ -122,8 +123,7 @@
control.setLayout(layout);
Label resolutionsLabel = new Label(control, SWT.NONE);
- resolutionsLabel
- .setText(MarkerMessages.MarkerResolutionDialog_Resolutions_List_Title);
+ resolutionsLabel.setText(MarkerMessages.MarkerResolutionDialog_Resolutions_List_Title);
resolutionsLabel.setLayoutData(new FormData());
@@ -137,8 +137,7 @@
resolutionsList.getControl().setLayoutData(listData);
Label title = new Label(control, SWT.NONE);
- title
- .setText(MarkerMessages.MarkerResolutionDialog_Problems_List_Title);
+ title.setText(MarkerMessages.MarkerResolutionDialog_Problems_List_Title);
FormData labelData = new FormData();
labelData.top = new FormAttachment(resolutionsList.getControl(), 0);
labelData.left = new FormAttachment(0);
@@ -163,8 +162,7 @@
Dialog.applyDialogFont(control);
- resolutionsList.setSelection(new StructuredSelection(resolutionsList
- .getElementAt(0)));
+ resolutionsList.setSelection(new StructuredSelection(resolutionsList.getElementAt(0)));
markersTable.setCheckedElements(selectedMarkers);
@@ -219,25 +217,8 @@
* @param control
*/
private void createResolutionsList(Composite control) {
- resolutionsList= new TableViewer(control, SWT.BORDER | SWT.SINGLE
- | SWT.V_SCROLL);
- resolutionsList.setContentProvider(new IStructuredContentProvider() {
- @Override
- public Object[] getElements(Object inputElement) {
- return resolutions.keySet().toArray();
- }
-
- @Override
- public void dispose() {
-
- }
-
- @Override
- public void inputChanged(Viewer viewer, Object oldInput,
- Object newInput) {
-
- }
- });
+ resolutionsList = new TableViewer(control, SWT.BORDER | SWT.SINGLE | SWT.V_SCROLL);
+ resolutionsList.setContentProvider(ArrayContentProvider.getInstance());
resolutionsList.setLabelProvider(new LabelProvider() {
@Override
@@ -251,7 +232,7 @@
}
});
- resolutionsList.setInput(this);
+ resolutionsList.setInput(resolutions.keySet().toArray());
resolutionsList.setComparator(new ViewerComparator() {
/**
@@ -292,8 +273,7 @@
* @param control
*/
private void createMarkerTable(Composite control) {
- markersTable = CheckboxTableViewer.newCheckList(control, SWT.BORDER
- | SWT.V_SCROLL | SWT.SINGLE);
+ markersTable = CheckboxTableViewer.newCheckList(control, SWT.BORDER | SWT.V_SCROLL | SWT.SINGLE);
createTableColumns();
@@ -305,7 +285,8 @@
@Override
public Object[] getElements(Object inputElement) {
- IMarkerResolution selected = getSelectedResolution();
+ IMarkerResolution selected = (IMarkerResolution) resolutionsList.getStructuredSelection()
+ .getFirstElement();
if (selected == null) {
return new Object[0];
}
@@ -317,8 +298,7 @@
}
@Override
- public void inputChanged(Viewer viewer, Object oldInput,
- Object newInput) {
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
});
@@ -328,8 +308,7 @@
@Override
public Image getColumnImage(Object element, int columnIndex) {
if (columnIndex == 0)
- return Util.getImage(((IMarker) element).getAttribute(
- IMarker.SEVERITY, -1));
+ return Util.getImage(((IMarker) element).getAttribute(IMarker.SEVERITY, -1));
return null;
}
@@ -436,12 +415,10 @@
layout.addColumnData(new ColumnWeightData(70, true));
TableColumn tc = new TableColumn(table, SWT.NONE, 0);
- tc
- .setText(MarkerMessages.MarkerResolutionDialog_Problems_List_Location);
+ tc.setText(MarkerMessages.MarkerResolutionDialog_Problems_List_Location);
layout.addColumnData(new ColumnWeightData(30, true));
tc = new TableColumn(table, SWT.NONE, 0);
- tc
- .setText(MarkerMessages.MarkerResolutionDialog_Problems_List_Resource);
+ tc.setText(MarkerMessages.MarkerResolutionDialog_Problems_List_Resource);
}
@@ -451,9 +428,9 @@
* @return IMarker or <code>null</code>
*/
public IMarker getSelectedMarker() {
- ISelection selection = markersTable.getSelection();
- if (!selection.isEmpty() && selection instanceof IStructuredSelection) {
- IStructuredSelection struct = (IStructuredSelection) selection;
+ IStructuredSelection selection = markersTable.getStructuredSelection();
+ if (!selection.isEmpty()) {
+ IStructuredSelection struct = selection;
if (struct.size() == 1)
return (IMarker) struct.getFirstElement();
}
@@ -472,11 +449,12 @@
*/
void performFinish(IProgressMonitor monitor) {
- final IMarkerResolution resolution = getSelectedResolution();
+ IMarkerResolution resolution = (IMarkerResolution) resolutionsList.getStructuredSelection()
+ .getFirstElement();
if (resolution == null)
return;
- final Object[] checked = markersTable.getCheckedElements();
+ Object[] checked = markersTable.getCheckedElements();
if (checked.length == 0)
return;
@@ -488,12 +466,8 @@
System.arraycopy(checked, 0, markers, 0, checked.length);
((WorkbenchMarkerResolution) resolution).run(markers, monitor1);
});
- } catch (InvocationTargetException e) {
- StatusManager.getManager().handle(
- MarkerSupportInternalUtilities.errorFor(e));
- } catch (InterruptedException e) {
- StatusManager.getManager().handle(
- MarkerSupportInternalUtilities.errorFor(e));
+ } catch (InvocationTargetException | InterruptedException e) {
+ StatusManager.getManager().handle(MarkerSupportInternalUtilities.errorFor(e));
}
} else {
@@ -522,25 +496,6 @@
}
}
-
- }
-
- /**
- * Return the marker resolution that is currently selected/
- *
- * @return IMarkerResolution or <code>null</code> if there is no
- * selection.
- */
- private IMarkerResolution getSelectedResolution() {
- ISelection selection = resolutionsList.getSelection();
- if (!(selection instanceof IStructuredSelection)) {
- return null;
- }
-
- Object first = ((IStructuredSelection) selection).getFirstElement();
-
- return (IMarkerResolution) first;
-
}
}