/** * @return A site that can be used with a header. * @since 3.4 * @see #createPageContainer(Composite) * @see #PAGE_CONTAINER_SITE * @see #getPageSite(int) */ private IServiceLocator getPageContainerSite() { if (pageContainerSite == null) { IServiceLocatorCreator slc = getSite() .getService(IServiceLocatorCreator.class); pageContainerSite = slc.createServiceLocator(getSite(), null, () -> close()); } return pageContainerSite; }
/** * The <code>MultiPageEditorSite</code> implementation of this * <code>IWorkbenchPartSite</code> method forwards to the multi-page * editor to return the workbench page. * * @return The workbench page in which this editor site resides. */ @Override public IWorkbenchPage getPage() { return getMultiPageEditor().getSite().getPage(); }
/** * The <code>MultiPageEditorSite</code> implementation of this * <code>IWorkbenchPartSite</code> method forwards to the multi-page * editor to return the shell. * * @return The shell in which this editor site resides. */ @Override public Shell getShell() { return getMultiPageEditor().getSite().getShell(); }
/** * The <code>MultiPageEditorSite</code> implementation of this * <code>IWorkbenchPartSite</code> method forwards to the multi-page * editor to return the workbench window. * * @return The workbench window in which this editor site resides. */ @Override public IWorkbenchWindow getWorkbenchWindow() { return getMultiPageEditor().getSite().getWorkbenchWindow(); }
/** * The <code>MultiPageEditorSite</code> implementation of this * <code>IWorkbenchPartSite</code> method forwards to the multi-page * editor for registration. * * @param menuManager * The menu manager * @param selProvider * The selection provider. */ @Override public void registerContextMenu(MenuManager menuManager, ISelectionProvider selProvider) { getMultiPageEditor().getSite().registerContextMenu(menuManager, selProvider); }
void close() { // 3.x implementation closes the editor when the ISL is disposed PartSite partSite = (PartSite) getSite(); MPart model = partSite.getModel(); Widget widget = (Widget) model.getWidget(); if (widget != null && !widget.isDisposed()) { getSite().getPage().closeEditor(MultiPageEditorPart.this, true); } }
/** * Creates a site for the given editor nested within the given multi-page * editor. * * @param multiPageEditor * the multi-page editor * @param editor * the nested editor */ public MultiPageEditorSite(MultiPageEditorPart multiPageEditor, IEditorPart editor) { Assert.isNotNull(multiPageEditor); Assert.isNotNull(editor); this.multiPageEditor = multiPageEditor; this.editor = editor; PartSite site = (PartSite) multiPageEditor.getSite(); IServiceLocatorCreator slc = site .getService(IServiceLocatorCreator.class); String name = "MultiPageEditorSite (" + editor.getClass().getName() + ")"; //$NON-NLS-1$ //$NON-NLS-2$ context = site.getModel().getContext().createChild(name); serviceLocator = (ServiceLocator) slc.createServiceLocator( multiPageEditor.getSite(), null, () -> getMultiPageEditor().close(), context); initializeDefaultServices(); }
IHandlerService service = getSite().getService(IHandlerService.class); service.activateHandler(COMMAND_NEXT_SUB_TAB, new AbstractHandler() {
/** * Handles a post selection changed even from the nexted editor. * <p> * Subclasses may extend or reimplement this method * * @param event the event * * @since 3.2 */ protected void handlePostSelectionChanged(SelectionChangedEvent event) { ISelectionProvider parentProvider = getMultiPageEditor().getSite() .getSelectionProvider(); if (parentProvider instanceof MultiPageSelectionProvider) { SelectionChangedEvent newEvent = new SelectionChangedEvent( parentProvider, event.getSelection()); MultiPageSelectionProvider prov = (MultiPageSelectionProvider) parentProvider; prov.firePostSelectionChanged(newEvent); } }
/** * Handles a post selection changed event from the nested editor. The * default implementation gets the selection provider from the multi-page * editor's site, and calls <code>firePostSelectionChanged</code> on it * (only if it is an instance of <code>MultiPageSelectionProvider</code>), * passing a new event object. * <p> * Subclasses may extend or reimplement this method. * </p> * * @param event * the event */ protected void handlePostSelectionChanged(SelectionChangedEvent event) { ISelectionProvider parentProvider = getMultiPageEditor().getSite().getSelectionProvider(); if (parentProvider instanceof PostMultiPageSelectionProvider) { SelectionChangedEvent newEvent = new SelectionChangedEvent(parentProvider, event.getSelection()); ((PostMultiPageSelectionProvider) parentProvider).firePostSelectionChanged(newEvent); } }
/** * Handles a selection changed event from the nested editor. The default * implementation gets the selection provider from the multi-page editor's * site, and calls <code>fireSelectionChanged</code> on it (only if it is * an instance of <code>MultiPageSelectionProvider</code>), passing a new * event object. * <p> * Subclasses may extend or reimplement this method. * </p> * * @param event * the event */ protected void handleSelectionChanged(SelectionChangedEvent event) { ISelectionProvider parentProvider = getMultiPageEditor().getSite() .getSelectionProvider(); if (parentProvider instanceof MultiPageSelectionProvider) { SelectionChangedEvent newEvent = new SelectionChangedEvent( parentProvider, event.getSelection()); MultiPageSelectionProvider prov = (MultiPageSelectionProvider) parentProvider; prov.fireSelectionChanged(newEvent); } }
final IKeyBindingService service = getSite().getKeyBindingService(); if (pageIndex < 0 || pageIndex >= getPageCount() || immediate) {
final IKeyBindingService service = getSite().getKeyBindingService(); final int pageIndex = getActivePage(); final IEditorPart editor = getEditor(pageIndex);
/** * Initialize the slave services for this site. */ private void initializeDefaultServices() { serviceLocator.registerService(IWorkbenchLocationService.class, new WorkbenchLocationService(IServiceScopes.MPESITE_SCOPE, getWorkbenchWindow().getWorkbench(), getWorkbenchWindow(), getMultiPageEditor().getSite(), this, null, 3)); serviceLocator.registerService(IMultiPageEditorSiteHolder.class, (IMultiPageEditorSiteHolder) () -> MultiPageEditorSite.this); context.set(IContextService.class.getName(), new ContextFunction() { @Override public Object compute(IEclipseContext ctxt, String contextKey) { if (contextService == null) { contextService = new NestableContextService(ctxt.getParent().get( IContextService.class), new ActivePartExpression(multiPageEditor)); } return contextService; } }); // create a local handler service so that when this page // activates/deactivates, its handlers will also be taken into/out of // consideration during handler lookups IHandlerService handlerService = new LegacyHandlerService(context); context.set(IHandlerService.class, handlerService); }
deactivateSite(false, false); IPartService partService = getSite().getService( IPartService.class); if (partService.getActivePart() == this) { .getSelectionProvider(); if (selectionProvider != null) { ISelectionProvider outerProvider = getSite() .getSelectionProvider(); if (outerProvider instanceof MultiPageSelectionProvider) {
.getMultiPageEditor().getSite(); } else if (site instanceof SashEditorSite) { site = (IEditorSite) ((SashEditorSite) site).getSashEditor()