summaryrefslogtreecommitdiffstats
path: root/documentation/components/components-overview.asciidoc
blob: f4d259306a8186497bfd18b3ee50767ab4873dd6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
---
title: Overview
order: 1
layout: page
---

[[components.overview]]
= Overview

Vaadin provides a comprehensive set of user interface components and allows you
to define custom components.

The component hierarchy of Vaadin is presented in the next four diagrams:

* <<figure.uicomponents>>
illustrates the inheritance
hierarchy of the UI component classes and interfaces not bound directly to
business objects.

* <<figure.uifields>>
presents fields bound to single values

* <<figure.uiselects>>
presents components that show a list of data and allow selection

* <<figure.uicontainers>>
layouts and other component containers

Interfaces are displayed
with a dotted outline, abstract classes in gray, and regular classes in blue.
////
TODO outdated information. Uncomment when fixed.
 An annotated
version of the diagram is featured in the __Vaadin Cheat Sheet__.
////


[[figure.uicomponents]]
.Basic Components
image::img/component-class-hierarchy.png[width=100%, scaledwidth=100%]

[[figure.uifields]]
.Field Components
image::img/field-class-hierarchy.png[width=100%, scaledwidth=100%]

[[figure.uiselects]]
.Selection Components
image::img/selects-class-hierarchy.png[width=100%, scaledwidth=100%]

[[figure.uicontainers]]
.Layouts and Component Containers
image::img/component-container-class-hierarchy.png[width=100%, scaledwidth=100%]


((("[classname]#Component#")))
The [classname]#Component# is interface implemented by all components.
((("[classname]#AbstractComponent#")))
In practice, all components extend the [classname]#AbstractComponent#
abstract class.

((("[classname]#AbstractField#")))
((("[classname]#AbstractComponentContainer#")))
((("[classname]#AbstractListing#")))
There are three more specific types of components.

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">>.

Selection Component:: show a list of data that the user can select from. All extend [classname]#AbstractListing#. Selection components are described in detail in
<<components-selection#components.selection,"Selection Components">>.

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
<<../layout/layout-overview#layout.overview,"Managing
Layout">>.

((("Sampler")))
((("JavaDoc")))
You can browse the built-in UI components of Vaadin library in the Sampler
application of the Vaadin Demo. The Sampler shows a description, JavaDoc
documentation, and a code samples for each of the components.

In addition to the built-in components, many components are available as
add-ons, either from the Vaadin Directory or from independent sources. Both
commercial and free components exist. The installation of add-ons is described
in <<../addons/addons-overview#addons.overview,"Using
Vaadin Add-ons">>.

////
TODO outdated information. Uncomment when fixed.
[NOTE]
.Vaadin Cheat Sheet and Refcard
====
<<figure.uicomponents>> is included in the Vaadin Cheat Sheet that illustrates
the basic relationship hierarchy of the user interface components and data
binding classes and interfaces. You can download it at http://vaadin.com/book.

The diagram is also included in the six-page DZone Refcard, which you can find
at https://vaadin.com/refcard.

====
////
-content> <fo:static-content flow-name="xsl-region-after" > <fo:block font-size="10pt" font-family="sans-serif" line-height="12pt" space-before.optimum="6pt" text-align="end" color="blue">Page #</fo:block> </fo:static-content> <fo:flow flow-name="xsl-region-body" > <!-- Block 0 --> <fo:block font-size="12pt" font-family="sans-serif" line-height="15pt" space-after.optimum="3pt" text-align="start" background-color="yellow" span="none"> <fo:inline color="green" >Block 0:</fo:inline> The Extensible Markup Language (XML) is a subset of SGML that is completely described in this document. Its goal is to enable generic SGML to be served, received, and processed on the Web in the way that is now possible with HTML. XML has been designed for ease of implementation and for interoperability with both SGML and HTML. For further information read normal.pdf. XML has associated with it a great number of other standards, most of them under W3C (World-Wide Web Consortium) auspices. Among these are XML Namespaces, XML Pointer, XPath, XSLT, XHTML, SVG, RELAX, SOAP, and any number of others. This file has been prepared using formatting objects, an XML vocabulary described in the XSL specification of October 18, 2000. Formatting objects are used to specify pagination and composition, and are intended for high-quality, precision layout-driven formatting. </fo:block> <!-- Block 1 --> <fo:block font-size="12pt" font-family="sans-serif" line-height="15pt" space-after.optimum="3pt" text-align="start" background-color="yellow" span="none"> <fo:inline color="green" >Block 1:</fo:inline> The Extensible Markup Language (XML) is a subset of SGML that is completely described in this document. Its goal is to enable generic SGML to be served, received, and processed on the Web in the way that is now possible with HTML. XML has been designed for ease of implementation and for interoperability with both SGML and HTML. For further information read normal.pdf. XML has associated with it a great number of other standards, most of them under W3C (World-Wide Web Consortium) auspices. Among these are XML Namespaces, XML Pointer, XPath, XSLT, XHTML, SVG, RELAX, SOAP, and any number of others. This file has been prepared using formatting objects, an XML vocabulary described in the XSL specification of October 18, 2000. Formatting objects are used to specify pagination and composition, and are intended for high-quality, precision layout-driven formatting. </fo:block> <!-- Block 2 --> <fo:block font-size="12pt" font-family="sans-serif" line-height="15pt" space-after.optimum="3pt" text-align="start" background-color="yellow" span="none"> <fo:inline color="green" >Block 2:</fo:inline> The Extensible Markup Language (XML) is a subset of SGML that is completely described in this document. Its goal is to enable generic SGML to be served, received, and processed on the Web in the way that is now possible with HTML. XML has been designed for ease of implementation and for interoperability with both SGML and HTML. For further information read normal.pdf. </fo:block> <!-- Block 3 --> <fo:block font-size="12pt" font-family="sans-serif" line-height="15pt" space-after.optimum="3pt" text-align="start" background-color="yellow" span="none"> <fo:inline color="green" >Block 3:</fo:inline> The Extensible Markup Language (XML) is a subset of SGML that is completely described in this document. Its goal is to enable generic SGML to be served, received, and processed on the Web in the way that is now possible with HTML. XML has been designed for ease of implementation and for interoperability with both SGML and HTML. For further information read normal.pdf. </fo:block> <!-- Block 4 --> <fo:block font-size="12pt" font-family="sans-serif" line-height="15pt" space-after.optimum="3pt" text-align="start" background-color="yellow" span="all"> <fo:inline color="red" >Block 4:</fo:inline> The Extensible Markup Language (XML) is a subset of SGML that is completely described in this document. Its goal is to enable generic SGML to be served, received, and processed on the Web in the way that is now possible with HTML. XML has been designed for ease of implementation and for interoperability with both SGML and HTML. For further information read normal.pdf. </fo:block> <!-- Block 5 --> <fo:block font-size="12pt" font-family="sans-serif" line-height="15pt" space-after.optimum="3pt" text-align="start" background-color="yellow" span="none"> <fo:inline color="green" >Block 5:</fo:inline> The Extensible Markup Language (XML) is a subset of SGML that is completely described in this document. Its goal is to enable generic SGML to be served, received, and processed on the Web in the way that is now possible with HTML. XML has been designed for ease of implementation and for interoperability with both SGML and HTML. For further information read normal.pdf. </fo:block> <!-- Block 6 --> <fo:block font-size="12pt" font-family="sans-serif" line-height="15pt" space-after.optimum="3pt" text-align="start" background-color="yellow" span="none"> <fo:inline color="green" >Block 6:</fo:inline> The Extensible Markup Language (XML) is a subset of SGML that is completely described in this document. Its goal is to enable generic SGML to be served, received, and processed on the Web in the way that is now possible with HTML. XML has been designed for ease of implementation and for interoperability with both SGML and HTML. For further information read normal.pdf. XML has associated with it a great number of other standards, most of them under W3C (World-Wide Web Consortium) auspices. Among these are XML Namespaces, XML Pointer, XPath, XSLT, XHTML, SVG, RELAX, SOAP, and any number of others. This file has been prepared using formatting objects, an XML vocabulary described in the XSL specification of October 18, 2000. Formatting objects are used to specify pagination and composition, and are intended for high-quality, precision layout-driven formatting. </fo:block> <!-- Block 7 --> <fo:block font-size="12pt" font-family="sans-serif" line-height="15pt" space-after.optimum="3pt" text-align="start" background-color="yellow" span="all"> <fo:inline color="red" >Block 7:</fo:inline> The Extensible Markup Language (XML) is a subset of SGML that is completely described in this document. Its goal is to enable generic SGML to be served, received, and processed on the Web in the way that is now possible with HTML. XML has been designed for ease of implementation and for interoperability with both SGML and HTML. For further information read normal.pdf. XML has associated with it a great number of other standards, most of them under W3C (World-Wide Web Consortium) auspices. Among these are XML Namespaces, XML Pointer, XPath, XSLT, XHTML, SVG, RELAX, SOAP, and any number of others. This file has been prepared using formatting objects, an XML vocabulary described in the XSL specification of October 18, 2000. Formatting objects are used to specify pagination and composition, and are intended for high-quality, precision layout-driven formatting. </fo:block> </fo:flow> </fo:page-sequence> </fo:root>