RectSelectItem.ts 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /*
  2. * ********************************************************************************************************************
  3. *
  4. * :*$@@%$*: ;: ;; ;;
  5. * :@@%! :!@@%: %! ;%%@@%$ =@@@@@@@%; @%@@@%%%%@@@@@
  6. * :@%; :$= %%$$$%$$ ;$$ ;$@= !@$
  7. * =@! %! @ $=;% !@@@%: !$$$$$$$$$$$$$$=
  8. * =@* %! @ $= % %@= =%@! %=
  9. * *$%%! @@= ;=$%%%$*: %! @ $= % =%%%%%%@$ *%: =%
  10. * %@@!: !@@@%=$@@@@%! :*@@$: %! @ $= % $* ;@ @* :%*
  11. * ;@@! ;!!!;: ;@%: =======@%========* @ $$ % $%*****$@ :@$=*********=@$
  12. * $@* ;@@@%=!: *@*
  13. * =@$ ;;;!=%@@@@=! =@!
  14. * %@$: =@%: :*@@@* %@= Copyright (c) 2016-2019. 北京上格云技术有限公司
  15. * ;%@@$=$@@%* *@@@$=%@@%;
  16. * ::;:: ::;:: All rights reserved.
  17. *
  18. * ********************************************************************************************************************
  19. */
  20. import { SGraphyItem } from "@saga-web/graphy/lib";
  21. import { SPainter, SPoint } from "@saga-web/draw/lib";
  22. import { SMouseEvent } from "@saga-web/base/lib";
  23. import { ItemOrder } from "../types/ItemOrder";
  24. import { Opt } from "../types/Opt";
  25. /**
  26. * 矩形选择item
  27. *
  28. * @author 郝建龙
  29. */
  30. export class RectSelectItem extends SGraphyItem {
  31. /** 起点 */
  32. startPoint: SPoint = new SPoint();
  33. /** 终点 */
  34. endPoint: SPoint = new SPoint();
  35. /**
  36. * 构造函数
  37. *
  38. * @param parent 指向父对象
  39. * @param point 起点数据
  40. */
  41. constructor(parent: SGraphyItem | null, point: SPoint) {
  42. super(parent);
  43. this.startPoint = point;
  44. this.endPoint = new SPoint(point.x, point.y);
  45. this.update();
  46. this.zOrder = ItemOrder.rectSelectOrder;
  47. } // Constructor
  48. /**
  49. * 鼠标移动事件
  50. *
  51. * @param event 事件参数
  52. * @return boolean
  53. */
  54. onMouseMove(event: SMouseEvent): boolean {
  55. this.endPoint.x = event.x;
  56. this.endPoint.y = event.y;
  57. this.update();
  58. return true;
  59. } // Function onMouseMove()
  60. /**
  61. * Item绘制操作
  62. *
  63. * @param painter painter对象
  64. */
  65. onDraw(painter: SPainter): void {
  66. painter.pen.lineWidth = painter.toPx(2);
  67. painter.pen.color = Opt.rectSelectOutColor;
  68. painter.brush.color = Opt.rectSelectInColor;
  69. painter.drawRect(this.startPoint, this.endPoint);
  70. } // Function onDraw()
  71. } // RectSelectItem