Class AbstractDebugView
- java.lang.Object
-
- org.eclipse.core.commands.common.EventManager
-
- org.eclipse.ui.part.WorkbenchPart
-
- org.eclipse.ui.part.ViewPart
-
- org.eclipse.ui.part.PageBookView
-
- org.eclipse.debug.ui.AbstractDebugView
-
- All Implemented Interfaces:
IAdaptable
,IExecutableExtension
,IDebugView
,IDoubleClickListener
,IPartListener
,IPersistable
,IViewPart
,IWorkbenchPart
,IWorkbenchPart2
,IWorkbenchPart3
,IWorkbenchPartOrientation
public abstract class AbstractDebugView extends PageBookView implements IDebugView, IDoubleClickListener
Common function for views related to debugging. Clients implementing views for a debugger should subclass this class. Common function includes:- Debug view adapter implementation -
IDebugView
- Action registry - actions can be stored in this view
with a key. Actions that implement
IUpdate
are updated whenupdateActions()
is called. - 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.
- Hooks a key press listener, and invokes the
REMOVE_ACTION
when the delete key is pressed. - Hooks a double-click listener, and invokes the
DOUBLE_CLICK_ACTION
when the mouse is double-clicked. - Provides a mechanism for displaying an error message
in the view, via the
PageBookView
mechanism. By default, a page book is created with a page showing this view's viewer. A message page is also created and shown whenshowMessage(String)
is called. - Notification when this view becomes visible and becomes
hidden via
becomesVisible()
andbecomesHidden()
. - Linking of a help context id via
getHelpContextId().
This class may be sub-classed.
- Since:
- 2.0
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.ui.part.PageBookView
PageBookView.PageRec, PageBookView.SelectionProvider
-
-
Field Summary
-
Fields inherited from interface org.eclipse.debug.ui.IDebugView
COPY_ACTION, CUT_ACTION, DOUBLE_CLICK_ACTION, FIND_ACTION, PASTE_ACTION, REMOVE_ACTION, SELECT_ALL_ACTION
-
Fields inherited from interface org.eclipse.ui.IWorkbenchPart
PROP_TITLE
-
-
Constructor Summary
Constructors Constructor Description AbstractDebugView()
Constructs a new debug view.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
add(IUpdate updatable)
Adds the given IUpdate to this view's collection of updatable objects.void
addContextMenuManager(IMenuManager contextMenuManager)
Adds a context menu manager that is relevant to this view.void
asyncExec(Runnable r)
Registers the given runnable with the display associated with this view's control, if any.protected void
becomesHidden()
Notification this view is now hidden.protected void
becomesVisible()
Notification this view is now visible.protected abstract void
configureToolBar(IToolBarManager tbm)
Subclasses implement this menu to contribute actions to the toolbar.protected abstract void
createActions()
Creates this view's actions.protected void
createContextMenu(Control menuControl)
Creates a pop-up menu on the given control.protected IPage
createDefaultPage(PageBook book)
The default page for a debug view is its viewer.void
createPartControl(Composite parent)
Creates this view's underlying viewer and actions.protected abstract Viewer
createViewer(Composite parent)
Creates and returns this view's underlying viewer.protected void
deregisterPartListener()
Unregisters and disposes this event handler's part listener.void
dispose()
ThePageBookView
implementation of thisIWorkbenchPart
method cleans up all the pages.protected PageBookView.PageRec
doCreatePage(IWorkbenchPart part)
Creates a new page in the pagebook for a particular part.protected void
doDestroyPage(IWorkbenchPart part, PageBookView.PageRec pageRecord)
Destroys a page in the pagebook for a particular part.void
doubleClick(DoubleClickEvent event)
Delegate to theDOUBLE_CLICK_ACTION
, if any.protected abstract void
fillContextMenu(IMenuManager menu)
Subclasses must override this method to fill the context menu each time it is realized.protected IViewPart
findView(String id)
Returns the specified view in this view's page ornull
if none.protected String
generatePreferenceKey(IAction action)
Generate a String that can be used as a key into a preference store based on the specified action.IAction
getAction(String actionID)
Returns the action installed under the given action id.<T> T
getAdapter(Class<T> adapter)
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.protected IWorkbenchPart
getBootstrapPart()
Returns the active, important workbench part for this view.IMenuManager
getContextMenuManager()
Deprecated.List<IMenuManager>
getContextMenuManagers()
Returns the context menu managers relevant to this view.protected Control
getControl()
Returns the control for this view, ornull
if none.protected Control
getDefaultControl()
Returns the default control for this view.protected abstract String
getHelpContextId()
Returns this view's help context id, which is hooked to this view on creation.protected IMemento
getMemento()
Returns the memento that contains the persisted state of the view.protected MessagePage
getMessagePage()
Returns this view's message pageprotected IPreferenceStore
getPreferenceStore()
Convenience method to return the preference store for the Debug UI plug-in.IDebugModelPresentation
getPresentation(String id)
Returns the debug model presentation for this view specified by the debug model identifier.Map<String,Object>
getPresentationAttributes(String modelId)
Returns a map of the current attribute settings in the model presentation in this view associated with the given debug model.protected StructuredViewer
getStructuredViewer()
Returns this view's viewer as a structured viewer, ornull
if none.protected TextViewer
getTextViewer()
Returns this view's viewer as a text viewer, ornull
if none.Viewer
getViewer()
Returns the viewer contained in this debug view.protected void
handleKeyPressed(KeyEvent event)
Handles key events in viewer.void
init(IViewSite site, IMemento memento)
Initializes this view with the given view site.protected void
initActionState(IAction action)
Restores the persisted checked state of the specified action that was stored in preferences.protected void
initializeToolBar()
Configures this view's toolbar.boolean
isAvailable()
Returns whether this view's viewer is currently available.protected boolean
isImportant(IWorkbenchPart part)
Returns whether the given part should be added to this view.boolean
isVisible()
Returns whether this view is currently visible.protected void
registerPartListener()
Creates and registers a part listener with this event handler's page, if one does not already exist.void
remove(IUpdate updatable)
Removes the given IUpdate from this view's collection of updatable objects.protected void
saveAllCheckedActionStates()
Saves the checked state for all actions contributed to the toolbar manager that function as a toggle action.protected void
saveCheckedActionState(IAction action)
Save the checked state of the specified action in the Debug UI plugin's preference store.void
setAction(String actionID, IAction action)
Installs the given action under the given action id.protected void
setMemento(IMemento memento)
Sets the memento that contains the persisted state of the view.protected void
setViewer(Viewer viewer)
Sets the viewer for this view.void
showMessage(String message)
Shows the given message in this view's message' page.void
showViewer()
Shows this view's viewer page.void
syncExec(Runnable r)
Registers the given runnable with the display associated with this view's control, if any.void
updateObjects()
Updates all the registered updatables.-
Methods inherited from class org.eclipse.ui.part.PageBookView
doesPageExist, getCurrentContributingPart, getCurrentPage, getDefaultPage, getPageBook, getPageRec, getPageRec, getPageSite, getSelectionProvider, getViewAdapter, init, initPage, partActivated, partBroughtToTop, partClosed, partDeactivated, partHidden, partOpened, partVisible, setFocus, showPageRec
-
Methods inherited from class org.eclipse.ui.part.ViewPart
checkSite, getViewSite, saveState, setContentDescription, setInitializationData, setPartName
-
Methods inherited from class org.eclipse.ui.part.WorkbenchPart
addPartPropertyListener, addPropertyListener, firePartPropertyChanged, firePropertyChange, getConfigurationElement, getContentDescription, getDefaultImage, getOrientation, getPartName, getPartProperties, getPartProperty, getSite, getTitle, getTitleImage, getTitleToolTip, removePartPropertyListener, removePropertyListener, setPartProperty, setSite, setTitle, setTitleImage, setTitleToolTip, showBusy
-
Methods inherited from class org.eclipse.core.commands.common.EventManager
addListenerObject, clearListeners, getListeners, isListenerAttached, removeListenerObject
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.eclipse.ui.IViewPart
getViewSite, init, saveState
-
Methods inherited from interface org.eclipse.ui.IWorkbenchPart
addPropertyListener, getSite, getTitle, getTitleImage, getTitleToolTip, removePropertyListener, setFocus
-
-
-
-
Method Detail
-
getAdapter
public <T> T getAdapter(Class<T> adapter)
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.- Specified by:
getAdapter
in interfaceIAdaptable
- Overrides:
getAdapter
in classPageBookView
- Type Parameters:
T
- the class type- Parameters:
adapter
- the adapter class to look up- Returns:
- a object of the given class,
or
null
if this object does not have an adapter for the given class - See Also:
IAdaptable.getAdapter(java.lang.Class)
,IDebugView
-
createPartControl
public void createPartControl(Composite parent)
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, theREMOVE_ACTION
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:createViewer(Composite)
- the context menu is hooked to the viewer's control.createActions()
configureToolBar(IToolBarManager)
getHelpContextId()
- Specified by:
createPartControl
in interfaceIWorkbenchPart
- Overrides:
createPartControl
in classPageBookView
- Parameters:
parent
- the parent control- See Also:
IWorkbenchPart.createPartControl(Composite)
,createPartControl(Composite)
,createActions()
,configureToolBar(IToolBarManager)
,getHelpContextId()
,fillContextMenu(IMenuManager)
-
createDefaultPage
protected IPage createDefaultPage(PageBook book)
The default page for a debug view is its viewer.- Specified by:
createDefaultPage
in classPageBookView
- Parameters:
book
- the pagebook control- Returns:
- the default page
- See Also:
PageBookView.createDefaultPage(PageBook)
-
createViewer
protected abstract Viewer createViewer(Composite parent)
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.- Parameters:
parent
- the parent control- Returns:
- the new
Viewer
-
createActions
protected abstract void createActions()
Creates this view's actions. Subclasses must override this method, which is called aftercreateViewer(Composite)
-
getHelpContextId
protected abstract String getHelpContextId()
Returns this view's help context id, which is hooked to this view on creation.- Returns:
- help context id
-
dispose
public void dispose()
Description copied from class:PageBookView
ThePageBookView
implementation of thisIWorkbenchPart
method cleans up all the pages. Subclasses may extend.- Specified by:
dispose
in interfaceIWorkbenchPart
- Overrides:
dispose
in classPageBookView
- See Also:
IWorkbenchPart.dispose()
-
saveAllCheckedActionStates
protected void saveAllCheckedActionStates()
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
-
saveCheckedActionState
protected void saveCheckedActionState(IAction 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 styleIAction.AS_CHECK_BOX
.- Parameters:
action
- the enabled, toggle action whose checked state will be saved in preferences- Since:
- 2.1
-
generatePreferenceKey
protected String generatePreferenceKey(IAction action)
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.- Parameters:
action
- the action to generate a key for- Returns:
- a String suitable for use as a preference store key for the given action
- Since:
- 2.1
-
getPreferenceStore
protected IPreferenceStore getPreferenceStore()
Convenience method to return the preference store for the Debug UI plug-in.- Returns:
- the preference store for the Debug UI plug-in
- Since:
- 2.1
-
getViewer
public Viewer getViewer()
Description copied from interface:IDebugView
Returns the viewer contained in this debug view.- Specified by:
getViewer
in interfaceIDebugView
- Returns:
- viewer
- See Also:
IDebugView.getViewer()
-
getStructuredViewer
protected StructuredViewer getStructuredViewer()
Returns this view's viewer as a structured viewer, ornull
if none.- Returns:
- this view's viewer as a structured viewer
or
null
-
getTextViewer
protected TextViewer getTextViewer()
Returns this view's viewer as a text viewer, ornull
if none.- Returns:
- this view's viewer as a text viewer
or
null
-
getPresentation
public IDebugModelPresentation getPresentation(String id)
Description copied from interface:IDebugView
Returns the debug model presentation for this view specified by the debug model identifier.- Specified by:
getPresentation
in interfaceIDebugView
- Parameters:
id
- the debug model identifier that corresponds to theid
attribute of a debug model presentation extension- Returns:
- the debug model presentation, or
null
if no presentation is registered for the specified id - See Also:
IDebugView.getPresentation(String)
-
createContextMenu
protected void createContextMenu(Control menuControl)
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#fillContextMenu(IMenuManager)
which will be called each time the context menu is realized.- Parameters:
menuControl
- the control with which the pop-up menu will be associated with.
-
getContextMenuManager
@Deprecated public IMenuManager getContextMenuManager()
Deprecated.Description copied from interface:IDebugView
Returns the context menu manager for this view.- Specified by:
getContextMenuManager
in interfaceIDebugView
- Returns:
- the context menu manager for this view, or
null
if none - See Also:
IDebugView.getContextMenuManager()
,getContextMenuManagers()
-
getContextMenuManagers
public List<IMenuManager> getContextMenuManagers()
Returns the context menu managers relevant to this view.- Returns:
- the context menu managers relevant to this view
- Since:
- 2.1
-
fillContextMenu
protected abstract void fillContextMenu(IMenuManager menu)
Subclasses must override this method to fill the context menu each time it is realized.- Parameters:
menu
- the context menu
-
initializeToolBar
protected void initializeToolBar()
Configures this view's toolbar. Subclasses implement#configureToolBar(IToolBarManager)
to contribute actions to the toolbar.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.
-
initActionState
protected void initActionState(IAction action)
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).- Parameters:
action
- the action whose checked state will be restored- Since:
- 2.1
-
init
public void init(IViewSite site, IMemento memento) throws PartInitException
Description copied from interface:IViewPart
Initializes this view with the given view site. A memento is passed to the view which contains a snapshot of the views state from a previous session. Where possible, the view should try to recreate that state within the part controls.This method is automatically called by the workbench shortly after the part is instantiated. It marks the start of the views's lifecycle. Clients must not call this method.
- Specified by:
init
in interfaceIViewPart
- Overrides:
init
in classViewPart
- Parameters:
site
- the view sitememento
- the IViewPart state or null if there is no previous saved state- Throws:
PartInitException
- if this view was not initialized successfully- See Also:
IViewPart.init(IViewSite, IMemento)
-
setViewer
protected void setViewer(Viewer viewer)
Sets the viewer for this view.- Parameters:
viewer
- viewer- Since:
- 3.1
-
configureToolBar
protected abstract void configureToolBar(IToolBarManager tbm)
Subclasses implement this menu to contribute actions to the toolbar. This method is called aftercreateActions()
.- Parameters:
tbm
- the tool bar manager for this view's site- See Also:
createViewer(Composite)
-
setAction
public void setAction(String actionID, IAction action)
Description copied from interface:IDebugView
Installs the given action under the given action id. If the action has an id that maps to one of the global action ids defined by this interface, the action is registered as a global action handler. If the action is an instance ofIUpdate
it is added/remove from the collection of updateables associated with this view.- Specified by:
setAction
in interfaceIDebugView
- Parameters:
actionID
- the action idaction
- the action, ornull
to clear it- See Also:
IDebugView.setAction(String, IAction)
-
getAction
public IAction getAction(String actionID)
Description copied from interface:IDebugView
Returns the action installed under the given action id.- Specified by:
getAction
in interfaceIDebugView
- Parameters:
actionID
- the action id- Returns:
- the action, or
null
if none - See Also:
IDebugView.getAction(String)
-
updateObjects
public void updateObjects()
Updates all the registered updatables.
-
handleKeyPressed
protected void handleKeyPressed(KeyEvent event)
Handles key events in viewer. InvokesREMOVE_ACTION
when the delete key is pressed
- Parameters:
event
- theKeyEvent
-
doubleClick
public void doubleClick(DoubleClickEvent event)
Delegate to theDOUBLE_CLICK_ACTION
, if any.- Specified by:
doubleClick
in interfaceIDoubleClickListener
- Parameters:
event
- event object describing the double-click- See Also:
IDoubleClickListener.doubleClick(DoubleClickEvent)
-
asyncExec
public void asyncExec(Runnable r)
Registers the given runnable with the display associated with this view's control, if any.- Parameters:
r
- theRunnable
to run- See Also:
Display.asyncExec(java.lang.Runnable)
-
getControl
protected Control getControl()
Returns the control for this view, ornull
if none.- Returns:
- the control for this view, or
null
if none - Since:
- 3.0
-
syncExec
public void syncExec(Runnable r)
Registers the given runnable with the display associated with this view's control, if any.- Parameters:
r
- theRunnable
to run- See Also:
Display.syncExec(java.lang.Runnable)
-
getMemento
protected IMemento getMemento()
Returns the memento that contains the persisted state of the view. May benull
.- Returns:
- the current
IMemento
-
setMemento
protected void setMemento(IMemento memento)
Sets the memento that contains the persisted state of the view.- Parameters:
memento
- the newIMemento
-
findView
protected IViewPart findView(String id)
Returns the specified view in this view's page ornull
if none.- Parameters:
id
- view identifier- Returns:
- view part
-
isImportant
protected boolean isImportant(IWorkbenchPart part)
Description copied from class:PageBookView
Returns whether the given part should be added to this view.Subclasses must implement this method.
- Specified by:
isImportant
in classPageBookView
- Parameters:
part
- the input part- Returns:
true
if the part is relevant, andfalse
otherwise- See Also:
PageBookView.isImportant(IWorkbenchPart)
-
doCreatePage
protected PageBookView.PageRec doCreatePage(IWorkbenchPart part)
Description copied from class:PageBookView
Creates a new page in the pagebook for a particular part. This page will be made visible whenever the part is active, and will be destroyed with a call todoDestroyPage
.Subclasses must implement this method.
Subclasses must call initPage with the new page (if it is an
IPageBookViewPage
) before calling createControl on the page.- Specified by:
doCreatePage
in classPageBookView
- Parameters:
part
- the input part- Returns:
- the record describing a new page for this view
- See Also:
PageBookView.doCreatePage(IWorkbenchPart)
-
doDestroyPage
protected void doDestroyPage(IWorkbenchPart part, PageBookView.PageRec pageRecord)
Description copied from class:PageBookView
Destroys a page in the pagebook for a particular part. This page was returned as a result fromdoCreatePage
.Subclasses must implement this method.
- Specified by:
doDestroyPage
in classPageBookView
- Parameters:
part
- the input partpageRecord
- a page record for the part- See Also:
PageBookView.doDestroyPage(org.eclipse.ui.IWorkbenchPart, org.eclipse.ui.part.PageBookView.PageRec)
-
getBootstrapPart
protected IWorkbenchPart getBootstrapPart()
Description copied from class:PageBookView
Returns the active, important workbench part for this view.When the page book view is created it has no idea which part within the workbook should be used to generate the first page. Therefore, it delegates the choice to subclasses of
PageBookView
.Implementors of this method should return an active, important part in the workbench or
null
if none found.Subclasses must implement this method.
- Specified by:
getBootstrapPart
in classPageBookView
- Returns:
- the active important part, or
null
if none - See Also:
PageBookView.getBootstrapPart()
-
getDefaultControl
protected Control getDefaultControl()
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.- Returns:
- this view's default control.
-
getMessagePage
protected MessagePage getMessagePage()
Returns this view's message page- Returns:
- message page
-
showMessage
public void showMessage(String message)
Shows the given message in this view's message' page. Makes the message page the visible page.- Parameters:
message
- the message to display
-
showViewer
public void showViewer()
Shows this view's viewer page.
-
isAvailable
public boolean isAvailable()
Returns whether this view's viewer is currently available.- Returns:
- whether this view's viewer is currently available
-
add
public void add(IUpdate updatable)
Description copied from interface:IDebugView
Adds the given IUpdate to this view's collection of updatable objects. Allows the view to periodically update these registered objects. Has no effect if an identical IUpdate is already registered.- Specified by:
add
in interfaceIDebugView
- Parameters:
updatable
- The IUpdate instance to be added- See Also:
IDebugView.add(IUpdate)
-
remove
public void remove(IUpdate updatable)
Description copied from interface:IDebugView
Removes the given IUpdate from this view's collection of updatable objects. Has no effect if an identical IUpdate was not already registered.- Specified by:
remove
in interfaceIDebugView
- Parameters:
updatable
- The IUpdate instance to be removed- See Also:
IDebugView.remove(IUpdate)
-
addContextMenuManager
public void addContextMenuManager(IMenuManager contextMenuManager)
Adds a context menu manager that is relevant to this view.- Parameters:
contextMenuManager
- The contextMenuManager to add- Since:
- 2.1
-
becomesVisible
protected void becomesVisible()
Notification this view is now visible.- Since:
- 2.1
-
becomesHidden
protected void becomesHidden()
Notification this view is now hidden.- Since:
- 2.1
-
isVisible
public boolean isVisible()
Returns whether this view is currently visible.- Returns:
- whether this view is currently visible
- Since:
- 2.1
-
registerPartListener
protected void registerPartListener()
Creates and registers a part listener with this event handler's page, if one does not already exist.- Since:
- 2.1
-
deregisterPartListener
protected void deregisterPartListener()
Unregisters and disposes this event handler's part listener.- Since:
- 2.1
-
getPresentationAttributes
public Map<String,Object> getPresentationAttributes(String modelId)
Returns a map of the current attribute settings in the model presentation in this view associated with the given debug model.- Parameters:
modelId
- the debug model identifier- Returns:
- a map of the current attribute settings in the model presentation in this view associated with the given debug model
- Since:
- 3.0
-
-