0% found this document useful (0 votes)
29 views35 pages

Eclipse Plug-Ins and Overture IDE

The document discusses Eclipse, an integrated development environment, and creating Eclipse plug-ins. It covers the history of Eclipse, introduction to key Eclipse concepts like workbench, perspectives and views. It then discusses creating plug-ins, extension points and preference pages. The document also discusses the vision and implementation of the Overture IDE for VDM development within the Eclipse platform.

Uploaded by

trungtrungkang
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views35 pages

Eclipse Plug-Ins and Overture IDE

The document discusses Eclipse, an integrated development environment, and creating Eclipse plug-ins. It covers the history of Eclipse, introduction to key Eclipse concepts like workbench, perspectives and views. It then discusses creating plug-ins, extension points and preference pages. The document also discusses the vision and implementation of the Overture IDE for VDM development within the Eclipse platform.

Uploaded by

trungtrungkang
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 35

Introduction to Eclipse, Creating Eclipse plug-ins

and the Overture editor

David Holst Møller


Engineering College of Aarhus
Agenda
● Part I – Introduction to Eclipse and Eclipse
Plug-ins
● Part II – The Overture IDE
A bit of history
● Industry leaders formed the initial eclipse.org Board of
Stewards in November 2001 (Borland, IBM, MERANT, QNX Software Systems,
Rational Software, Red Hat, SuSE, TogetherSoft and Webgain)

● Originally an IBM project developed by OTI, the aim


was to develop a platform which could be used for
integrating all their tools in a common software base.
● In January 2004, the Eclipse Foundation was created.
● Annual release since 2006
Introduction to Eclipse
● An Integrated Development Environment(IDE)
● A Rich Client Platform
● Platform independent
Terms
● Workbench
● Resources
– Projects
– Folders
– Files
● Perspectives
– Views
– Editors
The Eclipse Java IDE
● Java development tooling (JDT)
● Competing with Netbeans (Sun) and
Jdeveloper (Oracle)
Features in Java environment
● Outline
● Code Completion
● Team development (CVS - integrated)
● Refactoring
● Debugging
● Error
● Syntax
● Etc.

8
Eclipse Plug-in Architecture
● Designed for plug-ins
● Far superior range of plug-ins.
Plug-in Terms 1
● A plug-in in Eclipse is a component that
provides a certain type of service within the
context of the Eclipse workbench.
● A feature is a way of grouping and describing
different functionality that makes up a product.
Grouping plug-ins into features allows the
product to be installed and updated using the
Eclipse update server and related support.

10
Plug-in Terms 2
● Extensions are the central mechanism for
contributing behaviour to the platform.
● Extension points define new function points
for the platform that other plug-ins can plug into.
● Except for a small kernel known as the
Platform Runtime, all of the Eclipse Platform's
functionality is located in plug-ins.

11
Extension loading

13
Example: Preference page
● Plug-ins may contribute
preference pages
● All preference pages are
assembled and categorized in
the Preferences dialog
● How is the Preferences dialog
created?
● How and when is a particular
preference page created?

14
Create the Preferences Dialog - 1/3

● The UI plug-in provides the


org.eclipse.ui.preference Pages
extension point
● The UI plug-in first creates an
empty Preferences dialog
● Now the dialog needs to be
populated...

15
Generate the Preference Page Index (2/3)

● The UI plug-in queries the


extension registry for all
org.eclipse.ui.preferencePages
extensions
● The preference page index is
then generated using the xml
markup only:
● Names for available
preference pages are
displayed in the tree using
the name attribute
● The category attribute is
used to categorize the
pages
16
Create the Plug-in Development Preference Page (3/3)

● When the Plug-in Development


preference page gets selected,
the UI plug-in asks the
extension registry to load and
instantiate the Java class
specified by the class attribute
of the corresponding extension
● The class gets loaded and the
preference page gets created
The plug-in providing that
extension (i.e. the
org.eclipse.pde.ui plug- in) may
then get activated, if it’s not
already active

17
Defining Plug-ins
plugin.xml

plugin.properties

MAINFEST.MF
package org.overturetool.ui;

//IMPORTS...
public class OverturePerspective implements IPerspectiveFactory {

public void createInitialLayout(IPageLayout layout) {

....

// views – standard workbench


layout.addShowViewShortcut(IPageLayout.ID_OUTLINE);
layout.addShowViewShortcut(IPageLayout.ID_PROBLEM_VIEW);
layout.addShowViewShortcut(IConsoleConstants.ID_CONSOLE_VIEW);
layout.addShowViewShortcut(navigator);
layout.addShowViewShortcut(IPageLayout.ID_TASK_LIST);
layout.addShowViewShortcut(IProgressConstants.PROGRESS_VIEW_ID);

// new actions
layout.addNewWizardShortcut(
"org.overturetool.internal.ui.wizards.OvertureProjectWizard");
layout.addNewWizardShortcut(
"org.overturetool.internal.ui.wizards.OvertureFileCreationWizard");
layout.addNewWizardShortcut(
"org.eclipse.ui.wizards.new.folder");
layout.addNewWizardShortcut(
"org.eclipse.ui.wizards.new.file");
layout.addNewWizardShortcut(
"org.eclipse.ui.editors.wizards.UntitledTextFileWizard");
}
}
The Overture IDE
VDM development today
● No integration of interpreter and editor
● Cumbersome development process
● Poor navigation
● No intellisense
● No support for refactoring
● Debugging support is good, but it could be
better
● Test coverage measurement – but rather
bothersome
● Support for Code Generation
● Support for UML→VDM→UML
Vision for the Overture IDE
● Integrated Development Environment
● The IDE should offer features know from other IDEs. Such as:
● Syntax highlighting
● Easy navigation
– Files, definitions, errors, warnings
● Refactoring
● Advanced debugging features
● Test coverage measurement
● Code generation and UML to and from VDM
● High Extensibility
● The only tool needed for all VDM development - including all dialects
Introduction to the Overture Editor
Vision for the Overture IDE revisited
● Integrated Development Environment
● The IDE should offer features know from other IDEs. Such as:
● Syntax highlighting
● Easy navigation
– Files, definitions , errors, warnings
● Refactoring
● Advanced debugging features
● Test coverage measurement
● Code generation and UML to and from VDM
● High Extensibility
● The only tool needed for all VDM development - including all dialects
Overture IDE Implementation
DLTK
Debug Protocol
● A common debugger protocol for languages
and debugger UI communication
● Part of the DLTK
Extras...
OSGi

object-oriented (instead of procedural) Modular (as opposed to unmodular)

You might also like