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

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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 with a
  15. [interfacename]#Button.ClickListener# in the [methodname]#buttonClick()# 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(new Button.ClickListener() {
  21. public void buttonClick(ClickEvent event) {
  22. Notification.show("Do not press this button again");
  23. }
  24. });
  25. // Java 8
  26. button.addClickListener(click ->
  27. Notification.show("Do not press this button again"));
  28. ----
  29. See the http://demo.vaadin.com/book-examples-vaadin7/book#component.button.basic[on-line example, window="_blank"].
  30. The listener can also be given in the constructor, which is often perhaps simpler.
  31. The button component can be styled in many ways, as illustrated in <<figure.component.button.basic>>.
  32. [[figure.component.button.basic]]
  33. .Button in Different Styles of Valo Theme
  34. image::img/button-example1.png[width=70%, scaledwidth=100%]
  35. If you handle several buttons in the same listener, you can differentiate
  36. between them either by comparing the [classname]#Button# object reference
  37. returned by the [methodname]#getButton()# method of
  38. [classname]#Button.ClickEvent# to a kept reference. For a detailed description
  39. of these patterns together with some examples, please see
  40. <<dummy/../../../framework/architecture/architecture-events#architecture.events,"Events and Listeners">>.
  41. == CSS Style Rules
  42. [source, css]
  43. ----
  44. .v-button { }
  45. .v-button-wrap { }
  46. .v-button-caption { }
  47. ----
  48. A button has an overall [literal]#++v-button++# style. The caption has
  49. [literal]#++v-button-caption++# style. There is also an intermediate wrap
  50. element, which may help in styling in some cases.
  51. Some built-in themes contain a small style, which you can enable by adding
  52. [parameter]#Reindeer.BUTTON_SMALL#, etc. The [classname]#BaseTheme# also has a
  53. [parameter]#BUTTON_LINK# style, which makes the button look like a hyperlink.