Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.debug.ui/ui/org/eclipse/debug/ui/AbstractDebugView.java')
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/ui/AbstractDebugView.java998
1 files changed, 0 insertions, 998 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/AbstractDebugView.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/AbstractDebugView.java
deleted file mode 100644
index a0eb8f5b5..000000000
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/AbstractDebugView.java
+++ /dev/null
@@ -1,998 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 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.debug.ui;
-
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.debug.internal.ui.DebugUIPlugin;
-import org.eclipse.debug.internal.ui.DelegatingModelPresentation;
-import org.eclipse.debug.internal.ui.LazyModelPresentation;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.TextViewer;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPartListener2;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.part.IPage;
-import org.eclipse.ui.part.MessagePage;
-import org.eclipse.ui.part.Page;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.ui.part.PageBookView;
-import org.eclipse.ui.texteditor.IUpdate;
-
-/**
- * Common function for views related to debugging. Clients implementing
- * views for a debugger should subclass this class. Common function
- * includes:
- * <ul>
- * <li>Debug view adapter implementation - <code>IDebugView</code></li>
- * <li>Action registry - actions can be stored in this view
- * with a key. Actions that implement <code>IUpdate</code>
- * are updated when <code>updateActions()</code> is
- * called.</li>
- * <li>Hooks the context menu associated with this view's
- * underlying viewer and registers the menu with this
- * view's site, such that other plug-ins may contribute.</li>
- * <li>Hooks a key press listener, and invokes the
- * <code>REMOVE_ACTION</code> when the delete key
- * is pressed.</li>
- * <li>Hooks a double-click listener, and invokes the
- * <code>DOUBLE_CLICK_ACTION</code> when the mouse
- * is double-clicked.</li>
- * <li>Provides a mechanism for displaying an error message
- * in the view, via the <code>PageBookView</code> mechanism.
- * By default, a page book is created with a page showing
- * this view's viewer. A message page is also created
- * and shown when <code>showMessage(String)</code> is
- * called.</li>
- * <li>Notification when this view becomes visible and becomes
- * hidden via <code>becomesVisible()</code> and <code>becomesHidden()</code>.</li>
- * <li>Linking of a help context id via <code>getHelpContextId().</code></li>
- * </ul>
- * <p>
- * This class may be sub-classed.
- * </p>
- * @since 2.0
- */
-
-public abstract class AbstractDebugView extends PageBookView implements IDebugView, IDoubleClickListener {
-
- /**
- * Underlying viewer that displays the contents of
- * this view.
- */
- private Viewer fViewer = null;
-
- /**
- * This view's message page.
- */
- private MessagePage fMessagePage = null;
-
- /**
- * Map of actions. Keys are strings, values
- * are <code>IAction</code>.
- */
- private Map fActionMap = null;
-
- /**
- * Map of actions. Keys are strings, values
- * are <code>IAction</code>.
- */
- private List fUpdateables = null;
-
- /**
- * The collection of menu managers that are
- * relevant for this view.
- */
- private List fContextMenuManagers;
-
- /**
- * The memento that was used to persist the state of this view.
- * May be <code>null</code>.
- */
- private IMemento fMemento;
-
- /**
- * Whether this view is currently visible.
- */
- private boolean fIsVisible = false;
-
- /**
- * The part listener for this view, used to notify this view when it
- * becomes visible and hidden. Set to <code>null</code> when this view isn't
- * currently listening to part changes.
- */
- private DebugViewPartListener fPartListener= null;
-
- /**
- * A message was requested to be displayed before the view was fully
- * created. The message is cached until it can be properly displayed.
- */
- private String fEarlyMessage= null;
-
- private static Set fgGlobalActionIds;
- static {
- fgGlobalActionIds = new HashSet();
- fgGlobalActionIds.add(SELECT_ALL_ACTION);
- fgGlobalActionIds.add(COPY_ACTION);
- fgGlobalActionIds.add(CUT_ACTION);
- fgGlobalActionIds.add(PASTE_ACTION);
- fgGlobalActionIds.add(FIND_ACTION);
- fgGlobalActionIds.add(ActionFactory.UNDO.getId());
- fgGlobalActionIds.add(ActionFactory.REDO.getId());
- }
-
- /**
- * Part listener that disables updating when the view is not visible and
- * re-enables updating when the view appears.
- */
- private class DebugViewPartListener implements IPartListener2 {
- /**
- *
- * @see org.eclipse.ui.IPartListener2#partVisible(IWorkbenchPartReference)
- */
- public void partVisible(IWorkbenchPartReference ref) {
- IWorkbenchPart part= ref.getPart(false);
- if (part == AbstractDebugView.this) {
- fIsVisible = true;
- becomesVisible();
- }
- }
- /**
- * @see org.eclipse.ui.IPartListener2#partHidden(IWorkbenchPartReference)
- */
- public void partHidden(IWorkbenchPartReference ref) {
- IWorkbenchPart part= ref.getPart(false);
- if (part == AbstractDebugView.this) {
- fIsVisible = false;
- becomesHidden();
- }
- }
- /**
- * @see org.eclipse.ui.IPartListener2#partActivated(IWorkbenchPartReference)
- */
- public void partActivated(IWorkbenchPartReference ref) {
- }
-
- /**
- * @see org.eclipse.ui.IPartListener2#partBroughtToTop(IWorkbenchPartReference)
- */
- public void partBroughtToTop(IWorkbenchPartReference ref) {
- }
-
- /**
- * @see org.eclipse.ui.IPartListener2#partClosed(IWorkbenchPartReference)
- */
- public void partClosed(IWorkbenchPartReference ref) {
- }
-
- /**
- * @see org.eclipse.ui.IPartListener2#partDeactivated(IWorkbenchPartReference)
- */
- public void partDeactivated(IWorkbenchPartReference ref) {
- }
-
- /**
- * @see org.eclipse.ui.IPartListener2#partOpened(IWorkbenchPartReference)
- */
- public void partOpened(IWorkbenchPartReference ref) {
- }
-
- /**
- * @see org.eclipse.ui.IPartListener2#partInputChanged(IWorkbenchPartReference)
- */
- public void partInputChanged(IWorkbenchPartReference ref){
- }
-
- }
-
- /**
- * Constructs a new debug view.
- */
- public AbstractDebugView() {
- fActionMap = new HashMap(5);
- fUpdateables= new ArrayList(3);
- }
-
- /**
- * Debug views implement the debug view adapter which
- * provides access to a view's underlying viewer and
- * debug model presentation for a specific debug model.
- *
- * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
- * @see IDebugView
- */
- public Object getAdapter(Class adapter) {
- if (adapter == IDebugView.class) {
- return this;
- }
- if (adapter == IDebugModelPresentation.class) {
- StructuredViewer viewer = getStructuredViewer();
- if (viewer != null) {
- IBaseLabelProvider labelProvider = viewer.getLabelProvider();
- if (labelProvider instanceof IDebugModelPresentation) {
- return labelProvider;
- }
- }
- }
- return super.getAdapter(adapter);
- }
-
- /**
- * A page in this view's page book that contains this
- * view's viewer.
- */
- class ViewerPage extends Page {
- /**
- * @see IPage#createControl(Composite)
- */
- public void createControl(Composite parent) {
- Viewer viewer = createViewer(parent);
- setViewer(viewer);
- }
-
- /**
- * @see IPage#getControl()
- */
- public Control getControl() {
- return getDefaultControl();
- }
-
- /**
- * @see IPage#setFocus()
- */
- public void setFocus() {
- Viewer viewer= getViewer();
- if (viewer != null) {
- Control c = viewer.getControl();
- if (!c.isFocusControl()) {
- c.setFocus();
- }
- }
- }
-
-}
-
- /**
- * Creates this view's underlying viewer and actions.
- * Hooks a pop-up menu to the underlying viewer's control,
- * as well as a key listener. When the delete key is pressed,
- * the <code>REMOVE_ACTION</code> is invoked. Hooks help to
- * this view. Subclasses must implement the following methods
- * which are called in the following order when a view is
- * created:<ul>
- * <li><code>createViewer(Composite)</code> - the context
- * menu is hooked to the viewer's control.</li>
- * <li><code>createActions()</code></li>
- * <li><code>configureToolBar(IToolBarManager)</code></li>
- * <li><code>getHelpContextId()</code></li>
- * </ul>
- * @see IWorkbenchPart#createPartControl(Composite)
- * @see AbstractDebugView#createPartControl(Composite)
- * @see AbstractDebugView#createActions()
- * @see AbstractDebugView#configureToolBar(IToolBarManager)
- * @see AbstractDebugView#getHelpContextId()
- * @see AbstractDebugView#fillContextMenu(IMenuManager)
- */
- public void createPartControl(Composite parent) {
- registerPartListener();
- super.createPartControl(parent);
- createActions();
- initializeToolBar();
- Viewer viewer = getViewer();
- if (viewer != null) {
- createContextMenu(viewer.getControl());
- }
- String helpId = getHelpContextId();
- if (helpId != null) {
- PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, helpId);
- }
- if (viewer != null) {
- getViewer().getControl().addKeyListener(new KeyAdapter() {
- public void keyPressed(KeyEvent e) {
- handleKeyPressed(e);
- }
- });
- if (getViewer() instanceof StructuredViewer) {
- ((StructuredViewer)getViewer()).addDoubleClickListener(this);
- }
- }
- // create the message page
- setMessagePage(new MessagePage());
- getMessagePage().createControl(getPageBook());
- initPage(getMessagePage());
-
- if (fEarlyMessage != null) { //bug 28127
- showMessage(fEarlyMessage);
- fEarlyMessage= null;
- }
- }
-
- /**
- * The default page for a debug view is its viewer.
- *
- * @see PageBookView#createDefaultPage(PageBook)
- */
- protected IPage createDefaultPage(PageBook book) {
- ViewerPage page = new ViewerPage();
- page.createControl(book);
- initPage(page);
- return page;
- }
-
- /**
- * Creates and returns this view's underlying viewer.
- * The viewer's control will automatically be hooked
- * to display a pop-up menu that other plug-ins may
- * contribute to. Subclasses must override this method.
- *
- * @param parent the parent control
- */
- protected abstract Viewer createViewer(Composite parent);
-
- /**
- * Creates this view's actions. Subclasses must
- * override this method, which is called after
- * <code>createViewer(Composite)</code>
- */
- protected abstract void createActions();
-
- /**
- * Returns this view's help context id, which is hooked
- * to this view on creation.
- *
- * @return help context id
- */
- protected abstract String getHelpContextId();
-
- /**
- * @see IWorkbenchPart#dispose()
- */
- public void dispose() {
- saveAllCheckedActionStates();
- deregisterPartListener();
- if (getViewer() instanceof StructuredViewer) {
- ((StructuredViewer)getViewer()).removeDoubleClickListener(this);
- }
- setViewer(null);
- fActionMap.clear();
- super.dispose();
- }
-
- /**
- * Saves the checked state for all actions contributed to the toolbar
- * manager that function as a toggle action. The states are saved in
- * the Debug UI plugin's preference store.
- *
- * @since 2.1
- */
- protected void saveAllCheckedActionStates() {
- IToolBarManager tbm= getViewSite().getActionBars().getToolBarManager();
- IContributionItem[] items= tbm.getItems();
- for (int i = 0; i < items.length; i++) {
- IContributionItem iContributionItem = items[i];
- if (iContributionItem instanceof ActionContributionItem) {
- ActionContributionItem item= (ActionContributionItem)iContributionItem;
- IAction action= item.getAction();
- if (action.getStyle() == IAction.AS_CHECK_BOX && action.isEnabled()) {
- saveCheckedActionState(action);
- }
- }
- }
- }
-
- /**
- * Save the checked state of the specified action in the Debug UI plugin's
- * preference store. The specified action is expected to be enabled and
- * support the style <code>IAction.AS_CHECK_BOX</code>.
- *
- * @param action the enabled, toggle action whose checked state will be
- * saved in preferences
- * @since 2.1
- */
- protected void saveCheckedActionState(IAction action) {
- String prefKey = generatePreferenceKey(action);
- IPreferenceStore prefStore = getPreferenceStore();
- prefStore.setValue(prefKey, action.isChecked());
- }
-
- /**
- * Generate a String that can be used as a key into a preference store based
- * on the specified action. The resulting String will be unique across
- * views.
- *
- * @return a String suitable for use as a preference store key for the given
- * action
- * @since 2.1
- */
- protected String generatePreferenceKey(IAction action) {
- return getViewSite().getId() + '+' + action.getId();
- }
-
- /**
- * Convenience method to return the preference store for the Debug UI
- * plug-in.
- *
- * @return the preference store for the Debug UI plug-in
- * @since 2.1
- */
- protected IPreferenceStore getPreferenceStore() {
- return DebugUIPlugin.getDefault().getPreferenceStore();
- }
-
- /**
- * @see IDebugView#getViewer()
- */
- public Viewer getViewer() {
- return fViewer;
- }
-
- /**
- * Returns this view's viewer as a structured viewer,
- * or <code>null</code> if none.
- *
- * @return this view's viewer as a structured viewer
- * or <code>null</code>
- */
- protected StructuredViewer getStructuredViewer() {
- if (getViewer() instanceof StructuredViewer) {
- return (StructuredViewer)getViewer();
- }
- return null;
- }
-
- /**
- * Returns this view's viewer as a text viewer,
- * or <code>null</code> if none.
- *
- * @return this view's viewer as a text viewer
- * or <code>null</code>
- */
- protected TextViewer getTextViewer() {
- if (getViewer() instanceof TextViewer) {
- return (TextViewer)getViewer();
- }
- return null;
- }
-
- /**
- * @see IDebugView#getPresentation(String)
- */
- public IDebugModelPresentation getPresentation(String id) {
- if (getViewer() instanceof StructuredViewer) {
- IBaseLabelProvider lp = ((StructuredViewer)getViewer()).getLabelProvider();
- if (lp instanceof DelegatingModelPresentation) {
- return ((DelegatingModelPresentation)lp).getPresentation(id);
- }
- if (lp instanceof LazyModelPresentation) {
- if (((LazyModelPresentation)lp).getDebugModelIdentifier().equals(id)) {
- return (IDebugModelPresentation)lp;
- }
- }
- }
- return null;
- }
-
- /**
- * Creates a pop-up menu on the given control. The menu
- * is registered with this view's site, such that other
- * plug-ins may contribute to the menu. Subclasses should
- * call this method, specifying the menu control as the
- * control used in their viewer (for example, tree viewer).
- * Subclasses must implement the method
- * <code>#fillContextMenu(IMenuManager)</code> which will
- * be called each time the context menu is realized.
- *
- * @param menuControl the control with which the pop-up
- * menu will be associated with.
- */
- protected void createContextMenu(Control menuControl) {
- MenuManager menuMgr= new MenuManager("#PopUp"); //$NON-NLS-1$
- menuMgr.setRemoveAllWhenShown(true);
- menuMgr.addMenuListener(new IMenuListener() {
- public void menuAboutToShow(IMenuManager mgr) {
- fillContextMenu(mgr);
- }
- });
- Menu menu= menuMgr.createContextMenu(menuControl);
- menuControl.setMenu(menu);
-
- // register the context menu such that other plug-ins may contribute to it
- if (getSite() != null) {
- getSite().registerContextMenu(menuMgr, getViewer());
- }
- addContextMenuManager(menuMgr);
- }
-
- /**
- * @see IDebugView#getContextMenuManager()
- *
- * @deprecated @see AbstractDebugView.getContextMenuManagers()
- */
- public IMenuManager getContextMenuManager() {
- if (fContextMenuManagers != null) {
- fContextMenuManagers.get(fContextMenuManagers.size() - 1);
- }
- return null;
- }
-
- /**
- * Returns the context menu managers relevant to this view.
- *
- * @return the context menu managers relevant to this view
- * @since 2.1
- */
- public List getContextMenuManagers() {
- return fContextMenuManagers;
- }
-
- /**
- * Subclasses must override this method to fill the context
- * menu each time it is realized.
- *
- * @param menu the context menu
- */
- protected abstract void fillContextMenu(IMenuManager menu);
-
- /**
- * Configures this view's toolbar. Subclasses implement
- * <code>#configureToolBar(IToolBarManager)</code> to
- * contribute actions to the toolbar.
- * <p>
- * To properly initialize toggle actions that are contributed
- * to this view, state is restored for toggle actions that have
- * a persisted state in the Debug UI plugin's preferences. As well, any
- * toggle actions that have an initial state of 'checked' are invoked. The
- * actions' states are restored and the actions are invoked in a runnable,
- * after the view is created.
- * </p>
- */
- protected void initializeToolBar() {
- final IToolBarManager tbm= getViewSite().getActionBars().getToolBarManager();
- configureToolBar(tbm);
- getViewSite().getActionBars().updateActionBars();
-
- // This is done in a runnable to be run after this view's pane
- // is created
- Runnable r = new Runnable() {
- public void run() {
- if (!isAvailable()) {
- return;
- }
- IContributionItem[] items = tbm.getItems();
- if (items != null) {
- for (int i = 0; i < items.length; i++) {
- if (items[i] instanceof ActionContributionItem) {
- IAction action = ((ActionContributionItem)items[i]).getAction();
- if (action.getStyle() == IAction.AS_CHECK_BOX) {
- initActionState(action);
- if (action.isChecked()) {
- action.run();
- }
- }
- }
- }
- setMemento(null);
- }
- updateObjects();
- }
- };
- asyncExec(r);
- }
-
- /**
- * Restores the persisted checked state of the specified action that was
- * stored in preferences. If the action is disabled, its persisted state
- * is not restored (because a disabled action cannot be run).
- *
- * @param action the action whose checked state will be restored
- * @since 2.1
- */
- protected void initActionState(IAction action) {
- String id = action.getId();
- if (id != null && action.isEnabled()) {
- String prefKey = generatePreferenceKey(action);
- boolean checked = getPreferenceStore().getBoolean(prefKey);
- action.setChecked(checked);
- }
- }
-
- /**
- * @see IViewPart#init(IViewSite, IMemento)
- */
- public void init(IViewSite site, IMemento memento) throws PartInitException {
- super.init(site, memento);
- //store the memento to be used when this view is created.
- setMemento(memento);
- }
-
- /**
- * Sets the viewer for this view.
- *
- * @param viewer viewer
- * @since 3.1
- */
- protected void setViewer(Viewer viewer) {
- fViewer = viewer;
- }
-
- /**
- * Subclasses implement this menu to contribute actions
- * to the toolbar. This method is called after
- * <code>createActions()</code>.
- *
- * @param tbm the tool bar manager for this view's site
- * @see #createViewer(Composite)
- */
- protected abstract void configureToolBar(IToolBarManager tbm);
-
- /**
- * @see IDebugView#setAction(String, IAction)
- */
- public void setAction(String actionID, IAction action) {
- if (action == null) {
- Object removedAction= fActionMap.remove(actionID);
- fUpdateables.remove(removedAction);
- } else {
- fActionMap.put(actionID, action);
- if (action instanceof IUpdate) {
- fUpdateables.add(action);
- }
- }
- if (fgGlobalActionIds.contains(actionID)) {
- IActionBars actionBars = getViewSite().getActionBars();
- actionBars.setGlobalActionHandler(actionID, action);
- }
- }
-
- /**
- * @see IDebugView#getAction(String)
- */
- public IAction getAction(String actionID) {
- return (IAction) fActionMap.get(actionID);
- }
-
- /**
- * Updates all the registered updatables.
- */
- public void updateObjects() {
- Iterator actions = fUpdateables.iterator();
- while (actions.hasNext()) {
- ((IUpdate)actions.next()).update();
- }
- }
-
- /**
- * Handles key events in viewer. Invokes
- * <ol>
- * <li><code>REMOVE_ACTION</code> when the delete
- * key is pressed</li>
- */
- protected void handleKeyPressed(KeyEvent event) {
- if (event.character == SWT.DEL && event.stateMask == 0) {
- IAction action = getAction(REMOVE_ACTION);
- if (action != null && action.isEnabled()) {
- action.run();
- }
- }
- }
-
- /**
- * Delegate to the <code>DOUBLE_CLICK_ACTION</code>,
- * if any.
- *
- * @see IDoubleClickListener#doubleClick(DoubleClickEvent)
- */
- public void doubleClick(DoubleClickEvent event) {
- IAction action = getAction(DOUBLE_CLICK_ACTION);
- if (action != null && !event.getSelection().isEmpty() && action.isEnabled()) {
- action.run();
- }
- }
-
- /**
- * Registers the given runnable with the display
- * associated with this view's control, if any.
- *
- * @see org.eclipse.swt.widgets.Display#asyncExec(java.lang.Runnable)
- */
- public void asyncExec(Runnable r) {
- if (isAvailable()) {
- getControl().getDisplay().asyncExec(r);
- }
- }
-
- /**
- * Returns the control for this view, or <code>null</code> if none.
- *
- * @return the control for this view, or <code>null</code> if none
- * @since 3.0
- */
- protected Control getControl() {
- return getViewer().getControl();
- }
-
- /**
- * Registers the given runnable with the display
- * associated with this view's control, if any.
- *
- * @see org.eclipse.swt.widgets.Display#syncExec(java.lang.Runnable)
- */
- public void syncExec(Runnable r) {
- if (isAvailable()) {
- getControl().getDisplay().syncExec(r);
- }
- }
-
- /**
- * Returns the memento that contains the persisted state of
- * the view. May be <code>null</code>.
- */
- protected IMemento getMemento() {
- return fMemento;
- }
-
- /**
- * Sets the memento that contains the persisted state of the
- * view.
- */
- protected void setMemento(IMemento memento) {
- fMemento = memento;
- }
-
- /**
- * Returns the specified view in this view's page
- * or <code>null</code> if none.
- *
- * @param id view identifier
- * @return view part
- */
- protected IViewPart findView(String id) {
- IWorkbenchPage page = getSite().getPage();
- IViewPart view = null;
- if (page != null) {
- view = page.findView(id);
- }
- return view;
- }
-
- /**
- * @see PageBookView#isImportant(IWorkbenchPart)
- */
- protected boolean isImportant(IWorkbenchPart part) {
- return false;
- }
-
- /**
- * @see PageBookView#doCreatePage(IWorkbenchPart)
- */
- protected PageRec doCreatePage(IWorkbenchPart part) {
- return null;
- }
-
- /**
- * @see PageBookView#doDestroyPage(org.eclipse.ui.IWorkbenchPart, org.eclipse.ui.part.PageBookView.PageRec)
- */
- protected void doDestroyPage(IWorkbenchPart part, PageRec pageRecord) {
- }
-
- /**
- * @see PageBookView#getBootstrapPart()
- */
- protected IWorkbenchPart getBootstrapPart() {
- return null;
- }
-
- /**
- * Returns the default control for this view. By default,
- * this view's viewer's control is returned. Subclasses
- * should override if required - for example, if this
- * view has its viewer nested inside other controls.
- *
- * @return this view's default control.
- */
- protected Control getDefaultControl() {
- Viewer viewer = getViewer();
- if (viewer != null) {
- return viewer.getControl();
- }
- return null;
- }
-
- /**
- * Sets this view's message page
- *
- * @param page message page
- */
- private void setMessagePage(MessagePage page) {
- fMessagePage = page;
- }
-
- /**
- * Returns this view's message page
- *
- * @return message page
- */
- protected MessagePage getMessagePage() {
- return fMessagePage;
- }
-
- /**
- * Shows the given message in this view's message'
- * page. Makes the message page the visible page.
- *
- * @param message the message to display
- */
- public void showMessage(String message) {
- if (getPageBook().isDisposed()) {
- return;
- }
- if (getMessagePage() == null) {
- //not fully created yet
- fEarlyMessage= message;
- return;
- }
- getMessagePage().setMessage(message);
- getPageBook().showPage(getMessagePage().getControl());
- }
-
- /**
- * Shows this view's viewer page.
- */
- public void showViewer() {
- if (getPageBook().isDisposed()) {
- return;
- }
- getPageBook().showPage(getDefaultPage().getControl());
- }
-
- /**
- * Returns whether this view's viewer is
- * currently available.
- *
- * @return whether this view's viewer is
- * currently available
- */
- public boolean isAvailable() {
- return !(getViewer() == null || getViewer().getControl() == null || getViewer().getControl().isDisposed());
- }
- /**
- * @see IDebugView#add(IUpdate)
- */
- public void add(IUpdate updatable) {
- if (!fUpdateables.contains(updatable)) {
- fUpdateables.add(updatable);
- }
- }
-
- /**
- * @see IDebugView#remove(IUpdate)
- */
- public void remove(IUpdate updatable) {
- fUpdateables.remove(updatable);
- }
-
- /**
- * Adds a context menu manager that is relevant to this view.
- * @param contextMenuManager The contextMenuManager to add
- *
- * @since 2.1
- */
- public void addContextMenuManager(IMenuManager contextMenuManager) {
- if (fContextMenuManagers == null) {
- fContextMenuManagers= new ArrayList();
- }
- fContextMenuManagers.add(contextMenuManager);
- }
-
- /**
- * Notification this view is now visible.
- *
- * @since 2.1
- */
- protected void becomesVisible() {
- }
-
- /**
- * Notification this view is now hidden.
- *
- * @since 2.1
- */
- protected void becomesHidden() {
- }
-
- /**
- * Returns whether this view is currently visible.
- *
- * @return whether this view is currently visible
- * @since 2.1
- */
- public boolean isVisible() {
- return fIsVisible;
- }
-
- /**
- * Creates and registers a part listener with this event handler's page,
- * if one does not already exist.
- *
- * @since 2.1
- */
- protected void registerPartListener() {
- if (fPartListener == null) {
- fPartListener= new DebugViewPartListener();
- getSite().getPage().addPartListener(fPartListener);
- }
- }
-
- /**
- * Unregisters and disposes this event handler's part listener.
- *
- * @since 2.1
- */
- protected void deregisterPartListener() {
- if (fPartListener != null) {
- getSite().getPage().removePartListener(fPartListener);
- fPartListener = null;
- }
- }
-
- /**
- * Returns a map of the current attribute settings in the model
- * presentation in this view associated with the given debug model.
- *
- * @return a map of the current attribute settings in the model
- * presentation in this view associated with the given debug model
- * @since 3.0
- */
- public Map getPresentationAttributes(String modelId) {
- IDebugModelPresentation presentation = getPresentation(modelId);
- if (presentation instanceof DelegatingModelPresentation) {
- return ((DelegatingModelPresentation)presentation).getAttributeMap();
- } else if (presentation instanceof LazyModelPresentation) {
- return ((LazyModelPresentation)presentation).getAttributeMap();
- }
- return new HashMap();
- }
-}
-
-

Back to the top