Products扩展点

Products 扩展点

参见:Eclipse官方文档

基于Eclipse平台定义产品的首选机制是org.eclipse.core.runtime.products扩展点。为此,插件只需声明其产品的名称和id,以及调用产品时应运行的应用程序扩展的id。这是Eclipse平台本身在定义Eclipse产品时使用的技术。以下是在org.eclipse.platform中找到的扩展定义:

	<extension id="ide" point="org.eclipse.core.runtime.products"> 
		<product name="%productName" application="org.eclipse.ui.ide.workbench" description="%productBlurb"> 
			<property name="windowImages" value="eclipse.png,eclipse32.png"/> 
			<property name="aboutImage" value="eclipse_lg.png"/> 
			<property name="aboutText" value="%productBlurb"/> 
			<property name="appName" value="Eclipse"/> 
			<property name="preferenceCustomization" value="plugin_customization.ini"/> 
		</product> 
	</extension> 

定义了一个产品扩展,其应用程序id为“org.eclipse.ui.ide.workbench". 这是插件定义的应用程序org.eclipse.ui.ide对org.eclipse.core.runtime.applications的扩展。

	<extension
		id="workbench"
		point="org.eclipse.core.runtime.applications">
		<application>
			<run
				class="org.eclipse.ui.internal.ide.IDEApplication">
			</run>
		</application>
	</extension> 

此扩展定义的id与产品扩展的应用程序属性中引用的id相同。(当从其他插件引用应用程序id时,使用带有插件前缀的完全限定名。)使用此机制,单独的插件可以定义所有特定于产品的品牌,然后将现有插件的应用程序引用为产品启动时实际运行的应用程序。

除了应用程序之外,org.eclipse.core.runtime.products扩展描述用于配置产品品牌信息的产品自定义属性。此信息称为命名属性。让我们再看看平台插件的标记部分。

	<property name="windowImages" value="eclipse.png,eclipse32.png"/> 
	<property name="aboutImage" value="eclipse_lg.png"/> 
	<property name="aboutText" value="%productBlurb"/> 
	<property name="appName" value="Eclipse"/> 
	<property name="preferenceCustomization" value="plugin_customization.ini"/> 

在IProductConstants中定义了产品定制平台可能使用的属性名。有关这些属性及其值的完整描述,请参见javadoc。我们将在定制产品时进一步研究这些问题。

其他平台服务(如配置通用的 Welcome/Intro)也使用产品自定义属性。

org.eclipse.core.runtime.products扩展点说明

ID: org.eclipse.core.runtime.products

描述: 产品是品牌的Eclipse单元。产品扩展由希望定义一个或多个产品的插件提供。每个扩展必须有一个产品,因为扩展标识用于处理和标识产品。 产品扩展有两种可能的形式,静态的和动态的。静态产品扩展直接包含产品的所有相关信息。动态产品扩展标识一个类(IProductProvider),该类在查询时能够定义一个或多个产品。

配置标记:

	<!ELEMENT extension ((product | provider))>
	<!ATTLIST extension
	  point CDATA #REQUIRED
	  id    CDATA #IMPLIED
	  name  CDATA #IMPLIED>

	<!ELEMENT product (property*)>
	<!ATTLIST product
	  application CDATA #REQUIRED
	  name        CDATA #REQUIRED
	  description CDATA #IMPLIED>
  • application - 当运行产品时候的默认应用。

  • name - 产品的可读名称。

  • description - 产品的可读描述。

    <!ELEMENT property EMPTY>
    <!ATTLIST property
      name  CDATA #REQUIRED
      value CDATA #REQUIRED>
    
  • name - 属性存储时候的键。

  • value - 属性存储时候的值。

    <!ELEMENT provider (run)>
    
  • 产品提供者详情。

    <!ELEMENT run EMPTY>
    <!ATTLIST run
      class CDATA #REQUIRED>
    
  • class - 全路径名,实现org.eclipse.core.runtime.IProductProvider。

示例: 下面是一个静态产品声明的示例:

   <extension id="coolProduct" point="org.eclipse.core.runtime.products"> 
      <product name="%coolName" application="coolApplication" description="%coolDescription"> 
          <property name="windowImages" value="window.gif"/> 
          <property name="aboutImage" value="image.gif"/> 
          <property name="aboutText" value="%aboutText"/> 
          <property name="appName" value="CoolApp"/> 
          <property name="welcomePage" value="$nl$/welcome.xml"/> 
          <property name="preferenceCustomization" value="plugin_customization.ini"/> 
      </product> 
   </extension> 

下面是动态产品声明 (product provider) : 下面是一个应用声明:

   <extension id="coolProvider" point="org.eclipse.core.runtime.products"> 
      <provider> 
         <run class="com.example.productProvider"/> 
      </provider> 
   </extension> 

API 信息: 这里提供的静态产品扩展在运行时由IProduct的实例表示。动态产品扩展必须标识IProductProvider的实现者。见org.eclipse.ui.branding.IProductConstants有关由Eclipse UI定义的品牌相关产品属性的详细信息。

产品属性——IProductConstants中定义支持的产品属性
名称说明
appName应用名称。
aboutTextAbout对话框中的产品说明文字。
aboutImageAbout对话框中的产品说明图片。完整大小产品,如果不大于500x330像素则展示aboutText;一半大小产品,如果不大于250x330像素,则将说明文字展示在图片下方。
preferenceCustomization用于提供客户化的产品配置,内部值为格式为qualifier/key=value,其中qualifier指代bundle的id,key表示键,value表示值。
windowImages用于提供产品的不同大小下的图标。例如16x16,32x32等等。
welcomePage欢迎界面,基于XML格式,值相对于定义产品的bundle。在3.0后不再鼓励使用,而推荐通过org.eclipse.ui.intro扩展点的方式。
startupProgressRect相对于启动图片的左上角,用于提供进度条位置和大小。4个参数依次表示x,y,width,height。
startupMessageRect相对于启动图片的左上角,用于提供进度条消息位置和大小。4个参数依次表示x,y,width,height。
startupForegroundColor启动前景色。该前景色用于进度条中报告进度,应提供6位16进制数做作为颜色。
常用在preferenceCustomization文件中的配置

理论上,任何平台的相关配置,只要程序有支持,均可以自行配置。需要注意的是,这些配置的键前面一般带有插件id。初始透视图,往往在我们定义RCP产品的时候能够用到。

配置说明
org.eclipse.ui/SHOW_PROGRESS_ON_STARTUP = true表示启动的时候展示进度条。
org.eclipse.ui/defaultPerspectiveId = org.eclipse.ui.resourcePerspective用于表示第一次启动的时候默认的透视图ID为org.eclipse.ui.resourcePerspective,该透视图ID可以替换为用户自定义的透视图ID。
基本的产品启动配置

我使用的Eclipse版本为2019.12 Windows 64位版本,自定义产品基于feature构建,如下图所示的例子,在配置产品,加入一系列的feature,下图中红色方块部分为我自定义的feature,用户可以根据需要加入自己的。其他加入平台的功能部件如下:
在这里插入图片描述
在加入这些功能部件,并通过不断启动产品界面的debug测试,在自定义功能部件之中,加入缺失的部分插件。然后,需要配置这些插件默认的启动级别,可以采用下图所示的启动级别:
在这里插入图片描述
在完成以后,切换到Overview界面,点击Launch an Eclipse application in Debug mode,一般可以启动自定义的产品程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值