You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

components-overview.asciidoc 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. ---
  2. title: Overview
  3. order: 1
  4. layout: page
  5. ---
  6. [[components.overview]]
  7. = Overview
  8. Vaadin provides a comprehensive set of user interface components and allows you
  9. to define custom components.
  10. The component hierarchy of Vaadin is presented in the next four diagrams:
  11. * <<figure.uicomponents>>
  12. illustrates the inheritance
  13. hierarchy of the UI component classes and interfaces not bound directly to
  14. business objects.
  15. * <<figure.uifields>>
  16. presents fields bound to single values
  17. * <<figure.uiselects>>
  18. presents components that show a list of data and allow selection
  19. * <<figure.uicontainers>>
  20. layouts and other component containers
  21. Interfaces are displayed
  22. with a dotted outline, abstract classes in gray, and regular classes in blue.
  23. ////
  24. TODO outdated information. Uncomment when fixed.
  25. An annotated
  26. version of the diagram is featured in the __Vaadin Cheat Sheet__.
  27. ////
  28. [[figure.uicomponents]]
  29. .Basic Components
  30. image::img/component-class-hierarchy.png[width=100%, scaledwidth=100%]
  31. [[figure.uifields]]
  32. .Field Components
  33. image::img/field-class-hierarchy.png[width=100%, scaledwidth=100%]
  34. [[figure.uiselects]]
  35. .Selection Components
  36. image::img/selects-class-hierarchy.png[width=100%, scaledwidth=100%]
  37. [[figure.uicontainers]]
  38. .Layouts and Component Containers
  39. image::img/component-container-class-hierarchy.png[width=100%, scaledwidth=100%]
  40. ((("[classname]#Component#")))
  41. The [classname]#Component# is interface implemented by all components.
  42. ((("[classname]#AbstractComponent#")))
  43. In practice, all components extend the [classname]#AbstractComponent#
  44. abstract class.
  45. ((("[classname]#AbstractField#")))
  46. ((("[classname]#AbstractComponentContainer#")))
  47. ((("[classname]#AbstractListing#")))
  48. There are three more specific types of components.
  49. Field Components:: allow user to edit a value in the UI. All extend [classname]#AbstractField#. Field components are described in detail in <<components-fields#components.fields,"Field Components">>.
  50. Selection Component:: show a list of data that the user can select from. All extend [classname]#AbstractListing#. Selection components are described in detail in
  51. <<components-selection#components.selection,"Selection Components">>.
  52. Layouts and Component Containers:: Components that can contain other components. All layouts and containers implement the [interfacename]#HasComponents# interface. Layout components are described in detail in
  53. <<../layout/layout-overview#layout.overview,"Managing
  54. Layout">>.
  55. ((("Sampler")))
  56. ((("JavaDoc")))
  57. You can browse the built-in UI components of Vaadin library in the Sampler
  58. application of the Vaadin Demo. The Sampler shows a description, JavaDoc
  59. documentation, and a code samples for each of the components.
  60. In addition to the built-in components, many components are available as
  61. add-ons, either from the Vaadin Directory or from independent sources. Both
  62. commercial and free components exist. The installation of add-ons is described
  63. in <<../addons/addons-overview#addons.overview,"Using
  64. Vaadin Add-ons">>.
  65. ////
  66. TODO outdated information. Uncomment when fixed.
  67. [NOTE]
  68. .Vaadin Cheat Sheet and Refcard
  69. ====
  70. <<figure.uicomponents>> is included in the Vaadin Cheat Sheet that illustrates
  71. the basic relationship hierarchy of the user interface components and data
  72. binding classes and interfaces. You can download it at http://vaadin.com/book.
  73. The diagram is also included in the six-page DZone Refcard, which you can find
  74. at https://vaadin.com/refcard.
  75. ====
  76. ////