Eclipse官方网站
扩展点使用
org.eclipse.ui.intro
intro
必要的配置为id及class,class 可以选择 eclipse的org.eclipse.ui.intro.config.CustomizableIntroPart ,调用Eclipse的框架结构
- id - a unique identifier for this introduction
- icon - a plug-in-relative file name of the icon that will be associated with this introduction
- class - a fully qualified name of the class implementing the
org.eclipse.ui.intro.IIntroPart
interface. A common practice is to subclass org.eclipse.ui.part.intro.IntroPart in order to inherit the default functionality. This class implements the introduction. - contentDetector - a fully qualified name of a class extending
org.eclipse.ui.intro.IntroContentDetector
. This optional class is used to detect newly added introduction content. If new content is available, the view showing the introduction will be opened again. - label - an string label for this introduction that will be used in the construction of the open action as well as the part label Since 3.2
introProductBinding
IntroId 为 上文intro配置下的id, productId可通过Platform.getProduct() 获取。
Specifies a binding between a product and an introduction. These bindings determine which introduction is appropriate for the current product (as defined by org.eclipse.core.runtime.Platform.getProduct()
).
- productId - unique id of a product
- introId - unique id of an introduction
org.eclipse.ui.intro.config
config
introId为org.eclipse.ui.intro 下 intro的id,id为本扩展点配置的id,content为所配置的XML文件,主要的欢迎页面展示均在此,下文详细讲解此文件配置
- introId - the id of an intro part contribution that this configuration will be associated with.
- id - a unique name that can be used to identify this intro configuration
- content - an intro content file. The content file is an XML file that contains the specifics of the intro (intro content file format specification). The content file is parsed at run time by the intro framework. Based on the settings in this file, a certain number of pages, groups, and links are shown to the user when the intro is opened.
- configurer - a name of the fully qualified class that provides for dynamic aspects of the intro configuration. This class can provide values of the substitution variables, children of the dynamic groups and resolve incomplete target paths. The class must extend
org.eclipse.ui.intro.IntroConfigurer
.
presentation
home-page-id 为主页面,为content下的XML文件中定义,standby为备用页面
- home-page-id - the id of the home (root) page, which is the first page of the introduction. This page can be used as an entry point to the other main pages that make up the intro.
- standby-page-id - an optional attribute to define the id of the standby page. The standby page will be shown to the user when the Intro is set to standby.
implementaion
kind中可以配置展示方式,Style为定义的css文件,os为可支持的操作系统,
- kind - Specifies the type of this implementation. The swt kind indicates a UI Forms based implementation, and the html kind indicates an SWT Browser based implementation
- style - The shared style that will be applied to all pages presented by this intro presentation implementation.
- os - The optional operating system specification used when choosing the presentation's implementation. It can be any of the os designators defined by Eclipse, e.g., win32, linux, etc (see Javadoc for
org.eclipse.core.runtime.Platform
). - ws - The optional windowing system specification used when choosing the presentation's implementation. It can be any of the ws designators defined by Eclipse (see Javadoc for
org.eclipse.core.runtime.Platform
).
org.eclipse.ui.intro.configExtension
configExtension
定义介绍配置的扩展。介绍部件配置中的任何页面或组都可以扩展,前提是它已通过定义锚点声明了可扩展性。
- configId - 将要扩展的介绍贡献的 ID
- content - 介绍内容文件。内容文件是一个 XML 文件。 内容文件在运行时由 intro 框架解析。根据此文件中的设置,打开介绍时会向用户显示一定数量的页面、组和链接。
action
自定义简介 URL 操作注册。这可用于创建新的介绍 URL 操作或预定义操作的快捷方式。
- name - 标识此操作的唯一名称。
- replaces - 替换简介 URL 中操作名称的宏。
扩展点配置 <action name="action111" replaces="runAction?pluginId=org.xtuml.bp.welcome&class=org.xtuml.bp.welcome.testAction"> </action> xml配置 <link label="Back" url="http://org.eclipse.ui.intro/action111" id="back" style-id="left"> <text>Click here to return to the welcome page</text> </link>
introContent.xml 文件详情
introContent是一个 XML 文件,其中包含介绍(介绍内容文件格式规范)的详细信息。 内容文件在运行时由 intro 框架解析。根据此文件中的设置,打开介绍时会向用户显示一定数量的页面、组和链接。
组件
Page
introContent 元素定义介绍内容文件的正文。内容文件由页面、可包含在多个页面中的共享组、其他配置中定义的锚点的扩展或现有元素的替换组成。
<!ELEMENT page (group | link | text | head | img | include | html | title | anchor | contentProvider)+>
<!ATTLIST page
id CDATA #REQUIRED
url CDATA #IMPLIED
style CDATA #IMPLIED
alt-style CDATA #IMPLIED
filteredFrom (swt|html)
content CDATA #IMPLIED
style-id CDATA #IMPLIED
shared-style (true | false)
bgImage CDATA #IMPLIED>
- id - 可用于标识此页面的唯一名称。
- style - CSS 文件的相对路径,仅在使用基于 Web 的演示文稿时应用于页面。该路径相对于此 xml 内容文件的位置。
- style-id - 将页面分类为给定类别的方法,以便可以应用通用样式。
- url - HTML 文件的可选相对路径。使用基于 Web 的演示文稿时,将显示此 HTML 文件,而不是为此页面定义的任何内容。此属性仅适用于主页,该主页在介绍配置扩展点的 presentation 元素中标识。所有其他页面都将忽略它。
- alt-style - SWT 演示文稿属性文件的相对路径,仅在使用基于 SWT 的演示文稿时应用于页面。该路径相对于此 xml 内容文件的位置。
- filteredFrom - 一个可选属性,允许从特定实现中筛选出给定元素。例如,如果某个组的 filteredFrom = swt,则意味着该组不会在 swt 实现中显示为内容。
- content - 一个可选属性,可以定义表示此页面内容的introContent.xml文件的位置。定义此属性时,将忽略此页面元素中除 id 之外的所有子元素和属性。这是因为现在假定此页的内容驻留在 content file 属性指向的 xml 文件中。解析为此文件的内容时,将选择其 id 与此页面元素中定义的 id 匹配的页面。 当性能存在问题时,可以使用这种页面分离,因为页面的内容现在加载得更延迟。
- shared-style - 一个布尔标志,用于控制将共享样式添加到此页面的样式列表中。如果(默认值),则共享样式将添加到此页面的样式中。如果 ,则不会将 Intro 配置中定义的共享样式注入到此页面的样式中。
true
false
- bgImage - 用作此组背景的图像的可选 URL
group
用于对相关内容、应应用类似样式的内容或将一起包含在其他页面中的内容进行分组。
<!ELEMENT group (group | link | text | img | include | html | anchor | contentProvider)*>
<!ATTLIST group
id CDATA #REQUIRED
label CDATA #IMPLIED
style-id CDATA #IMPLIED
filteredFrom (swt|html)
computed (true | false) "false"
bgImage CDATA #IMPLIED
expandable (true | false) "false"
expanded (true | false) "false">
- id - 组的唯一标识符
- label - 此组的标签或标题
- style-id - 将此组分类为给定类别以便可以应用通用样式的方法。
- filteredFrom - 一个可选属性,允许从特定实现中筛选出给定元素。例如,如果某个组的 filteredFrom = swt,则意味着该组不会在 swt 实现中显示为内容。
- computed -如果ture ,则此组的子组将由 intro 配置程序在运行时提供。在这种情况下,建议不要静态地定义任何子项。
true
- bgImage - 用作此组背景的图像的可选 URL
- expandable - 指定是否可以展开和折叠组。如果未指定,则默认为 false。如果为 true,则将参考 expanded 属性以确定是否应默认展开组。
- expanded - 指定是否应默认展开可展开组。如果未指定,则默认为 false(折叠)。这仅适用于可展开组(其中 expandable 设置为 true)。否则没有效果。
head(HTMl特供)
<!ELEMENT head EMPTY>
<!ATTLIST head
src CDATA #REQUIRED
encoding CDATA #IMPLIED>
直接将 HTML 包含在页面的 HEAD 内容区域中。它允许将其他 html 添加到 HTML HEAD 部分。这对于添加 java srcipts 或额外的样式表很有用。如果内容包含 $plugin:plugin_id$形式的替换段,则它们将被替换为 id 为 plugin_id 的插件的绝对路径。 此标记仅用于基于 HTML 的介绍部件实现。在UI Forms实现的情况下,它只是被忽略。一个页面可以有多个 head 元素。一个实现可以有一个且只有一个 head 元素(因为它是跨所有页面共享的)。
- id - 此标题的唯一标识符。
- style-id - 将此元素分类到给定类别中以便可以应用通用样式的方法
- filteredFrom - 一个可选属性,允许从特定实现中筛选出给定元素。例如,如果某个组的 filteredFrom = swt,则意味着该组不会在 swt 实现中显示为内容。
link *
<!ELEMENT link (text? , img?)>
<!ATTLIST link
url CDATA #REQUIRED
id CDATA #IMPLIED
label CDATA #IMPLIED
style-id CDATA #IMPLIED
filteredFrom (swt|html) >
可以链接到静态 HTML 文件、外部网站,也可以运行介绍 URL action。
- url - 指向外部网站、静态 html 文件或表示简介操作的简介 URL 的有效 URL。所有介绍 URL 的格式如下:http://org.eclipse.ui.intro/<action name>?param1=value1¶m2=value2,将由介绍框架处理。
预定义的操作将使用以下格式进行描述:操作名称 - 操作
介绍框架中包含以下预定义操作:
action parameter1 - description of parameter
action parameter2 (optional) - description of parameter
action parameter3 (optional) = ("true" "false") "false" - description of parameter, choice of either true or false and "false" is the defaultclose - closes the intro part
no parameters required<link id="arrow" label="Workbench" style-id="left" url="http://org.eclipse.ui.intro/close"> <text>Close this page and go to the workbench.</text> </link>
navigate - 按照给定的方向浏览介绍页面,或者返回到主页
direction = ("backward" "forward" "home") - specifies the direction to navigate
openBrowser - 在外部浏览器中打开该url。从3.1开始,此操作依赖于工作台浏览器的支持。这意味着为浏览器设置的任何用户首选项都将被尊重。
url -外部网站或本地HTML文件的有效url
pluginId(可选)-如果url是相对的,那么它是相对于插件的。在这里指定包含该文件的插件的id。
openURL - 打开在欢迎页面中嵌入的url。在SWT表示的情况下,url显示在外部浏览器中(类似于上面的openBrowser操作)。自3.1年
url -外部网站或本地HTML文件的有效url
pluginId(可选)——如果url是相对的,那么它指定包含该文件的插件的id。
runAction - 运行指定的操作。
class:实现org.eclipse.ui.intro.config.IIntroAction
,org.eclipse.jface.actino.IAction
, ororg.eclipse.ui.IActionDelegate
其中一个的类的完全限定类名
pluginId -包含类的插件的id。
standby(可选)= ("true" "false")false -执行动作后是否将intro设置为standby模式
additional parameters - any additional parameters are passed to actions that implementorg.eclipse.ui.intro.config.IIntroAction
<link id="folder" label="TemplateProject" style-id="left" url="http://org.eclipse.ui.intro/runAction?pluginId=org.xtuml.bp.welcome&class=org.xtuml.bp.welcome.gettingstarted.SampleProjectGettingStartedAction&model=TemplateProject&SingleFileModel=false"> <text>Click here to create a template project that includes two components and one interface.</text> </link>
execute - 执行指定的命令。有关命令序列化格式的详细信息. See theserialize()
method onorg.eclipse.core.command.ParameterizedCommand
for details of the command serialization format. Since 3.2.
command - a serializedParameterizedCommand
standby (optional) = ("true" | "false") "false" - indicate whether to set the intro into standby mode after executing the command<link style-id="content-link" label="A Helloworld Agent in SARL" url="http://org.eclipse.ui.intro/execute?command=org.eclipse.ui.newWizard%28newWizardId%3Dio.sarl.examples.helloworld%29" id="Helloworld-Sample"> <text> A simple agent displaying Hello on the console and dying 2sec later. </text> </link>
setStandbyMode - 设置介绍部分的状态
Standby = ("true" "false") - true表示将介绍部分置于部分可见的待机模式,false表示使其完全可见
<link id="release_notes" label="Release Notes" style-id="left" url="http://org.eclipse.ui.intro/setStandbyMode?standby=true"> <text>setStandbyMode.</text> </link>
showHelp - Open the help system.
no parameters required
showHelpTopic - 打开帮助主题。
id -帮助资源的URL。the URL of the help resource. (See Javadoc for org.eclipse.ui.help.WorkbenchHelp.displayHelpResource) embed (optional) = ("true" "false") "true" -表示帮助资源需要作为欢迎页面的一部分嵌入显示。默认为false。在SWT表示的情况下,这个标志完全被忽略。这相当于openURL()命令,但用于帮助系统主题。嵌入的URL占用当前页面的全部空间。自3.1起
embedTarget(可选)——当前Welcome页面中一个div的路径,该div将保存帮助主题的内容。如果指定了,那么embed默认为true,嵌入的URL将被插入到具有指定路径的div中。路径是相对于页面的,所以它不应该以页面id开头。div的子元素被URL的内容替换。每个页面只能使用一个div作为嵌入目标。在SWT表示的情况下,这个标志完全被忽略。当使用XHTML作为介绍内容时也不支持。自3.1起<link id="upgrade" label="What's New" style-id="left" url="http://org.eclipse.ui.intro/showHelpTopic?id=/com.sysdesim.help.toc/html/maintopic.html"> <text>Click here to view new features in this release.</text> </link>
id指向的网页需要配置org.eclipse.ui.help扩展点来注册,Eclipse中有Example 样例,同时需要添加以下插件到require plugin 才不会报错
org.eclipse.ui
org.eclipse.help.ui
org.eclipse.help.webapp
org.eclipse.ui.forms
org.eclipse.equinox.http.jetty
showMessage - 使用标准的提示对话框向用户显示消息。
message - 显示给用户的消息
<link id="arrow" label="Workbench" style-id="left" url="http://org.eclipse.ui.intro/showMessage?message=abcdedf&decode=true"> <text>Close this page and go to the workbench2.</text> </link>
showStandby - Sets the intro part to standby mode and shows the standbyContentPart with the given input
partId - the id of the standbyContentPart to show
input - the input to set on the standbyContentPart
showPage - 显示带有给定id的介绍页面
Id -要显示的介绍页的Id
standby (optional) = ("true" "false")false -显示页面后是否设置为备用模式
<link id="quickstart" label="Quick Start" style-id="left" url="http://org.eclipse.ui.intro/showPage?id=quickstart&standby=false"> <text>Click here to get started using BridgePoint UML.</text> </link>
如果传递给这些操作的任何参数具有特殊字符(即:URL中非法的字符),则应使用UTF-8 URL编码对其进行编码。为了在解码状态下接收这些参数,可以使用一个特殊参数decode = ("true" "false")在Intro框架处理这些参数时强制解码。
For example, the following Intro url: http://org.eclipse.ui.intro/showMessage?message=This+is+a+message will process the message parameter as "This+is+a+message"
而
http://org.eclipse.ui.intro/showMessage?message=This+is+a+message&decode=true will process the message parameter as "This is a message". - id - 可用于标识此链接的唯一 ID
- label - 此链接的文本名称
- style-id - 将此链接分类为给定类别的方法,以便可以应用通用样式。
- filteredFrom - 一个可选属性,允许从特定实现中筛选出给定元素。例如,如果某个组的 filteredFrom = swt,则意味着该组不会在 swt 实现中显示为内容。
text
可以选择包含转义 HTML 标记的文本片段。它可以包括 b 和 li 标签。它还可以包含 url 的锚点。 如果需要多个段落,则文本可以分为多个部分,每个部分都以 p 标签开头和结尾。
<!ELEMENT text EMPTY>
<!ATTLIST text
id CDATA #IMPLIED
style-id CDATA #IMPLIED
filteredFrom (swt|html) >
- id - 此文本的唯一标识符。
- style-id - 将此元素分类到给定类别中以便可以应用通用样式的方法
- filteredFrom - 一个可选属性,允许从特定实现中筛选出给定元素。例如,如果某个组的 filteredFrom = swt,则意味着该组不会在 swt 实现中显示为内容。
img
表示介绍内容而不是演示文稿的图像(与样式中定义的装饰图像相反)。
<!ELEMENT img EMPTY>
<!ATTLIST img
src CDATA #REQUIRED
id CDATA #IMPLIED
alt CDATA #IMPLIED
style-id CDATA #IMPLIED
filteredFrom (swt|html) >
- src - 要从中加载映像的文件
- id - 此图像的唯一标识符
- alt - 无法加载图像时要使用的替代文本,并作为图像的工具提示文本。
- style-id - 将此图像分类为给定类别以便可以应用通用样式的方法。
- filteredFrom - 一个可选属性,允许从特定实现中筛选出给定元素。例如,如果某个组的 filteredFrom = swt,则意味着该组不会在 swt 实现中显示为内容。
include
通过给定的路径和可选的configId属性展开目标元素。Path应该在指定的配置中唯一地处理一个元素。它可以指向在配置级别定义的共享组,也可以指向页面中的任何元素。
<!ELEMENT include EMPTY>
<!ATTLIST include
path CDATA #REQUIRED
configId CDATA #IMPLIED
merge-style (true | false) >
- path - 在配置中唯一表示目标元素的路径(例如page/group1/group2)。它可以是组元素,也可以是组中包含的任何元素。您不能包含页面。
- configId - 定义包含元素的配置的标识符。如果指定了,则假定要包含的元素是在另一个配置中指定的,而不是在封闭的配置中指定的。在本例中,将加载外部配置,并从该新配置解析元素。如果未指定,则假定此包含的封闭(父)配置。
- merge-style - 如果为true,属于拥有被包含元素的页面的样式将被添加到包含页面的样式列表中。如果为false(默认值),则包含页面负责控制被包含元素的属性。
anchor
锚点是用于声明扩展性的元素。它是配置中允许外部贡献的位置。只有锚点是 extensionContent 中 path 属性的有效目标值
<!ELEMENT anchor EMPTY>
<!ATTLIST anchor
id CDATA #REQUIRED>
- id - unique id to identify this anchor.
extensionContent
要添加到目标锚的内容。在给定的configExtension中只允许一个extensionContent或replacementContent,因为如果这个扩展不能被解析(如果找不到配置,或者找不到目标锚),那么扩展中的页面和/或组需要被忽略。
<!ELEMENT extensionContent (text | group | link | html | include)+>
<!ATTLIST extensionContent
path CDATA #REQUIRED
style CDATA #IMPLIED
alt-style CDATA #IMPLIED
content CDATA #IMPLIED
id CDATA #IMPLIED
name CDATA #IMPLIED>
- path - 唯一表示定位点路径的路径。(例如 page/group1/group2/anchorId)在要扩展的目标配置中。它只能是可以在任何页面或组中的锚点,包括配置级别的共享组。
- style - CSS 文件的相对路径,仅在使用基于 Web 的演示文稿时应用于页面。该路径相对于此 xml 内容文件的位置。
从 3.1 开始,样式也可以是逗号分隔的样式列表。这些样式将按照它们在 style 属性中列出的顺序注入到 HTML HEAD 元素中。 - alt-style - SWT 演示文稿属性文件的相对路径,仅在使用基于 SWT 的演示文稿时应用于页面。该路径相对于此 xml 内容文件的位置。
从 3.1 开始,样式也可以是逗号分隔的样式列表。在创建欢迎页面的 SWT 演示文稿时,将使用这些样式。 - content - 如果定义了内容,则假定扩展内容是在外部 XHTML 文件中定义的。在这种情况下,将加载此内容属性指向的资源,并且现在在此外部文件中解析路径属性。自 3.1 起
- id -(从 3.2 开始)与 intro configurer 结合使用时需要此扩展的唯一标识符。
- name -(从 3.2 开始)与 intro configurer 结合使用时需要此扩展的可翻译名称
replacementContent
(自3.3起)替换目标元素的内容。在给定的configExtension中只允许一个extensionContent或replacementContent,因为如果这个扩展不能被解析(如果找不到配置,或者找不到目标元素),那么扩展中的页面和/或组需要被忽略。
<!ELEMENT replacementContent (text | group | link | html | include)+>
<!ATTLIST replacementContent
path CDATA #REQUIRED
style CDATA #IMPLIED
alt-style CDATA #IMPLIED
content CDATA #IMPLIED>
path - 唯一表示要替换的元素的路径的路径。(例如 page/group1/group2/elementId)在要扩展的目标配置中。要替换从 贡献的内容,您可以使用表单的路径,它将解析为指定的扩展名。extensionContent
pageId/@extension_id/path_in_extension
- style - CSS 文件的相对路径,仅在使用基于 Web 的演示文稿时应用于页面。该路径相对于此 xml 内容文件的位置。
从 3.1 开始,样式也可以是逗号分隔的样式列表。这些样式将按照它们在 style 属性中列出的顺序注入到 HTML HEAD 元素中。 - alt-style - SWT 演示文稿属性文件的相对路径,仅在使用基于 SWT 的演示文稿时应用于页面。该路径相对于此 xml 内容文件的位置。
从 3.1 开始,样式也可以是逗号分隔的样式列表。在创建欢迎页面的 SWT 演示文稿时,将使用这些样式。 - content - 如果定义了内容,则假定扩展内容是在外部 XHTML 文件中定义的。在这种情况下,将加载此内容属性指向的资源,并且现在在此外部文件中解析路径属性。自 3.1 起
contentProvider
介绍内容提供程序的代理,它允许介绍页面从各种来源(例如,Web、eclipse 等)动态提取数据,并在运行时根据此动态数据提供内容。如果无法加载 class 属性中指定的 IIntroContentProvider 类,则将改为呈现 text 元素的内容。 这是 html intro 标记的动态版本。虽然 html 标记允许将静态 html 内容嵌入或内联到生成的 html 介绍页中,但 contentProvider 标记允许在运行时动态创建该内容。 标记之间的另一个区别是,html 标记仅支持 HTML 演示文稿,而此 contentProvider 标记支持 HTML 和 SWT 演示文稿。从 3.0.1 开始
<!ELEMENT contentProvider (text?)>
<!ATTLIST contentProvider
id CDATA #REQUIRED
class CDATA #REQUIRED
pluginId CDATA #IMPLIED>
- id - 此内容提供程序元素的唯一标识符。这是一个必需的属性,因为具有唯一的 ID 会阻止介绍框架重新实例化此内容提供程序类并重新创建其内容。
- class - 实现 IContentProvider 接口的类
- pluginId - 包含由 class 属性指定的 IContentProvider 类的插件的 ID。这是一个可选属性,如果类不是来自定义标记的同一插件,则应使用该属性。
<contentProvider id="contentProviderId" class="com.sysdesim.dymic.intro.DynamicContentProvider" pluginId="com.sysdesim.dymic"> </contentProvider> >
hr
横线
<!ELEMENT hr EMPTY>
<!ATTLIST hr
id CDATA #IMPLIED
style-id CDATA #IMPLIED
filteredFrom (swt|html) >
- id - 该hr的唯一标识符
- style-id - 表示将此元素分类到给定的类别中,以便可以应用公共样式
- filteredFrom - 一个可选属性,允许从特定实现中过滤给定元素。例如,如果一个组有filteredFrom = swt,这意味着这个组不会作为内容出现在swt实现中。
嵌入别的页面使用
方式1:
html 标签
<include path="root/firstLink2" />
需要指定 root.html中的id
<a href="http://org.eclipse.ui.intro/showPage?id=concept2" id="firstLink2">
<img border="0" src="link_obj.gif" alt="Concept2" />
Learn about Concept Two...</a>
方式2:
org.eclipse.ui.intro.configExtension 扩展点
plugin.xml中加入
<extension
point="org.eclipse.ui.intro.configExtension">
<configExtension
configId="com.sysdesim.dymic.configId"
content="ext.xml">
</configExtension>
</extension>
ext.xml (例如 page/group1/group2/anchorId)在要扩展的目标配置中。它只能是可以在任何页面或组中的锚点,包括配置级别的共享组
<introContent>
<extensionContent content="content/extContent.xhtml" path="root/anchor1" />
<extensionContent content="content/concept2.xhtml" path="root/firstLink2" />
<page id="concept3" content="content/concept3.xhtml"/>
</introContent>
在Html 配合标签anchor 使用
<anchor id="anchor1" />
<anchor id="firstLink2" />
extensionContent content 使用后,root归属的html 文件的打开也需要使用content的形式。
如果在extensionContent下定义例如text的插件,则 root归属的地方可以直接调用