plugin.xml是什么?略去不提……
1. "org.eclipse.ui.perspectives"
写法:
<extension point="org.eclipse.ui.perspectives">
<perspective
class="a.b.c.MyPerspective"
icon="icon/myperspective.gif"
id="a.b.c.MyPerspective"
name="%Perspective.name"/>
</extension>
a.b.c.MyPerspective:一个实现了IPerspectiveFactory接口的类。
"%Perspective.name": 写在 plugin.properties 中的属性,用于eclipse的perspectives菜单的显示
2. "org.eclipse.ui.perspectiveExtensions"
写法:
<extension
point="org.eclipse.ui.perspectiveExtensions">
<perspectiveExtension
targetID="a.b.c.MyPerspective">
<view
closeable="true"
id="a.b.c.MyNavigator"
moveable="true"
ratio="0.25f"
relationship="left"
relative="org.eclipse.ui.editorss"
showTitle="true"
standalone="false"
visible="true">
</view>
<view
closeable="true"
id="org.eclipse.ui.views.ContentOutline"
moveable="true"
ratio="0.5f"
relationship="bottom"
relative="a.b.c.MyNavigator"
showTitle="true"
standalone="false">
</view>
<view
closeable="true"
id="a.b.c.MyPropertiesView"
moveable="true"
ratio="0.5f"
relationship="bottom"
relative="org.eclipse.ui.editorss"
showTitle="true"
standalone="false"
visible="true">
</view>
<view
closeable="true"
id="org.eclipse.ui.views.ProblemView"
moveable="true"
relationship="bottom"
relative="a.b.c.MyPropertiesView"
showTitle="true"
standalone="false"
visible="true">
</view>
<view
closeable="true"
id="org.eclipse.ui.console.ConsoleView"
moveable="true"
relationship="stack"
relative="org.eclipse.ui.views.ProblemView"
showTitle="true"
standalone="true"
visible="true">
</view>
<actionSet
id="a.b.c.MyActionSet">
</actionSet>
<perspectiveShortcut
id="a.b.c.MyPerspective">
</perspectiveShortcut>
<perspectiveShortcut
id="org.eclipse.jdt.ui.JavaPerspective">
</perspectiveShortcut>
<viewShortcut
id="a.b.c.MyNavigator">
</viewShortcut>
<viewShortcut
id="org.eclipse.ui.views.ContentOutline">
</viewShortcut>
<viewShortcut
id="org.eclipse.ui.views.ProblemView">
</viewShortcut>
<viewShortcut
id="org.eclipse.ui.console.ConsoleView">
</viewShortcut>
<viewShortcut
id="a.b.c.MyPropertiesView">
</viewShortcut>
</perspectiveExtension>
</extension>
a.b.c.MyNavigator:继承ViewPart
3. "org.eclipse.ui.editors"
写法:
<extension
point="org.eclipse.ui.editors">
<editor
class="a.b.c.MyEditor"
contributorClass="a.b.c.MyEditorActionBarContributor"
icon="icon/<span style="font-family: Arial, Helvetica, sans-serif;">MyEditor</span><span style="font-family: Arial, Helvetica, sans-serif;">.gif"</span>
id="a.b.c.MyEditor"
name="%Editor.me"/>
</extension>
"a.b.c.MyEditor":继承EditorPart
"a.b.c.MyEditorActionBarContributor" :继承<span style="font-family: Arial, Helvetica, sans-serif;">ActionBarContributor</span>
4. "org.eclipse.ui.newWizards"
写法:
<extension
name="%Perspective.name"
point="org.eclipse.ui.newWizards">
<category
id="a.b.c.MyCategory"
name="%Perspective.name">
</category>
<wizard
category="a.b.c.MyCategory"
class="a.b.c.MyNewProjectWizard"
finalPerspective="a.b.c.MyPerspective"
icon="icon/xxx.gif"
id="a.b.c.MyNewProjectWizard"
name="%Project.me"
preferredPerspectives="a.b.c.MyPerspective"
project="true">
<description>
%<span style="font-family: Arial, Helvetica, sans-serif;">MyNewProjectWizard</span>.description
</description>
</wizard>
</extension>
"a.b.c.MyNewProjectWizard" : 继承<span style="font-family: Arial, Helvetica, sans-serif;">Wizard ,INewWizard,</span><span style="font-family: Arial, Helvetica, sans-serif;">IExecutableExtension </span>
5. "org.eclipse.ui.views"
写法:
<extension
point="org.eclipse.ui.views">
<category
id="a.b.c.MyViewCategory"
name="%Category.view">
</category>
<view
category="a.b.c.MyViewCategory"
class="a.b.c.MyNavigator"
icon="icon/xxx.gif"
id="a.b.c.MyNavigator"
name="%Navigator.view" >
</view>
<view
category=<span style="font-family: Arial, Helvetica, sans-serif;">"a.b.c.MyViewCategory"</span>
class="a.b.c.MyPropertiesView"
icon="icon/xxx.gif"
id="a.b.c.MyPropertiesView"
name="%Properties.view">
</view>
</extension>
6."org.eclipse.core.resources.natures"
写法:
<extension
id="a.b.c.nature"
name="%Nature.me"
point="org.eclipse.core.resources.natures">
<runtime>
<run class="a.b.c.MyProject"/>
</runtime>
<builder id="a.b.c.MyBuilder"/>
</extension>
"a.b.c.MyProject":继承IProjectNature
<pre name="code" class="html">
写法:
<extension
id="a.b.c.MyBuilder"
name="My Project Builder"
point="org.eclipse.core.resources.builders">
<builder hasNature="false">
<run class="a.b.c.MyProjectBuilder"/>
</builder>
</extension>
"a.b.c.MyProjectBuilder":继承IncrementalProjectBuilder
写法:
<extension
id="a.b.c.MyMarker"
name="My Project Marker"
point="org.eclipse.core.resources.markers">
<super type="org.eclipse.core.resources.problemmarker"/>
<super type="org.eclipse.core.resources.textmarker"/>
<persistent value="true"/>
</extension>
写法:
<extension
point="org.eclipse.ui.console.consoleFactories">
<consoleFactory
class="a.b.c.MyConsoleFactory"
icon="icon/xxx.gif"
label="%Console.view">
</consoleFactory>
</extension>
"a.b.c.MyConsoleFactory": 继承IConsoleFactory
写法:
<extension
point="org.eclipse.ui.actionSets">
<actionSet
id="a.b.c.MyActionSet"
label="My ActionSet"
visible="false">
<menu
id="a.b.c.MyMenu"
label="%Menu.me">
<separator
name="a.b.c.MySeparator">
</separator>
</menu>
<action
allowLabelUpdate="true"
class="a.b.c.MyAction1"
disabledIcon="icon/xxx.gif"
icon="icon/xxx.gif"
id="a.b.c.MyAction1"
label="%Menu.action1"
menubarPath="a.b.c.MyMenu/a.b.c.MySeparator"
retarget="false"
style="push"
tooltip="%Menu.tip.<span style="font-family: Arial, Helvetica, sans-serif;">action1</span><span style="font-family: Arial, Helvetica, sans-serif;">"></span>
</action>
</actionSet>
</extension>
11."org.eclipse.ui.propertyPages"
写法:
<extension
point="org.eclipse.ui.propertyPages">
<page
class="a.b.c.MyPropertyPage"
id="a.b.c.MyPropertyPage"
name="%Property.name">
<enabledWhen>
<instanceof
value="a.b.c.MyValue">
</instanceof>
</enabledWhen>
</page>
</extension>