定制工作台

用于提供定制工作台行为的“入口点”是为配置工作台对 WorkbenchAdvisor 的指定。富客户机插件应该扩展此抽象类以便为工作台提供专用配置。浏览器示例是通过使用 BrowserAdvisor 类来完成此任务的。

	...
	int code = PlatformUI.createAndRunWorkbench(display,
			new BrowserAdvisor());
	...

工作台顾问程序负责覆盖方法以便为工作台配置它期望的布局和功能部件(例如,操作栏项或简介页面)。

工作台生命周期

工作台顾问程序提供的生命周期方法允许应用程序在任何时候挂接到工作台的创建并影响该行为。可以覆盖的顾问程序生命周期方法的以下列表来自 WorkbenchAdvisor 的 javadoc。

正如您可以看到的那样,富客户机应用程序对于如何配置和实现工作台有很高的控制权。在浏览器示例中,BrowserAdvisor 的主要功能是为操作栏配置适用于浏览器的菜单项。这是使用 fillActionBars 方法实现的:

	public void fillActionBars(IWorkbenchWindow window, IActionBarConfigurer configurer, int flags) {
		...
		BrowserActionBuilder builder = new BrowserActionBuilder(window);
		getWorkbenchConfigurer().getWindowConfigurer(window).setData(BUILDER_KEY, builder); 
		builder.fillActionBars(configurer, flags);
	}

在此方法中,工作台配置了专用的操作构建器。此操作构建器用来填充工作台的操作栏。我们将在定义操作中查看有关如何指定操作的详细信息。目前,我们主要讨论如何配置工作台。

注意上面的 getWorkbenchConfigurer() 方法的使用。IWorkbenchConfigurerIWorkbenchWindowConfigurerWorkbenchAdvisor 一起用来定制窗口。这些类使您可以覆盖不同级别的工作台创建的许多方面。例如,IWorkbenchWindowConfigurer 定义采用工作台窗口中的控件的特定配置(例如,操作栏、状态行、透视图栏和工具栏等等)的协议。它的协议允许您定制和填充这些项。IWorkbenchConfigurer 在较高级别上运行,这允许您使用工作台存储特定于应用程序的数据。WorkbenchAdvisor 提供对上面说明的生命周期方法中的这些配置程序的访问权。可以覆盖 WorkbenchAdvisor 中较低级别的方法以彻底替换缺省行为。例如,工作台顾问程序可能覆盖在窗口中创建 SWT 控件的方法,以便为主窗口提供完全不同的实现。

换句话说,可以采用多种方法来定制工作台,可以在几个不同的级别使用这些技术。WorkbenchAdvisorIWorkbenchConfigurerIWorkbenchWindowConfigurer 的 Javadoc 包括对提供的协议的完整描述。有关其它实现的注释,另请参阅 BrowserAdvisor 的完整实现。