MONTREAL 1/3 JULY 2011Custom and Embedded D2WMixing Direct to Web into existing WO apps
Dashboard Demo
Why?
Why?•   Reduce component ‘explosion’
Why?•   Reduce component ‘explosion’•   CRUD functionality
Why?•   Reduce component ‘explosion’•   CRUD functionality•   Property sorting
Why?•   Reduce component ‘explosion’•   CRUD functionality•   Property sorting•   Property grouping
Why?•   Reduce component ‘explosion’•   CRUD functionality•   Property sorting•   Property grouping•   Display group manag...
Why?•   Reduce component ‘explosion’•   CRUD functionality•   Property sorting•   Property grouping•   Display group manag...
Why?•   Reduce component ‘explosion’•   CRUD functionality•   Property sorting•   Property grouping•   Display group manag...
How?
Classpath
Classpath•   JavaDirectToWeb.framework
Classpath•   JavaDirectToWeb.framework•   JavaDTWGeneration.framework
Classpath•   JavaDirectToWeb.framework•   JavaDTWGeneration.framework•   EOProject.framework
Classpath•   JavaDirectToWeb.framework•   JavaDTWGeneration.framework•   EOProject.framework•   ERDirectToWeb.framework
Classpath•   JavaDirectToWeb.framework•   JavaDTWGeneration.framework•   EOProject.framework•   ERDirectToWeb.framework•  ...
Resources
Resources•   d2w.d2wmodel
Resources•   d2w.d2wmodel•   user.d2wmodel (optional)
Resources•   d2w.d2wmodel•   user.d2wmodel (optional)•   Localized.lproj folders (optional)
Additional D2W Model Names•   er.directtoweb.ERD2WModel.additionalModelNames=(blah.d2w    model)
Code
Code•   PageWrapper.wo
Code•   PageWrapper.wo•   ERD2WDirectAction subclass (recommended)
Code•   PageWrapper.wo•   ERD2WDirectAction subclass (recommended)    •   Override allowPageConfiguration()
Custom Page Wrapper Name•   0 : frame = 0 => pageWrapperName =    "MyPageWrapper" [com.webobjects.directtoweb.Assignment]
Let’s build one!
Embedded D2W
What are they?
Apple Components
Apple Components•   D2WEdit
Apple Components•   D2WEdit•   D2WInspect
Apple Components•   D2WEdit•   D2WInspect•   D2WList
Apple Components•   D2WEdit•   D2WInspect•   D2WList•   D2WQuery
Apple Components•   D2WEdit•   D2WInspect•   D2WList•   D2WQuery•   D2WSelect
WOnder Components
WOnder Components•   D2WPick
WOnder Components•   D2WPick•   ERD2WQuery
WOnder Components•   D2WPick•   ERD2WQuery•   ERXD2WEditRelationship
WOnder Components•   D2WPick•   ERD2WQuery•   ERXD2WEditRelationship•   ERXD2WInspect
WOnder Components•   D2WPick•   ERD2WQuery•   ERXD2WEditRelationship•   ERXD2WInspect•   ERXD2WList
WOnder Components•   D2WPick•   ERD2WQuery•   ERXD2WEditRelationship•   ERXD2WInspect•   ERXD2WList•   ERXD2WPick
WOnder Components•   D2WPick•   ERD2WQuery•   ERXD2WEditRelationship•   ERXD2WInspect•   ERXD2WList•   ERXD2WPick•   ERXD2...
When do I use them?
How do I use them?
Embedded D2W List Bindings  ListMovie: ERXD2WList {	 pageConfiguration = "ListMovie";	 dataSource = movieDataSource;	 disp...
pageConfiguration Format•   Basic format is <Task><EntityName>•   Entity parsed using ERXEOAccessUtilities.entityMatchingSt...
pageConfigurations: Don’t ...•   Don’t start entity names with keywords found in the rule    system: List, Contact, Tab, Wi...
displayKeys Format
displayKeys Format•   Documented! See ERD2WPage javadoc
displayKeys Format•   Documented! See ERD2WPage javadoc•   Two formats
displayKeys Format(“[tab1]”, “(sectionA1)”, “prop1”, “prop2”, “(sectionA2)”, “prop3”, “[tab2]”, ... )
displayKeys Format(“[tab1]”, “(sectionA1)”, “prop1”, “prop2”, “(sectionA2)”, “prop3”, “[tab2]”, ... )
displayKeys Format(“[tab1]”, “(sectionA1)”, “prop1”, “prop2”, “(sectionA2)”, “prop3”, “[tab2]”, ... )
displayKeys Format(“[tab1]”, “(sectionA1)”, “prop1”, “prop2”, “(sectionA2)”, “prop3”, “[tab2]”, ... )
displayKeys Format(“[tab1]”, “(sectionA1)”, “prop1”, “prop2”, “(sectionA2)”, “prop3”, “[tab2]”, ... )
displayKeys Format((tab1, (sectionA1, prop1, prop2), (sectionA2, prop3)), (tab2, ...))
displayKeys Format((tab1, (sectionA1, prop1, prop2), (sectionA2, prop3)), (tab2, ...))
displayKeys Format((tab1, (sectionA1, prop1, prop2), (sectionA2, prop3)), (tab2, ...))
displayKeys Format((tab1, (sectionA1, prop1, prop2), (sectionA2, prop3)), (tab2, ...))
displayKeys Format((tab1, (sectionA1, prop1, prop2), (sectionA2, prop3)), (tab2, ...))
Embedded D2W Examples
ActionPageDelegate
ActionPageDelegate•   Binding ‘action’ on an embedded component creates a delegate
ActionPageDelegate•   Binding ‘action’ on an embedded component creates a delegate•   nextPageDelegate specified in the rul...
D2W Custom Components
What are they?
When do I use them?
Types of Custom Components
Types of Custom Components•   Switches
Types of Custom Components•   Switches•   Wrappers
Types of Custom Components•   Switches•   Wrappers•   Integrated
Switches•   D2WCustomComponent•   D2WCustomQueryComponent
Wrappers•   ERD2WEditString•   ERD2WEditToOneRelationship•   ERD2WEditToManyRelationship
Integrated•   ERDControllerButton•   ERDEditHTML•   ERDHasChangesMarker
Voting Demo
Q &A
Upcoming SlideShare
Loading in …5
×

Embedded d2w

910 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
910
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • What is that?\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Embedded d2w

    1. 1. MONTREAL 1/3 JULY 2011Custom and Embedded D2WMixing Direct to Web into existing WO apps
    2. 2. Dashboard Demo
    3. 3. Why?
    4. 4. Why?• Reduce component ‘explosion’
    5. 5. Why?• Reduce component ‘explosion’• CRUD functionality
    6. 6. Why?• Reduce component ‘explosion’• CRUD functionality• Property sorting
    7. 7. Why?• Reduce component ‘explosion’• CRUD functionality• Property sorting• Property grouping
    8. 8. Why?• Reduce component ‘explosion’• CRUD functionality• Property sorting• Property grouping• Display group management
    9. 9. Why?• Reduce component ‘explosion’• CRUD functionality• Property sorting• Property grouping• Display group management• Localization
    10. 10. Why?• Reduce component ‘explosion’• CRUD functionality• Property sorting• Property grouping• Display group management• Localization• ...and more!
    11. 11. How?
    12. 12. Classpath
    13. 13. Classpath• JavaDirectToWeb.framework
    14. 14. Classpath• JavaDirectToWeb.framework• JavaDTWGeneration.framework
    15. 15. Classpath• JavaDirectToWeb.framework• JavaDTWGeneration.framework• EOProject.framework
    16. 16. Classpath• JavaDirectToWeb.framework• JavaDTWGeneration.framework• EOProject.framework• ERDirectToWeb.framework
    17. 17. Classpath• JavaDirectToWeb.framework• JavaDTWGeneration.framework• EOProject.framework• ERDirectToWeb.framework• Your favorite ‘Look’ framework
    18. 18. Resources
    19. 19. Resources• d2w.d2wmodel
    20. 20. Resources• d2w.d2wmodel• user.d2wmodel (optional)
    21. 21. Resources• d2w.d2wmodel• user.d2wmodel (optional)• Localized.lproj folders (optional)
    22. 22. Additional D2W Model Names• er.directtoweb.ERD2WModel.additionalModelNames=(blah.d2w model)
    23. 23. Code
    24. 24. Code• PageWrapper.wo
    25. 25. Code• PageWrapper.wo• ERD2WDirectAction subclass (recommended)
    26. 26. Code• PageWrapper.wo• ERD2WDirectAction subclass (recommended) • Override allowPageConfiguration()
    27. 27. Custom Page Wrapper Name• 0 : frame = 0 => pageWrapperName = "MyPageWrapper" [com.webobjects.directtoweb.Assignment]
    28. 28. Let’s build one!
    29. 29. Embedded D2W
    30. 30. What are they?
    31. 31. Apple Components
    32. 32. Apple Components• D2WEdit
    33. 33. Apple Components• D2WEdit• D2WInspect
    34. 34. Apple Components• D2WEdit• D2WInspect• D2WList
    35. 35. Apple Components• D2WEdit• D2WInspect• D2WList• D2WQuery
    36. 36. Apple Components• D2WEdit• D2WInspect• D2WList• D2WQuery• D2WSelect
    37. 37. WOnder Components
    38. 38. WOnder Components• D2WPick
    39. 39. WOnder Components• D2WPick• ERD2WQuery
    40. 40. WOnder Components• D2WPick• ERD2WQuery• ERXD2WEditRelationship
    41. 41. WOnder Components• D2WPick• ERD2WQuery• ERXD2WEditRelationship• ERXD2WInspect
    42. 42. WOnder Components• D2WPick• ERD2WQuery• ERXD2WEditRelationship• ERXD2WInspect• ERXD2WList
    43. 43. WOnder Components• D2WPick• ERD2WQuery• ERXD2WEditRelationship• ERXD2WInspect• ERXD2WList• ERXD2WPick
    44. 44. WOnder Components• D2WPick• ERD2WQuery• ERXD2WEditRelationship• ERXD2WInspect• ERXD2WList• ERXD2WPick• ERXD2WSelect
    45. 45. When do I use them?
    46. 46. How do I use them?
    47. 47. Embedded D2W List Bindings ListMovie: ERXD2WList { pageConfiguration = "ListMovie"; dataSource = movieDataSource; displayKeys = "((movieInfo, title, category, rated,dateReleased, revenue),(voteInfo, voting.numberOfVotes,voting.runningAverage, castVote))";}
    48. 48. pageConfiguration Format• Basic format is <Task><EntityName>• Entity parsed using ERXEOAccessUtilities.entityMatchingString()• Longest matching entity name wins
    49. 49. pageConfigurations: Don’t ...• Don’t start entity names with keywords found in the rule system: List, Contact, Tab, Wizard, Compare, Calendar, Group, etc...• Don’t use pageConfigurations containing two equal length entity names: MovieRole, RoleBased => ListMovieRoleBased
    50. 50. displayKeys Format
    51. 51. displayKeys Format• Documented! See ERD2WPage javadoc
    52. 52. displayKeys Format• Documented! See ERD2WPage javadoc• Two formats
    53. 53. displayKeys Format(“[tab1]”, “(sectionA1)”, “prop1”, “prop2”, “(sectionA2)”, “prop3”, “[tab2]”, ... )
    54. 54. displayKeys Format(“[tab1]”, “(sectionA1)”, “prop1”, “prop2”, “(sectionA2)”, “prop3”, “[tab2]”, ... )
    55. 55. displayKeys Format(“[tab1]”, “(sectionA1)”, “prop1”, “prop2”, “(sectionA2)”, “prop3”, “[tab2]”, ... )
    56. 56. displayKeys Format(“[tab1]”, “(sectionA1)”, “prop1”, “prop2”, “(sectionA2)”, “prop3”, “[tab2]”, ... )
    57. 57. displayKeys Format(“[tab1]”, “(sectionA1)”, “prop1”, “prop2”, “(sectionA2)”, “prop3”, “[tab2]”, ... )
    58. 58. displayKeys Format((tab1, (sectionA1, prop1, prop2), (sectionA2, prop3)), (tab2, ...))
    59. 59. displayKeys Format((tab1, (sectionA1, prop1, prop2), (sectionA2, prop3)), (tab2, ...))
    60. 60. displayKeys Format((tab1, (sectionA1, prop1, prop2), (sectionA2, prop3)), (tab2, ...))
    61. 61. displayKeys Format((tab1, (sectionA1, prop1, prop2), (sectionA2, prop3)), (tab2, ...))
    62. 62. displayKeys Format((tab1, (sectionA1, prop1, prop2), (sectionA2, prop3)), (tab2, ...))
    63. 63. Embedded D2W Examples
    64. 64. ActionPageDelegate
    65. 65. ActionPageDelegate• Binding ‘action’ on an embedded component creates a delegate
    66. 66. ActionPageDelegate• Binding ‘action’ on an embedded component creates a delegate• nextPageDelegate specified in the rule system is ignored
    67. 67. D2W Custom Components
    68. 68. What are they?
    69. 69. When do I use them?
    70. 70. Types of Custom Components
    71. 71. Types of Custom Components• Switches
    72. 72. Types of Custom Components• Switches• Wrappers
    73. 73. Types of Custom Components• Switches• Wrappers• Integrated
    74. 74. Switches• D2WCustomComponent• D2WCustomQueryComponent
    75. 75. Wrappers• ERD2WEditString• ERD2WEditToOneRelationship• ERD2WEditToManyRelationship
    76. 76. Integrated• ERDControllerButton• ERDEditHTML• ERDHasChangesMarker
    77. 77. Voting Demo
    78. 78. Q &A

    ×