应用程序对话框

如果标准对话框对于您的插件来说太简单,可以使用 Dialog 类来构建您自己的对话框。先前,我们已经了解了自述文件工具如何在操作集中添加“打开自述文件浏览器”操作。此操作集显示在工作台工具栏和窗口 -> 自述文件编辑器菜单中。

现在,我们准备在自述文件工具的 WindowActionDelegate 中了解此操作的实现。

public void run(IAction action) {
      SectionsDialog dialog = new SectionsDialog(window.getShell(),
         ReadmeModelFactory.getInstance().getSections(selection));
      dialog.open();
   }

操作集的窗口操作代表使用资源导航器视图(.readme 文件)中的当前选择来获取自述文件中各小节的列表。此列表和工作台窗口的 shell 传送至 SectionsDialog

当用户选择该操作时,SectionsDialog 就会打开。

SectionsDialog 是通过对 org.eclipse.jface.dialogs 包中的 Dialog 类划分子类,从而在自述文件工具插件中实现的。

Dialog 类提供了对构建对话框 shell 窗口、创建常见对话框按钮以及启动对话框的基本支持。子类负责处理对话框本身的内容:

SectionsDialog 未实现 okButtonPressed 方法。它从对话框中继承“不执行任何操作”的实现。这种情况比较特殊。对话框通常会响应按下对话框按钮之一而执行一些处理。

对话框既可以比较简单,也可以比较复杂,这取决于实际需要。实现对话框时,大多数对话框代码都与创建 SWT 控件(表示它的内容区域)和处理对话框打开时的任何必需的事件有关。一旦用户按了按钮,对话框就可以查询组成该对话框的各种控件(或查看器)的状态,以确定应该执行哪些操作。