这份文件是一份工作草案。2.1版本是以“(3.x更新)”表示的3.x更新的基。
尼克·埃德加、凯文·哈兰、金黎和金伯利·彼得,用户界面最佳做法工作组
最后一次重大修订:2007年11月
注意:请使用讨论页添加注释,而不是将它们嵌入到本文档中。
内容
[藏]
- 1 通知
- 2 UI检查表
- 3 导言
- 4 开始
- 5 一般UI指南
- 6 UI图形(3.x更新)
- 7 组件开发
- 8 标准件
- 9 平面造型设计
- 10 资源之道
- 11 可达性
- 12 最佳做法
- 13 开发人员核对表
- 14 术语表
- 15 确认
- 16 Eclipsev3.xUI指南更新(附后)
通知
您的反馈可能会影响这里描述的想法和指导方针。如果您有建议,请向我们提供您对UI邮件列表或者在讨论页.
UI检查表
这个UI检查表是最相关和最容易应用Eclipse的候选列表用户界面指南..从使用开始这份清单引用链接指南项获取详细信息,然后使用全面核对表以获得更多的指导。如需评论,请使用虫205326.
导言
本文档定义了Eclipse用户界面指南。
Eclipse是一个通用的工具平台-一个开放的、可扩展的IDE,但并不是什么特别的。真正的价值来自于工具插件,它“教”Eclipse如何使用各种东西-JavaWeb文件、网络内容、图形、视频-几乎你能想象到的任何东西。Eclipse允许您独立开发工具,这些工具与其他人的工具无缝集成,您将不知道一个工具的结束位置和另一个工具的起始位置。正如我们所知,工具的概念完全消失了。
该平台非常灵活和可扩展,但这种灵活性有一个严重的缺点。特别是,在程序中无法确保平台内注册组件之间的用户界面一致性。本文档试图通过定义创建新组件的标准用户界面准则来解决这个问题。如果在您自己的工具中采用这些指导方针,它将导致与平台和其他工具的更大的一致性,并为您的客户提供更容易的学习曲线。
这些准则是供Eclipse用户界面扩展的设计者和实现者使用的。
工作台
首先,让我们看一下Eclipse工作台用户界面,以及其中的各种组件。
工作台是窗口的集合。每个窗口包含一个菜单栏、一个工具栏、一个快捷栏和一个或多个透视图。
透视图是一组视图和内容编辑器的可视容器。视图完全存在于透视图中,不共享,但任何打开的内容编辑器都是跨透视图共享的。如果两个或多个透视图打开了相同的视图,则它们共享视图的同一个实例,尽管其布局在透视图中可能有所不同。对于不同工作台窗口中的透视图,既不共享编辑器也不共享视图。透视就像书中的一页。它与任意数量的其他透视图一起存在于窗口中,就像书中的一页一样,在任何时候只有一个透视图是可见的。
工作台的主菜单栏通常包含“文件”、“编辑”、“导航”、“项目”、“窗口”、“帮助”顶级菜单。在编辑和项目菜单之间的其他顶级菜单通常是上下文特定的,基于当前的Active透视图、最前面的编辑器(无论是否活动)和Active视图。
在“文件”菜单中,您将找到一个“新建”子菜单,其中包含用于项目、文件夹和文件创建的菜单项。“文件”菜单还包含用于导入和导出文件的菜单项,这些菜单项用于将文件导入Workbench,然后再将它们导出。在“编辑”菜单中,您会发现常见的命令,如剪切、复制、粘贴和删除。这些命令称为全局命令,并以活动部分为目标。换句话说,如果使用Navigator Active调用Delete命令,则由Navigator执行实际的实现。在“项目”菜单中,您将发现“打开项目”、“关闭项目”和“重建项目”等与项目相关的命令是可用的。在“运行”菜单中,您将发现与运行和调试应用程序代码以及启动诸如Ant脚本等外部工具相关的命令。在“窗口”菜单中,您将发现“打开透视图”子菜单打开不同的透视图,以适应开发任务的需要。您将发现透视图布局管理菜单项。您还将找到ShowView子菜单将视图添加到当前Workbench窗口。此外,您将找到Preferences菜单项,它用于修改Workbench的功能首选项。
作为插件开发人员,您可以为平台贡献新的视图、编辑器、向导、菜单和工具项。这些贡献是使用XML定义的,一旦注册,就可以与平台中已经存在的组件无缝集成。
项目、文件夹和文件
Eclipse可以用来创建许多不同类型的内容-Java文件、Web内容、图形、视频-几乎你可以想象到的任何东西。这些对象作为常规文件存储在Eclipse工作区中。工作区由一个或多个顶级项目组成。每个项目都包含一个文件夹和文件的集合。这些对象称为资源.
开始
对于大多数开发人员来说,对平台的介绍可能会让人望而却步,您可能会问:“我从哪里开始呢?”这里有一些基本的指导方针,这将对你有帮助。
本文档针对UI设计人员和开发人员。考虑到这一点,我们可以讨论任何应用程序的两个主要层:模型层和用户界面层。在Eclipse的模型层,称为Workspace,是资源(项目、文件夹和文件)的集合。用户界面或工作台定义了这些资源的表示形式。
作为UI开发人员,您还将拥有一个模型和一个演示文稿。如果我们假设您的目标是通过某种演示使模型可见,那么大多数开发人员将首先向工作台添加一个新的视图或编辑器。
在Eclipse中,编辑器用于包含用户交互的主要内容,如文档或数据对象。在每一种情况下,这些内容都是主要关注的焦点,也是主要任务的反映。为了说明这个概念,让我们看看一些常见的例子。
要执行Java编程,主要任务是创建、编辑和调试Java代码。主要关注的是Java代码,因此使用编辑器与该代码进行交互。导航器、大纲和属性视图存在以支持主要任务,但在编写Java代码时很少会引起您的注意。
要阅读电子邮件,主要任务是创建、发送、读取和回复电子邮件。主要焦点是特定的电子邮件消息,因此编辑器用于查看或回复电子邮件消息。视图可用于选择要读取的电子邮件,并打开编辑器。
要使用即时消息进行通信,主要任务是对话。主要焦点是特定的会话,因此使用编辑器来进行对话。视图可以用来列出可以与您进行对话的人。
要浏览Web,主要任务是阅读。主要焦点是特定的网页,因此使用编辑器浏览网页。
在每一种情况下,主要任务决定了注意力的主要焦点。作为关注的主要焦点,它应该在UI中占据首要位置。 (作为编辑器),并且可以向工作台的主菜单栏和工具栏提供命令。
视图可用于保存您喜爱的链接并重新打开它们。在任何时候,您都可以决定编辑正在查看的页面。这将导致打开一个新编辑器。视图用于支持主要任务。您可以使用它们导航信息层次结构、打开编辑器或查看活动部件的属性。每个视图都可能有自己的本地工具栏和本地菜单栏。
一旦添加了视图或编辑器,就会出现一个有趣的问题。这种型号是从哪里来的?在Eclipse中,大多数数据都是使用创建向导创建的。您可能也想添加一个创建向导。一旦对象存在,您可能需要使用属性页或属性对话框来编辑该对象的属性。
以下各节将详细讨论所有这些想法。
一般UI指南
本文档定义了独特的、特定于Eclipse平台的UI指南。它是对其他标准UI指南的补充,如
对于基本的UI设计和实现建议,您应该继续参考这些指南。如果指南与Windows指南相矛盾,则更喜欢Windows指南。
预计您已经基本了解了EclipseUI体系结构和API,以及基本的UI设计原则:用户控制、直接性、一致性、宽恕、反馈、美学和简单性。如果你目前还没有必要的知识,请先阅读相关文件。
遵循并应用良好的用户界面设计原则:用户在控制,直接,一致性,宽恕,反馈,美学和简单。
日食精神
从本质上讲,Eclipse是一个工具插件的平台。这些插件可以由单个团队开发,也可以由团队合作开发,或者用户可以从不同的来源组装一组插件。无论是哪种情况,单个工具和整个Eclipse的可用性都将受到用户界面一致性的积极影响。
如果您对工具的适当外观和感觉有疑问,请首先查看平台,然后查看Java开发工具和Eclipse中的插件开发环境(PDE)以获得指导。在许多情况下,您想象的工作流可能已经存在于Eclipse中。如果是的话,采用平台的工作流和用户界面约定。这将导致更大的一致性与平台和其他插件,并为您的客户更容易学习曲线。
在某些情况下,可能会忽略Eclipse的工作流并实现“自定义”用户界面。在集成环境中,这个接口几乎肯定会脱颖而出,在集成环境中,其他工具都采用平台约定。你失去了过去经验的好处,迫使你的客户学习新的想法。
咨询最佳做法获取示例和更多信息。
另外,访问Eclipse平台新闻组与社区分享信息。
遵循平台领导的用户界面约定。
如果您决定重用Eclipse的约定,请注意不要误用Eclipse特定的UI约定。例如,工作台窗口中的活动部分由阴影标题表示。在编辑器中使用阴影标题(见下文)可能是一种表示焦点在该部分中的位置的方法,但它也将模糊窗口中的部件激活的概念。
注意不要混淆UI隐喻。它可能模糊了最初的概念,以及你自己的应用。
Eclipse是一个开源项目。如果您觉得您的想法通常是有用的,请加入Eclipse社区,编写一个建议,并与Eclipse社区合作,使Eclipse成为一个更好的产品开发平台,并提高客户满意度。
参观,拜访www.eclipse.org并加入EclipseUI邮件列表Platform-ui-dev.
如果您有一个有趣的想法,请与Eclipse社区合作,使Eclipse成为一个更好的平台。
资本化
插件内文本的大写化会带来更好的感觉,更好地感知质量。在对话框或窗口中,标题大写应用于所有标题、菜单、工具提示、选项卡和按钮。例如,“RuntoLine”可以用作菜单项标签。
句子样式大写应用于所有复选框、单选按钮和组标签。例如,“选择Java文件的选项”可以用作组标签。
对菜单、工具提示和所有标题使用标题样式大写,包括用于窗口、对话框、选项卡、列标题和按钮的标题。将第一个和最后一个词以及所有名词、代词、形容词、动词和副词大写。不包括结束标点符号。
对对话框或窗口中的所有控件标签,包括复选框、单选按钮、组标签和简单文本字段使用句子样式大写。将第一个单词的第一个字母和任何适当的名称(如Java)大写。
语言
Eclipse可以在各种不同的平台上,在不同的地区使用。为了反映每种语言和数字格式的不同,应该对每个插件中的文本和图像采取本地化策略。这涉及将所有资源与插件本身的源代码分离,以便将这些资源转换为新的区域设置。
咨询最佳做法获取示例和更多信息。
在插件中创建资源的本地化版本。
助记学
对话框中的所有菜单、菜单项和大多数控件都需要独特的助记符(即.a)。)。值得注意的例外是通过Enter和ESC键触发的OK、Cancel和Close按钮。但是,始终将助记符分配给表示确定或取消但具有不同标签的控件。(*) .
在设计可重用控件时和UI同时显示多个插件贡献的上下文中,要小心避免冲突。不要在工作台窗口视图中使用助记符,因为这将与菜单栏记忆法发生冲突。
错误处理
如果Eclipse中发生错误,则相应的响应将取决于错误的上下文。
请参阅奇才有关如何在向导中处理用户输入错误的指导原则的节。
请参阅编辑有关如何处理编辑器中发生的错误的指导原则的章节。
当出现需要用户明确输入或用户立即关注的错误时,应使用模态对话框将错误传递给用户。这迫使用户注意并处理问题。
当出现需要用户明确输入或用户立即关注的错误时,请使用模态对话框进行通信。
如果产品中出现编程错误,则应使用错误对话框将该错误通知用户。还应该使用工作台错误日志记录工具记录错误。这使用户有机会重新启动平台,卸载相应的功能,并与他们的系统管理员联系。
插件应该在错误对话框的详细区域提供以下信息:
- 提供者名称
- 插件名称(用户友好名称)
- 插件ID
- 版本
如果产品中出现编程错误,请使用对话框进行通信,并将其记录下来。
UI图形(3.x更新)
概述
下面的指南介绍了Eclipse3.x工具的用户界面(UI)图形。为基于Eclipse的工具创建的所有可视化用户界面元素都遵循称为月食视觉风格或Eclipse风格..基于月食工作台3.0及以上版本应遵循这些准则,以帮助确保可视化用户界面元素的一致性。一致性包括视觉风格、含义和实现约定。
观众
这些指导方针适用于任何创建Eclipse风格用户界面图形或为其使用寻找最佳实践的人。这不是一个如何指导,但你会找到一些任务的说明和一些资源,以帮助制作图形。如果您是一个设计人员,您将对设计、规范和实现部分感兴趣。如果您是开发人员,规范和实现部分将对您最有价值。
设计
本节提供了创建Eclipse样式图标和向导图形的指南和工具。
风格与设计
本节介绍风格特征,并为设计有效的Eclipse用户界面图形提供指导,包括隐喻、构图、灯光、颜色等主题。
在开始设计Eclipse样式的图标或向导横幅图形之前,首先检查概念或视觉元素是否已经涵盖。参考一致性与重用和共同要素这些元素的章节。如果从一开始就设计图标或向导图形,请考虑基本概念以及如何最好地表示它。可能有一个现有的隐喻来恰当地表达这个概念。
隐喻
隐喻的目的是创造意义。如果一个隐喻是基于观众已经熟悉的想法,如果它在概念上符合内容和上下文,那么它将是有意义的。它应该清楚,容易学习,容易区分。例如,在基于Eclipse的工作区中使用项目和文件夹的方式与在现实世界中组织和存储项目相关信息的方式相同。由于许多概念已经有关联的隐喻,使用现有的隐喻,当概念允许时,创建新的表示来扩展隐喻。
图标
风格特征
图标应该有一个干净,优雅的感觉,丰富但微妙的颜色和灯光。它们被呈现为从前面直接观看,但有三维的错觉。这种影响是通过使用颜色梯度和暗光源从顶部实现的。一种环境光也被用来照亮每个图标的不同部分,或者显示它的形状,或者强调图像的某个方面。其他关键特征包括颜色梯度轮廓,以定义边缘和强可识别的形状,与尽可能少的组合元素。
照明
对于大多数元素,照明是通过简单的垂直梯度来实现的。渐变从元素顶部较浅的颜色到底部更深的颜色。这种方法给出了微妙的形式,并阐明了基本元素,如文件、文件夹和其他直线形状。对于球体、三角形和更复杂的形状,在元素底部附近增加一个额外的反射光源,使其体积并在其环境中接地。
轮廓
单个图标中的每个元素都有一个像素键线。实心色线定义元素的顶部和底部边缘,渐变定义边。为了从顶部强化光源,关键线颜色从顶部的光线到底部的深色。两边的渐变把这些浅色和深色连接起来。
轮廓的颜色将根据个别元素的颜色而变化。在下面的例子中,该文件有一个深灰色-蓝色的底座和一个浅蓝色的顶部。这是这类对象的标准颜色轮廓。您将看到其他元素也使用标准的颜色轮廓。在“颜色”下面阅读有关标准颜色的更多信息,并使用共同要素设计可重用元素的资源。
类型间的风格差异
视点(包括透视和快速视图),模型对象(包括表格),对象叠加, 进度指标,和图解与工具栏、本地工具栏和调色板图标相比,图标具有更多的饱和颜色和更高的对比度。重要的是,这些图标在用户界面中脱颖而出,因为它们是模型的关键指标。由于没有与对象类型图标相关联的工具提示,因此对于视力低下或无视力的人来说,它们更难访问。饱和度和对比度的增加有助于弥补这一点。
工具栏, 工具栏向导, 局部工具栏,和调色板与基于对象的图标相比,图标在颜色和对比度方面有一种更微妙的方法。这些图标更微妙,因为它们确实存在于用户界面中,不应该分散注意力。这些类型图标的工具提示使低视力或无视力的人可以访问这些图标。此外,使用颜色的轮廓,而不是黑色,意味着图像不会丢失,如果人们选择在高对比度(通常是黑色)的可访问性模式。
核心可重用元素的子集最好地说明了这种区别:对于TreeView,项目、文件和数据库元素都有一个丰富的饱和版本,而工具栏和本地工具栏则有一个轻巧的版本。对象中的其他图标中查找这些差异。共同要素档案。
下面是呈现为模型对象的Project、File和Database图标:
下面是以更低键工具栏样式呈现的相同图标:
构图
以简单为目标。通过使用不同的视觉线索(如颜色、对比度、照明、大小和位置)来区分元素,将焦点放在图标内的主要功能或对象上。为了提高清晰度和减少视觉噪音,避免在任何给定图标中使用太多元素。
单个元素在图标中的位置会对其含义和识别值产生影响。人们学习、识别和期望模式:在可能的情况下,对视觉元素使用一致的位置,可以建立一个模式,用于识别单个或一组图标的对象类型或功能。
行为
工具栏和本地工具栏图标中的操作通常位于图标的左侧,并标识将在对象或对象集上执行的命令。例如,下面的图标表示工具栏上的“部署脚本”。操作“Deploy”由脚本对象左侧的绿色箭头表示:
但是,并非所有操作都位于左侧。为了传达一个概念的意图或在用户界面中容纳图标的上下文,有时需要背离惯例。以下是左撇子行动惯例的一些明显例外:
创造或新的用右上角的闪光表示,表示一个闪闪发光的“新”物体的创建。火花,虽然是物体本身,却是创造新事物的隐喻。它在图标空间中的位置精确地从顶部向下1像素,并与16x16图标空间的右边缘齐平。使用这个精确的位置可以确保在工具栏或菜单上的许多“新”动作图标上看到干净、整洁的演示文稿。例如:
进口,当与对象相关联时,用右下角的箭头来表示,箭头朝下,向右。在这里,位置和方向非常重要,可以传达一个对象将从另一个位置导入工作台。注意它的对应方,出口在左下角有箭头,因为这个位置和方向适合表示一个对象将从工作台导出到另一个位置。
打开由图标右上角的弯曲箭头表示。箭头的位置、形状和方向指示正在打开对象。此操作主要用于图书或文件类型的对象。例如:
销钉由对象右侧的图钉表示。“Pin FastView”图标位于视图标题栏的右侧。图标的位置和图标内的动作表示视图将被钉在右边的一侧。由于这个位置,引脚向内指向要钉住的物体。在图标的上下文和文字操作的情况下,将引脚放在左边也不能工作。
对象
对象在树视图和列表中垂直堆叠,通常数量很大。由于这种堆叠,注意对象在图标设计空间内的对齐是很重要的。使用相同元素的重复对象尤其如此。例如,用作一系列模型对象图像的基础的文件或文件夹,应该位于该系列中所有图像中的16x16像素图标空间中的同一位置。为了说明对齐对象和未对齐对象之间的区别,首先,这里有一个示例显示基本元素-在本例中是黄色文件夹-在一系列图标中不对齐。结果是一个不稳定的、更难扫描的树视图或列表:
第二,下面是一个示例,显示在整个集合中对齐的相同的基本文件夹元素。结果是一个干净、易于扫描的TreeView或List:
各国
国家是对某一物体采取直接间接行动的结果。一旦对一个对象进行了操作,该对象就会通过显示它的国家..此状态通常显示在图标的右侧。例如,调用操作“RunonServer”将显示服务器在Servers视图中运行,服务器对象右侧有绿色箭头Run操作。
停止服务器将显示服务器对象右侧的蓝方格停止操作。
调色板&主题
一套完整的图形元素,如图标、向导和用户辅助图形,需要在整个用户界面(UI)中具有一致的、类似家族的外观;相反,个人和子系列的图形需要区分。颜色选择要么带来统一,要么分散注意力。
Eclipse支持24位的颜色深度,这意味着用于创建UI图形的颜色可以来自定义的8位,或256色Eclipse风格的调色板。但是,使用Eclipse样式的调色板作为将颜色应用于图形的基础将有助于确保Eclipse环境中的可视化匹配。
要在整个UI中实现图形一致的外观,请使用公共调色板作为创建图形元素的基础。
基于Eclipse的图形倾向于使用一组常见的或占主导地位的颜色:蓝色和黄色是基色,绿色、红色、棕色、紫色和米黄色用于表示特定的对象类型或函数。这是调色板,并举例说明了它的不同颜色是如何使用的。
这个日食式调色板包含基于Eclipse的图标、向导横幅图形和用户辅助图形中使用的核心颜色和主导颜色。您可以在“.aco”, “.ai”和“.gpl”文件格式。
两种主要的颜色,蓝色和黄色,为用户界面的整体呈现带来和谐。它们本身是互补的、蓝色和黄色的,它们构成了应用重音颜色的基础。这几个例子显示蓝色和黄色作为不同图标的共同基础,以及如何使用其他重音颜色来帮助传达概念。
绿色通常用于表示正在运行或启动的某物,并作为一种常见的重音颜色。动作“Run”和“Play”是应用绿色支持概念的主要例子。
红色用于指示错误或发出警报,但红色也用于通常为红色的实际对象。
布朗使用的颜色比提到的其他颜色少,但是它通常与特定类型的对象相关联:Java“Package”、“bundle”和“EnterpriseJavaBean(EJB)”。
紫与“网站”或“站点项目”、插件“片段”和Java“接口”相关联。
米色与“模板”和“泛型”对象关联。虽然不限于这两种对象类型,但通常只为占位符或未实现的对象保留米黄色。
小贴士
1.使用现有图形的颜色
要快速生成与Eclipse样式一致的图形,而不必直接使用调色板,请从现有的基于Eclipse的图标和向导中选择颜色。
2.考虑背景
当设计一个图标时,要记住它所处的背景色。各种浏览器和操作系统允许人们根据自己的喜好设置自定义窗口背景。并不总是能够知道一个图标是否会在用户界面的不同地方使用,但是一般来说,背景要么是白色的,要么是温暖或凉爽的中间色调灰色。它是白色还是灰色取决于图标类型。模型对象, 对象叠加,和图解图标通常在白色的背景上,而工具栏, 工具栏向导, 局部工具栏,和调色板图标通常位于中间色调的灰色背景上。
为了达到最佳的颜色和边缘处理质量,测试所有已知目标操作系统主题背景的图标。在需要的地方修改图标,以便在大多数(如果不是全部)背景上都能很好地工作。下面是用不同的操作系统主题选择颜色测试View图标的示例,以及在一些已知背景上测试一组工具栏图标的示例:
如果你知道背景颜色的话,防混叠边缘是合适的。由于了解背景颜色并不总是可能的,在边缘使用介质到暗像素将有助于确保图标在大多数背景下都能很好地工作。使用较轻的边缘像素可能导致质量差,粗糙的边缘,不能很好地融合到背景。在深色背景下,圆形的形状尤其如此。下面的示例说明了在位于中等到深色背景上的圆形图标上使用较轻像素的效果:
此示例在相同的背景上显示相同的图标,但具有更深的边缘像素:
在某些特殊情况下,单个图标可能出现在多个背景上,需要为每个情况专门设计。
3.下载调色板
您可以在“.aco”,
如果使用的是gimp,则可以在“.gpl”文件格式。
若要在AdobePhotoshop中加载调色板,请打开“Swatch”调色板并选择“Load Swatch.”;然后导航到保存https:/git.eclipse.org/c/Platform/eclipse.platform.Images.git/平原/org.eclipse.映像/Tools/eclipse样式_palette.aco“Eclipse风格的_palette.aco”调色板。
若要在AdobeIlluStrator中加载调色板,请首先保存
“Eclipse风格的调色板.ai”AdobeIlluStrator>Preets>Swatch文件夹中的调色板。如果AdobeIlluStrator已经打开,则需要在添加此文件后重新启动它。重新启动IlluStrator之后,转到Windows>Swatch Library,并从列表中选择“eclipse-Style_palette.ai”调色板。
要使用GIMP中的调色板,请打开“Palettes”对话框,并从上下文菜单中选择“ImportPalette”条目。
这个“.gpl”文件格式也可以在Inkscape中使用。只需将调色板文件复制到用户的配置文件中“/~/.config/inkscape/palettes”文件夹即可。
以调色板为基础保存图像
在AdobePhotoshop中,当图像完成并准备保存到GIF时,将图像索引为“精确”颜色。此索引保留图形创建时所用的所有颜色,包括您添加的任何未包含在基本调色板中的颜色。
在GIMP中,只需将其保存为GIF即可。
相关信息
此信息取代了EclipseUI准则2.1中题为“视觉设计-图标调色板”一节(准则2.2-2.4)中提供的信息:http:/www.eclipse.org/条文/条款-UI-准则/index.html
“GIMP用户手册”可在线查阅:http://www.gimp.org/docs/
向导横幅图
风格特征
就像Eclipse风格的图标一样,向导横幅图形有一个简洁的表示方式,它使用丰富的但不是压倒一切的颜色,一个单点的透视图来清晰地显示元素,微妙的颜色梯度和柔和的照明技术,给图像一个微妙的三维形式。向导横幅图形具有比图标更大的属性,这允许应用更加复杂的渲染风格和更复杂的照明。
照明
向导横幅图形的照明可以是简单的单向源,也可以是复杂的多维源,具体取决于图形中元素的形状。不同的图标,光源往往直接来自上面,向导图形主要是从左上角照明,有可变的照明量为每一个图形,并有增加的视觉尺寸投阴影。三维外观是通过使用AdobeIlluStrator中的颜色混合和渐变来渲染高光、中音、阴影和反射光来实现的。
影影
对于直线对象,如文件夹和文件,一个额外的光源隐含在图形的左边,在图形的右边投射一个阴影。这个阴影以45度向后向右向后倾斜.在设计这些类型的图形时,通过将图形元素定位在指定图像区域的左侧,考虑阴影所需的空间。
球形物体与矩形物体有不同的阴影处理方式。阴影位于物体的正下方,形状呈椭圆形。球体接触到阴影,它的作用是将球体接地到下面的表面。对球形和平底圆形对象使用这种类型的阴影,例如“Java方法”球体和“服务”钟,它们以指定的图像区域为中心。
浮动物体与球形物体有相似的阴影,因为阴影在形状上也是椭圆形的,并且位于物体下面。然而,与球面物体的阴影不同,它不接触物体。物体浮在水面上,直接在其下方投下阴影。对于在指定图像区域内居中和浮动的元素,请使用此类型的阴影。
轮廓
单个向导图形中的每个元素都有一个键行来定义其外部边缘。实心色线定义元素的顶部和底部边缘。渐变定义边,从底部的深色到顶部的浅色。这种方法适用于大多数常见的对象。但是,有许多向导图形是用平面颜色而不是渐变定义的。无论使用渐变颜色还是平面颜色,都要选择与其定义的元素的颜色很好匹配的大纲颜色。这通常是与元素中使用的主导颜色相关的中间色调。以下示例使用已建立的轮廓处理和颜色。许多元素都有标准的轮廓颜色。若要了解有关标准颜色的更多信息,请参见下面的“颜色”,并使用共同要素设计可重用元素的资源。
下面是一个用于定义向导图形边缘的渐变示例:
下面是一个用于定义向导图形边缘的平面轮廓的示例:
构图
向导图形中元素的组合遵循对图标描述的大多数相同的实践。对于操作、对象和状态,有几个特定于向导的组合关注点需要注意:
行为
向导横幅图形中的操作通常显示在启动它们的图标中的相同位置。一个值得注意的例外是“创建”火花,它在向导横幅图像中根本没有显示。在工具栏向导中,操作是创建特定类型的对象。但是,在向导中,对象正在创建过程中,因此不再需要该操作。
对象
对象重叠时,需要清楚地分开以确保清晰的图像。向导横幅图形中使用的技术是在最前面的物体周围放光。
各国
对象的状态(一旦在向导中)更改为创建对象后的状态。最常见的例子是文件夹状态:在工具栏向导图标中关闭它,在向导横幅图形中打开它,因为它将在TreeView或List视图中打开一次。
颜色
向导图形颜色基于启动它们的图标。例如,用于创建工具栏向导图标的颜色应该与创建向导横幅对应的颜色相同。若要下载并使用颜色调色板创建向导图形,请参阅调色板&主题上面在图标下的部分。
与图标一样,向导横幅图形属于有限的颜色类别。这些颜色类别是为大多数元素建立的,为了保持一致性、意义和标识,应该为类似的元素重用这些颜色类别。下面的示例演示如何将不同类别的颜色应用于向导横幅图形。
蓝色和黄色和图标一样,是两种主要的颜色,并被用作许多用户界面图形的基础。
绿色与图标一样,通常用于表示正在运行或启动的某物,并作为一种常见的重音颜色。动作“Run”和“Play”是绿色应用于支持这一概念的主要例子。
红色与图标一样,用于指示错误或发出警报。它也用于典型的红色图像,如温度计。
布朗与图标一样,它的使用程度比其他颜色要小,但它通常与非常特定类型的对象相关联。这些对象是Java“Package”、“bundle”和“EnterpriseJavaBean(EJB)”。
紫与图标一样,它与Java“Interface”、插件“片段”和“Web站点”或“SiteProject”相关联。
米色与图标一样,它与“模板”和“泛型”对象相关联。虽然不限于这两种对象类型,但通常只为占位符或未实现的对象保留米黄色。
背景色
向导横幅的背景是最终图形的一部分。这是一个浅蓝曲线元素,不变化。但是,横幅区域的背景色因操作系统和主题的不同而不同。
在Eclipse3.3之前,所有向导横幅图形都是GIF格式,这意味着蓝色曲线元素混合到一个白色背景中,这是最终剪切图像的一部分。这在具有白色横幅背景的标准Windows和OSX主题上工作得很好,但在具有灰色横幅背景的Linux风格上却不起作用。幸运的是,Eclipse现在支持PNG图形格式,所有EclipseProject(SDK)向导横幅图形都已转换为PNG,这样图形就可以混合到它所处的任何背景颜色。
遵循为EclipseUI图形创建的可视化样式。
使用公共调色板作为创建图形元素的基础。
一致性与重用
本节鼓励现有图形元素的一致性和重用,并展示当前工具中的核心图标和向导概念。
在Eclipse风格图形元素的开发中,形成了一种可视化语言来描述用户界面中的各种概念。这些概念现在由大量的微小视觉标记来表示,许多人已经通过使用基于Eclipse的工具来了解这些标记。
为了确保一致的视觉体验,对跨工具概念的共同理解,并尽量减少混淆,我们鼓励您尽可能重用Eclipse风格的图形元素。
重用图形元素
已经在Eclipse可视化样式中创建了大量图标和向导图形,因此您可能需要的元素很有可能已经存在了。图标和向导图形的现有核心概念示例如下所示。这些元素中的每一个都带有特定的含义,因此在使用它们时应注意,以确保保持一致的含义。更广泛的公共视觉元素集合可以在共同要素一页。
核心图标概念
点击 这里或者在上面的图片上下载“core_图标_epts.psd”。
核心向导图形概念
点击 这里或者在上面的图像上下载“core_Wizard_conepts.ai”和“core_Wizard_epts.psd”文件。
重新使用核心视觉概念来维护Eclipse插件的一致表示和意义。
共同要素
本节提供了已经为基于Eclipse的工具开发的图形元素库。这种广泛的公共元素选择不仅为创建新图标和向导图形提供了基础,而且为重用现有图标和向导图形提供了基础。该库与一致性和重用部分中显示的核心概念一起使用,将使图形元素的高效创建成为可能,并促进整个用户界面的一致性。
图标元素
点击 这里要下载Eclipse项目图标的“公用_图标_元素_Eclipe-proj.psd”文件,以及用于与基于Eclipse的工具相关的图标子集的“公共_图标_元素_Eclipse-tools.psd”文件。
向导元素
点击 这里要下载用于设计向导横幅图形的基于“公用_向导_元素.ai”的矢量文件,以及用于切割它们的“公用_向导_元素.psd”光栅文件。
重用来自公共元素库或其他基于Eclipse的插件的现有图形。
各国
本节描述用户界面中启用和禁用图标的使用情况。它还提供指令和自动操作集,用于创建启用的彩色图标的禁用状态,这是生成大量图标时的有用工具。
图标国
本节描述用户界面中启用和禁用图标的使用情况。它还提供指令和自动操作集,用于创建启用的彩色图标的禁用状态,这是生成大量图标时的有用工具。
启用状态
启用图标状态是所有工具栏、工具栏向导和本地工具栏图标的颜色版本。此状态指示命令处于活动状态,可供使用。有关创建这些图标的启用颜色版本的信息可在风格与设计上面。
残疾状态
禁用图标状态是已启用的颜色工具栏、工具栏向导和本地工具栏图标的模糊版本。此状态指示命令处于非活动状态,不可使用。下图显示了“启用状态”旁边的一组禁用工具栏图标。请注意,禁用的版本并不是严格的灰度,它们保留了原始图标的颜色提示。这是通过调整饱和度和亮度来实现的,正如您将在下面的自动操作中看到的那样:
注:对于工具栏和本地工具栏图标,实现禁用状态的图形版本非常重要。算法渲染的禁用图标的质量和可读性很差,并且它们与大多数使用图形版本的其他工具不一致。
创建禁用图标状态
要创建此状态,您将在Eclipse样式的操作面板中使用“eclipse_disabledr3V6.atn”操作。点击 这里下载Eclipse样式的操作。
- 将“eclipse_disabledr3V6.atn”加载到AdobePhotoshop操作面板中。
- 使用Marquee工具可选择您计划为其创建禁用状态的工具栏和本地工具栏图标的所有启用版本。
- 接下来,按住控制键,按一次左右箭头键,然后松开控制键,然后按相反的箭头键,将图像撞回精确的初始位置。
- 单击操作面板底部的“Play”箭头,启动“创建禁用状态”操作。将创建颜色图标的副本,并对副本进行一系列更改,使其看起来是禁用的。这种情况发生得很快,所以如果要解构它,则需要在运行操作时启用对话框显示。这些切换点位于动作调色板的左侧。
- 一旦设置了禁用状态,通常需要进行一些小的调整。我们建议您查看每个图标,并调整任何看上去不对的像素,并对类似的元素给予一致的处理。
以下是操作面板中的“创建禁用状态”操作:
切换状态
切换状态用于工具栏、本地工具栏和菜单中。在工具栏和本地工具栏上,切换由一个按钮表示,该按钮有两个物理位置-向上和向下-定义状态,最常见的是“ON”和“OFF”。切换按钮上的图标,比如伴随它们的工具提示,应该从一种状态持续到下一种状态。唯一改变的是按钮的位置。例如:
有时切换不是简单的ON/OFF状态。例如,可能有两种不同的方式可以在视图中显示信息。在这种情况下,需要两个带有两个单独图标的按钮。这些按钮位于本地工具栏的另一个旁边,当一个按钮打开时,另一个按钮关闭。
打开和关闭文件夹状态
在TreeView中,理想情况下,当文件夹图标旁边的-/+小部件处于关闭状态时(如[+]),文件夹将关闭;在文件夹图标旁边的-/+小部件处于打开状态时打开,如[-]。因为Eclipse在TreeView中没有动画化打开和关闭文件夹状态,所以项目文件夹和常规文件夹在工具栏和本地工具栏上关闭,而是在向导横幅和树视图中打开。理由如下:
- 在工具栏上,关闭的文件夹表示尚未创建的文件夹。
- 在向导横幅中,打开的文件夹表示将以TreeView中模型对象的形式创建的文件夹。
- 在TreeView中,打开的文件夹表示一个现有的和活动的文件夹。
一个值得注意的例外在TreeView中打开文件夹是用来表示“组”的,就像项目资源管理器视图中的高级项目分组一样。这些都是用关闭的文件夹显示的。
注:所有创建可视化元素的说明都是基于使用AdobePhotoshop 7.0及以上版本和AdobeIlluStrator9.0及以上版本。如果使用这些工具的早期版本,说明可能不会完全按照描述的方式工作。
为工具栏和本地工具栏图标创建和实现禁用状态的图形版本。
模板
本节提供用于生成不同类型的用户界面图形的设计文件。提供了模板的描述和如何使用它们的指导,以帮助您快速启动并有效地工作。
所有设计模板 这里.
本节提供用于生成不同类型的用户界面图形的设计文件。还提供了对模板的描述和如何使用它们的指导,以帮助您快速和有效地开始工作。
维护模板的简单结构将有助于简单的文件共享,并为一个工具高效地生成大量图形。
图标设计模板
- 填充模板:填写 图标设计模板文件中包含所有已知所需图标的名称,按类型分隔,例如视图、工具栏和模型对象。根据需要,可以随意添加或删除行。每个插件都应该有自己独立的Photoshop文档(PSD)。如果您可以访问旧图标文件,这些文件可以放在原..(原文)列作为参考或起点。
- 设计图标:在开始设计Eclipse样式的图标或向导横幅图形之前,首先检查概念或视觉元素是否已经涵盖。见一致性与重用和共同要素各部分。
创建您的想法的初始传递,然后将它们放在模板中。任何给定图标最多有五个不同的概念可以放在所提供的版本单元格中,即列中。A, B, C, D和E.
当您对结果满意时,将您认为是最强大的候选人的图标标记在优先(黑色)层,并以扁平的GIF图像的形式向请求者发送反馈信息。
- 修改原有概念*很可能需要对第一关进行修订。如果有空间,修改后的图标可以放在第一遍单元格旁边的版本单元格中。如果单元格用完或需要删除以前的任何图标概念,但不希望永远丢失它们,请保存设计文件的新版本,并通过删除不太可能使用的图标为新想法腾出空间。
一旦图标被批准,将选定的图像移动到剪切列。为了确保它们在分配的屏幕空间内被正确地定位,打开PSD中的切割层(粉红色)。有关不同类型图标的大小和位置的指南,请参阅图标大小和放置部分。
- 创建禁用版本*见各国节,以获取有关为工具栏和本地工具栏图标创建禁用状态的说明。
- 切割图标*见切割作用节,以获得关于切割最终图像以供交付的说明。
- 标记修改后的图标:很可能,即使在图标被切割并交付给开发人员之后,仍然需要进一步的修改,或者可能需要全新的图标。为了跟踪哪些图标及其实例需要剪切或重新剪切,可以在每个图标周围放置一个红色框,使用切割或重切(红色)图层。
向导设计模板
- 填充基于向量的模板*填写基于向量的模板矢量向导设计模板具有所需向导横幅图形的名称。与图标模板一样,您可以添加或删除行以适应您将要创建的图形的数量。如果您可以访问相关工具栏向导图标文件,请将其作为主要起点添加到该文件中。如果您可以访问旧向导图形,则可以将这些图形放在原..(原文)列作为次要起点。
- 设计向导横幅图形:在开始设计Eclipse风格的向导横幅图形之前,首先检查启动向导的工具栏图标是否已经创建。这将为您的设计提供基础。此外,请检查是否已经在AdobeIlluStrator中创建了向导图形中的任何可视元素。见一致性与重用和共同要素现有元素的章节。
- 将基于矢量的图像传送到PSD模板:一旦图形被批准并准备被切割,你将需要将它们从AI模板转移到PSD模板。在AI模板中,关闭所有层,除新向导图形.
选择文件>为Web保存从菜单上。传输的这一部分所需的设置如下所示: - 填充PSD模板:填写Eclipse_Wizard_Design_template.psd模板与图层设置为每个向导横幅图形。每个层集都应该有一个用于PNG格式的向导映像的单层。根据需要添加图层集。
- 切割向导横幅图形*见切割作用节,以获取有关切割向导横幅图形的说明。
使用用于创建和维护UI图形的设计模板,可以方便地共享文件和高效地生成大量图形。
规格
本节详细介绍设计和准备Eclipse风格图形以供实现所需的技术信息。
文件格式
本节列出并描述用于不同图形类型的图形文件格式。
GIF-图形交换格式
GIF图像是基于光栅的,可以具有透明度,并且倾向于使用少量的内存和磁盘空间。每个GIF文件包含多达256种颜色的调色板。这种格式最适合使用平面颜色或颜色数量有限的图像。这不是一种适合摄影图像的格式。
GIF文件使用无损压缩,但这可能会产生误导。GIF图像不一定与原始图像相同。由于GIF图像最多可包含256种颜色,因此必须通过量化(可选地抖动)将包含256种以上颜色的图像还原为256种颜色,以逼近原始颜色。没有必要量化或抖动16x16像素的gif图标,因为这些图标仅包含256个像素。然而,GIF文件调色板的限制是在创建更大图像时需要注意的。
PNG-便携式网络图形
PNG是一种位映射图像格式,采用无损数据压缩。PNG是为了改进和取代GIF格式而创建的,它是一种不需要专利许可的图像文件格式。png发音为“ping”(/pɪŋ/in ipa),但可以说为“P-N-G”(如http://en.wikipedia.org/wiki/PNG)。PNG格式最重要的价值之一是它对ALPHA或透明性的支持,允许这些图形所处的背景溢出。
PNG用于基于Eclipse的工具中的下列图形类型:
- 产品
- 视图(包括透视图和快速视图)
- 工具栏(包括工具栏向导)
- 局部工具栏
- 模型对象
- 对象覆盖(包括底层)
- 巫师旗
- 表
- 调色板
- 图表(SVG下的例外情况)
- 进度指标
- 杂项(可能有例外)
SVG-可伸缩矢量图形格式
SVG是一种用XML描述二维和动画矢量图形的语言.它的一个显著特点是它的可伸缩性:图像的一个大小将很好地扩展到无限大小。虽然在用户界面图形中使用SVG有很大的潜力,特别是在调色板和图表上,但它目前在工具中的使用有限。
SVG用于基于Eclipse的工具中的下列图形类型:
- 图表(仅限操作条)
在为SVG输出设计图形时,请在每个图像中使用最少数量的元素,特别是对于16x16个小图标。这将有助于确保图像清晰,更少的元素将使文件大小保持较小。
bmp位映射格式
BMP是Microsoft Windows光栅图像格式的标准格式。
BMP用于基于Eclipse的工具中的下列图形类型:
- 指针
- 光标
ICO-图标格式
ICO格式在Microsoft Windows操作系统上使用,产品安装和启动图标(包括桌面、TreeView和菜单图标)都需要ICO格式。
ICO用于基于Eclipse的工具中的下列类型的图形:
- 产品图标(Windows)
ICNS-Mac图标格式
- 产品图标(Mac)
XPM-X像素映射格式
XPM是一种支持透明颜色的ASCII图像格式。此映像格式用于Linux,用于产品安装和启动图标,包括桌面、TreeView和菜单图标。
XPM用于基于Eclipse的工具中的以下类型的图形:
- 产品图标(Linux)
资源
- 麦克
- Windows和Mac
使用为图形类型指定的文件格式。
图形类型
本节描述在基于Eclipse的工具中使用的不同类型的图形,以及它们位于用户界面中的位置。
Eclipse样式的图形已经被分类为不同的类型,以便每个类型都可以针对其特定位置进行优化。大多数的界面图形都是16x16像素大小,虽然有一些图形类型,有额外的或非常规的大小,特别适合他们的使用。关于图像大小和位置的详细信息请参见图标大小及放置..下面介绍下列图形类型:
产品
“产品”图标(也称为“应用程序”图标)表示产品的品牌,总是位于窗口标题栏的最左边,位于透视图、文档和产品名称之前。这些图标还用于从菜单或桌面或TreeView快捷方式启动产品,并作为“关于”屏幕中的产品标识符启动。因为这些图标是为了在特定的地方使用,所以它们不适合在工具栏上或一般的用户界面上使用。
格式:ICO(Windows)、ICNS(Mac)、XPM(Linux)
透视
透视图图标代表不同的工作环境,称为“透视”。每个透视图都是一组视图和内容编辑器,其布局有利于与该环境关联的任务。透视图图标允许用户在不同打开的透视图之间快速切换。默认情况下,这些图标位于主工具栏右侧用户界面的右上角,并具有水平方向。它们也可以停靠在工具栏下方的左上角,保持水平方向,也可以停靠在导航器视图的左侧,具有垂直方向。
类型:视点
文件夹名称:视图16
尺寸:16x16像素
格式:巴新
快速视图
快速视图图标允许用户快速显示作为快速视图创建的不同视图。默认情况下,这些图标位于用户界面的左下角,并且具有水平方向。它们还可以停靠在导航器视图的左边或用户界面的最右边的垂直方向上。
类型:视点
文件夹名称:视图16
尺寸:16x16像素
格式:巴新
工具栏
工具栏图标位于工作台顶部的主工具栏上。它们表示操作,并将在全局或编辑器中调用命令。
类型:工具栏
文件夹名称:etool16和dtool16
尺寸:16x16像素
格式:巴新
工具栏向导
工具栏向导图标可以在工作台顶部的主工具栏上以及新建向导对话框列表中找到。选择其中一个图标将启动向导。最常见的工具栏向导类型是创建“新”对象或资源。它们很容易被图标右上角的金光所识别。其他常见类型的工具栏向导用于生成文件。这些图标是通过磁盘前的两个堆叠文件来区分的。
类型:工具栏
文件夹名称:etool16和dtool16
尺寸:16x16像素
格式:巴新
视点
视图图标位于工作台中每个视图的标题栏左侧。这些图标指示每个视图的函数或视图包含的对象类型。
类型:视点
文件夹名称:视图16
尺寸:16x16像素
格式:巴新
局部工具栏
在工作台中每个视图的标题栏上的视图图标右侧都可以找到本地工具栏图标。它们表示操作,并仅在该视图中调用对象上的命令。本地工具栏类型图标也用于所有菜单,包括主菜单、下拉菜单和上下文菜单。
类型:局部工具栏
文件夹名称:elcl 16和dlcl 16
尺寸:16x16像素
格式:巴新
模型对象
在工作台中的树视图、列表视图和编辑器选项卡中可以找到模型对象图标。它们表示对象,有时表示状态,但不表示动作。模型对象图标的示例是项目文件夹和文件类型。注意,在导航器视图中选择的对象,例如Java透视图中的PackageExplorer,与Editor视图中打开的文件有一对一的关系,也就是说,导航器视图和Editor选项卡都使用相同的图标。相反,在大纲视图中,选定的模型对象不在编辑器中显示,但所选对象本身显示在编辑器中的大纲视图和源代码中。
TreeView中的模型对象与编辑器选项卡中的图标之间的一对一关系
大纲视图中的模型对象未显示在编辑器中,但所选内容显示在两个视图中
类型:模型对象
文件夹名称:obj 16
尺寸:16x16像素
格式:巴新
对象覆盖(和底层)
对象叠加图标是在树视图或列表视图中使用的装饰元素。它们作为对象类型、状态、属性、过渡状态、多重性或某种更改的标志附加到模型对象图标上。衬垫是一种特殊类型的衬垫,在模型对象之下。就像覆盖一样,它们意味着对它们附加的模型对象进行了某种更改。
有六种主要的覆盖类型:
1.项目性质或类型
这些覆盖显示在Navigator和包视图中。它们完全叠加在16x16图标空间右上角的模型对象上。
只有少数项目自然叠加图标已经创建,以防止拥挤在界面上。项目性质覆盖快速标识可以包含在Navigator和镜像视图中的各种类型的项目。
白色键盘边框被应用在图像周围,以提高可读性。
例子:
类型:对象叠加
文件夹名称:ovr 16
尺寸:7x8像素
格式:巴新
2.辅助或地位
这些覆盖将显示在所有树视图中。这种类型的叠加完全叠加在16x16图标空间左下角的模型对象上。
辅助覆盖快速识别对象的状态。辅助覆盖的例子有警告、错误、失败和成功。
例子:
类型:对象叠加
文件夹名称:ovr 16
尺寸:7x8像素
格式:巴新
3.Java或属性
这些覆盖显示在大纲、层次结构和包视图中。Java覆盖被附加到模型对象图标,因此它们扩展了16x16图标空间。它们被放置在模型对象图标的右侧,将16x16模型对象空间重叠3个像素。最多可在模型对象上放置3个java覆盖。
重叠出现的顺序取决于已分配的顺序。在设计Java覆盖时,重要的是确保基本对象图标能够在不影响可读性的情况下支持覆盖的添加。注意,有两个Java覆盖总是显示在模型对象的右下角:同步覆盖同步(方法)和运行覆盖运行(Class)。
Java覆盖标识对象的属性。示例包括静态、最终、抽象和同步。
注意:在层次结构视图和大纲视图中,Java覆盖被追加到模型对象的右侧,如下面的第一个示例所示,但是在包视图中,它们被堆叠在模型对象上,如第二个示例所示。
例子:
类型:对象叠加
文件夹名称:ovr 16
尺寸:7x8像素
格式:巴新
4.版本控制或过渡态
这些覆盖显示在CVS中的Navigator视图和合并编辑器的结构视图中。当它们显示在Navigator视图中时,覆盖将完全叠加在16x16图标空间右侧的模型对象上。
当版本控制覆盖显示在CVS中的合并编辑器的结构视图中时,它们被附加到模型对象中,因此它们扩展了16x16空间。它们被放置在模型对象图标的右侧,将16x16模型对象空间重叠3个像素。在CVS中,对象的右侧最多有2层。
版本控制覆盖标识对象的转换状态。这些覆盖的示例有传入、传出、冲突、添加、删除和更改。
例子:
类型:对象叠加
文件夹名称:ovr 16
尺寸:通常是7x8像素,但有些要大一些。
格式:巴新
5.多重性
这些覆盖显示在EclipseModelingFramework(EMF)中生成器模型文件的TreeView中。这些表示关系,例如模型中的一对一或多个关系。这种类型的覆盖跨越模型对象图标的宽度,位于其底部,因此它确实掩盖了太多的底层对象。
例子:
类型:对象叠加
文件夹名称:ovr 16
尺寸:16x6像素图像大小,但最终裁剪大小为16x16像素
格式:巴新
6.衬垫
它们显示在某些工具的TreeView中的模型对象下。它们表示对象的某种更改,例如版本控制或生成的代码。底座通常是方形的,每个角落有一个2像素的半径,而且颜色很轻,所以当在树视图中多次看到时,它们是干净的,不会被夸大。
例子:
类型:对象叠加
文件夹名称:ovr 16
尺寸:16x16像素
格式:巴新
表
表图标是模型对象图标的一种类型,它专门用于表中作为标签、状态指示或提供表行中伴随的项的附加信息。虽然这些图标是模型对象的一种类型,但它们的创建比普通的模型对象要小,以便在不失真或拥挤的情况下适应表行。
在上下文中显示的表图标
类型:表
文件夹名称:obj 16
尺寸:它们是在16x16像素空间中设计的,但实际图像大小不大于15x14像素。
格式:巴新
调色板
调色板图标位于调色板上,最常见的是伴随图表或一些可编辑的画布空间。在此上下文中,调色板图标要么是可以添加到画布中的对象,要么是用于操作对象或在画布上绘制线条或形状的工具。
调色板还用于托管可重用的元素,例如片段视图,其中包含用于重用的代码片段。在此上下文中,双击代码段将直接将代码段添加到源代码中,或者调用中间的对话框,该对话框在将代码片段插入到编辑器中的源代码之前提供了有关该代码段的用户选择。一些代码片段也可以直接拖放到源代码中。
调色板图标显示在上下文中
类型:调色板
文件夹名称:帕尔
尺寸:大小取决于调色板的上下文。默认大小为16×16像素,但用户可以将其更改为“使用大图标”,即大小为24×24像素。在调色板上使用32x32像素图标的情况也很少见。
格式:巴新
图解
图表图标有两个子类型:Canvas和ActionBar。画布图标用于图表或画布区域。这些图标通常表示对象类型,但也可用于在编辑器的预览模式中标记内容类型或显示格式。画布图标的大小取决于其用途和上下文。动作条图标位于图表中的一种“迷你调色板”上。这个迷你调色板是接触敏感的,只有当光标悬停在图表中或选择某种类型的对象时才会显示。例如,UML图中的“字段”和“类型”。
以上下文显示的图表图标
类型:图解
文件夹名称:DGM
尺寸:画布图标可以是16x16,24x24,或32x32像素的大小。在一些Web工具图中也有15x15、12x12和10x10像素图标的实例。在站点导航图中使用15x15和10x10图标,在编辑器预览模式中使用12x12图标来显示内容类型和格式。
格式:PNG用于所有图表图形,但ActionBar图标除外,它们都是SVG。
进度指标
进度指示器图标位于用户界面右下角的实际进度指示器的右边,显示一个过程的线性进度。如下图所示,图标也是打开进度视图的按钮。
进度指示符图标显示在上下文中
类型:进度指标
文件夹名称:进展
尺寸:16x16像素
格式:巴新
指针和光标掩码
指针图标是游标,每个图标都需要一个光标掩码。光标掩码是指针的倒置图像或完全掩码。
指针和光标掩码示例
类型:指针和光标掩码
文件夹名称:点
尺寸:32x32像素
格式:BMP
巫师旗
向导横幅图形位于向导横幅的右侧。它们直观地表示向导的结果,例如一个新的Java类。
新Java类向导图形显示在上下文中
类型:巫师旗
文件夹名称:威兹班
尺寸:75x66像素
格式:巴新
在用户界面中设计的位置使用适当的图形类型。
图标大小及放置
本节显示每个不同类型图标的最终裁剪大小,以及布局和绘图区域在分配的空间内的大小。
大多数Eclipse样式的图标都是在16x16像素的区域内设计的。这是图像的最终裁剪大小。在该区域内,为图像本身保留15x15像素空间,留下一条垂直和水平的空像素线,以便在用户界面中对图像进行适当的对齐。在下面的大小和位置图像中,浅蓝表示图像区域,亮粉色表示空像素区域。
如果图像的高度和宽度是小于16x16像素的偶数像素数,则在16x16空间内对图像进行居中是经验法则。例如,14x14像素图像将在所有四面上都有一行空像素。
常见的16x16图像大小的例外情况也详细说明如下。所有尺寸都以高度前的宽度表示。
产品
产品图标占用所有五个大小的全部空间:16x16、24x24、32x32、64x64和72x72像素。这显示了16x16产品图标是如何填充整个空间的:
分配空间中的图像大小 样品图像就位
透视与快速视图
最大图像大小为16x16像素,但建议使用15x15。如果图像为15x15或更小,则空像素必须位于右侧和底部,如下所示。
分配空间中的图像大小
分配空间中的图像大小 样品图像就位
视点
最大图像大小为16x16像素,但建议使用15x15。如果图像为15x15或更小,则空像素必须位于左边和底部,如下所示。
分配空间中的图像大小 样品图像就位
工具栏、工具栏向导和本地工具栏
最大图像大小为16x16像素,但建议使用15x15。如果图像为15x15或更小,则空像素必须位于左侧和顶部,如下所示。
分配空间中的图像大小 样品图像就位
模型对象
最大图像大小为16x15像素,但建议使用15x15。模型对象图标不得大于15像素。空像素必须位于左边和底部,如下所示。
分配空间中的图像大小 样品图像就位
对象覆盖(和底层)
大多数对象叠加图标的最大图像大小为7×8像素,始终居中。这个尺寸有一些例外,其中两个在这里包括:“多重性”覆盖层和“底面”。多重叠加将模型对象的宽度最大扩展到16个像素宽和6个像素高。底座的最大尺寸为15×16像素,但通常是正方形的15×15像素,所以当在TreeView中多次看到时,它们是一致的。
重叠图标应该在图像周围有一个外部白色的键线,以清楚地将它们与它们所放置的模型对象图标分开。如果没有足够的空间来在重叠图像周围添加白色键线,那么只在将模型对象重叠的一侧添加白色像素。这可以通过找出它的覆盖类型来确定。有关不同类型的覆盖的示例和描述,请参见图形类型分段。有关如何在模型对象上定位每个覆盖的信息,请参阅UI中关于定位的小节。
最大图像大小为7x8像素的标准对象叠加:
分配空间中的图像大小
标准项目自然-类型-物体覆盖到位:
分配空间中的图像大小 样品图像就位 文件:spec size ovr-proj.gif
标准辅助装置的例子-地位-物体覆盖到位:
分配空间中的图像大小 样品图像就位
标准Java的例子-属性-物体覆盖到位:
分配空间中的图像大小 样品图像就位 文件:spec size ovr-javasamp.gif
标准版本控制示例-过渡-状态-对象覆盖:
分配空间中的图像大小 样品图像就位
两个堆叠版本控制对象覆盖的示例:
分配空间中的图像大小 样品图像就位
多重性对象覆盖,最大图像大小为16x6像素:
分配空间中的图像大小 样品图像就位 文件:规格大小ovr-mult.gif
衬垫最大图像大小为16x15像素,但建议使用15x15。空像素必须位于左边和底部,如下所示:
分配空间中的图像大小 样品图像就位
表
最大图像大小为15x14像素。表图标不得大于14个像素。空像素必须位于顶部、底部和左侧,如下所示。
分配空间中的图像大小 样品图像就位
调色板
标准小型(16x16)调色板图标:最大图像大小为16x15像素,但建议使用15x15。调色板图标不能超过15像素。空像素必须位于左边和底部,如下所示。
分配空间中的图像大小 样品图像就位
标准大型(24x24)调色板图标:最大图像大小为24x23像素,但建议为23x23。调色板图标不能超过23像素。空像素必须位于左边和底部,如下所示。
分配空间中的图像大小 样品图像就位
大型(32x32)调色板图标:最大图像大小为30×30像素,以图像为中心。空像素位于图像的所有四面。
分配空间中的图像大小 样品图像就位
图解
小型(10×10)画布图标:最大图像大小为10×10像素。图像按需要填充空间。
分配空间中的图像大小 样品图像就位
小型(12x12)画布图标:最大图像大小为12×12像素。图像按需要填充空间。
分配空间中的图像大小 样品图像就位 文件:规范大小dgm12.gif
小型(16x16)画布图标:最大图像大小为16x15像素,但建议使用15x15。空像素必须位于左边和底部,如下所示。
分配空间中的图像大小 样品图像就位
大型(24×24)画布图标:最大图像大小为24x23像素,但建议为23x23。空像素必须位于左边和底部,如下所示。
分配空间中的图像大小 样品图像就位
大型(32x32)画布图标:最大图像大小为32x32像素,但推荐以图像为中心的30x30。空像素位于图像的所有四面。
分配空间中的图像大小 样品图像就位
进度指标
最大图像大小为16x15像素,但建议使用15x15。进度指示器图标的高度不得超过15像素。空像素必须位于左边和底部,如下所示。
分配空间中的图像大小 样品图像就位
指针和光标掩码
指针和光标掩码的最终大小是32×32像素。指针的实际图像大小通常小于20×20像素,通常为16×16像素,但也可以填充整个32x32空间。指针和光标掩码图像中没有空像素。两者都充满了黑色和白色,面具是相反的指针或掩蔽它完全。
指针和光标掩码图像大小显示在32x32像素空间中:
分配空间中的图像大小 样品图像就位
巫师旗
所有向导横幅图形的设计都适合在向导横幅右侧75×66像素的指定屏幕空间内。
每个图形的实际大小将根据所涉及的元素而变化,但通常大约为67x50像素。
在横幅空间分配中,向导图形的放置位置没有明确的规则。一般情况下,图形是垂直居中,左水平偏离中心.
遵循每种图形的特定尺寸规格。
切割图形与特定的位置显示,以确保在用户界面中对齐。
实施
本节提供自动裁剪操作,以及文件和文件夹命名和结构的约定。
切割作用
本节描述用于切割图标、图标覆盖和向导横幅图形的宏,以便为实现做好准备。
在这里描述的创建图标的过程中,我们使用“剪切”一词来表示为每个图标生成单个.gif文件的操作。这个术语指的是,图标是在一个原始的.psd文件中创建的,该文件包含给定产品的所有图标(图标_template.psd文件),然后将各个图标从文件中“剪切”到单个文件中。
为了提高一次切割数百个图标的速度和效率,已经创建了一系列切割操作,在AdobePhotoshop中运行时,这些操作将在几秒钟内自动引导您完成每个图标的切割过程。您所需要做的就是启动操作,并在出现提示时,将每个图标命名并保存到其正确的文件夹中。
若要使用这些操作,请单击此处下载日食切割R3V6.文件,然后将其加载到操作调色板中。
切割16x16像素图标
- 确保在PSD文件中,粉色裁剪层被打开。
- 播放dupe和flatten_main文件操作来创建一个新的平面文件。(见下文切割行动详细视图中的A)
- 使用固定大小为16x16像素的Marquee工具,选择要剪切的第一个图标。
- 播放Eclipse图标剪切_16s动作。该动作将自动在切割过程中移动。(见下文B-F)
- 当出现提示时,为图标提供一个小写名称,然后单击Save将其保存为您指定的文件夹中的Compuserve.gif。(见G)
- 当您单击OK以完成将图像保存为普通或交错的.gif文件时,该操作会自动将所选框移动到下一个图标,并再次开始处理。(见H)
要确保最后一步正常工作,请确保每个图标的粉红色裁剪方格与图标_Design_template.psd中指定的位置完全相同。
裁剪动作细观
切割7x8像素对象重叠图标
按照上面列出的步骤进行操作,除非使用Eclipse图标cuts_overays操作在7x8像素处剪切图标。
切割向导图形
- 确保向导PSD有一个名为“向导切割路径”的路径路径标签。
- 播放dupe和flatten_main文件操作来创建一个新的平面文件。
- 确保被称为“软曲线”的层是可见的。
- 确保每个向导图形都在一个图层集中。
- 选择要切割的顶层集,并确保所有其他图层集不可见。
- 播放向导欺骗和裁剪操作,以创建一个新文件,该文件被裁剪为75x66像素。(见下文A-C)
- 播放巫师切割动作。该动作然后将自动移动整个切割过程,从上到下,在层调色板。(见下文D)
- 当出现提示时,为图标提供一个小写名称,然后单击Save将其保存为您指定的文件夹中的Compuserve.gif。(见E)
- 单击OK以完成将图像保存为普通文件或交错.gif文件时,该操作将自动删除当前层集,并移动到下一层,并再次开始处理。(见F)
要确保最后一步正常工作,请确保每个向导图形都包含在图层集文件夹中。
裁剪动作细观
利用所提供的切割动作来提高切割的速度和效率。
命名公约
本节描述Eclipse文件命名标准和使用后缀的指南,这些后缀将帮助其他人快速识别图形类型或函数。
我们建议您使用开发联系人在开始设计工作之前为每个图形建立文件名,使用以下准则:
缩略语
文件名应该是完整图标名称的缩写,例如,CreateDTD向导图标的名称可以缩写为“CrtDTD”。
案例
所有文件名都必须用小写,例如,CrtDTD变成“crtdtd”。
字符长度
只要有可能,文件名应该是10个字符或更少。下划线算作字符。
后缀
文件名应该以后缀结尾,该后缀描述其在用户界面中的位置或功能,例如,“crtdtd_wiz.gif”。有关后缀建议,请参见下表。
多尺寸
在一个文件夹中有多个大小的图标,例如多个调色板图标大小,是通过将图标大小添加到后缀来区分的。例如,file_pal.gif、file_pal24.gif、file_pal32.gif,其中*_PAL表示默认的16x16像素大小,*_pal24和*_pal32表示相同图标的较大大小。
关于文件命名后缀的建议
缩短文件名,而不是使用完整的图标名,例如,NewInterface变成“newint”。
在文件名中使用小写字符,例如,DTD变为“DTD”。
如果可能的话,在文件名中使用10个字符或更少的字符(下划线算作字符)。
使用文件名后缀来描述其在工具中的位置或功能,例如newint_wiz,或者在需要多个大小的图标情况下使用它的大小。
保留提供的原始文件名。
文件夹结构
本节提供了用于在插件中存储和实现图形的文件夹名称和结构的Eclipse标准。
一旦您的图形准备好实现,它们应该被剪切并保存到下面描述的文件夹命名和结构系统中。该系统基于Eclipse插件文件夹命名和结构.当您使用这个系统压缩您的文件以进行传递时,它们可以很容易地解压缩到预期的插件中。
1.第一级文件夹的名称取决于插件所在的位置:
- Eclipse项目组件使用org.eclipse.Componentname.ui插件名称的约定。
- Eclipse工具组件使用org.eclipse.subprojectname.Componentname.ui插件名称的约定。
- IBM组件使用com.ibm.etools.Componentname.ui插件名称的约定。
将插件的名称(例如“调试器”)替换为“Componentname”,将子项目的名称(如“wst”)替换为“subprojectname”。
若要阅读有关Eclipse中插件名称的更多信息,请参见Eclipse平台命名约定帮助页。
2.每个包含用户界面图形的插件都需要一个图标文件夹。
3.在图标文件夹中,有单独的文件夹,其名称指示内部图标的状态、类型和在某些情况下的大小,如下所述:
- 工具栏和本地工具栏文件夹名称的第一个字母指示图标状态。用字母d残疾人士,或e已启用。
- 接下来的3到8个字母表示图标类型:图表(DGM)、本地工具栏(LCL)、工具栏(工具)、模型对象(Obj)、对象覆盖(Ovr)、调色板(PAL)、指针(Point)、产品(PROD)、进度指示器(进度)、视图和透视图(视图)和向导横幅(Wizban)。
- 文件夹名称的最后两位数用于指示内部图标的大小。但是,只有少数文件夹在名称中显示大小。这些名称将保持不变,但所有文件夹类型现在可能包含多个大小的图像,例如16x16和24x24像素版本的调色板图标。这个命名公约分段为一个文件夹中多个大小的文件命名提供了地址。
下图显示插件的完整文件夹结构:
注:
1.对于一些遗留插件,在图标文件夹中,有一个名为满的,然后包含这些图标类型文件夹。如果需要这个额外的文件夹,请从您的开发联系人中查找。
2.我们建议您不要使用DND文件夹名称,因为它被开发用于拖放元素。这些是用于在应用程序中移动视图的光标掩码图标。
遵循预定义的目录结构和命名约定。
保留提供的原始目录名。
通过将所有图形保存在一个或几个第一级用户界面目录中,尽量减少插件中的图形复制。
使用所提供的活动、启用和禁用状态。
组件开发
命令
用户为执行某些特定功能而调用的命令可能以菜单中的项或工具栏中的项的形式出现。在反映这一点时,它具有菜单或工具项标签、工具提示和图像的属性。
作为插件开发人员,您可以为窗口菜单栏和工具栏提供命令,也可以为单独的视图和编辑器提供命令。对窗口的贡献使用操作集执行,操作集是一组面向任务的命令,用户可以显示或隐藏这些命令。对视图或编辑器的贡献使用单个命令执行。
以下是主要贡献领域的说明。
在本节中,我们将研究一般命令指南。有关窗口、视图或编辑器特定指南的信息,请参阅窗, 意见,和编辑.
容貌
每个命令必须有一个标签、工具提示和图像。如果命令出现在工具栏中,则命令图像将显示在所有平台上。如果命令出现在菜单中,图像将只显示在某些平台上,如Windows 2000。标签和工具提示应该使用标题样式大写化,如通用UI指南中定义的那样。
每个命令必须提供一个完整的彩色图像。如果鼠标放在命令上方,则将显示此图像。它还将用于生成正常命令使用中出现的已启用、禁用和按下的图像。在代码中提供的命令还可以为启用、禁用和滚转定义显式图像。此选项可用于对图像外观进行更大的控制。
下面的快照显示工具栏中标题大写的有效使用。
每个命令都必须有标签、工具提示和全彩色图像。标签和工具提示必须使用标题样式大写。
命令的工具提示应该描述发生的行为如果调用命令,则与当前状态无关。对于按钮,标签应该说明用户按钮的结果。对于切换按钮,它应该描述当项目被切换时的效果,标签不应该根据按钮的状态而改变。在EclipseVersion2.1中,建议命令的工具提示使用与命令标签相同的文本。例如,在下面的快照中,使用一个工具提示文本显示“显示类型层次结构”按钮的行为。
命令工具提示应该描述命令的结果,而不是命令的当前状态。使用与命令标签相同的文本。
为了保持一致性,任何与工作台中现有命令具有相似行为的命令都应该采用相同的术语。
在创建资源时,应该在命令或向导中使用术语“New”。例如,“新文件”、“新项目”和“新Java类”。删除现有资源时应使用“Delete”一词。
当在资源中创建对象(例如,XML文件中的标记;Java类中的方法或字段)时,应该使用“Add”一词;用户正在向现有资源中添加某些内容。
采用工作台的标签术语,用于新建、删除和添加命令。
使能
只有当命令能够成功完成时,才应该启用该命令。如果不是这样,则应禁用该命令。
只有当命令能够成功完成时,才应该启用该命令。
启用命令应该快速计算。如果计算命令的启用成本太高,则应该乐观地启用该命令。如果调用了该命令,它应该计算实际启用功能,并在无法使用的情况下向用户显示一个对话框。
命令启用应该是快速的。如果命令启用不能快速,则乐观地启用命令,并在调用命令时显示适当的消息,但不能完成。
对话
对话框用于与用户进行模态交互。它可以用来收集信息,或者提供反馈。
初始化
当对话框第一次打开时,应该将初始焦点给予第一个控件,其中需要用户提供信息。此控件可以由控件的制表符顺序确定,直到在需要信息的地方找到控件为止。如果对话框提供了简单的反馈,或者需要用户的简单确认,那么也可以将初始焦点分配给默认按钮。
打开对话框时,将初始焦点设置为容器中的第一个输入控件。如果没有输入控件,则应将初始焦点分配给默认按钮。
多项选择
Sslush Bucket小部件(也称为TwinBox设计)应该从左向右流动,源对象位于左侧,所选文件位于右侧。
按此顺序,slush桶还应该有以下控制按钮,以便从源中移动对象-所选的桶。
扣子 | 功能 |
加-> | 将左边选择的任何内容添加到右侧 |
<- Remove | 从右边移除选定的项目 |
添加所有-> | 添加所有(不管它们是否被选中) |
<- Remove All | 移除所有 |
Sslush Bucket小部件(或TwinBox)应该从左向右流动,源对象位于左侧。它应该有以下顺序的控制按钮:‘add->,’<-Remove‘,’Add All->,‘<-Remove All’。
奇才
在Eclipse中,向导通常用于创建新资源、资源导入或资源导出。它还可以用于执行任何涉及一系列步骤的任务。如果任务中有许多步骤,并且必须按特定顺序完成,则应使用向导。
对任何包含多个步骤的任务使用向导,这些步骤必须按特定顺序完成。
容貌
在每个向导的顶部是一个标题,包含一个横幅图形和一个文本区域。横幅图形包含一个表示向导任务的图像,应该用一个从白色到蓝色的灰度调色板创建,以便与Eclipse中的其他横幅保持一致。这些颜色还可避免分散用户对向导重要字段的注意力。文本区域用于提示用户获取缺少的信息,并在信息无效时显示错误消息。标题的存在,带有横幅图形和文本区域,创造了一种更加优雅的感觉,并对向导的质量有了更大的感知。
在每个向导的底部,应该出现一个Back、Next、Finish和Cancel按钮。
每个向导必须包含一个带有横幅图形的标题和一个用于用户反馈的文本区域。它还必须包含页脚中的Back、Next、Finish和Cancel按钮。
初始化
当向导第一次打开时,焦点应该放在需要信息的第一个字段中(参见准则3.1)。报头应用于提示用户输入所需的第一条信息。
显示错误消息是不合适的。此时,用户还没有做任何事情。
使用提示(而不是错误消息)启动向导。
向导的初始状态应该从打开它的上下文中导出。例如,在NewFile向导中,将检查当前工作台选择。如果指向有效的项目或文件夹,向导将使用父项目或文件夹名称预先填充父字段,并将光标焦点放在需要用户输入的下一个字段中。如果用户的选择没有指向有效的父项目或文件夹,向导将不会预先填充文件夹名。相反,它将字段保留为空白,并将光标焦点放在字段中。当用户的选择在文件上时,向导也可以使用文件的父文件夹或项目进行这些计算。
使用当前工作台状态为向导中的字段设置种子。
数据验证
向导中的信息验证应按选项卡顺序进行。如果第一个必需字段为空,则应在文本区域中显示一个信息提示,指示用户填写该字段。如果第一个必需字段出现错误,则应在文本区域中显示错误消息。如果第一个必需字段有效,请检查下一个字段,依此类推。文本区域不应用于一次显示多个提示或错误。
如果对话框信息不存在或无效,则应禁用“下一个”或“完成”按钮,直到情况得到解决。当出现解析,并且提供了所有信息时,可能会启用“下一个按钮”或“完成按钮”。
只有当用户输入无效时,才应显示错误消息。
按选项卡顺序验证向导数据。信息缺失时显示提示,信息无效时显示错误。
只有当对话框中的所有所需信息都存在且有效时,才启用Next/Finish按钮。
向导中的错误消息应该针对最终用户,而不是开发人员。考虑到这一点,永远不要将消息ID显示为向导标题区域中错误文本的一部分。
从向导文本中删除所有编程消息ID。
浏览按钮
编辑字段和“浏览.”在向导中引用现有对象时,应使用按钮组合。编辑字段用于直接输入现有对象,而Browse按钮用于从所有可能的选项列表中浏览和选择对象。
例如,在NewJava类向导中,有一个“Browse.”按钮放置在“超类”编辑字段旁边。如果按下“浏览”按钮,将出现“浏览”对话框,用户可以选择超类。每当在新对象和旧对象之间建立链接时,都应该使用此模式。“浏览.”按钮应位于编辑字段的右侧。
在向导中引用现有对象时,请使用Browse Button。
在“浏览”对话框中,不应出现无效的选项。当对话框关闭,焦点返回到父控件时,刷新对话框中控件的启用状态。特别是,刷新Next、Finish和OK按钮的启用。
以下快照显示了有效和无效筛选的示例。
向导完成
NewResourceandImportWizards通常在工作台中创建新的文件、文件夹和项目。如果创建了单个文件,则向导应在活动页的编辑器中打开该文件。如果创建了多个文件,则打开最重要的文件或中央文件。这使得修改和保存文件更加容易。
为每个示例项目创建一个readme.html文件,并在创建项目时自动打开readme.html。这将为用户提供该示例的即时概述:它所做的事情、先决条件、限制、要采取的步骤等等。
如果创建了新文件,请在编辑器中打开该文件。如果创建了一组文件,请在编辑器中打开最重要的文件或中央文件。在创建示例项目时打开readme.html文件。
如果创建了新项目,向导应该将工作台中的活动透视图更改为适合新项目类型的透视图。在Eclipsev2.1中,提示用户在创建新项目时确认切换到首选透视图。为了避免上下文丢失,插件应该使用它,不要在没有提示的情况下自动切换。如果用户将来想要自动切换,他们可以在确认对话框中选择“不要再次显示此消息”。
如果创建了新项目,则提示用户并更改活动透视图以适应项目类型。
在任何一种情况下,如果创建了文件、文件夹或项目,向导应在适当的视图中选择并显示新对象。这为用户提供了具体的证据,是的,新对象已经创建,现在已经存在。
如果创建了新对象,请在适当的视图中选择并显示新对象。
在许多情况下,资源的创建可能涉及创建包含资源的项目或文件夹。如果可以在向导中创建包含项目或文件夹(具有非常合理的默认设置),则向导应该允许创建该项目或文件夹。如果创建此类资源需要详细的用户交互才能正确设置父项目或文件夹,则向导不应尝试这样做。相反,向导错误文本应该指示用户“指定的项目不存在”。
IBM的WebSphereStudio中的EAR Import向导就是这样一个示例,在这个示例中,允许用户指定已就位的父项目的名称可以提供更多可用的交互。在这种情况下,基于用户提供的名称,向导就开始运行,不仅创建EAR项目本身,还创建可能需要的任何Web项目等等。
如果可以定义合理的默认值,则在向导中创建文件夹对象。
术语
在创建向导中,如果要创建的项必须是项目(而不是项目下面的文件夹),则应该使用术语“Project”。如果它可以是项目下面的文件夹,则应该使用术语“文件夹”。此外,使用“name”后缀(非大写),而不使用输入字段标签的其他前缀。例如,使用“项目名称”或“文件夹名称”,而不使用“项目名称”或“服务器项目名称”。
当项目必须是项目时,对输入字段标签使用术语“ProjectName”;否则,使用“文件夹名称”一词。不要限定这个术语。
编辑
编辑器是工作台页面中的可视组件。它是用于与主要内容交互,这些内容可能是文档或数据对象。在每一种情况下,这些内容都是主要关注的焦点,也是主要任务的反映。
使用编辑器编辑或浏览文件、文档或其他主要内容。
编辑器中所做的修改遵循开放保存-关闭生命周期模型。当编辑器第一次打开时,编辑器的内容应该是未修改的(干净的)。如果修改了内容,编辑器应该将此更改传递给平台。作为响应,一个星号将出现在编辑器选项卡中。修改应该在编辑模型中缓冲,直到用户显式保存为止。此时,修改应该提交到模型存储。
在编辑器中所做的修改应该遵循一个开放的保存-关闭生命周期模型。
编辑器是以文档或输入为中心的。每个编辑器都有一个输入,对于页面中的每个编辑器输入只能存在一个编辑器。这一政策旨在简化零件管理。
对于每个编辑器输入,在透视图中可能只存在一个编辑器实例。
此外,应该可以为每个不同的输入打开一个编辑器的单独实例。
必须能够为每个不同的输入打开编辑器的单独实例。
容貌
编辑器应该用正在编辑的资源的名称来标记,而不是用编辑器的名称来标记。
编辑器应加上正在编辑的文件、文档或输入的名称。
如果编辑器包含多个页,则应使用选项卡控件激活页。插件文件和html编辑器演示了该控件的使用。
标签应该保留为一个单词,最多两个单词。
在多页编辑器中,使用选项卡控件来激活页面。标签应该保留为一个单词,最多两个单词。
菜单
编辑器可以直接将项贡献到窗口菜单栏。编辑器中的所有可用命令都应显示在窗口菜单栏中,以确保可访问性和清晰度。异常适用于明显的命令,例如,基本导航,例如下一个/前一个字符、行、字。
除了明显的命令外,编辑器中所有可用的命令都应该添加到窗口菜单栏中。
建议采用以下格式,以确保整个Eclipse的一致性和更好的易用性。
编辑 | (一个或多个编辑器特定菜单) | 窗户 |
在这里添加任何以对象为中心的命令 | (命令属于特定菜单) | 操作来控制您在编辑器中看到的内容。 |
在窗口菜单栏中使用编辑器贡献的标准格式。
窗口菜单栏包含许多全局命令,如编辑菜单中的剪切、复制和粘贴。这些命令以活动部分为目标,如阴影标题区域所示。如果编辑器中支持这些命令,编辑器应该将这些窗口命令挂钩,以便窗口菜单栏或工具栏中的选择产生与编辑器中相同命令的选择相同的结果。编辑器不应忽略这些命令,并向窗口菜单栏或工具栏提供重复命令。
全局命令的完整列表在IWorkBenchActionConstants.java中声明(见下文)。
/**
*来自IWorkBenchActionConstants。
*工作台窗口中的标准全局命令。
*/
公共静态最终字符串[]全局_action={
撤销,
重做,
切,
收到,
粘贴,
打印,
删除,
找到,发现,
选择所有,
书签
};
如果编辑器支持剪切、复制、粘贴或任何全局命令,则必须从窗口菜单栏和工具栏中的相同命令执行这些命令。
工具栏
编辑器可以直接向窗口工具栏提供命令。工具栏用于公开最常用编辑器中的命令。工具栏中出现的任何命令也必须出现在菜单中,但不需要重复工具栏内菜单中的每个命令。
用视图菜单中最常用的项填充编辑器工具栏。
在编辑器中使用本地工具栏与工作台的设计背道而驰。在工作台中,编辑器的工具栏与相同类型的编辑器共享。这减少了在编辑器之间切换时出现的闪光灯,减少了产品中的图像和命令的数量,并创造了更好的集成感觉。
上下文菜单
上下文菜单应用于与编辑器中的对象进行上下文敏感的交互。如果在编辑器中选择了一个对象,并且打开了上下文菜单,那么上下文菜单应该只包含适合所选内容的命令。影响视图显示的命令不应出现在上下文菜单中。
在文本编辑器中,您可以假设只有一种类型的选择:文本。在这种情况下,对于编辑器中的任何选择,上下文菜单的内容将保持一致。
用面向选择的命令填充上下文菜单。
为了与Eclipse中的其他编辑器保持一致,每个编辑器都应该对上下文菜单中的命令采用一个公共顺序。下表显示了这种格式。在此表中,每个项表示一组命令。上下文菜单中的类别应该通过使用分隔符来保持彼此的区别。
撤消/重做,保存 |
加 |
现身 |
剪切复制糊 |
删除 |
其他插件添加 |
使用编辑器上下文菜单的标准格式。
为了获得良好的空间导航,请在上下文菜单中为每种选择类型填充一组固定的命令。一旦定义了内容,就应该使用选定的对象状态来确定每个命令的启用状态。这样做,您可以建立一个一致性,使菜单更可预测,更容易浏览。
为每种选择类型使用一组固定的命令填充上下文菜单,然后启用或禁用每个命令以反映选择状态。
平台UI的主要目标之一是可扩展性。事实上,正是这种可扩展性使您可以自由地向平台添加新的视图、编辑器、透视图和操作。当然,可扩展性是双向的。虽然您可能希望扩展平台,但其他人可能希望扩展您的视图或编辑器。一个插件通常会将操作添加到另一个插件的编辑器的菜单、工具栏或上下文菜单中。
在平台中,编辑器的菜单和工具栏由平台自动扩展。相反,在编辑器和平台之间协作支持上下文菜单扩展。要实现这种协作,编辑器必须向平台注册它包含的每个上下文菜单。它还应该为编辑器中的每个对象类型定义一个命令筛选器。命令筛选器使一个插件更容易将命令添加到由另一个插件定义的编辑器中的对象中。使用对象类型和属性描述目标。有关此概念执行情况的更多信息,请参见创建Eclipse视图。
将编辑器中的所有上下文菜单注册到平台。
为编辑器中的每个对象类型实现一个命令筛选器。
资源删除
当从导航器(例如,IBM的WebSphere Studio中的Navigator视图、J2EE视图、数据视图或DBA Explorer视图)中删除资源时,当前在该资源上打开的任何编辑器的处理取决于编辑器是否有任何未保存的更改。
如果自上次保存资源以来,编辑器不包含任何更改,则应立即关闭编辑器。
如果删除编辑器的输入,且编辑器不包含任何更改,则应关闭编辑器。
如果编辑器包含自上次保存资源以来对资源的更改(即它是“脏的”),则编辑器应该给用户一个机会将他们的更改保存到另一个位置,然后关闭。下面是应该显示的对话框示例:
如果编辑器的输入被删除,并且编辑器包含更改,编辑器应该给用户一个机会将他们的更改保存到另一个位置,然后关闭。
未保存的更改
如果编辑器包含自上次保存资源以来对资源的更改(即它是“脏的”),则应使用星号作为编辑器选项卡中资源名称的前缀:
如果资源是脏的,请在编辑器选项卡中显示的资源名称前加上星号。
只读文件
使用像“编辑器”这样的名字,只读文件的问题可能会引起混淆,这一点也就不足为奇了。如果它是只读的,你怎么编辑它?在这种情况下,您应该回到基本原则。
视图通常用于导航信息层次结构、打开编辑器或显示活动编辑器的属性。编辑器通常用于编辑或浏览文件、文档或其他输入对象。
无论文件是否为只读文件,此语句都是适当的。在任何一种情况下,用户都应该能够选择文件,打开它,并在编辑器中浏览内容。如果该文件为只读文件,则应禁用File>Save命令,并启用File>SaveAs。在状态栏区域,应该显示“只读”,而不是默认的“可写”消息。
对待只读编辑器输入就像对待任何其他输入一样。启用“保存”(如果可能的话)。在状态栏区域显示“只读”。
与其他意见的整合
在Eclipse中,每个编辑器与Outline视图之间有一种特殊的关系。打开编辑器时,Outline视图将连接到编辑器,并请求它提供大纲模型。如果编辑器回答大纲模型,则每当编辑器处于活动状态时,该模型将显示在大纲视图中。大纲用于在内容中导航,或在更高的抽象级别上与编辑数据交互。
例如,如果在编辑器中打开.java文件,类的结构将显示在大纲视图中。如果在大纲中选择方法或字段,则将在编辑器中选择并显示该项的文本声明。如果您选择一个方法或字段,并打开上下文菜单,则可以作为概念单元与项进行交互,而不仅仅是一堆文本。
通常,如果编辑器中的数据太广泛,无法在单个屏幕上查看,则编辑器应该向大纲视图提供大纲模型,并生成结构化大纲。这个结构化大纲使得在像java文件或html文件这样的对象中导航变得非常容易。
如果编辑器中的数据太广泛,无法在单个屏幕上看到,并且会产生结构化的大纲,则编辑器应该向Outline视图提供大纲模型。
当编辑器与大纲视图交互时,关于位置的通知应该是双向的。也就是说,用户应该能够选择大纲中的内容并更新编辑器位置,并且用户应该能够在编辑器窗格中选择某些内容并更新大纲视图。
在大纲视图中应酌情提供上下文菜单,该视图应酌情支持创建操作。
关于编辑器和大纲视图之间位置的通知应该是双向的。在大纲视图中应酌情提供上下文菜单。
如果编辑模型包含错误或警告,则应在大纲视图中指示它们。错误或警告图像应分别添加到带有错误或警告的项中。如果容器本身有错误,容器应该有红色的X;如果容器的子代有错误(但容器本身没有),则为灰色X;如果容器或其子代都没有错误,则为no X。例如,在下面的行中,addFastView方法有一个错误,因此将错误映像添加到项及其父项中。
要做到这一点,必须谨慎地设计带有重叠的图标,这样就可以将象形文字应用到祖先的图标上。
错误或警告图像应分别添加到带有错误或警告的项中。如果容器本身有错误,容器应该有红色的X;如果容器的子代有错误(但容器本身没有),则为灰色X;如果容器或其子代都没有错误,则为no X。
在编辑器中,任务对象通常用于标记文档中的位置。一旦创建了任务,它就会出现在Task视图中。如果选择了任务,则可以在任务中定义的位置重新打开编辑器。
如果合适,在编辑器中实现“添加任务”功能。
还可以使用书签对象标记文档中的位置。一旦创建了书签,它就会出现在Bookmark视图中。如果选择书签,则可以在任务中定义的位置重新打开编辑器。
如果合适,在编辑器中实现“添加书签”功能。
行号
具有源文本行的编辑器应该有行号和可选的列号。编辑也应该支持导航->去线.菜单允许用户快速跳转到所需的行。当前行和列号应显示在状态行中(列号是可选的)。编辑器显示编辑器中每一行的行号是可选的。
包含文本源行的编辑器应该显示当前行,并(可选)显示状态行列号。编辑器显示编辑器中每一行的行号是可选的。
表格单元编辑
如果编辑器包含带有可编辑单元格的表,则单击单元格应选择当前项并将单元格置于编辑模式中。在编辑模式下,单元格中的任何下拉列表、按钮或其他控件都应在单击时呈现。
表格单元格编辑器应该支持单击激活模型,在编辑模式下,它们应该在单击时呈现复杂的控件。
此外,一旦用户单击单元格或点击Enter,就应该提交更改。
以下是表格单元格编辑器良好行为的示例:
-使用箭头键在下拉菜单中进行浏览时,可以上下移动任意数量的选项,并且在用户做出显式选择之前,下拉列表仍然是可见的。
-当下拉显示时,第一个字母导航被支持作为一种浏览技术。
-支持“Enter”键,作为在下拉菜单可见时通过键盘进行显式选择的一种方法。
-支持“esc”键,作为在下拉菜单可见时通过键盘取消选择的一种方法。
-当进入编辑模式时,下拉控件(向下箭头图像)将显示当前选择活动并突出显示。
-当进入编辑模式时,可以通过箭头通过选择键进行选择,而不需要调用下拉菜单。
当用户单击单元格或按下“Enter”键时,应提交表单元格编辑器中的更改。当用户按下“ESC”键时,应取消选择。首先,应支持字母导航,将其作为单元格内的一种游标机制。
错误通知
如果在编辑器中通过击键验证来执行击键操作,请使用“红色设置”在无效内容下划线。当用户将鼠标移动到红色的Squiggles上时,将错误文本显示在“飞越”弹出框中。
在编辑器中执行细粒度错误验证时,请使用红色squiggles在无效内容下划线。当用户将鼠标移动到红色的Squiggles上时,将错误文本显示在“飞越”弹出框中。
在编辑器中调用Save命令时,请使用Problems视图来显示被持久化的错误。
使用Problems视图显示调用Save命令时发现的错误。
与外部编辑的交互
虽然在工作台中打开了资源,但是如果在工作台之外对其进行了修改,我们建议采用以下方法来处理这种情况。当在编辑器中调用Save命令时,应该提示用户要么重写在工作台之外所做的更改,要么退出Save操作。如果需要,可以更早地调用此用户提示,例如当编辑器恢复焦点时。
如果在工作台之外对资源进行了修改,则应该提示用户在编辑器中调用Save命令时重写在工作台之外所做的更改,或者退出Save操作。
意见
视图是工作台页面中的可视组件。它是用于支持主要任务的角色。您可以使用它们导航信息层次结构、打开编辑器或查看活动编辑器的属性。
使用视图可以导航信息层次结构、打开编辑器或显示对象的属性。
在视图中所做的修改应立即保存。例如,如果在Navigator中修改了一个文件,更改将立即提交到工作区。大纲视图中的更改将立即提交给活动编辑器的编辑模型。对于Properties视图中的更改,如果属性是打开的编辑模型的属性,则应将其持久化到编辑模型。如果它是文件的属性,则持久化为文件。
过去,一些视图尝试使用Save命令实现编辑器样式的生命周期。这会引起混乱。工作台窗口中的“文件”菜单包含一个Save命令,但它仅适用于活动编辑器。它不应该针对主动视图。这导致了一种情况,即File>Save命令与视图中的Save命令相矛盾。
必须立即保存视图中所做的修改。
在透视图中,只能打开特定视图的一个实例。此策略旨在简化用户的部件管理。用户通过调用透视>显示视图打开视图。如果由于任何原因,他们失去了一个视图,或者忘记了它的存在,他们可以简单地再次调用透视>Showview来使视图可见。
透视图中可能只存在一个视图实例。
在一个多任务的世界里,人类通常一次完成多个任务.在Eclipse中,可以通过为每个任务创建一个单独的透视图来实现任务分离。考虑到这一点,一个视图必须能够在一个以上的视角中打开。如果一个视图的一个实例可能存在,那么多任务的能力就会被剥夺。
一个视图必须能够在多个透视图中打开。
可以通过两种方式打开视图:调用Window>ShowView>X菜单(其中X是视图的名称),或者调用工作台中的另一个命令。例如,如果您在Packages视图中选择一个类,并调用OpenType层次结构,则会打开一个层次结构视图,其中包含所选内容的类层次结构。
应该可以从“窗口”>“显示视图”菜单中打开任何视图,无论是作为菜单中的显式项,还是作为“窗口”>“显示视图”>其他.对话。
可以从“窗口”>“显示视图”菜单打开视图。
容貌
视图由标题区域、工具栏、下拉菜单和嵌入式控件组成。
标题栏中的视图标签必须以“透视”>“显示视图”菜单中的视图标签作为前缀。鉴于无法更改“显示视图”菜单中的条目,这意味着您不能更改视图的名称。但是,可以向视图标签中添加其他文本,以澄清视图的状态。
标题栏中的视图标签必须以透视>显示视图菜单中的视图标签作为前缀。
在大多数情况下,视图将包含单个控件或查看器。但是,可以在视图中嵌入多个查看器或控件。如果将这些控件链接起来,使一个控件中的选择更改另一个控件的输入,则最好将视图分为两个。用户将有更大的自由打开其中一个结果视图,因为他们的需要。还可以在这些视图之间建立特殊关系,以支持用户任务。此外,这使用户更容易创建具有多种视图的新透视图。
如果一个视图包含多个控件,则建议将其拆分为两个或多个视图。
初始化
打开视图时,应从透视图的状态派生视图的输入。视图可以参考窗口输入或选择,或另一个视图的状态。例如,如果打开大纲视图,它将确定活动编辑器,查询编辑器中的大纲模型,并显示大纲模型。
当视图第一次打开时,从透视图的状态派生视图输入。
如果视图用于导航资源层次结构(即Navigator或Packages视图),则可以从窗口输入派生视图的输入。窗口输入定义透视图中可见资源的范围,如果用户在Navigator中选择资源并在新建窗口中调用Open,则由用户定义。例如,如果打开Navigator视图,它将询问其透视图的窗口输入。结果用作视图的初始输入。
如果视图显示资源树,请考虑使用窗口输入作为视图中可见信息的根。
菜单
使用视图下拉菜单显示命令,而不是面向选择的命令.这些命令影响视图的表示,但不影响视图中的对象。不要将表示命令放在上下文菜单中。例如,Navigator视图中的排序和筛选命令会影响资源的表示,但不会影响资源本身。
使用视图下拉菜单显示命令,而不是面向选择的命令.
为了与Eclipse中的其他视图保持一致,每个视图都应该对下拉菜单中的命令采用一个公共顺序。下表显示了此顺序。
视图模式(例如,层次视图中的3种模式) |
[所需分隔符] |
工作集(例如,选择/取消选择/编辑工作集,用于Navigator和PackageExplorer) |
[所需分隔符] |
分选 |
[可选分离器] |
过滤 |
[可选分离器] |
视图布局(例如,层次视图中的水平视图与垂直视图) |
[可选分离器] |
与编辑器链接 |
[所需分隔符] |
视图本身的其他表示命令 |
[所需分隔符] |
来自其他插件的表示命令 |
使用命令的标准顺序查看下拉菜单。
工具栏
工具栏用于公开视图中最常用的命令。工具栏中出现的任何命令也必须出现在菜单(上下文菜单或视图菜单)中,但不需要重复工具栏内菜单中的每个命令。
只在工具栏上放置最常用的命令。工具栏上的任何命令也必须出现在菜单中,无论是上下文菜单还是视图菜单。
上下文菜单
上下文菜单应用于与视图中的对象进行上下文敏感的交互。如果在视图中选择了对象,并且打开了上下文菜单,则上下文菜单应该只包含适合所选对象的操作。影响视图显示的操作不应出现在上下文菜单中。
用面向选择的操作填充上下文菜单,而不是演示操作。
为了与Eclipse中的其他视图保持一致,每个视图都应该对上下文菜单中的命令采用公共顺序。下表显示了此顺序。在此表中,每个项表示一组命令。上下文菜单中的类别应该通过使用分隔符来保持彼此的区别。
新的 |
打开 |
导航+显示 |
剪切、复制、粘贴、删除、移动、重命名和其他重构命令 |
其他插件添加 |
特性 |
New类别包含创建新对象的操作。“打开”类别包含在编辑器中打开选定内容的操作。导航包含用于重新调整视图输入焦点的操作,或在另一个视图中显示视图选择。而其他类别则是不言自明的。
对视图上下文菜单使用标准命令顺序。
为了使菜单具有良好的空间导航功能,请为每种选择类型填充一组固定的命令。一旦定义了内容,就应该使用选定的对象状态来确定每个命令的启用状态。这样做,您可以建立一个一致性,使菜单更可预测,更容易浏览。
为每种选择类型使用一组固定的命令填充上下文菜单,然后启用或禁用每个命令以反映选择状态。
一个视图中的对象可能在许多其他视图或编辑器中可见。例如,在Navigator、层次结构视图和Packages视图中都可以看到.java文件。对于用户来说,不管位置如何,这些对象都是相同的,因此.java文件的上下文菜单在每个文件中都应该是相同的。
执行提示:
为了实现一致的上下文菜单,引入新对象类型的插件开发人员应该使用动作组(ActionGroup类)向上下文菜单提供命令,这是一个填充上下文菜单的Java类。如果使用此方法,则在出现相同对象的情况下,其他视图可以重用操作组。
如果一个对象出现在多个视图中,那么它应该在每个视图中都有相同的上下文菜单。
平台UI的主要目标之一是可扩展性。事实上,正是这种可扩展性使您可以自由地向平台添加新的视图、编辑器、透视图和操作。当然,可扩展性是双向的。虽然您可能希望扩展平台,但其他人可能希望扩展您的视图或编辑器。一个插件通常会将操作添加到另一个插件的视图的菜单、工具栏或上下文菜单中。
在平台中,视图的菜单和工具栏由平台自动扩展。相反,通过视图和平台之间的协作支持上下文菜单扩展。为了实现这种协作,视图必须向平台注册它包含的每个上下文菜单。它还应该为视图中的每个对象类型定义一个命令筛选器。命令筛选器使一个插件更容易将命令添加到由另一个插件定义的视图中的对象中。使用对象类型和属性描述命令目标。有关此概念执行情况的更多信息,请参见创建Eclipse视图。
向平台注册视图中的所有上下文菜单。
为视图中的每个对象类型实现一个命令筛选器。
与窗口菜单栏和工具栏的集成
窗口菜单栏包含许多全局命令,如编辑菜单中的剪切、复制和粘贴。这些命令以活动部分为目标,如阴影标题区域所示。如果视图中支持这些命令,则视图应该将这些窗口命令挂钩,以便窗口菜单栏或工具栏中的选择产生与视图中相同命令的选择相同的结果。
IWorkbench ActionConstants.java中声明的全局命令和内置菜单的完整列表(见下文)。
文件菜单:还原,移动,重命名,刷新,打印,属性
编辑菜单:撤消,重做,剪切,复制,粘贴,删除,选择所有,查找/替换,添加书签,添加任务
导航菜单:进入,后退,向前,上升一个层次,下一个,前,后,前
项目菜单:打开项目,关闭项目,构建项目,重建项目
如果视图支持剪切、复制、粘贴或任何全局命令,则必须从窗口菜单栏和工具栏中的相同命令执行这些命令。
虽然一个视图不能直接贡献到Eclipsev2.1中的主菜单或工具栏,但它仍然可以使用“动作集/部件关联”(ActionSetPartAssociations ExtensionPoint)(actionSetPartAssociations扩展点)使命令出现在其中,它允许您将操作集与特定的部分(视图或编辑器)关联起来。例如,Eclipse中的Java工具将此用于PackageExplorer。
视图(或编辑器)的所有命令都应该在主菜单上可用,并且只有经常使用的命令出现在上下文菜单上。
此外,这些视图(例如Java和Java浏览透视图)的主要透视图应该已经具有与透视图相关联的操作集,以提高UI稳定性。
持久力
平台UI的主要目标之一是提供与工作区的高效交互。在平台中,这是通过保存会话结束时工作台的状态(工作台被关闭)来促进的。启动新会话(打开工作台)时,将恢复此状态,从而减少用户返回工作所需的时间。
如果一个视图有一个静态输入对象,也就是说它的输入不是从其他部分的选择派生出来的,那么视图的状态应该在会话之间保持不变。如果视图具有动态或瞬态输入对象,则不需要在会话之间持久化其状态。在工作台中,Navigator视图的状态(包括输入和扩展状态)在会话之间保存。有关持久性实现的更多信息,请参见“创建Eclipse视图".
在会话之间保持每个视图的状态。
与编辑的互动
与编辑器链接
导航视图应该支持视图菜单上的“链接编辑器”。此功能适用于每个视图设置。如果预期用户会频繁切换它,那么它也可以放在工具栏上,但这不是必需的(层次结构视图和Java浏览透视图中的视图支持它,但是工具栏上没有它,因为他们希望链接到几乎总是打开)。
“与编辑联系”的行为如下:
- 切换关闭时,不发生链接(无论是视图->编辑器还是编辑器->视图)
- 当切换时,链接发生在两个方向:
- 视图->编辑器:在视图中更改所选内容时,它会将任何先前打开的编辑器放在前面,但不会激活它(视图必须保持焦点)。
- 编辑器->视图:当用户在编辑器之间切换时,视图更新其所选内容以对应于活动编辑器。
- 打开时,应立即将视图中的选择与最前面的编辑器同步(如果适用的话)。
- 这与单次单击模式不同-它不会导致打开新的编辑器。
- 更改设置只影响当前视图实例,而不影响相同类型的其他实例。
- 视图应该为每个视图实例分别保存此设置的状态,也应该对全局保持此设置的状态(但对于每种视图类型,例如,Navigator和PackageExplorer分别保存其最后一个设置)
- 打开视图的新实例时,应使用最后一个全局设置。
- 默认设置(如果没有先前持久化的全局设置)由视图决定,但主导航视图(如Navigator和PackageExplorer)默认为OFF
导航视图应支持视图菜单上的“链接编辑器”
从视图中打开编辑器有两种主要模式:单击模式和双击模式。视图应该显示打开编辑器的下列行为:
单击打开模式
- 文件关闭
- 单击打开,但不会激活编辑器(如果可能,请选择编辑器中的元素)
- 双击打开并激活编辑器(如果可能,请选择编辑器中的元素)
- 已打开的文件
- 单次单击会使编辑器处于前面,但不会激活它(如果可能,请选择编辑器中的元素)
- 双击激活编辑器(如果可能,选择编辑器中的元素)
双击打开模式
- 文件关闭
- 单次单击除了选择元素外,什么也不做。
- 双击打开并激活编辑器(如果可能,请选择编辑器中的元素)
- 已打开的文件
- 单击
- “LinkwithEditor”OFF:单击除了选择元素之外什么也不做
- “链接编辑器”:单次单击将编辑器带到前面,但不激活编辑器(如果可能,请选择编辑器中的元素)
- 没有“与编辑器链接”:由视图决定
- 双击激活编辑器(如果可能,选择编辑器中的元素)
- 单击
附加规则
- 按下“Enter”键应与双击相同
- 下一步(Ctrl+.)/前一个(Ctrl+,)按钮选择视图中的下一个/前一个元素,打开(或带到前面)编辑器,并在编辑器中选择元素,但从不激活编辑器。
透视
透视图是一组视图和编辑器(部件)的可视容器。不同的透视图可以打开不同的视图集,但如果它们都打开了相同的视图,则视图在它们之间是共享的(但只有在同一个工作台窗口中)。编辑器总是在同一窗口的透视图之间共享。
一个新的透视图是通过调用Window->Open透视图->X打开的,其中X标识了Eclipse中的一个特定透视图。结果是工作台窗口中的一个新透视图类型例如,如果调用Window->Open透视图->Resource,则会打开一个新透视图,其类型为资源..Eclipse附带了一些预定义的透视图类型,如Resource、Java和Debug。透视图类型决定视图的初始布局,以及透视图中命令集的可见性。
作为插件开发人员,您可以为Eclipse提供新的透视图类型。为此,必须定义透视图扩展。每个扩展名都有一个透视工厂一个Java类,它定义视图的初始布局,以及透视图中命令集的可见性。还可以将自己的操作或视图添加到现有的透视图类型中。有关这些概念的实现的更多信息,请参见在EclipseUI中使用前景.
当有一组相关的非模态任务将受益于命令和视图的预定义配置时,应该创建一个新的透视图类型,并且这些任务是长期存在的。必须采取面向任务的办法。作为一个开发环境,Eclipse的设计是为了满足大型产品开发团队的需求,从产品经理到内容开发人员再到产品测试人员。它是完全可扩展的,可以配置数百个命令、向导、视图和编辑器扩展。换句话说,它可能包含了许多您永远不会使用的特性。为了避免如果UI中所有内容都可见时会出现的视觉重载和混乱,可以使用透视图将表示限制在面向任务的视图和命令集合上。
例如,Java代码创建的任务是长期的和复杂的,因此需要创建Java透视图。在Eclipse中,Java透视图包含一个编辑器区域、PackageExplorer视图、层次结构视图、任务视图和大纲视图。Java和Debug命令集也是可见的。总之,这些组件对于各种长期存在的Java编码任务非常有用。
为短期任务创建新的透视图类型是不合适的。例如,资源签入的任务是短暂的,因此使用当前透视图执行它可能更好。
为长期存在的任务创建一个新的透视图类型,这涉及到较小的、非模式的任务的性能。
如果您的插件贡献了少量的视图,并且这些视图增加了现有的任务,那么最好将这些视图添加到现有的透视图中。例如,如果创建一个增强Java代码创建任务的视图,则不要创建新的透视图。相反,将其添加到现有的Java透视图中。该策略提供了与现有平台更好的集成。
如果您只想公开一个或两个视图,则扩展现有的透视图类型。
视图布局
如果用户打开一个新透视图,视图的初始布局将由透视图类型(即资源,Java)定义。此布局在透视工厂与透视图类型关联的Java类。初始化透视图时,它由一个没有其他视图的编辑器区域组成。透视图工厂可以使用编辑器区域作为初始参照点,添加新视图。
每个视图的大小和位置由透视工厂控制。应该以合理的方式定义这些属性,以便用户可以根据需要调整视图的大小或移动它。需要考虑的一个重要问题是视图(和编辑)之间的整体流程。例如,最初导航视图可以放置在编辑器区域的左侧,大纲视图可以放置在编辑器区域的右侧或导航视图的下方,其他支持视图可以放置在编辑器区域的下面和右边。
应以合理的方式定义透视图中每个视图的大小和位置,以便用户可以根据需要调整或移动视图。在定义初始布局时,重要的是要考虑视图(和编辑器)之间的整体流程。
透视图至少应该有两个部分,包括可见视图和编辑器区域。如果不是这样,那么应该重新检查透视图,以确定它是否更适合作为视图或编辑器。
如果透视图只有一部分,它可能更适合作为视图或编辑器。
在某些情况下,在透视图中有一个编辑器区域可能是不可取的。在这种情况下,透视图工厂应该使用现有的java方法隐藏编辑器区域。将编辑器区域调整到不再可见的位置是不可接受的。如果用户确实在透视图中打开编辑器,则无论出于何种原因,他们都将无法看到或调整编辑器的大小。
当以编程方式隐藏编辑器区域时,如果用户在透视图中打开编辑器,编辑器区域将变得可见。以前占据编辑区域的视图将会缩小。因此,即使编辑器是以编程方式隐藏的,也必须定义一个非空编辑器区域。
如果在透视图中有一个编辑器区域是不可取的,请隐藏它。不要调整编辑器区域的大小,使其不再可见。
指挥贡献
透视图工厂可以向File>New、Window>Open透视图和Window>ShowView菜单添加操作。还可以向窗口添加一个或多个命令集。在每种情况下,您都应该选择与透视图的任务方向相关的命令。
应该用向导填充File>New菜单,以创建任务中常用的对象。例如,在Java透视图中,File>New菜单包含用于创建包、类和接口的菜单项。
“窗口”>“显示视图”菜单应该填充透视图中的初始视图,以及对当前任务可能很重要的任何额外视图。导航>显示菜单应用于允许用户在其内容中导航。
在填充Window-Open透视图菜单时,应该考虑应用程序开发生命周期。大多数应用程序的开发遵循一个定义良好的生命周期,从设计/建模,到编辑/创建,到调试/测试,再到组装/部署。每个透视图都会进入这些步骤之一。“开放视角”菜单应用于将当前透视图链接到支持当前透视图下游任务的透视图,以及进一步支持上游任务的透视图,以便进行迭代开发。
例如,Java透视图在更大的生命周期中使用,涉及Java和Debug任务。“窗口”>“打开透视”菜单中的每个透视图都被填充。
使用适合透视图的任务方向的命令和命令集以及任何更大的工作流填充窗口菜单栏。
在代码中打开一个视角
只有当用户明确表示希望打开一个新透视图时,命令才会打开该透视图。如果用户没有这样做的愿望,打开一个新的透视图可能会导致用户失去上下文。
例如,设想一个场景,用户选择一个对象并调用一个命令。在调用命令的透视图中,用户可以打开一组视图和编辑器。它们表示用户的工作状态或上下文。如果创建了一个新透视图,该上下文将被抛在后面,迫使用户重新创建上下文。这是浪费时间。
只有当用户明确表示希望打开一个新透视图时,才应该打开该透视图。在做这个声明时,用户同意离开他们的旧上下文,创建一个新的上下文。
在某些情况下,打开一个新透视图作为另一个命令的副作用。例如,如果用户开始调试他们的应用程序代码,他们可能会切换到Debug透视图。如果实现了此行为,则用户应该可以选择关闭此行为。该选项可以在命令对话框中公开,也可以在首选项页面中公开。
如果打开一个新透视图是另一个命令的副作用,则用户应该能够关闭此行为。
如果打开了新透视图,则可以在当前窗口内或在新窗口中打开该透视图。用户使用Workbench首选项控制此选项。如果插件中的代码打开了一个新的透视图,插件应该尊重用户的偏好。
如果打开了新透视图,则应根据用户偏好在当前窗口或新窗口中打开该透视图。
关于应用于“新建、打开透视图”和“显示视图”菜单的命令贡献,作为这些菜单快捷方式添加的向导、透视图和视图的列表最多应为7加/减2项。
添加到“新建、开放透视图”和“显示视图”菜单中的快捷方式列表最多应为7项加/减2项。
窗
在本节中,我们将查看窗口菜单栏、工具栏和布局。作为插件开发人员,可以使用动作集一组面向任务的操作,用户可以显示或隐藏这些操作。通过定义透视..在本节中,我们将讨论动作扩展。有关透视图的更多信息,请参见透视.
行为
每个工作台窗口都包含一个菜单栏和工具栏。这些都是由平台预先填充的,但是插件开发人员可能会给每个插件添加额外的项目。这是通过定义动作集一组面向任务的操作,用户可以显示或隐藏这些操作。操作集中的操作可以分布在窗口、菜单栏和工具栏中。
使用操作集将操作贡献到窗口菜单栏和工具栏。
窗口菜单栏包含许多下拉菜单:文件、编辑、导航、项目、窗口和帮助。每一种方法都有不同的目的,下文将对此加以解释。为了与其他插件提供的操作集保持一致,操作集中的命令应该符合窗口中现有的操作分布。不需要将操作分组在菜单栏的单独下拉菜单中。
“文件”菜单包含面向文件的操作,如保存、关闭、打印、导入、导出和退出。“文件”>“新建”菜单的内容由透视图类型确定。但是,用户可以使用窗口->CustomizePerformation添加或删除项.菜单项。导入和导出对话框的内容分别由每个导入和导出向导填充。
“编辑”菜单包含面向编辑器的操作,如撤消、重做、剪切、复制和粘贴。这些操作以活动部分为目标(如阴影标题栏所示)。编辑器将项目添加到此菜单中是非常常见的。但是,操作集将操作添加到编辑菜单中是不常见的;操作集在本质上是全局的,而编辑菜单的目标是特定的部分,以及与该部分中的数据的交互。
“导航”菜单包含导航操作,如“转到”、“打开类型”、“显示in”,以使用户能够横向浏览或在代码中向下钻取。
“项目”菜单包含应用于工作区内容的操作,如“重新生成所有”和“打开类型”。操作集可以添加搜索整个工作区、生成项目信息等的操作。
“窗口”菜单包含适用于窗口管理和系统首选项的操作。它还包含“打开透视”和“显示视图”子菜单,其中包含影响窗口内容状态的操作。
当在操作集中分发操作时,遵循平台领导。
工具栏包含菜单栏中最常用的操作。考虑到这一点,您应该先将操作贡献到菜单栏,然后再将操作贡献到工具栏(如果它们将经常使用)。
首先将操作添加到窗口菜单栏,然后将操作添加到窗口工具栏(如果它们将被频繁使用)。
应该使用面向任务的方法来定义每个操作集的内容。例如,Java操作集包含创建新包、类和接口的操作。它还包含一个命令,用于打开类GotoType上的编辑器。它们形成了一组关联操作,用户可以根据活动任务打开或关闭这些操作。
定义每个操作集,并考虑到特定的任务。
动作集的大小也很重要。如果操作集太大,则会淹没菜单或工具栏,并降低用户自定义菜单和工具栏的能力。同时,如果操作集太小,用户可能会发现自定义菜单和工具栏过于劳动密集。当一个动作有超过7项时,中断它的设置。
操作集的大小没有神奇的数字,但应该仔细设计,以包含尽可能小的动作语义块。避免只为整个插件提供一个操作集的诱惑。
动作集应该包含尽可能小的动作语义块。避免只为整个插件提供一个操作集的诱惑。
操作集可用于在两个或多个视图和编辑器之间共享一组操作。例如,Java重构操作集可能适用于Java编辑器、大纲视图和层次视图中的选择。在这种情况下,可以通过为工作台定义操作集扩展来共享操作。一旦定义了此操作集,它就可以由透视图开发人员自动包含在透视图中,或者由用户添加到透视图中。
操作集不应用于将命令从单个视图提升到窗口、菜单栏和工具栏。这只会使用户界面混乱。
使用操作集来共享在两个或多个视图或编辑器中有用的一组操作。
窗口中的可视命令集可以通过调用窗口>自定义透视图来更改。在结果对话框中,可以添加或删除文件>新菜单、窗口>打开透视菜单或窗口>显示视图菜单中的项目。还可以添加或删除操作集。通常,可见的操作集应由用户控制,并且不应以编程方式更改。这有两个原因。首先,用户喜欢控制环境,而不是被控制。第二,用户处于理解主动任务的最佳位置,并为其完成设置适当的操作集。
让用户控制可见的操作集。不要试图为他们控制它。
可以添加到操作集中的命令的一个常见示例是导航>打开类型。此命令可用于在当前窗口中不可见的类型上打开编辑器,该编辑器是横向导航的一种形式。通常,为了保持一致性,所有采用表单的打开操作都应该添加到导航菜单中。
“打开对象”操作必须出现在窗口的“导航下拉”菜单中。
状态栏
如果需要插件在状态栏区域显示非模态上下文信息,请始终使用全局状态栏。例如,编辑器使用全局状态栏显示当前行和列号。
始终使用全局状态栏显示与状态相关的消息。
特性
属性对话框或视图用于查看/修改在该对象的正常表示中不可见的对象的属性。例如,在“属性”对话框中修改文件的只读属性.在“属性”对话框中修改Java项目的生成路径。
在Eclipse中,有两种方法可以编辑对象的属性:在Properties对话框中和Properties视图中。每一种方法都适用于不同的情况。
Properties视图通常用于编辑器中一组对象的属性,在编辑器中,快速访问属性非常重要,而且您可以快速地从一个对象切换到另一个对象。
当快速访问非常重要时,使用Properties视图编辑对象的属性,您将快速地从一个对象切换到另一个对象。
对象的属性应该是快速计算的。如果计算对象的属性太昂贵,那么对Properties视图提供的属性的快速访问就变得毫无价值。在无法快速访问的情况下,应使用“属性”对话框。
使用“属性”对话框编辑计算成本高昂的对象的属性。
在某些情况下,对象的属性相互依赖,因此一个对象中的更改将影响另一个对象,甚至启用/禁用更改另一个对象的选项。在这种情况下,属性对话框可能是表示这些属性之间的语义链接的更好方法。
使用“属性”对话框编辑包含相互间复杂关系的对象的属性。
当“属性”视图和“属性”对话框用于显示和编辑对象的属性时,“属性”对话框应包含Properties视图中显示的项的超集。
“属性”对话框应包含“属性”视图中显示的项的超集。
小部件
在本节中,我们将描述一些标准Windows工具包(SWT)小部件的推荐设计。
树表
对于具有与单元格项关联的复选框的Tree和Table小部件,用户可以选择该项或更改复选框状态。更改当前选择不应自动更改所选项的检查状态。但是,当前选择的复选状态被更改时,应该将其设置为给定的项(例如,用户单击与该项关联的复选框)。
对于具有与单元格项关联的复选框的Tree和Table小部件,更改当前选择不应自动更改所选项的复选状态。但是,在更改当前选择的检查状态时,应将其设置为给定的项。
标准件
在本节中,我们将查看Eclipse附带的标准组件。EclipseSDK包含许多视图,包括Navigator、大纲、属性、任务和书签视图。Eclipse还包含默认文本编辑器和资源透视图。
作为插件开发人员,您应该尝试向现有的部分添加新的操作。这将导致更好地集成平台和用户的现有知识。
如果适当的话,使用插件注册表将操作添加到Eclipse的标准组件中。
在扩展标准组件(如Navigator、Outline、Properties、Task和Bookmark视图)时,请确保您的专用组件继承了基本组件的特性(拖放支持、键盘导航、选择行为等)。
如果子类或复制任何标准组件,则始终保留标准组件的特性。
导航器视图
Navigator用于导航工作区、创建新资源、修改资源以及在资源上打开编辑器。插件开发人员可能会为菜单、工具栏和上下文菜单提供新的操作。
添加动作
这是通过向插件注册表添加一个扩展来完成的。
使用插件注册表将操作添加到Navigator View菜单、工具栏和上下文菜单中.
如果对象贡献到上下文菜单,请尽量限定目标对象,以避免将命令添加到Navigator中的错误对象。例如,Java命令的目标可能是.java扩展的IFile,或者具有Java性质的IProjects。如果非Java对象上出现Java操作,则会造成混乱。
有些操作是工具使用的反映,而不是对象类型。例如,存储库插件可能为文件签入、签出等提供操作。只有当用户主动选择使用存储库工具时,这些操作才会出现在Navigator中的资源上。要控制这些操作的可见性,插件应该将项目性质应用于托管资源,并在所有上下文菜单贡献中使用项目性质属性。
有关命令筛选的详细信息,请参阅创建Eclipse视图..IResourceActionFilter.java中定义了资源的标准属性(见下文)。
public interface IResourceActionFilter extends IActionFilter {
public static final String NAME = "name";
public static final String EXTENSION = "extension";
public static final String PATH = "path";
public static final String READ_ONLY = "readOnly";
public static final String PROJECT_NATURE = "projectNature";
}
IProjectActionFilter.java中定义了用于项目筛选的标准属性。
public interface IProjectActionFilter extends IResourceActionFilter {
public static final String NATURE = "nature";
public static final String OPEN = "open";
}
使用IResourceActionFilter.java和IProjectActionFilter.java中定义的属性来控制Navigator中上下文菜单操作的可见性。
与其他观点和编辑的集成
在Eclipse中,使用“导航->显示in”命令是将一个视图中的选择链接到另一个视图的输入的常见方法。例如,源编辑器中选定类的上下文菜单中可以看到“ShowinPackageExplorer”命令。调用时,将在PackageExplorer视图中选择并显示源编辑器中的类。这种方法应该用作视图或编辑器链接的通用、非侵入性模式。它对上下文敏感,反映了用户的意图。
“导航->显示导航器”命令应该包含在资源可能出现的任何视图中。如果调用,该命令应该选择并显示导航器中的资源。
在每个视图中使用“Navigator->ShowinNavigator”命令,将资源链接回Navigator。
任务视图
任务视图用于显示工作区中的当前任务、错误和警告。插件开发人员可能会向工作区提供新的任务、错误和警告,并依赖任务视图来显示这些对象。还可以向菜单、工具栏和上下文菜单贡献新操作。这是通过向插件注册表添加一个扩展来完成的。
添加任务
可以使用CoreResourceManagement插件中的MarkerManager服务创建新任务、错误或警告。
使用CoreResourceManagement插件中的MarkerManager服务向任务视图添加标记(任务、错误和警告)。
任务视图是一个表,包含任务映像、完成状态、优先级、描述、资源和行号的列。每个标记的描述文本应该简短、简洁,以便适合Eclipse的状态行。
每个标记的描述文本应该简短、简洁,以便适合Eclipse的状态行。
添加动作
可以向菜单、工具栏和上下文菜单贡献新操作。这是通过向插件注册表添加一个扩展来完成的。
使用插件注册表将操作添加到“任务”视图菜单、工具栏和上下文菜单中.
如果对象贡献到上下文菜单,请尽量限定目标对象,以避免将命令添加到任务视图中的错误对象。在实现级别上,任务视图中的每个对象都是标记物,一种用于将注释与资源关联的通用机制。使用IMarkerActionFilter.java中的属性来控制Task对象操作的可见性(见下文)。有关命令筛选的详细信息,请参阅创建Eclipse视图.
public interface IMarkerActionFilter extends IActionFilter {
public static final String TYPE = "type";
public static final String SUPER_TYPE = "superType";
public static final String PRIORITY = "priority";
public static final String SEVERITY = "severity";
public static final String DONE = "done";
public static final String MESSAGE = "message";
}
使用IMarkerActionFilter.java中定义的属性来控制任务视图中上下文菜单操作的可见性。
与其他观点和编辑的集成
在编辑器中,任务对象通常用于标记文档中的位置。一旦创建了任务,它就会出现在Task视图中。如果选择此任务(通过双击),则应在任务中定义的位置重新打开编辑器。焦点应从Task视图更改为编辑器。
如果适当的话,编辑器应该实现对在编辑器中创建新任务对象的支持。有关此问题的更多信息,请参见编辑.
将F1帮助添加到任务视图
插件应该支持f1键盘命令,并将其链接到infopop,其中详细描述了任务视图中选定的项。
支持f1键盘命令,并将其链接到infopop,其中详细描述了任务视图中选定的项。
选择对话
当您希望用户从给定的项目列表中选择项时,可以使用Eclipse中可用的标准选择对话框。
容器选择对话框
使用容器选择对话框当希望从工作区中选择IContainer(IFold/IProject)时。
ContainerSelectionDialog dialog = new ContainerSelectionDialog(window.getShell(), null, true, "Select a parent:");
dialog.setTitle("Container Selection");
dialog.open();
通过将相应的对象作为构造函数的第二个参数传递,可以将资源限制为项目/文件夹中的资源。
ResourceSelectionDialog
ContainerSelectionDialog允许您只选择一个也应该是容器的资源。如果要选择多个资源(包括文件),则ResourceSelectionDialog是你应该使用的那个。
ResourceSelectionDialog dialog = new ResourceSelectionDialog(window.getShell(), ResourcesPlugin.getWorkspace().getRoot(), "Select Resource:");
dialog.setTitle("Resource Selection");
dialog.open();
ResourceListSelectionDialog
当您希望在父级下显示整个资源集并允许用户选择多个资源时,ResourceSelectionDialog是很好的。但是,如果您有一组资源,并且希望用户只从中选择一个资源,那么您可能应该使用ResourceListSelectionDialog.
ResourceListSelectionDialog dialog = new ResourceListSelectionDialog(window.getShell(), resourcesArray);
dialog.setTitle("Resource Selection");
dialog.open();
ElementListSelectionDialog
上面的对话框有利于选择工作区资源。但是,如果我有自己的一些元素,并且我想从中选择呢?您将使用的第一个对话框是ElementListSelectionDialog..用户可以从集合中选择一个元素。您必须将元素作为数组传递,并提供标签提供程序来呈现元素。用户也可以使用通配符进行筛选。
ElementListSelectionDialog dialog = new ElementListSelectionDialog(window.getShell(), new LabelProvider());
dialog.setTitle("String Selection");
dialog.setMessage("Select a String (* = any string, ? = any char):");
dialog.setElements(new Object[] { "one", "two", "three" });
dialog.open();
ListSelectionDialog
如果希望用户从给定集合中选择多个元素,则ListSelectionDialog是要用的。它基本上是一个采用SWT.CHECK风格的单列TableViewer。您必须为TableViewer提供自己的ContentProvider和LabelProvider。它还具有SelectAll&取消选择所有按钮。
ListSelectionDialog dlg = new ListSelectionDialog(window.getShell(), getInput(), getContentProvider(), getLabelProvider(), "Select the Element:");
dlg.setTitle("Element Selection");
dlg.open();
选中TreeSelectionDialog
如果您的项在树结构中,并且希望从它们中选择几个元素,那么选中TreeSelectionDialog是你的选择。你必须带上你自己的内容&标签提供者和输入。
CheckedTreeSelectionDialog dialog = new CheckedTreeSelectionDialog(window.getShell(), getLabelProvider(), getContentProvider());
dialog.setTitle("Tree Selection");
dialog.setMessage("Select the elements from the tree:");
dialog.setInput(getInput());
dialog.open();
元素树选择对话框
元素树选择对话框与CheckedTreeSelectionDialog相同,只不过它允许您在整个树中选择单个元素,而不是多个元素。
ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(window.getShell(), getLabelProvider(), getContentProvider());
dialog.setTitle("Tree Selection");
dialog.setMessage("Select the elements from the tree:");
dialog.setInput(getInput());
dialog.open();
过滤ItemsSelectionDialog
您是否使用了“开放类型”(Ctrl+Shift+T)或“开放资源”(Ctrl+Shift+R)对话框?它类似于ElementListSelectionDialog,但是它有更多的特性。它可以选择多个项目,显示关于当前所选项目的详细信息窗格,它甚至可以记住以前的选择;将它们存储在历史记录中,并在其他选项之前显示它们。要获得该功能,您必须扩展抽象类。过滤ItemsSelectionDialog并提供必要的实施。
偏好对话框
首选项对话框用于编辑工作台中某个功能的全局首选项。
当您需要向用户公开全局选项时,应该创建一个新的首选项页面。例如,Java编译的全局首选项作为首选项对话框中的一组首选项页面公开。如果更改了这些首选项,则会影响整个Java插件。
全局选项应在“首选项”对话框中公开。
首选项页不应用于公开视图、编辑器或窗口的特定实例的本地选项。在这种情况下,用户将查看控件本身的菜单和工具栏来自定义它。如果在“首选项”对话框中公开了这些选项,则会模糊自定义的位置,并使用户感到困惑。
通过菜单或工具项公开视图本身中特定视图、编辑器或窗口的首选项。
偏好页面设计
在最简单的情况下,任何需要向用户公开选项的插件都将定义一个首选项页面。此首选项页应包含插件的所有选项,直到选项数开始重载该页。此时,应该采用偏好页的嵌套设计。
从一个首选项页面开始。如果你需要的话,进化到更多。
在嵌套设计中,将根首选项页添加到首选项对话框,然后将子页添加到根首选项页。根首选项页不应为空。相反,它应该包含最常用的首选项,或者那些对插件行为有广泛影响的首选项。在根页面下面,应该为插件中的每个主要功能块创建一个子页面。
没有理由在首选项页面中设置焦点,因为在首选项页面可见之后,Eclipse平台总是将焦点设置为树。
如果创建首选项组,请使用根页查找经常使用的首选项或那些具有广泛传播效果的首选项。专门在子页面中。根首选项页不应为空。
每个新插件都应该将其插件首选项、向导和视图集成到有意义的现有首选项、向导和视图类别中,而不是盲目地为自己创建新类别。
首先尝试将插件首选项、向导和视图集成到新插件的现有类别中,然后再考虑创建新类别。
提纲视图
在Eclipse中,编辑器和大纲视图之间有一种特殊的关系。打开编辑器时,Outline视图将连接到编辑器,并请求它提供大纲模型。如果编辑器回答大纲模型,则每当编辑器处于活动状态时,该模型将显示在大纲视图中。大纲用于在编辑数据中导航,或在更高的抽象级别上与编辑数据交互。
如果您是编辑器开发人员,编辑器和大纲视图之间的关系非常重要。有关这两者之间协作的更多信息,请参见编辑.
属性视图
Properties视图显示工作台中活动部件的属性,或该部分中的选择。这些属性由活动部件本身提供。Properties视图只是表示它们的容器。
在Eclipse中,可以使用Properties对话框或Properties视图公开对象的属性。Properties视图通常用于编辑器中一组对象的属性,在编辑器中,快速访问属性非常重要,而且您可以快速地从一个对象切换到另一个对象。
有关使用Properties视图或Properties对话框的详细信息,请参阅特性.
书签视图
Bookmark视图用于对文件进行书签标记,并快速打开它们。插件开发人员可以为工作区贡献新的书签,并依赖Bookmark视图来显示这些书签。还可以向菜单、工具栏和上下文菜单贡献新操作。这是通过向插件注册表添加一个扩展来完成的。
在编辑器中,书签对象通常用于标记文档中的位置。一旦创建了书签,它就会出现在Bookmark视图中。如果选择了此书签,则可以在书签中定义的位置重新打开编辑器。
如果适当的话,编辑器应该实现对创建新书签对象的支持。有关此问题的更多信息,请参见编辑.
文本编辑器
文本编辑器通常用于编辑文本文件。插件开发人员可以为菜单、工具栏和上下文菜单提供新的操作。这是通过向插件注册表添加一个扩展来完成的。有关此问题的更多信息,请参见编辑.
资源视角
资源透视图包含导航器、大纲、任务视图和编辑器区域。插件开发人员可以为Resource透视图提供一个新的命令、操作集或视图。有关更多信息,请参见透视.
平面造型设计
Eclipse平台提供了一个Web用户界面,也称为平面外观,用于实现内容编辑器。例如,Eclipse插件开发环境(PDE)透视图中的编辑器使用平面外观。
平面外观设计可能更适合于某些类型的用户任务,并更吸引特定的用户配置文件。但是,这种设计不应该仅仅因为它提供了与本机平台外观和感觉不同的外观而使用。平面外观设计的使用应该在受支持的用户场景的上下文中考虑。此设计通常适合广泛的属性和配置编辑,例如编辑Eclipse的plugin.xml文件和J2EEWeb应用程序的部署描述符。
对涉及广泛属性和配置编辑的用户场景使用平面外观设计。
如有需要,请使用“更多.”用于导航的按钮(功能类似于超链接)。
在“概述”页面上,最初展开基本部分或核心部分,但折叠高级部分。在非概述页面上,提供一个“主页”图标,将用户带回到概述页面。
展开概述页面的核心部分,并在其他页面上提供“Home”图标,将用户带回概览页面。
不要在平面外观编辑器选项卡中使用选项卡。使用选项卡的替代设计或呈现。
适用时,始终提供“Source”选项卡。为键盘导航指定区段、控件等的助记符。
编辑与大纲视图交互
为内容编辑器使用平面外观设计的插件应该为编辑器和大纲视图之间的完整双向交互提供支持。
在大纲视图中,为树视图的组织使用与内容编辑器中选项卡对应的分组元素。
使用与平面外观内容编辑器中的选项卡对应的分组元素,用于大纲视图中树视图的组织。
资源之道
在Eclipse中,工具的概念消失了。取而代之的是通用工具平台的概念-一个开放的、可扩展的IDE-其中添加了工具插件以扩展平台的功能。这些插件“教”Eclipse如何处理各种东西-java文件、web内容、图形、视频-几乎所有你能想象到的东西。在实现级别上,这些插件使用资源(项目、文件夹和文件)进行通信。资源是插件和外部工具之间集成的通用媒介。
制定资源概念的原因有几个:
- 一个厂商的插件和另一个厂商的插件之间的集成,只有在有一个公共的、众所周知的数据抽象的情况下才有可能。
- 只有在某种程度上一切都是文件时,才有可能与外部工具集成。
资源在UI级别也很重要。如果对象命令、装饰器或属性页贡献到IResource,平台将确保此贡献在资源出现的任何视图或编辑器中可见。例如,.java文件将在Navigator、层次结构视图和Packages视图中可见。对于用户来说,.java文件是同一个对象,不管它出现在哪个视图中,因此对象的外观、上下文菜单和属性在每个视图中都应该是一致的。
在某些情况下,特定视图或编辑器的实现可能会将资源包装在另一个对象中,以用于表示目的。如果包装器等效于资源,那么向平台公开此等价非常重要。如果资源被公开,平台可以将资源贡献应用到资源等效对象。这确保了平台中对象的表示一致性。
对象的底层资源是通过在模型对象上实现IAdaptable并回答IContributorResourceAdapter来公开的。有关IContributorResourceAdapter实现的更多信息,请参阅EclipseCorner。
使用IContributorResourceAdapter公开资源等效模型对象的资源。
可达性
在视图、编辑器或其他控件中,每个功能都应该可以使用鼠标或键盘访问。
在对话框或向导中,应该为每个按钮或控件定义一个快捷键。快捷键应在适当的快捷字符下面显示下划线。
工具提供的所有功能都应该可以使用鼠标或键盘访问。
标准加速器
Eclipse平台定义了大量的快捷键。插件开发人员应确保现有快捷键不与其插件中定义的快捷键冲突。
如果可能,请遵循OS用户体验指南:窗 (老一点), 麦克, Linux/GTK.
钥匙 | {KEY}本身 | Shift+{key} | Ctrl+{KEY} | Ctrl+Shift+{key} | ALT+{KEY} | Ctrl+ALT+{KEY} |
A | 编辑/选择所有 | |||||
B | 项目/建造 | 书签(见图) | ||||
C | 编辑/复制 | |||||
D | (JDT编辑器)显示 | |||||
E | (JDT编辑器)下一个问题 | (JDT编辑器)以前的问题 | ||||
F | 编辑/查找/替换 | |||||
G | ||||||
H | 编辑/搜索 | |||||
I | ||||||
J | ||||||
K | (查看)任务 | |||||
L | 编辑/转到行 | |||||
M | (JDT编辑器)添加导入 | (JDT)重构/移动 | ||||
N | 档案/新文件/其他文件 | 导航员(见图) | ||||
O | (JDT编辑器)组织导入 | (视图)大纲 | ||||
P | 文件/打印 | (视图)属性 | ||||
Q | (JDT编辑器)检查 | |||||
R | ||||||
S | 文件/保存 | 文件/全部保存 | 窗口/切换到编辑器 | |||
T | (JDT)开放式类型 | |||||
U | ||||||
V | 编辑/粘贴 | |||||
W | ||||||
X | 编辑/切割 | (JDT)重构/提取法 | ||||
Y | 编辑/重做 | (JDT)重构/重做 | ||||
Z | 编辑/撤消 | (JDT)重构/撤消 | ||||
空间 | (JDT编辑器)内容辅助 | |||||
背空间 | 窗口:撤消 | |||||
附签 | (JDT编辑器)右移 | (JDT编辑器)左移 | ||||
插入 | 窗口:粘贴 | 窗口:复制 | ||||
删除 | 编辑/删除 | 窗户:剪 | 编辑/删除 | |||
家 | ||||||
端部 | ||||||
翻页 | ||||||
下页 | ||||||
插入 | ||||||
删除 | ||||||
连字符(-) | 显示系统菜单 | 显示视图菜单 | ||||
左箭 | ||||||
右箭 | ||||||
上箭 | ||||||
下箭 | ||||||
F1 | 帮助 | 帮助 | 帮助 | 帮助 | ||
F2 | (导航器视图)重命名,(JDT编辑器)OpenJavaDoc | |||||
亚细亚 | (JDT编辑器)选择打开 | |||||
F4 | (JDT编辑器)开放式类型层次结构 | 文件/关闭所有 | 文件/关闭 | |||
F5 | (导航器视图)刷新,(属性视图)刷新,(调试)步骤 | |||||
F6 | (调试) | 下一个编辑 | 前编辑 | |||
F7 | (调试)运行以返回 | 下一视图 | 前视图 | |||
F8 | (调试)恢复 | |||||
F9 | ||||||
F10 | (调试)最后重新启动 | |||||
F11 | (调试)调试 | (调试)运行 | ||||
F12 | 激活编辑器 | 激活编辑器 |
最佳做法
在本节中,我们提供了在Eclipse平台中设计和实现一些常见用户交互的最佳实践示例。
语法和编译错误处理
在设计提供语法或编译检查支持的编辑器时,请遵循Eclipse平台中的Java工具设计。
如果可能的话,提供动态语法检查。使用红色“切换”指示潜在错误在源代码中的位置。使用右侧栏上的红色框表示文件中的大致错误位置。使用右上角的突出标记指示文件包含错误或警告。使用红色表示错误,使用黄色表示警告。
在用户执行保存操作后,用户将在左手边缘上的一个更突出的标记来指示文件中的错误和警告。当使用鼠标指针在标记上悬停时,应该显示描述文本。此外,在ContentEditor选项卡中显示图标装饰符。在显示Eclipse工作区中的资源的树视图中,使用图标装饰符指示与此资源关联的错误或警告,并将图标装饰符指示传播到树视图中资源的父级。最后,应该在Task视图中添加一个条目,以列出错误和警告。
编码协助
除了在编辑器中支持标准内容辅助之外,编辑器还应该利用快速修复和快速帮助的使用。使用左侧边缘的灯泡标记提供如何解决源代码问题的建议。用户可以单击灯泡或使用Edit->QuickFix菜单项来调用此命令。
即使文件中没有语法错误,用户也应该能够使用QuickFix机制在代码中获得某些快速帮助。例如,将表达式赋值给局部变量。
如果编辑器用于用给定的编程语言编写代码,则应启用超链接代码支持。当使用鼠标指针在源代码上悬停时,按Ctrl键将类、方法和字段标识符等编程语言结构转换为指向相应声明的可单击链接。
如果可能,插件应该在编程语言或应用程序开发级别提供重构支持。例如,如果用户在Java类中重命名方法,重构支持应该使用户能够自动查找和修复所有引用。如果用户更改Web应用程序中给定资源的URL,重构支持将使用户能够自动更新对修改后的URL的引用。
上下文菜单
下面是一个建议的过程来解释为什么要从上下文菜单中添加或删除菜单项。目标是将上下文菜单项的数量减少到不超过20个。
首先,删除对选择不敏感的菜单项。第二,删除不经常使用的菜单项。第三,检查对选择不敏感但经常使用的项目。将这些项目中的大部分添加回来。第四,?删除所有禁用的菜单项,但剪贴板操作(如复制和粘贴)和团队、比较和替换子菜单除外。第五,删除经常使用的菜单项,选择敏感,但有一个主要的键盘快捷键定义,除了剪贴板和保存操作。
平面外观设计的标签、字体和布局
对于平面外观设计,当使用带有椭圆的按钮时(除了“更多的.”)按钮),则应该弹出一个辅助窗口,该窗口可以是对话框或向导。
对节标题使用标题大写。区段列之间的距离应为32像素。
在左侧显示列表框的页面上,列表框与右侧列(例如,显示所选列表框项的属性)之间的距离应为10像素。
对于标签和字段,启用状态使用RGB值(160、160、164),只读状态使用RGB值(0、0、0),禁用状态使用RGB值(128、128、128)。
对于listbox控件,对边框使用RGB值(0、0、0)表示已启用状态,对于禁用状态使用RGB值(128、128、128)。
装饰师
当由两个或多个装饰者执行的装饰相互冲突时,启用和禁用装饰器是非常有用的。例如,cvs插件可能通过将基本映像与自定义映像重叠来装饰基本映像,而“装饰示例”插件可能在同一位置叠加不同的自定义映像,从而与cvs插件装饰发生冲突。如果两个不同的装饰器在同一资源冲突中执行的装饰,用户应该适当地启用/禁用不同的装饰器以获得所需的装饰。
执行提示:
设计与不同Eclipse视图提供的基本装饰不冲突的自定义装饰器是非常重要的。例如,如果存在编译错误,PackageExplorer视图会用问题标记(问题标记放在左下角)装饰Java文件。在问题标记的位置使用自定义装饰来装饰资源是一种不好的做法,开发人员应该避免这种情况。如果在左下角执行自定义装饰,则自定义装饰和问题标记装饰(如果有的话)会发生冲突,因此用户将无法查看这些装饰。解决上述问题的方法是在右下角提供自定义图像装饰,这与Eclipse提供的基本图像装饰没有冲突。左上角是第二最好的地方,尽管它与二进制项目装饰器冲突。右下角和右上角应避免,因为它们是在装饰器机制之外装饰的。
开发人员核对表
下面是开发UI插件的开发人员的清单。这,这个能用于认证目的。
一般UI指南
日食精神
遵循并应用良好的用户界面设计原则:用户在控制,直接,一致性,宽恕,反馈,美学和简单。
遵循平台领导的用户界面约定。
注意不要混淆UI隐喻。它可能模糊了最初的概念,以及你自己的应用。
如果您有一个有趣的想法,请与Eclipse社区合作,使Eclipse成为一个更好的平台。
资本化
对菜单、工具提示和所有标题使用标题样式大写,包括用于窗口、对话框、选项卡、列标题和按钮的标题。将第一个和最后一个词以及所有名词、代词、形容词、动词和副词大写。不包括结束标点符号。
对对话框或窗口中的所有控件标签,包括复选框、单选按钮、组标签和简单文本字段使用句子样式大写。将第一个单词的第一个字母和任何适当的名称(如Java)大写。
语言
在插件中创建资源的本地化版本。
错误处理
当出现需要用户明确输入或用户立即关注的错误时,请使用模态对话框进行通信。
如果产品中出现编程错误,请使用对话框进行通信,并将其记录下来。
UI图形学
设计
遵循为EclipseUI图形创建的可视化样式。
使用公共调色板作为创建图形元素的基础。
重新使用核心视觉概念来维护Eclipse插件的一致表示和意义。
重用来自公共元素库或其他基于Eclipse的插件的现有图形。
创建并实现工具栏和本地工具栏图标禁用状态的图形版本。
使用用于创建和维护UI图形的设计模板,可以方便地共享文件和高效地生成大量图形。
规格
使用为图形类型指定的文件格式。
在用户界面中设计的位置使用适当的图形类型。
遵循每种图形的特定尺寸规格。
切割图形与特定的位置显示,以确保在用户界面中对齐。
实施
利用所提供的切割动作来提高切割的速度和效率。
缩短文件名,而不是使用完整的图标名,例如,NewInterface变成“newint”。
在文件名中使用小写字符,例如,DTD变为“DTD”。
如果可能的话,在文件名中使用10个字符或更少的字符(下划线算作字符)。
使用文件名后缀来描述其在工具中的位置或功能,例如newint_wiz,或者在需要多个大小的图标情况下使用它的大小。
保留提供的原始文件名。
遵循预定义的目录结构和命名约定。
保留提供的原始目录名。
通过将所有图形保存在一个或几个第一级用户界面目录中,尽量减少插件中的图形复制。
使用所提供的活动、启用和禁用状态。
组件开发
命令
每个命令都必须有标签、工具提示和全彩色图像。标签和工具提示必须使用标题样式大写。
命令工具提示应该描述命令的结果,而不是命令的当前状态。使用与命令标签相同的文本。
采用工作台的标签术语,用于新建、删除和添加命令。
只有当命令能够成功完成时,才应该启用该命令。
命令启用应该是快速的。如果命令启用不能快速,则乐观地启用命令,并在调用命令时显示适当的消息,但不能完成。
对话
打开对话框时,将初始焦点设置为容器中的第一个输入控件。如果没有输入控件,则应将初始焦点分配给默认按钮。
Sslush Bucket小部件(或TwinBox)应该从左向右流动,源对象位于左侧。它应该有这个顺序的>,<,>,<控制按钮。
奇才
对任何包含多个步骤的任务使用向导,这些步骤必须按特定顺序完成。
每个向导必须包含一个带有横幅图形的标题和一个用于用户反馈的文本区域。它还必须包含页脚中的Back、Next、Finish和Cancel按钮。
使用提示(而不是错误消息)启动向导。
使用当前工作台状态为向导中的字段设置种子。
按选项卡顺序验证向导数据。信息缺失时显示提示,信息无效时显示错误。
只有当对话框中的所有所需信息都存在且有效时,才启用Next/Finish按钮。
从向导文本中删除所有编程消息ID。
在向导中引用现有对象时,请使用Browse Button。
如果创建了新文件,请在编辑器中打开该文件。如果创建了一组文件,请在编辑器中打开最重要的文件或中央文件。在创建示例项目时打开readme.html文件。
如果创建了新项目,则提示用户并更改活动透视图以适应项目类型。
如果创建了新对象,请在适当的视图中选择并显示新对象。
如果可以定义合理的默认值,则在向导中创建文件夹对象。
当项目必须是项目时,对输入字段标签使用术语“ProjectName”;否则,使用“文件夹名称”一词。不要限定这个术语。
编辑
使用编辑器编辑或浏览文件、文档或其他主要内容。
在编辑器中所做的修改应该遵循一个开放的保存-关闭生命周期模型。
对于每个编辑器输入,在透视图中可能只存在一个编辑器实例。
必须能够为每个不同的输入打开编辑器的单独实例。
编辑器应加上正在编辑的文件、文档或输入的名称。
在多页编辑器中,使用选项卡控件来激活页面。标签应该保留为一个单词,最多两个单词。
除了明显的命令外,编辑器中所有可用的命令都应该添加到窗口菜单栏中。
在窗口菜单栏中使用编辑器贡献的标准格式。
如果编辑器支持剪切、复制、粘贴或任何全局命令,则必须从窗口菜单栏和工具栏中的相同命令执行这些命令。
用视图菜单中最常用的项填充编辑器工具栏。
用面向选择的命令填充上下文菜单。
使用编辑器上下文菜单的标准格式。
为每种选择类型使用一组固定的命令填充上下文菜单,然后启用或禁用每个命令以反映选择状态。
将编辑器中的所有上下文菜单注册到平台。
为编辑器中的每个对象类型实现一个命令筛选器。
如果删除编辑器的输入,且编辑器不包含任何更改,则应关闭编辑器。
如果编辑器的输入被删除,并且编辑器包含更改,编辑器应该给用户一个机会将他们的更改保存到另一个位置,然后关闭。
如果资源是脏的,请在编辑器选项卡中显示的资源名称前加上星号。
对待只读编辑器输入就像对待任何其他输入一样。启用“保存”(如果可能的话)。在状态栏区域显示“只读”。
如果编辑器中的数据太广泛,无法在单个屏幕上看到,并且会产生结构化的大纲,则编辑器应该向Outline视图提供大纲模型。
关于编辑器和大纲视图之间位置的通知应该是双向的。在大纲视图中应酌情提供上下文菜单。
错误或警告图像应分别添加到带有错误或警告的项中。如果容器本身有错误,容器应该有红色的X;如果容器的子代有错误(但容器本身没有),则为灰色X;如果容器或其子代都没有错误,则为no X。
如果合适,在编辑器中实现“添加任务”功能。
如果合适,在编辑器中实现“添加书签”功能。
包含文本源行的编辑器应该显示当前行,并(可选)显示状态行列号。编辑器显示编辑器中每一行的行号是可选的。
表格单元格编辑器应该支持单击激活模型,在编辑模式下,它们应该在单击时呈现复杂的控件。
当用户单击单元格或按下“Enter”键时,应提交表单元格编辑器中的更改。当用户按下“ESC”键时,应取消选择。首先,应支持字母导航,将其作为单元格内的一种游标机制。
在编辑器中执行细粒度错误验证时,请使用红色squiggles在无效内容下划线。当用户将鼠标移动到红色的Squiggles上时,将错误文本显示在“飞越”弹出框中。
使用Task视图显示调用Save命令时发现的错误。
如果在工作台之外对资源进行了修改,则应该提示用户在编辑器中调用Save命令时重写在工作台之外所做的更改,或者退出Save操作。
意见
使用视图可以导航信息层次结构、打开编辑器或显示对象的属性。
必须立即保存视图中所做的修改。
透视图中可能只存在一个视图实例。
一个视图必须能够在多个透视图中打开。
可以从“窗口”>“显示视图”菜单打开视图。
标题栏中的视图标签必须以透视>显示视图菜单中的视图标签作为前缀。
如果一个视图包含多个控件,则建议将其拆分为两个或多个视图。
当视图第一次打开时,从透视图的状态派生视图输入。
如果视图显示资源树,请考虑使用窗口输入作为视图中可见信息的根。
使用视图菜单显示命令,而不是面向选择的命令.
使用命令的标准顺序查看下拉菜单。
只在工具栏上放置最常用的命令。工具栏上的任何命令也必须出现在菜单中,无论是上下文菜单还是视图菜单。
用面向选择的操作填充上下文菜单,而不是演示操作。
对视图上下文菜单使用标准命令顺序。
为每种选择类型使用一组固定的命令填充上下文菜单,然后启用或禁用每个命令以反映选择状态。
如果一个对象出现在多个视图中,那么它应该在每个视图中都有相同的上下文菜单。
向平台注册视图中的所有上下文菜单。
为视图中的每个对象类型实现一个命令筛选器。
如果视图支持剪切、复制、粘贴或任何全局命令,则必须从窗口菜单栏和工具栏中的相同命令执行这些命令。
在会话之间保持每个视图的状态。
导航视图应支持视图菜单上的“链接编辑器”
透视
为长期存在的任务创建一个新的透视图类型,这涉及到较小的、非模式的任务的性能。
如果您只想公开一个或两个视图,则扩展现有的透视图类型。
应以合理的方式定义透视图中每个视图的大小和位置,以便用户可以根据需要调整或移动视图。在定义初始布局时,重要的是要考虑视图(和编辑器)之间的整体流程。
如果透视图只有一部分,它可能更适合作为视图或编辑器。
如果在透视图中有一个编辑器区域是不可取的,请隐藏它。不要调整编辑器区域的大小,使其不再可见。
使用适合透视图的任务方向的命令和命令集以及任何更大的工作流填充窗口菜单栏。
只有当用户明确表示希望打开一个新透视图时,才应该打开该透视图。在做这个声明时,用户同意离开他们的旧上下文,创建一个新的上下文。
如果打开一个新透视图是另一个命令的副作用,则用户应该能够关闭此行为。
如果打开了新透视图,则应根据用户偏好在当前窗口或新窗口中打开该透视图。
添加到“新建、开放透视图”和“显示视图”菜单中的快捷方式列表最多应为7项加/减2项。
窗
使用操作集将操作贡献到窗口菜单栏和工具栏。
当在操作集中分发操作时,遵循平台领导。
首先将操作添加到窗口菜单栏,然后将操作添加到窗口工具栏(如果它们将被频繁使用)。
定义每个操作集,并考虑到特定的任务。
动作集应该包含尽可能小的动作语义块。避免只为整个插件提供一个操作集的诱惑。
使用操作集来共享在两个或多个视图或编辑器中有用的一组操作。
让用户控制可见的操作集。不要试图为他们控制它。
“打开对象”操作必须出现在窗口的“导航下拉”菜单中。
始终使用全局状态栏显示与状态相关的消息。
特性
当快速访问非常重要时,使用Properties视图编辑对象的属性,您将快速地从一个对象切换到另一个对象。
使用“属性”对话框编辑计算成本高昂的对象的属性。
使用“属性”对话框编辑包含相互间复杂关系的对象的属性。
“属性”对话框应包含“属性”视图中显示的项的超集。
小部件
对于具有与单元格项关联的复选框的Tree和Table小部件,更改当前选择不应自动更改所选项的复选状态。但是,在更改当前选择的检查状态时,应将其设置为给定的项。
标准件
如果适当的话,使用插件注册表将操作添加到Eclipse的标准组件中。
如果子类或复制任何标准组件,则始终保留标准组件的特性。
导航器视图
使用插件注册表将操作添加到Navigator View菜单、工具栏和上下文菜单中.
使用IResourceActionFilter.java和IProjectActionFilter.java中定义的属性来控制Navigator中上下文菜单操作的可见性。
在每个视图中使用“Navigator->ShowinNavigator”命令,将资源链接回Navigator。
任务视图
使用CoreResourceManagement插件中的MarkerManager服务向任务视图添加标记(任务、错误和警告)。
每个标记的描述文本应该简短、简洁,以便适合Eclipse的状态行。
使用插件注册表将操作添加到“任务”视图菜单、工具栏和上下文菜单中.
使用IMarkerActionFilter.java中定义的属性来控制任务视图中上下文菜单操作的可见性。
支持f1键盘命令,并将其链接到infopop,其中详细描述了任务视图中选定的项。
偏好对话框
全局选项应在“首选项”对话框中公开。
通过菜单或工具项公开视图本身中特定视图、编辑器或窗口的首选项。
从一个首选项页面开始。如果你需要的话,进化到更多。
如果创建首选项组,请使用根页查找经常使用的首选项或那些具有广泛传播效果的首选项。专门在子页面中。根首选项页不应为空。
首先尝试将插件首选项、向导和视图集成到新插件的现有类别中,然后再考虑创建新类别。
平面造型设计
使用平面外观设计的用户方案,涉及广泛的属性和配置编辑。
展开概述页面的核心部分,并在其他页面上提供“Home”图标,将用户带回概览页面。
使用与平面外观内容编辑器中的选项卡对应的分组元素,用于大纲视图中树视图的组织。
资源之道
使用IContributorResourceAdapter公开资源等效模型对象的资源。
可达性
工具提供的所有功能都应该可以使用鼠标或键盘访问。
术语表
命令
A 命令,用户为执行某些特定功能而调用的项,可能以菜单中的项或工具栏中的项的形式出现。在反映这一点时,它具有菜单或工具项标签、工具提示和图像的属性。作为插件开发人员,您可以为窗口菜单栏和工具栏提供命令,也可以为单独的视图和编辑器提供命令。对窗口的贡献使用动作集一组面向任务的命令,用户可以显示或隐藏这些命令。对视图或编辑器的贡献使用单个命令执行。
书签视图
用于浏览工作台中书签的视图。
编辑
编辑器是工作台页面中的可视组件。它通常用于编辑或浏览文档或输入对象。输入使用IEditorInput
..编辑器部分中的修改遵循开放保存-关闭生命周期模型(与视图部分相反,在视图部分中,修改将立即保存到工作台中)。
档案
工作区中的一个对象,类似于文件系统中的文件。
文件夹
工作区中文件的容器。
导航员视图
用于浏览工作区中的文件的视图。
轮廓视图
视图,通常用于查看活动编辑器的大纲。
透视
透视图是一组视图和编辑器(部件)的可视容器。这些部分完全存在于透视图中,并不是共享的。透视图也像书中的一页。它与任意数量的其他透视图一起存在于窗口中,就像书中的一页一样,在任何时候只有一个透视图是可见的。
平台
工具集成的通用框架。
偏好
首选项页用于编辑平台中某个功能的首选项。
工程项目
工作区中的一组文件和文件夹。每个项目映射到文件系统中相应的用户指定目录。
属性视图
视图,通常用于浏览活动编辑器或视图中对象的属性。
属性对话框
编辑对象属性的对话框。
属性页
“属性”对话框中的页。
资源
项目、文件夹和文件的通用名称。
任务视图
用于浏览工作区内的任务、错误和警告的视图。
视点
视图是工作台页面中的可视组件。它通常用于导航信息层次结构(如工作区)、打开编辑器或显示活动编辑器的属性。在视图中所做的修改会立即保存(与编辑器部分相反,编辑器部分符合更精细的打开保存-关闭生命周期)。
巫师
向导通常用于创建新资源、导入资源或导出资源。
工作台
Workbench为Eclipse提供了用户界面结构。Workbench的目的是促进工具的无缝集成。这些工具有助于工作台定义的扩展点。工作台负责用户界面的显示和协调。
工作区
插入Eclipse平台的各种工具对用户工作区中的常规文件进行操作。工作区由一个或多个顶级项目组成,其中每个项目映射到文件系统中相应的用户指定目录。每个项目都包含一个文件夹和文件的集合。
确认
截图是Eclipse.org的贡献,本文档中使用的截图来自以下团队发布或正在开发的插件:
- Java开发工具Eclipse子项目
- WebSphere Studio Application Developer,IBM公司
- Rational XDE Professional,IBM公司。
通过同意共享用户界面设计的某些元素(包括正面的和负面的),我们认为这些团队帮助使UI指南更加强大。
版本2.1 2004年2月
版权(2001-2004年)国际商业机器公司。
Java和所有基于Java的商标和标识都是Sun Microsystems公司的商标或注册商标.在美国,其他国家,或者两者兼而有之。
Microsoft、Windows、Windows NT和Windows徽标是Microsoft公司在美国、其他国家或两者的商标。
Eclipsev3.xUI指南更新(附后)
(本节需要纳入上述文件。)
下面是正在进行的Eclipsev3.xUI准则更新草案。
十大
这是十大EclipseUI准则和违规行为的起始集合。这些列表的目的是为EclipseUI设计人员和开发人员提供一个起点,分别提供需要遵循和避免的最重要的实践。
若要查看迄今为止的所有注意事项,请转到十大列表工作页面.
十大EclipseUI指南
- 如果扩展或插入Eclipse,请使用Eclipse外观和感觉
- 使用常用的SWT控件来获得SWT提供的跨平台适应性和可访问性。
- 熟悉您正在构建的UI的API
- 使用与Eclipse样式、装饰、状态和质量一致的图标和图形
- 了解您正在开发的开放源码软件的约定。
- 使用可理解的消息帮助人们从错误条件中恢复过来。
- 不要在错误状态下启动对话框或向导
- 使用快速修复和快速辅助机制
- 预留“抛光”时间
十大Eclipse UI违规行为
- 低质量的图形或与Eclipse风格不一致的图形
- 组织不良或大小不一的对话框和向导
- 无用对话
- 隐秘错误信息
- 带有连接字符串的消息
- 不遵守平台使用的属性页(普通和选项卡)
- 假定比其他贡献更重要(见下文John/Mik的评论)
一般UI指南
常见错误消息
摘要
使用错误消息的公共结构来帮助用户诊断错误并从错误中恢复。这将提高用户的自给自足能力,并降低基于Eclipse的产品的支持成本。
问题描述
在基于Eclipse的产品中,错误消息的显示不一致。这种不一致使得用户很难理解错误条件,很难诊断和从问题中恢复。
最佳做法
基于Eclipse的产品应该帮助用户在显示错误消息时诊断潜在的问题。我们需要合并、转换或协调通过各种子系统或依赖组件产生的错误.例如,当用户为SQL查询提供了不正确的用户ID或密码时,当前会看到(神秘的)SQL错误消息。在这种情况下,用户将不知道如何解决这个问题,也不知道在哪里寻找可能的解决方案。在理想的场景中,如果我们的工具协调或转换DB2返回的错误代码,并通知用户所提供的userid或密码有问题,我们将为用户提供良好的体验。我们通常应该利用症状数据库进行诊断和错误恢复。用于错误消息转换或协调的一种可能方法是:利用常见的错误消息日志工具。也就是说,在代码中使用CBE基础结构来记录所有错误或警告条件。
[Todo:需要关于Eclipsev3.3错误消息基础结构的更详细信息.TBD]
将格式的四个组件应用于常见错误消息,使用户容易理解这些消息,并确保一致性。每条错误信息应包括以下四个主要组件:
·信息ID
·电文文本
·解释
·行动
这个消息ID提供一种快速方法来区分一条消息和另一条消息。这个讯息文本简要地描述了这个问题。这个解释包括生成消息的原因和导致消息的条件。这个行动提出解决问题的方法。错误消息是针对最终用户的;考虑到这一点,我们应该在大多数情况下将编程错误文本转换为用户可理解的描述。
对于用户界面(UI)中显示的错误消息,不要显示消息的ID,而是使其可访问。UI错误消息是针对最终用户的,而不是针对开发人员的。因此,我们不应该使用一个(神秘的)消息ID来恐吓最终用户,因为它不会增加他们对错误条件的理解的即时价值。但是,我们应该在消息的详细说明中提供唯一的消息ID,以便用户可以使用消息ID在Web上搜索,或者向IBM的支持小组提交ID以获得进一步的帮助。
将UI中显示的每个错误消息记录到日志文件中。还应将显示给UI中的最终用户的错误或警告消息记录在文件中,以便在以后跟踪这些消息以进行诊断和恢复。CBE基础设施为此目的提供了一个日志记录工具。
对于控制台视图或登录文件中显示的错误消息,将消息ID显示为第一项,并使其成为指向其他信息的超链接。控制台视图中显示的错误消息应继续将消息ID显示为第一项,但它应该是指向其他信息的超链接,以便用户能够快速诊断问题。
对于问题视图中显示的错误消息,请利用QuickFix特性向用户提供解决方案。由于在Problems视图中可用的空间有限,因此对于该视图中显示的错误或警告,我们应该利用QuickFix特性在可能的情况下向用户提供解决方案。
小贴士
·当不可能合并、转换或协调通过各种子系统或依赖组件产生的每一个错误时,将工作精力集中在典型用户场景中经常遇到的错误上。
从我们的支持团队中获得一份最优秀的PMRS列表,并将这些错误作为第一要务加以解决。
·利用症状数据库、信息开发人员和用户体验设计人员,将错误文本转换为对用户有意义和可理解的描述。
·使用EclipseIDE工作台中的上下文信息,例如当前启用的功能,或当前的用户角色或角色(例如,JavaDeveloper),对错误文本进行范围设置。
好例子
我们产品中的错误信息示例
下面是来自IBM产品的一些示例错误消息,以说明消息之间的不一致性以及用户在理解错误条件方面的挑战。
下面是一些很好的例子
[TBD-屏幕截图]
相关信息
TBD
组件开发
属性视图
摘要
为了保持属性的一致性和清晰性,请使用标准的选项卡视图,具有适当的选项卡顺序、灵活的布局、详细的用户帮助、精确的多选择以及没有子选项卡。
问题描述
在许多基于Eclipse的产品中,Properties视图的使用和呈现并不一致。对于使用这些产品中的多个的用户来说,这种不一致是有问题的。此外,布局、控制和标签方面的错误选择会显著降低Properties视图的有效性和效率。
最佳做法
使用标准选项卡视图实现产品一致性。(下面的图1显示了一个示例。)应该支持选项卡和属性表-新手的选项卡,专家的表。理想情况下,选项卡和表将通过工具栏控件进行切换,以实现快速转换。如果没有切换,并且表将显示在最后一个选项卡上,则此选项卡的最佳名称是“All”。这是一个描述性的、准确的名称,表格式的演示将有助于将有问题的项目排除在新手的手中。
标签应该按顺序贴上标签:General,。....全部。每个Properties视图都应该具有一个General选项卡,其中包含最常用的属性。这将加快新用户的方向。如果支持的话,最后一个选项卡应该命名为All,并包含一个表视图。中间标签?在可能的情况下,他们应该遵循其他产品中的相关概念,使用类似的名称和组织。否则,没有针对中间选项卡的具体建议。
尽可能避免使用子标签.这项建议有几个理由。首先,子选项卡不易被用户发现,因为除非选择顶级选项卡,否则子选项卡通常是不可见的。第二,子标签要花更长的时间才能导航到,即使当用户熟悉它们时也是如此。最后,子选项卡增加了一种复杂程度,在大多数情况下都是可以设计的,特别是通过使用“所有”选项卡。
属性视图必须通过对象或编辑器的上下文菜单访问。允许用户分离或快速查看此视图以支持打开的编辑器。需要这样的支持才能让用户同时看到大型图表编辑器和属性。Eclipse3.1及更高版本支持独立视图(通过视图上下文菜单),并且可以轻松地为Properties工作。这些视图的优点是在打开和结束时坚持,但它们的缺点是总是处于顶部(模糊编辑器)。另一个很好的选择是创建一个快速的属性视图,这样它就可以根据需要显示在顶部。
选项卡布局应优雅地适应视图方向(水平或垂直)。根据用户使用的其他工具,屏幕不动产可能需要在任一方向打开Properties视图。根据需要,应该动态地布局选项卡内容,以便重新定向。根据用例的不同,为主要的方向设计一个Properties视图是合理的,但是不太常见的方向也应该得到解决。
动态帮助和工具提示可以澄清字段和数据。(Eclipse3.1中引入了动态帮助。)对于新手用户来说,简单的属性最初可能是令人困惑的,而复杂的属性有时也会让专家用户感到困惑。因此,在可能的情况下使用动态帮助。字段级动态帮助是可取的;否则,备份方法是提供悬停帮助(工具提示)。
小贴士
在编辑器中选择多个对象时,请遵循以下指导原则。
只显示那些对象集合有意义的属性。任何设置更改都应用于所有基础对象。
显示所有选定对象的共同属性。如果属性值不同,则使用混合状态显示与这些值关联的控件。
·如果所选对象是多个离散对象(例如,文件夹)的集合,则显示单个分组对象的属性,而不是为离散对象显示多个对象属性表。
好例子
图1:带有推荐控件布局的选项卡视图。
相关信息
TBD
限制上下文菜单
摘要
从编辑器和视图中的对象的上下文菜单中删除额外的项。
问题描述
上下文菜单提供了一种快速方便的方式,使用户能够访问大量的功能。不幸的是,在对象的上下文菜单中添加太多的功能是很有诱惑力的。由此产生的菜单可能变得过于冗长和复杂,从而降低了用户处理产品的效率。此外,可以为编辑器或视图中的所有对象创建相同的上下文菜单,无论其类型如何。这种一致性剥夺了用户对当前使用的对象类型的微妙反馈。用户需要上下文反馈才能清楚地了解每种对象类型的功能。
最佳做法
至少有三种方法可以修剪一个对象的上下文菜单,这样它就可以快速地扫描并很好地针对对象。
首先,删除根本不适用于对象的菜单项。这听起来很明显,但在复杂的产品环境中,不相关的项目很容易进入上下文菜单。当然,一个不适用的菜单项可能会变成灰色。但是,如果它永远不适用,最好完全删除该项目。例如,在导航器样式视图中的C+Header(.h)文件的上下文菜单上有一个“RunAs”项可能会令人困惑,因为Run操作实际上适用于代码。
其次,删除仅适用于整个视图或编辑器的项。虽然用户可能会发现从一个对象访问这些项目很方便,但最好是有一个“精益且平均”的上下文菜单-一个整洁的、集中注意力在手头的对象上的菜单。通过右键单击任何对象外的空白(或单击“视图”菜单),可以更好地访问与视图或编辑器整体相关的操作。用户将获得更好的视图或编辑器作为一个整体,而不是任何混乱的菜单项居住在哪里。例如,视图首选项不应该在该视图中的对象的上下文菜单上,而应该在任何对象(或视图菜单)之外的上下文菜单上。
最后,从对象的上下文菜单中删除应用于其他邻近对象的项,但不应用于特定的相关对象。生成的菜单对用户来说更有意义,因为在逻辑上适合对象的操作将存在,而对其他类型的对象逻辑上不合适的操作是存在的。例如,在浏览器视图中显示的Java方法的上下文菜单上有一个“Close Project”项会让人感到困惑,因为导入操作适用于项目级别。
小贴士
有时,在对象的上下文菜单中添加特定于视图的项是有价值的,如果菜单项的操作可以某种方式为对象定制的话。例如,一个通用的“新建”菜单项可能会打开一个预先填充与所选对象相关的项的新编辑器。确保对不同类型的对象尽可能地保持上下文菜单中的项顺序。这种相似性将使用户的一致性最大化。
在不可能显著减少大型上下文中的项目数量的情况下,请考虑使用子菜单将一些顶级项重构到第二级。
好例子
图1:为大纲视图中的包量身定制的上下文依赖菜单。
图2:为大纲视图中的类量身定制的上下文菜单。
图3:大纲视图的上下文独立菜单。
相关信息
这个问题在EclipseUI准则2.1中讨论,在题为“组件开发-编辑”一节(准则6.11-6.13)中。
类别: