draw-point.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. var isFn = function (x) {
  2. return typeof x === 'function';
  3. };
  4. /**
  5. * Handles the drawing of a point.
  6. *
  7. * @private
  8. * @function draw
  9. *
  10. * @param {object} params
  11. * Parameters.
  12. *
  13. * @todo
  14. * - add type checking.
  15. */
  16. var draw = function draw(params) {
  17. var point = this,
  18. graphic = point.graphic,
  19. animatableAttribs = params.animatableAttribs,
  20. onComplete = params.onComplete,
  21. css = params.css,
  22. renderer = params.renderer;
  23. if (point.shouldDraw()) {
  24. if (!graphic) {
  25. point.graphic = graphic =
  26. renderer[params.shapeType](params.shapeArgs).add(params.group);
  27. }
  28. graphic
  29. .css(css)
  30. .attr(params.attribs)
  31. .animate(
  32. animatableAttribs,
  33. params.isNew ? false : undefined,
  34. onComplete
  35. );
  36. } else if (graphic) {
  37. graphic.animate(animatableAttribs, undefined, function () {
  38. point.graphic = graphic = graphic.destroy();
  39. if (isFn(onComplete)) {
  40. onComplete();
  41. }
  42. });
  43. }
  44. if (graphic) {
  45. graphic.addClass(point.getClassName(), true);
  46. }
  47. };
  48. export default draw;