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-button.asciidoc 2.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. ---
  2. title: Button
  3. order: 14
  4. layout: page
  5. ---
  6. [[components.button]]
  7. = [classname]#Button#
  8. ifdef::web[]
  9. [.sampler]
  10. image:{live-demo-image}[alt="Live Demo", link="http://demo.vaadin.com/sampler/#ui/interaction/button"]
  11. endif::web[]
  12. The [classname]#Button# component is normally used for initiating some action,
  13. such as finalizing input in forms. When the user clicks a button, a
  14. [classname]#Button.ClickEvent# is fired, which can be handled by adding a __click listener__
  15. using either the [methodname]#onClick()# or the [methodname]#addClickListener()# method.
  16. You can handle button clicks with an anonymous class as follows:
  17. [source, java]
  18. ----
  19. Button button = new Button("Do not press this button");
  20. button.addClickListener(clickEvent ->
  21. Notification.show("Do not press this button again"));
  22. ----
  23. See the http://demo.vaadin.com/book-examples-vaadin7/book#component.button.basic[on-line example, window="_blank"].
  24. The listener can also be given in the constructor, which is often perhaps simpler.
  25. The button component can be styled in many ways, as illustrated in <<figure.component.button.basic>>.
  26. [[figure.component.button.basic]]
  27. .Button in Different Styles of Valo Theme
  28. image::img/button-example1.png[width=70%, scaledwidth=100%]
  29. If you handle several buttons in the same listener, you can differentiate between
  30. them by comparing the [classname]#Button# object reference returned by the [methodname]#getButton()#
  31. method of [classname]#Button.ClickEvent# to a kept reference. For a detailed description
  32. of these patterns together with some examples, please see
  33. <<dummy/../../../framework/architecture/architecture-events#architecture.events,"Events and Listeners">>.
  34. == CSS Style Rules
  35. [source, css]
  36. ----
  37. .v-button { }
  38. .v-button-wrap { }
  39. .v-button-caption { }
  40. ----
  41. A button has an overall [literal]#++v-button++# style. The caption has
  42. [literal]#++v-button-caption++# style. There is also an intermediate wrap
  43. element, which may help in styling in some cases.
  44. Some built-in themes contain a small style, which you can enable by adding
  45. [parameter]#Reindeer.BUTTON_SMALL#, etc. The [classname]#BaseTheme# also has a
  46. [parameter]#BUTTON_LINK# style, which makes the button look like a hyperlink.