blob: c3988a6f0901570df6b9746c0ab698fc66cb05ff [file] [log] [blame]
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>About Eclipse</title>
<link rel="stylesheet" href="default_style.css">
<h2>Introduction to the Eclipse Platform</h2>
<p>The Eclipse Platform, enables tool integration by providing a set of common
services that are useful across all tools, and a common set of frameworks for
building plug-in extensions. Tool integration is based on open APIs and components
that provide:</p>
<li>A common destination to install and integrate tools
<li>A central view across all resources and roles providing a base for consistent,
effective, efficient, scalable, and end-to-end application development
<li>An open, flexible, extensible, standards-based and portable framework for
tool integration and interoperability</li>
<li>A view of the complete application across all components and the entire
<li>Standard look-and-feel across all plug-in tools</li>
<li>Portable, high-performance, platform native look-and-feel</li>
<p>This section provides a brief overview of the Workbench services, frameworks,
and components. Further details are provided in the sections below.</p>
<p align="center"><img border="0" src="images/workbenchOverview.gif" width="650" height="490"></p>
<h4>Resource Management</h4>
<p class="MsoNormal">Resource management services include the workbench, project
model, and version and configuration management model. Resource management revolves
around the concept of a workbench, which provides the context in which all plug-ins
operate, and in which all viewing and editing activities take place. The workbench
supports many kinds of resources including resources that represent projects,
folders, and files. A project represents a reusable collection of buildable
files and folders. A project has a <i>nature</i> which provides the semantics
of a project. Project natures specify the builders that are invoked to manage
relationships between resources in the project, and how these resources respond
to changes in other project resources. A folder provides packaging and namespace
management for a collection of files and other folders. A file is the un-interpreted
persistent state of some resource. Resources are edited in the local file system
in the user’s private workspace, and can be integrated with a workgroup versioning
server. <span style="display:none;mso-hide:all"><o:p> </o:p> </span></p>
<h4>Team Programming Model</h4>
<p class="MsoNormal">The Workbench provides support for managing assets in a multi-user,
distributed, and perhaps disconnected environment. Users of the workbench create
projects in which they do their work. All editing is done in the user’s local
workspace. Periodically, a user can release and integrate their work using the
team versioning server.</p>
<p class="MsoNormal">The workbench provides a client for full support for distributed,
multi-language debugging. The debugger framework provides an extensible architecture
for adding support for additional languages. The same debugger user interface
can be used across different languages. Debugging is always at the user source
level, not at the level of generated code. Specific debugging server implementations
on particular languages and platforms (e.g., debugging engines) are not provided
as part of the Workbench.</p>
<h4>Extensibility Mechanisms</h4>
<p class="MsoNormal">The Workbench defines a general extension architecture that
provides access to publicly available extension mechanisms. This provides controlled
access to the open APIs and facilities of the Workbench. Developers can create
plug-in extensions to the Workbench and its desktop. Plug-ins may contain a
set of extension points that can accept pluggable extensions to encapsulate
variability and enable customization by other plug-ins. The extensibility mechanisms
also provides support for installing and registering tool extensions. The Workbench
allows multiple versions of the same plug-in to coexist at the same time, simplifying
plug-in version management and updating. The Workbench also supports the integration
of ActiveX controls and OLE Documents on Windows platforms</p>
<h4>Common Frameworks</h4>
<p class="MsoNormal">The Workbench provides a set of reusable frameworks and APIs
to facilitate plug-in development. These frameworks provide the infrastructure
required to build browsers, editors, and viewers, and allows tool developers
to focus on their value add. The frameworks provided are:</p>
<ul style="margin-top:0in" type="disc">
<li class="MsoNormal" style="mso-list:l1 level1 lfo2;tab-stops:list .5in">Widget
Toolkit (SWT): a portable API to platform native widgets</li>
<li class="MsoNormal" style="mso-list:l1 level1 lfo2;tab-stops:list .5in">User
Interface Framework</li>
<ul style="margin-top:0in" type="circle">
<li class="MsoNormal" style="mso-list:l1 level2 lfo2;tab-stops:list 1.0in">Implement
the platform desktop</li>
<li class="MsoNormal" style="mso-list:l1 level2 lfo2;tab-stops:list 1.0in">Create
extension user interfaces</li>
<li class="MsoNormal" style="mso-list:l1 level2 lfo2;tab-stops:list 1.0in">Source
Editing Framework: a common foundation for text editing.</li>
<li class="MsoNormal" style="mso-list:l3 level1 lfo1;tab-stops:list .5in">Workbench
and Resource access API</li>
<li class="MsoNormal" style="mso-list:l3 level1 lfo1;tab-stops:list .5in">Builder
Framework: encapsulate actions to be performed when resources change</li>
<li class="MsoNormal" style="mso-list:l3 level1 lfo1;tab-stops:list .5in">Marker
Framework: provides the ability to place bookmarks, task markers, error markers,
and breakpoints in resources</li>
<li class="MsoNormal" style="mso-list:l3 level1 lfo1;tab-stops:list .5in">Plug-in
Registry: defines the registry for plug-ins, their extension points, and extensions</li>
<li class="MsoNormal" style="mso-list:l3 level1 lfo1;tab-stops:list .5in">Extenders:
allows plug-in tool models to be extended by other plug-ins without subclassing</li>
<li class="MsoNormal" style="mso-list:l3 level1 lfo1;tab-stops:list .5in">Scripting:
provides a way of building plug-ins accessing Workbench facilities that use
common scripting languages like JavaScript and REXX in HTML documents.</li>
<li class="MsoNormal" style="mso-list:l3 level1 lfo1;tab-stops:list .5in">Help:
provides support for help content integration and context sensitive help.</li>
<p class="MsoNormal">The Workbench provides the central integration point for
plug-in user interfaces through a common view of the complete application across
all components and the entire team. This results in a consistent approach for
the creation, management, and navigation of resources. The workbench is a plug-in
implementing an application integration framework that supports seamless tool
user interface integration and controlled openness. A number of common, reusable
plug-ins are included with the workbench and may be used by other plug-ins.</p>
<ul style="margin-top:0in" type="disc">
<li class="MsoNormal" style="mso-list:l0 level1 lfo3;tab-stops:list .5in">Repository
resource navigator: used to create, rename, delete, organize, navigate, and
synchronize solutions, projects, folders, and files</li>
<li class="MsoNormal" style="mso-list:l0 level1 lfo3;tab-stops:list .5in">Outline
View: a logical extension of the resource navigator that provides an outline
view of the contents of a resource</li>
<li class="MsoNormal" style="mso-list:l0 level1 lfo3;tab-stops:list .5in">Tasks
View: a view of user or plug-in created tasks that use the marker framework
to open and position editors at appropriate points</li>
<li class="MsoNormal" style="mso-list:l0 level1 lfo3;tab-stops:list .5in">Properties
View: provides an editor or viewer of resource properties</li>
<li class="MsoNormal" style="mso-list:l0 level1 lfo3;tab-stops:list .5in">Content
Area: a managed area of the desktop that is shared by all resource editors</li>
<p class="MsoNormal">The workbench defines a set of key interaction paradigms
for working with artifacts (navigator, content outliner, property sheet, problems/tasks,
wizards, content edit, debug) to reduced complexity. All content-specific function
is provided by plug-ins that integrate with the desktop and with each other.</p>
<h4>Java IDE</h4>
<p>Eclipse also includes a plug-in that provides a full-featured Java IDE. The
IDE includes a Java project nature that supports Java editing and debug perspectives.
A Java project can specify a classpath that includes other projects as well
as external jar and zip files, and directories containing Java class files.
The project can also specify the JDK that is to be used to compiler and execute
the project. Like all resources managed by the Eclipse workbench, the Java source
and class files are files in the user's local file system. Other tools like
code generators, beautifiers, etc., can be used on directly on these files.</p>
<p>In addition to the navigator view, the IDE also supports packages and hierarchy
views of Java source, class files, jar files, and zip files. The Java editor
provides syntax highlighting and code completion based on all Java classes available
in the project classpath. The editor is integrated with the outline view to
show the methods in a class. A class can be viewed as a whole, or the editor
can be configured to only show the method selected in the outline view. All
compilation errors are shown in the task view, and double-clicking an error
automatically opens the corresponding Java source file and positions the cursor
at the error. When the error is corrected and the file is saved, it is removed
from the task view.</p>
<p>The Java IDE also provide comprehensive support for refactoring pacakges and