File: IActionBars.java

package info (click to toggle)
eclipse-platform-ui 4.10-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 71,188 kB
  • sloc: java: 611,660; xml: 21,221; sh: 602; makefile: 5
file content (155 lines) | stat: -rw-r--r-- 6,172 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
/*******************************************************************************
 * Copyright (c) 2000, 2015 IBM Corporation and others.
 *
 * This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.ui;

import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IStatusLineManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.ui.services.IServiceLocator;

/**
 * Used by a part to access its menu, toolbar, and status line managers.
 * <p>
 * Within the workbench each part, editor or view, has a private set of action
 * bars.  This set, which contains a menu, toolbar, and status line, appears
 * in the local toolbar for a view and in the window for an editor.  The view
 * may provide an implementation for pre-existing actions or add new actions to
 * the action bars.
 * </p><p>
 * In a workbench window there are a number of actions which are applicable to
 * all parts.  Some common examples are <code>CUT</code>, <code>COPY</code> and
 * <code>PASTE</code>. These actions, known as "global actions", are contributed to
 * the workbench window by the window itself and shared by all parts.  The
 * presentation is owned by the window.  The implementation is delegated to the
 * active part.
 * </p><p>
 * To participate in the global action design an <code>IWorkbenchPart</code> should
 * register a handler for each global action which is implemented by the part.  This
 * can be done by calling <code>setGlobalActionHandler</code>.  For convenience, the
 * standard global actions are defined in
 * <code>org.eclipse.ui.IWorkbenchActionConstants</code>.
 * </p><p>
 * Additional work is required for the <code>Delete</code> global action.  In
 * this case the accelerator is defined in the menu item text but is not hooked
 * on the window.  This is to support text editors where the <code>Delete</code>
 * key is functional even when the <code>Delete</code> action is disabled (no text
 * is selected).  An implementation for this accelerator must be defined locally,
 * in each part, by listening for <code>Delete</code> key events.
 * </p><p>
 * A part may also contribute new actions to the action bars as required.  To do
 * this, call <code>getMenuManager</code>, <code>getToolBarManager</code>, or
 * <code>getStatusLineManager</code> as appropriate to get the action target.
 * Add the action(s) to the target and call <code>update</code> to commit
 * any changes to the underlying widgets.
 * </p><p>
 * This interface is not intended to be implemented by clients.
 * </p>
 * @noimplement This interface is not intended to be implemented by clients.
 */
public interface IActionBars {
    /**
     * Clears the global action handler list.
     * <p>
     * Note: Clients who manipulate the global action list are
     * responsible for calling <code>updateActionBars</code> so that the changes
     * can be propagated throughout the workbench.
     * </p>
     */
    void clearGlobalActionHandlers();

    /**
     * Returns the global action handler for the action with the given id.
     *
     * @param actionId an action id declared in the registry
     * @return an action handler which implements the action id, or
     *	 <code>null</code> if none is registered
     * @see IWorkbenchActionConstants
     * @see #setGlobalActionHandler(String, IAction)
     */
    IAction getGlobalActionHandler(String actionId);

    /**
     * Returns the menu manager.
     * <p>
     * Note: Clients who add or remove items from the returned menu manager are
     * responsible for calling <code>updateActionBars</code> so that the changes
     * can be propagated throughout the workbench.
     * </p>
     *
     * @return the menu manager
     */
    IMenuManager getMenuManager();

    /**
	 * Returns the service locator for these action bars. The locator is found
	 * by looking locally, and then ascending the action bar hierarchy.
	 *
	 * @return The service locator; never <code>null</code>.
	 * @since 3.2
	 */
	IServiceLocator getServiceLocator();

    /**
	 * Returns the status line manager.
	 * <p>
	 * Note: Clients who add or remove items from the returned status line
	 * manager are responsible for calling <code>updateActionBars</code> so
	 * that the changes can be propagated throughout the workbench.
	 * </p>
	 *
	 * @return the status line manager
	 */
    IStatusLineManager getStatusLineManager();

    /**
     * Returns the tool bar manager.
     * <p>
     * Note: Clients who add or remove items from the returned tool bar manager are
     * responsible for calling <code>updateActionBars</code> so that the changes
     * can be propagated throughout the workbench.
     * </p>
     *
     * @return the tool bar manager
     */
    IToolBarManager getToolBarManager();

    /**
     * Sets the global action handler for the action with the given id.
     * <p>
     * Note: Clients who manipulate the global action list are
     * responsible for calling <code>updateActionBars</code> so that the changes
     * can be propagated throughout the workbench.
     * </p>
     *
     * @param actionId an action id declared in the registry
     * @param handler an action which implements the action id, or
     *	<code>null</code> to clear any existing handler
     * @see IWorkbenchActionConstants
     */
    void setGlobalActionHandler(String actionId, IAction handler);

	/**
	 * Updates the action bars.
	 * <p>
	 * Clients who add or remove items from the menu, tool bar, or status line
	 * managers, or that update global action handlers, should call this method
	 * to propagated the changes throughout the workbench.
	 * </p>
	 *
	 * @see #setGlobalActionHandler(String, IAction)
	 * @see #clearGlobalActionHandlers()
	 */
    void updateActionBars();
}