DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
What's in store for DevOps in 2023? Hear from the experts in our "DZone 2023 Preview: DevOps Edition" on Fri, Jan 27!
Save your seat
  1. DZone
  2. Coding
  3. Frameworks
  4. When to Extend Which Extension Point in Eclipse Plugin

When to Extend Which Extension Point in Eclipse Plugin

Vishal Jain user avatar by
Vishal Jain
·
Mar. 01, 13 · Interview
Like (0)
Save
Tweet
Share
4.47K Views

Join the DZone community and get the full member experience.

Join For Free
there’s no need to tell how much popular and widely used the eclipse platform is. and the huge success of it lies in its extensibility.

it is extensible through the means of extension points (well defined exposed places/hooks for others to provide extended functionality) and plugins ( providing extended functionality using existing extension points and optionally exposing new extension points). eclipse itself is made up of many and many of plugins built around the small core runtime engine capable of dynamic discovery, loading, and running of plug-ins.

in this post i’m not going to provide a hello-world plugin tutorial or introduction of eclipse platform (as you can find many good ones on net). i’m going to share what difficulty i faced when i started plugin development. after reading some introduction tutorials i wanted to know quickly which extension points i need to use for some particular tasks . once we know the name of extension point we can find the details in official eclipse documentation ( extension points reference ) or even better within platform itself (plugin development environment) when trying to add an extension point it gives the description and sample implementation (if available) to understand.

plugin1

so i’ll focus on quick introduction (to help you get started with further links) of some common extension points and when we can use them (not how) (considered release is eclipse juno). if you need introduction for eclipse plugin development, you can read first http://www.vogella.com/articles/eclipseplugin/article.html for example or request google for other ones.

but before understanding the various extension points, we need to understand the platform structure and few terms.

eclipse

the various subsystems (on top of platform runtime) as described above define many extension points to provide the additional related functionality.

below are the various components of the workbench ui.

workbench

now below describes the common functionality you want to extend/customize and which extensions points are your friends.

add menus/buttons :

menus

declare an abstract semantic behavior of an action (command) with optional default handler: org.eclipse.ui. commands

add menus, menu items and toolbar buttons in ui: org.eclipse.ui. menus

add specific handlers to a command: org.eclipse.ui. handlers

declare key bindings (or set of them called as schemes) to commands: org.eclipse.ui. bindings

more help at: configuring and adding menu items in eclipse v3.3

add views:

view

define additional views  for the workbench: org.eclipse.ui. views

more help at: creating an eclipse view (old)

add editors:

editor

add new editors to the  workbench: org.eclipse.ui. editors

more help at: eclipse editor plugin tutorial

configure the launching of applications :

launch1

launch2

define/configure a type for launching applications : org.eclipse.debug.core. launchconfigurationtypes

associate an image with a launch configuration type: org.eclipse.debug.ui. launchconfigurationtypeimages

define group of tabs for a launch configuration dialog: org.eclipse.debug.ui. launchconfigurationtabgroups

define shortcut for launching application based on current selection/ perspective: org.eclipse.debug.ui. launchshortcuts

more help at: launching framework in eclipse

add resource markers :

markers

add marker (additional information to tag to resources like projects, files, folders): org.eclipse.core.resources. markers

more help at: using markers to tell users about problems and tasks

add preferences:

preference

add pages to the preference dialog box: org.eclipse.ui. preferencepages

more help at: eclipse preferences tutorial

add wizards :

wizard

add wizard to create a new resource: org.eclipse.ui. newwizards

add wizard to import a resource: org.eclipse.ui. importwizards

add wizard to export a resource: org.eclipse.ui. exportwizards

more help at: creating eclipse wizards tutorial

contribute help:

expanded_book

add help for an individual plugin: org.eclipse. help .toc

more help at: contributing a little help

define specialized searches:

register search pages: org.eclipse.search. searchpages

register search result pages: org.eclipse.search. searchresultviewpages

more help at: custom search page

i hope it helps someone in the similar need. let me know if it is useful or if you have any suggestions for improvement .

happy eclipse, bye


Eclipse

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Iptables Basic Commands for Novice
  • How to Create a Real-Time Scalable Streaming App Using Apache NiFi, Apache Pulsar, and Apache Flink SQL
  • Debugging Threads and Asynchronous Code
  • How To Generate Code Coverage Report Using JaCoCo-Maven Plugin

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: