Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 173095 | Differences between
and this patch

Collapse All | Expand All

(-)Eclipse UI/org/eclipse/ui/dialogs/EditorSelectionDialog.java (-3 / +29 lines)
Lines 23-28 Link Here
23
import org.eclipse.jface.util.Util;
23
import org.eclipse.jface.util.Util;
24
import org.eclipse.jface.viewers.ArrayContentProvider;
24
import org.eclipse.jface.viewers.ArrayContentProvider;
25
import org.eclipse.jface.viewers.LabelProvider;
25
import org.eclipse.jface.viewers.LabelProvider;
26
import org.eclipse.jface.viewers.StructuredSelection;
26
import org.eclipse.jface.viewers.TableViewer;
27
import org.eclipse.jface.viewers.TableViewer;
27
import org.eclipse.osgi.util.TextProcessor;
28
import org.eclipse.osgi.util.TextProcessor;
28
import org.eclipse.swt.SWT;
29
import org.eclipse.swt.SWT;
Lines 60-65 Link Here
60
public final class EditorSelectionDialog extends Dialog {
61
public final class EditorSelectionDialog extends Dialog {
61
	private EditorDescriptor selectedEditor;
62
	private EditorDescriptor selectedEditor;
62
63
64
	private EditorDescriptor hiddenSelectedEditor;
65
66
	private int hiddenTableTopIndex;
67
63
	private Button externalButton;
68
	private Button externalButton;
64
69
65
	private Table editorTable;
70
	private Table editorTable;
Lines 229-239 Link Here
229
	}
234
	}
230
235
231
	protected void fillEditorTable() {
236
	protected void fillEditorTable() {
232
		if (internalButton.getSelection()) {
237
		EditorDescriptor newSelection = null;
233
			editorTableViewer.setInput(getInternalEditors());
238
		int newTopIndex = 0;
239
240
		boolean showInternal = internalButton.getSelection();
241
		boolean isShowingInternal = editorTableViewer.getInput() == getInternalEditors();
242
		if (showInternal != isShowingInternal) {
243
			newSelection = hiddenSelectedEditor;
244
			newTopIndex = hiddenTableTopIndex;
245
			if (editorTable.getSelectionIndex() != -1) {
246
				hiddenSelectedEditor = (EditorDescriptor) editorTable.getSelection()[0].getData();
247
				hiddenTableTopIndex = editorTable.getTopIndex();
248
			}
249
		}
250
251
		editorTableViewer.setInput(showInternal ? getInternalEditors() : getExternalEditors());
252
253
		if (newSelection != null) {
254
			editorTable.setTopIndex(newTopIndex);
255
			editorTableViewer.setSelection(new StructuredSelection(newSelection), true);
234
		} else {
256
		} else {
235
			editorTableViewer.setInput(getExternalEditors());
257
			// set focus to first element, but don't select it:
258
			editorTable.setTopIndex(0);
259
			editorTable.setSelection(0);
260
			editorTable.deselectAll();
236
		}
261
		}
262
		editorTable.setFocus();
237
	}
263
	}
238
264
239
	/**
265
	/**

Return to bug 173095