### Eclipse Workspace Patch 1.0 #P org.eclipse.ui.forms Index: src/org/eclipse/ui/forms/editor/FormEditor.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/FormEditor.java,v retrieving revision 1.35 diff -u -r1.35 FormEditor.java --- src/org/eclipse/ui/forms/editor/FormEditor.java 28 Aug 2007 15:20:48 -0000 1.35 +++ src/org/eclipse/ui/forms/editor/FormEditor.java 28 Nov 2007 20:24:06 -0000 @@ -620,10 +620,9 @@ // this should be called only when the editor is first opened if (pages.size() > pageIndex && pages.get(pageIndex) instanceof IFormPage) { - pageChange(pageIndex); + super.setActivePage(pageIndex); IFormPage activePage = (IFormPage) pages.get(pageIndex); activePage.setActive(true); - super.setActivePage(pageIndex); } else super.setActivePage(pageIndex); updateActionBarContributor(pageIndex); Index: src/org/eclipse/ui/forms/editor/SharedHeaderFormEditor.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/SharedHeaderFormEditor.java,v retrieving revision 1.4 diff -u -r1.4 SharedHeaderFormEditor.java --- src/org/eclipse/ui/forms/editor/SharedHeaderFormEditor.java 25 Apr 2007 17:52:06 -0000 1.4 +++ src/org/eclipse/ui/forms/editor/SharedHeaderFormEditor.java 28 Nov 2007 20:24:06 -0000 @@ -16,14 +16,11 @@ import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IKeyBindingService; -import org.eclipse.ui.INestableKeyBindingService; import org.eclipse.ui.forms.IFormPart; import org.eclipse.ui.forms.IManagedForm; import org.eclipse.ui.forms.ManagedForm; import org.eclipse.ui.forms.widgets.ScrolledForm; import org.eclipse.ui.internal.forms.widgets.FormUtil; -import org.eclipse.ui.internal.services.INestable; /** * A variation of {@link FormEditor}, this editor has a stable header that does @@ -134,25 +131,11 @@ // fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=177331 int activePage = getActivePage(); if (SharedHeaderFormEditor.this.wasHeaderActive != wasHeaderActive && activePage != -1 && pages.get(activePage) instanceof IEditorPart) { - IEditorPart activePart = (IEditorPart) pages.get(activePage); - IKeyBindingService keyBindingService = getSite().getKeyBindingService(); if (wasHeaderActive) { - - if (activePart.getSite() instanceof INestable) - ((INestable) activePart.getSite()).deactivate(); - - if (keyBindingService instanceof INestableKeyBindingService) - ((INestableKeyBindingService) keyBindingService).activateKeyBindingService(null); - + deactivateSite(true, true); } else { - - if (keyBindingService instanceof INestableKeyBindingService) - ((INestableKeyBindingService) keyBindingService).activateKeyBindingService(activePart.getSite()); - - if (activePart.getSite() instanceof INestable) - ((INestable) activePart.getSite()).activate(); - + activateSite(); } } #P org.eclipse.ui.forms.examples Index: src/org/eclipse/ui/forms/examples/internal/rcp/SingleHeaderEditor.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SingleHeaderEditor.java,v retrieving revision 1.5 diff -u -r1.5 SingleHeaderEditor.java --- src/org/eclipse/ui/forms/examples/internal/rcp/SingleHeaderEditor.java 16 Mar 2007 20:24:49 -0000 1.5 +++ src/org/eclipse/ui/forms/examples/internal/rcp/SingleHeaderEditor.java 28 Nov 2007 20:24:06 -0000 @@ -10,6 +10,9 @@ *******************************************************************************/ package org.eclipse.ui.forms.examples.internal.rcp; +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.ControlContribution; @@ -27,11 +30,15 @@ import org.eclipse.ui.forms.widgets.Form; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.ScrolledForm; +import org.eclipse.ui.handlers.IHandlerService; +import org.eclipse.ui.services.IServiceLocator; /** * A form editor that has several pages but only one stable header. */ public class SingleHeaderEditor extends SharedHeaderFormEditor { + private static final String SHOW_PAGE_ID = "org.eclipse.ui.forms.examples.showPage"; + /** * */ @@ -51,7 +58,7 @@ protected void createHeaderContents(IManagedForm headerForm) { final ScrolledForm sform = headerForm.getForm(); - //sform.setText("Shared header for all the pages"); + // sform.setText("Shared header for all the pages"); getToolkit().decorateFormHeading(sform.getForm()); addToolBar(sform.getForm()); sform.setImage(PlatformUI.getWorkbench().getSharedImages().getImage( @@ -61,9 +68,20 @@ sform.setText(""); } }); - //sform.setMessage("Static text", 0); + // sform.setMessage("Static text", 0); } + private static class PageHandler extends AbstractHandler { + private int page; + public PageHandler(int i) { + page = i; + } + public Object execute(ExecutionEvent event) throws ExecutionException { + System.out.println("Now on page " + page); + return null; + } + + } /* * (non-Javadoc) * @@ -71,9 +89,23 @@ */ protected void addPages() { try { - addPage(new HeadlessPage(this, 1)); - addPage(new HeadlessPage(this, 2)); - addPage(new HeadlessPage(this, 3)); + int idx = addPage(new HeadlessPage(this, 1)); + IServiceLocator pageSite = getPageSite(idx); + IHandlerService handlers = (IHandlerService) pageSite + .getService(IHandlerService.class); + handlers.activateHandler(SHOW_PAGE_ID, new PageHandler(1)); + + idx = addPage(new HeadlessPage(this, 2)); + pageSite = getPageSite(idx); + handlers = (IHandlerService) pageSite + .getService(IHandlerService.class); + handlers.activateHandler(SHOW_PAGE_ID, new PageHandler(2)); + + idx = addPage(new HeadlessPage(this, 3)); + pageSite = getPageSite(idx); + handlers = (IHandlerService) pageSite + .getService(IHandlerService.class); + handlers.activateHandler(SHOW_PAGE_ID, new PageHandler(3)); } catch (PartInitException e) { // } Index: plugin.xml =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.ui.forms.examples/plugin.xml,v retrieving revision 1.22 diff -u -r1.22 plugin.xml --- plugin.xml 19 Feb 2007 20:52:00 -0000 1.22 +++ plugin.xml 28 Nov 2007 20:24:06 -0000 @@ -18,6 +18,7 @@ + @@ -43,6 +44,11 @@ id="org.eclipse.ui.forms.examples.openDialog" name="Open Form Dialog..."> + + @@ -110,4 +116,13 @@ id="org.eclipse.ui.forms.examples.views.FormView"> + + + +