Cool stuff in Eclipse 4 for
                developers.



Eclipse DemoCamp Grenoble 2012
Mickael Istria
CC-BY 3.0
(Very easy) CSS in RCP app




           +
           =
Modeled Workbench and Renderer
Services
New API Grain:




                                               o.e.eclipse.e4.core.services.log.Lo
o.e.core.databinding.observable.Realm            gger
o.e.core.runtime.dynamichelpers.IExtensionTr
    acker                                      o.e.e4.core.services.translation.Tr
o.e.core.runtime.IExtensionRegistry              anslationService
o.e.core.runtime.Platform                      o.e.e4.ui.css.swt.theme.IThemeEn
o.e.e4.core.commands.ECommandService             gine
o.e.e4.core.commands.EHandlerService           o.e.e4.ui.services.IStylingEngine
o.e.e4.core.services.adapter.Adapter
                                               o.e.e4.ui.workbench.IPresentation
o.e.e4.core.services.events.IEventBroker
                                                 Engine
                                               o.e.e4.ui.workbench.IResourceUtili
                                                 ties
Dependency Injection (DI)
Don't seek an object: @Inject it!



                          Service




Don't override/implement classes, use POJO with Annotations
Event Broker
http://wiki.eclipse.org/Eclipse4/RCP/Event_Model
Compatibility Layer

              Necessary bundles to get
                compatibility to work:
              org.eclipse.e4.ui.workbench.addo
                ns.swt
              org.eclipse.equinox.ds
              org.eclipse.equinox.event
              org.eclipse.equinox.util
              org.eclipse.platform
              org.eclipse.ui.forms
              org.eclipse.ui.intro

Cool stuff in E4 for developers

  • 1.
    Cool stuff inEclipse 4 for developers. Eclipse DemoCamp Grenoble 2012 Mickael Istria CC-BY 3.0
  • 2.
    (Very easy) CSSin RCP app + =
  • 3.
  • 4.
    Services New API Grain: o.e.eclipse.e4.core.services.log.Lo o.e.core.databinding.observable.Realm gger o.e.core.runtime.dynamichelpers.IExtensionTr acker o.e.e4.core.services.translation.Tr o.e.core.runtime.IExtensionRegistry anslationService o.e.core.runtime.Platform o.e.e4.ui.css.swt.theme.IThemeEn o.e.e4.core.commands.ECommandService gine o.e.e4.core.commands.EHandlerService o.e.e4.ui.services.IStylingEngine o.e.e4.core.services.adapter.Adapter o.e.e4.ui.workbench.IPresentation o.e.e4.core.services.events.IEventBroker Engine o.e.e4.ui.workbench.IResourceUtili ties
  • 5.
    Dependency Injection (DI) Don'tseek an object: @Inject it! Service Don't override/implement classes, use POJO with Annotations
  • 6.
  • 7.
    Compatibility Layer Necessary bundles to get compatibility to work: org.eclipse.e4.ui.workbench.addo ns.swt org.eclipse.equinox.ds org.eclipse.equinox.event org.eclipse.equinox.util org.eclipse.platform org.eclipse.ui.forms org.eclipse.ui.intro

Editor's Notes

  • #2 * Get e4 tools for E4 site
  • #3 * Just a new property in the org.eclipse.core.runtime.products/product extension * Works on the whole app * Can be overriden through code locally * Separate design from dev. * Can be programatically & dynamically (re)loaded to support themes/high contrast...
  • #4 * An (extensible) model for the application + extensible renderers * A single entry point for workbench definition * Possiblity to change model at runtime * Possiblity to have several renderers (SWT, JavaFx) * New possibities thanks to EMF (synchronisation, versioning...) * Extension points still working
  • #6 * Less API (super-classes), in favor of annotations * There in a always a context : when invoking a method or instantiating an object * More component-based → less singletons, ability to mock...