Intro oEclipseRCP Jax India Anshu Jain

Embed Size (px)

Citation preview

  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    1/71

    Introduction to Eclipse Rich Client

    Anshu Jain

    IBM India Research Lab

  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    2/71

    Eclipse RCP - 2 of 71

    Anshu Jain IBM India Research Lab

    Agenda

    Introductions Motivation for Rich Client Platforms

    Architecture of Eclipse Rich Client Platform

    Dive into core components RCP specific issues

    This is not a step by step tutorial http://www.google.com/search?q=Eclipse+RCP

    +Tutorial Lookout for footnotes on slides references

    and links

    http://www.google.com/search?q=Eclipse+RCP+Tutorialhttp://www.google.com/search?q=Eclipse+RCP+Tutorialhttp://www.google.com/search?q=Eclipse+RCP+Tutorialhttp://www.google.com/search?q=Eclipse+RCP+Tutorial
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    3/71

    Eclipse RCP - 3 of 71

    Anshu Jain IBM India Research Lab

    Rich Client Applications

  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    4/71

    Eclipse RCP - 4 of 71

    Anshu Jain IBM India Research Lab

    Rich Client Applications

  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    5/71

    Eclipse RCP - 5 of 71

    Anshu Jain IBM India Research Lab

    Rich Client Applications

    Commercial Eclipse RCP based rich clients

    http://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.php
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    6/71

    Eclipse RCP - 6 of 71

    Anshu Jain IBM India Research Lab

    What is Rich Client

    Application with extensive use of windows,GUI and other features of an OS

    Widgets, Drag Drop, Platform look and feel

    Housekeeping functions Help, About, Update

    Many more depending on how Rich

    http://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.php
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    7/71

    Eclipse RCP - 7 of 71

    Anshu Jain IBM India Research Lab

    What is a rich client - Wikipedia

    A Rich Client Platform (RCP) is softwareconsisting of the following components:

    A core (microkernel), lifecycle manager

    A standard bundling framework

    A portable widget toolkit

    File buffers, text handling, text editors

    A workbench (views, editors, perspectives, wizards)

    Data binding

    Update manager

    Wikipedia definition of r ich client

    http://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://www.eclipse.org/community/rcpcp.phphttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platform
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    8/71

    Eclipse RCP - 8 of 71

    Anshu Jain IBM India Research Lab

    Possible Architectures

    Rich Client

    View

    ok

    Control

    Data and

    Logic Local Data

    Rich Client

    View

    okok

    Control

    Data and

    Logic Local Data

    Source: Eclipse Con 2006 - RCP Tutorial - Jean-Michel Lemieux and Jeff McAffer

    1 Tier- off ice applications

    - paint programs

    http://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://en.wikipedia.org/wiki/Rich_Client_Platformhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    9/71

    Eclipse RCP - 9 of 71

    Anshu Jain IBM India Research Lab

    Possible Architectures

    Rich Client

    View

    ok

    Control

    Data and

    Logic Local Data

    Rich Client

    View

    okok

    Control

    Data and

    Logic Local Data

    Rich Client

    View

    ok

    Control

    Remote Data

    Rich Client

    View

    okok

    Control

    Remote Data

    Source: Eclipse Con 2006 - RCP Tutorial - Jean-Michel Lemieux and Jeff McAffer

    1 Tier- off ice applications

    - paint programs

    2 Tier- mail clients- p2p applications

    http://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    10/71

    Eclipse RCP - 10 of 71

    Anshu Jain IBM India Research Lab

    Possible Architectures

    Rich Client

    View

    ok

    Control

    Data and

    Logic Local Data

    Rich Client

    View

    okok

    Control

    Data and

    Logic Local Data

    Rich Client

    View

    ok

    Control

    Remote Data

    Rich Client

    View

    okok

    Control

    Remote Data

    Application ServerRich Client

    Remote

    Data andLogic

    Control

    View

    ok

    Control

    web

    services,

    IIOP,

    Remote Data

    Application ServerRich Client

    Remote

    Data andLogic

    Control

    View

    okok

    Control

    web

    services,

    IIOP,

    Remote Data

    Source: Eclipse Con 2006 - RCP Tutorial - Jean-Michel Lemieux and Jeff McAffer

    1 Tier- off ice applications

    - paint programs

    2 Tier- mail clients- p2p applications

    3 Tier- browser

    http://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    11/71

    Eclipse RCP - 11 of 71

    Anshu Jain IBM India Research Lab

    Combination of Architectures

    Application ServerRich Client

    RemoteData and

    LogicControl

    View

    ok

    Contro

    l

    Local

    Data and

    Logic

    web

    services,

    IIOP,

    Remote Data

    Remote Data

    Local

    Data

    Application ServerRich Client

    RemoteData and

    LogicControl

    View

    okok

    Contro

    l

    Local

    Data and

    Logic

    web

    services,

    IIOP,

    Remote Data

    Remote Data

    Local

    Data

    Source: Eclipse Con 2006 - RCP Tutorial - Jean-Michel Lemieux and Jeff McAffer

    http://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    12/71

    Eclipse RCP - 12 of 71

    Anshu Jain IBM India Research Lab

    Combination of Architectures

    Application ServerRich Client

    RemoteData and

    LogicControl

    View

    ok

    Contro

    l

    Local

    Data and

    Logic

    web

    services,

    IIOP,

    Remote Data

    Remote Data

    Local

    Data

    Application ServerRich Client

    RemoteData and

    LogicControl

    View

    okok

    Contro

    l

    Local

    Data and

    Logic

    web

    services,

    IIOP,

    Remote Data

    Remote Data

    Local

    Data

    Source: Eclipse Con 2006 - RCP Tutorial - Jean-Michel Lemieux and Jeff McAffer

    Multi-tier architectures- Outlook- Lotus Notes- Eclipse IDE

    http://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    13/71

    Eclipse RCP - 13 of 71

    Anshu Jain IBM India Research Lab

    What is Eclipse IDE

    A rich client

    A tooling platform

    A framework

    Rich client platform ?

  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    14/71

    Eclipse RCP - 14 of 71

    Anshu Jain IBM India Research Lab

    What is Eclipse IDE

    A rich client

    A tooling platform

    A framework

    Rich client platform ?

    Much more than a richclient platform. But there isindeed an underlyingplatform

  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    15/71

    Eclipse RCP - 15 of 71

    Anshu Jain IBM India Research Lab

    Why Use Eclipse RCP?

    Common and consistent application services Native look and feel

    Window management Standardized component model (Equinox)

    Pervasive extensibility Extension registry

    Update Manager Help system

    State of the art development tools

    Middleware for building rich client applications!

    Other Rcps Netbeans, Spring Framework for Java Other Rcps: QT Toolkit for c++ (and also some form for

    java)

    http://en.wikipedia.org/wiki/Qt_(toolkit)http://en.wikipedia.org/wiki/Qt_(toolkit)http://en.wikipedia.org/wiki/Qt_(toolkit)
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    16/71

    Eclipse RCP - 16 of 71

    Anshu Jain IBM India Research Lab

    Why use RCP What are my options

    Use Plain old Java, Swing, VB, MFC etc.

    Assembly language..!!

    Source on wikipedia

    http://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPaint
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    17/71

    Eclipse RCP - 17 of 71

    Anshu Jain IBM India Research Lab

    Why use RCP What are my options

    Use Plain old Java, Swing, VB, MFC etc.

    Assembly language..!!

    Source on wikipedia

    http://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPaint
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    18/71

    Eclipse RCP - 18 of 71

    Anshu Jain IBM India Research Lab

    Why use RCP What are my options

    Use Plain old Java, Swing, VB, MFC etc. Assembly language..!!

    MACPaintThe Premier Rich Client

    Source on wikipedia

    C f

    http://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPaint
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    19/71

    Eclipse RCP - 19 of 71

    Anshu Jain IBM India Research Lab

    Why use RCP What are my options

    Use Plain old Java, Swing, VB, MFC etc. Assembly language..!!

    MACPaintThe Premier Rich Client

    5,804 lines - Pascal

    2,738 lines - 68000

    Source on wikipedia

    E li RCP 20 f 71

    http://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPaint
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    20/71

    Eclipse RCP - 20 of 71

    Anshu Jain IBM India Research Lab

    Why use RCP What are my options

    Use Plain old Java, Swing, VB, MFC etc. Assembly language..!!

    MACPaintThe Premier Rich Client

    5,804 lines - Pascal

    2,738 lines - 68000

    help, update, localization,

    resizing of views. Plug-ins

    none of above

    Source on wikipedia

    E li RCP 21 f 71

    http://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPaint
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    21/71

    Eclipse RCP - 21 of 71

    Anshu Jain IBM India Research Lab

    Why use RCP What are my options

    RCP offers higher levels of abstractions Registry

    Perspective

    Wizards

    Dialogs

    Because you dont want to build the Rocket,

    You want to focus on the payload..!!

    Read: Foreword by Jeff Norris To the RCP Book by Jeff McAffer, and Jean-Michel

    Eclipse RCP 22 of 71

    http://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://en.wikipedia.org/wiki/MacPainthttp://eclipsercp.org/book/chapters/RCP_Foreward2.pdfhttp://eclipsercp.org/book/chapters/RCP_Foreward2.pdfhttp://eclipsercp.org/book/chapters/RCP_Foreward2.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    22/71

    Eclipse RCP - 22 of 71

    Anshu Jain IBM India Research Lab

    What is Eclipse RCP

    The minimal set of plug-ins needed to build arich client application is collectively known as

    the Rich Client Platform

    org.eclipse.ui

    org.eclipse.core.runtime

    (prerequisites of above)

    Eclipse platform whitepaper

    Eclipse RCP 23 of 71

    http://eclipsercp.org/book/chapters/RCP_Foreward2.pdfhttp://eclipsercp.org/book/chapters/RCP_Foreward2.pdfhttp://eclipsercp.org/book/chapters/RCP_Foreward2.pdfhttp://eclipsercp.org/book/chapters/RCP_Foreward2.pdfhttp://eclipsercp.org/book/chapters/RCP_Foreward2.pdfhttp://eclipsercp.org/book/chapters/RCP_Foreward2.pdfhttp://eclipsercp.org/book/chapters/RCP_Foreward2.pdfhttp://eclipsercp.org/book/chapters/RCP_Foreward2.pdfhttp://eclipsercp.org/book/chapters/RCP_Foreward2.pdfhttp://eclipsercp.org/book/chapters/RCP_Foreward2.pdfhttp://eclipsercp.org/book/chapters/RCP_Foreward2.pdfhttp://eclipsercp.org/book/chapters/RCP_Foreward2.pdfhttp://eclipsercp.org/book/chapters/RCP_Foreward2.pdfhttp://eclipsercp.org/book/chapters/RCP_Foreward2.pdfhttp://www.eclipse.org/whitepapers/eclipse-overview.pdfhttp://www.eclipse.org/whitepapers/eclipse-overview.pdfhttp://www.eclipse.org/whitepapers/eclipse-overview.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    23/71

    Eclipse RCP - 23 of 71

    Anshu Jain IBM India Research Lab

    Eclipse Platform Architecture

    Source: Eclipse Platform Architecture Whitepaper

    Eclipse RCP 24 of 71

    http://www.eclipse.org/whitepapers/eclipse-overview.pdfhttp://www.eclipse.org/whitepapers/eclipse-overview.pdfhttp://www.eclipse.org/whitepapers/eclipse-overview.pdfhttp://www.eclipse.org/whitepapers/eclipse-overview.pdfhttp://www.eclipse.org/whitepapers/eclipse-overview.pdfhttp://www.eclipse.org/whitepapers/eclipse-overview.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    24/71

    Eclipse RCP - 24 of 71

    Anshu Jain IBM India Research Lab

    RCP Architecture

    Source: Eclipse Con 2006 - RCP Tutorial - Jean-Michel Lemieux and Jeff McAffer

    Action sets

    EditorsPerspectives

    Views

    Workbench

    Extensions

    ApplicationsProducts

    Widgets

    Plug-ins/Bundles

    Services

    Extensions

    Applications

    Products

    Eclipse RCP - 25 of 71

    http://www.eclipse.org/whitepapers/eclipse-overview.pdfhttp://www.eclipse.org/whitepapers/eclipse-overview.pdfhttp://www.eclipse.org/whitepapers/eclipse-overview.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    25/71

    Eclipse RCP - 25 of 71

    Anshu Jain IBM India Research Lab

    Core Platform Plug-ins

    Eclipse RCP - 26 of 71

  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    26/71

    Eclipse RCP - 26 of 71

    Anshu Jain IBM India Research Lab

    Core Platform Plug-ins

    My Test Plug-in

    Eclipse RCP - 27 of 71

  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    27/71

    Eclipse RCP 27 of 71

    Anshu Jain IBM India Research Lab

    Core Platform Plug-ins

    OSGI Platform

    - Component model

    - Eclipse Adaptors

    - Registry Framework

    My Test Plug-in

    Eclipse RCP - 28 of 71

  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    28/71

    Eclipse RCP 28 of 71

    Anshu Jain IBM India Research Lab

    Core Platform Plug-ins

    OSGI Platform

    - Component model

    - Eclipse Adaptors

    - Registry Framework

    Eclipse Runtime

    - Plug-in Model

    - Preferences

    - Scheduling

    - Core services

    My Test Plug-in

    Eclipse RCP - 29 of 71

  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    29/71

    Eclipse RCP 29 of 71

    Anshu Jain IBM India Research Lab

    Core Platform Plug-ins

    OSGI Platform

    - Component model

    - Eclipse Adaptors

    - Registry Framework

    Eclipse Runtime

    - Plug-in Model

    - Preferences

    - Scheduling

    - Core services

    UI Framework

    - Native Widget API

    - MVC Controllers- Workbench UI

    artifacts

    My Test Plug-in

    Eclipse RCP - 30 of 71

  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    30/71

    p

    Anshu Jain IBM India Research Lab

    Trivia on memory footprint

    Eclipse RCP - 31 of 71

  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    31/71

    p

    Anshu Jain IBM India Research Lab

    Trivia on memory footprint

    If this is too big,

    explore eRCP orembedded RCP.

    Eclipse RCP - 32 of 71

    http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    32/71

    p

    Anshu Jain IBM India Research Lab

    Before beginning RCP

    Must have Core Java Knowledge

    Understanding of eclipse plug-in architecture

    Basics of plug-in development

    A decent pc and a will to explore

    Nice to have Fluency with SWT/JFace

    Previous experience with eclipse runtime A good command on design patterns MVC,

    Interfaces, Abstractions .

    Eclipse RCP - 33 of 71

    http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    33/71

    Anshu Jain IBM India Research Lab

    Tools

    JRE preferably 1.5+ Eclipse IDE Preferably latest

    A browser and a good internet connection

    (so u can have tutorials/articles at yourdisposal)

    Eclipse RCP - 34 of 71

    http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    34/71

    Anshu Jain IBM India Research Lab

    What would you need to do - Intuitively

    Assuming you have figured out your application logic

    1. Create components

    plug-ins of course.!!

    2.

    Provide launching point so eclipse platform can invoke your code on launch

    3. Configure main application window on launch

    window layout, size, look and feel

    Provide branding information Create deployable for distribution

    Wait for user action to execute your RCP and

    trigger your application code

    Eclipse RCP - 35 of 71

    http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    35/71

    Anshu Jain IBM India Research Lab

    Task 1: Component Architecture

    Based on OSGi modules for the Java platform Dynamic and flexible

    Loose coupling of Java modules

    OSGi Bundles (Eclipse Plug-ins)

    Eclipse Features Important for Development anddeployment lifecycle

    Enable multiple branding

    Enable product lines

    Ease of deployments and updates

    Eclipse RCP - 36 of 71

    http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    36/71

    Anshu Jain IBM India Research Lab

    Task 1: Tradeoffs while planning for plug-ins

    Bundle Size Grouping of logical functionality

    Monolithic vs. Smaller granular bundles

    What goes into what features

    Eclipse RCP - 37 of 71

    http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    37/71

    Anshu Jain IBM India Research Lab

    Announce yourself to rcp Extension point

    org.eclipse.core.runtime.applications

    Task 2: Launching point converse with rcp

    Eclipse RCP - 38 of 71

    http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    38/71

    Anshu Jain IBM India Research Lab

    Announce yourself to rcp Extension point

    org.eclipse.core.runtime.applications

    Task 2: Launching point converse with rcp

    Eclipse RCP - 39 of 71

    http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    39/71

    Anshu Jain IBM India Research Lab

    Talk rcps language Interface

    IApplication

    Catch the hooks it provides for lifecycle management

    Task 2: Launching point converse with rcp

    Eclipse RCP - 40 of 71

    http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    40/71

    Anshu Jain IBM India Research Lab

    Talk rcps language Interface

    IApplication

    Catch the hooks it provides for lifecycle management

    Task 2: Launching point converse with rcp

    Eclipse RCP - 41 of 71

    http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    41/71

    Anshu Jain IBM India Research Lab

    Task 3: Configure application window

    Talk rcps language

    Eclipse RCP - 42 of 71

    http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    42/71

    Anshu Jain IBM India Research Lab

    Task 3: Configure application window

    Talk rcps languagepublic Object start(IApplicationContext context) {

    Display display = PlatformUI.createDisplay();

    try {

    int returnCode = PlatformUI.createAndRunWorkbench(display, new

    ApplicationWorkbenchAdvisor());

    if(returnCode == PlatformUI.RETURN_RESTART) {

    return IApplication.EXIT_RESTART;

    }

    return IApplication.EXIT_OK;

    } finally {display.dispose();

    }

    }

    Eclipse RCP - 43 of 71

    http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    43/71

    Anshu Jain IBM India Research Lab

    Task 3: Configure application window

    Talk rcps languagepublic Object start(IApplicationContext context) {

    Display display = PlatformUI.createDisplay();

    try {

    int returnCode = PlatformUI.createAndRunWorkbench(display, new

    ApplicationWorkbenchAdvisor());

    if(returnCode == PlatformUI.RETURN_RESTART) {

    return IApplication.EXIT_RESTART;

    }

    return IApplication.EXIT_OK;

    } finally {display.dispose();

    }

    }

    Extends:- WorkbenchAdvisorStarting point to set up main workbenchwindow info- perspective info- actions- menubar

    Eclipse RCP - 44 of 71

    http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    44/71

    Anshu Jain IBM India Research Lab

    Task 3: Configure application window

    Source: Eclipse Con 2006 - RCP Tutorial - Jean-Michel Lemieux and Jeff McAffer

    Eclipse RCP - 45 of 71

    http://www.eclipse.org/ercp/http://www.eclipse.org/ercp/http://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    45/71

    Anshu Jain IBM India Research Lab

    Task 4: Product and Branding

    What do you need to tell eclipse My product name

    My product icons

    My splash images

    My about info

    Launcher name

    Title bar label

    .on and on Almost as simple as fill in the blanks

    Eclipse RCP - 46 of 71

    http://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    46/71

    Anshu Jain IBM India Research Lab

    Task 4: Product and Branding

    Product Configuration .product files

    Extension point org.eclipse.runtime.products

    Eclipse RCP - 47 of 71

    http://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    47/71

    Anshu Jain IBM India Research Lab

    Task 4: Product and Branding

    Product Configuration .product files

    Extension point org.eclipse.runtime.products

    Eclipse RCP - 48 of 71

    http://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    48/71

    Anshu Jain IBM India Research Lab

    Task 4: Product and Branding

    Eclipse RCP - 49 of 71

    http://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    49/71

    Anshu Jain IBM India Research Lab

    Task 4: Product and Branding

    Features mode isrecommended for easiermanagement & updatecapabilities

    Eclipse RCP - 50 of 71

    http://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    50/71

    Anshu Jain IBM India Research Lab

    Task 4: Product and Branding

    Eclipse RCP - 51 of 71

    http://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    51/71

    Anshu Jain IBM India Research Lab

    Task 4: Product and Branding

    .ini file- initialization params, likeproduct location, vmarguments, etc.

    Eclipse RCP - 52 of 71

    http://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    52/71

    Anshu Jain IBM India Research Lab

    Task 4: Product and Branding

    Eclipse RCP - 53 of 71

    http://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    53/71

    Anshu Jain IBM India Research Lab

    Task 4: Product and Branding

    Name of executable mail.exe

    Eclipse RCP - 54 of 71

    http://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    54/71

    Anshu Jain IBM India Research Lab

    Task 4: Product and Branding

    Name of executable mail.exe

    Launch arguments

    Eclipse RCP - 55 of 71

    http://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    55/71

    Anshu Jain IBM India Research Lab

    Task 4: Product and Branding

    Name of executable mail.exe

    Launch arguments

    Optional JRE/PlatformSpecification

    Eclipse RCP - 56 of 71

    http://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    56/71

    Anshu Jain IBM India Research Lab

    Task 4: Product and Branding

    Eclipse RCP - 57 of 71

    http://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    57/71

    Anshu Jain IBM India Research Lab

    Task 4: Product and Branding

    Eclipse RCP - 58 of 71

    http://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    58/71

    Anshu Jain IBM India Research Lab

    Task 5: Packaging

    Transformation Development form Deployment form

    For example

    Workspace projects Built JARs

    Possible outputs Stand-alone, runnable application in directory or archive

    Update site features and plug-ins

    JNLP/WebStart application

    Installers (e.g., InstallShield) not directly supported Eclipse IDE provides wizard for all the above

    Eclipse RCP - 59 of 71

    http://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    59/71

    Anshu Jain IBM India Research Lab

    Task 5: Packaging with Security

    Sign jars to avoid unauthorized updates Signing jars imperative to run webstart with all

    security permissions on JVM

    IDE has out of the box support for signing jars Nice tool for keystore and certificate mgmt

    Eclipse RCP - 60 of 71

    http://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://wiki.eclipse.org/images/d/d9/EclipseCon_RCP_Tutorial_2006.pdfhttp://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    60/71

    Anshu Jain IBM India Research Lab

    Update Management

    Add plug-ins to rcp: org.eclipse.update.core org.eclipse.update.ui

    Setup features properly All base plug-ins which are not written by you go in

    one feature e.g. .eclipse.base.feature Your main application plug-ins go in one (or more)

    e.g. yourdomain.eclipse.yourapplication.feature

    Setup an update site using eclipses update siteproject. Build features into update site

    Must read: Eclipse Con 2005 Tutorial - section 9

    Eclipse RCP - 61 of 71

    http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://keytool.sourceforge.net/http://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    61/71

    Anshu Jain IBM India Research Lab

    Update Management

    ProgressMonitorDialog dialog = new ProgressMonitorDialog(new Shell(display, SWT.NONE));dialog.run(false, false, new IRunnableWithProgress() {publicvoid run(IProgressMonitor monitor) {

    UpdateCommand command = new UpdateCommand(.eclipse.,name", "false");command.run(monitor);

    }});

    Snippet Link Article explaining p2 for RCP applications

    Eclipse RCP - 62 of 71

    http://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://blog.cypal-solutions.com/2008/02/how-to-automatically-update-my-rcp.htmlhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://blog.cypal-solutions.com/2008/02/how-to-automatically-update-my-rcp.htmlhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Application
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    62/71

    Anshu Jain IBM India Research Lab

    Update Management

    ProgressMonitorDialog dialog = new ProgressMonitorDialog(new Shell(display, SWT.NONE));dialog.run(false, false, new IRunnableWithProgress() {publicvoid run(IProgressMonitor monitor) {

    UpdateCommand command = new UpdateCommand(.eclipse.,name", "false");command.run(monitor);

    }});

    Snippet Link

    May not work in debugmode.

    Article explaining p2 for RCP applications

    Eclipse RCP - 63 of 71

    http://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://blog.cypal-solutions.com/2008/02/how-to-automatically-update-my-rcp.htmlhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://blog.cypal-solutions.com/2008/02/how-to-automatically-update-my-rcp.htmlhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Application
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    63/71

    Anshu Jain IBM India Research Lab

    Update Management

    ProgressMonitorDialog dialog = new ProgressMonitorDialog(new Shell(display, SWT.NONE));dialog.run(false, false, new IRunnableWithProgress() {publicvoid run(IProgressMonitor monitor) {

    UpdateCommand command = new UpdateCommand(.eclipse.,name", "false");command.run(monitor);

    }});

    Snippet Link

    New Update architecture based on Equinox P2 Provisioning System is available

    May not work in debugmode.

    Article explaining p2 for RCP applications

    Eclipse RCP - 64 of 71

    http://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://blog.cypal-solutions.com/2008/02/how-to-automatically-update-my-rcp.htmlhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://blog.cypal-solutions.com/2008/02/how-to-automatically-update-my-rcp.htmlhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Application
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    64/71

    Anshu Jain IBM India Research Lab

    Update Management

    ProgressMonitorDialog dialog = new ProgressMonitorDialog(new Shell(display, SWT.NONE));dialog.run(false, false, new IRunnableWithProgress() {publicvoid run(IProgressMonitor monitor) {

    UpdateCommand command = new UpdateCommand(.eclipse.,name", "false");command.run(monitor);

    }});

    Snippet Link

    New Update architecture based on Equinox P2 Provisioning System is available

    May not work in debugmode.

    Not so popular inRCPs yet..!!

    Article explaining p2 for RCP applications

    Eclipse RCP - 65 of 71

    http://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://blog.cypal-solutions.com/2008/02/how-to-automatically-update-my-rcp.htmlhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://blog.cypal-solutions.com/2008/02/how-to-automatically-update-my-rcp.htmlhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Application
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    65/71

    Anshu Jain IBM India Research Lab

    Update Management

    ProgressMonitorDialog dialog = new ProgressMonitorDialog(new Shell(display, SWT.NONE));dialog.run(false, false, new IRunnableWithProgress() {publicvoid run(IProgressMonitor monitor) {

    UpdateCommand command = new UpdateCommand(.eclipse.,name", "false");command.run(monitor);

    }});

    Snippet Link

    New Update architecture based on Equinox P2 Provisioning System is available

    May not work in debugmode.

    Not so popular inRCPs yet..!!

    Article explaining p2 for RCP applications

    IMHO: Inno Setup,Installshield are alsopossible options

    Eclipse RCP - 66 of 71

    http://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://blog.cypal-solutions.com/2008/02/how-to-automatically-update-my-rcp.htmlhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Applicationhttp://blog.cypal-solutions.com/2008/02/how-to-automatically-update-my-rcp.html
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    66/71

    Anshu Jain IBM India Research Lab

    Update Management Some Tradeoffs

    Where to call update from From custom actions

    From update UI Not necessary for small RCPs

    From startup code

    From scheduled code

    Whether to use update at all?? Update plug-ins add to memory footprint

    Eclipse RCP - 67 of 71

  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    67/71

    Anshu Jain IBM India Research Lab

    Help

    Very straightforward, like in eclipse IDE Article on using help with RCP

    Needs org.apache.lucene

    org.eclipse.help.appserver

    org.eclipse.help.base

    org.eclipse.help.ui

    org.eclipse.help.webapp

    org.eclipse.tomcat

    org.eclipse.ui.forms

    Eclipse RCP - 68 of 71

    http://www.eclipse.org/articles/article.php?file=Article-AddingHelpToRCP/index.htmlhttp://www.eclipse.org/articles/article.php?file=Article-AddingHelpToRCP/index.html
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    68/71

    Anshu Jain IBM India Research Lab

    Closing thoughts

    In theory, there is no difference betweentheoryand practice. But, in practice, there is

    Jan La Van De Snepscheut

    Master your debugging skills sit on eclipses

    shoulders..!! Eclipse Debugging Tutorial

    Pleaseplease..try to understand eclipseplatform architecture in detail

    Extension point architecture Registries

    Bundle loading, class loading

    Eclipse RCP - 69 of 71

    http://csis.pace.edu/~ogotel/teaching/IBM04-Eclipse%20Debugger.ppthttp://csis.pace.edu/~ogotel/teaching/IBM04-Eclipse%20Debugger.ppt
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    69/71

    Anshu Jain IBM India Research Lab

    Some must reads for RCP Developers

    Official Eclipse RCP FAQs Eclipse RCP How-to

    Eclipse Con 2005 Tutorial

    Eclipse platform whitepaper Eclipse plug-in architecture article

    For advanced users >

    Advanced RCP Presentation

    Eclipse RCP - 70 of 71

    http://wiki.eclipse.org/RCP_FAQhttp://wiki.eclipse.org/Eclipse_RCP_How-tohttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://www.eclipse.org/whitepapers/eclipse-overview.pdfhttp://www.eclipse.org/articles/Article-Plug-in-architecture/plugin_architecture.htmlhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.eclipse.org/articles/Article-Plug-in-architecture/plugin_architecture.htmlhttp://www.eclipse.org/whitepapers/eclipse-overview.pdfhttp://www.eclipsecon.org/2005/presentations/EclipseCon2005_Tutorial8.pdfhttp://wiki.eclipse.org/Eclipse_RCP_How-tohttp://wiki.eclipse.org/RCP_FAQhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    70/71

    Anshu Jain IBM India Research Lab

    Recommended Reading

    Contributing to Eclipse: Principles, Patterns, andPlug-ins

    By Erich Gamma, Kent Beck

    Addison-Wesley Professional

    ISBN: 0321205758

    Eclipse Rich Client Platform By Jeff McAffer and Jean-Michel Lemieux

    Addison-Wesley Professional

    ISBN: 0321334612

    SWT : The Standard Widget Toolkit, Volume 1

    By Steve Northover, Mike Wilson

    Addison-Wesley Professional

    ISBN: 0321256638

    Eclipse RCP - 71 of 71

    http://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdf
  • 8/2/2019 Intro oEclipseRCP Jax India Anshu Jain

    71/71

    Take off with eclipse RCP!!!!

    Thank you

    Anshu Jain

    Technical Staff Member,

    IBM India Research Lab,Bangalore

    [email protected] | [email protected]

    http://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfhttp://www.toedter.com/download/eclipsecon/Advanced-RCP-EclipseCon-2009.pdfmailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]