point.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. var point = (function() {
  2. // dashed line
  3. var tool = {};
  4. var states = ["center"];
  5. var state = undefined;
  6. var points = [0, 0];
  7. var labels = [
  8. "a",
  9. "b",
  10. "c",
  11. "d",
  12. "e",
  13. "f",
  14. "g",
  15. "h",
  16. "i",
  17. "j",
  18. "k",
  19. "l",
  20. "m",
  21. "n",
  22. "o",
  23. "p",
  24. "q",
  25. "r",
  26. "s",
  27. "t",
  28. "u",
  29. "v",
  30. "w",
  31. "x",
  32. "y",
  33. "z"
  34. ];
  35. var usedLabels = [];
  36. function draw() {
  37. if (state == undefined) {
  38. state = states[0];
  39. app.setStatus("Selecione o centro do Ponto");
  40. } else if (state == states[0]) {
  41. var layer = app.currentLayer();
  42. var pos = app.pos();
  43. points[0] = pos.x;
  44. points[1] = pos.y;
  45. var p = points.slice();
  46. var label = labels[usedLabels.length];
  47. usedLabels.push(label);
  48. var group = new Konva.Group({
  49. draggable: true,
  50. resizeEnabled: false
  51. });
  52. var circle = new Konva.Circle({
  53. x: p[0],
  54. y: p[1],
  55. radius: 5,
  56. fill: "#42f572",
  57. stroke: "#33a351",
  58. strokeWidth: 1,
  59. strokeScaleEnabled: false,
  60. draggable: false,
  61. resizeEnabled: false,
  62. transformEnabled: false
  63. });
  64. var text = new Konva.Text({
  65. x: p[0] + 10,
  66. y: p[1] - 10,
  67. text: label.toUpperCase(),
  68. fontSize: 12,
  69. fontFamily: "Calibri",
  70. fill: "#434a45",
  71. draggable: false,
  72. resizeEnabled: false,
  73. transformEnabled: false
  74. });
  75. group.add(circle);
  76. group.add(text);
  77. layer.add(group);
  78. app.stage.draw();
  79. clearState();
  80. app.clearSelectedTool();
  81. app.setStatus("");
  82. }
  83. }
  84. function bootstrap() {
  85. app.tools.push(tool);
  86. }
  87. function click(id) {
  88. if (state == states[0]) {
  89. app.clearSelectedTool();
  90. clearState();
  91. return;
  92. }
  93. app.setSelectedTool(tool);
  94. state = states[0];
  95. app.setStatus("Selecione o centro da Ponto");
  96. }
  97. function clearState() {
  98. state = undefined;
  99. }
  100. tool = {
  101. id: "point",
  102. title: "Ponto",
  103. icon: "point",
  104. click: click,
  105. draw: draw,
  106. points: points
  107. };
  108. bootstrap();
  109. return {
  110. draw: draw,
  111. click: click
  112. };
  113. })();