Introduction to Eclipse plugin development for CSU 670 course project, Selector language (Xaspect) editor plugin implementation.

Slides:



Advertisements
Similar presentations
June, 2007 Petr Hamernik Extending Instant JChem 2.0 Architecture & API.
Advertisements

Where did I go ?. Where did I work ? What did I ANSTO ? 1.Choose a device bus 2.Choose a programming language 3.Propose and develop an architecture.
©2004 BLACKBOARD, INC. ALL RIGHTS RESERVED. Java Integrated Development Environments Heather Natour Senior Lead Engineer Blackboard Inc. July 18 th 10:15am.
© 2008 by Borland Software Corp; made available under the EPL v1.0 | 17 March 2008 Introduction to the Graphical Modeling Framework Artem Tikhomirov, Borland.
1 Actuate Corporation © 2010 THE BIRT COMPANY THE BIRT COMPANY THE BIRT COMPANY THE BIRT COMPANY THE BIRT COMPANY THE BIRT COMPANY THE BIRT COMPANY THE.
ALAR E2 Architecture - Minh Vu1 E2 Plugin Architecture Project Minh Vu Mentor: Craig Thompson CSCE Department, University Of Arkansas.
E4 July 2010 Move | © 2010 Eclipse Contributors, made available under the EPL v1.0E4 July 2010 Move | © 2010 Eclipse Contributors, made available under.
Developing an Eclipse Plug-in David Gallardo. Platform Runtime Workspace Help Team Workbench JFace SWT Eclipse Project Java Development Tools (JDT) Their.
Timeline Editor Tommi Karhela, Antti Villberg VTT.
Goals Give you a feeling of what Eclipse is.
© 2007 IBM Corporation IBM Emerging Technologies Enabling an Accessible Web 2.0 Becky Gibson Web Accessibility Architect.
1 Eclipse Example Guide Example : Java Editor. 2 Introduction l The Java Editor example : »demonstrates the standard features available for custom text.
Eclipse Introduction Dwight Deugo Nesa Matic
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
® IBM Software Group © 2008 IBM Corporation RSM and UML 13 june 2008 Fredrik Ferm – ECAT Strategy Team Lead
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.
1 Software Reuse in Eclipse Kellie-Ann Smith Norgye Yuanyuan Song Xiang Yin Jia Xu.
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.
Standards for Technology in Automotive Retail STAR Workbench 1.0 Michelle Vidanes & Dave Carver STAR XML Data Architects, Certified Scrum Masters.
© 2006 by IBM 1 How to use Eclipse to Build Rich Internet Applications With PHP and AJAX Phil Berkland IBM Software Group Emerging.
JFace 吳昆澤. UI framework for plug-ins JFace provides classes for handling common UI programming tasks: Viewers handle the drudgery of populating, sorting,
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.
TOOLS FOR DESIGN AND DEVELOPMENT ENVIRONMENTS. Case study - ECLIPSE Lecture notes 3.
Definition of the SDK for FIspace Augusto Morales & Hector Bedón UPM.
© 2007 by «Author»; made available under the EPL v1.0 | Date | Other Information, if necessary Eclipse SOA Tools Platform Project Eric Newcomer IONA Technologies.
Deutsches Elektronen-Synchrotron DESY Helmholtz Association of German Research Centres Hamburg, Germany The European X-Ray Laser Project.
Writing Widgets & Custom Script API for BOY Xihui Chen
® How to Build IBM Lotus Notes Components for Composite Applications 정유신 과장 2007 하반기 로터스 알토란.
March 22, open.ac.uk Towards Better Tool Support for Goal Models.
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
Integrated Development Environment for Policies Anjali B Shah Department of Computer Science and Electrical Engineering University of Maryland Baltimore.
WordFreak A Language Independent, Extensible Annotation Tool.
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,
Vision The ultimate IDE/CASE tool should supports all steps in the software development process. Current tools perform only minimal semantic-level analysis.
TOOLS FOR DESIGN AND DEVELOPMENT ENVIRONMENTS. Case study - ECLIPSE Lecture notes 2.
[________________________] Eclipse project briefing materials. Copyright (c) 2002, 2003 IBM Corporation and others. All rights reserved. This.
Selected Topics in Software Engineering - Distributed Software Development.
CMSC 466 / 666 Yong Rao Feb. 11, 2004 Revised Mar. 15, 2004.
A (very brief) intro to Eclipse Boyana Norris June 4, 2009.
ECE 452 / CS 446 / SE464 Design Patterns: Part 2 - Questions A Tutorial By Peter Kim Partially based on the tutorial by Michał Antkiewicz.
Eclipse 3.1 IDE Overview.
ModelPedia Model Driven Engineering Graphical User Interfaces for Web 2.0 Sites Centro de Informática – CIn/UFPe ORCAS Group Eclipse GMF Fábio M. Pereira.
CSS – Control System Studio
Eclipse 24-Apr-17.
Java GUI building approaches Aleksandar Kartelj Faculty of Mathematics, Belgrade 11 th Workshop “Software Engineering Education and.
Mik Kersten Mylyn Project Lead, Tasktop President & CTO BZ Media Webinar, July , made available under the EPL v1.0 Eclipse 3.3 and Mylyn 2.0.
© 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.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
© 2002 IBM Corporation Transaction Processing Facility TPF Users Group Acapulco May 2004 © 2004 IBM Corporation Pete Nicholls IBM Toronto Lab TPF Toolkit.
® 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.
® IBM Software Group © 2007 IBM Corporation Module 3: Creating UML Diagrams Essentials of Modeling with IBM Rational Software Architect, V7.5.
New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,
Eclipse 27-Apr-17.
1 Eclipse Example Guide Example : Java Editor. 2 Introduction l The Java Editor example : »demonstrates the standard features available for custom text.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
ECLIPSE RICH CLIENT PLATFORM Part 1 Introduction.
Automata Editor Tool with GEF and EMF
Goals Give you a feeling of what Eclipse is.
ATS Application Programming: Java Programming
A (very brief) intro to Eclipse
COSC-4840 Software Engineering
Architecture, Components, Configuration
An Introduction to Eclipse
Dev 11: Embracing OpenEdge® Architect
Presentation transcript:

Introduction to Eclipse plugin development for CSU 670 course project, Selector language (Xaspect) editor plugin implementation

What is Eclipse? Java VM Standard Java2 Virtual Machine Platform Eclipse Platform Java development tools JDTPDE Plug-in development environment - Eclipse is a universal platform for integrating development tools. - Open, extensible architecture based on plug-ins

UI Components SWT - Standard Widget Toolkit JFace – Framework providing higher-level UI abstractions Workbench – Provides reusable and extensible UI metaphors Text - Framework(s) for building high-function text editors UI Forms - Framework for building forms-based views and editors GEF - Framework for building rich graphical editors

SWT - Standard Widget Toolkit  Platform-independent native widget toolkit

JFace  Framework on top of SWT providing higher-level UI abstractions –Application window: menu bar, tool bar, content area & status line –Viewers (MVC pattern) –Actions, action bars (abstracts menu items, tool items) –Preference and wizard framework

Workbench  Defines reusable and extensible UI metaphors Leverages extension point mechanism and JFace abstractions. Provides: -Views -Editors -Action sets -Perspectives: combination of Views and Editors -Wizards -Preference pages -Commands and Key Bindings -Undo/Redo support -Presentations and Themes -Activities (aka Capabilities) -… Is Dynamic-aware: responds to registry changes and adds/removes views, action sets, etc. accordingly

–document infrastructure text manipulation through text edits positions and linked position manager template support projection (aka folding) support –source viewer framework provides Text-, SourceViewer and SourceViewerConfiguration concept of annotations, annotations painter, hovers concept of content assist incremental syntax coloring (presentation reconciler) incremental outline update (model reconciler) formatter infrastructure –text editor framework leverages source viewer framework for use in workbench editors provides AbstractTextEditor Text Editor  Framework(s) for building high-function text editors

UI Forms –Form consisting of multiple FormParts –Extra widgets: FormText (marked-up text) ScrolledForm Section MasterDetailsBlock –Extra layouts: TableWrapLayout (HTML-like) ColumnLayout (newspaper-like) –Flat look, lightweight borders –Forms-based multi-page editor –Used extensively in PDE

GEF (Graphical Editor Framework) –Draw2D - structured graphics drawing framework –Graphical editor framework: MVC architecture Undo/Redo support Palette and common tools for manipulating objects Integration with Properties and Outline view  Framework for building rich graphical editors

User Assistance Components Eclipse Help – Help UI on top of an extensible help content model Intro support – Provides the “welcome experience” for your product Cheat sheets – Provides guidance through complex tasks

Eclipse Help HTML and XML based system Context-sensitive (F1) help Dynamic content generation Search engine Dynamic-aware Highly scalable (used on ibm.com) <toc primary=“true" file="doc/guide.xml"/> <topic label="Commands" href="doc/cmds.html"/> plugin.xml guide.xml Help UI User interface and dialogs Help Core API to access the documents  Help UI on top of an extensible help content model

Eclipse Help

Intro support  Provides the “welcome experience” for your product Full mode: Standby mode: HTML / CSS or SWT / Forms based Can run actions to drive the UI

Cheat sheets  Guides the user through a series of complex tasks to achieve a goal  Content written in XML  Can run actions to drive the UI

Eclipse Plug-in Architecture Plug-in - smallest unit of Eclipse function –Example: the editor of our course project. Extension point - named entity for collecting “contributions” –Example: extension point for workbench text editor. Extension - a contribution –Example: extending the text editor to edit selector language with syntax highlighting and semantics checking.

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

Eclipse Plug-in Architecture Each plug-in –Contributes to 1 or more extension points –Optionally declares new extension points –Depends on a set of other plug-ins –Contains Java code libraries and other files –May export Java-based APIs for downstream plug-ins –Lives in its own plug-in subdirectory Details spelled out in the plug-in manifest –Manifest declares contributions –Code implements contributions and provides API –plugin.xml file in root of plug-in subdirectory

<extension-point id=“views” name=“Views” schema="schema/views.exsd”/> <extension id=“catalogView" point=“org.eclipse.ui.views”> <view name=“Catalog” icon=“icons/catview.gif” class=“com.acme.CatalogView”/> Runtime: Extension / extension point model Extension point declaration – plugin.xml Extension declaration – plugin.xml  Declarative extensibility mechanism The extension-point defines the contract (markup and code) for the extensions Metaphor: disc spindle

A typical 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

The Text Editor Framework The text editor framework provides a model-independent editor that supports the following features:  presentation and user modification of text  standard text editing operations such as cut/copy/paste, find/replace  support for context and pull-down menus  visual presentation of text annotations in rulers  automatic update of annotations as the user edits text  presentation of additional information such as line numbers  syntax highlighting  content assist  text outlining pages that show the hierarchical structure of the text  context sensitive behavior  hover support over rulers and text  key binding contexts  preference handling

Syntax coloring in Text Editor Syntax coloring is provided in the platform text framework using a model of : Damage, Repair reconciling.

Damage, repair, and reconciling Damage: As the user modifies text in an editor, parts of the editor must be redisplayed to show the changes. Repair: A repairer must be able to derive all of the information it needs from a damage region in order to successfully describe the repairs that are needed for a particular content type. Reconciling: describes the overall process of maintaining the presentation of a document as changes are made in the editor.

Rule Based Reconciling public class MyRuleScanner extends RuleBasedScanner { …. public MyRuleScanner() { IToken tagToken = new Token(new TextAttribute(TAG_COLOR)); IToken commentToken = new Token(new TextAttribute(COMMENT_COLOR)); IRule[] rules = new IRule[2]; rules[0] = new SingleLineRule(" ", tagToken); rules[1] = (new EndOfLineRule("//", commentToken)); setRules(rules); } ////// in subclass of SourceViewerConfiguration: public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) { PresentationReconciler reconciler = new PresentationReconciler(); DefaultDamagerRepairer dr = new DefaultDamagerRepairer(getTagScanner()); reconciler.setDamager(dr, Document.DEFAULT_CONTENT_TYPE); reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE); return reconciler; }