Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.

Slides:



Advertisements
Similar presentations
Extending Eclipse Kai-Uwe Mätzel IBM OTI Labs Zurich
Advertisements

Introduction to Eclipse plugin development for CSU 670 course project, Selector language (Xaspect) editor plugin implementation.
Developing an Eclipse Plug-in David Gallardo. Platform Runtime Workspace Help Team Workbench JFace SWT Eclipse Project Java Development Tools (JDT) Their.
Goals Give you a feeling of what Eclipse is.
On the Eclipse Project Mateusz Srebrny 16 February 2004 Warszawa Slides adapted from
Eclipse Architecture Dwight Deugo Nesa Matic
Eclipse Introduction Dwight Deugo Nesa Matic
Eclipse Paolo Gasti. The Problem ■ There is the need for a new development environment ■ It has to help software designers and implementers to do their.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Eclipse Begin at the Beginning. Where to Find it:
Views Dwight Deugo Nesa Matic
1 Plug-in Development Environment (PDE) Guide. 2 Introduction to PDE l What is PDE: »a tool designed to help you develop platform plug-ins while working.
Enhancing Developer Productivity using Eclipse Presented by: Tom Sausner.
On Platform-Plugin Architecture Take Eclipse as an Example 魏恒峰.
Eclipse IDE. 2 IDE Overview An IDE is an Interactive Development Environment Different IDEs meet different needs BlueJ and DrJava are designed as teaching.
03 Using Eclipse. 2 IDE Overview An IDE is an Interactive Development Environment Different IDEs meet different needs BlueJ and DrJava are designed as.
© 2006 by IBM 1 How to use Eclipse to Build Rich Internet Applications With PHP and AJAX Phil Berkland IBM Software Group Emerging.
[________________________] Eclipse project briefing materials. Copyright (c) 2002 International Business Machines Corp. All rights reserved.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
Eclipse Overview Introduction to Web Programming Kirkwood Continuing Education Fred McClurg © Copyright 2015, Fred McClurg, All Rights Reserved.
© 2005 by IBM; made available under the EPL v1.0 | March 1, 2005 Tim deBoer Gorkem Ercan Extend WTP Server Tools for your.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
ECLIPSE and UML Onur Demir
Duke University Program Design & Construction Course Application Development Tools Sherry Shavor
Definition of the SDK for FIspace Augusto Morales & Hector Bedón UPM.
Introduction to Eclipse and Eclipse RCP Kenneth Evans, Jr. Presented at the EPICS Collaboration Meeting June 13, 2006 Argonne National Laboratory, Argonne,
Ontology Engineering and Plugin Development with the NeOn Toolkit NeOn Toolkit Overview June 1st, 2008 Michael Erdmann, Peter Haase, Holger Lewen, Rudi.
Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang Many slides in this presentation can be found at
® How to Build IBM Lotus Notes Components for Composite Applications 정유신 과장 2007 하반기 로터스 알토란.
Android for Java Developers Denver Java Users Group Jan 11, Mike
Workbench Overview Dwight Deugo Nesa Matic
Extending the Eclipse Framework and Rich Client Platform Jeff Myers Languages for Lunch 10/13/2004.
Ontology Engineering and Plugin Development with the NeOn Toolkit Plug-in Development for the NeOn Toolkit June 1st, 2008 Michael Erdmann, Peter Haase,
Introduction to Eclipse CSC 216 Lecture 3 Ed Gehringer Using (with permission) slides developed by— Dwight Deugo Nesa Matic
TOOLS FOR DESIGN AND DEVELOPMENT ENVIRONMENTS. Case study - ECLIPSE Lecture notes 2.
Jan Hatje, DESY CSS ITER March 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
[________________________] Eclipse project briefing materials. Copyright (c) 2002, 2003 IBM Corporation and others. All rights reserved. This.
Selected Topics in Software Engineering - Distributed Software Development.
CS 614: Theory and Construction of Compilers Lecture 18 Fall 2003 Department of Computer Science University of Alabama Joel Jones.
Welcome To Eclipse. Basic Concepts Workspace – directory where your projects are stored –Projects grouping of related works –Resources generic term to.
CMSC 466 / 666 Yong Rao Feb. 11, 2004 Revised Mar. 15, 2004.
A (very brief) intro to Eclipse Boyana Norris June 4, 2009.
Eclipse. An IDE is an Integrated Development Environment Different IDEs meet different needs BlueJ, DrJava are designed as teaching tools Emphasis is.
Eclipse 3.1 IDE Overview.
Eclipse 24-Apr-17.
First Venture into the Android World Chapter 1 Part 2.
Eclipse. An IDE is an Integrated Development Environment Different IDEs meet different needs BlueJ, DrJava are designed as teaching tools Emphasis is.
Eclipse Rich Client Platform Discover the Anatomy of an Application Based On Eclipse Wayne Beaton Evangelist, Eclipse Foundation.
Architecture for an Ontology and Web Service Modelling Studio Michael Felderer & Holger Lausen DERI Innsbruck Frankfurt,
© 2008 by Shawn Spiars; made available under the EPL v1.0 | March 17, 2008 Case Study – Phurnace Software and RCP Shawn Spiars Lead UI Developer Phurnace.
© 2002 IBM Corporation Transaction Processing Facility TPF Users Group Acapulco May 2004 © 2004 IBM Corporation Pete Nicholls IBM Toronto Lab TPF Toolkit.
Jan Hatje, DESY CSS GSI Feb. 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
Introduction 1 Lars Vogel 4/22/2009.  Who am I?  Eclipse as a platform  What is Eclipse RCP?  Extension Points / Extensions  Equinox  SWT & JFace.
Developing GUIs With the Eclipse Visual Editor, SWT Edition David Gallardo.
© 2009 by IBM; made available under the EPL v1.0 | Feb 1, 2009 Seneca 2009 Tim deBoer Gorkem Ercan Extend WTP Server Tools.
Eclipse Outlines: What is Eclipse? How to Install Eclipse? Eclipse Platform Eclipse Plug in Eclipse UML JUnit in Eclipse. References Latifa AlAbdulkarim.
Eclipse 27-Apr-17.
Java IDE Dwight Deugo Nesa Matic
ECLIPSE RICH CLIENT PLATFORM Part 1 Introduction.
Eclipse.
Goals Give you a feeling of what Eclipse is.
ATS Application Programming: Java Programming
A (very brief) intro to Eclipse
COSC-4840 Software Engineering
Introduction to Eclipse
Architecture, Components, Configuration
An Introduction to Eclipse
Presentation transcript:

Introduction to Eclipse Plug-in Development

Who am I? Scott Kellicker Java, C++, JNI, Eclipse.

Credits Some slides are derivative, based on Eclipse presentations. Copyright (c) 2002, 2003 IBM Corporation and others. All rights reserved. This content is made available to you by Eclipse.org under the terms and conditions of the Common Public License Version 1.0 ("CPL").

Agenda Plug-in Architecture Eclipse Platform Example

What is Eclipse? Java VM Standard Java2 Virtual Machine Platform Eclipse Platform Java development tools JDTPDE Plug-in development environment A free Java IDE A tool integration platform Open, extensible architecture based on plug-ins

Eclipse Plug-in Architecture Plug-in - smallest unit of Eclipse functionality Big example: HTML editor Small example: Action to backup files Extension point - named entity for collecting “contributions” Example: workbench preference UI extension point Extension - a contribution Example: specific backup preferences

Eclipse Plug-in Architecture Each plug-in Extends 1 or more extension points Depends on 1 or more plug-ins Lives in its own sub-directory May contain Java code or other files May export own Java APIs May declare its own extension points Details spelled out in the plug-in manifest Manifest declares contributions Code implements contibutions and provides API

Plug-in Manifest <plugin id = “com.example.tool" name = “Example Plug-in Tool" class = "com.example.tool.ToolPlugin"> <page id = "com.example.tool.preferences" icon = "icons/knob.gif" title = “Tool Knobs" class = "com.example.tool.ToolPreferenceWizard“/> Declare contribution this plug-in makes Declare new extension point open to contributions from other plug-ins Location of plug-in’s code Other plug-ins needed Plug-in identification plugin.xml

Eclipse Plug-in Architecture Plug-in A Declares extension point P Declares interface I to go with P Plug-in B Implements interface I with its own class C Contributes class C to extension point P Plug-in A instantiates C and calls its I methods plug-in A plug-in B class C interface I extension point P extension Typical arrangement contributes creates, calls implements

Plug-in Activation Eclipse Platform Runtime is micro-kernel All functionality supplied by plug-ins Eclipse Platform Runtime handles start up Discovers plug-ins installed on disk Contributions processed without plug-in activation Example: Menu constructed from manifest info for contributed items Plug-ins are “lazy loaded” as needed Example: Plug-in activated only when user selects its menu item

Plug-in Architecture - Summary All functionality provided by plug-ins Includes all aspects of Eclipse Platform itself Load on demand by separating declaration from implementation Communication via extension points Contributing does not require plug-in activation Easy to install and manage plug-ins

Agenda Plug-in Architecture Eclipse Platform Example

Eclipse Platform  Eclipse Platform is the common base  Consists of several key components Platform Runtime Eclipse Platform Workspace Workbench SWT JFace TeamHelp Debug Ant “Core” “UI”

Workspace Component Resources: files, folders, projects Projects map to directories in file system Workspace holds 1 or more top-level projects Tools read, create, modify, and delete resources in workspace Tree of folders and files

Workbench Component SWT – generic low-level graphics and widget set JFace – UI frameworks for common UI tasks Workbench – UI look and feel of Eclipse Platform Workbench SWT JFace

SWT SWT = Standard Widget Toolkit Generic graphics and GUI widget set buttons, lists, text, menus, trees, styled text... OS-independent API Uses native widgets where available Emulates widgets where unavailable Workbench SWT JFace

JFace is higher level UI framework built on SWT Classes for handling common UI tasks API and implementation are window-system independent Dialogs, preferences, wizards, tree, table, list widgets Workbench SWT JFace

Workbench Component Workbench is UI personality of Eclipse Platform UI paradigm centered around Editors Views Perspectives Workbench SWT JFace

Workbench Terminology Tool bar Perspective and Fast View bar Resource Navigator view Stacked views Properties view Tasks view Outline view Bookmarks view Menu bar Message area Editor Status area Text editor

Editors Editors appear in workbench editor area Contribute actions to workbench menu and tool bars Open, edit, save, close lifecycle Extension point for contributing new types of editors Example: JDT provides Java source file editor Extensive text editor API and framework

Views Views provide information on some object Views augment editors Example: Outline view summarizes content Views augment other views Example: Properties view describes selection Extension point for new types of views Eclipse Platform includes many standard views Resource Navigator, Outline, Properties, Tasks, Bookmarks, Search, …

Perspectives Perspectives are arrangements of views and editors Different perspectives suited for different user tasks Extension point for new perspectives Eclipse Platform includes standard perspectives Resource, Debug, … Perspective API

Eclipse Platform - Summary Eclipse Platform is the nucleus of IDE products Plug-ins, extension points, extensions Open, extensible architecture Workspace, projects, files, folders Common place to organize & store development artifacts Workbench, editors, views, perspectives Common user presentation and UI paradigm

Agenda Plug-in Architecture Eclipse Platform Example

Plug-in example Create a simple Backup Plug-in. Why? Eclipse has Export Functionality I use it often, don’t like typing, and want it tailored.

Requirements Time stamp each backup Copy to a preset location Backup all open projects Backup all selected projects

Resources Java Developer’s Guide To Eclipse, D’Anjou, et.al. IBM DeveloperWorks articles C Judd: Building Eclipse plug-ins using Templates S Kellicker: Eclipse for Visual Studio Developers

Questions ?