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.

Log.java 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package com.vaadin.tests.util;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import com.vaadin.shared.ui.ContentMode;
  5. import com.vaadin.ui.Label;
  6. import com.vaadin.ui.VerticalLayout;
  7. public class Log extends VerticalLayout {
  8. List<Label> eventLabels = new ArrayList<>();
  9. private boolean numberLogRows = true;
  10. private int nextLogNr = 1;
  11. public Log(int nr) {
  12. setSpacing(false);
  13. setMargin(false);
  14. for (int i = 0; i < nr; i++) {
  15. Label l = createEventLabel();
  16. l.setId("Log_row_" + i);
  17. eventLabels.add(l);
  18. addComponent(l);
  19. }
  20. setId("Log");
  21. setCaption("Events:");
  22. }
  23. /**
  24. * Clears the rows and reset the row number to zero.
  25. */
  26. public Log clear() {
  27. for (Label l : eventLabels) {
  28. l.setValue("&nbsp;");
  29. }
  30. nextLogNr = 0;
  31. return this;
  32. }
  33. public Log log(String event) {
  34. int nr = eventLabels.size();
  35. for (int i = nr - 1; i > 0; i--) {
  36. eventLabels.get(i).setValue(eventLabels.get(i - 1).getValue());
  37. }
  38. String msg = event;
  39. if (numberLogRows) {
  40. msg = nextLogNr + ". " + msg;
  41. nextLogNr++;
  42. }
  43. eventLabels.get(0).setValue(msg);
  44. System.out.println(event);
  45. return this;
  46. }
  47. private Label createEventLabel() {
  48. Label l = new Label("&nbsp;", ContentMode.HTML);
  49. l.setWidth(null);
  50. return l;
  51. }
  52. public Log setNumberLogRows(boolean numberLogRows) {
  53. this.numberLogRows = numberLogRows;
  54. return this;
  55. }
  56. }