01: package net.refractions.udig.ui;
02:
03: import org.eclipse.jface.action.ICoolBarManager;
04: import org.eclipse.jface.action.IMenuManager;
05: import org.eclipse.ui.IWorkbenchWindow;
06:
07: /**
08: * This class is used to configure a menu bar and a cool bar. This is called
09: * when the workbench starts up. The uDig ActionBarAdvisor delegates to this
10: * class.
11: *
12: * The implementation of this interface that is called by the framework
13: * is specified by the extension in the preferences under the key
14: * 'net.refractions.udig.ui/menuBuilder'. You can place this in your
15: * product's plugin_customization.ini.
16: *
17: * Example entry in plugin_customization.ini:
18: * <pre>
19: * net.refractions.udig.ui/menuBuilder=net.refractions.udig.ui.UDIGMenuBuilder
20: * </pre>
21: *
22: * See net.refractions.udig.ui.UDIGMenuBuilder for an example implementation.
23: *
24: * @author rgould
25: * @since 1.1.0
26: */
27: public interface MenuBuilder {
28:
29: public final String XPID = "net.refractions.udig.ui.menuBuilders"; //$NON-NLS-1$
30: /**
31: * Points to id field of extension point attribute
32: */
33: public final String ATTR_ID = "id"; //$NON-NLS-1$
34:
35: /**
36: * Points to class field of extension point attribute
37: */
38: public final String ATTR_CLASS = "class"; //$NON-NLS-1$
39:
40: /**
41: * Instructs this class that it should configure and fill the provided
42: * IMenuManager with menus and actions.
43: *
44: * @param menuBar
45: * @param window The window that contains this menu
46: */
47: public abstract void fillMenuBar(IMenuManager menuBar,
48: IWorkbenchWindow window);
49:
50: /**
51: * Instructs this class to configure and fill the provided ICoolBarManager
52: * with actions and buttons.
53: *
54: * @param coolBar
55: * @param window The window that contains the CoolBar
56: */
57: public abstract void fillCoolBar(ICoolBarManager coolBar,
58: IWorkbenchWindow window);
59:
60: }
|