Introduction to Eclipse and Eclipse RCP Kenneth Evans, Jr. Presented at the EPICS Collaboration Meeting June 13, 2006 Argonne National Laboratory, Argonne,

Slides:



Advertisements
Similar presentations
Introduction to Java 2 Programming
Advertisements

Extending Eclipse CDT for Remote Target Debugging Thomas Fletcher Director, Automotive Engineering Services QNX Software Systems.
Extending Eclipse Kai-Uwe Mätzel IBM OTI Labs Zurich
©2004 BLACKBOARD, INC. ALL RIGHTS RESERVED. Java Integrated Development Environments Heather Natour Senior Lead Engineer Blackboard Inc. July 18 th 10:15am.
CSS: where do we want to go? Gabriele Carcassi Contributions from: Gabriele Carcassi, Kunal Shroff – BNL Jan Hatje – DESY Kay Kasemir – ORNL.
Developing an Eclipse Plug-in David Gallardo. Platform Runtime Workspace Help Team Workbench JFace SWT Eclipse Project Java Development Tools (JDT) Their.
 Copyright 2005 Digital Enterprise Research Institute. All rights reserved. The Web Services Modeling Toolkit Mick Kerrigan.
Goals Give you a feeling of what Eclipse is.
Leveraging the Eclipse Ecosystem for the Scientific Community Tony ANSTO Andy ESRF ICALEPCS 2005.
14. Oct ICALEPCS Geneva EPICS Office1 EPICS Office An Initiative for a new Control System Office Framework Matthias Clausen DESY.
1 Packaging and delivering Eclipse based products.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Integrated Development Environments. Today We Will: Discuss what IDE’s are used for Go over the Eclipse IDE: –What is Eclipse? –How to install and set.
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.
Standardize on Team Foundation Server across the enterprise with Teamprise Corey Steffen General Manager
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
Copyright © IBM Corp., All rights reserved. Plastic Surgery For Eclipse: Custom SWT Widgets, RCP Customization, and more Benjamin Pasero.
CSC300 Visual Programming Dr. Craig Reinhart. Objectives Teach the basics of C++ –You won’t be an expert but hopefully a very good novice –GUI development.
Duke University Program Design & Construction Course Application Development Tools Sherry Shavor
Introduction CIS 136 Building Mobile Apps 1. What is a mobile app? 2  Computer program  Designed for small devices  Smartphones  Tablets  Other handhelds.
The CodeBeamer Project - Experiences with integrating a Collaborative Development Platform into Eclipse Zsolt Koppany Horst Spatzenegger.
Definition of the SDK for FIspace Augusto Morales & Hector Bedón UPM.
Introduction to Android. Android as a system, is a java based operating system that runs on the Linux kernel. The system is very lightweight and full.
Introducing NativeScript [Pavel Kolev Software Telerik: a Progress company]
Java applet
A Jumpstart to WPF by Kevin Grossnicklaus ArchitectNow.
© 2012 Google, Inc. 1 Building GUIs with WindowBuilder EclipseCon 2012 March 28, 2012 Eric Clayberg Software Engineering Manager Google, Inc.
Why Java? A brief introduction to Java and its features Prepared by Mithat Konar.
The Scientific Software Initiative at the APS Kenneth Evans, Jr. Presented at the EPICS Collaboration Meeting October , 2007 ICALEPCS Meeting, Knoxville,
GUIs for Applets Introduction Applets and Swing/JFC Alternatives to Swing Look-and-Feel issues Example applet graphical user interfaces.
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
Android for Java Developers Denver Java Users Group Jan 11, Mike
The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo.
Extending the Eclipse Framework and Rich Client Platform Jeff Myers Languages for Lunch 10/13/2004.
@ For more details visit : Opportunities for participation Modular Architecture Trace JIT compiler Interpreter Memory manager.
Session 27 Swing vs. AWT. AWT (Abstract Window ToolKit) It is a portable GUI library for stand-alone applications and/or applets. The Abstract Window.
9/2/ CS171 -Math & Computer Science Department at Emory University.
CMSC 466 / 666 Yong Rao Feb. 11, 2004 Revised Mar. 15, 2004.
A (very brief) intro to Eclipse Boyana Norris June 4, 2009.
Australian Nuclear Science & Technology Organisation GumTree A Java Based GUI Framework for Beamline Experiments Tony Lam (ANSTO) Andy Götz (ESRF) Ferdi.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary June, 2011 Made available under the Eclipse Public License v Mobile.
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.
EPICS EPICS Collaboration Meeting Argonne June 2006 Control System Studio (CSS) SIG Workshop Summary Infrastructure and Software Development Argonne,
Australian Nuclear Science & Technology Organisation GumTree A Java Based GUI Framework for Beamline Experiments Tony Lam (ANSTO) Andy Götz (ESRF) Ferdi.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
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.
Introduction 1 Lars Vogel 4/22/2009.  Who am I?  Eclipse as a platform  What is Eclipse RCP?  Extension Points / Extensions  Equinox  SWT & JFace.
A Quick Look at the EPICS IDE Kenneth Evans, Jr. Presented at the EPICS Collaboration Meeting June 13, 2006 Argonne National Laboratory, Argonne, IL.
Developing GUIs With the Eclipse Visual Editor, SWT Edition David Gallardo.
An EPICS IDE Using Eclipse Kenneth Evans, Jr. Presented at the EPICS Collaboration Meeting June 15, 2006 Argonne National Laboratory, Argonne, IL.
Developing GUIs With the Eclipse Visual Editor, Swing/AWT Edition David Gallardo.
 Can access all API’s made available by OS vendor.  SDK’s are platform-specific.  Each mobile OS comes with its own unique tools and GUI toolkit.
Introduction to Control System Studio (CSS) Kay Kasemir, Kunal Shroff EPICS Fall Collaboration Meeting, October 2011 PSI.
ECLIPSE RICH CLIENT PLATFORM Part 1 Introduction.
Lotus Symphony Extension Model ● Jin Hua, Chen ● IBM.
The EPICS IDE and Probe on Steroids Kenneth Evans, Jr. Presented at the Eclipse 06 Workshop March 24, 2006 Stanford Linear Accelerator Center, Menlo Park,
Welcome To java
Eclipse.
Goals Give you a feeling of what Eclipse is.
A (very brief) intro to Eclipse
Introduction Enosis Learning.
Introduction Enosis Learning.
Architecture, Components, Configuration
Presentation transcript:

Introduction to Eclipse and Eclipse RCP Kenneth Evans, Jr. Presented at the EPICS Collaboration Meeting June 13, 2006 Argonne National Laboratory, Argonne, IL

2 Eclipse Eclipse is an Open Source community It was started in 2001 by IBM –IBM donated a lot of research –Controlled the early development, but later relinquished control Out of the box it looks like a Java IDE It is really a Plug-in manager –That happens to come with Java Development plug-ins. –You can take these out and put your own (and/or others) in

3 Very Extensible and Very Flexible Eclipse Project Java Development Tools (JDT) Their Tool Another Tool Plug-in Development Environment (PDE) Eclipse Platform Modified From: Tony Lam, ICALEPCS Presentation, October 2004 Your Tool

4 Eclipse Foundation Membership Strategic Developers (13 as of Jan 2006) –At least 8 developers assigned full time to developing Eclipse –Contribution up to $250K Strategic Consumers (4) –Contribution up to $500K –Can reduce the dues by contributing 1-2 developers Three other tiers Bottom line –$$$ and Developers (currently > 150 full time)

5 Eclipse Consortium Strategic Members * * * * * Strategic Consumer

6 Eclipse as a Java IDE

7 Rich Client Platform (RCP) “Rich Client” is a term from the early 1990’s that distinguished applications built with Visual Basic and the like from “Console” or “Simple” applications Eclipse is particularly suited to Rich Client applications The possibility of using the Eclipse platform for applications was there from the beginning, but foreshadowed by its use as an IDE –In the early days it required hacking to make Rich Clients RCP is now (as of Eclipse 3.1) supported by the interface and encouraged You essentially use Eclipse as a framework for your application –You inherit all of its built-in features –As well as those from other community plug-ins You include only the plug-ins you need Is a very extensible development platform –You can use plug-ins developed by others as needed –Others can use yours and extend them

8 Eclipse As a Rich Client Platform Looks like an application, not an IDE Inherits a lot of functionality –Persistence (Properties and Preferences) –Help –Featured About dialog (like Eclipse’s) –Splash screen –Dockable windows, and much more … Java Application RCP Application

9 Probe on Steroids Leveraging the Eclipse Framework

10 An RCP Application is Also a Plug-In

11 Bottom Line Is a very powerful and extensible IDE and Framework Is Open Source Has a community Is supported by most of the industry Has a large number of developers (>150) Has significant financial backing Are many 3 rd -party Plug-ins, both free and commercial Is continuing to expand and improve rapidly Is free Downsides –Is a continually changing, moving target

12 AWT vs. SWT You have to decide AWT / Swing (Abstract Windowing Toolkit) –Write once, run anywhere –Formerly ugly, with bad performance –Now look and work well –Use garbage collection –Come with the JDK and JRE SWT / JFace (Standard Window Toolkit) –The important fact is that Eclipse uses SWT, not AWT –Supposed to look better, run faster –A thin wrapper around native widgets –SWT components must be disposed (vs. garbage collected) Owing to need to free native resources –Need JNI libraries for each platform –Distribution is through the Eclipse Foundation, not Sun

13 AWT vs. SWT More Considerations It is not easy to convert between them The SWT look is not obviously better The performance difference may not be there either, today Eclipse uses SWT –They are supposed to mix and match, but ??? Sun is unlikely to include SWT support in the JDK and JRE soon

14 SWT Platform Dependence Example: Working Windows dialog doesn’t work right on Linux

15 Combining Swing and SWT SWT_AWT Bridge ContentPane of JFrame is embedded in an SWT Composite Menu Initialization is separate from other UI initialization –Standalone Swing version uses Swing menus –RCP versions uses RCP workbench menus –Both can call same instance methods (or not) This application also uses JAI and J3D –Both are Java extensions –Don’t play well with Eclipse

16 Handling Legacy code The JNI version of JProbe does not run in Eclipse RCP –Has to do with Eclipse class loaders and its handling of CLASSPATH Your RCP application executable is really eclipse.exe -classpath = startup.jar, period Problem is generic and not limited to JCA –Bottom line: Your working JNI application may not work under Eclipse Has been worked around for JCA by rewriting the JNI part of JCA –Now released as JCA and CAJ Further explanation is beyond the scope of this presentation

17 Useful Books Excellent, Must haveFor the Help Plug-inOnly RCP book

18 Thank You This has been an APS Controls Presentation

19 Thank You This has been an APS Controls Presentation