SlideShare a Scribd company logo
1 of 15
Magnolia 5.0 - Concept


                            UI Architecture




1
                 Magnolia is a registered trademark used by permission
Version 1.0
MVP vs. MVC




              http://blog.vuscode.com/malovicn/archive/2007/12/18/model-view-presenter-mvp-vs-model-view-controller-mvc.aspx




2
                                       Magnolia is a registered trademark used by permission
Version 1.0
GWT 2.1 - MVP
• based on the experience at google
• good fundament for browser application
  • history
  • asynchronously
  • decoupling browser dependent code




3
                    Magnolia is a registered trademark used by permission
Version 1.0
GWT 2.1 - the participants
•     Places
•     Display Regions
•     Activities (Presenter)
•     Views
•     EventBus




4
                         Magnolia is a registered trademark used by permission
Version 1.0
Places
• Place
  • represents a state
  • each place is a subclass
  • provides the values to re-produce the place
• PlaceController
  • PlaceController.gotTo(place)
  • fires PlaceChangeEvent/PlaceChangeRequestEvent
• PlaceHistoryHandler
  • triggered by history navigation
• PlaceHistoryMapper
  • browser history support

5
                   Magnolia is a registered trademark used by permission
Version 1.0
Display Regions
• where the produced view is attached to
• navigation menu, search bar, main region, ..
• implements AcceptsOneWidget interface




6
                    Magnolia is a registered trademark used by permission
Version 1.0
Activities (Presenter)
• Activity
  • the presenter of the MVP pattern
  • start(region, eventbus)
  • mayStop()
  • onCacel()
• ActivityMapper
  • maps places to activities
• ActivityManager
  • reacts on PlaceChangeEvents
  • starts the activity


7
                    Magnolia is a registered trademark used by permission
Version 1.0
View
• interface
  • contract with the presenter
• a subclass will contain the UI specific code
  • GWT, Vaadin, ...
• different device -> different views (mobile, iPad)
• LTR/RTL
• ViewFactory




8
                     Magnolia is a registered trademark used by permission
Version 1.0
PlaceController                           PlaceHistory
       Place   goTo(place)                                    Handler
               getWhere():Place



      Home

               fires PlaceChangeEvent


                                    dispatches
                    EventBus                           ActivityManager                             ActivityMapper
                                                   onPlaceChange(event)                      getActivity(place):Activity




                                                                                                      Activity
                                                                                             start(region, eventBus)
                                                                                             mayStop()
                                                                                    starts
                                                                                             onCancel()
                                                                                             onStop()




9
                            Magnolia is a registered trademark used by permission
Version 1.0
EventBus
• EventBus
  • application level events
  • ItemSelectedEvent, ItemDeletedEvent, ...
• UI events
  • are handled by the presenter
  • OnClickEvent, ...




10
                    Magnolia is a registered trademark used by permission
Version 1.0
http://www.nieleyde.org/SkywayBlog/post.htm?postid=37782056-c4e1-4dfb-9caa-40ab9552ca3b




11
                                       Magnolia is a registered trademark used by permission
Version 1.0
Commands
• atom operation
  • delete item
  • save changes
  • activate content
• undo/redo
• triggered by the presenter or application controller
• also exposed by the web services




12
                     Magnolia is a registered trademark used by permission
Version 1.0
Why should we use this
•     separation of concerns
•     less Vaadin dependent code
•     history support
•     different types of views
•     aligned with GWT client side coding




13
                         Magnolia is a registered trademark used by permission
Version 1.0
What will we do
• use the blackboard Vaadin add-on (event bus)
  • wiki page
• write the sever side classes (Place, Activity, ...)
  • analog to GWT code




14
                      Magnolia is a registered trademark used by permission
Version 1.0
Resources
•     MVP
     •        Model View Presenter (MVP) VS Model View Controller (.Net)
     •        GUI Architectures (Martin Fowler)
•     GWT Architecture
     •        GWT 2.1 Activities - tbroyer's posterous
     •        GWT 2.1 Places - tbroyer's posterous
     •        GWT 2.1 Places – Part II - tbroyer's posterous
     •        GWT MVP Development with Activities and Places (GWT Documentation)
     •        SolamenteNiel - GWT: Model-View-Presenter Architecture Diagram
•     Commands
     •        Command pattern (Wikipedia)
     •        Undo (Wikipedia)
     •        Memento pattern (Wikipedia)




15
                                   Magnolia is a registered trademark used by permission
Version 1.0

More Related Content

Similar to Magnolia CMS 5.0 - UI Architecture

Javascript essential-pattern
Javascript essential-patternJavascript essential-pattern
Javascript essential-pattern偉格 高
 
Rambler.iOS #6: App delegate - разделяй и властвуй
Rambler.iOS #6: App delegate - разделяй и властвуйRambler.iOS #6: App delegate - разделяй и властвуй
Rambler.iOS #6: App delegate - разделяй и властвуйRAMBLER&Co
 
Hybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKitHybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKitAriya Hidayat
 
Intro To webOS
Intro To webOSIntro To webOS
Intro To webOSfpatton
 
Hybrid Apps (Native + Web) using WebKit
Hybrid Apps (Native + Web) using WebKitHybrid Apps (Native + Web) using WebKit
Hybrid Apps (Native + Web) using WebKitAriya Hidayat
 
Hybrid Apps (Native + Web) using WebKit
Hybrid Apps (Native + Web) using WebKitHybrid Apps (Native + Web) using WebKit
Hybrid Apps (Native + Web) using WebKitAriya Hidayat
 
Codestrong 2012 breakout session android internals and best practices
Codestrong 2012 breakout session   android internals and best practicesCodestrong 2012 breakout session   android internals and best practices
Codestrong 2012 breakout session android internals and best practicesAxway Appcelerator
 
What’s new in aNdroid [Google I/O Extended Bangkok 2016]
What’s new in aNdroid [Google I/O Extended Bangkok 2016]What’s new in aNdroid [Google I/O Extended Bangkok 2016]
What’s new in aNdroid [Google I/O Extended Bangkok 2016]Sittiphol Phanvilai
 
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016Loïc Knuchel
 
OSGi and Eclipse RCP
OSGi and Eclipse RCPOSGi and Eclipse RCP
OSGi and Eclipse RCPEric Jain
 
Meiga Guadec 2009 English
Meiga Guadec 2009 EnglishMeiga Guadec 2009 English
Meiga Guadec 2009 Englisheocanha
 
Scaling Django with gevent
Scaling Django with geventScaling Django with gevent
Scaling Django with geventMahendra M
 
Jollen's Presentation: Introducing Android low-level
Jollen's Presentation: Introducing Android low-levelJollen's Presentation: Introducing Android low-level
Jollen's Presentation: Introducing Android low-levelJollen Chen
 
Reactive state management with Jetpack Components
Reactive state management with Jetpack ComponentsReactive state management with Jetpack Components
Reactive state management with Jetpack ComponentsGabor Varadi
 
MvvmQuickCross for Windows Phone
MvvmQuickCross for Windows PhoneMvvmQuickCross for Windows Phone
MvvmQuickCross for Windows PhoneVincent Hoogendoorn
 
managing georeferenced content with Plone and collective.geo
managing georeferenced content with Plone and collective.geomanaging georeferenced content with Plone and collective.geo
managing georeferenced content with Plone and collective.geogborelli
 
soft-shake.ch - Windows Phone 7 „Mango“ – what’s new for Developers?
soft-shake.ch - Windows Phone 7 „Mango“ – what’s new for Developers?soft-shake.ch - Windows Phone 7 „Mango“ – what’s new for Developers?
soft-shake.ch - Windows Phone 7 „Mango“ – what’s new for Developers?soft-shake.ch
 

Similar to Magnolia CMS 5.0 - UI Architecture (20)

Javascript essential-pattern
Javascript essential-patternJavascript essential-pattern
Javascript essential-pattern
 
Rambler.iOS #6: App delegate - разделяй и властвуй
Rambler.iOS #6: App delegate - разделяй и властвуйRambler.iOS #6: App delegate - разделяй и властвуй
Rambler.iOS #6: App delegate - разделяй и властвуй
 
Hybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKitHybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKit
 
Intro To webOS
Intro To webOSIntro To webOS
Intro To webOS
 
Hybrid Apps (Native + Web) using WebKit
Hybrid Apps (Native + Web) using WebKitHybrid Apps (Native + Web) using WebKit
Hybrid Apps (Native + Web) using WebKit
 
Hybrid Apps (Native + Web) using WebKit
Hybrid Apps (Native + Web) using WebKitHybrid Apps (Native + Web) using WebKit
Hybrid Apps (Native + Web) using WebKit
 
Codestrong 2012 breakout session android internals and best practices
Codestrong 2012 breakout session   android internals and best practicesCodestrong 2012 breakout session   android internals and best practices
Codestrong 2012 breakout session android internals and best practices
 
What’s new in aNdroid [Google I/O Extended Bangkok 2016]
What’s new in aNdroid [Google I/O Extended Bangkok 2016]What’s new in aNdroid [Google I/O Extended Bangkok 2016]
What’s new in aNdroid [Google I/O Extended Bangkok 2016]
 
Html5
Html5Html5
Html5
 
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016
 
OSGi and Eclipse RCP
OSGi and Eclipse RCPOSGi and Eclipse RCP
OSGi and Eclipse RCP
 
Meiga Guadec 2009 English
Meiga Guadec 2009 EnglishMeiga Guadec 2009 English
Meiga Guadec 2009 English
 
Scaling Django with gevent
Scaling Django with geventScaling Django with gevent
Scaling Django with gevent
 
Jollen's Presentation: Introducing Android low-level
Jollen's Presentation: Introducing Android low-levelJollen's Presentation: Introducing Android low-level
Jollen's Presentation: Introducing Android low-level
 
Reactive state management with Jetpack Components
Reactive state management with Jetpack ComponentsReactive state management with Jetpack Components
Reactive state management with Jetpack Components
 
MvvmQuickCross for Windows Phone
MvvmQuickCross for Windows PhoneMvvmQuickCross for Windows Phone
MvvmQuickCross for Windows Phone
 
Guides To Analyzing WebKit Performance
Guides To Analyzing WebKit PerformanceGuides To Analyzing WebKit Performance
Guides To Analyzing WebKit Performance
 
Java-Events
Java-EventsJava-Events
Java-Events
 
managing georeferenced content with Plone and collective.geo
managing georeferenced content with Plone and collective.geomanaging georeferenced content with Plone and collective.geo
managing georeferenced content with Plone and collective.geo
 
soft-shake.ch - Windows Phone 7 „Mango“ – what’s new for Developers?
soft-shake.ch - Windows Phone 7 „Mango“ – what’s new for Developers?soft-shake.ch - Windows Phone 7 „Mango“ – what’s new for Developers?
soft-shake.ch - Windows Phone 7 „Mango“ – what’s new for Developers?
 

More from Philipp Bärfuss

NoCMS - from monolithic CMS to dissolved CMS
NoCMS - from monolithic CMS to dissolved CMSNoCMS - from monolithic CMS to dissolved CMS
NoCMS - from monolithic CMS to dissolved CMSPhilipp Bärfuss
 
Magnolia Personalization Keynote Amplify 2014
Magnolia Personalization Keynote Amplify 2014Magnolia Personalization Keynote Amplify 2014
Magnolia Personalization Keynote Amplify 2014Philipp Bärfuss
 
Magnolia 5 - Under the Hood
Magnolia 5 - Under the HoodMagnolia 5 - Under the Hood
Magnolia 5 - Under the HoodPhilipp Bärfuss
 
Magnolia CMS 5.0 - JCR 2.0 and Content API
Magnolia CMS 5.0 - JCR 2.0 and Content APIMagnolia CMS 5.0 - JCR 2.0 and Content API
Magnolia CMS 5.0 - JCR 2.0 and Content APIPhilipp Bärfuss
 
Magnolia CMS Roadmap - Beyond 5.0
Magnolia CMS Roadmap - Beyond 5.0Magnolia CMS Roadmap - Beyond 5.0
Magnolia CMS Roadmap - Beyond 5.0Philipp Bärfuss
 
Magnolia CMS 5.0 - Three perspectives
Magnolia CMS 5.0   - Three perspectivesMagnolia CMS 5.0   - Three perspectives
Magnolia CMS 5.0 - Three perspectivesPhilipp Bärfuss
 

More from Philipp Bärfuss (7)

NoCMS - from monolithic CMS to dissolved CMS
NoCMS - from monolithic CMS to dissolved CMSNoCMS - from monolithic CMS to dissolved CMS
NoCMS - from monolithic CMS to dissolved CMS
 
Magnolia Personalization Keynote Amplify 2014
Magnolia Personalization Keynote Amplify 2014Magnolia Personalization Keynote Amplify 2014
Magnolia Personalization Keynote Amplify 2014
 
Magnolia 5 - Under the Hood
Magnolia 5 - Under the HoodMagnolia 5 - Under the Hood
Magnolia 5 - Under the Hood
 
Magnolia CMS 5.0 - JCR 2.0 and Content API
Magnolia CMS 5.0 - JCR 2.0 and Content APIMagnolia CMS 5.0 - JCR 2.0 and Content API
Magnolia CMS 5.0 - JCR 2.0 and Content API
 
Magnolia CMS Roadmap - Beyond 5.0
Magnolia CMS Roadmap - Beyond 5.0Magnolia CMS Roadmap - Beyond 5.0
Magnolia CMS Roadmap - Beyond 5.0
 
Magnolia CMS 5.0 - Three perspectives
Magnolia CMS 5.0   - Three perspectivesMagnolia CMS 5.0   - Three perspectives
Magnolia CMS 5.0 - Three perspectives
 
Magnolia 5.0 'GenUIne'
Magnolia 5.0 'GenUIne'Magnolia 5.0 'GenUIne'
Magnolia 5.0 'GenUIne'
 

Recently uploaded

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 

Recently uploaded (20)

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 

Magnolia CMS 5.0 - UI Architecture

  • 1. Magnolia 5.0 - Concept UI Architecture 1 Magnolia is a registered trademark used by permission Version 1.0
  • 2. MVP vs. MVC http://blog.vuscode.com/malovicn/archive/2007/12/18/model-view-presenter-mvp-vs-model-view-controller-mvc.aspx 2 Magnolia is a registered trademark used by permission Version 1.0
  • 3. GWT 2.1 - MVP • based on the experience at google • good fundament for browser application • history • asynchronously • decoupling browser dependent code 3 Magnolia is a registered trademark used by permission Version 1.0
  • 4. GWT 2.1 - the participants • Places • Display Regions • Activities (Presenter) • Views • EventBus 4 Magnolia is a registered trademark used by permission Version 1.0
  • 5. Places • Place • represents a state • each place is a subclass • provides the values to re-produce the place • PlaceController • PlaceController.gotTo(place) • fires PlaceChangeEvent/PlaceChangeRequestEvent • PlaceHistoryHandler • triggered by history navigation • PlaceHistoryMapper • browser history support 5 Magnolia is a registered trademark used by permission Version 1.0
  • 6. Display Regions • where the produced view is attached to • navigation menu, search bar, main region, .. • implements AcceptsOneWidget interface 6 Magnolia is a registered trademark used by permission Version 1.0
  • 7. Activities (Presenter) • Activity • the presenter of the MVP pattern • start(region, eventbus) • mayStop() • onCacel() • ActivityMapper • maps places to activities • ActivityManager • reacts on PlaceChangeEvents • starts the activity 7 Magnolia is a registered trademark used by permission Version 1.0
  • 8. View • interface • contract with the presenter • a subclass will contain the UI specific code • GWT, Vaadin, ... • different device -> different views (mobile, iPad) • LTR/RTL • ViewFactory 8 Magnolia is a registered trademark used by permission Version 1.0
  • 9. PlaceController PlaceHistory Place goTo(place) Handler getWhere():Place Home fires PlaceChangeEvent dispatches EventBus ActivityManager ActivityMapper onPlaceChange(event) getActivity(place):Activity Activity start(region, eventBus) mayStop() starts onCancel() onStop() 9 Magnolia is a registered trademark used by permission Version 1.0
  • 10. EventBus • EventBus • application level events • ItemSelectedEvent, ItemDeletedEvent, ... • UI events • are handled by the presenter • OnClickEvent, ... 10 Magnolia is a registered trademark used by permission Version 1.0
  • 11. http://www.nieleyde.org/SkywayBlog/post.htm?postid=37782056-c4e1-4dfb-9caa-40ab9552ca3b 11 Magnolia is a registered trademark used by permission Version 1.0
  • 12. Commands • atom operation • delete item • save changes • activate content • undo/redo • triggered by the presenter or application controller • also exposed by the web services 12 Magnolia is a registered trademark used by permission Version 1.0
  • 13. Why should we use this • separation of concerns • less Vaadin dependent code • history support • different types of views • aligned with GWT client side coding 13 Magnolia is a registered trademark used by permission Version 1.0
  • 14. What will we do • use the blackboard Vaadin add-on (event bus) • wiki page • write the sever side classes (Place, Activity, ...) • analog to GWT code 14 Magnolia is a registered trademark used by permission Version 1.0
  • 15. Resources • MVP • Model View Presenter (MVP) VS Model View Controller (.Net) • GUI Architectures (Martin Fowler) • GWT Architecture • GWT 2.1 Activities - tbroyer's posterous • GWT 2.1 Places - tbroyer's posterous • GWT 2.1 Places – Part II - tbroyer's posterous • GWT MVP Development with Activities and Places (GWT Documentation) • SolamenteNiel - GWT: Model-View-Presenter Architecture Diagram • Commands • Command pattern (Wikipedia) • Undo (Wikipedia) • Memento pattern (Wikipedia) 15 Magnolia is a registered trademark used by permission Version 1.0

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n