Generic workbench structure

Last modified 17:30 EST November 7, 2003

N.B. The changes described here are still a work-in-progress.

Table  of contents:

Existing plug-in and API structure of 2.1 Platform UI
Proposed plug-in and API restructuring plan for Platform UI
Proposed plug-in and API structure of 3.0 Platform UI

Existing plug-in and API structure of 2.1 Platform UI

The big picture:

Prior to 2.1, the org.eclipse.ui plug-in was the monolithic implementation of the Eclipse Platform UI. The above picture reflects the restructuring that done for 2.1 which introduced several new plug-ins:

The workbench is in principal independent from text editors (org.eclipse.text, org.eclipse.jface.text, org.eclipse.ui.workbench.texteditor, and org.eclipse.ui.editors plug-ins). The exceptions are:

  1. SystemSummaryEditor is a special purpose text editor defined in the org.eclipse.ui.editors plug-in and used by the workbench's about dialog.
  2. The workbench internal class SelectionEnabler refers to ITextSelection.
  3. The definition of extension points and the declaration of extensions for which the text editor plug-ins partially use org.eclipse.ui
  4. The usage of the workbench's preference store and logging facilities by the text editor plug-ins
  5. org.eclipse.ui re-exports text editor plug-ins.

(3) through (5) were done to provide compatibility for clients dependent on org.eclipse.ui before it was split up. Sustaining compatibility also required that API package names be kept stable, and this resulted in places where classes in the same package come from several "package extensions" distributed across plug-ins. The 3 instance of this are:

Existing API map: list of API packages, extension points, and the plug-ins that declare them.

plug-in org.eclipse.ui

Notes:

Required plug-ins

API packages

Extension points

plug-in org.eclipse.ui.win32

Notes:

API packages

none

Extension points

none

plug-in org.eclipse.jface

Notes:

Required plug-ins

API packages

Extension points

none

plug-in org.eclipse.text

Notes:

Required plug-ins

none

API packages

Extension points

none

plug-in org.eclipse.jface.text

Notes:

Required plug-ins

API packages

Extension points

none

plug-in org.eclipse.ui.workbench

Notes:

Required plug-ins

API packages

Extension points

none

plug-in org.eclipse.ui.views

Notes:

Required plug-ins

API packages

Extension points

none

plug-in org.eclipse.ui.workbench.texteditor

Notes:

Required plug-ins

API packages

Extension points

plug-in org.eclipse.ui.editors

Notes:

Required plug-ins

API packages

Extension points

org.eclipse.ui.versioncheck

Notes:

Required plug-ins

API packages

None

Extension points

None

plug-in org.eclipse.help

Notes:

Required plug-ins

API packages

Extension points

plug-in org.eclipse.help.ui

Notes:

Required plug-ins

API packages

Extension points

None

Proposed plug-in and API restructuring plan for Platform UI

Proposed plug-in and API structure of 3.0 Platform UI

The big picture:

plug-in org.eclipse.ui

Notes:

Required plug-ins

API packages

Extension points

plug-in fragment org.eclipse.ui.win32

This plug-in fragment of org.eclipse.ui plug-in is unchanged. (We are investigating whether this can be turned into a regular plug-in, to simplify things.) An application would include this fragment (or plug-in) only if they need support for OLE editors.

API packages

none

Extension points

none

plug-in org.eclipse.ui.workbench

Notes:

Required plug-ins

API packages

Extension points

plug-in org.eclipse.jface

This plug-in is unscathed. Its API is still surfaced to the world via the org.eclipse.ui plug-in re-exporting it.

Notes:

Required plug-ins

API packages

Extension points

none

plug-in org.eclipse.text

Notes:

Required plug-ins

none

API packages

Extension points

none

plug-in org.eclipse.jface.text

Notes:

Required plug-ins

API packages

Extension points

none

plug-in org.eclipse.ui.views

Notes:

Required plug-ins

API packages

Extension points

None

plug-in org.eclipse.ui.workbench.texteditor

Notes:

Required plug-ins

API packages

Extension points

plug-in org.eclipse.ui.ide

Notes:

Required plug-ins

API packages

Extension points

plug-in org.eclipse.ui.editors

Notes:

Required plug-ins

API packages

Extension points

org.eclipse.ui.versioncheck

Notes:

Required plug-ins

API packages

None

Extension points

None

plug-in org.eclipse.help

Notes:

Required plug-ins

API packages

Extension points

plug-in org.eclipse.help.base

Notes:

Required plug-ins

API packages

Extension points

plug-in org.eclipse.help.ui

Notes:

Required plug-ins

API packages

Extension points

None

plug-in org.eclipse.help.ide

Notes:

Required plug-ins

API packages

None

Extension points

None