<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
   <meta name="Author" content="Build">
   <title>Eclipse Workbench Extension Points</title>
</head>
<body link="#0000FF" vlink="#800080">

<center>
<h1>
Eclipse Platform User Interface</h1></center>
This document lists all of the extension points that the Eclipse Platform
User Interface makes available to tool developers. Developers may extend
various aspects of the workbench, both visually and functionally.
<p>In general, each of the extension points defined in the UI follow a
simple pattern.&nbsp; The extension point is defined within <tt>plugin.xml</tt>
for <tt>org.eclipse.ui</tt>.&nbsp; Then extensions are defined for the
extension point.&nbsp; These may exist in the same or other <tt>plugin.xml</tt>
files.&nbsp; The top level XML element for any extension may contain one
or more extension declarations.&nbsp; For example, an <tt>org.eclipse.ui.propertyPages</tt>
extension may contain several instances of <tt>page</tt> elements. Although
making one extension per subelement is not technically incorrect, we recommend
grouping for consistent style. It can also improve workbench startup time
because there will be fewer extensions to process.
<br>
<hr WIDTH="100%">
<h1>
General Extension Points</h1>
The following extension points can be used to extend various aspects of
the UI, both visually and functionally:
<ul>

<li>
<a href="org_eclipse_ui_newWizards.html">org.eclipse.ui.newWizards</a></li>

<li>
<a href="org_eclipse_ui_importWizards.html">org.eclipse.ui.importWizards</a></li>

<li>
<a href="org_eclipse_ui_exportWizards.html">org.eclipse.ui.exportWizards</a></li>

<li>
<a href="org_eclipse_ui_actionSets.html">org.eclipse.ui.actionSets</a></li>

<li>
<a href="org_eclipse_ui_perspectives.html">org.eclipse.ui.perspectives</a></li>

<li>
<a href="org_eclipse_ui_perspectiveExtensions.html">org.eclipse.ui.perspectiveExtensions</a></li>

<li>
<a href="org_eclipse_ui_views.html">org.eclipse.ui.views</a></li>

<li>
<a href="org_eclipse_ui_viewActions.html">org.eclipse.ui.viewActions</a></li>

<li>
<a href="org_eclipse_ui_editors.html">org.eclipse.ui.editors</a></li>

<li>
<a href="org_eclipse_ui_editorActions.html">org.eclipse.ui.editorActions</a></li>

<li>
<a href="org_eclipse_ui_popupMenus.html">org.eclipse.ui.popupMenus</a></li>

<li>
<a href="org_eclipse_ui_preferencePages.html">org.eclipse.ui.preferencePages</a></li>

<li>
<a href="org_eclipse_ui_propertyPages.html">org.eclipse.ui.propertyPages</a></li>

<li>
<a href="org_eclipse_ui_elementFactories.html">org.eclipse.ui.elementFactories</a></li>

<li>
<a href="org_eclipse_ui_dropActions.html">org.eclipse.ui.dropActions</a></li>

<li>
<a href="org_eclipse_ui_projectNatureImages.html">org.eclipse.ui.projectNatureImages</a></li>
</ul>
<a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corporation 2000" BORDER=0 height=12 width=195></a>
</body>
</html>
