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 29398
Collapse All | Expand All

(-)MultiPageEditorSite.java (-14 / +37 lines)
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
}

Return to bug 29398