Your SlideShare is downloading. ×
0
EMF.Edit                                                                             The Force Unleashed!                 ...
Did you ever code a rich   client application: - without EMF?  - with EMF?
What is   EMF   ?
From                                                                Models...(cc) Alan Dean http://www.flickr.com/photos/60...
...to Java Beans(cc) The Wanderers Eye http://www.flickr.com/photos/8997331@N04/5237447939
(cc) Tama Leaver http://www.flickr.com/photos/75815807@N00/2409717875 On Steroïds
(cc) Яick Harris http://www.flickr.com/photos/37153080@N00/430890004
(cc) Sterlic http://www.flickr.com/photos/27482959@N08/5559534294More about theSteroïds
EMF.Edit(cc) alexliivet http://www.flickr.com/photos/23108377@N07/7018977935
Notify                         (cc) shankar, shiv http://www.flickr.com/photos/14722496@N04/2368346202          CommandFram...
Notify                      (cc) shankar, shiv http://www.flickr.com/photos/14722496@N04/2368346202          CommandFramewo...
notifiesObserver               Observable   —                       —Adapter                 Notifier           registers
5NotificationMessage from the Observable to the Observer
Add      Unset                 Remove              NotificationSet            Event            Add                         ...
(cc) chubstock http://www.flickr.com/photos/21497715@N08/2079885002Notifications               Stop Delivering
{   For all model elements     In Genmodel     Set «Model / Suppress Notification» to false{   For one model elements     O...
EContent AdapterListener of Containment Tree
EContent AdapterListener of Containment Tree                               eAdapters().add(EContentAdapter)
EContent AdapterListener of Containment Tree                               eAdapters().add(EContentAdapter)
3... 2... 1... Action!
Code availablehttps://gist.github.com/mbarbero/18e16fe13da40ba825cehttps://gist.github.com/mbarbero/e8aa2c0754dccdd45b
Notify CommandFramework Framework                      (cc) Crazy Diamond http://www.flickr.com/photos/48446424@N00/4505142...
Wh                                                    at i                                                        sa(cc) j...
Executability
Executability           Undoability
Executability           Undoability                         Redo
Result
Result         Aected Objects
Result         Aected Objects              Label / Description
Set Copy                 Add           Generic          CommandsReplace              Remove            Move
Create                 ChildDrag & Drop                  Delete               High-level              CommandsPaste from  ...
(c) Simon Cox, Sept 2012
Command Stack          (c) Simon Cox, Sept 2012
3... 2... 1... Action!
Code availablehttps://gist.github.com/mbarbero/77c81a93b5f63c441207
Notify Command     ChangeFramework Framework   Recorder
Change ModelBird view                                  ChangeDescription                                  apply()         ...
Change RecorderListener of Containment Tree                               Change                               Recorder
Change RecorderListener of Containment Tree                                   Change                                   Rec...
Change RecorderListener of Containment Tree                                   Change                                   Rec...
Change Command(cc) fdecomite http://www.flickr.com/photos/21649179@N00/6478685035
Change CommandExecute
Change Command   ExecuteChange recorder
Change Command   Execute        Undo   RedoChange recorder
Change Command   Execute        Undo          RedoChange recorder     applyAndReverse
3... 2... 1... Action!
Code availablehttps://gist.github.com/mbarbero/6e6b88ee61ce7e2e57
(cc) debaird™ http://www.flickr.com/photos/48889107219@N01/239460739 What you should remember
What you should remember
Adapter +   ChangeModel        =  ChangeRecorderWhat you should remember
Adapter +       Command +   ChangeModel     ChangeRecorder        =                =  ChangeRecorder   ChangeCommandWhat y...
Adapter +           Command +   ChangeModel         ChangeRecorder  ChangeRecorder   +   ChangeCommand     Steroïds for Yo...
(cc) Instant Vantage http://www.flickr.com/photos/44312356@N04/6023508805                                                  ...
Upcoming SlideShare
Loading in...5
×

EMF.Edit the Force Unleashed!

1,149

Published on

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,149
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
25
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Transcript of "EMF.Edit the Force Unleashed!"

  1. 1. EMF.Edit The Force Unleashed! Mikaël Barbero Obeocloudchaser32000 (cc) http://www.flickr.com/photos/22566089@N03/5983182747/
  2. 2. Did you ever code a rich client application: - without EMF? - with EMF?
  3. 3. What is EMF ?
  4. 4. From Models...(cc) Alan Dean http://www.flickr.com/photos/60041018@N00/3513723662
  5. 5. ...to Java Beans(cc) The Wanderers Eye http://www.flickr.com/photos/8997331@N04/5237447939
  6. 6. (cc) Tama Leaver http://www.flickr.com/photos/75815807@N00/2409717875 On Steroïds
  7. 7. (cc) Яick Harris http://www.flickr.com/photos/37153080@N00/430890004
  8. 8. (cc) Sterlic http://www.flickr.com/photos/27482959@N08/5559534294More about theSteroïds
  9. 9. EMF.Edit(cc) alexliivet http://www.flickr.com/photos/23108377@N07/7018977935
  10. 10. Notify (cc) shankar, shiv http://www.flickr.com/photos/14722496@N04/2368346202 CommandFramework Framework (cc) Crazy Diamond http://www.flickr.com/photos/48446424@N00/4505142495ChangeRecorder
  11. 11. Notify (cc) shankar, shiv http://www.flickr.com/photos/14722496@N04/2368346202 CommandFramework FrameworkChangeRecorder
  12. 12. notifiesObserver Observable — —Adapter Notifier registers
  13. 13. 5NotificationMessage from the Observable to the Observer
  14. 14. Add Unset Remove NotificationSet Event Add Many Type Remove Resolve Many Remove Adapter
  15. 15. (cc) chubstock http://www.flickr.com/photos/21497715@N08/2079885002Notifications Stop Delivering
  16. 16. { For all model elements In Genmodel Set «Model / Suppress Notification» to false{ For one model elements On EObject instance call #eSetDeliver(false)
  17. 17. EContent AdapterListener of Containment Tree
  18. 18. EContent AdapterListener of Containment Tree eAdapters().add(EContentAdapter)
  19. 19. EContent AdapterListener of Containment Tree eAdapters().add(EContentAdapter)
  20. 20. 3... 2... 1... Action!
  21. 21. Code availablehttps://gist.github.com/mbarbero/18e16fe13da40ba825cehttps://gist.github.com/mbarbero/e8aa2c0754dccdd45b
  22. 22. Notify CommandFramework Framework (cc) Crazy Diamond http://www.flickr.com/photos/48446424@N00/4505142495ChangeRecorder
  23. 23. Wh at i sa(cc) jDevaun http://www.flickr.com/photos/34316967@N04/3838807132 ?
  24. 24. Executability
  25. 25. Executability Undoability
  26. 26. Executability Undoability Redo
  27. 27. Result
  28. 28. Result Aected Objects
  29. 29. Result Aected Objects Label / Description
  30. 30. Set Copy Add Generic CommandsReplace Remove Move
  31. 31. Create ChildDrag & Drop Delete High-level CommandsPaste from Cut ToClipboard Clipboard Copy to Clipboard
  32. 32. (c) Simon Cox, Sept 2012
  33. 33. Command Stack (c) Simon Cox, Sept 2012
  34. 34. 3... 2... 1... Action!
  35. 35. Code availablehttps://gist.github.com/mbarbero/77c81a93b5f63c441207
  36. 36. Notify Command ChangeFramework Framework Recorder
  37. 37. Change ModelBird view ChangeDescription apply() applyAndReverse() objectChanges [*] key Map<EObject, EObject Changes> (from ecore) referenceValue value [*] feature EStructuralFeature FeatureChange (from ecore) dataValue : String
  38. 38. Change RecorderListener of Containment Tree Change Recorder
  39. 39. Change RecorderListener of Containment Tree Change Recorder Listen to
  40. 40. Change RecorderListener of Containment Tree Change Recorder Listen to Creates Change model
  41. 41. Change Command(cc) fdecomite http://www.flickr.com/photos/21649179@N00/6478685035
  42. 42. Change CommandExecute
  43. 43. Change Command ExecuteChange recorder
  44. 44. Change Command Execute Undo RedoChange recorder
  45. 45. Change Command Execute Undo RedoChange recorder applyAndReverse
  46. 46. 3... 2... 1... Action!
  47. 47. Code availablehttps://gist.github.com/mbarbero/6e6b88ee61ce7e2e57
  48. 48. (cc) debaird™ http://www.flickr.com/photos/48889107219@N01/239460739 What you should remember
  49. 49. What you should remember
  50. 50. Adapter + ChangeModel = ChangeRecorderWhat you should remember
  51. 51. Adapter + Command + ChangeModel ChangeRecorder = = ChangeRecorder ChangeCommandWhat you should remember
  52. 52. Adapter + Command + ChangeModel ChangeRecorder ChangeRecorder + ChangeCommand Steroïds for Your AppWhat you should remember
  53. 53. (cc) Instant Vantage http://www.flickr.com/photos/44312356@N04/6023508805 Q & A
  54. 54. (cc) TheAlieness GiselaGiardino²³ http://www.flickr.com/photos/36613169@N00/304120801/Mikaël Barberomikael.barbero@obeo.fr+Mikaël Barbero@mikbarberoObeohttp://www.obeo.fr
  55. 55. Give Feedback 1} Sign in www.eclipsecon.org 2} Select Session Evaluate(cc) Denis Dervisevic http://www.flickr.com/photos/23979265@N07/4745520501/ 3} Vote +1, 0 or -1
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×