public class ActionBarAdvisor extends Object
An application should declare a subclass of ActionBarAdvisor
and override methods to configure a window's action bars to suit the needs of the
particular application.
The following advisor methods are called at strategic points in the
workbench's lifecycle (all occur within the dynamic scope of the call
to PlatformUI.createAndRunWorkbench
):
fillActionBars
- called after WorkbenchWindowAdvisor.preWindowOpen
to configure a window's action barsWorkbenchWindowAdvisor.createActionBarAdvisor(IActionBarConfigurer)
Modifier and Type | Field and Description |
---|---|
static int |
FILL_COOL_BAR
Bit flag for
fillActionBars indicating that the
operation is supposed to fill (or describe) the workbench window's cool
bar. |
static int |
FILL_MENU_BAR
Bit flag for
fillActionBars indicating that the
operation is supposed to fill (or describe) the workbench window's menu
bar. |
static int |
FILL_PROXY
Bit flag for
fillActionBars indicating that the
operation is not filling the action bars of an actual workbench window,
but rather a proxy (used for perspective customization). |
static int |
FILL_STATUS_LINE
Bit flag for
fillActionBars indicating that the
operation is supposed to fill (or describe) the workbench window's status
line. |
Constructor and Description |
---|
ActionBarAdvisor(IActionBarConfigurer configurer)
Creates a new action bar advisor to configure a workbench
window's action bars via the given action bar configurer.
|
Modifier and Type | Method and Description |
---|---|
void |
dispose()
Disposes this action bar advisor.
|
protected void |
disposeAction(IAction action)
Disposes the given action.
|
protected void |
disposeActions()
Disposes all actions added via
register(IAction)
using disposeAction(IAction) . |
void |
fillActionBars(int flags)
Configures the action bars using the given action bar configurer.
|
protected void |
fillCoolBar(ICoolBarManager coolBar)
Fills the cool bar with the main toolbars for the window.
|
protected void |
fillMenuBar(IMenuManager menuBar)
Fills the menu bar with the main menus for the window.
|
protected void |
fillStatusLine(IStatusLineManager statusLine)
Fills the status line with the main status line contributions
for the window.
|
protected IAction |
getAction(String id)
Returns the action with the given id, or
null if not found. |
protected IActionBarConfigurer |
getActionBarConfigurer()
Returns the action bar configurer.
|
boolean |
isApplicationMenu(String menuId)
Returns whether the menu with the given id is an application menu of the
given window.
|
protected void |
makeActions(IWorkbenchWindow window)
Instantiates the actions used in the fill methods.
|
protected void |
register(IAction action)
Registers the given action with the key binding service
(by calling
IActionBarConfigurer.registerGlobalAction(IAction) ),
and adds it to the list of actions to be disposed when the window is closed. |
IStatus |
restoreState(IMemento memento)
Restores arbitrary application-specific state information
for this action bar advisor.
|
IStatus |
saveState(IMemento memento)
Saves arbitrary application-specific state information
for this action bar advisor.
|
public static final int FILL_PROXY
fillActionBars
indicating that the
operation is not filling the action bars of an actual workbench window,
but rather a proxy (used for perspective customization).public static final int FILL_MENU_BAR
fillActionBars
indicating that the
operation is supposed to fill (or describe) the workbench window's menu
bar.public static final int FILL_COOL_BAR
fillActionBars
indicating that the
operation is supposed to fill (or describe) the workbench window's cool
bar.public static final int FILL_STATUS_LINE
fillActionBars
indicating that the
operation is supposed to fill (or describe) the workbench window's status
line.public ActionBarAdvisor(IActionBarConfigurer configurer)
configurer
- the action bar configurerprotected IActionBarConfigurer getActionBarConfigurer()
public void fillActionBars(int flags)
flags
does not include
FILL_PROXY
, meaning this is a request to fill the action
bars of the corresponding workbench window; the
remaining flags indicate which combination of
the menu bar (FILL_MENU_BAR
),
the tool bar (FILL_COOL_BAR
),
and the status line (FILL_STATUS_LINE
) are to be filled.
If flags
does include FILL_PROXY
, then this
is a request to describe the actions bars of the given workbench window
(which will already have been filled);
again, the remaining flags indicate which combination of the menu bar,
the tool bar, and the status line are to be described.
The actions included in the proxy action bars can be the same instances
as in the actual window's action bars. Calling ActionFactory
to create new action instances is not recommended, because these
actions internally register listeners with the window and there is no
opportunity to dispose of these actions.
This method is called just after WorkbenchWindowAdvisor.preWindowOpen()
.
Clients must not call this method directly (although super calls are okay).
The default implementation calls makeActions
if
FILL_PROXY
is specified, then calls fillMenuBar
,
fillCoolBar
, and fillStatusLine
if the corresponding flags are specified.
Subclasses may override, but it is recommended that they override the methods mentioned above instead.
flags
- bit mask composed from the constants
FILL_MENU_BAR
,
FILL_COOL_BAR
,
FILL_STATUS_LINE
,
and FILL_PROXY
protected void makeActions(IWorkbenchWindow window)
register(IAction)
to register the action with the key binding service
and add it to the list of actions to be disposed when the window is closed.window
- the window containing the action barsprotected void register(IAction action)
IActionBarConfigurer.registerGlobalAction(IAction)
),
and adds it to the list of actions to be disposed when the window is closed.
In order to participate in key bindings, the action must have an action
definition id (aka command id), and a corresponding command extension.
See the org.eclipse.ui.commands
extension point documentation
for more details.
action
- the action to register, this cannot be null
IAction.setActionDefinitionId(String)
,
disposeAction(IAction)
protected IAction getAction(String id)
null
if not found.id
- the action idnull
if not foundIAction.getId()
protected void fillMenuBar(IMenuManager menuBar)
The default implementation does nothing. Subclasses may override.
menuBar
- the menu manager for the menu barprotected void fillCoolBar(ICoolBarManager coolBar)
The default implementation does nothing. Subclasses may override.
coolBar
- the cool bar managerprotected void fillStatusLine(IStatusLineManager statusLine)
The default implementation does nothing. Subclasses may override.
statusLine
- the status line managerpublic boolean isApplicationMenu(String menuId)
The default implementation returns false. Subclasses may override.
menuId
- the menu idtrue
for application menus, and false
for part-specific menuspublic void dispose()
The default implementation calls disposeActions()
.
Subclasses may extend.
protected void disposeActions()
register(IAction)
using disposeAction(IAction)
.protected void disposeAction(IAction action)
The default implementation checks whether the action is an instance
of ActionFactory.IWorkbenchAction
and calls its
dispose()
method if so.
Subclasses may extend.
action
- the action to disposepublic IStatus saveState(IMemento memento)
The default implementation simply returns an OK status. Subclasses may extend or override.
memento
- the memento in which to save the advisor's statepublic IStatus restoreState(IMemento memento)
The default implementation simply returns an OK status. Subclasses may extend or override.
memento
- the memento from which to restore the advisor's state
Copyright (c) 2000, 2015 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.