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.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. <<figure.uicomponents>> illustrates the inheritance
  10. hierarchy of the UI component classes and interfaces. Interfaces are displayed
  11. in gray, abstract classes in orange, and regular classes in blue. An annotated
  12. version of the diagram is featured in the __Vaadin Cheat Sheet__.
  13. [[figure.uicomponents]]
  14. .User Interface Component Class Hierarchy
  15. image::img/component-diagram-hi.png[]
  16. ((("[classname]#Component#")))
  17. At the top of the interface hierarchy, we have the [classname]#Component#
  18. interface.
  19. ((("[classname]#AbstractComponent#")))
  20. At the top of the class hierarchy, we have the [classname]#AbstractComponent#
  21. class.
  22. ((("[classname]#AbstractField#")))
  23. ((("[classname]#AbstractComponentContainer#")))
  24. It is inherited by two other abstract classes: [classname]#AbstractField#,
  25. inherited further by field components, and
  26. [classname]#AbstractComponentContainer#, inherited by various container and
  27. layout components. Components that are not bound to a content data model, such
  28. as labels and links, inherit [classname]#AbstractComponent# directly.
  29. ((("layout")))
  30. ((("[classname]#Layout#")))
  31. The layout of the various components in a window is controlled, logically, by
  32. layout components, just like in conventional Java UI toolkits for desktop
  33. applications. In addition, with the [classname]#CustomLayout# component, you can
  34. write a custom layout as an HTML template that includes the locations of any
  35. contained components. Looking at the inheritance diagram, we can see that layout
  36. components inherit the [classname]#AbstractComponentContainer# and the
  37. [classname]#Layout# interface. Layout components are described in detail in
  38. <<dummy/../../../framework/layout/layout-overview.asciidoc#layout.overview,"Managing
  39. Layout">>.
  40. ((("[classname]#Window#")))
  41. Looking at it from the perspective of an object hierarchy, we would have a
  42. [classname]#Window# object, which contains a hierachy of layout components,
  43. which again contain other layout components, field components, and other visible
  44. components.
  45. ((("Sampler")))
  46. ((("JavaDoc")))
  47. You can browse the built-in UI components of Vaadin library in the Sampler
  48. application of the Vaadin Demo. The Sampler shows a description, JavaDoc
  49. documentation, and a code samples for each of the components.
  50. In addition to the built-in components, many components are available as
  51. add-ons, either from the Vaadin Directory or from independent sources. Both
  52. commercial and free components exist. The installation of add-ons is described
  53. in
  54. <<dummy/../../../framework/addons/addons-overview.asciidoc#addons.overview,"Using
  55. Vaadin Add-ons">>.
  56. [NOTE]
  57. .Vaadin Cheat Sheet and Refcard
  58. ====
  59. <<figure.uicomponents>> is included in the Vaadin Cheat Sheet that illustrates
  60. the basic relationship hierarchy of the user interface components and data
  61. binding classes and interfaces. You can download it at http://vaadin.com/book.
  62. The diagram is also included in the six-page DZone Refcard, which you can find
  63. at https://vaadin.com/refcard.
  64. ====