|
Lines 52-58
Link Here
|
| 52 |
import org.eclipse.ui.PartInitException; |
52 |
import org.eclipse.ui.PartInitException; |
| 53 |
import org.eclipse.ui.PlatformUI; |
53 |
import org.eclipse.ui.PlatformUI; |
| 54 |
import org.eclipse.ui.XMLMemento; |
54 |
import org.eclipse.ui.XMLMemento; |
| 55 |
import org.eclipse.ui.internal.EditorManager; |
|
|
| 56 |
import org.eclipse.ui.internal.IPreferenceConstants; |
55 |
import org.eclipse.ui.internal.IPreferenceConstants; |
| 57 |
import org.eclipse.ui.internal.IWorkbenchConstants; |
56 |
import org.eclipse.ui.internal.IWorkbenchConstants; |
| 58 |
import org.eclipse.ui.internal.Workbench; |
57 |
import org.eclipse.ui.internal.Workbench; |
|
Lines 256-262
Link Here
|
| 256 |
memento.putInteger(ATTRIBUTE_NUMER, number); |
255 |
memento.putInteger(ATTRIBUTE_NUMER, number); |
| 257 |
memento.putBoolean(ATTRIBUTE_IS_LAUNCHING, window == launchingWindow); |
256 |
memento.putBoolean(ATTRIBUTE_IS_LAUNCHING, window == launchingWindow); |
| 258 |
memento.putBoolean(ATTRIBUTE_IS_ACTIVE, window == activeWindow); |
257 |
memento.putBoolean(ATTRIBUTE_IS_ACTIVE, window == activeWindow); |
| 259 |
((WorkbenchPage) window.getActivePage()).getEditorManager().saveState(memento); |
258 |
//((WorkbenchPage) window.getActivePage()).getEditorManager().saveState(memento); |
| 260 |
} |
259 |
} |
| 261 |
// TODO: avoid storing with preferences due to bloat? |
260 |
// TODO: avoid storing with preferences due to bloat? |
| 262 |
StringWriter writer = new StringWriter(); |
261 |
StringWriter writer = new StringWriter(); |
|
Lines 309-315
Link Here
|
| 309 |
*/ |
308 |
*/ |
| 310 |
@SuppressWarnings("unchecked") |
309 |
@SuppressWarnings("unchecked") |
| 311 |
private void restoreEditors(WorkbenchPage page, IMemento memento, boolean isActiveWindow) { |
310 |
private void restoreEditors(WorkbenchPage page, IMemento memento, boolean isActiveWindow) { |
| 312 |
EditorManager editorManager = page.getEditorManager(); |
311 |
//EditorManager editorManager = page.getEditorManager(); |
| 313 |
final ArrayList visibleEditors = new ArrayList(5); |
312 |
final ArrayList visibleEditors = new ArrayList(5); |
| 314 |
final IEditorReference activeEditor[] = new IEditorReference[1]; |
313 |
final IEditorReference activeEditor[] = new IEditorReference[1]; |
| 315 |
final MultiStatus result = new MultiStatus(PlatformUI.PLUGIN_ID, IStatus.OK, "", null); //$NON-NLS-1$ |
314 |
final MultiStatus result = new MultiStatus(PlatformUI.PLUGIN_ID, IStatus.OK, "", null); //$NON-NLS-1$ |
|
Lines 320-340
Link Here
|
| 320 |
editorMementoSet.addAll(Arrays.asList(editorMementos)); |
319 |
editorMementoSet.addAll(Arrays.asList(editorMementos)); |
| 321 |
// HACK: same parts could have different editors |
320 |
// HACK: same parts could have different editors |
| 322 |
Set<String> restoredPartNames = new HashSet<String>(); |
321 |
Set<String> restoredPartNames = new HashSet<String>(); |
| 323 |
List<IEditorReference> alreadyVisibleEditors = Arrays.asList(editorManager.getEditors()); |
322 |
// List<IEditorReference> alreadyVisibleEditors = Arrays.asList(editorManager.getEditors()); |
| 324 |
for (IEditorReference editorReference : alreadyVisibleEditors) { |
323 |
// for (IEditorReference editorReference : alreadyVisibleEditors) { |
| 325 |
restoredPartNames.add(editorReference.getPartName()); |
324 |
// restoredPartNames.add(editorReference.getPartName()); |
| 326 |
} |
325 |
// } |
| 327 |
for (IMemento editorMemento : editorMementoSet) { |
326 |
for (IMemento editorMemento : editorMementoSet) { |
| 328 |
String partName = editorMemento.getString(IWorkbenchConstants.TAG_PART_NAME); |
327 |
String partName = editorMemento.getString(IWorkbenchConstants.TAG_PART_NAME); |
| 329 |
if (!restoredPartNames.contains(partName)) { |
328 |
if (!restoredPartNames.contains(partName)) { |
| 330 |
editorManager.restoreEditorState(editorMemento, visibleEditors, activeEditor, result); |
329 |
//editorManager.restoreEditorState(editorMemento, visibleEditors, activeEditor, result); |
| 331 |
} else { |
330 |
} else { |
| 332 |
restoredPartNames.add(partName); |
331 |
restoredPartNames.add(partName); |
| 333 |
} |
332 |
} |
| 334 |
} |
333 |
} |
| 335 |
|
334 |
|
| 336 |
for (int i = 0; i < visibleEditors.size(); i++) { |
335 |
for (int i = 0; i < visibleEditors.size(); i++) { |
| 337 |
editorManager.setVisibleEditor((IEditorReference) visibleEditors.get(i), false); |
336 |
//editorManager.setVisibleEditor((IEditorReference) visibleEditors.get(i), false); |
| 338 |
} |
337 |
} |
| 339 |
|
338 |
|
| 340 |
if (activeEditor[0] != null && isActiveWindow) { |
339 |
if (activeEditor[0] != null && isActiveWindow) { |