EMF.Edit the Force Unleashed!

1,783 views
1,655 views

Published on

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

No Downloads
Views
Total views
1,783
On SlideShare
0
From Embeds
0
Number of Embeds
65
Actions
Shares
0
Downloads
29
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

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

×