Introduction to Eclipse, Creating Eclipse plug-ins and the Overture editor. David Holst Møller Engineering College of Aarhus



Similar documents
Developing Eclipse Plug-ins* Learning Objectives. Any Eclipse product is composed of plug-ins

Duke University Program Design & Construction Course

Eclipse for Smalltalkers

NetBeans IDE Field Guide

Eclipse Rich Client Platform. Kai Tödter Karsten Becker et al. Organized by:

Web Development with the Eclipse Platform

MSWL Development & Tool. Eclipse IDE

IBM Rational Web Developer for WebSphere Software Version 6.0

creating a text-based editor for eclipse

Principles of integrated software development environments. Learning Objectives. Context: Software Process (e.g. USDP or RUP)

SAP's Integrated Development Environment for Java. Karl Kessler, SAP AG

Java Application Development using Eclipse. Jezz Kelway Java Technology Centre, z/os Service IBM Hursley Park Labs, United Kingdom

What Is NetBeans? Free and open-source based > Open source since June, 2000 > Large community of users and developers

Software Development Kit

SOFTWARE TESTING TRAINING COURSES CONTENTS

Take full advantage of IBM s IDEs for end- to- end mobile development

Eclipse for Smalltalkers

Department of Veterans Affairs. Open Source Electronic Health Record Services

Metric Tools for Java

Sabre Red Apps. Developer Toolkit Overview. October 2014

Extreme Java G Session 3 Main Theme Java Core Technologies (Part I) Dr. Jean-Claude Franchitti

A Remote Desktop Application for Android

Java EE 6 development with Eclipse, Netbeans, IntelliJ and GlassFish. Ludovic Champenois Oracle Corporation

Embracing Eclipse Orion

An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0

Windows Presentation Foundation (WPF)

REMOTE DEVELOPMENT OPTION

Axivion Bauhaus Suite Technical Factsheet

Embarcadero Rapid SQL Developer 2.0 User Guide

Publishing, Consuming, Deploying and Testing Web Services

For Introduction to Java Programming, 5E By Y. Daniel Liang

Microsoft High-Performance Computing Capital Markets Survey

Embedded Device Solution Life Cycle Support with Eclipse

The ADOxx Metamodelling Platform Workshop "Methods as Plug-Ins for Meta-Modelling" in conjunction with "Modellierung 2010", Klagenfurt

Eclipse: A platform for integrating development tools

Cross Platform Software Release Capabilities

<Insert Picture Here> Betting Big on JavaServer Faces: Components, Tools, and Tricks

Software Specification and Testing

Application Development With Data Studio

How To Develop An Application Developer For An Ubio Websphere Studio 5.1.1

Software Development Environment. Installation Guide

InfoSphere Master Data Management operational server v11.x OSGi best practices and troubleshooting guide

Rich Client Application Development

DEVELOPMENT OF AN ANALYSIS AND REPORTING TOOL FOR ORACLE FORMS SOURCE CODES

<Insert Picture Here> What's New in NetBeans IDE 7.2

EMC Documentum Composer

Best Practices for Programming Eclipse and OSGi

Eclipse Platform Technical Overview

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

JBoss Enterprise Middleware. The foundation of your open source middleware reference architecture

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I)

Eclipse. Software Engineering with an Integrated Development Environment (IDE) Markus Scheidgen

System requirements. Java SE Runtime Environment(JRE) 7 (32bit) Java SE Runtime Environment(JRE) 6 (64bit) Java SE Runtime Environment(JRE) 7 (64bit)

<Insert Picture Here> Building a Complex Web Application Using ADF and Siebel

Release 1. ICAPRG604A Create cloud computing services

CS 4240: Principles of Software Design. Course Introduction. Tom Horton

POOSL IDE User Manual

Accelerated Java EE Open Source Development with Eclipse CON1905

Projectory A Framework for teaching Object Oriented Design and Object Oriented Programming

JRefleX: Towards Supporting Small Student Software Teams

Android Programming: Installation, Setup, and Getting Started

Integrating TAU With Eclipse: A Performance Analysis System in an Integrated Development Environment

Showcase: GDF SUITE Management Center. Feb. 4 th 2004 Dr. Frank Gerhardt, Chris Wege

WebRatio 5: An Eclipse-based CASE tool for engineering Web applications

Adobe ColdFusion Builder

SAP Technical Brief SAP NetWeaver. Increase IT Productivity with ABAP Development Tools for SAP NetWeaver

Modern Software Development Tools on OpenVMS

Oracle SQL Developer for Database Developers. An Oracle White Paper June 2007

IBM Rational Asset Manager

Introduction to Oracle Mobile Application Framework Raghu Srinivasan, Director Development Mobile and Cloud Development Tools Oracle

Metamodels and Modeling Multiple Kinds of Information Systems

Eclipse-based Applications: Java on the Desktop Revisited

Practical Eclipse Rich Client Platform Projects

Android Mobile App Building Tutorial

Workshop for WebLogic introduces new tools in support of Java EE 5.0 standards. The support for Java EE5 includes the following technologies:

Embarcadero DB Change Manager 6.0 and DB Change Manager XE2

Selenium Automation set up with TestNG and Eclipse- A Beginners Guide

1. Tutorial Overview

2667A - Introduction to Programming

Business Process Execution Language for Web Services

The Benefits of Modular Programming

Oracle Application Development Framework Overview

Before you can use the Duke Ambient environment to start working on your projects or

Securing your business

Glassfish, JAVA EE, Servlets, JSP, EJB

Model-driven development solutions To support your business objectives. IBM Rational Rhapsody edition comparison matrix

NXTware Remote. Advanced Development and Maintenance Environment for OpenVMS and other Strategic Platforms

Oracle SOA Suite: The Evaluation from 10g to 11g

How To Develop Android On Your Computer Or Tablet Or Phone

Student Program Information 2014

Data Sheet VISUAL COBOL WHAT S NEW? COBOL JVM. Java Application Servers. Web Tools Platform PERFORMANCE. Web Services and JSP Tutorials

POOSL IDE Installation Manual

Netbeans 6.0. José Maria Silveira Neto. Sun Campus Ambassador

ORACLE ADF MOBILE DATA SHEET

Building Web Services with Apache Axis2

Android Environment SDK

Release/Installation Notes

Developing NFC Applications on the Android Platform. The Definitive Resource

ADT Plugin for Eclipse

BEAJRockit Mission Control. Using JRockit Mission Control in the Eclipse IDE

Transcription:

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)