| /******************************************************************************* |
| * Copyright (c) 2000, 2006 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.ui.tests.contexts; |
| |
| import org.eclipse.jface.action.ContributionItem; |
| import org.eclipse.swt.events.DisposeEvent; |
| import org.eclipse.swt.events.DisposeListener; |
| import org.eclipse.swt.widgets.ToolBar; |
| import org.eclipse.swt.widgets.ToolItem; |
| import org.eclipse.ui.IActionBars; |
| import org.eclipse.ui.IMemento; |
| import org.eclipse.ui.ISharedImages; |
| import org.eclipse.ui.IViewPart; |
| import org.eclipse.ui.IViewSite; |
| import org.eclipse.ui.PartInitException; |
| import org.eclipse.ui.contexts.IContextService; |
| import org.eclipse.ui.internal.WorkbenchImages; |
| import org.eclipse.ui.tests.api.MockWorkbenchPart; |
| |
| public class MockViewPart5 extends MockWorkbenchPart implements IViewPart { |
| /** |
| * |
| */ |
| public static final String PART_CONTEXT_ID = "org.eclipse.ui.tests.contexts.ViewPart"; |
| |
| public static String ID = "org.eclipse.ui.tests.contexts.MockViewPart5"; |
| |
| public static String NAME = "Context Mock View 5"; |
| |
| private ContributionItem toolbarItem = new ContributionItem("someId") { |
| |
| private DisposeListener disposeListener = new DisposeListener() { |
| public void widgetDisposed(DisposeEvent e) { |
| toolbarContributionItemWidgetDisposed(); |
| } |
| |
| }; |
| |
| public void fill(ToolBar parent, int index) { |
| super.fill(parent, index); |
| |
| ToolItem item = new ToolItem(parent, index); |
| |
| item.addDisposeListener(disposeListener); |
| item.setImage(WorkbenchImages.getImage(ISharedImages.IMG_DEF_VIEW)); |
| } |
| |
| public void dispose() { |
| toolbarContributionItemDisposed(); |
| super.dispose(); |
| } |
| }; |
| |
| public MockViewPart5() { |
| super(); |
| } |
| |
| /** |
| * @see IViewPart#getViewSite() |
| */ |
| public IViewSite getViewSite() { |
| return (IViewSite) getSite(); |
| } |
| |
| /** |
| * @see IViewPart#init(IViewSite) |
| */ |
| public void init(IViewSite site) throws PartInitException { |
| setSite(site); |
| callTrace.add("init"); |
| setSiteInitialized(); |
| addToolbarContributionItem(); |
| addContext(); |
| } |
| |
| /** |
| * @see IViewPart#init(IViewSite, IMemento) |
| */ |
| public void init(IViewSite site, IMemento memento) throws PartInitException { |
| setSite(site); |
| callTrace.add("init"); |
| setSiteInitialized(); |
| addToolbarContributionItem(); |
| addContext(); |
| } |
| |
| private void addContext() throws PartInitException { |
| IContextService contextService = (IContextService) getSite() |
| .getService(IContextService.class); |
| if (!contextService.getContext(PART_CONTEXT_ID).isDefined()) { |
| throw new PartInitException("Failed to find context " |
| + PART_CONTEXT_ID); |
| } |
| contextService.activateContext(PART_CONTEXT_ID); |
| } |
| |
| private void addToolbarContributionItem() { |
| getViewSite().getActionBars().getToolBarManager().add(toolbarItem); |
| } |
| |
| public void toolbarContributionItemWidgetDisposed() { |
| callTrace.add("toolbarContributionItemWidgetDisposed"); |
| } |
| |
| public void toolbarContributionItemDisposed() { |
| callTrace.add("toolbarContributionItemDisposed"); |
| } |
| |
| /** |
| * @see IViewPart#saveState(IMemento) |
| */ |
| public void saveState(IMemento memento) { |
| // how's this for a comment, filthy human compiler |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.ui.tests.api.MockWorkbenchPart#getActionBars() |
| */ |
| protected IActionBars getActionBars() { |
| return getViewSite().getActionBars(); |
| } |
| } |