|
Lines 10-15
Link Here
|
| 10 |
*******************************************************************************/ |
10 |
*******************************************************************************/ |
| 11 |
package org.eclipse.ui.part; |
11 |
package org.eclipse.ui.part; |
| 12 |
|
12 |
|
|
|
13 |
import java.util.ArrayList; |
| 14 |
|
| 13 |
import org.eclipse.core.runtime.jobs.Job; |
15 |
import org.eclipse.core.runtime.jobs.Job; |
| 14 |
import org.eclipse.jface.action.MenuManager; |
16 |
import org.eclipse.jface.action.MenuManager; |
| 15 |
import org.eclipse.jface.util.Assert; |
17 |
import org.eclipse.jface.util.Assert; |
|
Lines 27-32
Link Here
|
| 27 |
import org.eclipse.ui.IWorkbenchPage; |
29 |
import org.eclipse.ui.IWorkbenchPage; |
| 28 |
import org.eclipse.ui.IWorkbenchPart; |
30 |
import org.eclipse.ui.IWorkbenchPart; |
| 29 |
import org.eclipse.ui.IWorkbenchWindow; |
31 |
import org.eclipse.ui.IWorkbenchWindow; |
|
|
32 |
import org.eclipse.ui.internal.PartSite; |
| 33 |
import org.eclipse.ui.internal.PopupMenuExtender; |
| 30 |
import org.eclipse.ui.internal.WorkbenchPlugin; |
34 |
import org.eclipse.ui.internal.WorkbenchPlugin; |
| 31 |
|
35 |
|
| 32 |
/** |
36 |
/** |
|
Lines 71-76
Link Here
|
| 71 |
private IKeyBindingService service = null; |
75 |
private IKeyBindingService service = null; |
| 72 |
|
76 |
|
| 73 |
/** |
77 |
/** |
|
|
78 |
* The list of popup menu extenders; <code>null</code> if none registered. |
| 79 |
*/ |
| 80 |
private ArrayList menuExtenders; |
| 81 |
|
| 82 |
/** |
| 74 |
* Creates a site for the given editor nested within the given multi-page editor. |
83 |
* Creates a site for the given editor nested within the given multi-page editor. |
| 75 |
* |
84 |
* |
| 76 |
* @param multiPageEditor the multi-page editor |
85 |
* @param multiPageEditor the multi-page editor |
|
Lines 88-93
Link Here
|
| 88 |
* Dispose the contributions. |
97 |
* Dispose the contributions. |
| 89 |
*/ |
98 |
*/ |
| 90 |
public void dispose() { |
99 |
public void dispose() { |
|
|
100 |
if (menuExtenders != null) { |
| 101 |
for (int i = 0; i < menuExtenders.size(); i++) { |
| 102 |
((PopupMenuExtender) menuExtenders.get(i)).dispose(); |
| 103 |
} |
| 104 |
menuExtenders = null; |
| 105 |
} |
| 106 |
|
| 91 |
// Remove myself from the list of nested key binding services. |
107 |
// Remove myself from the list of nested key binding services. |
| 92 |
if (service != null) { |
108 |
if (service != null) { |
| 93 |
IKeyBindingService parentService = getEditor().getSite() |
109 |
IKeyBindingService parentService = getEditor().getSite() |
|
Lines 305-311
Link Here
|
| 305 |
*/ |
321 |
*/ |
| 306 |
public void registerContextMenu(String menuID, MenuManager menuMgr, |
322 |
public void registerContextMenu(String menuID, MenuManager menuMgr, |
| 307 |
ISelectionProvider selProvider) { |
323 |
ISelectionProvider selProvider) { |
| 308 |
getMultiPageEditor().getSite().registerContextMenu(menuID, menuMgr, selProvider); |
324 |
if (menuExtenders == null) { |
|
|
325 |
menuExtenders = new ArrayList(1); |
| 326 |
} |
| 327 |
PartSite.registerContextMenu(menuID, menuMgr, selProvider, true, |
| 328 |
editor, menuExtenders); |
| 309 |
} |
329 |
} |
| 310 |
|
330 |
|
| 311 |
/** |
331 |
/** |
|
Lines 373-389
Link Here
|
| 373 |
} |
393 |
} |
| 374 |
|
394 |
|
| 375 |
public final void registerContextMenu(final String menuId, |
395 |
public final void registerContextMenu(final String menuId, |
| 376 |
final MenuManager menuManager, |
396 |
final MenuManager menuManager, |
| 377 |
final ISelectionProvider selectionProvider, |
397 |
final ISelectionProvider selectionProvider, |
| 378 |
final boolean includeEditorInput) { |
398 |
final boolean includeEditorInput) { |
| 379 |
getMultiPageEditor().getEditorSite().registerContextMenu(menuId, |
399 |
if (menuExtenders == null) { |
| 380 |
menuManager, selectionProvider, includeEditorInput); |
400 |
menuExtenders = new ArrayList(1); |
| 381 |
} |
401 |
} |
| 382 |
|
402 |
PartSite.registerContextMenu(menuId, menuManager, selectionProvider, |
| 383 |
public final void registerContextMenu(final MenuManager menuManager, |
403 |
includeEditorInput, editor, menuExtenders); |
| 384 |
final ISelectionProvider selectionProvider, |
404 |
} |
| 385 |
final boolean includeEditorInput) { |
405 |
|
| 386 |
getMultiPageEditor().getEditorSite().registerContextMenu(menuManager, |
406 |
public final void registerContextMenu(final MenuManager menuManager, |
| 387 |
selectionProvider, includeEditorInput); |
407 |
final ISelectionProvider selectionProvider, |
| 388 |
} |
408 |
final boolean includeEditorInput) { |
|
|
409 |
registerContextMenu(getId(), menuManager, selectionProvider, |
| 410 |
includeEditorInput); |
| 411 |
} |
| 389 |
} |
412 |
} |