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.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*
  2. @VaadinApache2LicenseForJavaFiles@
  3. */
  4. /**
  5. *
  6. */
  7. package com.vaadin.event.dd.acceptcriteria;
  8. import com.vaadin.event.dd.DragAndDropEvent;
  9. import com.vaadin.terminal.PaintException;
  10. import com.vaadin.terminal.PaintTarget;
  11. /**
  12. * A compound criterion that accepts the drag if all of its criteria accepts the
  13. * drag.
  14. *
  15. * @see Or
  16. *
  17. * @since 6.3
  18. *
  19. */
  20. public class And extends ClientSideCriterion {
  21. private static final long serialVersionUID = -5242574480825471748L;
  22. protected ClientSideCriterion[] criteria;
  23. /**
  24. *
  25. * @param criteria
  26. * criteria of which the And criterion will be composed
  27. */
  28. public And(ClientSideCriterion... criteria) {
  29. this.criteria = criteria;
  30. }
  31. @Override
  32. public void paintContent(PaintTarget target) throws PaintException {
  33. super.paintContent(target);
  34. for (ClientSideCriterion crit : criteria) {
  35. crit.paint(target);
  36. }
  37. }
  38. @Override
  39. public boolean accept(DragAndDropEvent dragEvent) {
  40. for (ClientSideCriterion crit : criteria) {
  41. if (!crit.accept(dragEvent)) {
  42. return false;
  43. }
  44. }
  45. return true;
  46. }
  47. }