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.

ServerSideCriterion.java 1.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /*
  2. @VaadinApache2LicenseForJavaFiles@
  3. */
  4. package com.vaadin.event.dd.acceptcriteria;
  5. import java.io.Serializable;
  6. import com.vaadin.event.Transferable;
  7. import com.vaadin.terminal.PaintException;
  8. import com.vaadin.terminal.PaintTarget;
  9. /**
  10. * Parent class for criteria which are verified on the server side during a drag
  11. * operation to accept/discard dragged content (presented by
  12. * {@link Transferable}).
  13. * <p>
  14. * Subclasses should implement the
  15. * {@link AcceptCriterion#accept(com.vaadin.event.dd.DragAndDropEvent)} method.
  16. * <p>
  17. * As all server side state can be used to make a decision, this is more
  18. * flexible than {@link ClientSideCriterion}. However, this does require
  19. * additional requests from the browser to the server during a drag operation.
  20. *
  21. * @see AcceptCriterion
  22. * @see ClientSideCriterion
  23. *
  24. * @since 6.3
  25. */
  26. public abstract class ServerSideCriterion implements Serializable,
  27. AcceptCriterion {
  28. private static final long serialVersionUID = 2128510128911628902L;
  29. @Override
  30. public final boolean isClientSideVerifiable() {
  31. return false;
  32. }
  33. @Override
  34. public void paint(PaintTarget target) throws PaintException {
  35. target.startTag("-ac");
  36. target.addAttribute("name", getIdentifier());
  37. paintContent(target);
  38. target.endTag("-ac");
  39. }
  40. public void paintContent(PaintTarget target) {
  41. }
  42. @Override
  43. public void paintResponse(PaintTarget target) throws PaintException {
  44. }
  45. protected String getIdentifier() {
  46. return ServerSideCriterion.class.getCanonicalName();
  47. }
  48. }