|
@@ -5,6 +5,8 @@ import { app as App } from "../../../app";
|
|
|
import { PointModel } from "../models/point-model";
|
|
|
import { DrawerAggregator } from "../../../core/drawers/drawer-aggregator";
|
|
|
import { stageManager as Stages } from "../../../core/application/stage-manager";
|
|
|
+import { LineSegmentDrawer } from "../../line-segment-component/drawers/line-segment-drawer";
|
|
|
+import { objects } from "../../../core/application/objects";
|
|
|
|
|
|
const HOVER_STYLE = {
|
|
|
fill: "#9bc364",
|
|
@@ -25,7 +27,16 @@ export class PointDrawer extends Drawer {
|
|
|
this.states = ["center"];
|
|
|
}
|
|
|
|
|
|
- draw() {
|
|
|
+ draw(e) {
|
|
|
+ if (
|
|
|
+ e != undefined &&
|
|
|
+ e.target != undefined &&
|
|
|
+ e.target.attrs != undefined &&
|
|
|
+ e.target.attrs.container == undefined
|
|
|
+ ) {
|
|
|
+ this.resolveTarget(e.target);
|
|
|
+ return;
|
|
|
+ }
|
|
|
if (this.state == undefined) {
|
|
|
super.setState(this.states[0]);
|
|
|
App.setStatus("Selecione o centro do Ponto");
|
|
@@ -63,6 +74,26 @@ export class PointDrawer extends Drawer {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ resolveTarget(target) {
|
|
|
+ if (target.attrs != undefined && target.attrs.container != undefined) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (target.attrs != undefined) {
|
|
|
+ switch (target.attrs.class) {
|
|
|
+ case ELEMENTS_CLASS.LINE_SEGMENT:
|
|
|
+ this.inserPointInLineSegment(target);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ inserPointInLineSegment(konvaObject) {
|
|
|
+ const drawerAggregators = objects.getByKonvaObject(konvaObject);
|
|
|
+ if (drawerAggregators == undefined || drawerAggregators.length == 0) return;
|
|
|
+ const drawerAggregator = drawerAggregators[0];
|
|
|
+ drawerAggregator.drawer.insertPoint(drawerAggregator);
|
|
|
+ }
|
|
|
+
|
|
|
static drawAndGetPoint(x, y, useLabel) {
|
|
|
return PointDrawer.drawPoint(new PointModel(x, y), useLabel);
|
|
|
}
|