UNPKG

gojs

Version:

Interactive diagrams, charts, and graphs, such as trees, flowcharts, orgcharts, UML, BPMN, or business diagrams

112 lines (111 loc) 5.3 kB
var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); define(["require", "exports", "../../../release/go"], function (require, exports, go) { "use strict"; var WallBuildingTool = (function (_super) { __extends(WallBuildingTool, _super); function WallBuildingTool() { var _this = _super.call(this) || this; _this.name = "WallBuilding"; _this._startPoint = null; _this._endPoint = null; _this._wallReshapingTool = null; return _this; } Object.defineProperty(WallBuildingTool.prototype, "startPoint", { get: function () { return this._startPoint; }, set: function (value) { this._startPoint = value; }, enumerable: true, configurable: true }); Object.defineProperty(WallBuildingTool.prototype, "endPoint", { get: function () { return this._endPoint; }, set: function (value) { this._endPoint = value; }, enumerable: true, configurable: true }); Object.defineProperty(WallBuildingTool.prototype, "wallReshapingTool", { get: function () { return this._wallReshapingTool; }, set: function (value) { this._wallReshapingTool = value; }, enumerable: true, configurable: true }); WallBuildingTool.prototype.doActivate = function () { this.endPoint = null; this.startTransaction(this.name); this.diagram.isMouseCaptured = true; var diagram = this.diagram; var tool = this; var fp = diagram; diagram.model.setDataProperty(diagram.model.modelData, "wallThickness", fp.convertUnitsToPixels(parseFloat("5"))); var point1 = tool.diagram.lastInput.documentPoint; var gs = diagram.model.modelData.gridSize; if (!(tool.diagram.toolManager.draggingTool.isGridSnapEnabled)) gs = 1; var newx = gs * Math.round(point1.x / gs); var newy = gs * Math.round(point1.y / gs); var newPoint1 = new go.Point(newx, newy); this.startPoint = newPoint1; this.wallReshapingTool = tool.diagram.toolManager.mouseDownTools.elt(3); this.isActive = true; }; WallBuildingTool.prototype.doMouseDown = function () { var diagram = this.diagram; var tool = this; tool.diagram.currentCursor = 'crosshair'; var data = { key: "wall", category: "WallGroup", caption: "Wall", type: "Wall", startpoint: tool.startPoint, endpoint: tool.startPoint, thickness: parseFloat(diagram.model.modelData.wallThickness), isGroup: true, notes: "" }; this.diagram.model.addNodeData(data); var wall = diagram.findPartForKey(data.key); var fp = diagram; fp.updateWall(wall); var part = diagram.findPartForData(data); tool.transactionResult = tool.name; diagram.raiseDiagramEvent('PartCreated', part); tool.wallReshapingTool.isEnabled = true; diagram.select(part); tool.wallReshapingTool.isBuilding = true; tool.wallReshapingTool.adornedShape = part.findObject("SHAPE"); tool.wallReshapingTool.doActivate(); }; WallBuildingTool.prototype.doKeyDown = function () { var fp = this.diagram; var e = fp.lastInput; if (e.key === "Esc") { var wall = fp.selection.first(); fp.remove(wall); fp.pointNodes.iterator.each(function (node) { fp.remove(node); }); fp.dimensionLinks.iterator.each(function (link) { fp.remove(link); }); fp.pointNodes.clear(); fp.dimensionLinks.clear(); this.doDeactivate(); } go.Tool.prototype.doKeyDown.call(this); }; WallBuildingTool.prototype.doMouseMove = function () { this.wallReshapingTool.doMouseMove(); }; WallBuildingTool.prototype.doDeactivate = function () { var diagram = this.diagram; this.diagram.currentCursor = ""; this.diagram.isMouseCaptured = false; this.wallReshapingTool.isEnabled = false; this.wallReshapingTool.adornedShape = null; this.wallReshapingTool.doDeactivate(); this.wallReshapingTool.isBuilding = false; var fp = diagram; fp.updateWallDimensions(); this.stopTransaction(); this.isActive = false; }; return WallBuildingTool; }(go.Tool)); return WallBuildingTool; });