Java 类org.eclipse.ui.internal.misc.Policy 实例源码

项目:PDFReporter-Studio    文件:MultiPageToolbarEditorPart.java   
protected void pageChange(final int newPageIndex, final int oldPageIndex) {
    getActiveEditor();
    deactivateSite(false, false);

    IPartService partService = (IPartService) getSite().getService(IPartService.class);
    if (partService.getActivePart() == this) {
        setFocus();
    }

    IEditorPart activeEditor = getEditor(newPageIndex);

    IEditorActionBarContributor contributor = getEditorSite().getActionBarContributor();
    if (contributor != null && contributor instanceof MultiPageEditorActionBarContributor) {
        ((MultiPageEditorActionBarContributor) contributor).setActivePage(activeEditor);
    }

    if (activeEditor != null) {
        ISelectionProvider selectionProvider = activeEditor.getSite().getSelectionProvider();
        if (selectionProvider != null) {
            ISelectionProvider outerProvider = getSite().getSelectionProvider();
            if (outerProvider instanceof MultiPageToolbarSelectionProvider) {
                SelectionChangedEvent event = new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection());

                MultiPageToolbarSelectionProvider provider = (MultiPageToolbarSelectionProvider) outerProvider;
                provider.fireSelectionChanged(event);
                provider.firePostSelectionChanged(event);
            } else {
                if (Policy.DEBUG_MPE) {
                    Tracing.printTrace(TRACING_COMPONENT, "MultiPageEditorPart " + getTitle() //$NON-NLS-1$
                            + " did not propogate selection for " //$NON-NLS-1$
                            + activeEditor.getTitle());
                }
            }
        }
    }

    activateSite();

    postPageChange(newPageIndex, oldPageIndex);

    Object selectedPage = getSelectedPage();
    if (selectedPage != null) {
        firePageChanged(new PageChangedEvent(this, selectedPage));
    }
}