您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

ContainsDataFlavor.java 1.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*
  2. @ITMillApache2LicenseForJavaFiles@
  3. */
  4. /**
  5. *
  6. */
  7. package com.vaadin.event.dd.acceptcriteria;
  8. import com.vaadin.event.Transferable;
  9. import com.vaadin.event.dd.DragAndDropEvent;
  10. import com.vaadin.terminal.PaintException;
  11. import com.vaadin.terminal.PaintTarget;
  12. import com.vaadin.terminal.gwt.client.ui.dd.VContainsDataFlavor;
  13. /**
  14. * A Criterion that checks whether {@link Transferable} contains given data
  15. * flavor. The developer might for example accept the incoming data only if it
  16. * contains "Url" or "Text".
  17. *
  18. * @since 6.3
  19. */
  20. @ClientCriterion(VContainsDataFlavor.class)
  21. public class ContainsDataFlavor extends ClientSideCriterion {
  22. private String dataFlavorId;
  23. /**
  24. * Constructs a new instance of {@link ContainsDataFlavor}.
  25. *
  26. * @param dataFlawor
  27. * the type of data that will be checked from
  28. * {@link Transferable}
  29. */
  30. public ContainsDataFlavor(String dataFlawor) {
  31. dataFlavorId = dataFlawor;
  32. }
  33. @Override
  34. public void paintContent(PaintTarget target) throws PaintException {
  35. super.paintContent(target);
  36. target.addAttribute("p", dataFlavorId);
  37. }
  38. public boolean accept(DragAndDropEvent dragEvent) {
  39. return dragEvent.getTransferable().getDataFlavors()
  40. .contains(dataFlavorId);
  41. }
  42. @Override
  43. protected String getIdentifier() {
  44. // extending classes use client side implementation from this class
  45. return ContainsDataFlavor.class.getCanonicalName();
  46. }
  47. }