枫林在线论坛精华区>>程序设计
[340914] 主题: Eclipse零起步系列讲座(十二)
作者: little (渺小·Happy^_^)
标题: Eclipse零起步系列讲座(十二)[转载]
来自: 192.168.*.*
发贴时间: 2005年04月25日 11:27:43
长度: 7384字

Eclipse零起步系列讲座 (十二)

===========================================

(前言)
今天介绍PDE的feature部分, 别以为feature没有实际的代码,运行库, 但
是它对管理和
组织整个eclipse插件平台是起着

至关重要的作用的.

(正文)

[feature 简介]

一般来说做一个eclipse的插件有可能需要做很多插件, 可以有助于开发时
的模块独立化
,层次化, 有时一个产品的插件

可能有com.company.product.core, com.company.product.ui,
com.company.product.help 等等, 如果你的插件还有段

, 做nls支持的话, 那还会有com.company.product.core.nls,
com.company.product.ui.nls, com.company.product.

help.nls等等. 所以一般来说, 发布出去的eclipse插件产品都会包含好多
个plug-in,
运行时缺一不可. 那我们如何来

管理这些plug-ins的运行呢. 就要用feature了

feature其实前面已经介绍过了, 它是一个插件的包络器, 让eclipse能够
更加方便快捷
的管理插件. 而我们可以利用

feature做些什么呢

1. 管理插件, 包括插件的启动, 禁用, 就算插件已经在plugins目录下, 
也可以控制它
是否启用.

2. about 功能: 对于一个插件来说, 他到底派些什么用处, 如何让user能
尽快了解你的
插件功能, 那about可以为你做

到很多, 包括about内的介绍等等, (当然还有eclipse online help, 不过
这不是featur
e的功能)

3. 定制welcome page: 当你刚装好一个插件, 如果有welcome page的话,
 就会自动弹出
, 这个页面对于newbie来说是很

重要的, 你可以在这个page做一份guide, 让user能更快的使用你的插件



[创建 feature]

上一讲, 我们使用helloworld, 并做了些改进, 还开发了一个fragment作
为nls的支持.
那我们今天就要把这个东东用

feature进行打包.

我们的plugin是org.eclipse.example.xyz, 以及fragment :
org.eclipse.example.xyz.nls

此时, 我们先新建一个feature的项目, new-> project->plugin d
evelopment ->
feature project

项目名: org.eclipse.example.xyz_feature  按next

在feature properties页面, 将feature id 改为 org.eclipse.example.
xyz, 按next

注意: feature的id要和一个plugin的id, 否则不能做welcome page, 我也
不清楚为什么
, 或许这就是规范, 不知有没有别的方法, 还望大家指教

然后在reference plugin and fragment 页面, 我们勾上我们开发plugin
和fragment:or
g.eclipse.example.xyz和org.

eclipse.example.xyz.nls, 按finish

现在,一个简单的feature就创建好了. 如果我们还想对feature做一些更多
的设置, 就打
开feature.xml这个文件, 用pde

提供的feature manifest editor来修改

[编辑 feature.xml]

这个editor有overview, information, content, advanced 和source 页
面, 使您能更
方便的编辑feature.xml

overview:

这个页面主要分3块 general information, feature urls, supported e
nvironment.

general info我们可以修改feature的id, name, version, provider等等
, 包括banner
image(在install/update透视图

,单击这个feature,就能在preview视图中看到这个image, 就是商标).

feature url包括这个插件以后要进行升级的url, 因为插件也是可以在线
升级的, 我们
会在将到site的时候, 就知道这

里的url该填什么值了.

supported environment表明了这个feature的运行环境, 你可以根据你的
运行环境,对这
个选项进行选择, manifest

editor做的很方便, 你只要点"..."按钮, 然后选你要的就可以


information:

这里主要有3大块info, feature description 就是这个feature功能的简
要介绍,
copyright notice, 和license agreement. 这些如果是开发商业级插件,
应该都是必填
的东东, 也是为了维护自己的权益嘛

content:

这里就是要修改你这个feature到底要装些什么东东了, 如果是按照前面步
骤做下来, 你
可以看见在feature plugins and fragments列表中已经包含了org.eclip
se.example.xy
z 和org.eclipse.example.xyz.nls这两个东东了

当然,包含好之后,我们还要做一件事,就是compute required plugins an
d
fragments, 就是你包络的那些插件要依赖的插件,可以用compute按钮这个
功能计算出来
, 当然你也可以手工添加

advanced:

这个页面是让你用来包feature的, 就是说feature不仅可以包络plugin和
fragment, 还
可以包络feature, 进行迭代式管理,呵呵, 不过一般用的不多

[about feature 编辑]

编辑feature的about属性,要在feature对应id的那个plugin新建一个abou
t.ini文件, 这
个ini配置文件的内容大致如下:

这里有些配置只有在设立feature的primary等于true的时候,才会有效, #
注释中都写清
楚的

===============================================
# about.ini
# contains information about a feature
# java.io.Properties file (ISO 8859-1 with "" escapes)

# "%key" are externalized strings defined in about.pro
perties
# This file does not need to be translated.

# Property "aboutText" contains blurb for "About&
quot; dialog (translated)
aboutText=%blurb

# Property "windowImage" contains path to window icon 
(16x16)
# needed for primary features only

# Property "featureImage" contains path to feature ima
ge (32x32)
featureImage=eclipse32.gif

# Property "aboutImage" contains path to product image
 (500x330 or 115x164)
# needed for primary features only

# Property "appName" contains name of the application 
(translated)
# needed for primary features only

# Property "welcomePage" contains path to welcome page
 (special XML-based
format)
# optional

# Property "welcomePerspective" contains the id of the
 perspective in which
the
# welcome page is to be opened.
# optional
====================================================

基本的格式如上,大家可以按照这个格式编写自己的feature的about配置文
件, 其中有一
项welcomePage的属性, 是用来定义welcomepage的location的.

[welcome page]

我们定义welcomePage=$nl$/welcome.xml, 然后同样在org.eclipse.exam
ple.xyz这个插
件下新建一个welcome.xml的文件,我们就可以编写我们自己需要的welcom
e page了,编写
这个xml也是有规范的, 大家可以去网上查一下welcomepage的dtd 或refe
rence 来指导
大家写, 不过最多的方式,其实还是看例子, 我们比如看pde的welcome pa
ge这个例子

我们点击help->welcome, 然后在弹出的对话框中,选择Eclipse Plug-
in Development
Environment, 这样pde的welcome page就打开了

然后我们再看看它的源地码来比较一下

===================================================
<?xml version="1.0" encoding="UTF-8" ?>
;
  <welcomePage title="Eclipse Plug-in Development Enviro
nment (PDE)"
format="wrap">
  <intro>This page will help familiarize you with the Ecli
pse Plug-in
Development Environment. To get started, read the sections below
 and click
on the related links.</intro>
  <item>
  <b>The Plug-in Development Perspective</b>
  To do plug-in development open to the Plug-in Development Pers
pective by
selecting
  <action pluginId="org.eclipse.pde.ui"
class="org.eclipse.pde.internal.ui.OpenPDEPerspectiveAction
">Window > Open
Perspective > Plug-in Development</action>
  .
  </item>
  <item>
  <b>Create New Plug-ins</b>
  To start create a
  <action pluginId="org.eclipse.pde.ui"
class="org.eclipse.pde.internal.ui.wizards.project.OpenProj
ectWizardAction">p
lug-in project</action>
  . Choose one of the available templates to create initial cont
ent and let
the wizard open the plug-in manifest file. Read the 'Welcome' pa
ge and
familiarize yourself with things you can do with the newly creat
ed plug-in.
  </item>
  <item>
  <b>Learn more</b>
  To learn more you can browse the
  <topic id="/org.eclipse.pde.doc.user/toc.xml">
Plug-in Development User
Guide</topic>
  .
  </item>
  </welcomePage>

======================================================

<welcomepage>作为根节点, 可是设置welcome的标题

<intro> 对于这份welcomepage的内容做简要介绍

<item> 段落分界点

<b> 加粗

<action> 执行action, 这里的打开plugin-project的向导

<topic> 用来打开help的相应toc连接

大家可以仿造这些代码来写自己的welcome page



plugin是产品的话, 那feature可以看作是包装盒, 有了一流的产品, 却没
有一流的包装
, 销路也不一定会好, 所以大家好好用feature,也是很有必要的


========== * * * * * ==========
返回