|
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 |
/** |