SlideShare a Scribd company logo
1 of 48
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Customizing Touch UI
Dialog Fields
CQ Gems on AEM
October 7th, 2015
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Basics
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Touch-optimized UI
Next generation User Interface
Optimized for Touch, with Desktop in mind
Meant to be highly customizable
Based on Coral UI + Granite UI
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Touch-optimized UI
Next generation User Interface
Optimized for Touch, with Desktop in mind
Meant to be highly customizable
Based on Coral UI + Granite UI
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Coral UI
Widget library (CSS / JS)
Consistent UX across all cloud solutions
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Granite UI
Foundational building blocks
Coral UI markup wrapped into Sling components
Components for building UI consoles and dialogs
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Granite UI
Foundational building blocks
Coral UI markup wrapped into Sling components
Components for building UI consoles and dialogs
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Component Dialogs
To edit properties of an component instance
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Classic UI vs. Touch UI
Dialogs
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Classic UI Dialogs
dialog node
ExtJS widgets / xtypes
rendered client-side
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Classic UI Dialogs
dialog node
ExtJS widgets / xtypes
rendered client-side
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Classic UI Dialogs
dialog node
ExtJS widgets / xtypes
rendered client-side
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Touch UI Dialogs
cq:dialog node
Granite UI resource types
rendered server-side
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Touch UI Dialogs
cq:dialog node
Granite UI resource types
rendered server-side
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Touch UI Dialogs
cq:dialog node
Granite UI resource types
rendered server-side
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Classic UI Dialogs in Touch UI?
Compatibility layer when no Touch UI dialog defined
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Classic UI Dialogs in Touch UI?
Migration: Dialog converter tool
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Examples
Classic UI: /libs/foundation/components/title/dialog
Touch UI: /libs/foundation/components/title/cq:dialog
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Creating custom
Dialog Fields
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Creating a new field
0) Check granite/ui/components/foundation/form/
1) Create Resource type to render markup
2) Create Client library to define style / behavior for markup
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Creating a new field
0) Check granite/ui/components/foundation/form/
1) Create Resource type to render markup
2) Create Client library to define style / behavior for markup
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Creating a new field
1) Resource type to render markup
= usual component development
override render.jsp
contract: read and display form value from request
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Creating a new field
1) Resource type to render markup
inherit from Granite UI base field
override render.jsp
contract: read and display form value from request
sling:resourceSuperType=

	
   “granite/ui/components/foundation/form/field”
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Creating a new field
1) Resource type to render markup
inherit from Granite UI base field
override render.jsp
!
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Creating a new field
1) Resource type to render markup
inherit from Granite UI base field
override render.jsp
contract: read and display form value from request
//	
  Gives	
  you	
  the	
  value	
  of	
  the	
  field	
  (read	
  from	
  the	
  content)	
  
ValueMap	
  vm	
  =	
  (ValueMap)	
  request.getAttribute(Field.class.getName());	
  
vm.get(“value",	
  String.class);
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Examples
cqgems/customizingfield/components/colorpicker
granite/ui/components/foundation/form
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Creating a new field
2) Client library to define style / behavior
= usual client library development
!
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Creating a new field
2) Client library to define style / behavior
generic field ? use cq.authoring.dialog as category
specific field ? use extraClientLibs property on dialog
!
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Creating a new field
2) Client library to define style / behavior
generic field ? use cq.authoring.dialog as category
specific field ? use extraClientLibs property on dialog
!
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Example
cqgems/customizingfield/components/colorpicker/clientlibs
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Event handling
on Dialog Fields
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Handling events on fields
ExtJS listeners replacement
Listeners in custom Client library instead
Mark your custom field with CSS class
Hook JS event listener using that CSS class
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Handling events on fields
ExtJS listeners replacement (avoid listeners in content!)
Listeners in custom Client library instead
Mark your custom field with CSS class
Hook JS event listener using that CSS class
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Handling events on fields
ExtJS listeners replacement (avoid listeners in content!)
Listeners in custom Client library instead
Mark your custom field with CSS class
Hook JS event listener using that CSS class
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Handling events on fields
ExtJS listeners replacement (avoid listeners in content!)
Listeners in custom Client library instead
Mark your custom field with CSS class
Hook JS event listener using that CSS class
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Handling events on fields
ExtJS listeners replacement (avoid listeners in content!)
Listeners in custom Client library instead
Mark your custom field with CSS class
Hook JS event listener using that CSS class
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Handling events on fields
ExtJS listeners replacement (avoid listeners in content!)
Listeners in custom Client library instead
Mark your custom field with CSS class
Hook JS event listener using that CSS class
(see CoralUI documentation for API / Events)
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Example
cqgems/customizingfield/components/clientlibs/
customizingfield
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Validation for
Dialog Fields
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Handling validation on fields
Mandatory? 

set required property on node
Advanced validation? 

set validation property (as a key to a registered validator)

see Granite UI Validation API / jQuery Validator
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Handling validation on fields
Mandatory? 

set required property on node
Advanced validation? 

set validation property (as a key to a registered validator)

use Granite UI Validation API
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Examples
cqgems/customizingfield/components/clientlibs/
customizingfield/js/validations.js
cq/gui/components/authoring/dialog/clientlibs/dialog/js/
validations.js
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Resource type is an
abstraction
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Resource type is an abstraction
Resource type = semantic intention
Look and feel = implementation detail
Even though the look and feel usually changes over time,

the intention stays the time
!
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Resource type is an abstraction
Resource type = semantic intention
Look and feel = implementation detail
Content structure declares intentions,

resource type implement them.
!
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Example
cqgems/customizingfield/components/colorpicker2
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Summary
Classic UI / Touch UI Dialogs
Creating Fields to be used in Dialogs
Fields event handling, validation
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential
Resources
Touch UI Concepts
Granite UI Reference
Granite UI Form Fields Reference
Coral UI Reference

More Related Content

Viewers also liked

Basics of Solr and Solr Integration with AEM6
Basics of Solr and Solr Integration with AEM6Basics of Solr and Solr Integration with AEM6
Basics of Solr and Solr Integration with AEM6
DEEPAK KHETAWAT
 
Build single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMBuild single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEM
connectwebex
 
AEM 6 - Client Context Personalization
AEM 6 - Client Context Personalization AEM 6 - Client Context Personalization
AEM 6 - Client Context Personalization
Prabhdeep Singh
 

Viewers also liked (9)

REST in AEM
REST in AEMREST in AEM
REST in AEM
 
Basics of Solr and Solr Integration with AEM6
Basics of Solr and Solr Integration with AEM6Basics of Solr and Solr Integration with AEM6
Basics of Solr and Solr Integration with AEM6
 
Build single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMBuild single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEM
 
Introduction to Sightly and Sling Models
Introduction to Sightly and Sling ModelsIntroduction to Sightly and Sling Models
Introduction to Sightly and Sling Models
 
AEM 6 - Client Context Personalization
AEM 6 - Client Context Personalization AEM 6 - Client Context Personalization
AEM 6 - Client Context Personalization
 
Sling Models Using Sightly and JSP by Deepak Khetawat
Sling Models Using Sightly and JSP by Deepak KhetawatSling Models Using Sightly and JSP by Deepak Khetawat
Sling Models Using Sightly and JSP by Deepak Khetawat
 
Building Quality into the AEM Publication Workflow with Active Standards by D...
Building Quality into the AEM Publication Workflow with Active Standards by D...Building Quality into the AEM Publication Workflow with Active Standards by D...
Building Quality into the AEM Publication Workflow with Active Standards by D...
 
Touching the AEM component dialog by Mateusz Chromiński
Touching the AEM component dialog by Mateusz ChromińskiTouching the AEM component dialog by Mateusz Chromiński
Touching the AEM component dialog by Mateusz Chromiński
 
Free Download Powerpoint Slides
Free Download Powerpoint SlidesFree Download Powerpoint Slides
Free Download Powerpoint Slides
 

Recently uploaded

Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 

Recently uploaded (20)

Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 

CQ Gems - Customizing Touch UI Dialog Fields

  • 1. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Customizing Touch UI Dialog Fields CQ Gems on AEM October 7th, 2015
  • 2. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Basics
  • 3. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Touch-optimized UI Next generation User Interface Optimized for Touch, with Desktop in mind Meant to be highly customizable Based on Coral UI + Granite UI
  • 4. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Touch-optimized UI Next generation User Interface Optimized for Touch, with Desktop in mind Meant to be highly customizable Based on Coral UI + Granite UI
  • 5. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Coral UI Widget library (CSS / JS) Consistent UX across all cloud solutions
  • 6. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Granite UI Foundational building blocks Coral UI markup wrapped into Sling components Components for building UI consoles and dialogs
  • 7. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Granite UI Foundational building blocks Coral UI markup wrapped into Sling components Components for building UI consoles and dialogs
  • 8. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Component Dialogs To edit properties of an component instance
  • 9. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Classic UI vs. Touch UI Dialogs
  • 10. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Classic UI Dialogs dialog node ExtJS widgets / xtypes rendered client-side
  • 11. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Classic UI Dialogs dialog node ExtJS widgets / xtypes rendered client-side
  • 12. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Classic UI Dialogs dialog node ExtJS widgets / xtypes rendered client-side
  • 13. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Touch UI Dialogs cq:dialog node Granite UI resource types rendered server-side
  • 14. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Touch UI Dialogs cq:dialog node Granite UI resource types rendered server-side
  • 15. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Touch UI Dialogs cq:dialog node Granite UI resource types rendered server-side
  • 16. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Classic UI Dialogs in Touch UI? Compatibility layer when no Touch UI dialog defined
  • 17. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Classic UI Dialogs in Touch UI? Migration: Dialog converter tool
  • 18. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Examples Classic UI: /libs/foundation/components/title/dialog Touch UI: /libs/foundation/components/title/cq:dialog
  • 19. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Creating custom Dialog Fields
  • 20. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Creating a new field 0) Check granite/ui/components/foundation/form/ 1) Create Resource type to render markup 2) Create Client library to define style / behavior for markup
  • 21. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Creating a new field 0) Check granite/ui/components/foundation/form/ 1) Create Resource type to render markup 2) Create Client library to define style / behavior for markup
  • 22. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Creating a new field 1) Resource type to render markup = usual component development override render.jsp contract: read and display form value from request
  • 23. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Creating a new field 1) Resource type to render markup inherit from Granite UI base field override render.jsp contract: read and display form value from request sling:resourceSuperType=
   “granite/ui/components/foundation/form/field”
  • 24. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Creating a new field 1) Resource type to render markup inherit from Granite UI base field override render.jsp !
  • 25. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Creating a new field 1) Resource type to render markup inherit from Granite UI base field override render.jsp contract: read and display form value from request //  Gives  you  the  value  of  the  field  (read  from  the  content)   ValueMap  vm  =  (ValueMap)  request.getAttribute(Field.class.getName());   vm.get(“value",  String.class);
  • 26. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Examples cqgems/customizingfield/components/colorpicker granite/ui/components/foundation/form
  • 27. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Creating a new field 2) Client library to define style / behavior = usual client library development !
  • 28. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Creating a new field 2) Client library to define style / behavior generic field ? use cq.authoring.dialog as category specific field ? use extraClientLibs property on dialog !
  • 29. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Creating a new field 2) Client library to define style / behavior generic field ? use cq.authoring.dialog as category specific field ? use extraClientLibs property on dialog !
  • 30. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Example cqgems/customizingfield/components/colorpicker/clientlibs
  • 31. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Event handling on Dialog Fields
  • 32. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Handling events on fields ExtJS listeners replacement Listeners in custom Client library instead Mark your custom field with CSS class Hook JS event listener using that CSS class
  • 33. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Handling events on fields ExtJS listeners replacement (avoid listeners in content!) Listeners in custom Client library instead Mark your custom field with CSS class Hook JS event listener using that CSS class
  • 34. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Handling events on fields ExtJS listeners replacement (avoid listeners in content!) Listeners in custom Client library instead Mark your custom field with CSS class Hook JS event listener using that CSS class
  • 35. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Handling events on fields ExtJS listeners replacement (avoid listeners in content!) Listeners in custom Client library instead Mark your custom field with CSS class Hook JS event listener using that CSS class
  • 36. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Handling events on fields ExtJS listeners replacement (avoid listeners in content!) Listeners in custom Client library instead Mark your custom field with CSS class Hook JS event listener using that CSS class
  • 37. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Handling events on fields ExtJS listeners replacement (avoid listeners in content!) Listeners in custom Client library instead Mark your custom field with CSS class Hook JS event listener using that CSS class (see CoralUI documentation for API / Events)
  • 38. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Example cqgems/customizingfield/components/clientlibs/ customizingfield
  • 39. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Validation for Dialog Fields
  • 40. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Handling validation on fields Mandatory? 
 set required property on node Advanced validation? 
 set validation property (as a key to a registered validator)
 see Granite UI Validation API / jQuery Validator
  • 41. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Handling validation on fields Mandatory? 
 set required property on node Advanced validation? 
 set validation property (as a key to a registered validator)
 use Granite UI Validation API
  • 42. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Examples cqgems/customizingfield/components/clientlibs/ customizingfield/js/validations.js cq/gui/components/authoring/dialog/clientlibs/dialog/js/ validations.js
  • 43. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Resource type is an abstraction
  • 44. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Resource type is an abstraction Resource type = semantic intention Look and feel = implementation detail Even though the look and feel usually changes over time,
 the intention stays the time !
  • 45. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Resource type is an abstraction Resource type = semantic intention Look and feel = implementation detail Content structure declares intentions,
 resource type implement them. !
  • 46. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Example cqgems/customizingfield/components/colorpicker2
  • 47. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Summary Classic UI / Touch UI Dialogs Creating Fields to be used in Dialogs Fields event handling, validation
  • 48. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential Resources Touch UI Concepts Granite UI Reference Granite UI Form Fields Reference Coral UI Reference