Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

VOr.java 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /*
  2. @ITMillApache2LicenseForJavaFiles@
  3. */
  4. /**
  5. *
  6. */
  7. package com.vaadin.terminal.gwt.client.ui.dd;
  8. import com.vaadin.terminal.gwt.client.ApplicationConnection;
  9. import com.vaadin.terminal.gwt.client.UIDL;
  10. /**
  11. * TODO implementation could now be simplified/optimized
  12. *
  13. */
  14. final public class VOr extends VAcceptCriterion {
  15. private boolean b1;
  16. private boolean b2;
  17. private VAcceptCriterion crit1;
  18. private VAcceptCriterion crit2;
  19. @Override
  20. public void accept(VDragEvent drag, UIDL configuration,
  21. VAcceptCallback callback) {
  22. if (crit1 == null) {
  23. crit1 = getCriteria(drag, configuration, 0);
  24. crit2 = getCriteria(drag, configuration, 1);
  25. if (crit1 == null || crit2 == null) {
  26. ApplicationConnection.getConsole().log(
  27. "Or criteria didn't found a chidl criteria");
  28. return;
  29. }
  30. }
  31. b1 = false;
  32. b2 = false;
  33. VAcceptCallback accept1cb = new VAcceptCallback() {
  34. public void accepted(VDragEvent event) {
  35. b1 = true;
  36. }
  37. };
  38. VAcceptCallback accept2cb = new VAcceptCallback() {
  39. public void accepted(VDragEvent event) {
  40. b2 = true;
  41. }
  42. };
  43. crit1.accept(drag, configuration.getChildUIDL(0), accept1cb);
  44. crit2.accept(drag, configuration.getChildUIDL(1), accept2cb);
  45. if (b1 || b2) {
  46. callback.accepted(drag);
  47. }
  48. }
  49. private VAcceptCriterion getCriteria(VDragEvent drag, UIDL configuration,
  50. int i) {
  51. UIDL childUIDL = configuration.getChildUIDL(i);
  52. return VAcceptCriteria.get(childUIDL.getStringAttribute("name"));
  53. }
  54. @Override
  55. public boolean needsServerSideCheck(VDragEvent drag, UIDL criterioUIDL) {
  56. return false; // TODO enforce on server side
  57. }
  58. @Override
  59. public boolean validates(VDragEvent drag, UIDL configuration) {
  60. return false; // not used here
  61. }
  62. }