Platform Plug-in Developer Guide
Programmer's Guide
Welcome to Eclipse
Who needs a platform?
The holy grail
What is Eclipse?
Go to eclipse.org
Platform architecture
Platform SDK roadmap
Simple plug-in example
A minimal plug-in
Creating the plug-in project
The Hello World view
The Hello World manifests
Running the plug-in
Beyond the basics
Runtime overview
The runtime plug-in model
Plug-ins and bundles
Extension points and the registry
Runtime Components
Runtime preferences
Content types
Using content types
Contributing content types
Concurrency infrastructure
Reporting progress
Job scheduling
Scheduling rules
Locks
Plugging into the workbench
Workbench under the covers
Basic workbench extension points
org.eclipse.ui.views
org.eclipse.ui.viewActions
org.eclipse.ui.editors
org.eclipse.ui.editorActions
org.eclipse.ui.popupMenus
org.eclipse.ui.actionSets
org.eclipse.ui.menus
The plug-in class
Preference pages
Contributing a preference page
Implementing a preference page
Field editors
Dialogs and wizards
Standard dialogs
Application dialogs
Dialog settings
Wizards
Workbench wizard extension points
org.eclipse.ui.newWizards
org.eclipse.ui.importWizards
org.eclipse.ui.exportWizards
Wizard dialogs
Multi-page wizards
JFace UI framework
Viewers
Actions and contributions
User interface resources
Long-running operations
Field assist
Standard Widget Toolkit
Widgets
Controls
Events
Custom widgets
Layouts
Custom Layouts
Threading issues
Error handling
Graphics
Examples
UI Forms
Controls
Form
Hyperlink
Section
FormText
XML Markup
Layouts
TableWrapLayout
ColumnLayout
Advanced Topics
Color and font management
Managed forms
Master/Details block
Multi-page form editors
Resources overview
Resources and the workspace
Resources and the file system
Resource properties
Project-scoped preferences
File encoding and content types
Linked resources
Resource markers
Modifying the workspace
Batching resource changes
Tracking resource changes
Concurrency and the workspace
Advanced resource concepts
Project natures
Incremental project builders
Derived resources
Workspace save participation
Resource modification hooks
Refresh providers
Alternate file systems
Using the file system API
Working with resources in other file systems
File system providers
Advanced workbench concepts
Workbench menu contributions
Menu and toolbar paths
Action set part associations
Boolean expressions and action filters
Retargetable actions
Setting a global action handler
Contributing new retargetable actions
Retargetable editor actions
Retargetable action set actions
Undoable operations
Perspectives
org.eclipse.ui.perspectives
org.eclipse.ui.perspectiveExtensions
Decorators
Workbench key bindings
Commands
Bindings
Schemes
Contexts and key bindings
Element factories
Accessible user interfaces
Honoring single click support
Markers in the IDE
Working sets
Filtering large user interfaces
Activities
Contexts
Workbench concurrency support
Workbench resource support
Contributing a property page
Implementing a property page
Marker help and resolution
Contributing marker help
Contributing marker resolution
Contributing resource filters
Text file encoding
Editors
Workbench editors
Text editors and platform text
Documents and partitions
Source viewers and annotations
Configuring a source viewer
Text and ruler hover
Syntax coloring
Content assist
Registering editor actions
Other text editor responsibilities
Content outliners
Search support
Contributing a search page
Contributing a search result page
Compare support
Merging multiple streams
Implementing a content viewer
Implementing a structure viewer
Advanced compare techniques
Team support
Repository providers
Resource management
Synchronization Support
Local History Synchronization Example
Beyond the basics
Support for Logical Model Integration
Repository Roadmap for Logical Model Integration
Model Roadmap for Logical Model Integration
Rich Team Integration
Adding team actions
Team decorators
Adding preferences and properties
Project sets
Team and linked resources
Team private resources
File types
Adding History support
Program debug and launch support
Launching a program
Adding launchers to the platform
Obtaining a program's source code
Comparing launch configurations
Process factories
Launching Java applications
Handling errors from a launched program
Launch configuration dialog
Launch configuration type images
Launch shortcuts
Debugging a program
Platform debug model
Breakpoints
Expressions
Debug model presentation
Debug UI utility classes
Platform Ant support
Running Ant buildfiles programmatically
Ant tasks provided by the platform
Contributing tasks and types
Developing Ant tasks and types within Eclipse
Expanding the Ant classpath
User assistance support
Welcome
Universal intro
Contributing to universal intro
Adding the preference page
Extending the universal intro
Configuring product defaults
Managing links
Defining an intro part
Contributing a HelloWorld intro Part
Using the CustomizableIntroPart
Defining an intro config
Defining intro content
Using XHTML as intro content
Displaying static HTML content in the CustomizableIntroPart
Extending an intro config
Extending the content of an intro config
Defining intro themes
Contributing a standby content part
Defining a custom IntroURL action
Help
Configuration/setup
Rich Client Platform (RCP) help
Standalone help
Infocenter
Product customization
Pre-indexing documentation
Help content
Table of contents (toc) files
Help server and file locations
Completing the plug-in manifest
Building nested documentation structures
Contributing XHTML help documents
Active help
Writing the help action
Invoking the action from HTML
Tips for debugging active help
Embedding commands in help
Authoring a command link
Context-sensitive help
Declaring a context id
Describing and packaging context-sensitive help
Dynamic context help
Infopops
Help search
Plugging in search engines
Cheat sheets
Simple cheat sheets
Cheat sheet content file XML format
Composite cheat sheets
Composite cheat sheet content file XML format
Cheat sheet authoring guidelines
Dynamic content
Filters
Includes
Anchors
Packaging and delivering Eclipse based products
Defining a Product
The products extension point
Customizing a product
Products as primary features
Customizing a primary feature
Features
Plug-ins and fragments
Locale specific files
Product installation guidelines
Product extensions
Updating a product or extension
Deploying eclipse based application with Java Web Start
Building a Rich Client Platform application
The browser example
Defining a rich client application
Customizing the workbench
Making UI contributions
Adding the perspective
Adding views
Defining the actions
Reference
API Reference
org.eclipse.ant.core
org.eclipse.compare
org.eclipse.compare.contentmergeviewer
org.eclipse.compare.rangedifferencer
org.eclipse.compare.structuremergeviewer
org.eclipse.core.commands
org.eclipse.core.commands.common
org.eclipse.core.commands.contexts
org.eclipse.core.commands.operations
org.eclipse.core.expressions
org.eclipse.core.filebuffers
org.eclipse.core.filebuffers.manipulation
org.eclipse.core.filesystem
org.eclipse.core.filesystem.provider
org.eclipse.core.launcher
org.eclipse.core.resources
org.eclipse.core.resources.refresh
org.eclipse.core.resources.team
org.eclipse.core.resources.mapping
org.eclipse.core.runtime
org.eclipse.core.runtime.adaptor
org.eclipse.core.runtime.content
org.eclipse.core.runtime.dynamichelpers
org.eclipse.core.runtime.spi
org.eclipse.core.runtime.jobs
org.eclipse.core.runtime.model
org.eclipse.core.runtime.preferences
org.eclipse.core.variables
org.eclipse.debug.core
org.eclipse.debug.core.model
org.eclipse.debug.core.sourcelookup
org.eclipse.debug.core.sourcelookup.containers
org.eclipse.debug.ui
org.eclipse.debug.ui.actions
org.eclipse.debug.ui.console
org.eclipse.debug.ui.memory
org.eclipse.debug.ui.sourcelookup
org.eclipse.help
org.eclipse.help.browser
org.eclipse.help.search
org.eclipse.help.standalone
org.eclipse.help.ui
org.eclipse.help.ui.browser
org.eclipse.jface.action
org.eclipse.jface.bindings
org.eclipse.jface.bindings.keys
org.eclipse.jface.bindings.keys.formatting
org.eclipse.jface.commands
org.eclipse.jface.contentassist
org.eclipse.jface.contexts
org.eclipse.jface.dialogs
org.eclipse.jface.fieldassist
org.eclipse.jface.layout
org.eclipse.jface.menus
org.eclipse.jface.operation
org.eclipse.jface.preference
org.eclipse.jface.resource
org.eclipse.jface.text
org.eclipse.jface.text.contentassist
org.eclipse.jface.text.formatter
org.eclipse.jface.text.hyperlink
org.eclipse.jface.text.information
org.eclipse.jface.text.link
org.eclipse.jface.text.presentation
org.eclipse.jface.text.projection
org.eclipse.jface.text.quickassist
org.eclipse.jface.text.reconciler
org.eclipse.jface.text.revisions
org.eclipse.jface.text.rules
org.eclipse.jface.text.source
org.eclipse.jface.text.source.projection
org.eclipse.jface.text.templates
org.eclipse.jface.text.templates.persistence
org.eclipse.jface.util
org.eclipse.jface.viewers
org.eclipse.jface.viewers.deferred
org.eclipse.jface.window
org.eclipse.jface.wizard
org.eclipse.ltk.core.refactoring
org.eclipse.ltk.core.refactoring.history
org.eclipse.ltk.core.refactoring.model
org.eclipse.ltk.core.refactoring.participants
org.eclipse.ltk.ui.refactoring
org.eclipse.ltk.ui.refactoring.history
org.eclipse.ltk.ui.refactoring.model
org.eclipse.osgi.service.datalocation
org.eclipse.osgi.util
org.eclipse.search.core.text
org.eclipse.search.ui
org.eclipse.search.ui.actions
org.eclipse.search.ui.text
org.eclipse.swt
org.eclipse.swt.accessibility
org.eclipse.swt.awt
org.eclipse.swt.browser
org.eclipse.swt.custom
org.eclipse.swt.dnd
org.eclipse.swt.events
org.eclipse.swt.graphics
org.eclipse.swt.layout
org.eclipse.swt.ole.win32
org.eclipse.swt.opengl
org.eclipse.swt.printing
org.eclipse.swt.program
org.eclipse.swt.widgets
org.eclipse.team.core
org.eclipse.team.core.diff
org.eclipse.team.core.diff.provider
org.eclipse.team.core.history
org.eclipse.team.core.history.provider
org.eclipse.team.core.mapping
org.eclipse.team.core.mapping.provider
org.eclipse.team.core.subscribers
org.eclipse.team.core.synchronize
org.eclipse.team.core.variants
org.eclipse.team.ui
org.eclipse.team.ui.history
org.eclipse.team.ui.mapping
org.eclipse.team.ui.synchronize
org.eclipse.text.edits
org.eclipse.text.undo
org.eclipse.ui
org.eclipse.ui.about
org.eclipse.ui.actions
org.eclipse.ui.activities
org.eclipse.ui.application
org.eclipse.ui.branding
org.eclipse.ui.browser
org.eclipse.ui.cheatsheets
org.eclipse.ui.commands
org.eclipse.ui.console
org.eclipse.ui.console.actions
org.eclipse.ui.contentassist
org.eclipse.ui.contexts
org.eclipse.ui.dialogs
org.eclipse.ui.editors.text
org.eclipse.ui.editors.text.templates
org.eclipse.ui.fieldassist
org.eclipse.ui.forms
org.eclipse.ui.forms.editor
org.eclipse.ui.forms.events
org.eclipse.ui.forms.widgets
org.eclipse.ui.handlers
org.eclipse.ui.help
org.eclipse.ui.ide
org.eclipse.ui.ide.dialogs
org.eclipse.ui.ide.fileSystem
org.eclipse.ui.intro
org.eclipse.ui.intro.config
org.eclipse.ui.intro.universal
org.eclipse.ui.keys
org.eclipse.ui.menus
org.eclipse.ui.model
org.eclipse.ui.navigator
org.eclipse.ui.navigator.resources
org.eclipse.ui.operations
org.eclipse.ui.part
org.eclipse.ui.plugin
org.eclipse.ui.preferences
org.eclipse.ui.presentations
org.eclipse.ui.progress
org.eclipse.ui.services
org.eclipse.ui.testing
org.eclipse.ui.themes
org.eclipse.ui.texteditor
org.eclipse.ui.texteditor.link
org.eclipse.ui.texteditor.quickdiff
org.eclipse.ui.texteditor.templates
org.eclipse.ui.texteditor.spelling
org.eclipse.ui.views
org.eclipse.ui.views.bookmarkexplorer
org.eclipse.ui.views.contentoutline
org.eclipse.ui.views.framelist
org.eclipse.ui.views.markers
org.eclipse.ui.views.navigator
org.eclipse.ui.views.properties
org.eclipse.ui.views.properties.tabbed
org.eclipse.ui.views.tasklist
org.eclipse.ui.wizards
org.eclipse.ui.wizards.datatransfer
org.eclipse.ui.wizards.newresource
org.eclipse.update.configurator
org.eclipse.update.configuration
org.eclipse.update.core
org.eclipse.update.core.model
org.eclipse.update.operations
org.eclipse.update.search
org.eclipse.update.standalone
Extension Points Reference
org.eclipse.ant.core.antProperties
org.eclipse.ant.core.antTasks
org.eclipse.ant.core.antTypes
org.eclipse.ant.core.extraClasspathEntries
org.eclipse.compare.contentMergeViewers
org.eclipse.compare.contentViewers
org.eclipse.compare.streamMergers
org.eclipse.compare.structureCreators
org.eclipse.compare.structureMergeViewers
org.eclipse.core.contenttype.contentTypes
org.eclipse.core.expressions.propertyTesters
org.eclipse.core.filebuffers.annotationModelCreation
org.eclipse.core.filebuffers.documentCreation
org.eclipse.core.filebuffers.documentSetup
org.eclipse.core.filesystem.filesystems
org.eclipse.core.resources.builders
org.eclipse.core.resources.fileModificationValidator
org.eclipse.core.resources.markers
org.eclipse.core.resources.moveDeleteHook
org.eclipse.core.resources.natures
org.eclipse.core.resources.refreshProviders
org.eclipse.core.resources.teamHook
org.eclipse.core.runtime.adapters
org.eclipse.core.runtime.applications
org.eclipse.core.runtime.contentTypes
org.eclipse.core.runtime.preferences
org.eclipse.core.runtime.products
org.eclipse.core.variables.dynamicVariables
org.eclipse.core.variables.valueVariables
org.eclipse.debug.core.breakpoints
org.eclipse.debug.core.launchConfigurationComparators
org.eclipse.debug.core.launchConfigurationTypes
org.eclipse.debug.core.launchDelegates
org.eclipse.debug.core.launchers
org.eclipse.debug.core.launchModes
org.eclipse.debug.core.logicalStructureProviders
org.eclipse.debug.core.logicalStructureTypes
org.eclipse.debug.core.processFactories
org.eclipse.debug.core.sourceContainerTypes
org.eclipse.debug.core.sourceLocators
org.eclipse.debug.core.sourcePathComputers
org.eclipse.debug.core.statusHandlers
org.eclipse.debug.core.watchExpressionDelegates
org.eclipse.debug.ui.breakpointOrganizers
org.eclipse.debug.ui.consoleColorProviders
org.eclipse.debug.ui.consoleLineTrackers
org.eclipse.debug.ui.contextViewBindings
org.eclipse.debug.ui.debugModelContextBindings
org.eclipse.debug.ui.debugModelPresentations
org.eclipse.debug.ui.launchConfigurationTabGroups
org.eclipse.debug.ui.launchConfigurationTypeImages
org.eclipse.debug.ui.launchGroups
org.eclipse.debug.ui.launchShortcuts
org.eclipse.debug.ui.memoryRenderings
org.eclipse.debug.ui.sourceContainerPresentations
org.eclipse.debug.ui.stringVariablePresentations
org.eclipse.debug.ui.variableValueEditors
org.eclipse.equinox.preferences.preferences
org.eclipse.help.contentExtension
org.eclipse.help.contentProducer
org.eclipse.help.contexts
org.eclipse.help.index
org.eclipse.help.toc
org.eclipse.help.base.activitySupport
org.eclipse.help.base.browser
org.eclipse.help.base.luceneAnalyzer
org.eclipse.help.base.luceneSearchParticipants
org.eclipse.help.ui.searchEngine
org.eclipse.ltk.core.refactoring.copyParticipants
org.eclipse.ltk.core.refactoring.createParticipants
org.eclipse.ltk.core.refactoring.deleteParticipants
org.eclipse.ltk.core.refactoring.moveParticipants
org.eclipse.ltk.core.refactoring.refactoringContributions
org.eclipse.ltk.core.refactoring.renameParticipants
org.eclipse.ltk.ui.refactoring.changePreviewViewers
org.eclipse.ltk.ui.refactoring.statusContextViewers
org.eclipse.search.searchPages
org.eclipse.search.searchResultSorters
org.eclipse.search.searchResultViewPages
org.eclipse.search.textSearchEngine
org.eclipse.search.textSearchQueryProvider
org.eclipse.team.core.fileTypes
org.eclipse.team.core.ignore
org.eclipse.team.core.projectSets
org.eclipse.team.core.repository
org.eclipse.team.ui.configurationWizards
org.eclipse.team.ui.synchronizeParticipants
org.eclipse.team.ui.synchronizeWizards
org.eclipse.ui.acceleratorConfigurations
org.eclipse.ui.acceleratorScopes
org.eclipse.ui.acceleratorSets
org.eclipse.ui.actionDefinitions
org.eclipse.ui.actionSetPartAssociations
org.eclipse.ui.actionSets
org.eclipse.ui.activities
org.eclipse.ui.activitySupport
org.eclipse.ui.bindings
org.eclipse.ui.browser.browsers
org.eclipse.ui.browserSupport
org.eclipse.ui.cheatsheets.cheatSheetContent
org.eclipse.ui.cheatsheets.cheatSheetItemExtension
org.eclipse.ui.commands
org.eclipse.ui.commandImages
org.eclipse.ui.console.consoleFactories
org.eclipse.ui.console.consolePageParticipants
org.eclipse.ui.console.consolePatternMatchListeners
org.eclipse.ui.contexts
org.eclipse.ui.decorators
org.eclipse.ui.dropActions
org.eclipse.ui.editorActions
org.eclipse.ui.editors
org.eclipse.ui.editors.annotationTypes
org.eclipse.ui.editors.documentProviders
org.eclipse.ui.editors.markerAnnotationSpecification
org.eclipse.ui.editors.markerUpdaters
org.eclipse.ui.editors.templates
org.eclipse.ui.elementFactories
org.eclipse.ui.encodings
org.eclipse.ui.exportWizards
org.eclipse.ui.externaltools.configurationDuplicationMaps
org.eclipse.ui.fontDefinitions
org.eclipse.ui.handlers
org.eclipse.ui.helpSupport
org.eclipse.ui.ide.filesystemSupport
org.eclipse.ui.ide.markerHelp
org.eclipse.ui.ide.markerImageProviders
org.eclipse.ui.ide.markerResolution
org.eclipse.ui.ide.markerSupport
org.eclipse.ui.ide.projectNatureImages
org.eclipse.ui.ide.resourceFilters
org.eclipse.ui.importWizards
org.eclipse.ui.intro
org.eclipse.ui.intro.config
org.eclipse.ui.intro.configExtension
org.eclipse.ui.keywords
org.eclipse.ui.menus
org.eclipse.ui.navigator.linkHelper
org.eclipse.ui.navigator.navigatorContent
org.eclipse.ui.navigator.viewer
org.eclipse.ui.newWizards
org.eclipse.ui.perspectiveExtensions
org.eclipse.ui.perspectives
org.eclipse.ui.popupMenus
org.eclipse.ui.preferencePages
org.eclipse.ui.preferenceTransfer
org.eclipse.ui.presentationFactories
org.eclipse.ui.propertyPages
org.eclipse.ui.startup
org.eclipse.ui.systemSummarySections
org.eclipse.ui.themes
org.eclipse.ui.viewActions
org.eclipse.ui.views
org.eclipse.ui.views.properties.tabbed.propertyContributor
org.eclipse.ui.views.properties.tabbed.propertySections
org.eclipse.ui.views.properties.tabbed.propertyTabs
org.eclipse.ui.workbench.texteditor.quickDiffReferenceProvider
org.eclipse.ui.workbench.texteditor.spellingEngine
org.eclipse.ui.workingSets
org.eclipse.update.core.featureTypes
org.eclipse.update.core.installHandlers
org.eclipse.update.core.siteTypes
OSGi API Reference
Other reference information
Runtime options
API rules of engagement
Naming conventions
Glossary of terms
Map of platform plug-ins
Starting Eclipse from Java
Multi-user installs
Third party libraries and classloading
Plug-in manifest
OSGi bundle manifest
Project description file
Message bundles
Tips for making user interfaces accessible
Supporting bidirectional text
How to write an Eclipse installer
About.ini file format
Plug-in archives
Feature manifest
Feature archives
The platform.xml file
Update server site map
Running update manager from command line
What's new
3.2 Plug-in Migration Guide
Migrating to Eclipse 3.2 from 3.1
Introduction
FAQ
Incompatibilities
Adopting 3.2 Mechanisms and API
Migrating to Eclipse 3.1 from 3.0
Introduction
FAQ
Incompatibilities
Adopting 3.1 Mechanisms and API
Migrating to Eclipse 3.0 from 2.1
Introduction
FAQ
Incompatibilities
Adopting 3.0 Mechanisms and API
Examples Guide
Installing the examples
Standard Widget Toolkit
Using the SWT example launcher
Running and browsing the SWT examples manually
Stand-alone examples
Address book
Clipboard
File viewer
Hello world
Hover help
Image analyzer
Java syntax viewer
Text editor
Workbench views
Browser
Controls
Custom Controls
Layout
OLE
Paint
Workbench
Field assist example
Java editor
Template editor
Multi page editor
Property sheet
Readme tool
Undo example
Help
Team
Repository Providers
Synchronize Participants
Logical Model Integration
Compare
Structured Compare
XML Compare
Questions Index
Legal
DSF Design Documents
DSF White Paper
DSF Services Model
DSF Concurrency Model
DSF Data Model
GDB/MI Debugger implementation based on DSF
DSF API Reference All Packages
Legal
NAB plug-in for MWT User Guide
Contents
Preface
Chapter 1 Overview
1.1 NAB plug-in for MWT
1.1.1 Functions
1.1.2 License
Chapter 2 Creating a Simple Application, Hello
2.1 Starting Eclipse
2.2 Exiting Eclipse
2.3 Creating a Project
2.4 Creating an Application Window
2.5 Allocating an Instance to an Application Window
2.6 Creating an Event Procedure
2.7 Building and Running an Executable File
Chapter 3 Views
3.1 Name and Function of Each View
3.2 [C/C++ Projects] View
3.2.1 General operations and settings
3.2.2 Importing a project
3.2.2.1 Importing a NAB/MWT project file
3.2.2.2 Importing a WideStudio/MWT project file
3.2.3 NAB/MWT project files
3.3 [NAB/MWT Tree] View
3.4 [NAB/MWT List] View
3.5 [NAB/MWT Editor] View
3.6 [NAB/MWT Properties] View
3.6.1 Editing instance properties
3.6.2 Defining an instance as an array
3.7 [NAB/MWT Attributes] View
3.7.1 Creating a class library
3.7.1.1 Setting (or changing) the base class for creating other classes
3.7.1.2 Adding a property to a created class
3.7.1.3 Adding a trigger to a created class
3.7.2 Using the Store function
3.8 [NAB/MWT Procedures] View
3.9 [NAB/MWT Object Box] View
Chapter 4 Compile and Build
4.1 Setting Up a Build Environment
4.1.1 Compiler and linker settings
4.1.1.1 Compiler settings
4.1.1.2 Linker settings
4.1.2 Build target settings
4.1.3 Default project encoding setting
4.1.4 Application type setting
4.1.5 Build target environment settings
4.2 Building
4.3 Running a Created Application
4.4 Debugging
NAB plug-in for MWT User Guide(Japanese)
目次
まえがき
第1章 概要
1.1 NAB plug-in for MWTについて
1.1.1 機能
1.1.2 ライセンス
第2章 簡単なアプリケーションHelloの作成
2.1 起動方法
2.2 終了方法
2.3 プロジェクトの作成
2.4 アプリケーションウィンドウの作成
2.5 アプリケーションウィンドウへの部品の配置
2.6 イベントプロシージャの作成
2.7 実行ファイルのビルドと実行
第3章 各ビューについて
3.1 各ビューの名称と機能
3.2 [C/C++ Projects]ビューについて
3.2.1 一般的な操作/設定について
3.2.2 プロジェクトのインポートについて
3.2.2.1 NAB/MWTプロジェクトファイルをインポートするには